{"version":3,"sources":["webpack:///./node_modules/pdfvuer/node_modules/pdfjs-dist/build/pdf.worker.entry.js","webpack:///./node_modules/vue-resize-sensor/src/resize-sensor.vue?6c28","webpack:///./node_modules/pdfvuer/node_modules/pdfjs-dist/web/pdf_viewer.css?2a60","webpack:///./src/views/Validate.vue","webpack:///./node_modules/vue-resize-sensor/src/resize-sensor.vue","webpack:///./src/components/PDFJSViewer.vue","webpack:///./node_modules/pdfvuer/src/Pdfvuer.vue","webpack:///node_modules/vue-resize-sensor/src/resize-sensor.vue","webpack:///./node_modules/vue-resize-sensor/src/resize-sensor.vue?66bd","webpack:///node_modules/pdfvuer/src/Pdfvuer.vue","webpack:///./node_modules/pdfvuer/src/Pdfvuer.vue?6d33","webpack:///./node_modules/pdfvuer/src/Pdfvuer.vue?436d","webpack:///src/components/PDFJSViewer.vue","webpack:///./src/components/PDFJSViewer.vue?d616","webpack:///./src/components/PDFJSViewer.vue?6ae1","webpack:///./src/components/MikepadLoader.vue","webpack:///src/components/MikepadLoader.vue","webpack:///./src/components/MikepadLoader.vue?0dcc","webpack:///./src/components/MikepadLoader.vue?3067","webpack:///src/views/Validate.vue","webpack:///./src/views/Validate.vue?2a74","webpack:///./src/views/Validate.vue?4b56","webpack:///./node_modules/pdfvuer/node_modules/pdfjs-dist/build/pdf.worker.js","webpack:///./src/components/MikepadLoader.vue?8160","webpack:///./src/components/PDFJSViewer.vue?cdf8","webpack:///./node_modules/pdfvuer/dist/pdfvuer.css?f172","webpack:///./node_modules/pdfvuer/node_modules/pdfjs-dist/build/pdf.js","webpack:///./src/views/Validate.vue?97da","webpack:///./src/components/PDFJSViewer.vue?6f98","webpack:///./node_modules/pdfvuer/node_modules/pdfjs-dist/web/pdf_viewer.js"],"names":["window","pdfjsWorker","render","_vm","this","_c","_self","staticClass","attrs","loading","imgLogoUrlPath","imgLogoPath","_v","on","$event","preventDefault","validate","apply","arguments","directives","name","rawName","value","data","Code","expression","ref","domProps","refreshCaptcha","target","composing","$set","focusValidationCodeOrRefreshCaptcha","Captcha","_m","_e","errorMessage","_s","validationResult","TranckingNumber","IsValid","staticStyle","_l","Signers","signer","key","OwnerName","SignatureType","SigningTime","_f","getSignatureTimeType","pdfURL","showDocumentLoading","isViewable","showDocument","isDownloadable","staticRenderFns","pdfurl","hide","numPages","i","scale","handle_pdf_link","_t","resizeScale","props","initial","type","default","size","width","height","methods","reset","expand","shrink","update","watch","deep","handler","style","create","scroll","beforeDestroy","mounted","removeOnresizeEvent","bind","component","source","url","loadingTask","createLoadingTask","components","resizeSensor","src","page","rotate","resize","annotation","text","internalSrc","pdf","pdfViewer","self","eventBus","externalLinkTarget","linkService","textLayer","annotationLayer","then","container","id","defaultViewport","textLayerFactory","annotationLayerFactory","scrollPageIntoView","catch","err","calculateScale","calculateScaleHeight","drawScaled","newScale","pdfdata","errors","isVisible","computed","formattedZoom","show","document","getPdf","changePage","findPos","styles","innerStyles","color","transform","mixins","MikepadLoader","created","console","completed","code","x","axios","e","downloadDocument","post","EntityId","DocumentId","IsSigned","getDocumentDownloadUrl","root","factory","module","exports","modules","installedModules","__w_pdfjs_require__","moduleId","l","call","m","c","d","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","t","mode","__esModule","ns","n","object","property","prototype","hasOwnProperty","p","s","_worker","WorkerMessageHandler","WorkerTask","_util","_primitives","_pdf_manager","_is_node","_message_handler","_worker_stream","_core_utils","terminated","_capability","createPromiseCapability","promise","resolve","Error","port","testMessageProcessed","Uint8Array","send","supportTransfers","postMessageTransfers","setVerbosityLevel","verbosity","createDocumentHandler","docParams","pdfManager","cancelXHRs","WorkerTasks","getVerbosityLevel","apiVersion","workerVersion","enumerableProperties","push","length","join","ReadableStream","Promise","allSettled","docId","docBaseUrl","workerHandlerName","MessageHandler","ensureNotTerminated","startWorkerTask","task","finishWorkerTask","finish","indexOf","splice","async","loadDocument","recoveryMode","ensureDoc","fingerprint","all","getPdfManager","evaluatorOptions","pdfManagerCapability","newPdfManager","LocalPdfManager","password","ex","reject","pdfStream","cachedChunks","PDFWorkerStream","fullRequest","getFullReader","headersReady","isRangeSupported","disableAutoFetch","isStreamingSupported","NetworkPdfManager","msgHandler","contentLength","rangeChunkSize","sendProgressiveData","reason","loaded","flushChunks","pdfFile","arraysToBytes","warn","readPromise","readChunk","done","arrayByteLength","total","Math","max","read","cancelAllRequests","setupDoc","onSuccess","doc","pdfInfo","onFailure","PasswordException","sendWithPromise","updatePassword","pdfManagerReady","InvalidPDFException","MissingPDFException","UnexpectedResponseException","UnknownErrorException","message","toString","XRefParseException","requestLoadedStream","onLoadedStream","maxImageSize","disableFontFace","ignoreErrors","isEvalSupported","fontExtraProperties","terminate","AbortException","stream","bytes","byteLength","getPage","pageIndex","ensure","userUnit","view","Ref","num","gen","catalog","pdfDocument","getPageIndex","ensureCatalog","xref","stats","intent","getAnnotationsData","sink","start","VerbosityLevel","INFOS","Date","now","getOperatorList","renderInteractiveForms","operatorListInfo","info","close","featureId","UNSUPPORTED_FEATURES","errorOperatorList","error","onPull","desiredSize","onCancel","extractTextContent","normalizeWhitespace","combineTextItems","fontFallback","cleanup","waitOn","cleanupPromise","clearPrimitiveCaches","forEach","finished","destroy","setup","isMessagePort","maybePort","postMessage","isNodeJS","initializeFromPort","assert","bytesToString","isArrayBuffer","isArrayEqual","isBool","isEmptyObj","isNum","isString","isSameOrigin","createValidAbsoluteUrl","removeNullCharacters","shadow","string32","stringToBytes","stringToPDFString","stringToUTF8String","utf8StringToString","unreachable","IsEvalSupportedCached","IsLittleEndianCached","createObjectURL","FormatError","Util","TextRenderingMode","StreamType","PermissionFlag","PasswordResponses","CMapCompressionType","ImageKind","FontType","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","OPS","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","BaseException","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","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","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","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","MARKED","REVIEW","UNMARKED","ACCEPTED","REJECTED","CANCELLED","COMPLETED","NONE","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","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","unknown","forms","javaScript","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorFontToUnicode","errorFontLoadNative","errorFontGetPath","NEED_PASSWORD","INCORRECT_PASSWORD","level","Number","isInteger","msg","log","cond","baseUrl","otherUrl","base","URL","origin","other","_isValidProtocol","protocol","absoluteUrl","obj","prop","configurable","writable","constructor","super","details","status","NullCharactersRegExp","str","replace","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","strBuf","chunkEnd","min","chunk","subarray","charCodeAt","arr","resultLength","pos","item","itemLength","set","isLittleEndian","buffer8","view32","Uint32Array","buffer","Function","rgbBuf","g","b","m1","m2","xt","yt","p1","applyTransform","p2","slice","p3","p4","v","transpose","a","first","second","sqrt","sx","sy","rect","rect1","rect2","compare","orderedX","sort","orderedY","result","normalizeRect","PDFStringTranslateTable","charAt","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","every","element","index","capability","isSettled","digits","contentType","forceDataSchema","blob","Blob","ii","b1","b2","b3","d1","d2","d3","d4","process","versions","nw","electron","isEOF","isCmd","isDict","isName","isRef","isRefsEqual","isStream","RefSetCache","RefSet","Name","Dict","Cmd","EOF","nameCache","nameValue","_clearCache","cmdCache","cmd","cmdValue","nonSerializable","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","key1","key2","key3","fetch","fetchAsync","Array","isArray","getRaw","getKeys","keys","has","callback","empty","merge","dictArray","mergedDict","dict","keyName","refCache","refValue","put","remove","putAlias","aliasRef","clear","v1","v2","getBytes","_chunked_stream","_document","_stream","BasePdfManager","_docId","_password","_docBaseUrl","href","args","manuallyTriggered","begin","end","Stream","PDFDocument","_loadedStreamPromise","pdfNetworkStream","streamManager","ChunkedStreamManager","getStream","MissingDataException","requestRange","requestAllChunks","onReceiveData","abort","ChunkedStream","chunkSize","manager","loadedChunks","numChunksLoaded","numChunks","ceil","progressiveDataLength","lastSuccessfulEnsureByteChunk","chunks","beginChunk","floor","endChunk","curChunk","position","ensureByte","b0","getByte","forceClamped","strEnd","ensureRange","Uint8ClampedArray","peekedByte","ChunkedStreamSubstream","getMissingChunks","missingChunks","allChunksLoaded","subStream","currRequestId","chunksNeededByRequest","requestsByChunk","promisesByRequest","aborted","_loadedStreamCapability","rangeReader","getRangeReader","onProgress","chunkData","_requestChunks","requestId","chunksNeeded","hasChunk","chunksToRequest","groupedChunksToRequest","groupChunks","groupedChunk","sendRequest","getBeginChunk","getEndChunk","ranges","range","includes","groupedChunks","prevChunk","isProgressive","onReceiveProgressiveData","loadedRequests","requestIds","nextEmptyChunk","lastChunk","getLookupTableFactory","getInheritableProperty","toRomanNumerals","log2","readInt8","readUint16","readUint32","isWhiteSpace","XRefEntryException","initializer","lookup","getArray","stopWhenFound","LOOP_LIMIT","values","loopCount","ROMAN_NUMBER_MAP","number","lowerCase","romanBuf","romanStr","toLowerCase","offset","ch","Page","_obj","_annotation","_crypto","_parser","_operator_list","_evaluator","_function","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","isAnnotationRenderable","viewable","printable","pageDict","fontCache","builtInCMapCache","globalImageCache","pdfFunctionFactory","resourcesPromise","idCounters","idFactory","_getInheritableProperty","box","_getBoundingBox","mediaBox","cropBox","intersect","content","streams","fetchIfRef","StreamsSequenceStream","NullStream","objectLoader","ObjectLoader","resources","load","contentStreamPromise","loadResources","partialEvaluator","PartialEvaluator","options","dataPromises","pageListPromise","contentStream","opList","OperatorList","transparency","hasBlendModes","operatorList","_parsedAnnotations","pageOpList","annotations","flush","totalLength","opListPromises","opLists","addOp","addOpList","getTextContent","annotationsData","parsedAnnotations","annotationPromises","annotationRef","AnnotationFactory","filter","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","PDF_HEADER_VERSION_REGEXP","find","signature","limit","backwards","signatureLength","scanBytes","peekBytes","scanLength","signatureEnd","j","arg","XRef","PDFFunctionFactory","_pagePromises","version","catDict","pdfFormatVersion","acroForm","xfa","fields","collection","linearization","Linearization","startXRef","step","startXRefLength","found","skip","parseInt","isNaN","moveStart","MAX_PDF_VERSION_LENGTH","substring","setStartXRef","parse","Catalog","DocumentInfoValidators","Title","Author","Subject","Keywords","Creator","Producer","CreationDate","ModDate","Trapped","test","docInfo","PDFFormatVersion","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","infoDict","trailer","customValue","Custom","hash","idArray","calculateMD5","getByteRange","fingerprintBuf","hex","padStart","objectNumberFirst","pageKidsCountCache","getPageDict","pageFirst","_getLinearizationPage","FileSpec","_colorspace","_image_utils","fetchDestination","dest","getCatalogObj","Map","GlobalImageCache","streamRef","encrypt","encryptMetadata","metadata","subtype","pagesObj","_readDocumentOutline","items","queue","parent","processed","blackColor","shift","outlineDict","parseDestDictionary","destDict","resultObj","title","flags","count","rgbColor","ColorSpace","singletons","rgb","getRgb","outlineItem","unsafeUrl","newWindow","bold","italic","permissions","_readPermissions","toplevelPagesDict","_readDests","dests","NameTree","names","getAll","destinationId","_readPageLabels","pageLabels","prefix","numberTree","NumberTree","nums","currentLabel","currentIndex","labelDict","st","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","charBuf","jj","pageLayout","pageMode","ViewerPreferencesValidators","HideToolbar","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","prefs","prefValue","isValid","openAction","action","attachments","nameTree","fs","serializable","appendIfJavaScriptDict","jsDict","js","promises","translatedFonts","translatedFont","loadedName","fallback","translated","nodesToVisit","visitedNodes","currentPageIndex","next","currentNode","pop","kids","last","pageRef","pagesBeforeRef","kidRef","parentRef","node","getAsync","kidPromises","kid","params","addDefaultProtocolToUrl","startsWith","tryConvertUrlEncoding","actionType","actionName","urlDict","remoteDest","split","JSON","stringify","namedAction","jsAction","URL_OPEN_METHODS","regex","RegExp","jsUrl","exec","entries","xrefstms","_cacheMap","streamTypes","fontTypes","startXRefQueue","trailerDict","indexObjects","readXRef","ids","fileId","CipherTransformFactory","processXRefTable","parser","tableState","entryNum","streamPos","lexer","parserBuf1","buf1","parserBuf2","buf2","readXRefTable","getObj","firstEntryNum","entryCount","entry","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","TAB","LF","CR","SPACE","PERCENT","LT","readToken","token","skipUntil","what","dataLength","skipped","objRegExp","endobjRegExp","nestedObjRegExp","CHECK_CONTENT_LENGTH","trailerBytes","startxrefBytes","objBytes","xrefBytes","trailers","xrefStms","startPos","endPos","checkPos","tokenStr","objToken","xrefTagOffset","Parser","Lexer","allowStreams","rootDict","startXRefParsedCache","topDict","getEntry","xrefEntry","cacheEntry","fetchUncompressed","fetchCompressed","makeSubStream","obj1","obj2","obj3","createCipherTransform","tableOffset","NameOrNumberTree","_type","kidsOrEntries","MAX_LEVELS","limits","tmp","currentKey","mm","description","contentAvailable","pickPlatformItem","_filename","filename","contentRef","fileObj","mayHaveChildren","addChildren","dictKeys","rawValue","refSet","_walk","nodesToRevisit","pendingRequests","getBaseStreams","baseStreams","foundMissingData","requestRanges","_ccitt_stream","_jbig2_stream","_jpeg_stream","_jpx_stream","MAX_LENGTH_TO_CACHE","MAX_ADLER32_LENGTH","computeAdler32","bytesLength","imageCache","refill","cipherTransform","makeInlineImage","array","makeStream","decryptString","E","I","NUL","maybeEIPos","state","followingBytes","endOffset","peekByte","markerLength","foundEOI","getUint16","findDefaultInlineStreamEnd","inlineStreamSkipEI","TILDE","GT","tildePos","maybeEI","dictLength","beginInlineImagePos","filterName","filterZero","findDCTDecodeInlineStreamEnd","findASCII85DecodeInlineStreamEnd","findASCIIHexDecodeInlineStreamEnd","cacheKey","imageStream","imageBytes","initialStreamPos","dictBytes","createStream","SCAN_BLOCK_LENGTH","skipToNextLine","nextChar","tryShift","ENDSTREAM_SIGNATURE","actualLength","_findStreamLength","MAX_TRUNCATION","TRUNCATED_SIGNATURE","maybeLength","lastByte","makeFilter","filterArray","paramsArray","xrefStreamStats","PredictorStream","FlateStream","earlyChange","LZWStream","JpegStream","JpxStream","Ascii85Stream","AsciiHexStream","CCITTFaxStream","RunLengthStream","Jbig2Stream","specialChars","toHexDigit","knownCommands","_hexStringNumWarn","currentChar","eNotation","divideBy","sign","baseValue","powerValue","powerValueSign","currentDigit","peekChar","numParen","charBuffered","previousCh","x2","MAX_HEX_STRING_NUM_WARN","firstDigit","secondDigit","isFirstHex","_hexStringWarn","comment","getNumber","getString","getName","getHexString","knownCommandFound","possibleCommand","getInt","linDict","allowZeroValue","getHints","hints","hintsLength","hint","endFirst","mainXRefEntriesOffset","StringStream","DecodeStream","DecryptStream","arrayBuffer","getInt32","emptyBuffer","maybeMinBufferLength","_rawMinBufferLength","bufferLength","eof","minBufferLength","readBlock","ensureBuffer","requested","buffer2","bufEnd","newLength","codeLenCodeMap","Int32Array","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","cmf","flg","codeSize","codeBuf","getBits","bits","getCode","table","codes","maxLen","codeLen","codeVal","generateHuffmanTable","lengths","len","val","code2","hdr","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","bitsLength","bitsOffset","codeLengths","repeatLength","code1","dist","k","blockLen","check","block","predictor","readBlockTiff","readBlockPng","colors","columns","pixBytes","rowBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","sum","compArray","bitMask","kk","prevRow","up","upLeft","left","pa","pb","pc","decrypt","nextChunk","initialized","hasMoreData","input","TILDA_CHAR","Z_LOWER_CHAR","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","repeatHeader","cachedData","bitsCached","maxLzwDictionarySize","lzwState","codeLength","nextCode","dictionaryValues","dictionaryLengths","Uint16Array","dictionaryPrevCodes","currentSequence","currentSequenceLength","readBits","lastCode","q","blockSize","estimatedDecodedSize","decodedSizeDelta","prevCode","decodedLength","currentBufferLength","hasPrev","_ccitt","ccittFaxDecoder","CCITTFaxDecoder","K","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","readNextChar","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","encoding","eoline","byteAlign","rows","eoblock","black","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","_lookBits","_eatBits","refPos","blackPixels","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","limitValue","_findTableCode","_jbig","jbig2Image","Jbig2Image","globalsStream","globals","parseChunks","_arithmetic_decoder","Jbig2Error","ContextCache","DecodingContext","decodeInteger","contextCache","procedure","decoder","contexts","getContexts","prev","bit","readBit","decodeIAID","Int8Array","ArithmeticDecoder","cache","SegmentTypes","CodingTemplates","y","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","decodingContext","contextLabel","pixel","row1","row2","bitmap","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","Reader","decodeMMRBitmap","useskip","template","concat","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","i0","j0","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","decode","currentWidth","totalWidth","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","symbol","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMax","bitmapWidth","symbolBitmap","xMin","exportedSymbols","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","s2","t2","symbolRow","offsetT","offsetS","maxWidth","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patterns","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","header","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","currentPageInfo","bitPacked","imgData","mask","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","children","isLeaf","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","buildTree","decodeTablesSegment","lowestValue","highestValue","reader","prefixSizeBits","rangeSizeBits","currentRangeLow","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onImmediateHalftoneRegion","htOffset","decodeNode","linesLength","prefixLengthMax","histogram","currentCode","currentTemp","currentLength","firstCode","standardTablesCache","currentByte","getCustomHuffmanTable","numberOfSymbols","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","lookForEOFLimit","numBits","QeTable","qe","nmps","nlps","switchFlag","bp","dataEnd","chigh","clow","byteIn","ct","cx_index","cx_mps","qeTableIcx","qeIcx","_jpg","jpegOptions","decodeTransform","colorTransform","decodeArr","forceRGB","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","JpegImage","getData","drawWidth","drawHeight","isSourcePDF","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","_decodeTransform","_colorTransform","buildHuffmanTable","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACNextValue","successiveACState","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","h","decodeBlock","decodeFn","componentsLength","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","qt","quantizationTable","buildComponentData","computationBuffer","Int16Array","currentPos","maxPos","newPos","currentMarker","newMarker","dnlScanLines","readDataBlock","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","precision","sofScanLines","componentIds","componentId","componentsCount","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","nextFileMarker","output","scaleX","scaleY","numComponents","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_convertYccToRgb","Y","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","_getLinearizedBlockData","rgbData","grayColor","_isColorConversionNeeded","_jpx","jpxImage","JpxImage","tileCount","tiles","tileComponents","tileWidth","tileHeight","tileLeft","tileTop","top","srcPosition","dataPosition","imgRowSize","tileRowSize","JpxError","SubbandsGainLog2","LL","LH","HL","HH","failOnCorruptedImage","calculateComponentDimensions","siz","x0","XOsiz","XRsiz","x1","Xsiz","y0","YOsiz","YRsiz","y1","Ysiz","calculateTileGrids","context","tile","SIZ","numXtiles","XTOsiz","XTsiz","numYtiles","YTOsiz","YTsiz","tx0","ty0","tx1","ty1","Csiz","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","entropyCoderWithCustomPrecincts","PPx","precinctsSizes","PPy","xcb_","xcb","ycb_","ycb","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblock","precinctNumber","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","currentTile","layersCount","codingStyleDefaultParameters","maxDecompositionLevelsCount","decompositionLevelsCount","nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","py","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","widthCurrentResolution","heightCurrentResolution","buildPackets","blocksDimensions","bscale","resolutionSubbands","progressionOrder","packetsIterator","parseTilePackets","bufferSize","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","sopMarkerUsed","COD","ephMarkerUsed","valueReady","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","included","inclusionTree","zeroBitPlanesTree","InclusionTree","TagTree","incrementValue","nextLevel","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","segmentationSymbolUsed","right","bottom","blockWidth","blockHeight","bitModel","currentCodingpassType","BitModel","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","nb","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","interleave","levelOffset","transformTile","quantizationParameters","spqcds","SPqcds","scalarExpounded","guardBits","reversibleTransformation","ReversibleTransform","IrreversibleTransform","subbandCoefficients","Float32Array","mu","epsilon","gainLog2","calculate","transformComponents","resultImages","transformedTiles","y2","tile0","out","multipleComponentTransform","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","initializeTile","qcdOrQcc","QCC","QCD","COC","head","headerSize","lbox","tbox","jumpDataLength","method","colorspace","parseCodestream","headerType","parseImageProperties","newByte","oldByte","doNotRecover","sqcd","spqcdSize","mainHeader","isSigned","qcd","noQuantization","spqcd","cqcc","qcc","cod","scod","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","precinctsSize","unsupported","partIndex","partsCount","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","indexNext","width4","index0","significance","iNext","oneRowDown","twoRowsDown","threeRowsDown","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","iterate","extend","j1","j2","hl_lh_hh","u","llWidth","llHeight","llItems","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","current","alpha","beta","gamma","K_","calculateSHA512","calculateSHA384","calculateSHA256","PDF20","PDF17","ARCFourCipher","AES256Cipher","AES128Cipher","keyLength","encryptBlock","tmp2","decryptBlock","h0","h1","h2","h3","paddedLength","padded","w","f","rotateArg","Word64","highInteger","lowInteger","high","low","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","not","add","lowAdd","highAdd","copyTo","assign","rotr","maj","sigma","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","t1","mode384","tmp3","tmp1","NullCipher","AESBaseCipher","_inv_s","_mix","_mixCol","bufferPosition","cipherKey","_keySize","_cyclesOfRepetition","s0","s1","s3","finalize","sourceLength","iv","plain","_decrypt","_key","outputLength","lastBlock","psLen","_decryptBlock2","cipher","_encrypt","_rcon","_expandKey","rcon","t3","t4","compareByteArrays","array1","array2","checkOwnerPassword","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","userValidationSalt","userPassword","getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","userKeySalt","userEncryption","concatArrays","calculatePDF20Hash","arrayLength","k1","remainder","concatBytes","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","defaultPasswordBytes","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","hashDataSize","keyLengthInBytes","checkData","encryptionKey","derivedKey","decodeUserPassword","identityName","algorithm","cfDict","streamCryptoName","handlerDict","passwordBytes","fileIdBytes","decodedPassword","cf","stmf","strf","eff","buildObjectKey","isAes","buildCipherConstructor","cfm","cryptFilter","cipherConstructor","resizeRgbImage","w1","w2","COMPONENTS","xRatio","yRatio","oldIndex","newIndex","xScaled","w1Scanline","numComps","srcOffset","getRgbItem","destOffset","inputLength","decodeMap","bpc","isDefaultDecode","originalWidth","originalHeight","actualHeight","comps","numComponentColors","needsResizing","isPassthrough","allColors","colorMap","getRgbBuffer","rgbPos","destPos","cs","res","IR","parseToIR","fromIR","whitePoint","blackPoint","gray","cmyk","CalGrayCS","matrix","CalRGBCS","basePatternCS","PatternCS","baseIndexedCS","hiVal","IndexedCS","alt","tintFn","AlternateCS","LabCS","colorSpaces","resCS","altIR","altCS","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","tmpBuf","baseNumComps","usesZeroToOneRange","baseBuf","scaled","tinted","getOutputLength","baseCS","highVal","outputDelta","lookupPos","convertToRgb","srcScale","A","AG","G","L","YW","XW","ZW","XB","YB","ZB","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","matrixProduct","convertToFlat","sourceWhitePoint","LMS","convertToD65","D65X","D65Y","D65Z","sRGBTransferFunction","adjustToRange","decodeL","compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","LMS_D65","B","C","AGR","GR","BGG","GG","CGB","GB","X","MXA","MXB","MXC","MYA","MYB","MYC","Z","MZA","MZB","MZC","XYZ","XYZ_Black","XYZ_D65","SRGB","fn_g","high1","low2","high2","maxVal","Ls","as","bs","amin","amax","bmin","bmax","M","N","LocalImageCache","_nameRefMap","_imageMap","_imageCache","getByRef","_refCache","pageIndexSet","NUM_PAGES_THRESHOLD","MAX_IMAGES_TO_CACHE","Set","onlyData","getQuadPoints","MarkupAnnotation","AnnotationBorderStyle","Annotation","createObjId","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","WidgetAnnotation","PopupAnnotation","FreeTextAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","CaretAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","quadPoints","quadPointsLists","getTransformMatrix","bbox","maxY","getAxialAlignedBoundingBox","setContents","setModificationDate","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","annotationFlags","borderStyle","contents","hasAppearance","appearance","modificationDate","flag","_hasFlag","_isViewable","_isPrintable","dictType","setWidth","setStyle","setDashArray","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","evaluator","renderForms","appearanceDict","dashArray","horizontalCornerRadius","verticalCornerRadius","maxHeight","allZeros","validNumber","radius","rawIRT","inReplyTo","rt","replyType","setCreationDate","creationDate","hasPopup","annotationType","fieldName","_constructFieldName","fieldValue","alternativeText","defaultAppearance","fieldResources","fieldFlags","readOnly","hasFieldFlag","unshift","loopDict","alignment","textAlignment","maximumLength","multiLine","comb","checkBox","radioButton","pushButton","_processCheckBox","_processRadioButton","_processPushButton","customAppearance","exportValueOptionsDict","exportValues","hasCorrectOptionCount","exportValue","buttonValue","fieldParent","fieldParentValue","option","isOptionArray","displayValue","combo","multiSelect","DEFAULT_ICON_SIZE","stateModel","parentItem","parentSubtype","parentType","rawParent","parentId","parentFlags","lineCoordinates","rawVertices","vertices","originalInkLists","inkLists","file","QueueOptimizer","addState","parentState","pattern","checkFn","iterateFn","processFn","handlePaintSolidColorImageMask","iFirstSave","fnArray","argsArray","iFirstPIMXO","imageMask","InitialState","iCurr","match","lastProcessed","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","curr","iFirstTransform","iFirstPIIXO","map","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","dataOffset","kind","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","iTransform","transformArgs","isSameImage","firstPIMXOArg0","firstTransformArg0","firstTransformArg3","iPIMXO","positions","images","maskParams","iFirstPIXO","firstPIXOArg0","MIN_IMAGES_IN_BLOCK","MAX_IMAGES_IN_BLOCK","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","MIN_CHARS_IN_BLOCK","MAX_CHARS_IN_BLOCK","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","fn","_optimize","NullOptimizer","CHUNK_SIZE","CHUNK_SIZE_ABOUT","streamSink","_streamSink","optimizer","dependencies","_totalLength","weight","_resolved","ready","addDependency","transfers","cached","enqueue","_transfers","_cmap","_fonts","_encodings","_unicode","_standard_fonts","_pattern","_bidi","_glyphlist","_metrics","_murmurhash","_image","DefaultPartialEvaluatorOptions","parsingType3Font","fetchBuiltInCMap","readableStream","sendWithStream","getReader","pump","compressionType","TIME_SLOT_DURATION_MS","CHECK_TIME_EVERY","TimeSlotManager","normalizeBlendMode","parsingArray","maybeBM","checked","endTime","deferred","TILING_PATTERN","SHADING_PATTERN","newOptions","newEvaluator","nodes","graphicStates","graphicStatesKeys","graphicState","bm","xObjects","xObjectsKeys","xObject","xResources","xobj","initialState","group","groupOptions","isolated","knockout","groupSubtype","colorSpace","parseColorSpace","backdrop","image","isInline","localImageCache","imageRef","bitStrideLength","imgArray","PDFImage","createMask","imageIsFromDecodeStream","inverseDecode","softMask","SMALL_IMAGE_DIMENSIONS","imageObj","createImageData","cacheGlobally","getDocId","shouldCache","imgPromise","buildImage","addPageIndex","setData","handleSMask","stateManager","smaskContent","smaskOptions","transferObj","isPDFFunction","transferFn","transferMap","buildFormXObject","clone","patternDict","tilingOpList","resourcesArray","patternResources","getTilingPatternIR","tilingPatternIR","addDependencies","handleSetFont","fontArgs","fontRef","fontName","loadFont","isType3Font","loadType3Data","TranslatedFont","ErrorFont","extraProperties","chars","glyphs","charsToGlyphs","isAddToPathSet","textRenderingMode","fillColorSpace","buildFontPaths","gState","gStateObj","gStateKeys","errorFont","fontRes","getFallbackFontDict","fontCapability","preEvaluatedFont","preEvaluateFont","descriptor","fontID","translatedPromise","fontRefIsRef","fontAliases","aliasFontRef","Font","getFontID","translateFont","fontType","xrefFontStats","fontFile3","getFontType","parsingText","lastIndex","opArgs","patternName","typeNum","handleTilingType","shading","Pattern","parseShading","getIR","EvalState","xobjs","StateManager","preprocessor","EvaluatorPreprocessor","timeSlotManager","closePendingRestoreOPS","argument","savedStatesDepth","promiseBody","stop","operation","localImage","getByName","resolveXObject","rejectXObject","globalImage","buildPaintImageXObject","fontSize","ensureStateFont","handleText","combinedGlyphs","arrLength","arrItem","strokeColorSpace","handleColorN","shadingRes","patternIR","dictName","extGState","buildPath","seenStyles","TextState","WhitespaceRegexp","textContent","textContentItem","vertical","lastAdvanceWidth","lastAdvanceHeight","textAdvanceScale","spaceWidth","fakeSpaceMin","Infinity","fakeMultiSpaceMin","fakeMultiSpaceMax","textRunBreakAllowed","SPACE_FACTOR","MULTI_SPACE_FACTOR","MULTI_SPACE_FACTOR_MAX","emptyXObjectCache","textState","ensureTextContentItem","fontFamily","fallbackName","ascent","descent","tsm","textHScale","textRise","fontMatrix","glyphHeight","trm","ctm","textMatrix","textLineMatrix","scaleLineX","scaleCtmX","isMonospace","replaceWhitespace","runBidiTransform","textChunk","bidiResult","bidi","dir","buildTextContentItem","glyph","glyphWidth","vmetric","glyphUnicode","unicode","NormalizedUnicodes","getNormalizedUnicodes","reverseIfRtl","charSpacing","isSpace","wordSpacing","addFakeSpaces","tx","ty","w0","translateTextMatrix","abs","fakeSpaces","round","flushTextContentItem","enqueueChunk","advance","fontNameArg","fontSizeArg","leading","isSameTextLine","translateTextLineMatrix","carriageReturn","calcTextLineMatrixAdvance","setTextLineMatrix","breakTextRun","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","gStateFont","extractDataStructures","baseDict","properties","cidToGidBytes","toUnicode","toUnicodePromise","readToUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","differences","baseEncodingName","diffEncoding","defaultEncoding","getEncoding","isSymbolicFont","FontFlags","Symbolic","isNonsymbolicFont","Nonsymbolic","StandardEncoding","WinAnsiEncoding","MacRomanEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","hasEncoding","buildToUnicode","builtToUnicode","readCidToGidMap","forceGlyphs","charcode","glyphName","glyphsUnicodeMap","getGlyphsUnicode","codeStr","_buildSimpleFontToUnicode","getUnicodeForGlyph","baseEncoding","fromCodePoint","ToUnicodeMap","hasIncludedToUnicodeMap","fallbackToUnicode","cMap","builtInCMap","IdentityCMap","ucs2CMapName","CMapFactory","useCMap","ucs2CMap","cid","ucs2","IdentityToUnicodeMap","firstChar","lastChar","cmapObj","cmap","getMap","charCode","glyphsData","glyphID","extractWidths","defaultVMetrics","widths","glyphsWidths","defaultWidth","glyphsVMetrics","vmetrics","parseFloat","baseFontName","metrics","getBaseFontMetrics","buildCharCodeToWidth","firstWidth","FixedPitch","isSerifFont","fontNameWoStyle","getSerifFonts","search","monospace","stdFontMap","getStdFontMap","lookupName","Metrics","getMetrics","glyphWidths","widthsByGlyphName","uint8array","df","MurmurHash3_64","diffLength","diffBuf","diffEntry","hexdigest","maxCharIndex","Serif","getSymbolsFonts","newProperties","baseFont","fontNameStr","baseFontStr","cMapPromise","fontFile","length1","length2","length3","fixedPitch","xHeight","capHeight","italicAngle","cidEncoding","fontChar","renderer","hasBuiltPath","getPathJs","accent","_fallbackFontDict","_extraProperties","type3Loaded","sent","exportData","glyphCacheValues","parentOperatorList","type3Options","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcKeys","charProcOperatorList","glyphStream","dummyOperatorList","stateStack","old","txDiff","tyDiff","denominator","calcRenderMatrix","getOPMap","numArgs","variableArgs","J","ri","gs","Q","cm","re","S","F","W","BT","ET","Tc","Tw","Tz","TL","Tf","Tr","Ts","Td","TD","Tm","Tj","TJ","d0","CS","SC","SCN","sc","scn","RG","rg","sh","BI","ID","EI","Do","MP","DP","BMC","BDC","EMC","BX","EX","BM","BD","true","fa","fal","fals","false","nu","nul","null","MAX_INVALID_PATH_OPS","opMap","nonProcessedArgs","_numInvalidPathOPS","opSpec","argsLength","preprocessCommand","CMap","BUILT_IN_CMAPS","MAX_MAP_RANGE","codespaceRanges","numCodespaceRanges","dstLow","dst","nn","codespaceRange","addCodespaceRange","BinaryCMapReader","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","processBinaryCMap","readByte","char","sequence","dataSize","ucs2DataSize","subitemsCount","readNumber","readHex","readHexNumber","mapOne","readSigned","mapCidRange","readHexSigned","mapBfRange","readString","stack","sp","strToInt","expectString","expectInt","parseBfChar","parseBfRange","mapBfRangeToArray","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","previous","embeddedUseCMap","objLoop","extendCMap","createBuiltInCMap","newCMap","useCodespaceRanges","contains","cMapData","parsedCMap","isIdentityCMap","SEAC_ANALYSIS_ENABLED","_cff_parser","_font_renderer","_type1_parser","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","EXPORT_DATA_PROPERTIES","EXPORT_DATA_EXTRA_PROPERTIES","Script","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","adjustWidths","adjustToUnicode","builtInEncoding","amend","recoverGlyphName","Glyph","operatorListId","isInFont","matchesForCache","OpenTypeFileBuilder","writeInt16","writeInt32","writeData","sfnt","tables","getSearchParams","entriesCount","entrySize","maxPower2","searchRange","rangeShift","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","toArray","tablesNames","tableName","numTables","tableOffsets","searchParams","checksum","quad","addTable","tag","missingFile","glyphCache","toFontChar","isEmpty","fallbackToSystemFont","getFontFileType","mimetype","cff","CFFFont","Type1Font","convert","checkAndRepair","isOpenType","seacMap","int16","writeSignedInt16","signedInt16","int32","string16","safeString16","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","fileType","fileSubtype","buildToFontChar","adjustMapping","charCodeToGlyphId","hasGlyph","newGlyphZeroId","newMap","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","originalCharCode","glyphId","fontCharCode","getRanges","numGlyphs","codeIndices","createCmapTable","bmpLength","trailingRangesCount","segCount","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","bias","contiguous","startCode","format314","format31012","header31012","validateOS2Table","os2","selection","usWinAscent","createOS2Table","charstrings","override","unitsPerEm","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","getUnicodeRangeFor","ascentScaled","typoAscent","typoDescent","winAscent","winDescent","createPostTable","angle","createNameTable","proto","strings","stringsUnicode","strBufUnicode","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","FontRendererFactory","exportDataProperties","nonStdFontMap","getNonStdFontMap","isStandardFont","remeasure","GlyphMapForStandardFonts","getGlyphMapForStandardFonts","SupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForArialBlack","SupplementalGlyphMapForCalibri","getSupplementalGlyphMapForCalibri","isIdentityUnicode","unicodeCharCode","getDingbatsGlyphsUnicode","VALID_TABLES","readTables","hhea","hmtx","maxp","readTableEntry","previousPosition","readOpenTypeHeader","ttf","entrySelector","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","dsigTag","dsigLength","dsigOffset","readTrueTypeCollectionData","potentialHeader","potentialTables","readNameTable","nameEntry","readCmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","format","segIndex","offsetsCount","rangeOffset","offsetIndex","offsets","sanitizeMetrics","dupFirstEntry","numOfMetrics","numOfSidebearings","numMissing","sanitizeGlyph","sourceStart","sourceEnd","destStart","hintsValid","glyphProfile","sizeOfInstructions","glyf","contoursCount","flagsCount","endPoint","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xLength","yLength","xyLength","repeat","glyphDataLength","sanitizeHead","locaLength","indexToLocFormat","numGlyphsPlusOne","sanitizeGlyphLocations","loca","isGlyphLocationsLong","maxSizeOfInstructions","itemSize","itemDecode","itemEncode","numGlyphsOut","locaDataSize","locaData","oldGlyfData","oldGlyfDataLength","newGlyfData","writeOffset","missingGlyphs","simpleGlyph","firstEntryLength","readPostScriptTable","propertiesObj","maxpNumGlyphs","glyphNames","valid","glyphNameIndexes","customNames","stringLength","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","records","NAME_RECORD_LENGTH","platform","language","record","nameIndex","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","op","functionsStackDeltas","stackTop","functionsDefined","functionsUsed","newStackLength","stackDelta","NaN","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","cffFile","ttcData","isTrueType","isComposite","maxZones","glyphsInfo","metricsOverride","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","standardGlyphName","unicodeOrCharCode","glyphZeroId","newMapping","CFFParser","duplicateFirstGlyph","compiler","CFFCompiler","compile","namePrototype","builder","tableTag","mapping","getGlyphMapping","hasGlyphId","getCharCodes","charCodes","createCharCode","seacs","charset","getCharset","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","tan","cffWidths","charstring","possibleSpaceReplacements","charCodeOf","charToGlyph","widthCode","mapSpecialUnicodeValues","charsCache","charsCacheKey","readCharCode","type1FontGlyphMapping","findBlock","streamBytes","startIndex","streamBytesLength","getHeaderBlock","suggestedLength","headerBytes","headerBytesLength","EEXEC_SIGNATURE","streamStartPos","getEexecBlock","eexecBytes","PFB_HEADER_SIZE","headerBlockLength","eexecBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","headerBlockParser","Type1Parser","extractFontHeader","eexecBlock","eexecBlockParser","extractFontProgram","type2Charstrings","getType2Charstrings","subrs","getType2Subrs","wrap","getSeacs","charstringsLen","type1Charstrings","type1Subrs","type2Subrs","CFF","CFFHeader","CFFTopDict","setByName","CFFStrings","globalSubrIndex","CFFIndex","charsetArray","CFFStandardStrings","CFFCharset","charStringsIndex","charStrings","privateDict","CFFPrivateDict","field","privateData","subrIndex","subrsIndex","charsets","isCIDFont","CFFFDSelect","_charsets","MAX_SUBR_NESTING","NUM_STANDARD_CFF_STRINGS","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackFn","seacAnalysisEnabled","parseHeader","parseIndex","topDictIndex","stringIndex","topDictParsed","parseDict","createDict","parseNameIndex","parseStringIndex","parsePrivateDict","hasName","charStringOffset","charStringIndex","fontBBox","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","localSubrIndex","hdrSize","offSize","parseOperand","parseFloatOperand","operands","cffIndex","offsetSize","offsetStart","offsetEnd","Type","cffDict","pair","setByKey","parseCharString","callDepth","stackSize","validationCommand","subrNumber","hasVStems","firstStackClearing","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","emptyPrivateDictionary","parentDict","privateOffset","privateDictEnd","dictData","subrsOffset","relativeOffset","removeByName","CFFCharsetPredefinedTypes","ISO_ADOBE","ISOAdobeCharset","EXPERT","ExpertCharset","EXPERT_SUBSET","ExpertSubsetCharset","raw","predefined","readSupplement","supplementsCount","sid","ExpertEncoding","dataStart","glyphsCount","rangesCount","gid","CFFEncoding","glyphZero","getSID","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","types","opcodes","order","valueLength","createTables","layout","glyphIndex","CFFOffsetTracker","isTracking","track","location","setEntryLocation","offset1","offset2","offset3","offset4","compileHeader","compileNameIndex","subDict","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","encodeFloat","encodeInteger","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","offsetTracker","compileGlobalSubrIndex","writeByteArray","numGlyphsLessNotDef","charsetIndex","numCharsets","warned","compileTypedArray","lastFD","currentFD","numRanges","lastOffset","MacExpertEncoding","encodingName","AE","AEacute","AEmacron","AEsmall","Aacute","Aacutesmall","Abreve","Abreveacute","Abrevecyrillic","Abrevedotbelow","Abrevegrave","Abrevehookabove","Abrevetilde","Acaron","Acircle","Acircumflex","Acircumflexacute","Acircumflexdotbelow","Acircumflexgrave","Acircumflexhookabove","Acircumflexsmall","Acircumflextilde","Acute","Acutesmall","Acyrillic","Adblgrave","Adieresis","Adieresiscyrillic","Adieresismacron","Adieresissmall","Adotbelow","Adotmacron","Agrave","Agravesmall","Ahookabove","Aiecyrillic","Ainvertedbreve","Alpha","Alphatonos","Amacron","Amonospace","Aogonek","Aring","Aringacute","Aringbelow","Aringsmall","Asmall","Atilde","Atildesmall","Aybarmenian","Bcircle","Bdotaccent","Bdotbelow","Becyrillic","Benarmenian","Beta","Bhook","Blinebelow","Bmonospace","Brevesmall","Bsmall","Btopbar","Caarmenian","Cacute","Caron","Caronsmall","Ccaron","Ccedilla","Ccedillaacute","Ccedillasmall","Ccircle","Ccircumflex","Cdot","Cdotaccent","Cedillasmall","Chaarmenian","Cheabkhasiancyrillic","Checyrillic","Chedescenderabkhasiancyrillic","Chedescendercyrillic","Chedieresiscyrillic","Cheharmenian","Chekhakassiancyrillic","Cheverticalstrokecyrillic","Chi","Chook","Circumflexsmall","Cmonospace","Coarmenian","Csmall","D","DZ","DZcaron","Daarmenian","Dafrican","Dcaron","Dcedilla","Dcircle","Dcircumflexbelow","Dcroat","Ddotaccent","Ddotbelow","Decyrillic","Deicoptic","Delta","Deltagreek","Dhook","Dieresis","DieresisAcute","DieresisGrave","Dieresissmall","Digammagreek","Djecyrillic","Dlinebelow","Dmonospace","Dotaccentsmall","Dslash","Dsmall","Dtopbar","Dz","Dzcaron","Dzeabkhasiancyrillic","Dzecyrillic","Dzhecyrillic","Eacute","Eacutesmall","Ebreve","Ecaron","Ecedillabreve","Echarmenian","Ecircle","Ecircumflex","Ecircumflexacute","Ecircumflexbelow","Ecircumflexdotbelow","Ecircumflexgrave","Ecircumflexhookabove","Ecircumflexsmall","Ecircumflextilde","Ecyrillic","Edblgrave","Edieresis","Edieresissmall","Edot","Edotaccent","Edotbelow","Efcyrillic","Egrave","Egravesmall","Eharmenian","Ehookabove","Eightroman","Einvertedbreve","Eiotifiedcyrillic","Elcyrillic","Elevenroman","Emacron","Emacronacute","Emacrongrave","Emcyrillic","Emonospace","Encyrillic","Endescendercyrillic","Eng","Enghecyrillic","Enhookcyrillic","Eogonek","Eopen","Epsilon","Epsilontonos","Ercyrillic","Ereversed","Ereversedcyrillic","Escyrillic","Esdescendercyrillic","Esh","Esmall","Eta","Etarmenian","Etatonos","Eth","Ethsmall","Etilde","Etildebelow","Euro","Ezh","Ezhcaron","Ezhreversed","Fcircle","Fdotaccent","Feharmenian","Feicoptic","Fhook","Fitacyrillic","Fiveroman","Fmonospace","Fourroman","Fsmall","GBsquare","Gacute","Gamma","Gammaafrican","Gangiacoptic","Gbreve","Gcaron","Gcedilla","Gcircle","Gcircumflex","Gcommaaccent","Gdot","Gdotaccent","Gecyrillic","Ghadarmenian","Ghemiddlehookcyrillic","Ghestrokecyrillic","Gheupturncyrillic","Ghook","Gimarmenian","Gjecyrillic","Gmacron","Gmonospace","Grave","Gravesmall","Gsmall","Gsmallhook","Gstroke","H","H18533","H18543","H18551","H22073","HPsquare","Haabkhasiancyrillic","Hadescendercyrillic","Hardsigncyrillic","Hbar","Hbrevebelow","Hcedilla","Hcircle","Hcircumflex","Hdieresis","Hdotaccent","Hdotbelow","Hmonospace","Hoarmenian","Horicoptic","Hsmall","Hungarumlaut","Hungarumlautsmall","Hzsquare","IAcyrillic","IJ","IUcyrillic","Iacute","Iacutesmall","Ibreve","Icaron","Icircle","Icircumflex","Icircumflexsmall","Icyrillic","Idblgrave","Idieresis","Idieresisacute","Idieresiscyrillic","Idieresissmall","Idot","Idotaccent","Idotbelow","Iebrevecyrillic","Iecyrillic","Ifraktur","Igrave","Igravesmall","Ihookabove","Iicyrillic","Iinvertedbreve","Iishortcyrillic","Imacron","Imacroncyrillic","Imonospace","Iniarmenian","Iocyrillic","Iogonek","Iota","Iotaafrican","Iotadieresis","Iotatonos","Ismall","Istroke","Itilde","Itildebelow","Izhitsacyrillic","Izhitsadblgravecyrillic","Jaarmenian","Jcircle","Jcircumflex","Jecyrillic","Jheharmenian","Jmonospace","Jsmall","KBsquare","KKsquare","Kabashkircyrillic","Kacute","Kacyrillic","Kadescendercyrillic","Kahookcyrillic","Kappa","Kastrokecyrillic","Kaverticalstrokecyrillic","Kcaron","Kcedilla","Kcircle","Kcommaaccent","Kdotbelow","Keharmenian","Kenarmenian","Khacyrillic","Kheicoptic","Khook","Kjecyrillic","Klinebelow","Kmonospace","Koppacyrillic","Koppagreek","Ksicyrillic","Ksmall","LJ","Lacute","Lambda","Lcaron","Lcedilla","Lcircle","Lcircumflexbelow","Lcommaaccent","Ldot","Ldotaccent","Ldotbelow","Ldotbelowmacron","Liwnarmenian","Lj","Ljecyrillic","Llinebelow","Lmonospace","Lslash","Lslashsmall","Lsmall","MBsquare","Macron","Macronsmall","Macute","Mcircle","Mdotaccent","Mdotbelow","Menarmenian","Mmonospace","Msmall","Mturned","Mu","NJ","Nacute","Ncaron","Ncedilla","Ncircle","Ncircumflexbelow","Ncommaaccent","Ndotaccent","Ndotbelow","Nhookleft","Nineroman","Nj","Njecyrillic","Nlinebelow","Nmonospace","Nowarmenian","Nsmall","Ntilde","Ntildesmall","Nu","O","OE","OEsmall","Oacute","Oacutesmall","Obarredcyrillic","Obarreddieresiscyrillic","Obreve","Ocaron","Ocenteredtilde","Ocircle","Ocircumflex","Ocircumflexacute","Ocircumflexdotbelow","Ocircumflexgrave","Ocircumflexhookabove","Ocircumflexsmall","Ocircumflextilde","Ocyrillic","Odblacute","Odblgrave","Odieresis","Odieresiscyrillic","Odieresissmall","Odotbelow","Ogoneksmall","Ograve","Ogravesmall","Oharmenian","Ohm","Ohookabove","Ohorn","Ohornacute","Ohorndotbelow","Ohorngrave","Ohornhookabove","Ohorntilde","Ohungarumlaut","Oi","Oinvertedbreve","Omacron","Omacronacute","Omacrongrave","Omega","Omegacyrillic","Omegagreek","Omegaroundcyrillic","Omegatitlocyrillic","Omegatonos","Omicron","Omicrontonos","Omonospace","Oneroman","Oogonek","Oogonekmacron","Oopen","Oslash","Oslashacute","Oslashsmall","Osmall","Ostrokeacute","Otcyrillic","Otilde","Otildeacute","Otildedieresis","Otildesmall","P","Pacute","Pcircle","Pdotaccent","Pecyrillic","Peharmenian","Pemiddlehookcyrillic","Phi","Phook","Pi","Piwrarmenian","Pmonospace","Psi","Psicyrillic","Psmall","Qcircle","Qmonospace","Qsmall","R","Raarmenian","Racute","Rcaron","Rcedilla","Rcircle","Rcommaaccent","Rdblgrave","Rdotaccent","Rdotbelow","Rdotbelowmacron","Reharmenian","Rfraktur","Rho","Ringsmall","Rinvertedbreve","Rlinebelow","Rmonospace","Rsmall","Rsmallinverted","Rsmallinvertedsuperior","SF010000","SF020000","SF030000","SF040000","SF050000","SF060000","SF070000","SF080000","SF090000","SF100000","SF110000","SF190000","SF200000","SF210000","SF220000","SF230000","SF240000","SF250000","SF260000","SF270000","SF280000","SF360000","SF370000","SF380000","SF390000","SF400000","SF410000","SF420000","SF430000","SF440000","SF450000","SF460000","SF470000","SF480000","SF490000","SF500000","SF510000","SF520000","SF530000","SF540000","Sacute","Sacutedotaccent","Sampigreek","Scaron","Scarondotaccent","Scaronsmall","Scedilla","Schwa","Schwacyrillic","Schwadieresiscyrillic","Scircle","Scircumflex","Scommaaccent","Sdotaccent","Sdotbelow","Sdotbelowdotaccent","Seharmenian","Sevenroman","Shaarmenian","Shacyrillic","Shchacyrillic","Sheicoptic","Shhacyrillic","Shimacoptic","Sigma","Sixroman","Smonospace","Softsigncyrillic","Ssmall","Stigmagreek","T","Tau","Tbar","Tcaron","Tcedilla","Tcircle","Tcircumflexbelow","Tcommaaccent","Tdotaccent","Tdotbelow","Tecyrillic","Tedescendercyrillic","Tenroman","Tetsecyrillic","Theta","Thook","Thorn","Thornsmall","Threeroman","Tildesmall","Tiwnarmenian","Tlinebelow","Tmonospace","Toarmenian","Tonefive","Tonesix","Tonetwo","Tretroflexhook","Tsecyrillic","Tshecyrillic","Tsmall","Twelveroman","Tworoman","U","Uacute","Uacutesmall","Ubreve","Ucaron","Ucircle","Ucircumflex","Ucircumflexbelow","Ucircumflexsmall","Ucyrillic","Udblacute","Udblgrave","Udieresis","Udieresisacute","Udieresisbelow","Udieresiscaron","Udieresiscyrillic","Udieresisgrave","Udieresismacron","Udieresissmall","Udotbelow","Ugrave","Ugravesmall","Uhookabove","Uhorn","Uhornacute","Uhorndotbelow","Uhorngrave","Uhornhookabove","Uhorntilde","Uhungarumlaut","Uhungarumlautcyrillic","Uinvertedbreve","Ukcyrillic","Umacron","Umacroncyrillic","Umacrondieresis","Umonospace","Uogonek","Upsilon","Upsilon1","Upsilonacutehooksymbolgreek","Upsilonafrican","Upsilondieresis","Upsilondieresishooksymbolgreek","Upsilonhooksymbol","Upsilontonos","Uring","Ushortcyrillic","Usmall","Ustraightcyrillic","Ustraightstrokecyrillic","Utilde","Utildeacute","Utildebelow","V","Vcircle","Vdotbelow","Vecyrillic","Vewarmenian","Vhook","Vmonospace","Voarmenian","Vsmall","Vtilde","Wacute","Wcircle","Wcircumflex","Wdieresis","Wdotaccent","Wdotbelow","Wgrave","Wmonospace","Wsmall","Xcircle","Xdieresis","Xdotaccent","Xeharmenian","Xi","Xmonospace","Xsmall","Yacute","Yacutesmall","Yatcyrillic","Ycircle","Ycircumflex","Ydieresis","Ydieresissmall","Ydotaccent","Ydotbelow","Yericyrillic","Yerudieresiscyrillic","Ygrave","Yhook","Yhookabove","Yiarmenian","Yicyrillic","Yiwnarmenian","Ymonospace","Ysmall","Ytilde","Yusbigcyrillic","Yusbigiotifiedcyrillic","Yuslittlecyrillic","Yuslittleiotifiedcyrillic","Zaarmenian","Zacute","Zcaron","Zcaronsmall","Zcircle","Zcircumflex","Zdot","Zdotaccent","Zdotbelow","Zecyrillic","Zedescendercyrillic","Zedieresiscyrillic","Zeta","Zhearmenian","Zhebrevecyrillic","Zhecyrillic","Zhedescendercyrillic","Zhedieresiscyrillic","Zlinebelow","Zmonospace","Zsmall","Zstroke","aabengali","aacute","aadeva","aagujarati","aagurmukhi","aamatragurmukhi","aarusquare","aavowelsignbengali","aavowelsigndeva","aavowelsigngujarati","abbreviationmarkarmenian","abbreviationsigndeva","abengali","abopomofo","abreve","abreveacute","abrevecyrillic","abrevedotbelow","abrevegrave","abrevehookabove","abrevetilde","acaron","acircle","acircumflex","acircumflexacute","acircumflexdotbelow","acircumflexgrave","acircumflexhookabove","acircumflextilde","acute","acutebelowcmb","acutecmb","acutecomb","acutedeva","acutelowmod","acutetonecmb","acyrillic","adblgrave","addakgurmukhi","adeva","adieresis","adieresiscyrillic","adieresismacron","adotbelow","adotmacron","ae","aeacute","aekorean","aemacron","afii00208","afii08941","afii10017","afii10018","afii10019","afii10020","afii10021","afii10022","afii10023","afii10024","afii10025","afii10026","afii10027","afii10028","afii10029","afii10030","afii10031","afii10032","afii10033","afii10034","afii10035","afii10036","afii10037","afii10038","afii10039","afii10040","afii10041","afii10042","afii10043","afii10044","afii10045","afii10046","afii10047","afii10048","afii10049","afii10050","afii10051","afii10052","afii10053","afii10054","afii10055","afii10056","afii10057","afii10058","afii10059","afii10060","afii10061","afii10062","afii10063","afii10064","afii10065","afii10066","afii10067","afii10068","afii10069","afii10070","afii10071","afii10072","afii10073","afii10074","afii10075","afii10076","afii10077","afii10078","afii10079","afii10080","afii10081","afii10082","afii10083","afii10084","afii10085","afii10086","afii10087","afii10088","afii10089","afii10090","afii10091","afii10092","afii10093","afii10094","afii10095","afii10096","afii10097","afii10098","afii10099","afii10100","afii10101","afii10102","afii10103","afii10104","afii10105","afii10106","afii10107","afii10108","afii10109","afii10110","afii10145","afii10146","afii10147","afii10148","afii10192","afii10193","afii10194","afii10195","afii10196","afii10831","afii10832","afii10846","afii299","afii300","afii301","afii57381","afii57388","afii57392","afii57393","afii57394","afii57395","afii57396","afii57397","afii57398","afii57399","afii57400","afii57401","afii57403","afii57407","afii57409","afii57410","afii57411","afii57412","afii57413","afii57414","afii57415","afii57416","afii57417","afii57418","afii57419","afii57420","afii57421","afii57422","afii57423","afii57424","afii57425","afii57426","afii57427","afii57428","afii57429","afii57430","afii57431","afii57432","afii57433","afii57434","afii57440","afii57441","afii57442","afii57443","afii57444","afii57445","afii57446","afii57448","afii57449","afii57450","afii57451","afii57452","afii57453","afii57454","afii57455","afii57456","afii57457","afii57458","afii57470","afii57505","afii57506","afii57507","afii57508","afii57509","afii57511","afii57512","afii57513","afii57514","afii57519","afii57534","afii57636","afii57645","afii57658","afii57664","afii57665","afii57666","afii57667","afii57668","afii57669","afii57670","afii57671","afii57672","afii57673","afii57674","afii57675","afii57676","afii57677","afii57678","afii57679","afii57680","afii57681","afii57682","afii57683","afii57684","afii57685","afii57686","afii57687","afii57688","afii57689","afii57690","afii57694","afii57695","afii57700","afii57705","afii57716","afii57717","afii57718","afii57723","afii57793","afii57794","afii57795","afii57796","afii57797","afii57798","afii57799","afii57800","afii57801","afii57802","afii57803","afii57804","afii57806","afii57807","afii57839","afii57841","afii57842","afii57929","afii61248","afii61289","afii61352","afii61573","afii61574","afii61575","afii61664","afii63167","afii64937","agrave","agujarati","agurmukhi","ahiragana","ahookabove","aibengali","aibopomofo","aideva","aiecyrillic","aigujarati","aigurmukhi","aimatragurmukhi","ainarabic","ainfinalarabic","aininitialarabic","ainmedialarabic","ainvertedbreve","aivowelsignbengali","aivowelsigndeva","aivowelsigngujarati","akatakana","akatakanahalfwidth","akorean","alef","alefarabic","alefdageshhebrew","aleffinalarabic","alefhamzaabovearabic","alefhamzaabovefinalarabic","alefhamzabelowarabic","alefhamzabelowfinalarabic","alefhebrew","aleflamedhebrew","alefmaddaabovearabic","alefmaddaabovefinalarabic","alefmaksuraarabic","alefmaksurafinalarabic","alefmaksurainitialarabic","alefmaksuramedialarabic","alefpatahhebrew","alefqamatshebrew","aleph","allequal","alphatonos","amacron","amonospace","ampersand","ampersandmonospace","ampersandsmall","amsquare","anbopomofo","angbopomofo","angbracketleft","angbracketright","angkhankhuthai","anglebracketleft","anglebracketleftvertical","anglebracketright","anglebracketrightvertical","angleleft","angleright","angstrom","anoteleia","anudattadeva","anusvarabengali","anusvaradeva","anusvaragujarati","aogonek","apaatosquare","aparen","apostrophearmenian","apostrophemod","apple","approaches","approxequal","approxequalorimage","approximatelyequal","araeaekorean","araeakorean","arc","arighthalfring","aring","aringacute","aringbelow","arrowboth","arrowdashdown","arrowdashleft","arrowdashright","arrowdashup","arrowdblboth","arrowdbldown","arrowdblleft","arrowdblright","arrowdblup","arrowdown","arrowdownleft","arrowdownright","arrowdownwhite","arrowheaddownmod","arrowheadleftmod","arrowheadrightmod","arrowheadupmod","arrowhorizex","arrowleft","arrowleftdbl","arrowleftdblstroke","arrowleftoverright","arrowleftwhite","arrowright","arrowrightdblstroke","arrowrightheavy","arrowrightoverleft","arrowrightwhite","arrowtableft","arrowtabright","arrowup","arrowupdn","arrowupdnbse","arrowupdownbase","arrowupleft","arrowupleftofdown","arrowupright","arrowupwhite","arrowvertex","asciicircum","asciicircummonospace","asciitilde","asciitildemonospace","ascript","ascriptturned","asmallhiragana","asmallkatakana","asmallkatakanahalfwidth","asterisk","asteriskaltonearabic","asteriskarabic","asteriskmath","asteriskmonospace","asterisksmall","asterism","asuperior","asymptoticallyequal","atilde","atmonospace","atsmall","aturned","aubengali","aubopomofo","audeva","augujarati","augurmukhi","aulengthmarkbengali","aumatragurmukhi","auvowelsignbengali","auvowelsigndeva","auvowelsigngujarati","avagrahadeva","aybarmenian","ayin","ayinaltonehebrew","ayinhebrew","babengali","backslash","backslashmonospace","badeva","bagujarati","bagurmukhi","bahiragana","bahtthai","bakatakana","bar","barmonospace","bbopomofo","bcircle","bdotaccent","bdotbelow","beamedsixteenthnotes","because","becyrillic","beharabic","behfinalarabic","behinitialarabic","behiragana","behmedialarabic","behmeeminitialarabic","behmeemisolatedarabic","behnoonfinalarabic","bekatakana","benarmenian","bet","betasymbolgreek","betdagesh","betdageshhebrew","bethebrew","betrafehebrew","bhabengali","bhadeva","bhagujarati","bhagurmukhi","bhook","bihiragana","bikatakana","bilabialclick","bindigurmukhi","birusquare","blackcircle","blackdiamond","blackdownpointingtriangle","blackleftpointingpointer","blackleftpointingtriangle","blacklenticularbracketleft","blacklenticularbracketleftvertical","blacklenticularbracketright","blacklenticularbracketrightvertical","blacklowerlefttriangle","blacklowerrighttriangle","blackrectangle","blackrightpointingpointer","blackrightpointingtriangle","blacksmallsquare","blacksmilingface","blacksquare","blackstar","blackupperlefttriangle","blackupperrighttriangle","blackuppointingsmalltriangle","blackuppointingtriangle","blank","blinebelow","bmonospace","bobaimaithai","bohiragana","bokatakana","bparen","bqsquare","braceex","braceleft","braceleftbt","braceleftmid","braceleftmonospace","braceleftsmall","bracelefttp","braceleftvertical","braceright","bracerightbt","bracerightmid","bracerightmonospace","bracerightsmall","bracerighttp","bracerightvertical","bracketleft","bracketleftbt","bracketleftex","bracketleftmonospace","bracketlefttp","bracketright","bracketrightbt","bracketrightex","bracketrightmonospace","bracketrighttp","breve","brevebelowcmb","brevecmb","breveinvertedbelowcmb","breveinvertedcmb","breveinverteddoublecmb","bridgebelowcmb","bridgeinvertedbelowcmb","brokenbar","bstroke","bsuperior","btopbar","buhiragana","bukatakana","bullet","bulletinverse","bulletoperator","bullseye","caarmenian","cabengali","cacute","cadeva","cagujarati","cagurmukhi","calsquare","candrabindubengali","candrabinducmb","candrabindudeva","candrabindugujarati","capslock","careof","caron","caronbelowcmb","caroncmb","carriagereturn","cbopomofo","ccaron","ccedilla","ccedillaacute","ccircle","ccircumflex","ccurl","cdot","cdotaccent","cdsquare","cedilla","cedillacmb","cent","centigrade","centinferior","centmonospace","centoldstyle","centsuperior","chaarmenian","chabengali","chadeva","chagujarati","chagurmukhi","chbopomofo","cheabkhasiancyrillic","checkmark","checyrillic","chedescenderabkhasiancyrillic","chedescendercyrillic","chedieresiscyrillic","cheharmenian","chekhakassiancyrillic","cheverticalstrokecyrillic","chi","chieuchacirclekorean","chieuchaparenkorean","chieuchcirclekorean","chieuchkorean","chieuchparenkorean","chochangthai","chochanthai","chochingthai","chochoethai","chook","cieucacirclekorean","cieucaparenkorean","cieuccirclekorean","cieuckorean","cieucparenkorean","cieucuparenkorean","circle","circlecopyrt","circlemultiply","circleot","circleplus","circlepostalmark","circlewithlefthalfblack","circlewithrighthalfblack","circumflex","circumflexbelowcmb","circumflexcmb","clickalveolar","clickdental","clicklateral","clickretroflex","club","clubsuitblack","clubsuitwhite","cmcubedsquare","cmonospace","cmsquaredsquare","coarmenian","colon","colonmonetary","colonmonospace","colonsign","colonsmall","colontriangularhalfmod","colontriangularmod","comma","commaabovecmb","commaaboverightcmb","commaaccent","commaarabic","commaarmenian","commainferior","commamonospace","commareversedabovecmb","commareversedmod","commasmall","commasuperior","commaturnedabovecmb","commaturnedmod","compass","congruent","contourintegral","control","controlACK","controlBEL","controlBS","controlCAN","controlCR","controlDC1","controlDC2","controlDC3","controlDC4","controlDEL","controlDLE","controlEM","controlENQ","controlEOT","controlESC","controlETB","controlETX","controlFF","controlFS","controlGS","controlHT","controlLF","controlNAK","controlNULL","controlRS","controlSI","controlSO","controlSOT","controlSTX","controlSUB","controlSYN","controlUS","controlVT","copyright","copyrightsans","copyrightserif","cornerbracketleft","cornerbracketlefthalfwidth","cornerbracketleftvertical","cornerbracketright","cornerbracketrighthalfwidth","cornerbracketrightvertical","corporationsquare","cosquare","coverkgsquare","cparen","cruzeiro","cstretched","curlyand","curlyor","currency","cyrBreve","cyrFlex","cyrbreve","cyrflex","daarmenian","dabengali","dadarabic","dadeva","dadfinalarabic","dadinitialarabic","dadmedialarabic","dagesh","dageshhebrew","dagger","daggerdbl","dagujarati","dagurmukhi","dahiragana","dakatakana","dalarabic","dalet","daletdagesh","daletdageshhebrew","dalethebrew","dalfinalarabic","dammaarabic","dammalowarabic","dammatanaltonearabic","dammatanarabic","danda","dargahebrew","dargalefthebrew","dasiapneumatacyrilliccmb","dblGrave","dblanglebracketleft","dblanglebracketleftvertical","dblanglebracketright","dblanglebracketrightvertical","dblarchinvertedbelowcmb","dblarrowleft","dblarrowright","dbldanda","dblgrave","dblgravecmb","dblintegral","dbllowline","dbllowlinecmb","dbloverlinecmb","dblprimemod","dblverticalbar","dblverticallineabovecmb","dbopomofo","dbsquare","dcaron","dcedilla","dcircle","dcircumflexbelow","dcroat","ddabengali","ddadeva","ddagujarati","ddagurmukhi","ddalarabic","ddalfinalarabic","dddhadeva","ddhabengali","ddhadeva","ddhagujarati","ddhagurmukhi","ddotaccent","ddotbelow","decimalseparatorarabic","decimalseparatorpersian","decyrillic","degree","dehihebrew","dehiragana","deicoptic","dekatakana","deleteleft","deleteright","deltaturned","denominatorminusonenumeratorbengali","dezh","dhabengali","dhadeva","dhagujarati","dhagurmukhi","dhook","dialytikatonos","dialytikatonoscmb","diamond","diamondsuitwhite","dieresis","dieresisacute","dieresisbelowcmb","dieresiscmb","dieresisgrave","dieresistonos","dihiragana","dikatakana","dittomark","divide","divides","divisionslash","djecyrillic","dkshade","dlinebelow","dlsquare","dmacron","dmonospace","dnblock","dochadathai","dodekthai","dohiragana","dokatakana","dollar","dollarinferior","dollarmonospace","dollaroldstyle","dollarsmall","dollarsuperior","dong","dorusquare","dotaccent","dotaccentcmb","dotbelowcmb","dotbelowcomb","dotkatakana","dotlessi","dotlessj","dotlessjstrokehook","dotmath","dottedcircle","doubleyodpatah","doubleyodpatahhebrew","downtackbelowcmb","downtackmod","dparen","dsuperior","dtail","dtopbar","duhiragana","dukatakana","dz","dzaltone","dzcaron","dzcurl","dzeabkhasiancyrillic","dzecyrillic","dzhecyrillic","eacute","earth","ebengali","ebopomofo","ebreve","ecandradeva","ecandragujarati","ecandravowelsigndeva","ecandravowelsigngujarati","ecaron","ecedillabreve","echarmenian","echyiwnarmenian","ecircle","ecircumflex","ecircumflexacute","ecircumflexbelow","ecircumflexdotbelow","ecircumflexgrave","ecircumflexhookabove","ecircumflextilde","ecyrillic","edblgrave","edeva","edieresis","edot","edotaccent","edotbelow","eegurmukhi","eematragurmukhi","efcyrillic","egrave","egujarati","eharmenian","ehbopomofo","ehiragana","ehookabove","eibopomofo","eight","eightarabic","eightbengali","eightcircle","eightcircleinversesansserif","eightdeva","eighteencircle","eighteenparen","eighteenperiod","eightgujarati","eightgurmukhi","eighthackarabic","eighthangzhou","eighthnotebeamed","eightideographicparen","eightinferior","eightmonospace","eightoldstyle","eightparen","eightperiod","eightpersian","eightroman","eightsuperior","eightthai","einvertedbreve","eiotifiedcyrillic","ekatakana","ekatakanahalfwidth","ekonkargurmukhi","ekorean","elcyrillic","elevencircle","elevenparen","elevenperiod","elevenroman","ellipsis","ellipsisvertical","emacron","emacronacute","emacrongrave","emcyrillic","emdash","emdashvertical","emonospace","emphasismarkarmenian","emptyset","enbopomofo","encyrillic","endash","endashvertical","endescendercyrillic","eng","engbopomofo","enghecyrillic","enhookcyrillic","enspace","eogonek","eokorean","eopen","eopenclosed","eopenreversed","eopenreversedclosed","eopenreversedhook","eparen","epsilontonos","equal","equalmonospace","equalsmall","equalsuperior","equivalence","erbopomofo","ercyrillic","ereversed","ereversedcyrillic","escyrillic","esdescendercyrillic","esh","eshcurl","eshortdeva","eshortvowelsigndeva","eshreversedloop","eshsquatreversed","esmallhiragana","esmallkatakana","esmallkatakanahalfwidth","estimated","esuperior","eta","etarmenian","etatonos","eth","etilde","etildebelow","etnahtafoukhhebrew","etnahtafoukhlefthebrew","etnahtahebrew","etnahtalefthebrew","eturned","eukorean","euro","evowelsignbengali","evowelsigndeva","evowelsigngujarati","exclam","exclamarmenian","exclamdbl","exclamdown","exclamdownsmall","exclammonospace","exclamsmall","existential","ezh","ezhcaron","ezhcurl","ezhreversed","ezhtail","fadeva","fagurmukhi","fahrenheit","fathaarabic","fathalowarabic","fathatanarabic","fbopomofo","fcircle","fdotaccent","feharabic","feharmenian","fehfinalarabic","fehinitialarabic","fehmedialarabic","feicoptic","female","ff","f_f","ffi","ffl","fi","fifteencircle","fifteenparen","fifteenperiod","figuredash","filledbox","filledrect","finalkaf","finalkafdagesh","finalkafdageshhebrew","finalkafhebrew","finalmem","finalmemhebrew","finalnun","finalnunhebrew","finalpe","finalpehebrew","finaltsadi","finaltsadihebrew","firsttonechinese","fisheye","fitacyrillic","five","fivearabic","fivebengali","fivecircle","fivecircleinversesansserif","fivedeva","fiveeighths","fivegujarati","fivegurmukhi","fivehackarabic","fivehangzhou","fiveideographicparen","fiveinferior","fivemonospace","fiveoldstyle","fiveparen","fiveperiod","fivepersian","fiveroman","fivesuperior","fivethai","fl","florin","fmonospace","fmsquare","fofanthai","fofathai","fongmanthai","forall","four","fourarabic","fourbengali","fourcircle","fourcircleinversesansserif","fourdeva","fourgujarati","fourgurmukhi","fourhackarabic","fourhangzhou","fourideographicparen","fourinferior","fourmonospace","fournumeratorbengali","fouroldstyle","fourparen","fourperiod","fourpersian","fourroman","foursuperior","fourteencircle","fourteenparen","fourteenperiod","fourthai","fourthtonechinese","fparen","fraction","franc","gabengali","gacute","gadeva","gafarabic","gaffinalarabic","gafinitialarabic","gafmedialarabic","gagujarati","gagurmukhi","gahiragana","gakatakana","gammalatinsmall","gammasuperior","gangiacoptic","gbopomofo","gbreve","gcaron","gcedilla","gcircle","gcircumflex","gcommaaccent","gdot","gdotaccent","gecyrillic","gehiragana","gekatakana","geometricallyequal","gereshaccenthebrew","gereshhebrew","gereshmuqdamhebrew","germandbls","gershayimaccenthebrew","gershayimhebrew","getamark","ghabengali","ghadarmenian","ghadeva","ghagujarati","ghagurmukhi","ghainarabic","ghainfinalarabic","ghaininitialarabic","ghainmedialarabic","ghemiddlehookcyrillic","ghestrokecyrillic","gheupturncyrillic","ghhadeva","ghhagurmukhi","ghook","ghzsquare","gihiragana","gikatakana","gimarmenian","gimel","gimeldagesh","gimeldageshhebrew","gimelhebrew","gjecyrillic","glottalinvertedstroke","glottalstop","glottalstopinverted","glottalstopmod","glottalstopreversed","glottalstopreversedmod","glottalstopreversedsuperior","glottalstopstroke","glottalstopstrokereversed","gmacron","gmonospace","gohiragana","gokatakana","gparen","gpasquare","gradient","grave","gravebelowcmb","gravecmb","gravecomb","gravedeva","gravelowmod","gravemonospace","gravetonecmb","greater","greaterequal","greaterequalorless","greatermonospace","greaterorequivalent","greaterorless","greateroverequal","greatersmall","gscript","gstroke","guhiragana","guillemotleft","guillemotright","guilsinglleft","guilsinglright","gukatakana","guramusquare","gysquare","haabkhasiancyrillic","haaltonearabic","habengali","hadescendercyrillic","hadeva","hagujarati","hagurmukhi","haharabic","hahfinalarabic","hahinitialarabic","hahiragana","hahmedialarabic","haitusquare","hakatakana","hakatakanahalfwidth","halantgurmukhi","hamzaarabic","hamzalowarabic","hangulfiller","hardsigncyrillic","harpoonleftbarbup","harpoonrightbarbup","hasquare","hatafpatah","hatafpatah16","hatafpatah23","hatafpatah2f","hatafpatahhebrew","hatafpatahnarrowhebrew","hatafpatahquarterhebrew","hatafpatahwidehebrew","hatafqamats","hatafqamats1b","hatafqamats28","hatafqamats34","hatafqamatshebrew","hatafqamatsnarrowhebrew","hatafqamatsquarterhebrew","hatafqamatswidehebrew","hatafsegol","hatafsegol17","hatafsegol24","hatafsegol30","hatafsegolhebrew","hatafsegolnarrowhebrew","hatafsegolquarterhebrew","hatafsegolwidehebrew","hbar","hbopomofo","hbrevebelow","hcedilla","hcircle","hcircumflex","hdieresis","hdotaccent","hdotbelow","he","heart","heartsuitblack","heartsuitwhite","hedagesh","hedageshhebrew","hehaltonearabic","heharabic","hehebrew","hehfinalaltonearabic","hehfinalalttwoarabic","hehfinalarabic","hehhamzaabovefinalarabic","hehhamzaaboveisolatedarabic","hehinitialaltonearabic","hehinitialarabic","hehiragana","hehmedialaltonearabic","hehmedialarabic","heiseierasquare","hekatakana","hekatakanahalfwidth","hekutaarusquare","henghook","herutusquare","het","hethebrew","hhook","hhooksuperior","hieuhacirclekorean","hieuhaparenkorean","hieuhcirclekorean","hieuhkorean","hieuhparenkorean","hihiragana","hikatakana","hikatakanahalfwidth","hiriq","hiriq14","hiriq21","hiriq2d","hiriqhebrew","hiriqnarrowhebrew","hiriqquarterhebrew","hiriqwidehebrew","hlinebelow","hmonospace","hoarmenian","hohipthai","hohiragana","hokatakana","hokatakanahalfwidth","holam","holam19","holam26","holam32","holamhebrew","holamnarrowhebrew","holamquarterhebrew","holamwidehebrew","honokhukthai","hookabovecomb","hookcmb","hookpalatalizedbelowcmb","hookretroflexbelowcmb","hoonsquare","horicoptic","horizontalbar","horncmb","hotsprings","house","hparen","hsuperior","hturned","huhiragana","huiitosquare","hukatakana","hukatakanahalfwidth","hungarumlaut","hungarumlautcmb","hv","hyphen","hypheninferior","hyphenmonospace","hyphensmall","hyphensuperior","hyphentwo","iacute","iacyrillic","ibengali","ibopomofo","ibreve","icaron","icircle","icircumflex","icyrillic","idblgrave","ideographearthcircle","ideographfirecircle","ideographicallianceparen","ideographiccallparen","ideographiccentrecircle","ideographicclose","ideographiccomma","ideographiccommaleft","ideographiccongratulationparen","ideographiccorrectcircle","ideographicearthparen","ideographicenterpriseparen","ideographicexcellentcircle","ideographicfestivalparen","ideographicfinancialcircle","ideographicfinancialparen","ideographicfireparen","ideographichaveparen","ideographichighcircle","ideographiciterationmark","ideographiclaborcircle","ideographiclaborparen","ideographicleftcircle","ideographiclowcircle","ideographicmedicinecircle","ideographicmetalparen","ideographicmoonparen","ideographicnameparen","ideographicperiod","ideographicprintcircle","ideographicreachparen","ideographicrepresentparen","ideographicresourceparen","ideographicrightcircle","ideographicsecretcircle","ideographicselfparen","ideographicsocietyparen","ideographicspace","ideographicspecialparen","ideographicstockparen","ideographicstudyparen","ideographicsunparen","ideographicsuperviseparen","ideographicwaterparen","ideographicwoodparen","ideographiczero","ideographmetalcircle","ideographmooncircle","ideographnamecircle","ideographsuncircle","ideographwatercircle","ideographwoodcircle","ideva","idieresis","idieresisacute","idieresiscyrillic","idotbelow","iebrevecyrillic","iecyrillic","ieungacirclekorean","ieungaparenkorean","ieungcirclekorean","ieungkorean","ieungparenkorean","igrave","igujarati","igurmukhi","ihiragana","ihookabove","iibengali","iicyrillic","iideva","iigujarati","iigurmukhi","iimatragurmukhi","iinvertedbreve","iishortcyrillic","iivowelsignbengali","iivowelsigndeva","iivowelsigngujarati","ij","ikatakana","ikatakanahalfwidth","ikorean","ilde","iluyhebrew","imacron","imacroncyrillic","imageorapproximatelyequal","imatragurmukhi","imonospace","increment","infinity","iniarmenian","integral","integralbottom","integralbt","integralex","integraltop","integraltp","intersection","intisquare","invbullet","invcircle","invsmileface","iocyrillic","iogonek","iota","iotadieresis","iotadieresistonos","iotalatin","iotatonos","iparen","irigurmukhi","ismallhiragana","ismallkatakana","ismallkatakanahalfwidth","issharbengali","istroke","isuperior","iterationhiragana","iterationkatakana","itilde","itildebelow","iubopomofo","iucyrillic","ivowelsignbengali","ivowelsigndeva","ivowelsigngujarati","izhitsacyrillic","izhitsadblgravecyrillic","jaarmenian","jabengali","jadeva","jagujarati","jagurmukhi","jbopomofo","jcaron","jcircle","jcircumflex","jcrossedtail","jdotlessstroke","jecyrillic","jeemarabic","jeemfinalarabic","jeeminitialarabic","jeemmedialarabic","jeharabic","jehfinalarabic","jhabengali","jhadeva","jhagujarati","jhagurmukhi","jheharmenian","jis","jmonospace","jparen","jsuperior","kabashkircyrillic","kabengali","kacute","kacyrillic","kadescendercyrillic","kadeva","kaf","kafarabic","kafdagesh","kafdageshhebrew","kaffinalarabic","kafhebrew","kafinitialarabic","kafmedialarabic","kafrafehebrew","kagujarati","kagurmukhi","kahiragana","kahookcyrillic","kakatakana","kakatakanahalfwidth","kappa","kappasymbolgreek","kapyeounmieumkorean","kapyeounphieuphkorean","kapyeounpieupkorean","kapyeounssangpieupkorean","karoriisquare","kashidaautoarabic","kashidaautonosidebearingarabic","kasmallkatakana","kasquare","kasraarabic","kasratanarabic","kastrokecyrillic","katahiraprolongmarkhalfwidth","kaverticalstrokecyrillic","kbopomofo","kcalsquare","kcaron","kcedilla","kcircle","kcommaaccent","kdotbelow","keharmenian","kehiragana","kekatakana","kekatakanahalfwidth","kenarmenian","kesmallkatakana","kgreenlandic","khabengali","khacyrillic","khadeva","khagujarati","khagurmukhi","khaharabic","khahfinalarabic","khahinitialarabic","khahmedialarabic","kheicoptic","khhadeva","khhagurmukhi","khieukhacirclekorean","khieukhaparenkorean","khieukhcirclekorean","khieukhkorean","khieukhparenkorean","khokhaithai","khokhonthai","khokhuatthai","khokhwaithai","khomutthai","khook","khorakhangthai","khzsquare","kihiragana","kikatakana","kikatakanahalfwidth","kiroguramusquare","kiromeetorusquare","kirosquare","kiyeokacirclekorean","kiyeokaparenkorean","kiyeokcirclekorean","kiyeokkorean","kiyeokparenkorean","kiyeoksioskorean","kjecyrillic","klinebelow","klsquare","kmcubedsquare","kmonospace","kmsquaredsquare","kohiragana","kohmsquare","kokaithai","kokatakana","kokatakanahalfwidth","kooposquare","koppacyrillic","koreanstandardsymbol","koroniscmb","kparen","kpasquare","ksicyrillic","ktsquare","kturned","kuhiragana","kukatakana","kukatakanahalfwidth","kvsquare","kwsquare","labengali","lacute","ladeva","lagujarati","lagurmukhi","lakkhangyaothai","lamaleffinalarabic","lamalefhamzaabovefinalarabic","lamalefhamzaaboveisolatedarabic","lamalefhamzabelowfinalarabic","lamalefhamzabelowisolatedarabic","lamalefisolatedarabic","lamalefmaddaabovefinalarabic","lamalefmaddaaboveisolatedarabic","lamarabic","lambda","lambdastroke","lamed","lameddagesh","lameddageshhebrew","lamedhebrew","lamfinalarabic","lamhahinitialarabic","laminitialarabic","lamjeeminitialarabic","lamkhahinitialarabic","lamlamhehisolatedarabic","lammedialarabic","lammeemhahinitialarabic","lammeeminitialarabic","largecircle","lbar","lbelt","lbopomofo","lcaron","lcedilla","lcircle","lcircumflexbelow","lcommaaccent","ldot","ldotaccent","ldotbelow","ldotbelowmacron","leftangleabovecmb","lefttackbelowcmb","less","lessequal","lessequalorgreater","lessmonospace","lessorequivalent","lessorgreater","lessoverequal","lesssmall","lezh","lfblock","lhookretroflex","lira","liwnarmenian","lj","ljecyrillic","lladeva","llagujarati","llinebelow","llladeva","llvocalicbengali","llvocalicdeva","llvocalicvowelsignbengali","llvocalicvowelsigndeva","lmiddletilde","lmonospace","lmsquare","lochulathai","logicaland","logicalnot","logicalnotreversed","logicalor","lolingthai","longs","lowlinecenterline","lowlinecmb","lowlinedashed","lozenge","lparen","lslash","lsquare","lsuperior","ltshade","luthai","lvocalicbengali","lvocalicdeva","lvocalicvowelsignbengali","lvocalicvowelsigndeva","lxsquare","mabengali","macron","macronbelowcmb","macroncmb","macronlowmod","macronmonospace","macute","madeva","magujarati","magurmukhi","mahapakhhebrew","mahapakhlefthebrew","mahiragana","maichattawalowleftthai","maichattawalowrightthai","maichattawathai","maichattawaupperleftthai","maieklowleftthai","maieklowrightthai","maiekthai","maiekupperleftthai","maihanakatleftthai","maihanakatthai","maitaikhuleftthai","maitaikhuthai","maitholowleftthai","maitholowrightthai","maithothai","maithoupperleftthai","maitrilowleftthai","maitrilowrightthai","maitrithai","maitriupperleftthai","maiyamokthai","makatakana","makatakanahalfwidth","male","mansyonsquare","maqafhebrew","mars","masoracirclehebrew","masquare","mbopomofo","mbsquare","mcircle","mcubedsquare","mdotaccent","mdotbelow","meemarabic","meemfinalarabic","meeminitialarabic","meemmedialarabic","meemmeeminitialarabic","meemmeemisolatedarabic","meetorusquare","mehiragana","meizierasquare","mekatakana","mekatakanahalfwidth","mem","memdagesh","memdageshhebrew","memhebrew","menarmenian","merkhahebrew","merkhakefulahebrew","merkhakefulalefthebrew","merkhalefthebrew","mhook","mhzsquare","middledotkatakanahalfwidth","middot","mieumacirclekorean","mieumaparenkorean","mieumcirclekorean","mieumkorean","mieumpansioskorean","mieumparenkorean","mieumpieupkorean","mieumsioskorean","mihiragana","mikatakana","mikatakanahalfwidth","minus","minusbelowcmb","minuscircle","minusmod","minusplus","minute","miribaarusquare","mirisquare","mlonglegturned","mlsquare","mmcubedsquare","mmonospace","mmsquaredsquare","mohiragana","mohmsquare","mokatakana","mokatakanahalfwidth","molsquare","momathai","moverssquare","moverssquaredsquare","mparen","mpasquare","mssquare","msuperior","mturned","mu1","muasquare","muchgreater","muchless","mufsquare","mugreek","mugsquare","muhiragana","mukatakana","mukatakanahalfwidth","mulsquare","multiply","mumsquare","munahhebrew","munahlefthebrew","musicalnote","musicalnotedbl","musicflatsign","musicsharpsign","mussquare","muvsquare","muwsquare","mvmegasquare","mvsquare","mwmegasquare","mwsquare","nabengali","nabla","nacute","nadeva","nagujarati","nagurmukhi","nahiragana","nakatakana","nakatakanahalfwidth","napostrophe","nasquare","nbopomofo","nbspace","ncaron","ncedilla","ncircle","ncircumflexbelow","ncommaaccent","ndotaccent","ndotbelow","nehiragana","nekatakana","nekatakanahalfwidth","newsheqelsign","nfsquare","ngabengali","ngadeva","ngagujarati","ngagurmukhi","ngonguthai","nhiragana","nhookleft","nhookretroflex","nieunacirclekorean","nieunaparenkorean","nieuncieuckorean","nieuncirclekorean","nieunhieuhkorean","nieunkorean","nieunpansioskorean","nieunparenkorean","nieunsioskorean","nieuntikeutkorean","nihiragana","nikatakana","nikatakanahalfwidth","nikhahitleftthai","nikhahitthai","nine","ninearabic","ninebengali","ninecircle","ninecircleinversesansserif","ninedeva","ninegujarati","ninegurmukhi","ninehackarabic","ninehangzhou","nineideographicparen","nineinferior","ninemonospace","nineoldstyle","nineparen","nineperiod","ninepersian","nineroman","ninesuperior","nineteencircle","nineteenparen","nineteenperiod","ninethai","nj","njecyrillic","nkatakana","nkatakanahalfwidth","nlegrightlong","nlinebelow","nmonospace","nmsquare","nnabengali","nnadeva","nnagujarati","nnagurmukhi","nnnadeva","nohiragana","nokatakana","nokatakanahalfwidth","nonbreakingspace","nonenthai","nonuthai","noonarabic","noonfinalarabic","noonghunnaarabic","noonghunnafinalarabic","nooninitialarabic","noonjeeminitialarabic","noonjeemisolatedarabic","noonmedialarabic","noonmeeminitialarabic","noonmeemisolatedarabic","noonnoonfinalarabic","notcontains","notelement","notelementof","notequal","notgreater","notgreaternorequal","notgreaternorless","notidentical","notless","notlessnorequal","notparallel","notprecedes","notsubset","notsucceeds","notsuperset","nowarmenian","nparen","nssquare","nsuperior","ntilde","nuhiragana","nukatakana","nukatakanahalfwidth","nuktabengali","nuktadeva","nuktagujarati","nuktagurmukhi","numbersign","numbersignmonospace","numbersignsmall","numeralsigngreek","numeralsignlowergreek","numero","nun","nundagesh","nundageshhebrew","nunhebrew","nvsquare","nwsquare","nyabengali","nyadeva","nyagujarati","nyagurmukhi","oacute","oangthai","obarred","obarredcyrillic","obarreddieresiscyrillic","obengali","obopomofo","obreve","ocandradeva","ocandragujarati","ocandravowelsigndeva","ocandravowelsigngujarati","ocaron","ocircle","ocircumflex","ocircumflexacute","ocircumflexdotbelow","ocircumflexgrave","ocircumflexhookabove","ocircumflextilde","ocyrillic","odblacute","odblgrave","odeva","odieresis","odieresiscyrillic","odotbelow","oe","oekorean","ogonek","ogonekcmb","ograve","ogujarati","oharmenian","ohiragana","ohookabove","ohorn","ohornacute","ohorndotbelow","ohorngrave","ohornhookabove","ohorntilde","ohungarumlaut","oi","oinvertedbreve","okatakana","okatakanahalfwidth","okorean","olehebrew","omacron","omacronacute","omacrongrave","omdeva","omega","omega1","omegacyrillic","omegalatinclosed","omegaroundcyrillic","omegatitlocyrillic","omegatonos","omgujarati","omicron","omicrontonos","omonospace","one","onearabic","onebengali","onecircle","onecircleinversesansserif","onedeva","onedotenleader","oneeighth","onefitted","onegujarati","onegurmukhi","onehackarabic","onehalf","onehangzhou","oneideographicparen","oneinferior","onemonospace","onenumeratorbengali","oneoldstyle","oneparen","oneperiod","onepersian","onequarter","oneroman","onesuperior","onethai","onethird","oogonek","oogonekmacron","oogurmukhi","oomatragurmukhi","oopen","oparen","openbullet","ordfeminine","ordmasculine","orthogonal","oshortdeva","oshortvowelsigndeva","oslash","oslashacute","osmallhiragana","osmallkatakana","osmallkatakanahalfwidth","ostrokeacute","osuperior","otcyrillic","otilde","otildeacute","otildedieresis","oubopomofo","overline","overlinecenterline","overlinecmb","overlinedashed","overlinedblwavy","overlinewavy","overscore","ovowelsignbengali","ovowelsigndeva","ovowelsigngujarati","paampssquare","paasentosquare","pabengali","pacute","padeva","pagedown","pageup","pagujarati","pagurmukhi","pahiragana","paiyannoithai","pakatakana","palatalizationcyrilliccmb","palochkacyrillic","pansioskorean","paragraph","parallel","parenleft","parenleftaltonearabic","parenleftbt","parenleftex","parenleftinferior","parenleftmonospace","parenleftsmall","parenleftsuperior","parenlefttp","parenleftvertical","parenright","parenrightaltonearabic","parenrightbt","parenrightex","parenrightinferior","parenrightmonospace","parenrightsmall","parenrightsuperior","parenrighttp","parenrightvertical","partialdiff","paseqhebrew","pashtahebrew","pasquare","patah","patah11","patah1d","patah2a","patahhebrew","patahnarrowhebrew","patahquarterhebrew","patahwidehebrew","pazerhebrew","pbopomofo","pcircle","pdotaccent","pe","pecyrillic","pedagesh","pedageshhebrew","peezisquare","pefinaldageshhebrew","peharabic","peharmenian","pehebrew","pehfinalarabic","pehinitialarabic","pehiragana","pehmedialarabic","pekatakana","pemiddlehookcyrillic","perafehebrew","percent","percentarabic","percentmonospace","percentsmall","period","periodarmenian","periodcentered","periodhalfwidth","periodinferior","periodmonospace","periodsmall","periodsuperior","perispomenigreekcmb","perpendicular","perthousand","peseta","pfsquare","phabengali","phadeva","phagujarati","phagurmukhi","phi","phi1","phieuphacirclekorean","phieuphaparenkorean","phieuphcirclekorean","phieuphkorean","phieuphparenkorean","philatin","phinthuthai","phisymbolgreek","phook","phophanthai","phophungthai","phosamphaothai","pieupacirclekorean","pieupaparenkorean","pieupcieuckorean","pieupcirclekorean","pieupkiyeokkorean","pieupkorean","pieupparenkorean","pieupsioskiyeokkorean","pieupsioskorean","pieupsiostikeutkorean","pieupthieuthkorean","pieuptikeutkorean","pihiragana","pikatakana","pisymbolgreek","piwrarmenian","plus","plusbelowcmb","pluscircle","plusminus","plusmod","plusmonospace","plussmall","plussuperior","pmonospace","pmsquare","pohiragana","pointingindexdownwhite","pointingindexleftwhite","pointingindexrightwhite","pointingindexupwhite","pokatakana","poplathai","postalmark","postalmarkface","pparen","precedes","prescription","primemod","primereversed","product","projective","prolongedkana","propellor","propersubset","propersuperset","proportion","proportional","psi","psicyrillic","psilipneumatacyrilliccmb","pssquare","puhiragana","pukatakana","pvsquare","pwsquare","qadeva","qadmahebrew","qafarabic","qaffinalarabic","qafinitialarabic","qafmedialarabic","qamats","qamats10","qamats1a","qamats1c","qamats27","qamats29","qamats33","qamatsde","qamatshebrew","qamatsnarrowhebrew","qamatsqatanhebrew","qamatsqatannarrowhebrew","qamatsqatanquarterhebrew","qamatsqatanwidehebrew","qamatsquarterhebrew","qamatswidehebrew","qarneyparahebrew","qbopomofo","qcircle","qhook","qmonospace","qof","qofdagesh","qofdageshhebrew","qofhebrew","qparen","quarternote","qubuts","qubuts18","qubuts25","qubuts31","qubutshebrew","qubutsnarrowhebrew","qubutsquarterhebrew","qubutswidehebrew","question","questionarabic","questionarmenian","questiondown","questiondownsmall","questiongreek","questionmonospace","questionsmall","quotedbl","quotedblbase","quotedblleft","quotedblmonospace","quotedblprime","quotedblprimereversed","quotedblright","quoteleft","quoteleftreversed","quotereversed","quoteright","quoterightn","quotesinglbase","quotesingle","quotesinglemonospace","raarmenian","rabengali","racute","radeva","radical","radicalex","radoverssquare","radoverssquaredsquare","radsquare","rafe","rafehebrew","ragujarati","ragurmukhi","rahiragana","rakatakana","rakatakanahalfwidth","ralowerdiagonalbengali","ramiddlediagonalbengali","ramshorn","ratio","rbopomofo","rcaron","rcedilla","rcircle","rcommaaccent","rdblgrave","rdotaccent","rdotbelow","rdotbelowmacron","referencemark","reflexsubset","reflexsuperset","registered","registersans","registerserif","reharabic","reharmenian","rehfinalarabic","rehiragana","rekatakana","rekatakanahalfwidth","resh","reshdageshhebrew","reshhebrew","reversedtilde","reviahebrew","reviamugrashhebrew","revlogicalnot","rfishhook","rfishhookreversed","rhabengali","rhadeva","rho","rhook","rhookturned","rhookturnedsuperior","rhosymbolgreek","rhotichookmod","rieulacirclekorean","rieulaparenkorean","rieulcirclekorean","rieulhieuhkorean","rieulkiyeokkorean","rieulkiyeoksioskorean","rieulkorean","rieulmieumkorean","rieulpansioskorean","rieulparenkorean","rieulphieuphkorean","rieulpieupkorean","rieulpieupsioskorean","rieulsioskorean","rieulthieuthkorean","rieultikeutkorean","rieulyeorinhieuhkorean","rightangle","righttackbelowcmb","righttriangle","rihiragana","rikatakana","rikatakanahalfwidth","ring","ringbelowcmb","ringcmb","ringhalfleft","ringhalfleftarmenian","ringhalfleftbelowcmb","ringhalfleftcentered","ringhalfright","ringhalfrightbelowcmb","ringhalfrightcentered","rinvertedbreve","rittorusquare","rlinebelow","rlongleg","rlonglegturned","rmonospace","rohiragana","rokatakana","rokatakanahalfwidth","roruathai","rparen","rrabengali","rradeva","rragurmukhi","rreharabic","rrehfinalarabic","rrvocalicbengali","rrvocalicdeva","rrvocalicgujarati","rrvocalicvowelsignbengali","rrvocalicvowelsigndeva","rrvocalicvowelsigngujarati","rsuperior","rtblock","rturned","rturnedsuperior","ruhiragana","rukatakana","rukatakanahalfwidth","rupeemarkbengali","rupeesignbengali","rupiah","ruthai","rvocalicbengali","rvocalicdeva","rvocalicgujarati","rvocalicvowelsignbengali","rvocalicvowelsigndeva","rvocalicvowelsigngujarati","sabengali","sacute","sacutedotaccent","sadarabic","sadeva","sadfinalarabic","sadinitialarabic","sadmedialarabic","sagujarati","sagurmukhi","sahiragana","sakatakana","sakatakanahalfwidth","sallallahoualayhewasallamarabic","samekh","samekhdagesh","samekhdageshhebrew","samekhhebrew","saraaathai","saraaethai","saraaimaimalaithai","saraaimaimuanthai","saraamthai","saraathai","saraethai","saraiileftthai","saraiithai","saraileftthai","saraithai","saraothai","saraueeleftthai","saraueethai","saraueleftthai","sarauethai","sarauthai","sarauuthai","sbopomofo","scaron","scarondotaccent","scedilla","schwa","schwacyrillic","schwadieresiscyrillic","schwahook","scircle","scircumflex","scommaaccent","sdotaccent","sdotbelow","sdotbelowdotaccent","seagullbelowcmb","secondtonechinese","section","seenarabic","seenfinalarabic","seeninitialarabic","seenmedialarabic","segol","segol13","segol1f","segol2c","segolhebrew","segolnarrowhebrew","segolquarterhebrew","segoltahebrew","segolwidehebrew","seharmenian","sehiragana","sekatakana","sekatakanahalfwidth","semicolon","semicolonarabic","semicolonmonospace","semicolonsmall","semivoicedmarkkana","semivoicedmarkkanahalfwidth","sentisquare","sentosquare","seven","sevenarabic","sevenbengali","sevencircle","sevencircleinversesansserif","sevendeva","seveneighths","sevengujarati","sevengurmukhi","sevenhackarabic","sevenhangzhou","sevenideographicparen","seveninferior","sevenmonospace","sevenoldstyle","sevenparen","sevenperiod","sevenpersian","sevenroman","sevensuperior","seventeencircle","seventeenparen","seventeenperiod","seventhai","sfthyphen","shaarmenian","shabengali","shacyrillic","shaddaarabic","shaddadammaarabic","shaddadammatanarabic","shaddafathaarabic","shaddakasraarabic","shaddakasratanarabic","shade","shadedark","shadelight","shademedium","shadeva","shagujarati","shagurmukhi","shalshelethebrew","shbopomofo","shchacyrillic","sheenarabic","sheenfinalarabic","sheeninitialarabic","sheenmedialarabic","sheicoptic","sheqel","sheqelhebrew","sheva","sheva115","sheva15","sheva22","sheva2e","shevahebrew","shevanarrowhebrew","shevaquarterhebrew","shevawidehebrew","shhacyrillic","shimacoptic","shin","shindagesh","shindageshhebrew","shindageshshindot","shindageshshindothebrew","shindageshsindot","shindageshsindothebrew","shindothebrew","shinhebrew","shinshindot","shinshindothebrew","shinsindot","shinsindothebrew","shook","sigma1","sigmafinal","sigmalunatesymbolgreek","sihiragana","sikatakana","sikatakanahalfwidth","siluqhebrew","siluqlefthebrew","similar","sindothebrew","siosacirclekorean","siosaparenkorean","sioscieuckorean","sioscirclekorean","sioskiyeokkorean","sioskorean","siosnieunkorean","siosparenkorean","siospieupkorean","siostikeutkorean","six","sixarabic","sixbengali","sixcircle","sixcircleinversesansserif","sixdeva","sixgujarati","sixgurmukhi","sixhackarabic","sixhangzhou","sixideographicparen","sixinferior","sixmonospace","sixoldstyle","sixparen","sixperiod","sixpersian","sixroman","sixsuperior","sixteencircle","sixteencurrencydenominatorbengali","sixteenparen","sixteenperiod","sixthai","slash","slashmonospace","slong","slongdotaccent","smileface","smonospace","sofpasuqhebrew","softhyphen","softsigncyrillic","sohiragana","sokatakana","sokatakanahalfwidth","soliduslongoverlaycmb","solidusshortoverlaycmb","sorusithai","sosalathai","sosothai","sosuathai","space","spacehackarabic","spade","spadesuitblack","spadesuitwhite","sparen","squarebelowcmb","squarecc","squarecm","squarediagonalcrosshatchfill","squarehorizontalfill","squarekg","squarekm","squarekmcapital","squareln","squarelog","squaremg","squaremil","squaremm","squaremsquared","squareorthogonalcrosshatchfill","squareupperlefttolowerrightfill","squareupperrighttolowerleftfill","squareverticalfill","squarewhitewithsmallblack","srsquare","ssabengali","ssadeva","ssagujarati","ssangcieuckorean","ssanghieuhkorean","ssangieungkorean","ssangkiyeokkorean","ssangnieunkorean","ssangpieupkorean","ssangsioskorean","ssangtikeutkorean","ssuperior","sterling","sterlingmonospace","strokelongoverlaycmb","strokeshortoverlaycmb","subset","subsetnotequal","subsetorequal","succeeds","suchthat","suhiragana","sukatakana","sukatakanahalfwidth","sukunarabic","summation","sun","superset","supersetnotequal","supersetorequal","svsquare","syouwaerasquare","tabengali","tackdown","tackleft","tadeva","tagujarati","tagurmukhi","taharabic","tahfinalarabic","tahinitialarabic","tahiragana","tahmedialarabic","taisyouerasquare","takatakana","takatakanahalfwidth","tatweelarabic","tau","tav","tavdages","tavdagesh","tavdageshhebrew","tavhebrew","tbar","tbopomofo","tcaron","tccurl","tcedilla","tcheharabic","tchehfinalarabic","tchehinitialarabic","tchehmedialarabic","tcircle","tcircumflexbelow","tcommaaccent","tdieresis","tdotaccent","tdotbelow","tecyrillic","tedescendercyrillic","teharabic","tehfinalarabic","tehhahinitialarabic","tehhahisolatedarabic","tehinitialarabic","tehiragana","tehjeeminitialarabic","tehjeemisolatedarabic","tehmarbutaarabic","tehmarbutafinalarabic","tehmedialarabic","tehmeeminitialarabic","tehmeemisolatedarabic","tehnoonfinalarabic","tekatakana","tekatakanahalfwidth","telephone","telephoneblack","telishagedolahebrew","telishaqetanahebrew","tencircle","tenideographicparen","tenparen","tenperiod","tenroman","tesh","tet","tetdagesh","tetdageshhebrew","tethebrew","tetsecyrillic","tevirhebrew","tevirlefthebrew","thabengali","thadeva","thagujarati","thagurmukhi","thalarabic","thalfinalarabic","thanthakhatlowleftthai","thanthakhatlowrightthai","thanthakhatthai","thanthakhatupperleftthai","theharabic","thehfinalarabic","thehinitialarabic","thehmedialarabic","thereexists","therefore","theta","theta1","thetasymbolgreek","thieuthacirclekorean","thieuthaparenkorean","thieuthcirclekorean","thieuthkorean","thieuthparenkorean","thirteencircle","thirteenparen","thirteenperiod","thonangmonthothai","thook","thophuthaothai","thorn","thothahanthai","thothanthai","thothongthai","thothungthai","thousandcyrillic","thousandsseparatorarabic","thousandsseparatorpersian","three","threearabic","threebengali","threecircle","threecircleinversesansserif","threedeva","threeeighths","threegujarati","threegurmukhi","threehackarabic","threehangzhou","threeideographicparen","threeinferior","threemonospace","threenumeratorbengali","threeoldstyle","threeparen","threeperiod","threepersian","threequarters","threequartersemdash","threeroman","threesuperior","threethai","thzsquare","tihiragana","tikatakana","tikatakanahalfwidth","tikeutacirclekorean","tikeutaparenkorean","tikeutcirclekorean","tikeutkorean","tikeutparenkorean","tilde","tildebelowcmb","tildecmb","tildecomb","tildedoublecmb","tildeoperator","tildeoverlaycmb","tildeverticalcmb","timescircle","tipehahebrew","tipehalefthebrew","tippigurmukhi","titlocyrilliccmb","tiwnarmenian","tlinebelow","tmonospace","toarmenian","tohiragana","tokatakana","tokatakanahalfwidth","tonebarextrahighmod","tonebarextralowmod","tonebarhighmod","tonebarlowmod","tonebarmidmod","tonefive","tonesix","tonetwo","tonos","tonsquare","topatakthai","tortoiseshellbracketleft","tortoiseshellbracketleftsmall","tortoiseshellbracketleftvertical","tortoiseshellbracketright","tortoiseshellbracketrightsmall","tortoiseshellbracketrightvertical","totaothai","tpalatalhook","tparen","trademark","trademarksans","trademarkserif","tretroflexhook","triagdn","triaglf","triagrt","triagup","ts","tsadi","tsadidagesh","tsadidageshhebrew","tsadihebrew","tsecyrillic","tsere","tsere12","tsere1e","tsere2b","tserehebrew","tserenarrowhebrew","tserequarterhebrew","tserewidehebrew","tshecyrillic","tsuperior","ttabengali","ttadeva","ttagujarati","ttagurmukhi","tteharabic","ttehfinalarabic","ttehinitialarabic","ttehmedialarabic","tthabengali","tthadeva","tthagujarati","tthagurmukhi","tturned","tuhiragana","tukatakana","tukatakanahalfwidth","tusmallhiragana","tusmallkatakana","tusmallkatakanahalfwidth","twelvecircle","twelveparen","twelveperiod","twelveroman","twentycircle","twentyhangzhou","twentyparen","twentyperiod","two","twoarabic","twobengali","twocircle","twocircleinversesansserif","twodeva","twodotenleader","twodotleader","twodotleadervertical","twogujarati","twogurmukhi","twohackarabic","twohangzhou","twoideographicparen","twoinferior","twomonospace","twonumeratorbengali","twooldstyle","twoparen","twoperiod","twopersian","tworoman","twostroke","twosuperior","twothai","twothirds","uacute","ubar","ubengali","ubopomofo","ubreve","ucaron","ucircle","ucircumflex","ucircumflexbelow","ucyrillic","udattadeva","udblacute","udblgrave","udeva","udieresis","udieresisacute","udieresisbelow","udieresiscaron","udieresiscyrillic","udieresisgrave","udieresismacron","udotbelow","ugrave","ugujarati","ugurmukhi","uhiragana","uhookabove","uhorn","uhornacute","uhorndotbelow","uhorngrave","uhornhookabove","uhorntilde","uhungarumlaut","uhungarumlautcyrillic","uinvertedbreve","ukatakana","ukatakanahalfwidth","ukcyrillic","ukorean","umacron","umacroncyrillic","umacrondieresis","umatragurmukhi","umonospace","underscore","underscoredbl","underscoremonospace","underscorevertical","underscorewavy","union","universal","uogonek","uparen","upblock","upperdothebrew","upsilon","upsilondieresis","upsilondieresistonos","upsilonlatin","upsilontonos","uptackbelowcmb","uptackmod","uragurmukhi","uring","ushortcyrillic","usmallhiragana","usmallkatakana","usmallkatakanahalfwidth","ustraightcyrillic","ustraightstrokecyrillic","utilde","utildeacute","utildebelow","uubengali","uudeva","uugujarati","uugurmukhi","uumatragurmukhi","uuvowelsignbengali","uuvowelsigndeva","uuvowelsigngujarati","uvowelsignbengali","uvowelsigndeva","uvowelsigngujarati","vadeva","vagujarati","vagurmukhi","vakatakana","vav","vavdagesh","vavdagesh65","vavdageshhebrew","vavhebrew","vavholam","vavholamhebrew","vavvavhebrew","vavyodhebrew","vcircle","vdotbelow","vecyrillic","veharabic","vehfinalarabic","vehinitialarabic","vehmedialarabic","vekatakana","venus","verticalbar","verticallineabovecmb","verticallinebelowcmb","verticallinelowmod","verticallinemod","vewarmenian","vhook","vikatakana","viramabengali","viramadeva","viramagujarati","visargabengali","visargadeva","visargagujarati","vmonospace","voarmenian","voicediterationhiragana","voicediterationkatakana","voicedmarkkana","voicedmarkkanahalfwidth","vokatakana","vparen","vtilde","vturned","vuhiragana","vukatakana","wacute","waekorean","wahiragana","wakatakana","wakatakanahalfwidth","wakorean","wasmallhiragana","wasmallkatakana","wattosquare","wavedash","wavyunderscorevertical","wawarabic","wawfinalarabic","wawhamzaabovearabic","wawhamzaabovefinalarabic","wbsquare","wcircle","wcircumflex","wdieresis","wdotaccent","wdotbelow","wehiragana","weierstrass","wekatakana","wekorean","weokorean","wgrave","whitebullet","whitecircle","whitecircleinverse","whitecornerbracketleft","whitecornerbracketleftvertical","whitecornerbracketright","whitecornerbracketrightvertical","whitediamond","whitediamondcontainingblacksmalldiamond","whitedownpointingsmalltriangle","whitedownpointingtriangle","whiteleftpointingsmalltriangle","whiteleftpointingtriangle","whitelenticularbracketleft","whitelenticularbracketright","whiterightpointingsmalltriangle","whiterightpointingtriangle","whitesmallsquare","whitesmilingface","whitesquare","whitestar","whitetelephone","whitetortoiseshellbracketleft","whitetortoiseshellbracketright","whiteuppointingsmalltriangle","whiteuppointingtriangle","wihiragana","wikatakana","wikorean","wmonospace","wohiragana","wokatakana","wokatakanahalfwidth","won","wonmonospace","wowaenthai","wparen","wring","wsuperior","wturned","wynn","xabovecmb","xbopomofo","xcircle","xdieresis","xdotaccent","xeharmenian","xi","xmonospace","xparen","xsuperior","yaadosquare","yabengali","yacute","yadeva","yaekorean","yagujarati","yagurmukhi","yahiragana","yakatakana","yakatakanahalfwidth","yakorean","yamakkanthai","yasmallhiragana","yasmallkatakana","yasmallkatakanahalfwidth","yatcyrillic","ycircle","ycircumflex","ydieresis","ydotaccent","ydotbelow","yeharabic","yehbarreearabic","yehbarreefinalarabic","yehfinalarabic","yehhamzaabovearabic","yehhamzaabovefinalarabic","yehhamzaaboveinitialarabic","yehhamzaabovemedialarabic","yehinitialarabic","yehmedialarabic","yehmeeminitialarabic","yehmeemisolatedarabic","yehnoonfinalarabic","yehthreedotsbelowarabic","yekorean","yen","yenmonospace","yeokorean","yeorinhieuhkorean","yerahbenyomohebrew","yerahbenyomolefthebrew","yericyrillic","yerudieresiscyrillic","yesieungkorean","yesieungpansioskorean","yesieungsioskorean","yetivhebrew","ygrave","yhook","yhookabove","yiarmenian","yicyrillic","yikorean","yinyang","yiwnarmenian","ymonospace","yod","yoddagesh","yoddageshhebrew","yodhebrew","yodyodhebrew","yodyodpatahhebrew","yohiragana","yoikorean","yokatakana","yokatakanahalfwidth","yokorean","yosmallhiragana","yosmallkatakana","yosmallkatakanahalfwidth","yotgreek","yoyaekorean","yoyakorean","yoyakthai","yoyingthai","yparen","ypogegrammeni","ypogegrammenigreekcmb","yr","yring","ysuperior","ytilde","yturned","yuhiragana","yuikorean","yukatakana","yukatakanahalfwidth","yukorean","yusbigcyrillic","yusbigiotifiedcyrillic","yuslittlecyrillic","yuslittleiotifiedcyrillic","yusmallhiragana","yusmallkatakana","yusmallkatakanahalfwidth","yuyekorean","yuyeokorean","yyabengali","yyadeva","zaarmenian","zacute","zadeva","zagurmukhi","zaharabic","zahfinalarabic","zahinitialarabic","zahiragana","zahmedialarabic","zainarabic","zainfinalarabic","zakatakana","zaqefgadolhebrew","zaqefqatanhebrew","zarqahebrew","zayin","zayindagesh","zayindageshhebrew","zayinhebrew","zbopomofo","zcaron","zcircle","zcircumflex","zcurl","zdot","zdotaccent","zdotbelow","zecyrillic","zedescendercyrillic","zedieresiscyrillic","zehiragana","zekatakana","zero","zeroarabic","zerobengali","zerodeva","zerogujarati","zerogurmukhi","zerohackarabic","zeroinferior","zeromonospace","zerooldstyle","zeropersian","zerosuperior","zerothai","zerowidthjoiner","zerowidthnonjoiner","zerowidthspace","zeta","zhbopomofo","zhearmenian","zhebrevecyrillic","zhecyrillic","zhedescendercyrillic","zhedieresiscyrillic","zihiragana","zikatakana","zinorhebrew","zlinebelow","zmonospace","zohiragana","zokatakana","zparen","zretroflexhook","zstroke","zuhiragana","zukatakana","angbracketleftbig","angbracketleftBig","angbracketleftbigg","angbracketleftBigg","angbracketrightBig","angbracketrightbig","angbracketrightBigg","angbracketrightbigg","arrowhookleft","arrowhookright","arrowlefttophalf","arrowleftbothalf","arrownortheast","arrownorthwest","arrowrighttophalf","arrowrightbothalf","arrowsoutheast","arrowsouthwest","backslashbig","backslashBig","backslashBigg","backslashbigg","bardbl","bracehtipdownleft","bracehtipdownright","bracehtipupleft","bracehtipupright","braceleftBig","braceleftbig","braceleftbigg","braceleftBigg","bracerightBig","bracerightbig","bracerightbigg","bracerightBigg","bracketleftbig","bracketleftBig","bracketleftbigg","bracketleftBigg","bracketrightBig","bracketrightbig","bracketrightbigg","bracketrightBigg","ceilingleftbig","ceilingleftBig","ceilingleftBigg","ceilingleftbigg","ceilingrightbig","ceilingrightBig","ceilingrightbigg","ceilingrightBigg","circledotdisplay","circledottext","circlemultiplydisplay","circlemultiplytext","circleplusdisplay","circleplustext","contintegraldisplay","contintegraltext","coproductdisplay","coproducttext","floorleftBig","floorleftbig","floorleftbigg","floorleftBigg","floorrightbig","floorrightBig","floorrightBigg","floorrightbigg","hatwide","hatwider","hatwidest","intercal","integraldisplay","integraltext","intersectiondisplay","intersectiontext","logicalanddisplay","logicalandtext","logicalordisplay","logicalortext","parenleftBig","parenleftbig","parenleftBigg","parenleftbigg","parenrightBig","parenrightbig","parenrightBigg","parenrightbigg","prime","productdisplay","producttext","radicalbig","radicalBig","radicalBigg","radicalbigg","radicalbt","radicaltp","radicalvertex","slashbig","slashBig","slashBigg","slashbigg","summationdisplay","summationtext","tildewide","tildewider","tildewidest","uniondisplay","unionmultidisplay","unionmultitext","unionsqdisplay","unionsqtext","uniontext","vextenddouble","vextendsingle","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","ArialNarrow","ArialBlack","Arial","ArialMT","CourierNew","CourierNewPSMT","Helvetica","TimesNewRoman","TimesNewRomanPS","TimesNewRomanPSMT","Calibri","CenturyGothic","ComicSansMS","LucidaConsole","NuptialScript","SegoeUISymbol","Wingdings","Albertus","Aldus","Alexandria","Algerian","Antiqua","Apex","Arno","Aster","Aurora","Baskerville","Bell","Bembo","Benguiat","Bodoni","Bookman","Calisto","Calvert","Capitals","Cambria","Cartier","Caslon","Catull","Centaur","Chaparral","Cheltenham","Clarendon","Clearface","Cochin","Colonna","Constantia","Corona","Ecotype","Egyptienne","Elephant","Excelsior","Fairfield","Folkard","Footlight","FreeSerif","Garamond","Gentium","Georgia","Gloucester","Granjon","Heather","Hercules","Hiroshige","Imprint","Janson","Joanna","Korinna","Lexicon","Literaturnaya","Lucida","Melior","Memphis","Miller","Minion","Modern","Palatino","Perpetua","Plantin","Playbill","Renault","Requiem","Rockwell","Roman","Sabon","Scala","Seagull","Sistina","Souvenir","STIX","Sylfaen","Times","Trajan","Utopia","Versailles","Wanted","Weiss","Windsor","XITS","Dingbats","ZapfDingbats","getSpecialPUASymbols","hexStr","nameLen","toUpperCase","UnicodeRanges","isRTLRangeFor","charsLength","getLong","getUshort","getSubroutineBias","numSubrs","parseCmap","idDelta","idOffset","groups","parseCff","gsubrs","isCFFCIDFont","parseGlyfTable","lookupCmap","codePointAt","compileGlyf","cmds","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","instructionLength","numberOfPoints","points","startPoint","contour","compileCharString","charStringCode","bezierCurveTo","stems","xb","yb","y3","subrCode","stackClean","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","compileGlyph","compileGlyphImpl","TrueTypeCompiled","Type2Compiled","cffInfo","HINTING_ENABLED","Type1CharString","COMMAND_MAP","hstem","vstem","vmoveto","rlineto","hlineto","vlineto","rrcurveto","callsubr","flex","drop","endchar","rmoveto","hmoveto","vhcurveto","hvcurveto","lsb","flexing","encoded","wx","sbx","executeCommand","dy","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","discardNumber","c1","c2","decrypted","decryptAscii","digit1","digit2","isSpecial","encrypted","isBinary","readNumberArray","getToken","readInt","readBoolean","readCharStrings","lenIV","program","blueArray","charString","charStringObject","encodingArg","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","getPattern","ctx","Shadings","RadialAxial","Mesh","Dummy","xstep","ystep","paintType","tilingType","SMALL_NUMBER","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","fnObj","createFromArray","NUMBER_OF_SAMPLES","colorStops","cssColor","makeCssRgb","background","r0","singularValueDecompose2dScale","MeshStreamReader","tmpCompsBuf","csNumComps","tmpCsCompsBuf","colorFn","decodeType4Shading","mesh","coords","operators","ps","verticesLeft","hasData","readFlag","coord","readCoordinate","readComponents","align","figures","decodeType5Shading","verticesPerRow","bitsPerFlag","bitsPerCoordinate","yi","ci","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","TRIANGLE_DENSITY","getB","buildB","lut","t_","buildFigureFromPatch","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","bounds","splitYBy","figureCoords","figureColors","cl","cr","c0","c3","bRow","bCol","newColor","decodeType6Shading","tmp4","decodeType7Shading","updateBounds","packData","coordsPacked","xy","colorsPacked","decodeContext","patchMesh","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","temp","createBidiText","isLTR","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","Courier","PostScriptCompiler","PostScriptEvaluator","_ps_parser","PDFFunction","parseArray","toNumberArray","CONSTRUCT_SAMPLED","CONSTRUCT_INTERPOLATED","CONSTRUCT_STICHED","CONSTRUCT_POSTSCRIPT","outputSize","bps","sampleMul","strBytes","strIdx","constructSampled","constructInterpolated","constructStiched","constructPostScript","typeFn","constructSampledFromIR","constructInterpolatedFromIR","constructStichedFromIR","constructPostScriptFromIR","toMultiArray","domain","inputSize","encode","samples","getSampleArray","interpolate","xmin","xmax","ymin","ymax","cubeVertices","cubeN","Float64Array","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","fnRefs","fns","dmin","dmax","rmin","rmax","PostScriptLexer","PostScriptParser","numOutputs","numInputs","MAX_CACHE_SIZE","cache_available","cachedValue","execute","stackIndex","bound","fnDict","PostScriptStack","MAX_STACK_SIZE","initialStack","copy","roll","operator","counter","atan","cos","LN10","sin","AstNode","AstArgument","AstLiteral","AstBinaryOperation","AstMin","AstVariable","AstVariableDefinition","variable","ExpressionBuilderVisitor","parts","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","visit","visitArgument","visitLiteral","visitBinaryOperation","visitMin","visitVariable","visitVariableDefinition","literal","definition","ast1","ast2","tmpVar","instructions","lastRegister","instruction","statementBuilder","expr","nextToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opCache","opValue","getOperator","SEED","MASK_HIGH","MASK_LOW","seed","blockCounts","tailLength","dataUint32","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","decodeAndClamp","addend","coefficient","resizeImageMask","isMask","matte","needsDecode","decodeCoefficients","decodeAddends","isIndexed","maskDict","imageData","smaskData","maskData","computedLength","haveFullData","bufferPos","buf","rowComps","loop1End","loop2End","remainingBits","rgbaBuf","alphaBuf","sw","fillGrayBuffer","opacity","imageOffset","maskOffset","matteRgb","matteR","matteG","matteB","forceRGBA","getImageBytes","newArray","imageLength","maybeUndoPreblend","getComponents","fillOpacity","decodeBuffer","fillRgb","undoPreblend","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","event","_processStreamMessage","cbSourceName","cbTargetName","_createStreamSink","addEventListener","ah","_postMessage","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","isClosed","pull","pullCapability","cancel","cancelCapability","isCancelled","lastDesiredSize","sinkCapability","success","_deleteStreamController","removeEventListener","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","PDFWorkerStreamReader","PDFWorkerStreamRangeReader","readers","_isRangeSupported","_isStreamingSupported","_reader","_headersReady","_display_utils","addLinkAttributes","getFilenameFromUrl","LinkTarget","loadScript","PDFDateString","RenderingCancelledException","_api","build","getDocument","LoopbackPort","PDFDataRangeTransport","PDFWorker","_annotation_layer","AnnotationLayer","_api_compatibility","apiCompatibilityParams","_worker_options","GlobalWorkerOptions","_text_layer","renderTextLayer","_svg","SVGGraphics","PDFNodeStream","setPDFNetworkStreamFactory","PDFNetworkStream","PDFFetchStream","isFetchSupported","isValidFetchUrl","deprecated","StatTimer","DOMSVGFactory","DOMCMapReaderFactory","DOMCanvasFactory","DEFAULT_LINK_REL","PageViewport","SVG_NS","canvas","createElement","getContext","canvasAndContext","isCompressed","baseURI","response","ok","statusText","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","responseText","svg","createElementNS","setAttribute","viewBox","rotation","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","topLeft","bottomRight","applyInverseTransform","SELF","BLANK","PARENT","TOP","link","rel","enabled","urlNullRemoved","onclick","targetStr","anchor","query","lastIndexOf","started","times","outBuf","longest","time","duration","padEnd","Response","script","onload","onerror","documentElement","appendChild","pdfDateStringRegex","matches","year","month","day","hour","universalTimeRelation","offsetHour","offsetMinute","UTC","PDFPageProxy","PDFDocumentProxy","_font_loader","_canvas","_metadata","_transport_stream","_webgl","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","createPDFNetworkStream","pdfNetworkStreamFactory","PDFDocumentLoadingTask","rangeTransport","worker","pdfBytes","CMapReaderFactory","stopAtErrors","pdfBug","disableRange","disableStream","workerParams","workerPort","fromPort","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","httpHeaders","withCredentials","workerId","messageHandler","transport","WorkerTransport","_transport","pdfDataRangeTransport","nextDocumentId","onPassword","onUnsupportedFeature","transportDestroyed","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","listener","_pdfInfo","pageNumber","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getOutline","getPermissions","getMetadata","downloadInfoCapability","getStats","startCleanup","loadingParams","_pageIndex","_pageInfo","_stats","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","intentStates","annotationsPromise","annotationsIntent","getAnnotations","canvasContext","viewport","enableWebGL","imageLayer","canvasFactory","renderingIntent","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","webGLContext","WebGLContext","enable","displayReadyCapability","_pumpOperatorList","complete","renderTasks","internalRenderTask","_tryCleanup","_abortOperatorList","timeEnd","InternalRenderTask","useRequestAnimationFrame","renderTask","initializeGraphics","operatorListChanged","opListReadCapability","opListTask","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","highWaterMark","streamTextContent","pageCache","force","renderCompleted","resetStats","some","operatorListChunk","streamReader","_renderPageChunk","setTimeout","defer","_listeners","_defer","_deferred","cloneValue","cloned","transferable","byteOffset","desc","getOwnPropertyDescriptor","getPrototypeOf","WeakMap","PDFWorkerClosure","pdfWorkerPorts","isWorkerDisabled","fallbackWorkerSrc","nextFakeWorkerId","fakeWorkerCapability","pdfjsFilePath","currentScript","getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","mainWorkerMessageHandler","globalThis","setupFakeWorkerGlobal","loader","eval","createCDNWrapper","wrapper","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","Worker","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","workerHandler","delete","fontLoader","FontLoader","_onUnsupportedFeature","_params","cMapUrl","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","_destroy","evt","headersCapability","fullReader","_numPages","exception","_startRenderPage","exportedData","exportedError","fontRegistry","FontInspector","fontAdded","FontFaceObject","finally","pageProxy","MAX_IMAGE_SIZE_TO_STORE","fetched","results","Metadata","contentDispositionFilename","cleanupSuccessful","_objs","resolved","_ensureObj","RenderTask","_internalRenderTask","onContinue","canvasInRendering","WeakSet","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","BaseFontLoader","nativeFontFaces","styleElement","nativeFontFace","fonts","rule","getElementsByTagName","styleSheet","sheet","insertRule","cssRules","attached","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","supported","rules","fontsToLoad","loadingContext","requests","nextRequestId","loadTestFontId","navigator","userAgent","completeRequest","otherRequest","getLoadTestFont","atob","spliceString","insert","chunk1","chunk2","called","isFontReady","fillText","getImageData","_loadTestFont","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","btoa","div","visibility","span","body","removeChild","translatedData","FontFace","registerFont","compatibilityParams","freeze","_pattern_helper","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","addContextCurrentTransform","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","translate","_originalTransform","_originalSetTransform","setTransform","_transformMatrix","_transformStack","ad_bc","bc_ad","cosValue","sinValue","CachedCanvases","getCanvas","trackTransform","canvasEntry","compileType3Glyph","POINT_TO_PROCESS_LIMIT","width1","POINT_TYPES","lineSize","data0","elem","steps","outlines","pp","drawOutline","beginPath","CanvasExtraState","alphaIsShape","fontSizeScale","textMatrixScale","lineX","lineY","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","resumeSMaskCtx","setCurrentPoint","EXECUTION_TIME","EXECUTION_STEPS","canvasCtx","pendingClip","pendingEOFill","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","cachedCanvases","_cachedGetSinglePixelWidth","putBinaryImageData","ImageData","putImageData","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","srcDiff","kEnd","kEndUnrolled","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","g0","alpha_","composeSMaskAlpha","layerData","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","composeFn","hasBackdrop","PIXELS_TO_PROCESS","chunkHeight","composeSMask","isEnabled","composed","layer","drawImage","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","breakIt","depObjId","objsPool","endSMaskGroup","endLayout","dashPhase","flatness","states","suspendSMaskGroup","beginSMaskGroup","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","startTransformInverse","mozCurrentTransformInverse","deltaTransform","clearRect","resumeSMaskGroup","ops","getSinglePixelWidth","xw","yh","consumePath","isPatternFill","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","fontObj","fontDirection","typeface","browserFontSize","rise","patternTransform","fillStrokeMode","getPathGenerator","strokeText","showType3Text","glyphsLength","spacingDir","widthAdvanceScale","simpleFillText","scaledX","scaledY","scaledAccentX","scaledAccentY","vx","vy","charWidth","restoreNeeded","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","paintChar","spacingLength","isTextInvisible","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","getShadingPatternFromIR","inv","bl","br","ul","ur","canvasBounds","imageSmoothingEnabled","mozImageSmoothingEnabled","maskCanvas","imgToPaint","tmpCanvas","widthScale","heightScale","HTMLElement","tmpCtx","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getCanvasPosition","appendImage","inverse","ShadingIRs","applyBoundingBox","Path2D","grad","createLinearGradient","createRadialGradient","addColorStop","createMeshCanvas","drawTriangle","x3","car","cag","cab","cbr","cbg","cbb","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","x1_","x2_","drawFigure","cols","combinesScale","backgroundColor","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","drawFigures","shadingIR","owner","matrixScale","temporaryPatternCanvas","createPattern","PaintType","COLORED","UNCOLORED","createPatternCanvas","curMatrixScale","combinedScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","clipBbox","realOutputSize","maxSize","bboxWidth","bboxHeight","_xml_parser","_repair","SimpleXMLParser","xmlDocument","parseFromString","_metadataMap","_parse","rdf","nodeName","firstChild","nextSibling","hasChildNodes","childNodes","trim","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","isWhitespaceString","XMLParserBase","entity","onResolveEntity","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","_resolveEntities","parsed","attrStart","ch2","onError","onEndElement","_parseProcessingInstruction","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","_parseContent","onBeginElement","onText","SimpleDOMNode","nodeValue","parentNode","child","_currentFragment","_stack","_errorCode","parseXml","lastElement","_queuedChunks","_progressiveDone","_pdfDataRangeTransport","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","addProgressiveDoneListener","_onProgressiveDone","transportReady","_enqueue","_begin","_loaded","firstReader","queuedChunks","PDFDataTransportStreamReader","_progressiveDataLength","PDFDataTransportStreamRangeReader","requestDataRange","_done","_requests","requestCapability","_end","_queuedChunk","requestsCapability","_removeRangeReader","_enabled","WebGLUtils","tryInitGL","loadShader","gl","shaderType","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","errorMsg","getShaderInfoLog","createVertexShader","VERTEX_SHADER","createFragmentShader","FRAGMENT_SHADER","createProgram","shaders","attachShader","linkProgram","linked","getProgramParameter","LINK_STATUS","getProgramInfoLog","createTexture","textureId","activeTexture","texture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","texImage2D","RGBA","UNSIGNED_BYTE","currentGL","currentCanvas","generateGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","initSmaskGL","vertexShader","fragmentShader","useProgram","resolutionLocation","getUniformLocation","positionLocation","getAttribLocation","backdropLocation","subtypeLocation","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","uniform1i","drawingBufferWidth","drawingBufferHeight","uniform2f","uniform4f","TEXTURE0","maskTexture","TEXTURE1","clearColor","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","COLOR_BUFFER_BIT","drawArrays","TRIANGLES","deleteTexture","deleteBuffer","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","scaleLocation","offsetLocation","colorLocation","coordsMap","colorsMap","pIndex","cIndex","coordsBuffer","colorsBuffer","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","TextWidgetAnnotationElement","RadioButtonWidgetAnnotationElement","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","downloadManager","imageResourcesPath","svgFactory","_createContainer","transformOrigin","borderWidth","horizontalRadius","verticalRadius","borderRadius","borderBottomStyle","borderColor","trigger","popupElement","PopupElement","hideWrapper","popup","className","externalLinkRel","externalLinkEnabled","_bindNamedAction","_bindLink","destination","getDestinationHash","navigateTo","getAnchorUrl","executeNamedAction","dataset","l10nId","l10nArgs","_createPopup","TEXT_ALIGNMENT","disabled","maxLength","fieldWidth","combWidth","classList","letterSpacing","verticalAlign","display","_setTextStyle","textAlign","direction","fontWeight","fontStyle","selectElement","multiple","optionElement","IGNORE_TYPES","selector","parentElement","querySelector","parentLeft","parentWidth","pinned","BACKGROUND_ENLIGHT","hideElement","dateObject","toDateObject","date","toLocaleDateString","toLocaleTimeString","_formatContents","_toggle","_show","_hide","createTextNode","pin","hasAttribute","removeAttribute","zIndex","unpin","append","square","containerClassName","svgElementName","coordinate","polyline","inkList","dispatch","_download","downloadData","sortedAnnotations","popupAnnotations","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","isAllWhitespace","appendText","geom","textDiv","textDivProperties","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_textDivProperties","_viewport","atan2","PI","fontHeight","fontAscent","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textContentStream","_layoutText","_enhanceTextSelection","angleCos","angleSin","divWidth","divHeight","_bounds","_canceled","textDivs","textDivsLength","_renderingDone","findPositiveMin","expanded","expandBounds","divProperties","boxScale","boxes","x1New","x2New","expandBoundsLTR","fakeBoundary","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","used","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","renderParameters","_render","timeout","styleCache","mozOpaque","textItems","textStyles","_processItems","expandTextDivs","expandDivs","transformBuf","paddingBuf","divProps","padding","SVG_DEFAULTS","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","adler32","deflateSync","literals","deflateSyncUncompressed","Buffer","from","maxBlockLength","deflateBlocks","idat","adler","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","activeClipUrl","clipGroup","maskId","opListToTree","opTree","opListElement","pf","toFixed","pm","acos","clipCount","maskCount","shadingCount","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","svgElement","loadDependencies","convertOpList","operatorIdMapping","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","defs","addFontStyle","_makeColorN_Pattern","inverseTransform","_makeShadingPattern","_makeTilingPattern","tilingId","xscale","yscale","txstep","tystep","tiling","shadingId","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","colorStop","getAttributeNS","clipId","clipPath","clipElement","cloneNode","setStrokeAlpha","setFillAlpha","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","_network_utils","http","https","fileUriRegex","parseUrl","sourceUrl","parsedUrl","host","isHttp","isFsUrl","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_storedError","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","BaseRangeReader","createRequestOptions","headers","auth","hostname","handleResponse","statusCode","_setReadableStream","getResponseHeader","allowRangeRequests","validateRangeRequestCapabilities","extractFilenameFromHeader","_request","_httpHeaders","Range","lstat","stat","createReadStream","createResponseStatusError","validateResponseStatus","_content_disposition","returnValues","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","textdecode","TextDecoder","fatal","contentDispositionStr","iter","quot","part","quotindex","extvalue","encodingend","langvalue","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getArrayBuffer","xhr","NetworkManager","getXhr","currXhrId","listeners","xhrId","pendingRequest","setRequestHeader","expectedStatus","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","ok_response_on_range_request","rangeHeader","abortRequest","_source","_manager","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","_onRangeRequestReaderClosed","_onHeadersReceived","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","getRequestXhr","lengthComputable","isPendingRequest","_requestId","_close","createFetchOptions","abortController","signal","credentials","redirect","createHeaders","Headers","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","_annotation_layer_builder","AnnotationLayerBuilder","DefaultAnnotationLayerFactory","_text_layer_builder","DefaultTextLayerFactory","TextLayerBuilder","_ui_utils","EventBus","NullL10n","ProgressBar","_pdf_link_service","PDFLinkService","SimpleLinkService","_download_manager","DownloadManager","_genericl10n","GenericL10n","_pdf_find_controller","PDFFindController","_pdf_history","PDFHistory","_pdf_page_view","PDFPageView","_pdf_single_page_viewer","PDFSinglePageViewer","_pdf_viewer","PDFViewer","_pdfjsLib","pageDiv","pdfPage","l10n","_cancelled","pdfjsLib","isValidRotation","isValidScrollMode","isValidSpreadMode","isPortraitOrientation","clamp","getPDFFileNameFromURL","noContextMenuHandler","parseQueryString","backtrackBeforeAllVisibleElements","getVisibleElements","roundToDivide","getPageSizeInches","approximateFraction","getOutputScale","scrollIntoView","watchScroll","binarySearchFirstItem","normalizeWheelEventDelta","waitOnEventOrTimeout","moveToEndOfArray","WaitOnType","animationStarted","SpreadMode","ScrollMode","TextLayerMode","RendererType","PresentationModeState","VERTICAL_PADDING","SCROLLBAR_PADDING","MAX_AUTO_SCALE","UNKNOWN_SCALE","MAX_SCALE","MIN_SCALE","DEFAULT_SCALE","DEFAULT_SCALE_VALUE","CSS_UNITS","AutoPrintRegExp","NORMAL","CHANGING","FULLSCREEN","CANVAS","SVG","DISABLE","ENABLE","ENABLE_ENHANCE","VERTICAL","HORIZONTAL","WRAPPED","ODD","EVEN","formatL10nValue","devicePixelRatio","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","pixelRatio","spot","skipOverflowHiddenElements","offsetParent","offsetTop","clientTop","offsetLeft","clientLeft","clientHeight","scrollHeight","clientWidth","scrollWidth","getComputedStyle","overflow","_scaleY","_scaleX","scrollLeft","scrollTop","viewAreaElement","debounceScroll","rAF","lastX","lastY","down","_eventHandler","param","condition","minIndex","maxIndex","currentItem","xinv","x_","changeOrientation","views","elt","pageTop","scrollEl","sortByVisibility","horizontal","isElementBottomAfterViewTop","elementBottom","isElementRightAfterViewLeft","elementRight","visible","numViews","firstVisibleElementInd","lastEdge","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","hiddenWidth","isDataSchema","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","deltaX","deltaY","MOUSE_DOM_DELTA_PIXEL_MODE","MOUSE_DOM_DELTA_LINE_MODE","MOUSE_PIXELS_PER_LINE","MOUSE_LINES_PER_PAGE","deltaMode","EVENT","TIMEOUT","delay","_off","eventHandler","_on","timeoutHandler","eventName","external","eventListeners","externalListeners","units","_indeterminate","progressSize","_percent","_updateBar","viewer","scrollbarWidth","offsetWidth","moved","write","ignoreDestinationZoom","_ignoreDestinationZoom","pdfHistory","_pagesRefCache","currentPageNumber","pagesRotation","goToDestination","namedDest","explicitDest","destRef","_cachedPageNumber","cachePageRef","pagesCount","pushCurrentPosition","destArray","phraseSearch","phrase","zoomArgs","zoom","zoomArg","zoomArgNumber","allowNegativeOffset","pagemode","nameddest","isValidExplicitDestination","back","forward","pageNum","refStr","isPageVisible","destLength","allowNull","EXPAND_DIVS_TIMEOUT","textLayerDiv","findController","renderingDone","pageIdx","textLayerRenderTask","_onUpdateTextLayerMatches","_bindMouse","endOfContent","numTextDivs","textLayerFrag","createDocumentFragment","_finishRendering","_updateMatches","matchesLength","iIndex","queryLen","matchIdx","divIdx","isSelectedPage","selected","selectedMatchIdx","highlightAll","prevEnd","appendTextToDiv","fromOffset","toOffset","isSelected","highlightSuffix","scrollMatchIntoView","matchIndex","clearedUntilDivIdx","highlightMatches","pageMatches","pageMatchesLength","_convertMatches","_renderMatches","expandDivsTimer","adjustTop","getPropertyValue","divBounds","getBoundingClientRect","pageY","_viewer_compatibility","DISABLE_CREATE_OBJECT_URL","viewerCompatibilityParams","disableCreateObjectURL","download","blobUrl","click","msSaveBlob","downloadUrl","maxTouchPoints","isAndroid","isIE","isIOS","isIOSChrome","maxCanvasPixels","webL10n","lang","_lang","_ready","setLanguage","getLanguage","getDirection","gL10nData","gTextData","gTextProp","gLanguage","gMacros","gReadyState","gAsyncResourceLoading","getL10nResourceLinks","querySelectorAll","getL10nDictionary","innerHTML","getTranslatableChildren","getL10nAttributes","getAttribute","xhrLoadText","overrideMimeType","ontimeout","parseResource","successCallback","failureCallback","baseURL","evalString","parseProperties","parsedPropertiesCallback","reBlank","reComment","reSection","reImport","reSplit","parseRawLines","rawText","extendedSyntax","parsedRawLinesCallback","currentLang","genericLang","skipLang","nextEntry","loadImport","loadLocale","langLinks","langCount","onResourceLoaded","gResourceCount","resource","L10nResourceLink","locales","default_locale","defaultLocale","anyCaseLang","getPluralRules","locales2rules","isIn","list","isBetween","pluralRules","getL10nData","rv","substIndexes","substArguments","reIndex","reMatch","macroName","paramName","macro","reArgs","matched_text","translateElement","getChildElementCount","nodeType","textNode","insertBefore","childElementCount","translateFragment","elementCount","plural","_pluralRules","fallbackString","getText","rtlList","shortCode","getReadyState","once","FindState","_pdf_find_utils","FOUND","NOT_FOUND","PENDING","FIND_TIMEOUT","MATCH_SCROLL_OFFSET_TOP","MATCH_SCROLL_OFFSET_LEFT","CHARACTERS_TO_NORMALIZE","normalizationRegex","normalize","_linkService","_eventBus","_reset","_onFindBarClose","_highlightMatches","_pageMatches","_pageMatchesLength","_selected","_state","_pdfDocument","_firstPageCapability","_shouldDirtyMatch","_dirtyMatch","_updateUIState","_extractText","findbarClosed","pendingTimeout","_findTimeout","_nextMatch","_updateAllPages","_scrollMatches","_offset","wrapped","_extractTextPromises","_pageContents","_matchesCountTotal","_pagesToSearch","_pendingFindMatches","_resumePageIdx","_rawQuery","_normalizedQuery","matchesWithLength","isSubTerm","currentElem","nextElem","prevElem","matchLength","startIdx","getCharacterType","endIdx","pageContent","entireWord","_isEntireWord","queryArray","subquery","subqueryLen","_prepareMatches","_query","caseSensitive","_calculatePhraseMatch","_calculateWordMatch","_updatePage","_nextPageMatch","pageMatchesCount","_updateUIResultsCount","extractTextCapability","findPrevious","_calculateMatch","numPageMatches","_updateMatch","_advanceOffsetPage","numMatches","_matchesReady","previousPage","matchesCount","_requestMatchesCount","CharacterType","ALPHA_LETTER","PUNCT","HAN_LETTER","KATAKANA_LETTER","HIRAGANA_LETTER","HALFWIDTH_KATAKANA_LETTER","THAI_LETTER","isAlphabeticalScript","isAscii","isAsciiAlpha","isAsciiDigit","isAsciiSpace","isHan","isKatakana","isHiragana","isHalfwidthKatakana","isThai","isDestHashesEqual","isDestArraysEqual","HASH_CHANGE_TIMEOUT","POSITION_UPDATED_THRESHOLD","UPDATE_VIEWAREA_TIMEOUT","getCurrentHash","_initialized","_fingerprint","_boundEvents","_isViewerInPresentationMode","active","switchInProgress","_isPagesLoaded","onPagesLoaded","resetHistory","updateUrl","reInitialized","_updateUrl","_bindEvents","history","_popStateInProgress","_blockHashChange","_currentHash","_numPositionUpdates","_uid","_maxUid","_destination","_position","_isValidState","_parseCurrentHash","_pushOrReplaceState","_updateInternalState","uid","_initialRotation","_initialBookmark","_pageHide","_unbindEvents","_updateViewareaTimeout","forceReplace","_tryPushCurrentPosition","shouldReplace","newState","newUrl","replaceState","pushState","temporary","checkReload","perfEntry","performance","getEntriesByType","removeTemporary","checkNameddest","pdfOpenParams","newHash","hashChanged","setHash","updateViewarea","_updateViewarea","popState","_popState","pageHide","destHash","pushHash","firstDest","secondDest","isEntryEqual","_pdf_rendering_queue","MAX_CANVAS_PIXELS","renderingId","pageLabel","pdfPageRotate","hasRestrictedScaling","textLayerMode","useOnlyCssZoom","renderingQueue","paintTask","paintedViewportMap","renderingState","RenderingStates","INITIAL","resume","zoomLayer","totalRotation","getViewport","removeFromDOM","zoomLayerCanvas","keepZoomLayer","keepAnnotations","cancelRendering","currentZoomLayerNode","currentAnnotationNode","_resetZoomLayer","loadingIconDiv","cssTransform","timestamp","isScalingRestricted","outputScale","redrawAnnotations","relativeRotation","absRotation","textLayerViewport","textRelativeRotation","textAbsRotation","transX","transY","convertToPdfPoint","FINISHED","RUNNING","canvasWrapper","createTextLayerBuilder","renderContinueCallback","cont","isHighestPriority","PAUSED","finishPaintTask","paintOnSvg","paintOnCanvas","onRenderContinue","resultPromise","setTextContentStream","createAnnotationLayerBuilder","renderCapability","isCanvasHidden","showCanvas","actualSizeViewport","pixelsInViewport","maxScale","sfx","sfy","renderContext","ensureNotCancelled","svgGfx","getSVG","label","PDFRenderingQueue","CLEANUP_TIMEOUT","pdfThumbnailViewer","onIdle","highestPriorityPage","idleTimeout","printing","isThumbnailViewEnabled","currentlyVisiblePages","forceRendering","scrolledDown","visibleViews","numVisible","isViewFinished","nextPageIndex","previousPageIndex","draw","renderHighestPriority","_base_viewer","BaseViewer","_ensurePageViewVisible","_shadowViewer","_resetView","_previousPageNumber","_updateScrollDown","pageView","_pages","_currentPageNumber","previousPageView","viewerNodes","_scrollUpdate","pageSpot","_setCurrentPageNumber","_scrollIntoView","_getCurrentVisiblePage","visiblePages","DEFAULT_CACHE_SIZE","PDFPageViewBuffer","newSize","pagesToKeep","pageIdsToKeep","iMax","isSameScale","oldScale","_name","firstElementChild","removePageBorders","enablePrintAutoRotate","defaultRenderingQueue","setViewer","presentationModeState","_onBeforeDraw","_onAfterDraw","_pagesCapability","settled","resetCurrentPageView","_resetCurrentPageView","_pageLabels","_currentScale","_setScale","_currentScaleValue","_pagesRotation","_onePageRenderedCapability","_getVisiblePages","_cancelRendering","setDocument","firstPagePromise","_buffer","firstPdfPage","currentScale","_viewerElement","firstPageView","setPdfPage","_spreadMode","_updateSpreadMode","_onePageRenderedOrForceFetch","getPagesLeft","setPageLabel","_location","_pagesRequests","_scrollMode","_updateScrollMode","newValue","noScroll","preset","presetValue","isInPresentationMode","isChangingPresentationMode","_setScaleUpdatePages","currentPage","noPadding","hPadding","vPadding","_isScrollModeHorizontal","pageWidthScale","pageHeightScale","horizontalScale","pageWidth","pageHeight","currentScaleValue","boundingRect","convertToViewportPoint","firstPage","normalizedScaleValue","currentPageView","getPagePoint","intLeft","intTop","numVisiblePages","newCacheSize","_updateHelper","_updateLocation","focus","scrollAhead","getHighestPriority","_ensurePdfPageLoaded","renderView","pagesOverview","isFirstPagePortrait","scrollMode","toggle","pages","parity","spread","currentId","stillFullyVisible"],"mappings":"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AS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OA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,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,OAC9Wa,EAAc,CAAC,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IACx3IC,EAAc,CAAC,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAId,GAAW,CAAC,GAAIA,GAAW,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAC53Ce,EAAc,CAAC,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,KACjwDC,EAAc,CAAC,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAEzhB,SAASzB,EAAgBt4C,EAAQw0B,EAAU,IACzC,IAAKx0B,GAAiC,oBAAhBA,EAAOshC,KAC3B,MAAM,IAAIv6B,MAAM,iDAGlBnM,KAAKoF,OAASA,EACdpF,KAAK82C,KAAM,EACX92C,KAAKo/C,SAAWxlB,EAAQ+jB,GAAK,EAC7B39C,KAAKq/C,OAASzlB,EAAQgkB,YAAa,EACnC59C,KAAKs/C,UAAY1lB,EAAQikB,mBAAoB,EAC7C79C,KAAKm6C,QAAUvgB,EAAQkkB,SAAW,KAClC99C,KAAKu/C,KAAO3lB,EAAQmkB,MAAQ,EAC5B,IAkBItE,EAlBA+F,EAAU5lB,EAAQokB,WAEN,OAAZwB,QAAgCx3B,IAAZw3B,IACtBA,GAAU,GAGZx/C,KAAKw/C,QAAUA,EACfx/C,KAAKy/C,MAAQ7lB,EAAQqkB,WAAY,EACjCj+C,KAAK0/C,WAAa,IAAIv2B,YAAYnpB,KAAKm6C,QAAU,GACjDn6C,KAAK2/C,QAAU,IAAIx2B,YAAYnpB,KAAKm6C,QAAU,GAC9Cn6C,KAAK0/C,WAAW,GAAK1/C,KAAKm6C,QAC1Bn6C,KAAK4/C,UAAY,EACjB5/C,KAAK6/C,IAAM,EACX7/C,KAAK8/C,WAAa9/C,KAAKo/C,SAAW,EAClCp/C,KAAK+/C,UAAY,EACjB//C,KAAKggD,SAAW,EAChBhgD,KAAKigD,WAAa,EAClBjgD,KAAKkgD,UAAW,EAGhB,MAAwC,KAAhCzG,EAAQz5C,KAAKmgD,UAAU,KAC7BngD,KAAKogD,SAAS,GAGF,IAAV3G,GACFz5C,KAAKogD,SAAS,IAGZpgD,KAAKo/C,SAAW,IAClBp/C,KAAK8/C,YAAc9/C,KAAKmgD,UAAU,GAElCngD,KAAKogD,SAAS,IAgnBlB,OA5mBA1C,EAAgB1yC,UAAY,CAC1B,eACE,GAAIhL,KAAK82C,IACP,OAAQ,EAGV,MAAM6I,EAAU3/C,KAAK2/C,QACfD,EAAa1/C,KAAK0/C,WAClBvF,EAAUn6C,KAAKm6C,QACrB,IAAIkG,EAAQC,EAAarI,EAAMz0C,EA6U3BsG,EA3UJ,GAAwB,IAApB9J,KAAKigD,WAAkB,CAKzB,GAJIjgD,KAAKkgD,WACPlgD,KAAK82C,KAAM,GAGT92C,KAAK82C,IACP,OAAQ,EAIV,IAAI2C,EAAOb,EAAO2H,EAElB,GAHAvgD,KAAKiH,KAAM,EAGPjH,KAAK8/C,WAAY,CACnB,IAAKt8C,EAAI,EAAGk8C,EAAWl8C,GAAK22C,IAAW32C,EACrCm8C,EAAQn8C,GAAKk8C,EAAWl8C,GAG1Bm8C,EAAQn8C,KAAO22C,EACfwF,EAAQn8C,GAAK22C,EACbuF,EAAW,GAAK,EAChB1/C,KAAK4/C,UAAY,EACjBS,EAAS,EACTC,EAAc,EAEd,MAAOZ,EAAW1/C,KAAK4/C,WAAazF,EAGlC,OAFAV,EAAQz5C,KAAKwgD,iBAEL/G,GACN,KAAK4E,EACHr+C,KAAKygD,WAAWd,EAAQU,EAAS,GAAIC,GAEjCX,EAAQU,EAAS,GAAKlG,IACxBkG,GAAU,GAGZ,MAEF,KAAK/B,EAGH,GAFA7E,EAAQb,EAAQ,EAEZ0H,EAAa,CACf,GACE7G,GAAS8G,EAAQvgD,KAAK0gD,sBACfH,GAAS,IAElB,GACE3H,GAAS2H,EAAQvgD,KAAK2gD,sBACfJ,GAAS,QACb,CACL,GACE9G,GAAS8G,EAAQvgD,KAAK2gD,sBACfJ,GAAS,IAElB,GACE3H,GAAS2H,EAAQvgD,KAAK0gD,sBACfH,GAAS,IAGpBvgD,KAAKygD,WAAWf,EAAW1/C,KAAK4/C,WAAanG,EAAO6G,GAEhDZ,EAAW1/C,KAAK4/C,WAAazF,GAC/Bn6C,KAAKygD,WAAWf,EAAW1/C,KAAK4/C,WAAahH,EAAqB,EAAd0H,GAGtD,MAAOX,EAAQU,IAAWX,EAAW1/C,KAAK4/C,YAAcD,EAAQU,GAAUlG,EACxEkG,GAAU,EAGZ,MAEF,KAAKzB,EAKH,GAJA5+C,KAAKygD,WAAWd,EAAQU,GAAU,EAAGC,GAErCA,GAAe,EAEXZ,EAAW1/C,KAAK4/C,WAAazF,EAAS,GACtCkG,EAEF,MAAOV,EAAQU,IAAWX,EAAW1/C,KAAK4/C,YAAcD,EAAQU,GAAUlG,EACxEkG,GAAU,EAId,MAEF,KAAK3B,EAKH,GAJA1+C,KAAKygD,WAAWd,EAAQU,GAAU,EAAGC,GAErCA,GAAe,EAEXZ,EAAW1/C,KAAK4/C,WAAazF,EAAS,GACtCkG,EAEF,MAAOV,EAAQU,IAAWX,EAAW1/C,KAAK4/C,YAAcD,EAAQU,GAAUlG,EACxEkG,GAAU,EAId,MAEF,KAAK7B,EAKH,GAJAx+C,KAAKygD,WAAWd,EAAQU,GAAU,EAAGC,GAErCA,GAAe,EAEXZ,EAAW1/C,KAAK4/C,WAAazF,EAAS,GACtCkG,EAEF,MAAOV,EAAQU,IAAWX,EAAW1/C,KAAK4/C,YAAcD,EAAQU,GAAUlG,EACxEkG,GAAU,EAId,MAEF,KAAK9B,EAKH,GAJAv+C,KAAKygD,WAAWd,EAAQU,GAASC,GAEjCA,GAAe,EAEXZ,EAAW1/C,KAAK4/C,WAAazF,EAAS,GACtCkG,EAEF,MAAOV,EAAQU,IAAWX,EAAW1/C,KAAK4/C,YAAcD,EAAQU,GAAUlG,EACxEkG,GAAU,EAId,MAEF,KAAKxB,EAKH,GAJA7+C,KAAK4gD,cAAcjB,EAAQU,GAAU,EAAGC,GAExCA,GAAe,EAEXZ,EAAW1/C,KAAK4/C,WAAazF,EAAS,CACpCkG,EAAS,IACTA,IAEAA,EAGJ,MAAOV,EAAQU,IAAWX,EAAW1/C,KAAK4/C,YAAcD,EAAQU,GAAUlG,EACxEkG,GAAU,EAId,MAEF,KAAK1B,EAKH,GAJA3+C,KAAK4gD,cAAcjB,EAAQU,GAAU,EAAGC,GAExCA,GAAe,EAEXZ,EAAW1/C,KAAK4/C,WAAazF,EAAS,CACpCkG,EAAS,IACTA,IAEAA,EAGJ,MAAOV,EAAQU,IAAWX,EAAW1/C,KAAK4/C,YAAcD,EAAQU,GAAUlG,EACxEkG,GAAU,EAId,MAEF,KAAK5B,EAKH,GAJAz+C,KAAK4gD,cAAcjB,EAAQU,GAAU,EAAGC,GAExCA,GAAe,EAEXZ,EAAW1/C,KAAK4/C,WAAazF,EAAS,CACpCkG,EAAS,IACTA,IAEAA,EAGJ,MAAOV,EAAQU,IAAWX,EAAW1/C,KAAK4/C,YAAcD,EAAQU,GAAUlG,EACxEkG,GAAU,EAId,MAEF,KAAKjC,EACHp+C,KAAKygD,WAAWtG,EAAS,GAEzBn6C,KAAK82C,KAAM,EACX,MAEF,SACE,EAAIvrC,EAAM+I,MAAM,eAEhBtU,KAAKygD,WAAWtG,EAAS,GAEzBn6C,KAAKiH,KAAM,OAGZ,CACLy4C,EAAW,GAAK,EAChB1/C,KAAK4/C,UAAY,EACjBU,EAAc,EAEd,MAAOZ,EAAW1/C,KAAK4/C,WAAazF,EAAS,CAG3C,GAFAV,EAAQ,EAEJ6G,EACF,GACE7G,GAAS8G,EAAQvgD,KAAK0gD,sBACfH,GAAS,SAElB,GACE9G,GAAS8G,EAAQvgD,KAAK2gD,sBACfJ,GAAS,IAGpBvgD,KAAKygD,WAAWf,EAAW1/C,KAAK4/C,WAAanG,EAAO6G,GAEpDA,GAAe,GAInB,IAAIO,GAAS,EAMb,GAJI7gD,KAAKs/C,YACPt/C,KAAK+/C,YAAa,GAGf//C,KAAKw/C,SAAWx/C,KAAK6/C,MAAQ7/C,KAAKu/C,KAAO,EAEvC,CAGL,GAFA9F,EAAQz5C,KAAKmgD,UAAU,IAEnBngD,KAAKq/C,OACP,MAAO5F,IAAU2E,GAAsB,IAAV3E,EAC3Bz5C,KAAKogD,SAAS,GAEd3G,EAAQz5C,KAAKmgD,UAAU,SAGzB,MAAiB,IAAV1G,EACLz5C,KAAKogD,SAAS,GAEd3G,EAAQz5C,KAAKmgD,UAAU,IAIb,IAAV1G,GACFz5C,KAAKogD,SAAS,IAEdS,GAAS,GACApH,IAAU2E,IACnBp+C,KAAK82C,KAAM,QAvBb92C,KAAKkgD,UAAW,EAiClB,IANKlgD,KAAK82C,KAAO92C,KAAKo/C,SAAW,IAAMp/C,KAAKkgD,WAC1ClgD,KAAK8/C,YAAc9/C,KAAKmgD,UAAU,GAElCngD,KAAKogD,SAAS,IAGZpgD,KAAKw/C,SAAWqB,GAAU7gD,KAAKs/C,WAGjC,GAFA7F,EAAQz5C,KAAKmgD,UAAU,IAET,IAAV1G,EAAa,CASf,GARAz5C,KAAKogD,SAAS,IAEVpgD,KAAKo/C,SAAW,IAClBp/C,KAAKmgD,UAAU,GAEfngD,KAAKogD,SAAS,IAGZpgD,KAAKo/C,UAAY,EACnB,IAAK57C,EAAI,EAAGA,EAAI,IAAKA,EACnBi2C,EAAQz5C,KAAKmgD,UAAU,IAET,IAAV1G,IACF,EAAIluC,EAAM+I,MAAM,iBAAmBmlC,GAGrCz5C,KAAKogD,SAAS,IAEVpgD,KAAKo/C,SAAW,IAClBp/C,KAAKmgD,UAAU,GAEfngD,KAAKogD,SAAS,IAKpBpgD,KAAK82C,KAAM,QAER,GAAI92C,KAAKiH,KAAOjH,KAAKq/C,OAAQ,CAClC,MAAO,EAAM,CAGX,GAFA5F,EAAQz5C,KAAKmgD,UAAU,IAEnB1G,IAAU2E,EAEZ,OADAp+C,KAAK82C,KAAM,GACH,EAGV,GAAI2C,GAAS,IAAM,EACjB,MAGFz5C,KAAKogD,SAAS,GAGhBpgD,KAAKogD,SAAS,IAEVpgD,KAAKo/C,SAAW,IAClBp/C,KAAKogD,SAAS,GAEdpgD,KAAK8/C,aAAuB,EAARrG,IAIpBiG,EAAW,GAAK,EAClB1/C,KAAKigD,WAAaP,EAAW1/C,KAAK4/C,UAAY,GAE9C5/C,KAAKigD,WAAaP,EAAW1/C,KAAK4/C,UAAY,GAGhD5/C,KAAK6/C,MAKP,GAAI7/C,KAAKigD,YAAc,EACrBn2C,EAAqB,EAAjB9J,KAAK4/C,UAAgB,EAAI,IAC7B5/C,KAAKigD,YAAc,EAEK,IAApBjgD,KAAKigD,YAAoBP,EAAW1/C,KAAK4/C,WAAazF,IACxDn6C,KAAK4/C,YACL5/C,KAAKigD,WAAaP,EAAW1/C,KAAK4/C,WAAaF,EAAW1/C,KAAK4/C,UAAY,QAExE,CACL3H,EAAO,EACPnuC,EAAI,EAEJ,GACM9J,KAAKigD,WAAahI,GACpBnuC,IAAMmuC,EAEiB,EAAjBj4C,KAAK4/C,YACT91C,GAAK,KAAQ,EAAImuC,GAGnBj4C,KAAKigD,YAAchI,EACnBA,EAAO,IAEPnuC,IAAM9J,KAAKigD,WAEY,EAAjBjgD,KAAK4/C,YACT91C,GAAK,KAAQ,EAAI9J,KAAKigD,YAGxBhI,GAAQj4C,KAAKigD,WACbjgD,KAAKigD,WAAa,EAEdP,EAAW1/C,KAAK4/C,WAAazF,GAC/Bn6C,KAAK4/C,YACL5/C,KAAKigD,WAAaP,EAAW1/C,KAAK4/C,WAAaF,EAAW1/C,KAAK4/C,UAAY,IAClE3H,EAAO,IAChBnuC,IAAMmuC,EACNA,EAAO,UAGJA,GAOX,OAJIj4C,KAAKy/C,QACP31C,GAAK,KAGAA,GAGT,WAAWg3C,EAAIR,GACb,MAAMZ,EAAa1/C,KAAK0/C,WACxB,IAAIE,EAAY5/C,KAAK4/C,UAEjBkB,EAAKpB,EAAWE,KACdkB,EAAK9gD,KAAKm6C,WACZ,EAAI5uC,EAAM+I,MAAM,uBAChBtU,KAAKiH,KAAM,EACX65C,EAAK9gD,KAAKm6C,SAGI,EAAZyF,EAAgBU,KAChBV,EAGJF,EAAWE,GAAakB,GAG1B9gD,KAAK4/C,UAAYA,GAGnB,cAAckB,EAAIR,GAChB,MAAMZ,EAAa1/C,KAAK0/C,WACxB,IAAIE,EAAY5/C,KAAK4/C,UAErB,GAAIkB,EAAKpB,EAAWE,GACdkB,EAAK9gD,KAAKm6C,WACZ,EAAI5uC,EAAM+I,MAAM,uBAChBtU,KAAKiH,KAAM,EACX65C,EAAK9gD,KAAKm6C,SAGI,EAAZyF,EAAgBU,KAChBV,EAGJF,EAAWE,GAAakB,OACnB,GAAIA,EAAKpB,EAAWE,GAAY,CACjCkB,EAAK,KACP,EAAIv1C,EAAM+I,MAAM,gBAChBtU,KAAKiH,KAAM,EACX65C,EAAK,GAGP,MAAOlB,EAAY,GAAKkB,EAAKpB,EAAWE,EAAY,KAChDA,EAGJF,EAAWE,GAAakB,EAG1B9gD,KAAK4/C,UAAYA,GAGnB,eAAe9rC,EAAOqd,EAAKgnB,EAAOtc,GAChC,MAAMklB,EAAallB,GAAS,EAE5B,IAAK,IAAIr4B,EAAIsQ,EAAOtQ,GAAK2tB,IAAO3tB,EAAG,CACjC,IAAIiF,EAAOzI,KAAKmgD,UAAU38C,GAE1B,GAAIiF,IAAS21C,EACX,MAAO,EAAC,EAAM,GAAG,GAOnB,GAJI56C,EAAI2tB,IACN1oB,IAAS0oB,EAAM3tB,IAGZu9C,GAAct4C,GAAQs4C,EAAY,CACrC,MAAM71C,EAAIitC,EAAM1vC,EAAOs4C,GAEvB,GAAI71C,EAAE,KAAO1H,EAGX,OAFAxD,KAAKogD,SAAS58C,GAEP,EAAC,EAAM0H,EAAE,IAAI,IAK1B,MAAO,EAAC,EAAO,GAAG,IAGpB,iBACE,IACIA,EADAzC,EAAO,EAGX,GAAIzI,KAAKw/C,SAIP,GAHA/2C,EAAOzI,KAAKmgD,UAAU,GACtBj1C,EAAI4zC,EAAYr2C,GAEZyC,GAAKA,EAAE,GAAK,EAGd,OAFAlL,KAAKogD,SAASl1C,EAAE,IAETA,EAAE,OAEN,CACL,MAAMggB,EAASlrB,KAAKghD,eAAe,EAAG,EAAGlC,GAEzC,GAAI5zB,EAAO,IAAMA,EAAO,GACtB,OAAOA,EAAO,GAKlB,OADA,EAAI3f,EAAM+I,MAAM,oBACT8pC,GAGT,gBACE,IACIlzC,EADAzC,EAAO,EAGX,GAAIzI,KAAKw/C,QAAS,CAGhB,GAFA/2C,EAAOzI,KAAKmgD,UAAU,IAElB13C,IAAS21C,EACX,OAAO,EAST,GALElzC,EADEzC,GAAQ,IAAM,EACZs2C,EAAYt2C,GAEZu2C,EAAYv2C,GAAQ,GAGtByC,EAAE,GAAK,EAGT,OAFAlL,KAAKogD,SAASl1C,EAAE,IAETA,EAAE,OAEN,CACL,IAAIggB,EAASlrB,KAAKghD,eAAe,EAAG,EAAGhC,GAEvC,GAAI9zB,EAAO,GACT,OAAOA,EAAO,GAKhB,GAFAA,EAASlrB,KAAKghD,eAAe,GAAI,GAAIjC,GAEjC7zB,EAAO,GACT,OAAOA,EAAO,GAQlB,OAJA,EAAI3f,EAAM+I,MAAM,kBAEhBtU,KAAKogD,SAAS,GAEP,GAGT,gBACE,IAAI33C,EAAMyC,EAEV,GAAIlL,KAAKw/C,QAAS,CAGhB,GAFA/2C,EAAOzI,KAAKmgD,UAAU,IAElB13C,IAAS21C,EACX,OAAO,EAWT,GAPElzC,EADEzC,GAAQ,IAAM,EACZw2C,EAAYx2C,GACPA,GAAQ,IAAM,GAAKA,GAAQ,IAAM,EACtCy2C,GAAaz2C,GAAQ,GAAK,IAE1B02C,EAAY12C,GAAQ,GAGtByC,EAAE,GAAK,EAGT,OAFAlL,KAAKogD,SAASl1C,EAAE,IAETA,EAAE,OAEN,CACL,IAAIggB,EAASlrB,KAAKghD,eAAe,EAAG,EAAG7B,GAEvC,GAAIj0B,EAAO,GACT,OAAOA,EAAO,GAKhB,GAFAA,EAASlrB,KAAKghD,eAAe,EAAG,GAAI9B,EAAa,IAE7Ch0B,EAAO,GACT,OAAOA,EAAO,GAKhB,GAFAA,EAASlrB,KAAKghD,eAAe,GAAI,GAAI/B,GAEjC/zB,EAAO,GACT,OAAOA,EAAO,GAQlB,OAJA,EAAI3f,EAAM+I,MAAM,kBAEhBtU,KAAKogD,SAAS,GAEP,GAGT,UAAUv1C,GACR,IAAIf,EAEJ,MAAO9J,KAAK+/C,UAAYl1C,EAAG,CACzB,IAAkC,KAA7Bf,EAAI9J,KAAKoF,OAAOshC,QACnB,OAAuB,IAAnB1mC,KAAK+/C,UACA3B,EAGFp+C,KAAKggD,UAAYn1C,EAAI7K,KAAK+/C,UAAY,OAAU,GAAKl1C,EAG9D7K,KAAKggD,SAAWhgD,KAAKggD,UAAY,EAAIl2C,EACrC9J,KAAK+/C,WAAa,EAGpB,OAAO//C,KAAKggD,UAAYhgD,KAAK+/C,UAAYl1C,EAAI,OAAU,GAAKA,GAG9D,SAASA,IACF7K,KAAK+/C,WAAal1C,GAAK,IAC1B7K,KAAK+/C,UAAY,KAKhBrC,EA9qBe,GAirBxBp0C,EAAQo0C,gBAAkBA,GAIpB,SAAUr0C,EAAQC,EAASG,GAEjC,aAGAS,OAAOC,eAAeb,EAAS,aAAc,CAC3CpI,OAAO,IAEToI,EAAQwqC,iBAAc,EAEtB,IAAItoC,EAAc/B,EAAoB,GAElCinB,EAAUjnB,EAAoB,IAE9Bw3C,EAAQx3C,EAAoB,IAE5B8B,EAAQ9B,EAAoB,GAEhC,MAAMqqC,EAAc,WAClB,SAASA,EAAYphC,EAAQogC,EAAaljB,EAAM2X,GAC9CvnC,KAAK0S,OAASA,EACd1S,KAAK8yC,YAAcA,EACnB9yC,KAAK4vB,KAAOA,EACZ5vB,KAAKunC,OAASA,EAEd7W,EAAQ4lB,aAAa1sC,KAAK5J,KAAM8yC,GAoDlC,OAjDAgB,EAAY9oC,UAAYd,OAAOrF,OAAO6rB,EAAQ4lB,aAAatrC,WAC3Dd,OAAOC,eAAe2pC,EAAY9oC,UAAW,QAAS,CACpD,MACE,OAAO,EAAIO,EAAMoL,QAAQ3W,KAAM,QAASA,KAAK0S,OAAO6d,SAASvwB,KAAK8yC,eAGpEvrB,cAAc,IAGhBusB,EAAY9oC,UAAUisC,aAAe,SAAUC,KAE/CpD,EAAY9oC,UAAUgsC,UAAY,WAChC,GAAIh3C,KAAK82C,IACP,OAGF,MAAMoK,EAAa,IAAID,EAAME,WACvB1uB,EAAS,GAEf,IAAI,EAAIjnB,EAAY4hB,QAAQptB,KAAKunC,QAAS,CACxC,MAAM6Z,EAAgBphD,KAAKunC,OAAOl9B,IAAI,gBAEtC,IAAI,EAAImB,EAAYgiB,UAAU4zB,GAAgB,CAC5C,MAAMC,EAAUD,EAAc7wB,WAC9BkC,EAAOplB,KAAK,CACVlM,KAAMkgD,EACNvtC,MAAO,EACPqd,IAAKkwB,EAAQ/zC,UAKnBmlB,EAAOplB,KAAK,CACVlM,KAAMnB,KAAK2S,MACXmB,MAAO,EACPqd,IAAKnxB,KAAK2S,MAAMrF,SAElB,MAAMnM,EAAO+/C,EAAWI,YAAY7uB,GAC9BiZ,EAAavqC,EAAKmM,OAExB,IAAK,IAAI9J,EAAI,EAAGA,EAAIkoC,EAAYloC,IAC9BrC,EAAKqC,IAAM,IAGbxD,KAAKopB,OAASjoB,EACdnB,KAAK62C,aAAenL,EACpB1rC,KAAK82C,KAAM,GAGNhD,EA3DW,GA8DpBxqC,EAAQwqC,YAAcA,GAIhB,SAAUzqC,EAAQC,EAASG,GAEjC,aAGAS,OAAOC,eAAeb,EAAS,aAAc,CAC3CpI,OAAO,IAEToI,EAAQ63C,gBAAa,EAErB,IAAI51C,EAAQ9B,EAAoB,GAE5BoC,EAAcpC,EAAoB,GAElC83C,EAAsB93C,EAAoB,IAE1C+zC,EAAS/zC,EAAoB,IAEjC,MAAM+3C,UAAmBj2C,EAAMkN,cAC7B,YAAYgO,GACViB,MAAM,gBAAgBjB,IAK1B,IAAI06B,EAAa,WACf,SAASM,KAaT,SAASC,EAAgBvgD,EAAM2S,EAAOqd,GACpCnxB,KAAKmB,KAAOA,EACZnB,KAAK8T,MAAQA,EACb9T,KAAKmxB,IAAMA,EAgBb,SAASwwB,EAAcC,EAAcC,EAAWC,GAC9C,IAAIC,EAAWH,EAAaI,YAAYH,GACpCI,EAAO,EAEX,SAASnF,EAASxvC,GAGhB,IAFA,IAAI6c,EAAI,EAEC3mB,EAAI,EAAGA,EAAI8J,EAAQ9J,IAAK,CAC/B,IAAI0+C,EAAMJ,EAAQK,QAAQJ,EAAUE,GACpCA,EAAOA,EAAO,IAAMA,GAAQ,EAAIC,EAA0B,KAAnBD,GAAQ,EAAIC,GAAa,IAChE/3B,EAAIA,GAAK,EAAI+3B,EAGf,OAAO/3B,IAAM,EAGf,IAAImqB,EAAOwI,EAAS,GAChB57C,EAAQ47C,EAAS,GAAKA,EAAS,GAAKA,EAAS,GAAKA,EAAS,GAAKA,EAAS,GAAKA,EAAS,IAAM,KAAOA,EAAS,IAAM,IAAMA,EAAS,GAAK,GAAKA,EAAS,GAAK,GAAKA,EAAS,GAAK,EAAIA,EAAS,GAE9L,OAAa,IAATxI,EACKpzC,EACEA,EAAQ,GACTA,EAGH,KAGT,SAASkhD,EAAWR,EAAcE,EAASxF,GAIzC,IAHA,IAAIyF,EAAWH,EAAaI,YAAY,QACpCC,EAAO,EAEFz+C,EAAI,EAAGA,EAAI84C,EAAY94C,IAAK,CACnC,IAAI0+C,EAAMJ,EAAQK,QAAQJ,EAAUE,GACpCA,EAAOA,GAAQ,EAAIC,EAGrB,OAAI5F,EAAa,GACR2F,GAAQ,GAAK3F,GAAc,EAGtB,WAAP2F,EAvETR,EAAaz2C,UAAY,CACvB,YAAYrE,GACV,OAAIA,KAAM3G,KACDA,KAAK2G,GAGP3G,KAAK2G,GAAM,IAAI07C,UAAU,SAWpCX,EAAgB12C,UAAY,CAC1B,cACE,IAAI82C,EAAU,IAAIP,EAAoBe,kBAAkBtiD,KAAKmB,KAAMnB,KAAK8T,MAAO9T,KAAKmxB,KACpF,OAAO,EAAI5lB,EAAMoL,QAAQ3W,KAAM,UAAW8hD,IAG5C,mBACE,IAAIS,EAAQ,IAAId,EAChB,OAAO,EAAIl2C,EAAMoL,QAAQ3W,KAAM,eAAgBuiD,KAiDnD,IAAIC,EAAe,CAAC,mBAAoB,KAAM,KAAM,KAAM,yBAA0B,KAAM,sBAAuB,8BAA+B,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,oBAAqB,KAAM,KAAM,KAAM,6BAA8B,KAAM,0BAA2B,kCAAmC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,4BAA6B,KAAM,yBAA0B,iCAAkC,sCAAuC,KAAM,mCAAoC,2CAA4C,KAAM,KAAM,KAAM,KAAM,kBAAmB,YAAa,cAAe,YAAa,WAAY,SAAU,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,aACnwBC,EAAkB,CAAC,CAAC,CACtB/5C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,GAAI,EACJg6C,EAAG,IACD,CAAC,CACHh6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,GAAI,EACJg6C,EAAG,IACD,CAAC,CACHh6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,GAAI,EACJg6C,EAAG,IACD,CAAC,CACHh6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,GAAI,EACJg6C,EAAG,KAEDC,EAAsB,CAAC,CACzBC,OAAQ,CAAC,CACPl6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,EAAG,IAELG,UAAW,CAAC,CACVn6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,EAAG,EACHg6C,EAAG,GACF,CACDh6C,EAAG,EACHg6C,EAAG,GACF,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,EAAG,EACHg6C,EAAG,GACF,CACDh6C,EAAG,EACHg6C,EAAG,KAEJ,CACDE,OAAQ,CAAC,CACPl6C,GAAI,EACJg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,EAAG,IAELG,UAAW,CAAC,CACVn6C,EAAG,EACHg6C,GAAI,GACH,CACDh6C,GAAI,EACJg6C,EAAG,GACF,CACDh6C,EAAG,EACHg6C,EAAG,GACF,CACDh6C,EAAG,EACHg6C,EAAG,GACF,CACDh6C,EAAG,EACHg6C,EAAG,GACF,CACDh6C,EAAG,EACHg6C,EAAG,MAGHI,EAAiB,CAAC,MAAQ,KAAQ,IAAQ,KAC1CC,EAA2B,CAAC,GAAQ,GAExC,SAASC,EAAsB9+C,EAAOC,EAAQ8+C,GAC5C,IAEIC,EACA1/C,EACA44B,EACA+mB,EACAtD,EACAuD,EACAC,EARAvB,EAAUmB,EAAgBnB,QAC1BC,EAAWkB,EAAgBrB,aAAaI,YAAY,MAQpDsB,EAAS,GACTC,EAAiB,MAErB,IAAK//C,EAAI,EAAGA,EAAIW,EAAQX,IAMtB,IALAq8C,EAAMyD,EAAO9/C,GAAK,IAAI8I,WAAWpI,GACjCk/C,EAAO5/C,EAAI,EAAIq8C,EAAMyD,EAAO9/C,EAAI,GAChC6/C,EAAO7/C,EAAI,EAAIq8C,EAAMyD,EAAO9/C,EAAI,GAChC0/C,EAAeG,EAAK,IAAM,GAAKA,EAAK,IAAM,GAAKA,EAAK,IAAM,GAAKD,EAAK,IAAM,EAAIA,EAAK,IAAM,EAAIA,EAAK,IAAM,EAAIA,EAAK,IAAM,EAElHhnB,EAAI,EAAGA,EAAIl4B,EAAOk4B,IACrByjB,EAAIzjB,GAAK+mB,EAAQrB,EAAQK,QAAQJ,EAAUmB,GAC3CA,GAAgBA,EAAeK,IAAmB,GAAKnnB,EAAI,EAAIl4B,EAAQm/C,EAAKjnB,EAAI,IAAM,GAAK,IAAMA,EAAI,EAAIl4B,EAAQk/C,EAAKhnB,EAAI,IAAM,EAAI,GAAK+mB,EAI7I,OAAOG,EAGT,SAASE,EAAaC,EAAKv/C,EAAOC,EAAQu/C,EAAeC,EAAYrmB,EAAMsmB,EAAIX,GAC7E,GAAIQ,EAAK,CACP,MAAM9H,EAAQ,IAAIkI,EAAOZ,EAAgB9hD,KAAM8hD,EAAgBnvC,MAAOmvC,EAAgB9xB,KACtF,OAAO2yB,EAAgBnI,EAAOz3C,EAAOC,GAAQ,GAG/C,GAAsB,IAAlBu/C,IAAwBpmB,IAASqmB,GAA4B,IAAdC,EAAGt2C,QAA4B,IAAZs2C,EAAG,GAAGl7C,IAAwB,IAAbk7C,EAAG,GAAGlB,IAAyB,IAAbkB,EAAG,GAAGl7C,IAAyB,IAAbk7C,EAAG,GAAGlB,GAAwB,IAAZkB,EAAG,GAAGl7C,IAAwB,IAAbk7C,EAAG,GAAGlB,IAAyB,IAAbkB,EAAG,GAAGl7C,IAAyB,IAAbk7C,EAAG,GAAGlB,EACtM,OAAOM,EAAsB9+C,EAAOC,EAAQ8+C,GAG9C,IAAIc,IAAYzmB,EACZ0mB,EAAWvB,EAAgBiB,GAAeO,OAAOL,GACrDI,EAASh5B,MAAK,SAAUX,EAAGb,GACzB,OAAOa,EAAEq4B,EAAIl5B,EAAEk5B,GAAKr4B,EAAE3hB,EAAI8gB,EAAE9gB,KAE9B,IAQIoB,EAAG6vC,EARHuK,EAAiBF,EAAS12C,OAC1B62C,EAAY,IAAI9B,UAAU6B,GAC1BE,EAAY,IAAI/B,UAAU6B,GAC1BG,EAA0B,GAC1BC,EAAY,EACZC,EAAO,EACPC,EAAO,EACPC,EAAO,EAGX,IAAK9K,EAAI,EAAGA,EAAIuK,EAAgBvK,IAC9BwK,EAAUxK,GAAKqK,EAASrK,GAAGjxC,EAC3B07C,EAAUzK,GAAKqK,EAASrK,GAAG+I,EAC3B6B,EAAO1zC,KAAKyX,IAAIi8B,EAAMP,EAASrK,GAAGjxC,GAClC87C,EAAO3zC,KAAKC,IAAI0zC,EAAMR,EAASrK,GAAGjxC,GAClC+7C,EAAO5zC,KAAKyX,IAAIm8B,EAAMT,EAASrK,GAAG+I,GAE9B/I,EAAIuK,EAAiB,GAAKF,EAASrK,GAAG+I,IAAMsB,EAASrK,EAAI,GAAG+I,GAAKsB,EAASrK,GAAGjxC,IAAMs7C,EAASrK,EAAI,GAAGjxC,EAAI,EACzG47C,GAAa,GAAKJ,EAAiB,EAAIvK,EAEvC0K,EAAwBh3C,KAAKssC,GAIjC,IAAI+K,EAAwBL,EAAwB/2C,OAChDq3C,EAAoB,IAAItC,UAAUqC,GAClCE,EAAoB,IAAIvC,UAAUqC,GAClCG,EAAsB,IAAInI,YAAYgI,GAE1C,IAAK56C,EAAI,EAAGA,EAAI46C,EAAuB56C,IACrC6vC,EAAI0K,EAAwBv6C,GAC5B66C,EAAkB76C,GAAKk6C,EAASrK,GAAGjxC,EACnCk8C,EAAkB96C,GAAKk6C,EAASrK,GAAG+I,EACnCmC,EAAoB/6C,GAAK,GAAKo6C,EAAiB,EAAIvK,EAmBrD,IAhBA,IASIvd,EACA0oB,EACAC,EAEA7C,EACA9gB,EAdA4jB,GAAYT,EACZU,GAAWR,EACXS,EAAYhhD,EAAQsgD,EACpBW,EAAqBrC,EAAeY,GACpC7D,EAAM,IAAIvzC,WAAWpI,GACrBo/C,EAAS,GACTxB,EAAUmB,EAAgBnB,QAC1BC,EAAWkB,EAAgBrB,aAAaI,YAAY,MACpDoD,EAAM,EAINlC,EAAe,EAIV1/C,EAAI,EAAGA,EAAIW,EAAQX,IAAK,CAC/B,GAAImgD,EAAY,CACd,IAAI0B,EAAOvD,EAAQK,QAAQJ,EAAUoD,GAGrC,GAFAC,GAAOC,EAEHD,EAAK,CACP9B,EAAOj2C,KAAKwyC,GACZ,UAOJ,IAHAA,EAAM,IAAIvzC,WAAWuzC,GACrByD,EAAOj2C,KAAKwyC,GAEPzjB,EAAI,EAAGA,EAAIl4B,EAAOk4B,IACrB,GAAI2nB,GAAWzmB,EAAK95B,GAAG44B,GACrByjB,EAAIzjB,GAAK,MADX,CAKA,GAAIA,GAAK4oB,GAAY5oB,EAAI8oB,GAAa1hD,GAAKyhD,EAGzC,IAFA/B,EAAeA,GAAgB,EAAIoB,EAE9B3K,EAAI,EAAGA,EAAI+K,EAAuB/K,IACrCmL,EAAKthD,EAAIohD,EAAkBjL,GAC3BoL,EAAK3oB,EAAIuoB,EAAkBhL,GAC3BuI,EAAMoB,EAAOwB,GAAIC,GAEb7C,IACFA,EAAM2C,EAAoBlL,GAC1BuJ,GAAgBhB,QAOpB,IAHAgB,EAAe,EACf9hB,EAAQ8iB,EAAiB,EAEpBvK,EAAI,EAAGA,EAAIuK,EAAgBvK,IAAKvY,IACnC2jB,EAAK3oB,EAAI+nB,EAAUxK,GAEfoL,GAAM,GAAKA,EAAK7gD,IAClB4gD,EAAKthD,EAAI4gD,EAAUzK,GAEfmL,GAAM,IACR5C,EAAMoB,EAAOwB,GAAIC,GAEb7C,IACFgB,GAAgBhB,GAAO9gB,KAOjC,IAAI+hB,EAAQrB,EAAQK,QAAQJ,EAAUmB,GACtCrD,EAAIzjB,GAAK+mB,GAIb,OAAOG,EAGT,SAASgC,EAAiBphD,EAAOC,EAAQu/C,EAAe6B,EAAiBC,EAASC,EAAS9B,EAAYC,EAAIX,GACzG,IAAIyC,EAAiB/C,EAAoBe,GAAed,OAElC,IAAlBc,IACFgC,EAAiBA,EAAezB,OAAO,CAACL,EAAG,MAG7C,IAGIjK,EAHAgM,EAAuBD,EAAep4C,OACtCs4C,EAAkB,IAAIrO,WAAWoO,GACjCE,EAAkB,IAAItO,WAAWoO,GAGrC,IAAKhM,EAAI,EAAGA,EAAIgM,EAAsBhM,IACpCiM,EAAgBjM,GAAK+L,EAAe/L,GAAGjxC,EACvCm9C,EAAgBlM,GAAK+L,EAAe/L,GAAG+I,EAGzC,IAAIoD,EAAoBnD,EAAoBe,GAAeb,UAErC,IAAlBa,IACFoC,EAAoBA,EAAkB7B,OAAO,CAACL,EAAG,MAGnD,IAAImC,EAA0BD,EAAkBx4C,OAC5C04C,EAAqB,IAAIzO,WAAWwO,GACpCE,EAAqB,IAAI1O,WAAWwO,GAExC,IAAKpM,EAAI,EAAGA,EAAIoM,EAAyBpM,IACvCqM,EAAmBrM,GAAKmM,EAAkBnM,GAAGjxC,EAC7Cu9C,EAAmBtM,GAAKmM,EAAkBnM,GAAG+I,EAW/C,IARA,IAAIwD,EAAiBX,EAAgB,GAAGj4C,OACpC64C,EAAkBZ,EAAgBj4C,OAClC63C,EAAqBpC,EAAyBW,GAC9CJ,EAAS,GACTxB,EAAUmB,EAAgBnB,QAC1BC,EAAWkB,EAAgBrB,aAAaI,YAAY,MACpDoD,EAAM,EAED5hD,EAAI,EAAGA,EAAIW,EAAQX,IAAK,CAC/B,GAAImgD,EAAY,CACd,IAAI0B,EAAOvD,EAAQK,QAAQJ,EAAUoD,GAGrC,GAFAC,GAAOC,EAEHD,EACF,MAAM,IAAI5D,EAAW,+BAIzB,IAAI3B,EAAM,IAAIvzC,WAAWpI,GACzBo/C,EAAOj2C,KAAKwyC,GAEZ,IAAK,IAAIzjB,EAAI,EAAGA,EAAIl4B,EAAOk4B,IAAK,CAC9B,IAAI0oB,EAAIC,EACJ7B,EAAe,EAEnB,IAAKvJ,EAAI,EAAGA,EAAIgM,EAAsBhM,IACpCmL,EAAKthD,EAAIqiD,EAAgBlM,GACzBoL,EAAK3oB,EAAIwpB,EAAgBjM,GAErBmL,EAAK,GAAKC,EAAK,GAAKA,GAAM7gD,EAC5Bg/C,IAAiB,EAEjBA,EAAeA,GAAgB,EAAII,EAAOwB,GAAIC,GAIlD,IAAKpL,EAAI,EAAGA,EAAIoM,EAAyBpM,IACvCmL,EAAKthD,EAAIyiD,EAAmBtM,GAAK8L,EACjCV,EAAK3oB,EAAI4pB,EAAmBrM,GAAK6L,EAE7BV,EAAK,GAAKA,GAAMqB,GAAmBpB,EAAK,GAAKA,GAAMmB,EACrDhD,IAAiB,EAEjBA,EAAeA,GAAgB,EAAIqC,EAAgBT,GAAIC,GAI3D,IAAI5B,EAAQrB,EAAQK,QAAQJ,EAAUmB,GACtCrD,EAAIzjB,GAAK+mB,GAIb,OAAOG,EAGT,SAAS8C,EAAuBC,EAASC,EAAYC,EAASC,EAAoBC,EAAyBC,EAAehD,EAAeE,EAAI+C,EAAyBC,EAAc3D,EAAiB4D,GACnM,GAAIR,GAAWC,EACb,MAAM,IAAI9E,EAAW,mDAGvB,IAAIsF,EAAa,GACbC,EAAgB,EAChBC,GAAmB,EAAIn7C,EAAYkqB,MAAMwwB,EAAQj5C,OAASk5C,GAC1D1E,EAAUmB,EAAgBnB,QAC1BF,EAAeqB,EAAgBrB,aACnC,IAAIqF,EAASC,EAETb,IACFY,EAAUE,EAAiB,GAC3BD,EAAe,GACfF,EAAmBn2C,KAAKC,IAAIk2C,EAAkB,IAGhD,MAAOF,EAAWx5C,OAASk5C,EAAoB,CAC7C,IAAIY,EAAcf,EAAUK,EAAcW,iBAAiBC,OAAOT,GAAgBlF,EAAcC,EAAc,OAAQE,GACtHiF,GAAiBK,EACjB,IAAIG,EAAe,EACfC,EAAa,EACjB,MAAMC,EAAcpB,EAAUa,EAAa55C,OAAS,EAEpD,MAAO,EAAM,CACX,IAQIg2C,EARAoE,EAAarB,EAAUK,EAAciB,gBAAgBL,OAAOT,GAAgBlF,EAAcC,EAAc,OAAQE,GAEpH,GAAmB,OAAf4F,EACF,MAOF,GAJAH,GAAgBG,EAChBF,GAAcD,EAGVjB,EAAY,CACd,IAAIsB,EAAoBjG,EAAcC,EAAc,OAAQE,GAE5D,GAAI8F,EAAoB,EACtBtE,EAASuE,EAAiBxB,EAASC,EAAYiB,EAAcR,EAAe,EAAGa,EAAmB,EAAGrB,EAAQtC,OAAO6C,GAAaE,EAAkB,EAAG,EAAG,EAAG,EAAGN,EAAeC,EAAyBC,EAAc3D,EAAiB,EAAG4D,OACpO,CACL,IAAIiB,EAAW1F,EAAWR,EAAcE,EAASkF,GAC7Ce,EAAMpG,EAAcC,EAAc,QAASE,GAC3CkG,EAAMrG,EAAcC,EAAc,QAASE,GAC3CmG,EAASH,EAAWvB,EAAQj5C,OAASi5C,EAAQuB,GAAYhB,EAAWgB,EAAWvB,EAAQj5C,QAC3Fg2C,EAASgC,EAAiBiC,EAAcR,EAAeJ,EAAyBsB,EAAQF,EAAKC,GAAK,EAAOpB,EAAc3D,GAGzH6D,EAAWz5C,KAAKi2C,QACP+C,EACTa,EAAa75C,KAAKk6C,IAElBjE,EAASE,GAAa,EAAO+D,EAAcR,EAAerD,GAAe,EAAO,KAAME,EAAIX,GAC1F6D,EAAWz5C,KAAKi2C,IAIpB,GAAI+C,IAAYC,EAAY,CAC1B,MAAM4B,EAAaxB,EAAcyB,gBAAgBb,OAAOT,GAExD,IAAIuB,EAEJ,GAHAvB,EAAavH,YAGM,IAAf4I,EACFE,EAAmBC,EAAuBxB,EAAcW,EAAYT,OAC/D,CACL,MAAMuB,EAAczB,EAAa11B,IAC3Bo3B,EAAY1B,EAAa/zB,SAAWo1B,EAC1CrB,EAAa11B,IAAMo3B,EACnBH,EAAmBtE,EAAgB+C,EAAcW,EAAYT,GAAe,GAC5EF,EAAa11B,IAAMm3B,EACnBzB,EAAa/zB,SAAWy1B,EAG1B,MAAMC,EAAyBtB,EAAa55C,OAE5C,GAAIm6C,IAAgBe,EAAyB,EAC3C1B,EAAWz5C,KAAK+6C,OACX,CACL,IAAI5kD,EACAk/C,EAEA+F,EACAC,EACAC,EAHAC,EAAO,EAKX,IAAKplD,EAAIikD,EAAajkD,EAAIglD,EAAwBhlD,IAAK,CAKrD,IAJAklD,EAAcxB,EAAa1jD,GAC3BilD,EAAOG,EAAOF,EACdC,EAAe,GAEVjG,EAAI,EAAGA,EAAIqE,EAAerE,IAC7BiG,EAAat7C,KAAK+6C,EAAiB1F,GAAGl6B,SAASogC,EAAMH,IAGvD3B,EAAWz5C,KAAKs7C,GAChBC,EAAOH,KAMf,IAAII,EAAkB,GAClBnnB,EAAQ,GACRonB,GAAc,EACdC,EAAqBxC,EAAQj5C,OAASk5C,EAE1C,MAAO9kB,EAAMp0B,OAASy7C,EAAoB,CACxC,IAAIC,EAAY3C,EAAUY,EAAQK,OAAOT,GAAgBlF,EAAcC,EAAc,OAAQE,GAE7F,MAAOkH,IACLtnB,EAAMr0B,KAAKy7C,GAGbA,GAAeA,EAGjB,IAAK,IAAItlD,EAAI,EAAG8oB,EAAKi6B,EAAQj5C,OAAQ9J,EAAI8oB,EAAI9oB,IACvCk+B,EAAMl+B,IACRqlD,EAAgBx7C,KAAKk5C,EAAQ/iD,IAIjC,IAAK,IAAI44B,EAAI,EAAGA,EAAIoqB,EAAoBhjD,IAAK44B,IACvCsF,EAAMl+B,IACRqlD,EAAgBx7C,KAAKy5C,EAAW1qB,IAIpC,OAAOysB,EAGT,SAAShB,EAAiBxB,EAASC,EAAYpiD,EAAOC,EAAQ8kD,EAAmBC,EAAyBC,EAAWC,EAAcpC,EAAkBqC,EAAYC,EAAUC,EAAiBC,EAAqB9C,EAAeC,EAAyBC,EAAc3D,EAAiBwG,EAAc5C,GACpS,GAAIR,GAAWC,EACb,MAAM,IAAI9E,EAAW,4CAGvB,IACIh+C,EAAGq8C,EADHyD,EAAS,GAGb,IAAK9/C,EAAI,EAAGA,EAAIW,EAAQX,IAAK,CAG3B,GAFAq8C,EAAM,IAAIvzC,WAAWpI,GAEjB+kD,EACF,IAAK,IAAI7sB,EAAI,EAAGA,EAAIl4B,EAAOk4B,IACzByjB,EAAIzjB,GAAK6sB,EAIb3F,EAAOj2C,KAAKwyC,GAGd,IAAIiC,EAAUmB,EAAgBnB,QAC1BF,EAAeqB,EAAgBrB,aAC/B8H,EAASrD,GAAWK,EAAciD,YAAYrC,OAAOT,IAAiBlF,EAAcC,EAAc,OAAQE,GAC1G8H,EAAS,EACbpmD,EAAI,EAEJ,MAAOA,EAAI0lD,EAAyB,CAClC,IAAIW,EAASxD,EAAUK,EAAciD,YAAYrC,OAAOT,GAAgBlF,EAAcC,EAAc,OAAQE,GAC5G4H,GAAUG,EACV,IAAIC,EAAczD,EAAUK,EAAcqD,YAAYzC,OAAOT,GAAgBlF,EAAcC,EAAc,OAAQE,GACjH8H,GAAUE,EACV,IAAIE,EAAWJ,EAEf,EAAG,CACD,IAAIK,EAAW,EAEXd,EAAY,IACdc,EAAW5D,EAAUQ,EAAa/J,SAAS2M,GAAgB9H,EAAcC,EAAc,OAAQE,IAGjG,IAAIr3C,EAAI0+C,EAAYO,EAASO,EACzBnC,EAAWzB,EAAUK,EAAcwD,cAAc5C,OAAOT,GAAgBzE,EAAWR,EAAcE,EAASkF,GAC1GmD,EAAkB7D,IAAeD,EAAUQ,EAAa1E,UAAYR,EAAcC,EAAc,OAAQE,IACxG6G,EAAeS,EAAatB,GAC5BsC,EAAczB,EAAa,GAAGr7C,OAC9B+8C,EAAe1B,EAAar7C,OAEhC,GAAI68C,EAAiB,CACnB,IAAIG,EAAM3I,EAAcC,EAAc,QAASE,GAC3CyI,EAAM5I,EAAcC,EAAc,QAASE,GAC3CiG,EAAMpG,EAAcC,EAAc,QAASE,GAC3CkG,EAAMrG,EAAcC,EAAc,QAASE,GAC/CsI,GAAeE,EACfD,GAAgBE,EAChB5B,EAAerD,EAAiB8E,EAAaC,EAAc1D,EAAyBgC,GAAe2B,GAAO,GAAKvC,GAAMwC,GAAO,GAAKvC,GAAK,EAAOpB,EAAc3D,GAG7J,IAEIuH,EAAIC,EAAIC,EAFRC,EAAUlgD,GAAuB,EAAlB8+C,EAAsB,EAAIc,EAAe,GACxDO,EAAUZ,GAA8B,EAAlBT,EAAsBa,EAAc,EAAI,GAGlE,GAAIf,EAAY,CACd,IAAKmB,EAAK,EAAGA,EAAKH,EAAcG,IAG9B,GAFA3K,EAAMyD,EAAOsH,EAAUJ,GAElB3K,EAAL,CAIA6K,EAAY/B,EAAa6B,GACzB,IAAIK,EAAWh6C,KAAKyX,IAAIpkB,EAAQymD,EAASP,GAEzC,OAAQZ,GACN,KAAK,EACH,IAAKiB,EAAK,EAAGA,EAAKI,EAAUJ,IAC1B5K,EAAI8K,EAAUF,IAAOC,EAAUD,GAGjC,MAEF,KAAK,EACH,IAAKA,EAAK,EAAGA,EAAKI,EAAUJ,IAC1B5K,EAAI8K,EAAUF,IAAOC,EAAUD,GAGjC,MAEF,QACE,MAAM,IAAIjJ,EAAW,YAAYgI,uBAIvCQ,GAAYK,EAAe,MACtB,CACL,IAAKI,EAAK,EAAGA,EAAKJ,EAAcI,IAG9B,GAFA5K,EAAMyD,EAAOqH,EAAUF,GAElB5K,EAML,OAFA6K,EAAY/B,EAAa8B,GAEjBjB,GACN,KAAK,EACH,IAAKgB,EAAK,EAAGA,EAAKJ,EAAaI,IAC7B3K,EAAI+K,EAAUJ,IAAOE,EAAUF,GAGjC,MAEF,KAAK,EACH,IAAKA,EAAK,EAAGA,EAAKJ,EAAaI,IAC7B3K,EAAI+K,EAAUJ,IAAOE,EAAUF,GAGjC,MAEF,QACE,MAAM,IAAIhJ,EAAW,YAAYgI,sBAIvCQ,GAAYI,EAAc,EAG5B5mD,IACA,IAAIsnD,EAASzE,EAAUK,EAAcqE,YAAYzD,OAAOT,GAAgBlF,EAAcC,EAAc,OAAQE,GAE5G,GAAe,OAAXgJ,EACF,MAGFd,GAAYc,EAASxB,QACd,GAGX,OAAOhG,EAGT,SAAS0H,EAAwBvH,EAAKwH,EAAcC,EAAeC,EAAiBnH,EAAUf,GAC5F,MAAMW,EAAK,GAENH,IACHG,EAAGv2C,KAAK,CACN3E,GAAIuiD,EACJvI,EAAG,IAGY,IAAbsB,IACFJ,EAAGv2C,KAAK,CACN3E,GAAI,EACJg6C,GAAI,IAENkB,EAAGv2C,KAAK,CACN3E,EAAG,EACHg6C,GAAI,IAENkB,EAAGv2C,KAAK,CACN3E,GAAI,EACJg6C,GAAI,MAKV,MAAM0I,GAAmBD,EAAkB,GAAKF,EAC1C7C,EAAmB5E,EAAaC,EAAK2H,EAAiBF,EAAelH,GAAU,EAAO,KAAMJ,EAAIX,GAChGoI,EAAW,GAEjB,IAAK,IAAI7nD,EAAI,EAAGA,GAAK2nD,EAAiB3nD,IAAK,CACzC,MAAM8nD,EAAgB,GAChB1C,EAAOqC,EAAeznD,EACtBilD,EAAOG,EAAOqC,EAEpB,IAAK,IAAIvI,EAAI,EAAGA,EAAIwI,EAAexI,IACjC4I,EAAcj+C,KAAK+6C,EAAiB1F,GAAGl6B,SAASogC,EAAMH,IAGxD4C,EAASh+C,KAAKi+C,GAGhB,OAAOD,EAGT,SAASE,EAAqB9H,EAAK4H,EAAUrH,EAAUwH,EAAaC,EAAcxC,EAAmByC,EAAYlC,EAAqBmC,EAAWC,EAAYC,EAAaC,EAAaC,EAAaC,EAAa/I,GAC/M,MAAM3lB,EAAO,KAEb,GAAIouB,EACF,MAAM,IAAIlK,EAAW,yBAGvB,GAA4B,IAAxBgI,EACF,MAAM,IAAIhI,EAAW,YAAcgI,EAAsB,wCAG3D,MAAMyC,EAAe,GACrB,IAAIzoD,EAAG44B,EAAGyjB,EAEV,IAAKr8C,EAAI,EAAGA,EAAIioD,EAAcjoD,IAAK,CAGjC,GAFAq8C,EAAM,IAAIvzC,WAAWk/C,GAEjBvC,EACF,IAAK7sB,EAAI,EAAGA,EAAIovB,EAAapvB,IAC3ByjB,EAAIzjB,GAAK6sB,EAIbgD,EAAa5+C,KAAKwyC,GAGpB,MAAMqM,EAAmBb,EAAS/9C,OAC5B6+C,EAAWd,EAAS,GACpBJ,EAAekB,EAAS,GAAG7+C,OAC3B49C,EAAgBiB,EAAS7+C,OACzB8+C,GAAe,EAAIvgD,EAAYkqB,MAAMm2B,GACrCtI,EAAK,GAENH,IACHG,EAAGv2C,KAAK,CACN3E,EAAGs7C,GAAY,EAAI,EAAI,EACvBtB,GAAI,IAGW,IAAbsB,IACFJ,EAAGv2C,KAAK,CACN3E,GAAI,EACJg6C,GAAI,IAENkB,EAAGv2C,KAAK,CACN3E,EAAG,EACHg6C,GAAI,IAENkB,EAAGv2C,KAAK,CACN3E,GAAI,EACJg6C,GAAI,MAKV,MAAM2J,EAAqB,GAC3B,IAAIC,EAAUhJ,EAgBViJ,EAAIC,EAAItK,EAAKuK,EAAcnB,EAAe5iD,EAAGg6C,EAAGgK,EAAYC,EAVhE,IAJIlJ,IACF6I,EAAW,IAAIzI,EAAOZ,EAAgB9hD,KAAM8hD,EAAgBnvC,MAAOmvC,EAAgB9xB,MAGhF3tB,EAAI4oD,EAAe,EAAG5oD,GAAK,EAAGA,IAE/B8/C,EADEG,EACOK,EAAgBwI,EAAUX,EAAWC,GAAY,GAEjDpI,GAAa,EAAOmI,EAAWC,EAAY5H,GAAU,EAAO1mB,EAAMsmB,EAAIX,GAGjFoJ,EAAmB7oD,GAAK8/C,EAK1B,IAAKiJ,EAAK,EAAGA,EAAKX,EAAYW,IAC5B,IAAKC,EAAK,EAAGA,EAAKb,EAAWa,IAAM,CAIjC,IAHAtK,EAAM,EACNuK,EAAe,EAEVrwB,EAAIgwB,EAAe,EAAGhwB,GAAK,EAAGA,IACjC8lB,EAAMmK,EAAmBjwB,GAAGmwB,GAAIC,GAAMtK,EACtCuK,GAAgBvK,GAAO9lB,EAOzB,GAJAkvB,EAAgBD,EAASoB,GACzB/jD,EAAImjD,EAAcU,EAAKP,EAAcQ,EAAKT,GAAe,EACzDrJ,EAAIoJ,EAAcS,EAAKR,EAAcS,EAAKR,GAAe,EAErDtjD,GAAK,GAAKA,EAAIuiD,GAAgBO,GAAe9I,GAAK,GAAKA,EAAIwI,GAAiBO,EAC9E,IAAKjoD,EAAI,EAAGA,EAAI0nD,EAAe1nD,IAI7B,IAHAmpD,EAAYV,EAAavJ,EAAIl/C,GAC7BkpD,EAAapB,EAAc9nD,GAEtB44B,EAAI,EAAGA,EAAI6uB,EAAc7uB,IAC5BuwB,EAAUjkD,EAAI0zB,IAAMswB,EAAWtwB,OAG9B,CACL,IAAIwwB,EAASC,EAEb,IAAKrpD,EAAI,EAAGA,EAAI0nD,EAAe1nD,IAG7B,GAFAqpD,EAAUnK,EAAIl/C,IAEVqpD,EAAU,GAAKA,GAAWpB,GAO9B,IAHAkB,EAAYV,EAAaY,GACzBH,EAAapB,EAAc9nD,GAEtB44B,EAAI,EAAGA,EAAI6uB,EAAc7uB,IAC5BwwB,EAAUlkD,EAAI0zB,EAEVwwB,GAAW,GAAKA,EAAUpB,IAC5BmB,EAAUC,IAAYF,EAAWtwB,KAQ7C,OAAO6vB,EAGT,SAASa,EAAkB3rD,EAAM2S,GAC/B,IAAIi5C,EAAgB,GACpBA,EAAcl2B,QAAS,EAAIhrB,EAAYqqB,YAAY/0B,EAAM2S,GACzD,IAAI4tB,EAAQvgC,EAAK2S,EAAQ,GACrBk5C,EAAsB,GAARtrB,EAElB,IAAK8gB,EAAawK,GAChB,MAAM,IAAIxL,EAAW,yBAA2BwL,GAGlDD,EAAchpD,KAAOipD,EACrBD,EAAcE,SAAWzK,EAAawK,GACtCD,EAAcG,qBAA+B,IAARxrB,GACrC,IAAIyrB,KAAsC,GAARzrB,GAC9B0rB,EAAgBjsD,EAAK2S,EAAQ,GAC7Bu5C,EAAkBD,GAAiB,EAAI,EACvCE,EAAa,CAAiB,GAAhBF,GACdt6B,EAAWhf,EAAQ,EAEvB,GAAsB,IAAlBs5C,EAAqB,CACvBC,EAAoE,WAAlD,EAAIxhD,EAAYqqB,YAAY/0B,EAAM2xB,EAAW,GAC/DA,GAAY,EACZ,IAAIngB,EAAQ06C,EAAkB,GAAK,EACnCC,EAAW,GAAKnsD,EAAK2xB,KAErB,QAASngB,EAAQ,EACf26C,EAAWjgD,KAAKlM,EAAK2xB,WAElB,GAAsB,IAAlBs6B,GAAyC,IAAlBA,EAChC,MAAM,IAAI5L,EAAW,6BAGvBuL,EAAcO,WAAaA,EAC3B,IAAIC,EAA8B,EAE9BR,EAAcl2B,QAAU,IAC1B02B,EAA8B,EACrBR,EAAcl2B,QAAU,QACjC02B,EAA8B,GAGhC,IACI/pD,EAAG8oB,EADHkhC,EAAa,GAGjB,IAAKhqD,EAAI,EAAGA,EAAI6pD,EAAiB7pD,IAAK,CACpC,IAAIqzB,EAGFA,EADkC,IAAhC02B,EACOpsD,EAAK2xB,GAC2B,IAAhCy6B,GACA,EAAI1hD,EAAYoqB,YAAY90B,EAAM2xB,IAElC,EAAIjnB,EAAYqqB,YAAY/0B,EAAM2xB,GAG7C06B,EAAWngD,KAAKwpB,GAChB/D,GAAYy6B,EAed,GAZAR,EAAcS,WAAaA,EAEtBL,GAGHJ,EAAcU,iBAAkB,EAAI5hD,EAAYqqB,YAAY/0B,EAAM2xB,GAClEA,GAAY,GAHZi6B,EAAcU,gBAAkBtsD,EAAK2xB,KAMvCi6B,EAAcz/C,QAAS,EAAIzB,EAAYqqB,YAAY/0B,EAAM2xB,GACzDA,GAAY,EAEiB,aAAzBi6B,EAAcz/C,OAAuB,CACvC,GAAoB,KAAhB0/C,EAkCF,MAAM,IAAIxL,EAAW,kCAjCrB,IAAIkM,EAAoBC,EAA6BxsD,EAAM2xB,GACvD86B,EAA4BzsD,EAAK2xB,EAAW+6B,GAC5CC,KAAkD,EAA5BF,GACtBG,EAAsB,EACtBC,EAAgB,IAAI1hD,WAAWyhD,GAYnC,IAVKD,IACHE,EAAc,GAAK,IACnBA,EAAc,GAAK,KAGrBA,EAAc,GAAKN,EAAkBvpD,SAAW,GAAK,IACrD6pD,EAAc,GAAKN,EAAkBvpD,QAAU,GAAK,IACpD6pD,EAAc,GAAKN,EAAkBvpD,QAAU,EAAI,IACnD6pD,EAAc,GAAgC,IAA3BN,EAAkBvpD,OAEhCX,EAAIsvB,EAAUxG,EAAKnrB,EAAKmM,OAAQ9J,EAAI8oB,EAAI9oB,IAAK,CAChD,IAAI44B,EAAI,EAER,MAAOA,EAAI2xB,GAAuBC,EAAc5xB,KAAOj7B,EAAKqC,EAAI44B,GAC9DA,IAGF,GAAIA,IAAM2xB,EAAqB,CAC7BhB,EAAcz/C,OAAS9J,EAAIuqD,EAC3B,OAIJ,GAA6B,aAAzBhB,EAAcz/C,OAChB,MAAM,IAAIk0C,EAAW,6BAQ3B,OADAuL,EAAckB,UAAYn7B,EACnBi6B,EAGT,SAASmB,EAAaC,EAAQhtD,EAAM2S,EAAOqd,GACzC,IAAIi9B,EAAW,GACXt7B,EAAWhf,EAEf,MAAOgf,EAAW3B,EAAK,CACrB,IAAI47B,EAAgBD,EAAkB3rD,EAAM2xB,GAC5CA,EAAWi6B,EAAckB,UACzB,IAAII,EAAU,CACZF,OAAQpB,EACR5rD,QAWF,GARKgtD,EAAOG,eACVD,EAAQv6C,MAAQgf,EAChBA,GAAYi6B,EAAcz/C,OAC1B+gD,EAAQl9B,IAAM2B,GAGhBs7B,EAAS/gD,KAAKghD,GAEa,KAAvBtB,EAAchpD,KAChB,MAIJ,GAAIoqD,EAAOG,aACT,IAAK,IAAI9qD,EAAI,EAAG8oB,EAAK8hC,EAAS9gD,OAAQ9J,EAAI8oB,EAAI9oB,IAC5C4qD,EAAS5qD,GAAGsQ,MAAQgf,EACpBA,GAAYs7B,EAAS5qD,GAAG2qD,OAAO7gD,OAC/B8gD,EAAS5qD,GAAG2tB,IAAM2B,EAItB,OAAOs7B,EAGT,SAAST,EAA6BxsD,EAAM2S,GAC1C,MAAO,CACL5P,OAAO,EAAI2H,EAAYqqB,YAAY/0B,EAAM2S,GACzC3P,QAAQ,EAAI0H,EAAYqqB,YAAY/0B,EAAM2S,EAAQ,GAClDpL,GAAG,EAAImD,EAAYqqB,YAAY/0B,EAAM2S,EAAQ,GAC7C4uC,GAAG,EAAI72C,EAAYqqB,YAAY/0B,EAAM2S,EAAQ,IAC7C01C,oBAAwC,EAAnBroD,EAAK2S,EAAQ,KAItC,IAAI+5C,EAAsC,GAE1C,SAASU,EAAeF,EAASG,GAC/B,IAIIx9B,EAAM4yB,EAAIpgD,EAAGirD,EAJbN,EAASE,EAAQF,OACjBhtD,EAAOktD,EAAQltD,KACf2xB,EAAWu7B,EAAQv6C,MACnBqd,EAAMk9B,EAAQl9B,IAGlB,OAAQg9B,EAAOpqD,MACb,KAAK,EACH,IAAI2qD,EAAa,GACbC,GAAkB,EAAI9iD,EAAYoqB,YAAY90B,EAAM2xB,GAaxD,GAZA47B,EAAWrI,WAA+B,EAAlBsI,GACxBD,EAAWpI,cAAkC,EAAlBqI,GAC3BD,EAAWE,kBAAoBD,GAAmB,EAAI,EACtDD,EAAWG,kBAAoBF,GAAmB,EAAI,EACtDD,EAAWI,mBAAqBH,GAAmB,EAAI,EACvDD,EAAWK,6BAA+BJ,GAAmB,EAAI,EACjED,EAAWM,2BAA+C,IAAlBL,GACxCD,EAAWO,+BAAmD,IAAlBN,GAC5CD,EAAW1K,SAAW2K,GAAmB,GAAK,EAC9CD,EAAWQ,mBAAqBP,GAAmB,GAAK,EACxD77B,GAAY,GAEP47B,EAAWrI,QAAS,CAIvB,IAHAoI,EAAmC,IAAxBC,EAAW1K,SAAiB,EAAI,EAC3CJ,EAAK,GAEApgD,EAAI,EAAGA,EAAIirD,EAAUjrD,IACxBogD,EAAGv2C,KAAK,CACN3E,GAAG,EAAImD,EAAYmqB,UAAU70B,EAAM2xB,GACnC4vB,GAAG,EAAI72C,EAAYmqB,UAAU70B,EAAM2xB,EAAW,KAEhDA,GAAY,EAGd47B,EAAW9K,GAAKA,EAGlB,GAAI8K,EAAWpI,aAAeoI,EAAWQ,mBAAoB,CAG3D,IAFAtL,EAAK,GAEApgD,EAAI,EAAGA,EAAI,EAAGA,IACjBogD,EAAGv2C,KAAK,CACN3E,GAAG,EAAImD,EAAYmqB,UAAU70B,EAAM2xB,GACnC4vB,GAAG,EAAI72C,EAAYmqB,UAAU70B,EAAM2xB,EAAW,KAEhDA,GAAY,EAGd47B,EAAW9H,aAAehD,EAG5B8K,EAAWjI,yBAA0B,EAAI56C,EAAYqqB,YAAY/0B,EAAM2xB,GACvEA,GAAY,EACZ47B,EAAWlI,oBAAqB,EAAI36C,EAAYqqB,YAAY/0B,EAAM2xB,GAClEA,GAAY,EACZ9B,EAAO,CAAC09B,EAAYP,EAAOt3B,OAAQs3B,EAAOX,WAAYrsD,EAAM2xB,EAAU3B,GACtE,MAEF,KAAK,EACL,KAAK,EACH,IAAIg+B,EAAa,GACjBA,EAAW76C,KAAOq5C,EAA6BxsD,EAAM2xB,GACrDA,GAAY+6B,EACZ,IAAIuB,GAAyB,EAAIvjD,EAAYoqB,YAAY90B,EAAM2xB,GAa/D,GAZAA,GAAY,EACZq8B,EAAW9I,WAAsC,EAAzB+I,GACxBD,EAAW7I,cAAyC,EAAzB8I,GAC3BD,EAAW1F,aAAe2F,GAA0B,EAAI,EACxDD,EAAWhG,UAAY,GAAKgG,EAAW1F,aACvC0F,EAAW5F,gBAAkB6F,GAA0B,EAAI,EAC3DD,EAAW9F,cAAyC,GAAzB+F,GAC3BD,EAAW3F,oBAAsB4F,GAA0B,EAAI,EAC/DD,EAAWlG,kBAAoBmG,GAA0B,EAAI,EAC7DD,EAAW7F,SAAW8F,GAA0B,IAAM,GACtDD,EAAWD,mBAAqBE,GAA0B,GAAK,EAE3DD,EAAW9I,QAAS,CACtB,IAAIgJ,GAAyB,EAAIxjD,EAAYoqB,YAAY90B,EAAM2xB,GAC/DA,GAAY,EACZq8B,EAAWG,UAAqC,EAAzBD,EACvBF,EAAWI,UAAYF,GAA0B,EAAI,EACrDF,EAAWK,UAAYH,GAA0B,EAAI,EACrDF,EAAWM,oBAAsBJ,GAA0B,EAAI,EAC/DF,EAAWO,oBAAsBL,GAA0B,EAAI,EAC/DF,EAAWQ,oBAAsBN,GAA0B,GAAK,EAChEF,EAAWS,oBAAsBP,GAA0B,GAAK,EAChEF,EAAWU,iCAA4D,MAAzBR,GAGhD,GAAIF,EAAW7I,aAAe6I,EAAWD,mBAAoB,CAG3D,IAFAtL,EAAK,GAEApgD,EAAI,EAAGA,EAAI,EAAGA,IACjBogD,EAAGv2C,KAAK,CACN3E,GAAG,EAAImD,EAAYmqB,UAAU70B,EAAM2xB,GACnC4vB,GAAG,EAAI72C,EAAYmqB,UAAU70B,EAAM2xB,EAAW,KAEhDA,GAAY,EAGdq8B,EAAWvI,aAAehD,EAG5BuL,EAAWjG,yBAA0B,EAAIr9C,EAAYqqB,YAAY/0B,EAAM2xB,GACvEA,GAAY,EACZ9B,EAAO,CAACm+B,EAAYhB,EAAOX,WAAYrsD,EAAM2xB,EAAU3B,GACvD,MAEF,KAAK,GACH,MAAM2+B,EAAoB,GACpBC,EAAyB5uD,EAAK2xB,KACpCg9B,EAAkBrM,OAAkC,EAAzBsM,GAC3BD,EAAkB9L,SAAW+L,GAA0B,EAAI,EAC3DD,EAAkB7E,aAAe9pD,EAAK2xB,KACtCg9B,EAAkB5E,cAAgB/pD,EAAK2xB,KACvCg9B,EAAkB3E,iBAAkB,EAAIt/C,EAAYqqB,YAAY/0B,EAAM2xB,GACtEA,GAAY,EACZ9B,EAAO,CAAC8+B,EAAmB3B,EAAOt3B,OAAQ11B,EAAM2xB,EAAU3B,GAC1D,MAEF,KAAK,GACL,KAAK,GACH,MAAM6+B,EAAiB,GACvBA,EAAe17C,KAAOq5C,EAA6BxsD,EAAM2xB,GACzDA,GAAY+6B,EACZ,MAAMoC,EAAsB9uD,EAAK2xB,KACjCk9B,EAAevM,OAA+B,EAAtBwM,GACxBD,EAAehM,SAAWiM,GAAuB,EAAI,EACrDD,EAAetE,cAAsC,EAAtBuE,GAC/BD,EAAexG,oBAAsByG,GAAuB,EAAI,EAChED,EAAe/G,kBAAoBgH,GAAuB,EAAI,EAC9DD,EAAerE,WAAY,EAAI9/C,EAAYqqB,YAAY/0B,EAAM2xB,GAC7DA,GAAY,EACZk9B,EAAepE,YAAa,EAAI//C,EAAYqqB,YAAY/0B,EAAM2xB,GAC9DA,GAAY,EACZk9B,EAAenE,YAA4D,YAA9C,EAAIhgD,EAAYqqB,YAAY/0B,EAAM2xB,GAC/DA,GAAY,EACZk9B,EAAelE,YAA4D,YAA9C,EAAIjgD,EAAYqqB,YAAY/0B,EAAM2xB,GAC/DA,GAAY,EACZk9B,EAAejE,aAAc,EAAIlgD,EAAYoqB,YAAY90B,EAAM2xB,GAC/DA,GAAY,EACZk9B,EAAehE,aAAc,EAAIngD,EAAYoqB,YAAY90B,EAAM2xB,GAC/DA,GAAY,EACZ9B,EAAO,CAACg/B,EAAgB7B,EAAOX,WAAYrsD,EAAM2xB,EAAU3B,GAC3D,MAEF,KAAK,GACL,KAAK,GACH,IAAI++B,EAAgB,GACpBA,EAAc57C,KAAOq5C,EAA6BxsD,EAAM2xB,GACxDA,GAAY+6B,EACZ,IAAID,EAA4BzsD,EAAK2xB,KAKrC,GAJAo9B,EAAczM,OAAqC,EAA5BmK,GACvBsC,EAAclM,SAAW4J,GAA6B,EAAI,EAC1DsC,EAAcvM,cAA4C,EAA5BiK,IAEzBsC,EAAczM,IAAK,CAItB,IAHAgL,EAAsC,IAA3ByB,EAAclM,SAAiB,EAAI,EAC9CJ,EAAK,GAEApgD,EAAI,EAAGA,EAAIirD,EAAUjrD,IACxBogD,EAAGv2C,KAAK,CACN3E,GAAG,EAAImD,EAAYmqB,UAAU70B,EAAM2xB,GACnC4vB,GAAG,EAAI72C,EAAYmqB,UAAU70B,EAAM2xB,EAAW,KAEhDA,GAAY,EAGdo9B,EAActM,GAAKA,EAGrB5yB,EAAO,CAACk/B,EAAe/uD,EAAM2xB,EAAU3B,GACvC,MAEF,KAAK,GACH,IAAIg/B,EAAW,CACbjsD,OAAO,EAAI2H,EAAYqqB,YAAY/0B,EAAM2xB,GACzC3uB,QAAQ,EAAI0H,EAAYqqB,YAAY/0B,EAAM2xB,EAAW,GACrDs9B,aAAa,EAAIvkD,EAAYqqB,YAAY/0B,EAAM2xB,EAAW,GAC1Du9B,aAAa,EAAIxkD,EAAYqqB,YAAY/0B,EAAM2xB,EAAW,KAGpC,aAApBq9B,EAAShsD,eACJgsD,EAAShsD,OAGlB,IAAImsD,EAAmBnvD,EAAK2xB,EAAW,KACvC,EAAIjnB,EAAYoqB,YAAY90B,EAAM2xB,EAAW,IAC7Cq9B,EAASI,YAAiC,EAAnBD,GACvBH,EAAS7J,cAAmC,EAAnBgK,GACzBH,EAASlH,kBAAoBqH,GAAoB,EAAI,EACrDH,EAAS3G,oBAAsB8G,GAAoB,EAAI,EACvDH,EAASK,kBAAuC,GAAnBF,GAC7BH,EAASM,+BAAoD,GAAnBH,GAC1Ct/B,EAAO,CAACm/B,GACR,MAEF,KAAK,GACH,MAEF,KAAK,GACH,MAEF,KAAK,GACH,MAEF,KAAK,GACHn/B,EAAO,CAACm9B,EAAOt3B,OAAQ11B,EAAM2xB,EAAU3B,GACvC,MAEF,KAAK,GACH,MAEF,QACE,MAAM,IAAIqwB,EAAW,gBAAgB2M,EAAOlB,YAAYkB,EAAOpqD,4BAGnE,IAAI2sD,EAAe,KAAOvC,EAAOlB,SAE7ByD,KAAgBlC,GAClBA,EAAQkC,GAAc7vD,MAAM2tD,EAASx9B,GAIzC,SAAS2/B,EAAgBvC,EAAUI,GACjC,IAAK,IAAIhrD,EAAI,EAAG8oB,EAAK8hC,EAAS9gD,OAAQ9J,EAAI8oB,EAAI9oB,IAC5C+qD,EAAeH,EAAS5qD,GAAIgrD,GAIhC,SAASoC,EAAiBn+B,GAGxB,IAFA,IAAI+7B,EAAU,IAAIqC,EAETrtD,EAAI,EAAG8oB,EAAKmG,EAAOnlB,OAAQ9J,EAAI8oB,EAAI9oB,IAAK,CAC/C,IAAI+kB,EAAQkK,EAAOjvB,GACf4qD,EAAWF,EAAa,GAAI3lC,EAAMpnB,KAAMonB,EAAMzU,MAAOyU,EAAM4I,KAC/Dw/B,EAAgBvC,EAAUI,GAG5B,OAAOA,EAAQplC,OAGjB,SAAS0nC,EAAW3vD,GAClB,MAAMgwB,EAAMhwB,EAAKmM,OACjB,IAAIwlB,EAAW,EAEf,GAAuB,MAAnB3xB,EAAK2xB,IAA6C,KAAvB3xB,EAAK2xB,EAAW,IAAsC,KAAvB3xB,EAAK2xB,EAAW,IAAsC,KAAvB3xB,EAAK2xB,EAAW,IAAsC,KAAvB3xB,EAAK2xB,EAAW,IAAsC,KAAvB3xB,EAAK2xB,EAAW,IAAsC,KAAvB3xB,EAAK2xB,EAAW,IAAsC,KAAvB3xB,EAAK2xB,EAAW,GACvO,MAAM,IAAI0uB,EAAW,gCAGvB,MAAM2M,EAASjkD,OAAOrF,OAAO,MAC7BiuB,GAAY,EACZ,MAAM4O,EAAQvgC,EAAK2xB,KACnBq7B,EAAOG,eAAyB,EAAR5sB,GAEV,EAARA,IACJysB,EAAO4C,eAAgB,EAAIllD,EAAYqqB,YAAY/0B,EAAM2xB,GACzDA,GAAY,GAGd,MAAMs7B,EAAWF,EAAaC,EAAQhtD,EAAM2xB,EAAU3B,GAChDq9B,EAAU,IAAIqC,EACpBF,EAAgBvC,EAAUI,GAC1B,MAAM,MACJtqD,EAAK,OACLC,GACEqqD,EAAQwC,gBACNC,EAAYzC,EAAQplC,OACpB8nC,EAAU,IAAI79B,kBAAkBnvB,EAAQC,GAC9C,IAAI64C,EAAI,EACJrD,EAAI,EAER,IAAK,IAAIn2C,EAAI,EAAGA,EAAIW,EAAQX,IAAK,CAC/B,IACI4lB,EADA+nC,EAAO,EAGX,IAAK,IAAI/0B,EAAI,EAAGA,EAAIl4B,EAAOk4B,IACpB+0B,IACHA,EAAO,IACP/nC,EAAS6nC,EAAUtX,MAGrBuX,EAAQlU,KAAO5zB,EAAS+nC,EAAO,EAAI,IACnCA,IAAS,EAIb,MAAO,CACLD,UACAhtD,QACAC,UAIJ,SAAS0sD,KAkLT,SAASO,EAAYC,GACK,IAApBA,EAAS/jD,QACXtN,KAAKsxD,OAAQ,EACbtxD,KAAKuxD,SAAW,EAChBvxD,KAAKwxD,aAAeH,EAAS,GAC7BrxD,KAAKyxD,YAAc,EACnBzxD,KAAK0xD,WAAaL,EAAS,GAC3BrxD,KAAK2xD,cAAe,IAEpB3xD,KAAKsxD,OAAQ,EACbtxD,KAAKuxD,SAAWF,EAAS,GACzBrxD,KAAKwxD,aAAeH,EAAS,GAC7BrxD,KAAKyxD,YAAcJ,EAAS,GAC5BrxD,KAAK0xD,WAAaL,EAAS,GAC3BrxD,KAAK2xD,aAA+B,UAAhBN,EAAS,IAIjC,SAASO,EAAgBC,GACvB7xD,KAAK8xD,SAAW,GAEZD,GACF7xD,KAAK+xD,QAAS,EACd/xD,KAAKyxD,YAAcI,EAAKJ,YACxBzxD,KAAKuxD,SAAWM,EAAKN,SACrBvxD,KAAK2xD,aAAeE,EAAKF,aACzB3xD,KAAKsxD,MAAQO,EAAKP,OAElBtxD,KAAK+xD,QAAS,EA0ClB,SAASC,EAAaC,EAAOC,GACtBA,GACHlyD,KAAKmyD,kBAAkBF,GAGzBjyD,KAAKoyD,SAAW,IAAIR,EAAgB,MAEpC,IAAK,IAAIpuD,EAAI,EAAG8oB,EAAK2lC,EAAM3kD,OAAQ9J,EAAI8oB,EAAI9oB,IAAK,CAC9C,MAAMquD,EAAOI,EAAMzuD,GAEfquD,EAAKL,aAAe,GACtBxxD,KAAKoyD,SAASC,UAAUR,EAAMA,EAAKL,aAAe,IAqDxD,SAASc,EAAoBnxD,EAAM2S,EAAOqd,GACxC,MAAMuQ,EAAQvgC,EAAK2S,GACby+C,EAA6D,YAA/C,EAAI1mD,EAAYqqB,YAAY/0B,EAAM2S,EAAQ,GACxD0+C,EAA8D,YAA/C,EAAI3mD,EAAYqqB,YAAY/0B,EAAM2S,EAAQ,GACzD2+C,EAAS,IAAI5O,EAAO1iD,EAAM2S,EAAQ,EAAGqd,GACrCuhC,EAAoC,GAAlBhxB,GAAS,EAAI,GAC/BixB,EAAmC,GAAlBjxB,GAAS,EAAI,GAC9BuwB,EAAQ,GACd,IAAIT,EACAC,EACAmB,EAAkBL,EAEtB,GACEf,EAAeiB,EAAO3V,SAAS4V,GAC/BjB,EAAcgB,EAAO3V,SAAS6V,GAC9BV,EAAM5kD,KAAK,IAAI+jD,EAAY,CAACwB,EAAiBpB,EAAcC,EAAa,KACxEmB,GAAmB,GAAKnB,QACjBmB,EAAkBJ,GAY3B,OAVAhB,EAAeiB,EAAO3V,SAAS4V,GAC/BT,EAAM5kD,KAAK,IAAI+jD,EAAY,CAACmB,EAAc,EAAGf,EAAc,GAAI,EAAG,WAClEA,EAAeiB,EAAO3V,SAAS4V,GAC/BT,EAAM5kD,KAAK,IAAI+jD,EAAY,CAACoB,EAAchB,EAAc,GAAI,KAEhD,EAAR9vB,IACF8vB,EAAeiB,EAAO3V,SAAS4V,GAC/BT,EAAM5kD,KAAK,IAAI+jD,EAAY,CAACI,EAAc,MAGrC,IAAIQ,EAAaC,GAAO,GAnVjCpB,EAAqB7lD,UAAY,CAC/B6nD,kBAAmB,SAAgDv+C,GACjEtU,KAAKgxD,gBAAkB18C,EACvB,IAAIw+C,EAAUx+C,EAAKpQ,MAAQ,GAAK,EAC5BklB,EAAS,IAAIiK,kBAAkBy/B,EAAUx+C,EAAKnQ,QAElD,GAAImQ,EAAK20C,kBACP,IAAK,IAAIzlD,EAAI,EAAG8oB,EAAKlD,EAAO9b,OAAQ9J,EAAI8oB,EAAI9oB,IAC1C4lB,EAAO5lB,GAAK,IAIhBxD,KAAKopB,OAASA,GAEhB2pC,WAAY,SAAyCC,EAAY1P,GAC/D,IAQI9/C,EAAG44B,EAAG+0B,EAAMj6B,EARZi5B,EAAWnwD,KAAKgxD,gBAChB9sD,EAAQ8uD,EAAW9uD,MACnBC,EAAS6uD,EAAW7uD,OACpB2uD,EAAU3C,EAASjsD,MAAQ,GAAK,EAChCslD,EAAsB2G,EAASM,4BAA8BuC,EAAWxJ,oBAAsB2G,EAAS3G,oBACvGpgC,EAASppB,KAAKopB,OACd6pC,EAAQ,MAAuB,EAAfD,EAAWtqD,GAC3BwqD,EAAUF,EAAWtQ,EAAIoQ,GAAWE,EAAWtqD,GAAK,GAGxD,OAAQ8gD,GACN,KAAK,EACH,IAAKhmD,EAAI,EAAGA,EAAIW,EAAQX,IAAK,CAI3B,IAHA2tD,EAAO8B,EACP/7B,EAASg8B,EAEJ92B,EAAI,EAAGA,EAAIl4B,EAAOk4B,IACjBknB,EAAO9/C,GAAG44B,KACZhT,EAAO8N,IAAWi6B,GAGpBA,IAAS,EAEJA,IACHA,EAAO,IACPj6B,KAIJg8B,GAAWJ,EAGb,MAEF,KAAK,EACH,IAAKtvD,EAAI,EAAGA,EAAIW,EAAQX,IAAK,CAI3B,IAHA2tD,EAAO8B,EACP/7B,EAASg8B,EAEJ92B,EAAI,EAAGA,EAAIl4B,EAAOk4B,IACjBknB,EAAO9/C,GAAG44B,KACZhT,EAAO8N,IAAWi6B,GAGpBA,IAAS,EAEJA,IACHA,EAAO,IACPj6B,KAIJg8B,GAAWJ,EAGb,MAEF,QACE,MAAM,IAAItR,EAAW,YAAYgI,wBAGvC2J,yBAA0B,SAAuDC,EAAQjyD,EAAM2S,EAAOqd,GACpG,IAAI6hC,EAAaI,EAAO9+C,KACpB2uC,EAAkB,IAAIvB,EAAgBvgD,EAAM2S,EAAOqd,GACnDmyB,EAASE,EAAa4P,EAAO3P,IAAKuP,EAAW9uD,MAAO8uD,EAAW7uD,OAAQivD,EAAOpP,SAAUoP,EAAOzP,WAAY,KAAMyP,EAAOxP,GAAIX,GAChIjjD,KAAK+yD,WAAWC,EAAY1P,IAE9B+P,iCAAkC,WAChCrzD,KAAKmzD,yBAAyBtyD,MAAMb,KAAMc,YAE5CwyD,mBAAoB,SAAiD5E,EAAY6E,EAAgBC,EAAkBryD,EAAM2S,EAAOqd,GAC9H,IAAIu1B,EAAeG,EAEf6H,EAAWrI,UACbK,EAAgB+M,EAAiC/E,EAAY8E,EAAkBxzD,KAAK0zD,cACpF7M,EAAe,IAAIhD,EAAO1iD,EAAM2S,EAAOqd,IAGzC,IAAIo1B,EAAUvmD,KAAKumD,QAEdA,IACHvmD,KAAKumD,QAAUA,EAAU,IAK3B,IAFA,IAAI6C,EAAe,GAEV5lD,EAAI,EAAG8oB,EAAKknC,EAAiBlmD,OAAQ9J,EAAI8oB,EAAI9oB,IAAK,CACzD,MAAMmwD,EAAkBpN,EAAQiN,EAAiBhwD,IAE7CmwD,IACFvK,EAAeA,EAAanF,OAAO0P,IAIvC,IAAI1Q,EAAkB,IAAIvB,EAAgBvgD,EAAM2S,EAAOqd,GACvDo1B,EAAQgN,GAAkBnN,EAAuBsI,EAAWrI,QAASqI,EAAWpI,WAAY8C,EAAcsF,EAAWlI,mBAAoBkI,EAAWjI,wBAAyBC,EAAegI,EAAW1K,SAAU0K,EAAW9K,GAAI8K,EAAWQ,mBAAoBR,EAAW9H,aAAc3D,EAAiB4D,IAE3S+M,sBAAuB,SAAoDR,EAAQI,EAAkBryD,EAAM2S,EAAOqd,GAChH,IAAI6hC,EAAaI,EAAO9+C,KACxB,IAAIoyC,EAAeG,EAInB,IAHA,IAAIN,EAAUvmD,KAAKumD,QACf6C,EAAe,GAEV5lD,EAAI,EAAG8oB,EAAKknC,EAAiBlmD,OAAQ9J,EAAI8oB,EAAI9oB,IAAK,CACzD,MAAMmwD,EAAkBpN,EAAQiN,EAAiBhwD,IAE7CmwD,IACFvK,EAAeA,EAAanF,OAAO0P,IAIvC,IAAI3M,GAAmB,EAAIn7C,EAAYkqB,MAAMqzB,EAAa97C,QAEtD8lD,EAAO/M,UACTQ,EAAe,IAAIhD,EAAO1iD,EAAM2S,EAAOqd,GACvCu1B,EAAgBmN,EAA2BT,EAAQI,EAAkBxzD,KAAK0zD,aAActK,EAAa97C,OAAQu5C,IAG/G,IAAI5D,EAAkB,IAAIvB,EAAgBvgD,EAAM2S,EAAOqd,GACnDmyB,EAASuE,EAAiBuL,EAAO/M,QAAS+M,EAAO9M,WAAY0M,EAAW9uD,MAAO8uD,EAAW7uD,OAAQivD,EAAOnK,kBAAmBmK,EAAOlK,wBAAyBkK,EAAOjK,UAAWC,EAAcpC,EAAkBoM,EAAO/J,WAAY+J,EAAO9J,SAAU8J,EAAO7J,gBAAiB6J,EAAO5J,oBAAqB9C,EAAe0M,EAAOlE,mBAAoBkE,EAAOxM,aAAc3D,EAAiBmQ,EAAO3J,aAAc5C,GAC/Y7mD,KAAK+yD,WAAWC,EAAY1P,IAE9BwQ,8BAA+B,WAC7B9zD,KAAK4zD,sBAAsB/yD,MAAMb,KAAMc,YAGzC,oBAAoB4tD,EAAY6E,EAAgBpyD,EAAM2S,EAAOqd,GAC3D,IAAIk6B,EAAWrrD,KAAKqrD,SAEfA,IACHrrD,KAAKqrD,SAAWA,EAAW,IAG7B,MAAMpI,EAAkB,IAAIvB,EAAgBvgD,EAAM2S,EAAOqd,GACzDk6B,EAASkI,GAAkBvI,EAAwB0D,EAAWjL,IAAKiL,EAAWzD,aAAcyD,EAAWxD,cAAewD,EAAWvD,gBAAiBuD,EAAW1K,SAAUf,IAGzK,0BAA0BmQ,EAAQI,EAAkBryD,EAAM2S,EAAOqd,GAC/D,MAAMk6B,EAAWrrD,KAAKqrD,SAASmI,EAAiB,IAC1CR,EAAaI,EAAO9+C,KACpB2uC,EAAkB,IAAIvB,EAAgBvgD,EAAM2S,EAAOqd,GACnDmyB,EAASiI,EAAqB6H,EAAO3P,IAAK4H,EAAU+H,EAAOpP,SAAUgP,EAAW9uD,MAAO8uD,EAAW7uD,OAAQivD,EAAOnK,kBAAmBmK,EAAO1H,WAAY0H,EAAO5J,oBAAqB4J,EAAOzH,UAAWyH,EAAOxH,WAAYwH,EAAOvH,YAAauH,EAAOtH,YAAasH,EAAOrH,YAAaqH,EAAOpH,YAAa/I,GAC9SjjD,KAAK+yD,WAAWC,EAAY1P,IAG9B,oCACEtjD,KAAK+zD,0BAA0BlzD,MAAMb,KAAMc,YAG7C,SAASyyD,EAAgBpyD,EAAM2S,EAAOqd,GACpC,IAAIuiC,EAAe1zD,KAAK0zD,aAEnBA,IACH1zD,KAAK0zD,aAAeA,EAAe,IAGrCA,EAAaH,GAAkBjB,EAAoBnxD,EAAM2S,EAAOqd,KAqCpEygC,EAAgB5mD,UAAY,CAC1B,UAAU6mD,EAAMzwB,GACd,MAAM8gB,EAAM2P,EAAKH,YAActwB,EAAQ,EAEvC,GAAIA,GAAS,EACXphC,KAAK8xD,SAAS5P,GAAO,IAAI0P,EAAgBC,OACpC,CACL,IAAI1qB,EAAOnnC,KAAK8xD,SAAS5P,GAEpB/a,IACHnnC,KAAK8xD,SAAS5P,GAAO/a,EAAO,IAAIyqB,EAAgB,OAGlDzqB,EAAKkrB,UAAUR,EAAMzwB,EAAQ,KAIjC,WAAWqxB,GACT,GAAIzyD,KAAK+xD,OAAQ,CACf,GAAI/xD,KAAKsxD,MACP,OAAO,KAGT,MAAM0C,EAAWvB,EAAO3V,SAAS98C,KAAKyxD,aACtC,OAAOzxD,KAAKuxD,UAAYvxD,KAAK2xD,cAAgBqC,EAAWA,GAG1D,MAAM7sB,EAAOnnC,KAAK8xD,SAASW,EAAOtQ,WAElC,IAAKhb,EACH,MAAM,IAAIqa,EAAW,wBAGvB,OAAOra,EAAK8sB,WAAWxB,KAqB3BT,EAAahnD,UAAY,CACvB,OAAOynD,GACL,OAAOzyD,KAAKoyD,SAAS6B,WAAWxB,IAGlC,kBAAkBR,GAChB,MAAMiC,EAAcjC,EAAM3kD,OAC1B,IAAI6mD,EAAkB,EAEtB,IAAK,IAAI3wD,EAAI,EAAGA,EAAI0wD,EAAa1wD,IAC/B2wD,EAAkBtjD,KAAKC,IAAIqjD,EAAiBlC,EAAMzuD,GAAGguD,cAGvD,MAAM4C,EAAY,IAAIjrC,YAAYgrC,EAAkB,GAEpD,IAAK,IAAI3wD,EAAI,EAAGA,EAAI0wD,EAAa1wD,IAC/B4wD,EAAUnC,EAAMzuD,GAAGguD,gBAGrB,IAEI6C,EACAC,EACAzC,EAJA0C,EAAgB,EAChBC,EAAY,EAIhBJ,EAAU,GAAK,EAEf,MAAOG,GAAiBJ,EAAiB,CACvCK,EAAYA,EAAYJ,EAAUG,EAAgB,IAAM,EACxDF,EAAcG,EACdF,EAAc,EAEd,MAAOA,EAAcJ,EACnBrC,EAAOI,EAAMqC,GAETzC,EAAKL,eAAiB+C,IACxB1C,EAAKH,WAAa2C,EAClBA,KAGFC,IAGFC,OAsCN,MAAME,EAAsB,GAE5B,SAAStN,EAAiBtwB,GACxB,IAMIo7B,EANA9Z,EAAQsc,EAAoB59B,GAEhC,GAAIshB,EACF,OAAOA,EAKT,OAAQthB,GACN,KAAK,EACHo7B,EAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,GAAI,EAAG,EAAG,GAAM,CAAC,IAAK,EAAG,GAAI,GAAM,CAAC,MAAO,EAAG,GAAI,IAC5E,MAEF,KAAK,EACHA,EAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IAAM,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,GAAI,IAAO,CAAC,EAAG,KAClH,MAEF,KAAK,EACHA,EAAQ,CAAC,EAAE,IAAK,EAAG,EAAG,KAAO,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IAAM,CAAC,GAAI,EAAG,EAAG,IAAO,EAAE,IAAK,EAAG,GAAI,IAAM,SAAU,CAAC,GAAI,EAAG,GAAI,KAAO,CAAC,EAAG,KACpK,MAEF,KAAK,EACHA,EAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IAAM,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,GAAI,KACvG,MAEF,KAAK,EACHA,EAAQ,CAAC,EAAE,IAAK,EAAG,EAAG,KAAO,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IAAM,CAAC,GAAI,EAAG,EAAG,IAAO,EAAE,IAAK,EAAG,GAAI,IAAM,SAAU,CAAC,GAAI,EAAG,GAAI,KACzJ,MAEF,KAAK,EACHA,EAAQ,CAAC,EAAE,KAAM,EAAG,GAAI,IAAO,EAAE,KAAM,EAAG,EAAG,GAAM,EAAE,IAAK,EAAG,EAAG,GAAM,EAAE,IAAK,EAAG,EAAG,IAAM,EAAE,IAAK,EAAG,EAAG,IAAO,EAAE,GAAI,EAAG,EAAG,IAAO,EAAE,GAAI,EAAG,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,IAAK,EAAG,EAAG,GAAM,CAAC,IAAK,EAAG,EAAG,GAAM,CAAC,IAAK,EAAG,EAAG,IAAM,CAAC,KAAM,EAAG,GAAI,IAAM,EAAE,KAAM,EAAG,GAAI,GAAM,SAAU,CAAC,KAAM,EAAG,GAAI,KACzR,MAEF,KAAK,EACHA,EAAQ,CAAC,EAAE,KAAM,EAAG,EAAG,GAAM,EAAE,IAAK,EAAG,EAAG,GAAM,EAAE,IAAK,EAAG,EAAG,GAAM,EAAE,IAAK,EAAG,EAAG,IAAO,EAAE,GAAI,EAAG,EAAG,IAAO,EAAE,GAAI,EAAG,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,IAAM,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,IAAM,CAAC,IAAK,EAAG,EAAG,GAAM,CAAC,IAAK,EAAG,EAAG,GAAM,CAAC,KAAM,EAAG,GAAI,GAAM,EAAE,KAAM,EAAG,GAAI,GAAM,SAAU,CAAC,KAAM,EAAG,GAAI,KACvS,MAEF,KAAK,EACHA,EAAQ,CAAC,EAAE,GAAI,EAAG,EAAG,KAAO,EAAE,EAAG,EAAG,EAAG,KAAQ,EAAE,EAAG,EAAG,EAAG,KAAO,EAAE,EAAG,EAAG,EAAG,KAAQ,EAAE,EAAG,EAAG,EAAG,KAAO,EAAE,EAAG,EAAG,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,EAAG,IAAM,CAAC,GAAI,EAAG,EAAG,IAAM,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,KAAO,CAAC,IAAK,EAAG,GAAI,IAAO,EAAE,GAAI,EAAG,GAAI,IAAO,SAAU,CAAC,KAAM,EAAG,GAAI,KAAQ,CAAC,EAAG,IACpY,MAEF,KAAK,EACHA,EAAQ,CAAC,EAAE,GAAI,EAAG,EAAG,KAAO,EAAE,GAAI,EAAG,EAAG,KAAQ,EAAE,GAAI,EAAG,EAAG,KAAO,EAAE,EAAG,EAAG,EAAG,KAAQ,EAAE,EAAG,EAAG,EAAG,KAAO,EAAE,EAAG,EAAG,EAAG,IAAM,EAAE,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,EAAG,IAAM,CAAC,GAAI,EAAG,EAAG,IAAM,CAAC,IAAK,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,KAAO,CAAC,KAAM,EAAG,GAAI,IAAO,EAAE,GAAI,EAAG,GAAI,IAAO,SAAU,CAAC,KAAM,EAAG,GAAI,KAAQ,CAAC,EAAG,IACzZ,MAEF,KAAK,GACHA,EAAQ,CAAC,EAAE,GAAI,EAAG,EAAG,KAAO,EAAE,EAAG,EAAG,EAAG,KAAO,EAAE,EAAG,EAAG,EAAG,KAAO,EAAE,EAAG,EAAG,EAAG,IAAO,EAAE,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,KAAO,CAAC,EAAG,EAAG,EAAG,KAAO,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,IAAO,CAAC,IAAK,EAAG,EAAG,IAAO,CAAC,KAAM,EAAG,GAAI,IAAO,CAAC,KAAM,EAAG,GAAI,KAAO,EAAE,GAAI,EAAG,GAAI,IAAM,SAAU,CAAC,KAAM,EAAG,GAAI,KAAO,CAAC,EAAG,IACxY,MAEF,KAAK,GACHA,EAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,IAAK,EAAG,GAAI,MACpO,MAEF,KAAK,GACHA,EAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,GAAI,EAAG,GAAI,MACpO,MAEF,KAAK,GACHA,EAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,EAAG,IAAO,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,IAAK,EAAG,GAAI,MACnO,MAEF,KAAK,GACHA,EAAQ,CAAC,EAAE,EAAG,EAAG,EAAG,GAAM,EAAE,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IACrF,MAEF,KAAK,GACHA,EAAQ,CAAC,EAAE,GAAI,EAAG,EAAG,KAAO,EAAE,EAAG,EAAG,EAAG,IAAO,EAAE,EAAG,EAAG,EAAG,IAAO,EAAE,EAAG,EAAG,EAAG,IAAM,EAAE,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,GAAM,CAAC,EAAG,EAAG,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,IAAO,CAAC,EAAG,EAAG,EAAG,KAAO,EAAE,GAAI,EAAG,GAAI,IAAM,SAAU,CAAC,GAAI,EAAG,GAAI,MAC9O,MAEF,QACE,MAAM,IAAIzQ,EAAW,oBAAoB3qB,oBAG7C,IAAK,IAAIrzB,EAAI,EAAG8oB,EAAK2lC,EAAM3kD,OAAQ9J,EAAI8oB,EAAI9oB,IACzCyuD,EAAMzuD,GAAK,IAAI4tD,EAAYa,EAAMzuD,IAKnC,OAFA20C,EAAQ,IAAI6Z,EAAaC,GAAO,GAChCwC,EAAoB59B,GAAUshB,EACvBA,EAGT,SAAS0L,EAAO1iD,EAAM2S,EAAOqd,GAC3BnxB,KAAKmB,KAAOA,EACZnB,KAAK8T,MAAQA,EACb9T,KAAKmxB,IAAMA,EACXnxB,KAAK8yB,SAAWhf,EAChB9T,KAAKohC,OAAS,EACdphC,KAAK00D,YAAc,EA4CrB,SAASC,EAAsB7oC,EAAO0hC,EAAYkG,GAChD,IAAIpwB,EAAe,EAEnB,IAAK,IAAI9/B,EAAI,EAAG8oB,EAAKkhC,EAAWlgD,OAAQ9J,EAAI8oB,EAAI9oB,IAAK,CACnD,MAAM20C,EAAQub,EAAalG,EAAWhqD,IAEtC,GAAI20C,EAAO,CACT,GAAIrsB,IAAUwX,EACZ,OAAO6U,EAGT7U,KAIJ,MAAM,IAAIke,EAAW,mCAGvB,SAASqS,EAA2B1E,EAAY3B,EAAYkG,EAAckB,EAAiBnC,GACzF,MAAMra,EAAQ,GAEd,IAAK,IAAI50C,EAAI,EAAGA,GAAK,GAAIA,IAAK,CAC5B,MAAM84C,EAAamW,EAAO3V,SAAS,GACnC1E,EAAM/qC,KAAK,IAAI+jD,EAAY,CAAC5tD,EAAG84C,EAAY,EAAG,KAGhD,MAAMuY,EAAgB,IAAI7C,EAAa5Z,GAAO,GAC9CA,EAAM9qC,OAAS,EAEf,IAAK,IAAI9J,EAAI,EAAGA,EAAIoxD,GAAkB,CACpC,MAAMtY,EAAauY,EAAcvN,OAAOmL,GAExC,GAAInW,GAAc,GAAI,CACpB,IAAIwY,EAAgBC,EAAiB34B,EAErC,OAAQkgB,GACN,KAAK,GACH,GAAU,IAAN94C,EACF,MAAM,IAAIg+C,EAAW,wCAGvBuT,EAAkBtC,EAAO3V,SAAS,GAAK,EACvCgY,EAAiB1c,EAAM50C,EAAI,GAAGguD,aAC9B,MAEF,KAAK,GACHuD,EAAkBtC,EAAO3V,SAAS,GAAK,EACvCgY,EAAiB,EACjB,MAEF,KAAK,GACHC,EAAkBtC,EAAO3V,SAAS,GAAK,GACvCgY,EAAiB,EACjB,MAEF,QACE,MAAM,IAAItT,EAAW,0CAGzB,IAAKplB,EAAI,EAAGA,EAAI24B,EAAiB34B,IAC/Bgc,EAAM/qC,KAAK,IAAI+jD,EAAY,CAAC5tD,EAAGsxD,EAAgB,EAAG,KAClDtxD,SAGF40C,EAAM/qC,KAAK,IAAI+jD,EAAY,CAAC5tD,EAAG84C,EAAY,EAAG,KAC9C94C,IAIJivD,EAAOnT,YACP,MAAM4K,EAAgB,IAAI8H,EAAa5Z,GAAO,GAC9C,IACI2R,EACAgB,EACApB,EAHAqL,EAAc,EAKlB,OAAQ7F,EAAWG,WACjB,KAAK,EACL,KAAK,EACHvF,EAAc5C,EAAiBgI,EAAWG,UAAY,GACtD,MAEF,KAAK,EACHvF,EAAc4K,EAAsBK,EAAaxH,EAAYkG,GAC7DsB,IACA,MAEF,QACE,MAAM,IAAIxT,EAAW,+BAGzB,OAAQ2N,EAAWI,WACjB,KAAK,EACL,KAAK,EACL,KAAK,EACHxE,EAAc5D,EAAiBgI,EAAWI,UAAY,GACtD,MAEF,KAAK,EACHxE,EAAc4J,EAAsBK,EAAaxH,EAAYkG,GAC7DsB,IACA,MAEF,QACE,MAAM,IAAIxT,EAAW,+BAGzB,OAAQ2N,EAAWK,WACjB,KAAK,EACL,KAAK,EACL,KAAK,EACH7F,EAAcxC,EAAiBgI,EAAWK,UAAY,IACtD,MAEF,KAAK,EACH7F,EAAcgL,EAAsBK,EAAaxH,EAAYkG,GAC7DsB,IACA,MAEF,QACE,MAAM,IAAIxT,EAAW,+BAGzB,GAAI2N,EAAW7I,WACb,MAAM,IAAI9E,EAAW,4CAGvB,MAAO,CACL0I,gBACAH,cACAgB,cACApB,eAIJ,SAAS8J,EAAiC/E,EAAYlB,EAAYkG,GAChE,IACIrM,EACAM,EAgCAQ,EAAiB8M,EAlCjBD,EAAc,EAIlB,OAAQtG,EAAWE,mBACjB,KAAK,EACL,KAAK,EACHvH,EAAmBF,EAAiBuH,EAAWE,kBAAoB,GACnE,MAEF,KAAK,EACHvH,EAAmBsN,EAAsBK,EAAaxH,EAAYkG,GAClEsB,IACA,MAEF,QACE,MAAM,IAAIxT,EAAW,+BAGzB,OAAQkN,EAAWG,mBACjB,KAAK,EACL,KAAK,EACHlH,EAAkBR,EAAiBuH,EAAWG,kBAAoB,GAClE,MAEF,KAAK,EACHlH,EAAkBgN,EAAsBK,EAAaxH,EAAYkG,GACjEsB,IACA,MAEF,QACE,MAAM,IAAIxT,EAAW,+BAkBzB,OAbIkN,EAAWI,oBACb3G,EAAkBwM,EAAsBK,EAAaxH,EAAYkG,GACjEsB,KAEA7M,EAAkBhB,EAAiB,GAInC8N,EADEvG,EAAWK,6BACa4F,EAAsBK,EAAaxH,EAAYkG,GAE/CvM,EAAiB,GAGtC,CACLE,mBACAM,kBACAQ,kBACA8M,2BAIJ,SAAS5M,EAAuBoK,EAAQvuD,EAAOC,GAC7C,MAAMm/C,EAAS,GAEf,IAAK,IAAIZ,EAAI,EAAGA,EAAIv+C,EAAQu+C,IAAK,CAC/B,MAAM7C,EAAM,IAAIvzC,WAAWpI,GAC3Bo/C,EAAOj2C,KAAKwyC,GAEZ,IAAK,IAAIn3C,EAAI,EAAGA,EAAIxE,EAAOwE,IACzBm3C,EAAIn3C,GAAK+pD,EAAOtQ,UAGlBsQ,EAAOnT,YAGT,OAAOgE,EAGT,SAASQ,EAAgBnI,EAAOz3C,EAAOC,EAAQ+wD,GAC7C,MAAM3tB,EAAS,CACboW,GAAI,EACJG,QAAS55C,EACT65C,KAAM55C,EACN85C,UAAU,EACVD,WAAYkX,GAERpT,EAAU,IAAItE,EAAOE,gBAAgB/B,EAAOpU,GAC5C+b,EAAS,GACf,IAAIoR,EACA5d,GAAM,EAEV,IAAK,IAAI4L,EAAI,EAAGA,EAAIv+C,EAAQu+C,IAAK,CAC/B,MAAM7C,EAAM,IAAIvzC,WAAWpI,GAC3Bo/C,EAAOj2C,KAAKwyC,GACZ,IAAIze,GAAS,EAEb,IAAK,IAAI14B,EAAI,EAAGA,EAAIxE,EAAOwE,IACrB04B,EAAQ,IACVszB,EAAc5S,EAAQ5D,gBAED,IAAjBwW,IACFA,EAAc,EACd5d,GAAM,GAGR1V,EAAQ,GAGVye,EAAIn3C,GAAKgsD,GAAetzB,EAAQ,EAChCA,IAIJ,GAAI8zB,IAAepe,EAAK,CACtB,MAAMqe,EAAkB,EAExB,IAAK,IAAI3xD,EAAI,EAAGA,EAAI2xD,EAAiB3xD,IACnC,IAAgC,IAA5Bs+C,EAAQ5D,eACV,MAKN,OAAOoF,EAGT,SAASnC,KAmBT,OA9TA0C,EAAO74C,UAAY,CACjB,UACE,GAAIhL,KAAKohC,MAAQ,EAAG,CAClB,GAAIphC,KAAK8yB,UAAY9yB,KAAKmxB,IACxB,MAAM,IAAIqwB,EAAW,iCAGvBxhD,KAAK00D,YAAc10D,KAAKmB,KAAKnB,KAAK8yB,YAClC9yB,KAAKohC,MAAQ,EAGf,MAAM8gB,EAAMliD,KAAK00D,aAAe10D,KAAKohC,MAAQ,EAE7C,OADAphC,KAAKohC,QACE8gB,GAGT,SAASkT,GACP,IACI5xD,EADA0nB,EAAS,EAGb,IAAK1nB,EAAI4xD,EAAU,EAAG5xD,GAAK,EAAGA,IAC5B0nB,GAAUlrB,KAAKmiD,WAAa3+C,EAG9B,OAAO0nB,GAGT,YACElrB,KAAKohC,OAAS,GAGhB,OACE,OAAIphC,KAAK8yB,UAAY9yB,KAAKmxB,KAChB,EAGHnxB,KAAKmB,KAAKnB,KAAK8yB,cAyQ1BquB,EAAWn2C,UAAY,CACrB,YAAYynB,GACV,OAAOm+B,EAAiBn+B,IAG1B,MAAMtxB,GACJ,MAAM,QACJ+vD,EAAO,MACPhtD,EAAK,OACLC,GACE2sD,EAAW3vD,GAGf,OAFAnB,KAAKkE,MAAQA,EACblE,KAAKmE,OAASA,EACP+sD,IAIJ/P,EAhoEQ,GAmoEjB73C,EAAQ63C,WAAaA,GAIf,SAAU93C,EAAQC,EAASG,GAEjC,aAGAS,OAAOC,eAAeb,EAAS,aAAc,CAC3CpI,OAAO,IAEToI,EAAQg5C,uBAAoB,EAC5B,MAAM+S,EAAU,CAAC,CACfC,GAAI,MACJC,KAAM,EACNC,KAAM,EACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,EACNC,KAAM,EACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,EACNC,KAAM,EACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,IACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,EACNC,KAAM,EACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX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O,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,WAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,WAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,W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AM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,KACphDtM,KAAKy7E,OAAS,IAAInvE,WAAW,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,MACxhDtM,KAAK07E,KAAO,IAAIvyD,YAAY,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,aACjhGnpB,KAAK27E,QAAU,IAAI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A,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,MACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACV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ACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MA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AAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,OACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,UACdA,EAAE,KAAY,SACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,QAEf,SAASy7F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EAAK,EACd05M,EAAG,IAAM15M,EAAK,EACd05M,EAAG,IAAM15M,EAAK,EACd05M,EAAG,IAAM15M,EAAK,EACd05M,EAAG,GAAK15M,EAAK,EACb05M,EAAG,GAAK15M,EAAK,GACb05M,EAAG,IAAM15M,EAAK,GACd05M,EAAG,IAAM15M,EAAK,EACd05M,EAAG,GAAK15M,EAAK,EACb05M,EAAG,GAAK15M,EAAK,GACb05M,EAAG,GAAK15M,EAAK,GACb05M,EAAG,GAAK15M,EAAK,EACb05M,EAAG,GAAK15M,EACR05M,EAAG,GAAK15M,EAAK,GACb05M,EAAG,GAAK15M,EAAK,GACb05M,EAAG,GAAK15M,EAAK,EACb4a,EAAG,GAAK4/L,EAAK,EACb5/L,EAAG,GAAK4/L,EAAK,EACb5/L,EAAG,GAAK4/L,EACR5/L,EAAG,GAAK4/L,EAAK,EACb,MAEF,KAAK,EACHpnM,EAAOsmM,EAAG,IACVjpM,EAAOipM,EAAG,IACVvmM,EAAOumM,EAAG,IACVyC,EAAOzC,EAAG,IACVA,EAAG,IAAMyC,EACTzC,EAAG,IAAM15M,EAAK,EACd05M,EAAG,IAAM15M,EAAK,EACd05M,EAAG,IAAM15M,EAAK,EACd05M,EAAG,GAAKvmM,EACRumM,EAAG,GAAK15M,EAAK,EACb05M,EAAG,IAAM15M,EAAK,GACd05M,EAAG,IAAM15M,EAAK,EACd05M,EAAG,GAAKjpM,EACRipM,EAAG,GAAK15M,EAAK,EACb05M,EAAG,GAAK15M,EAAK,GACb05M,EAAG,GAAK15M,EAAK,EACb05M,EAAG,GAAKtmM,EACRsmM,EAAG,GAAK15M,EAAK,EACb05M,EAAG,GAAK15M,EAAK,EACb05M,EAAG,GAAK15M,EAAK,EACboT,EAAOwH,EAAG,GACVnK,EAAOmK,EAAG,GACVA,EAAG,GAAKnK,EACRmK,EAAG,GAAK4/L,EACR5/L,EAAG,GAAKxH,EACRwH,EAAG,GAAK4/L,EAAK,EACb,MAEF,KAAK,EACHpnM,EAAOsmM,EAAG,IACVjpM,EAAOipM,EAAG,IACVA,EAAG,IAAMA,EAAG,GACZA,EAAG,IAAM15M,EAAK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IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC14CC,EAAc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KA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,GAAM,EACN,IAAO,EACP,GAAM,GACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,IAAO,GACP,GAAM,EACN,GAAM,EACN,IAAO,GACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,GACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,GACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,GACN,IAAO,EACP,IAAO,EACP,IAAO,EACP,GAAM,EACN,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,GACN,IAAO,GACP,GAAM,GACN,GAAM,GACN,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,GACP,GAAM,GACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,IAAO,EACP,GAAM,EACN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","file":"js/chunk-79cdd6b5.2aeba04d.js","sourcesContent":["/* 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(typeof window !== \"undefined\"\n ? window\n : {}\n).pdfjsWorker = require(\"./pdf.worker.js\");\n","export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./resize-sensor.vue?vue&type=style&index=0&id=38cddd49&prod&lang=css&\"","export * from \"-!../../../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../vue-loader/lib/loaders/stylePostLoader.js!../../../../postcss-loader/src/index.js??ref--6-oneOf-1-2!./pdf_viewer.css?vue&type=style&index=0&prod&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"row justify-content-center\"},[_c('div',{staticClass:\"col-md-8\"},[_c('div',[_c('fieldset',{attrs:{\"disabled\":_vm.loading}},[_c('div',{staticClass:\"roundbox\"},[_c('div',{staticClass:\"rbcontent\"},[_c('a',{attrs:{\"href\":_vm.imgLogoUrlPath,\"target\":\"_blank\",\"title\":\"İzOnay\"}},[_c('img',{staticClass:\"float-right\",attrs:{\"src\":_vm.imgLogoPath}})]),_c('h2',[_vm._v(\"E-İmzalı Döküman Doğrulama\")]),_c('form',{staticClass:\"search-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.validate.apply(null, arguments)}}},[_c('fieldset',[_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(\"Döküman Doğrulama Kodu\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.data.Code),expression:\"data.Code\"}],ref:\"ValidationCode\",staticClass:\"form-control\",attrs:{\"type\":\"text\",\"aria-describedby\":\"accountHelp\",\"required\":\"\"},domProps:{\"value\":(_vm.data.Code)},on:{\"blur\":function($event){return _vm.refreshCaptcha()},\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.data, \"Code\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(\"Güvenlik Kodu\")]),_c('div',{staticClass:\"input-group input-group-lg\"},[_c('div',{staticClass:\"input-group-prepend\"},[_c('span',{ref:\"captcha\",staticClass:\"input-group-text captcha\",attrs:{\"title\":\"Güvenlik kodunu yenilemek için tıklayın\"},on:{\"click\":function($event){return _vm.focusValidationCodeOrRefreshCaptcha()}}})]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.data.Captcha),expression:\"data.Captcha\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"placeholder\":\"Yandaki güvenlik kodunu giriniz\",\"aria-describedby\":\"captchaHelpBlock\",\"required\":\"\"},domProps:{\"value\":(_vm.data.Captcha)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.data, \"Captcha\", $event.target.value)}}}),_c('small',{staticClass:\"form-text text-muted\",attrs:{\"id\":\"captchaHelpBlock\"}},[_vm._v(\" Lütfen resimde gördüğünüz karakterleri yanında bulunan kutuya giriniz. Resmi okuyamıyorsanız, üzerine tıklayarak yeni bir tane oluşturabilirsiniz. \")])])]),(_vm.loading)?_c('div',{staticClass:\"loader-container\"},[_c('MikepadLoader'),_vm._m(0)],1):_vm._e(),_vm._m(1),(_vm.errorMessage)?_c('div',{staticClass:\"text-danger\"},[_vm._v(\"Hata: \"+_vm._s(_vm.errorMessage))]):_vm._e()])])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.validationResult),expression:\"validationResult\"}],staticClass:\"roundbox\"},[_c('div',{staticClass:\"rbcontent\"},[_c('h2',[_vm._v(\"Doğrulama Sonucu\")]),_c('div',{staticClass:\"row data-container\"},[_c('div',{staticClass:\"approval-div\"},[_c('span',[_c('span',{staticClass:\"title\"},[_vm._v(\"Takip Numarası: \")]),_vm._v(\" \"+_vm._s(_vm.validationResult.TranckingNumber))]),_c('span',[_c('span',{staticClass:\"title\"},[_vm._v(\" Geçerli Mi:\")]),_vm._v(\" \"+_vm._s(_vm.validationResult.IsValid ? \"Evet\": \"Hayır\"))]),_c('br'),_c('span',[_c('span',{staticClass:\"title\",staticStyle:{\"text-decoration\":\"underline\"}},[_vm._v(\"İmzalayan Kullanıcılar\")]),_vm._l((_vm.validationResult.Signers),function(signer){return _c('ul',{key:signer.OwnerName},[_c('li',{staticClass:\"signer-info\"},[_c('div',[_vm._v(_vm._s(signer.OwnerName))]),_c('div',[_vm._v(_vm._s(signer.SignatureType))]),(signer.SigningTime)?_c('div',[_vm._v(_vm._s(_vm._f(\"datetime\")(signer.SigningTime))+\" \"+_vm._s(_vm.getSignatureTimeType(signer.SignatureType)))]):_vm._e()])])})],2)]),_c('div',{staticClass:\"col text-right\"},[(_vm.pdfURL)?_c('div',[_c('pdfViewer',{ref:\"pdfComponent\",attrs:{\"pdfurl\":_vm.pdfURL}})],1):_vm._e(),(_vm.showDocumentLoading)?_c('div',{staticClass:\"show-document-container\"},[_c('div',{staticClass:\"mikepad-container\"},[_c('MikepadLoader')],1),_c('p',[_vm._v(\" Doküman Hazırlanıyor Lütfen Bekleyiniz. \")])]):_vm._e(),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isViewable),expression:\"isViewable\"}],staticClass:\"btn btn-primary\",staticStyle:{\"margin-right\":\"12px\"},attrs:{\"type\":\"button\",\"disabled\":_vm.showDocumentLoading},on:{\"click\":function($event){return _vm.showDocument(true)}}},[_vm._v(\" Görüntüle \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isDownloadable),expression:\"isDownloadable\"}],staticClass:\"btn btn-success\",staticStyle:{\"margin-right\":\"12px\"},attrs:{\"type\":\"button\",\"disabled\":_vm.showDocumentLoading},on:{\"click\":function($event){return _vm.showDocument(false)}}},[_vm._v(\" İndir \")])])])])])])])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\"Doküman Hazırlanıyor Lütfen Bekleyiniz. \"),_c('br'),_vm._v(\" Bu işlemin tamamlanması bir dakikayı bulabilir.\")])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"form-group text-center\"},[_c('button',{staticClass:\"btn btn-primary btn-lg btn-block\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Doğrula\")])])\n}]\n\nexport { render, staticRenderFns }","var render, staticRenderFns\nimport script from \"./resize-sensor.vue?vue&type=script&lang=js&\"\nexport * from \"./resize-sensor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./resize-sensor.vue?vue&type=style&index=0&id=38cddd49&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.pdfurl)?_c('div',[_c('modal',{attrs:{\"name\":\"my-first-modal\",\"height\":\"auto\",\"scrollable\":\"\",\"width\":\"90%\"}},[_c('div',{attrs:{\"id\":\"pdfvuer\"}},[_c('div',{staticClass:\"closeButton\"},[_c('button',{on:{\"click\":function($event){return _vm.hide()}}},[_vm._v(\"X\")])]),_vm._l((_vm.numPages),function(i){return _c('pdf',{key:i,staticStyle:{\"width\":\"50%\",\"margin\":\"20px auto\"},attrs:{\"src\":_vm.pdfurl,\"id\":i,\"page\":i,\"scale\":_vm.scale,\"annotation\":true,\"resize\":true},on:{\"update:scale\":function($event){_vm.scale=$event},\"link-clicked\":_vm.handle_pdf_link}})})],2)])],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.loading)?_vm._t(\"loading\"):_vm._e(),_c('div',{ref:\"container\",attrs:{\"id\":\"viewerContainer\"}},[_c('div',{staticClass:\"pdfViewer\",attrs:{\"id\":\"viewer\"}}),_c('resizeSensor',{attrs:{\"initial\":true},on:{\"resize\":_vm.resizeScale}})],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./resize-sensor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./resize-sensor.vue?vue&type=script&lang=js&\"","\n\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./Pdfvuer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./Pdfvuer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pdfvuer.vue?vue&type=template&id=1c98349c&\"\nimport script from \"./Pdfvuer.vue?vue&type=script&lang=js&\"\nexport * from \"./Pdfvuer.vue?vue&type=script&lang=js&\"\nimport style0 from \"pdfjs-dist/web/pdf_viewer.css?vue&type=style&index=0&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/babel-loader/lib/index.js??ref--14!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDFJSViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/babel-loader/lib/index.js??ref--14!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDFJSViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PDFJSViewer.vue?vue&type=template&id=d38073b6&scoped=true&\"\nimport script from \"./PDFJSViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./PDFJSViewer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PDFJSViewer.vue?vue&type=style&index=0&id=d38073b6&prod&lang=css&\"\nimport style1 from \"pdfvuer/dist/pdfvuer.css?vue&type=style&index=1&prod&lang=css&\"\nimport style2 from \"./PDFJSViewer.vue?vue&type=style&index=2&id=d38073b6&prod&lang=css&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d38073b6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"spinner spinner--mikepad\",style:(_vm.styles)},[_c('div',{staticClass:\"spinner-inner\",style:(_vm.innerStyles)},[_c('div',{staticClass:\"binding\"}),_vm._m(0)])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"pad\"},[_c('div',{staticClass:\"line line1\"}),_c('div',{staticClass:\"line line2\"}),_c('div',{staticClass:\"line line3\"})])\n}]\n\nexport { render, staticRenderFns }","\r\n \r\n ","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/babel-loader/lib/index.js??ref--14!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MikepadLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/babel-loader/lib/index.js??ref--14!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MikepadLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MikepadLoader.vue?vue&type=template&id=eed01cc0&scoped=true&\"\nimport script from \"./MikepadLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./MikepadLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MikepadLoader.vue?vue&type=style&index=0&id=eed01cc0&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eed01cc0\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/babel-loader/lib/index.js??ref--14!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Validate.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/babel-loader/lib/index.js??ref--14!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Validate.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Validate.vue?vue&type=template&id=95b82952&scoped=true&\"\nimport script from \"./Validate.vue?vue&type=script&lang=js&\"\nexport * from \"./Validate.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Validate.vue?vue&type=style&index=0&id=95b82952&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"95b82952\",\n null\n \n)\n\nexport default component.exports","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(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.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = root.pdfjsWorker = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__w_pdfjs_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__w_pdfjs_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__w_pdfjs_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__w_pdfjs_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__w_pdfjs_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__w_pdfjs_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__w_pdfjs_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"WorkerMessageHandler\", {\n enumerable: true,\n get: function () {\n return _worker.WorkerMessageHandler;\n }\n});\n\nvar _worker = __w_pdfjs_require__(1);\n\nconst pdfjsVersion = '2.5.207';\nconst pdfjsBuild = '0974d605';\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WorkerMessageHandler = exports.WorkerTask = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _pdf_manager = __w_pdfjs_require__(6);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(45);\n\nvar _worker_stream = __w_pdfjs_require__(46);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar WorkerTask = function WorkerTaskClosure() {\n function WorkerTask(name) {\n this.name = name;\n this.terminated = false;\n this._capability = (0, _util.createPromiseCapability)();\n }\n\n WorkerTask.prototype = {\n get finished() {\n return this._capability.promise;\n },\n\n finish() {\n this._capability.resolve();\n },\n\n terminate() {\n this.terminated = true;\n },\n\n ensureNotTerminated() {\n if (this.terminated) {\n throw new Error(\"Worker task was terminated\");\n }\n }\n\n };\n return WorkerTask;\n}();\n\nexports.WorkerTask = WorkerTask;\nvar WorkerMessageHandler = {\n setup(handler, port) {\n var testMessageProcessed = false;\n handler.on(\"test\", function wphSetupTest(data) {\n if (testMessageProcessed) {\n return;\n }\n\n testMessageProcessed = true;\n\n if (!(data instanceof Uint8Array)) {\n handler.send(\"test\", null);\n return;\n }\n\n const supportTransfers = data[0] === 255;\n handler.postMessageTransfers = supportTransfers;\n handler.send(\"test\", {\n supportTransfers\n });\n });\n handler.on(\"configure\", function wphConfigure(data) {\n (0, _util.setVerbosityLevel)(data.verbosity);\n });\n handler.on(\"GetDocRequest\", function wphSetupDoc(data) {\n return WorkerMessageHandler.createDocumentHandler(data, port);\n });\n },\n\n createDocumentHandler(docParams, port) {\n var pdfManager;\n var terminated = false;\n var cancelXHRs = null;\n var WorkerTasks = [];\n const verbosity = (0, _util.getVerbosityLevel)();\n const apiVersion = docParams.apiVersion;\n const workerVersion = '2.5.207';\n\n if (apiVersion !== workerVersion) {\n throw new Error(`The API version \"${apiVersion}\" does not match ` + `the Worker version \"${workerVersion}\".`);\n }\n\n const enumerableProperties = [];\n\n for (const property in []) {\n enumerableProperties.push(property);\n }\n\n if (enumerableProperties.length) {\n throw new Error(\"The `Array.prototype` contains unexpected enumerable properties: \" + enumerableProperties.join(\", \") + \"; thus breaking e.g. `for...in` iteration of `Array`s.\");\n }\n\n if (typeof ReadableStream === \"undefined\" || typeof Promise.allSettled === \"undefined\") {\n throw new Error(\"The browser/environment lacks native support for critical \" + \"functionality used by the PDF.js library (e.g. \" + \"`ReadableStream` and/or `Promise.allSettled`); \" + \"please use an ES5-compatible build instead.\");\n }\n\n var docId = docParams.docId;\n var docBaseUrl = docParams.docBaseUrl;\n var workerHandlerName = docParams.docId + \"_worker\";\n var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);\n handler.postMessageTransfers = docParams.postMessageTransfers;\n\n function ensureNotTerminated() {\n if (terminated) {\n throw new Error(\"Worker was terminated\");\n }\n }\n\n function startWorkerTask(task) {\n WorkerTasks.push(task);\n }\n\n function finishWorkerTask(task) {\n task.finish();\n var i = WorkerTasks.indexOf(task);\n WorkerTasks.splice(i, 1);\n }\n\n async function loadDocument(recoveryMode) {\n await pdfManager.ensureDoc(\"checkHeader\");\n await pdfManager.ensureDoc(\"parseStartXRef\");\n await pdfManager.ensureDoc(\"parse\", [recoveryMode]);\n\n if (!recoveryMode) {\n await pdfManager.ensureDoc(\"checkFirstPage\");\n }\n\n const [numPages, fingerprint] = await Promise.all([pdfManager.ensureDoc(\"numPages\"), pdfManager.ensureDoc(\"fingerprint\")]);\n return {\n numPages,\n fingerprint\n };\n }\n\n function getPdfManager(data, evaluatorOptions) {\n var pdfManagerCapability = (0, _util.createPromiseCapability)();\n let newPdfManager;\n var source = data.source;\n\n if (source.data) {\n try {\n newPdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n\n return pdfManagerCapability.promise;\n }\n\n var pdfStream,\n cachedChunks = [];\n\n try {\n pdfStream = new _worker_stream.PDFWorkerStream(handler);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n return pdfManagerCapability.promise;\n }\n\n var fullRequest = pdfStream.getFullReader();\n fullRequest.headersReady.then(function () {\n if (!fullRequest.isRangeSupported) {\n return;\n }\n\n var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;\n newPdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {\n msgHandler: handler,\n password: source.password,\n length: fullRequest.contentLength,\n disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize\n }, evaluatorOptions, docBaseUrl);\n\n for (let i = 0; i < cachedChunks.length; i++) {\n newPdfManager.sendProgressiveData(cachedChunks[i]);\n }\n\n cachedChunks = [];\n pdfManagerCapability.resolve(newPdfManager);\n cancelXHRs = null;\n }).catch(function (reason) {\n pdfManagerCapability.reject(reason);\n cancelXHRs = null;\n });\n var loaded = 0;\n\n var flushChunks = function () {\n var pdfFile = (0, _util.arraysToBytes)(cachedChunks);\n\n if (source.length && pdfFile.length !== source.length) {\n (0, _util.warn)(\"reported HTTP length is different from actual\");\n }\n\n try {\n newPdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n\n cachedChunks = [];\n };\n\n var readPromise = new Promise(function (resolve, reject) {\n var readChunk = function ({\n value,\n done\n }) {\n try {\n ensureNotTerminated();\n\n if (done) {\n if (!newPdfManager) {\n flushChunks();\n }\n\n cancelXHRs = null;\n return;\n }\n\n loaded += (0, _util.arrayByteLength)(value);\n\n if (!fullRequest.isStreamingSupported) {\n handler.send(\"DocProgress\", {\n loaded,\n total: Math.max(loaded, fullRequest.contentLength || 0)\n });\n }\n\n if (newPdfManager) {\n newPdfManager.sendProgressiveData(value);\n } else {\n cachedChunks.push(value);\n }\n\n fullRequest.read().then(readChunk, reject);\n } catch (e) {\n reject(e);\n }\n };\n\n fullRequest.read().then(readChunk, reject);\n });\n readPromise.catch(function (e) {\n pdfManagerCapability.reject(e);\n cancelXHRs = null;\n });\n\n cancelXHRs = function (reason) {\n pdfStream.cancelAllRequests(reason);\n };\n\n return pdfManagerCapability.promise;\n }\n\n function setupDoc(data) {\n function onSuccess(doc) {\n ensureNotTerminated();\n handler.send(\"GetDoc\", {\n pdfInfo: doc\n });\n }\n\n function onFailure(ex) {\n ensureNotTerminated();\n\n if (ex instanceof _util.PasswordException) {\n var task = new WorkerTask(`PasswordException: response ${ex.code}`);\n startWorkerTask(task);\n handler.sendWithPromise(\"PasswordRequest\", ex).then(function ({\n password\n }) {\n finishWorkerTask(task);\n pdfManager.updatePassword(password);\n pdfManagerReady();\n }).catch(function () {\n finishWorkerTask(task);\n handler.send(\"DocException\", ex);\n });\n } else if (ex instanceof _util.InvalidPDFException || ex instanceof _util.MissingPDFException || ex instanceof _util.UnexpectedResponseException || ex instanceof _util.UnknownErrorException) {\n handler.send(\"DocException\", ex);\n } else {\n handler.send(\"DocException\", new _util.UnknownErrorException(ex.message, ex.toString()));\n }\n }\n\n function pdfManagerReady() {\n ensureNotTerminated();\n loadDocument(false).then(onSuccess, function loadFailure(ex) {\n ensureNotTerminated();\n\n if (!(ex instanceof _core_utils.XRefParseException)) {\n onFailure(ex);\n return;\n }\n\n pdfManager.requestLoadedStream();\n pdfManager.onLoadedStream().then(function () {\n ensureNotTerminated();\n loadDocument(true).then(onSuccess, onFailure);\n });\n }, onFailure);\n }\n\n ensureNotTerminated();\n var evaluatorOptions = {\n maxImageSize: data.maxImageSize,\n disableFontFace: data.disableFontFace,\n ignoreErrors: data.ignoreErrors,\n isEvalSupported: data.isEvalSupported,\n fontExtraProperties: data.fontExtraProperties\n };\n getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {\n if (terminated) {\n newPdfManager.terminate(new _util.AbortException(\"Worker was terminated.\"));\n throw new Error(\"Worker was terminated\");\n }\n\n pdfManager = newPdfManager;\n pdfManager.onLoadedStream().then(function (stream) {\n handler.send(\"DataLoaded\", {\n length: stream.bytes.byteLength\n });\n });\n }).then(pdfManagerReady, onFailure);\n }\n\n handler.on(\"GetPage\", function wphSetupGetPage(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return Promise.all([pdfManager.ensure(page, \"rotate\"), pdfManager.ensure(page, \"ref\"), pdfManager.ensure(page, \"userUnit\"), pdfManager.ensure(page, \"view\")]).then(function ([rotate, ref, userUnit, view]) {\n return {\n rotate,\n ref,\n userUnit,\n view\n };\n });\n });\n });\n handler.on(\"GetPageIndex\", function wphSetupGetPageIndex(data) {\n var ref = _primitives.Ref.get(data.ref.num, data.ref.gen);\n\n var catalog = pdfManager.pdfDocument.catalog;\n return catalog.getPageIndex(ref);\n });\n handler.on(\"GetDestinations\", function wphSetupGetDestinations(data) {\n return pdfManager.ensureCatalog(\"destinations\");\n });\n handler.on(\"GetDestination\", function wphSetupGetDestination(data) {\n return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n });\n handler.on(\"GetPageLabels\", function wphSetupGetPageLabels(data) {\n return pdfManager.ensureCatalog(\"pageLabels\");\n });\n handler.on(\"GetPageLayout\", function wphSetupGetPageLayout(data) {\n return pdfManager.ensureCatalog(\"pageLayout\");\n });\n handler.on(\"GetPageMode\", function wphSetupGetPageMode(data) {\n return pdfManager.ensureCatalog(\"pageMode\");\n });\n handler.on(\"GetViewerPreferences\", function (data) {\n return pdfManager.ensureCatalog(\"viewerPreferences\");\n });\n handler.on(\"GetOpenAction\", function (data) {\n return pdfManager.ensureCatalog(\"openAction\");\n });\n handler.on(\"GetAttachments\", function wphSetupGetAttachments(data) {\n return pdfManager.ensureCatalog(\"attachments\");\n });\n handler.on(\"GetJavaScript\", function wphSetupGetJavaScript(data) {\n return pdfManager.ensureCatalog(\"javaScript\");\n });\n handler.on(\"GetOutline\", function wphSetupGetOutline(data) {\n return pdfManager.ensureCatalog(\"documentOutline\");\n });\n handler.on(\"GetPermissions\", function (data) {\n return pdfManager.ensureCatalog(\"permissions\");\n });\n handler.on(\"GetMetadata\", function wphSetupGetMetadata(data) {\n return Promise.all([pdfManager.ensureDoc(\"documentInfo\"), pdfManager.ensureCatalog(\"metadata\")]);\n });\n handler.on(\"GetData\", function wphSetupGetData(data) {\n pdfManager.requestLoadedStream();\n return pdfManager.onLoadedStream().then(function (stream) {\n return stream.bytes;\n });\n });\n handler.on(\"GetStats\", function wphSetupGetStats(data) {\n return pdfManager.pdfDocument.xref.stats;\n });\n handler.on(\"GetAnnotations\", function ({\n pageIndex,\n intent\n }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return page.getAnnotationsData(intent);\n });\n });\n handler.on(\"GetOperatorList\", function wphSetupRenderPage(data, sink) {\n var pageIndex = data.pageIndex;\n pdfManager.getPage(pageIndex).then(function (page) {\n var task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n startWorkerTask(task);\n const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;\n page.getOperatorList({\n handler,\n sink,\n task,\n intent: data.intent,\n renderInteractiveForms: data.renderInteractiveForms\n }).then(function (operatorListInfo) {\n finishWorkerTask(task);\n\n if (start) {\n (0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);\n }\n\n sink.close();\n }, function (reason) {\n finishWorkerTask(task);\n\n if (task.terminated) {\n return;\n }\n\n handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList\n });\n sink.error(reason);\n });\n });\n }, this);\n handler.on(\"GetTextContent\", function wphExtractText(data, sink) {\n var pageIndex = data.pageIndex;\n\n sink.onPull = function (desiredSize) {};\n\n sink.onCancel = function (reason) {};\n\n pdfManager.getPage(pageIndex).then(function (page) {\n var task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n startWorkerTask(task);\n const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;\n page.extractTextContent({\n handler,\n task,\n sink,\n normalizeWhitespace: data.normalizeWhitespace,\n combineTextItems: data.combineTextItems\n }).then(function () {\n finishWorkerTask(task);\n\n if (start) {\n (0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);\n }\n\n sink.close();\n }, function (reason) {\n finishWorkerTask(task);\n\n if (task.terminated) {\n return;\n }\n\n sink.error(reason);\n });\n });\n });\n handler.on(\"FontFallback\", function (data) {\n return pdfManager.fontFallback(data.id, handler);\n });\n handler.on(\"Cleanup\", function wphCleanup(data) {\n return pdfManager.cleanup(true);\n });\n handler.on(\"Terminate\", function wphTerminate(data) {\n terminated = true;\n const waitOn = [];\n\n if (pdfManager) {\n pdfManager.terminate(new _util.AbortException(\"Worker was terminated.\"));\n const cleanupPromise = pdfManager.cleanup();\n waitOn.push(cleanupPromise);\n pdfManager = null;\n } else {\n (0, _primitives.clearPrimitiveCaches)();\n }\n\n if (cancelXHRs) {\n cancelXHRs(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n WorkerTasks.forEach(function (task) {\n waitOn.push(task.finished);\n task.terminate();\n });\n return Promise.all(waitOn).then(function () {\n handler.destroy();\n handler = null;\n });\n });\n handler.on(\"Ready\", function wphReady(data) {\n setupDoc(docParams);\n docParams = null;\n });\n return workerHandlerName;\n },\n\n initializeFromPort(port) {\n var handler = new _message_handler.MessageHandler(\"worker\", \"main\", port);\n WorkerMessageHandler.setup(handler, port);\n handler.send(\"ready\", null);\n }\n\n};\nexports.WorkerMessageHandler = WorkerMessageHandler;\n\nfunction isMessagePort(maybePort) {\n return typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort;\n}\n\nif (typeof window === \"undefined\" && !_is_node.isNodeJS && typeof self !== \"undefined\" && isMessagePort(self)) {\n WorkerMessageHandler.initializeFromPort(self);\n}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isBool = isBool;\nexports.isEmptyObj = isEmptyObj;\nexports.isNum = isNum;\nexports.isString = isString;\nexports.isSameOrigin = isSameOrigin;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.removeNullCharacters = removeNullCharacters;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nexports.unreachable = unreachable;\nexports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0;\n\n__w_pdfjs_require__(3);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\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};\nexports.PermissionFlag = PermissionFlag;\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};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\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};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\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};\nexports.AnnotationFlag = AnnotationFlag;\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};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\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\"\n};\nexports.StreamType = StreamType;\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};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n 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};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\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};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\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\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\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\nfunction isSameOrigin(baseUrl, otherUrl) {\n let base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n\n try {\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\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\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = this.constructor.name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg);\n this.code = code;\n }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg);\n this.details = details;\n }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg);\n this.status = status;\n }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {}\n\nexports.AbortException = AbortException;\nconst NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n if (typeof str !== \"string\") {\n warn(\"The argument for removeNullCharacters must be a string.\");\n return str;\n }\n\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined, \"Invalid argument for bytesToString\");\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n const strBuf = [];\n\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\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\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n return arr.byteLength;\n}\n\nfunction arraysToBytes(arr) {\n const length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n let resultLength = 0;\n\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n let pos = 0;\n const data = new Uint8Array(resultLength);\n\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nconst IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n }\n\n};\nexports.IsLittleEndianCached = IsLittleEndianCached;\n\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\n\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n }\n\n};\nexports.IsEvalSupportedCached = IsEvalSupportedCached;\nconst rgbBuf = [\"rgb(\", 0, \",\", 0, \",\", 0, \")\"];\n\nclass Util {\n static makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join(\"\");\n }\n\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n\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 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 [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n\n static apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n }\n\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\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 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 return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n static normalizeRect(rect) {\n const r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n\n static intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\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 rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\n }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];\n\nfunction stringToPDFString(str) {\n const length = str.length,\n strBuf = [];\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i)));\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\n return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n for (const key in obj) {\n return false;\n }\n\n return true;\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\n return arr1.every(function (element, index) {\n return element === arr2[index];\n });\n}\n\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n }\n\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nconst createObjectURL = function createObjectURLClosure() {\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], {\n type: contentType\n });\n return URL.createObjectURL(blob);\n }\n\n let buffer = `data:${contentType};base64,`;\n\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\n return buffer;\n };\n}();\n\nexports.createObjectURL = createObjectURL;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _is_node = __w_pdfjs_require__(4);\n\n;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !process.versions.electron;\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clearPrimitiveCaches = clearPrimitiveCaches;\nexports.isEOF = isEOF;\nexports.isCmd = isCmd;\nexports.isDict = isDict;\nexports.isName = isName;\nexports.isRef = isRef;\nexports.isRefsEqual = isRefsEqual;\nexports.isStream = isStream;\nexports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar EOF = {};\nexports.EOF = EOF;\n\nvar Name = function NameClosure() {\n let nameCache = Object.create(null);\n\n function Name(name) {\n this.name = name;\n }\n\n Name.prototype = {};\n\n Name.get = function Name_get(name) {\n var nameValue = nameCache[name];\n return nameValue ? nameValue : nameCache[name] = new Name(name);\n };\n\n Name._clearCache = function () {\n nameCache = Object.create(null);\n };\n\n return Name;\n}();\n\nexports.Name = Name;\n\nvar Cmd = function CmdClosure() {\n let cmdCache = Object.create(null);\n\n function Cmd(cmd) {\n this.cmd = cmd;\n }\n\n Cmd.prototype = {};\n\n Cmd.get = function Cmd_get(cmd) {\n var cmdValue = cmdCache[cmd];\n return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);\n };\n\n Cmd._clearCache = function () {\n cmdCache = Object.create(null);\n };\n\n return Cmd;\n}();\n\nexports.Cmd = Cmd;\n\nvar Dict = function DictClosure() {\n var nonSerializable = function nonSerializableClosure() {\n return nonSerializable;\n };\n\n function Dict(xref) {\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable;\n }\n\n Dict.prototype = {\n assignXref: function Dict_assignXref(newXref) {\n this.xref = newXref;\n },\n\n get(key1, key2, key3) {\n let value = this._map[key1];\n\n if (value === undefined && key2 !== undefined) {\n value = this._map[key2];\n\n if (value === undefined && key3 !== undefined) {\n value = this._map[key3];\n }\n }\n\n if (value instanceof Ref && this.xref) {\n return this.xref.fetch(value, this.suppressEncryption);\n }\n\n return value;\n },\n\n async getAsync(key1, key2, key3) {\n let value = this._map[key1];\n\n if (value === undefined && key2 !== undefined) {\n value = this._map[key2];\n\n if (value === undefined && key3 !== undefined) {\n value = this._map[key3];\n }\n }\n\n if (value instanceof Ref && this.xref) {\n return this.xref.fetchAsync(value, this.suppressEncryption);\n }\n\n return value;\n },\n\n getArray(key1, key2, key3) {\n let value = this.get(key1, key2, key3);\n\n if (!Array.isArray(value) || !this.xref) {\n return value;\n }\n\n value = value.slice();\n\n for (let i = 0, ii = value.length; i < ii; i++) {\n if (!(value[i] instanceof Ref)) {\n continue;\n }\n\n value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n }\n\n return value;\n },\n\n getRaw: function Dict_getRaw(key) {\n return this._map[key];\n },\n getKeys: function Dict_getKeys() {\n return Object.keys(this._map);\n },\n set: function Dict_set(key, value) {\n this._map[key] = value;\n },\n has: function Dict_has(key) {\n return this._map[key] !== undefined;\n },\n forEach: function Dict_forEach(callback) {\n for (var key in this._map) {\n callback(key, this.get(key));\n }\n }\n };\n Dict.empty = new Dict(null);\n\n Dict.merge = function (xref, dictArray) {\n const mergedDict = new Dict(xref);\n\n for (let i = 0, ii = dictArray.length; i < ii; i++) {\n const dict = dictArray[i];\n\n if (!isDict(dict)) {\n continue;\n }\n\n for (const keyName in dict._map) {\n if (mergedDict._map[keyName] !== undefined) {\n continue;\n }\n\n mergedDict._map[keyName] = dict._map[keyName];\n }\n }\n\n return mergedDict;\n };\n\n return Dict;\n}();\n\nexports.Dict = Dict;\n\nvar Ref = function RefClosure() {\n let refCache = Object.create(null);\n\n function Ref(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n Ref.prototype = {\n toString: function Ref_toString() {\n if (this.gen === 0) {\n return `${this.num}R`;\n }\n\n return `${this.num}R${this.gen}`;\n }\n };\n\n Ref.get = function (num, gen) {\n const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n const refValue = refCache[key];\n return refValue ? refValue : refCache[key] = new Ref(num, gen);\n };\n\n Ref._clearCache = function () {\n refCache = Object.create(null);\n };\n\n return Ref;\n}();\n\nexports.Ref = Ref;\n\nvar RefSet = function RefSetClosure() {\n function RefSet() {\n this.dict = Object.create(null);\n }\n\n RefSet.prototype = {\n has: function RefSet_has(ref) {\n return ref.toString() in this.dict;\n },\n put: function RefSet_put(ref) {\n this.dict[ref.toString()] = true;\n },\n remove: function RefSet_remove(ref) {\n delete this.dict[ref.toString()];\n }\n };\n return RefSet;\n}();\n\nexports.RefSet = RefSet;\n\nvar RefSetCache = function RefSetCacheClosure() {\n function RefSetCache() {\n this.dict = Object.create(null);\n }\n\n RefSetCache.prototype = {\n get size() {\n return Object.keys(this.dict).length;\n },\n\n get: function RefSetCache_get(ref) {\n return this.dict[ref.toString()];\n },\n has: function RefSetCache_has(ref) {\n return ref.toString() in this.dict;\n },\n put: function RefSetCache_put(ref, obj) {\n this.dict[ref.toString()] = obj;\n },\n putAlias: function RefSetCache_putAlias(ref, aliasRef) {\n this.dict[ref.toString()] = this.get(aliasRef);\n },\n forEach: function RefSetCache_forEach(callback) {\n for (const i in this.dict) {\n callback(this.dict[i]);\n }\n },\n clear: function RefSetCache_clear() {\n this.dict = Object.create(null);\n }\n };\n return RefSetCache;\n}();\n\nexports.RefSetCache = RefSetCache;\n\nfunction isEOF(v) {\n return v === EOF;\n}\n\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n return v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type));\n}\n\nfunction isRef(v) {\n return v instanceof Ref;\n}\n\nfunction isRefsEqual(v1, v2) {\n return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction isStream(v) {\n return typeof v === \"object\" && v !== null && v.getBytes !== undefined;\n}\n\nfunction clearPrimitiveCaches() {\n Cmd._clearCache();\n\n Name._clearCache();\n\n Ref._clearCache();\n}\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NetworkPdfManager = exports.LocalPdfManager = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _chunked_stream = __w_pdfjs_require__(7);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _document = __w_pdfjs_require__(9);\n\nvar _stream = __w_pdfjs_require__(12);\n\nclass BasePdfManager {\n constructor() {\n if (this.constructor === BasePdfManager) {\n (0, _util.unreachable)(\"Cannot initialize BasePdfManager.\");\n }\n }\n\n get docId() {\n return this._docId;\n }\n\n get password() {\n return this._password;\n }\n\n get docBaseUrl() {\n let docBaseUrl = null;\n\n if (this._docBaseUrl) {\n const absoluteUrl = (0, _util.createValidAbsoluteUrl)(this._docBaseUrl);\n\n if (absoluteUrl) {\n docBaseUrl = absoluteUrl.href;\n } else {\n (0, _util.warn)(`Invalid absolute docBaseUrl: \"${this._docBaseUrl}\".`);\n }\n }\n\n return (0, _util.shadow)(this, \"docBaseUrl\", docBaseUrl);\n }\n\n onLoadedStream() {\n (0, _util.unreachable)(\"Abstract method `onLoadedStream` called\");\n }\n\n ensureDoc(prop, args) {\n return this.ensure(this.pdfDocument, prop, args);\n }\n\n ensureXRef(prop, args) {\n return this.ensure(this.pdfDocument.xref, prop, args);\n }\n\n ensureCatalog(prop, args) {\n return this.ensure(this.pdfDocument.catalog, prop, args);\n }\n\n getPage(pageIndex) {\n return this.pdfDocument.getPage(pageIndex);\n }\n\n fontFallback(id, handler) {\n return this.pdfDocument.fontFallback(id, handler);\n }\n\n cleanup(manuallyTriggered = false) {\n return this.pdfDocument.cleanup(manuallyTriggered);\n }\n\n async ensure(obj, prop, args) {\n (0, _util.unreachable)(\"Abstract method `ensure` called\");\n }\n\n requestRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method `requestRange` called\");\n }\n\n requestLoadedStream() {\n (0, _util.unreachable)(\"Abstract method `requestLoadedStream` called\");\n }\n\n sendProgressiveData(chunk) {\n (0, _util.unreachable)(\"Abstract method `sendProgressiveData` called\");\n }\n\n updatePassword(password) {\n this._password = password;\n }\n\n terminate(reason) {\n (0, _util.unreachable)(\"Abstract method `terminate` called\");\n }\n\n}\n\nclass LocalPdfManager extends BasePdfManager {\n constructor(docId, data, password, evaluatorOptions, docBaseUrl) {\n super();\n this._docId = docId;\n this._password = password;\n this._docBaseUrl = docBaseUrl;\n this.evaluatorOptions = evaluatorOptions;\n const stream = new _stream.Stream(data);\n this.pdfDocument = new _document.PDFDocument(this, stream);\n this._loadedStreamPromise = Promise.resolve(stream);\n }\n\n async ensure(obj, prop, args) {\n const value = obj[prop];\n\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n\n return value;\n }\n\n requestRange(begin, end) {\n return Promise.resolve();\n }\n\n requestLoadedStream() {}\n\n onLoadedStream() {\n return this._loadedStreamPromise;\n }\n\n terminate(reason) {}\n\n}\n\nexports.LocalPdfManager = LocalPdfManager;\n\nclass NetworkPdfManager extends BasePdfManager {\n constructor(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) {\n super();\n this._docId = docId;\n this._password = args.password;\n this._docBaseUrl = docBaseUrl;\n this.msgHandler = args.msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, {\n msgHandler: args.msgHandler,\n length: args.length,\n disableAutoFetch: args.disableAutoFetch,\n rangeChunkSize: args.rangeChunkSize\n });\n this.pdfDocument = new _document.PDFDocument(this, this.streamManager.getStream());\n }\n\n async ensure(obj, prop, args) {\n try {\n const value = obj[prop];\n\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n\n return value;\n } catch (ex) {\n if (!(ex instanceof _core_utils.MissingDataException)) {\n throw ex;\n }\n\n await this.requestRange(ex.begin, ex.end);\n return this.ensure(obj, prop, args);\n }\n }\n\n requestRange(begin, end) {\n return this.streamManager.requestRange(begin, end);\n }\n\n requestLoadedStream() {\n this.streamManager.requestAllChunks();\n }\n\n sendProgressiveData(chunk) {\n this.streamManager.onReceiveData({\n chunk\n });\n }\n\n onLoadedStream() {\n return this.streamManager.onLoadedStream();\n }\n\n terminate(reason) {\n this.streamManager.abort(reason);\n }\n\n}\n\nexports.NetworkPdfManager = NetworkPdfManager;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChunkedStreamManager = exports.ChunkedStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nclass ChunkedStream {\n constructor(length, chunkSize, manager) {\n this.bytes = new Uint8Array(length);\n this.start = 0;\n this.pos = 0;\n this.end = length;\n this.chunkSize = chunkSize;\n this.loadedChunks = [];\n this.numChunksLoaded = 0;\n this.numChunks = Math.ceil(length / chunkSize);\n this.manager = manager;\n this.progressiveDataLength = 0;\n this.lastSuccessfulEnsureByteChunk = -1;\n }\n\n getMissingChunks() {\n const chunks = [];\n\n for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n chunks.push(chunk);\n }\n }\n\n return chunks;\n }\n\n getBaseStreams() {\n return [this];\n }\n\n allChunksLoaded() {\n return this.numChunksLoaded === this.numChunks;\n }\n\n onReceiveData(begin, chunk) {\n const chunkSize = this.chunkSize;\n\n if (begin % chunkSize !== 0) {\n throw new Error(`Bad begin offset: ${begin}`);\n }\n\n const end = begin + chunk.byteLength;\n\n if (end % chunkSize !== 0 && end !== this.bytes.length) {\n throw new Error(`Bad end offset: ${end}`);\n }\n\n this.bytes.set(new Uint8Array(chunk), begin);\n const beginChunk = Math.floor(begin / chunkSize);\n const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n if (!this.loadedChunks[curChunk]) {\n this.loadedChunks[curChunk] = true;\n ++this.numChunksLoaded;\n }\n }\n }\n\n onReceiveProgressiveData(data) {\n let position = this.progressiveDataLength;\n const beginChunk = Math.floor(position / this.chunkSize);\n this.bytes.set(new Uint8Array(data), position);\n position += data.byteLength;\n this.progressiveDataLength = position;\n const endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize);\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n if (!this.loadedChunks[curChunk]) {\n this.loadedChunks[curChunk] = true;\n ++this.numChunksLoaded;\n }\n }\n }\n\n ensureByte(pos) {\n if (pos < this.progressiveDataLength) {\n return;\n }\n\n const chunk = Math.floor(pos / this.chunkSize);\n\n if (chunk === this.lastSuccessfulEnsureByteChunk) {\n return;\n }\n\n if (!this.loadedChunks[chunk]) {\n throw new _core_utils.MissingDataException(pos, pos + 1);\n }\n\n this.lastSuccessfulEnsureByteChunk = chunk;\n }\n\n ensureRange(begin, end) {\n if (begin >= end) {\n return;\n }\n\n if (end <= this.progressiveDataLength) {\n return;\n }\n\n const chunkSize = this.chunkSize;\n const beginChunk = Math.floor(begin / chunkSize);\n const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n throw new _core_utils.MissingDataException(begin, end);\n }\n }\n }\n\n nextEmptyChunk(beginChunk) {\n const numChunks = this.numChunks;\n\n for (let i = 0; i < numChunks; ++i) {\n const chunk = (beginChunk + i) % numChunks;\n\n if (!this.loadedChunks[chunk]) {\n return chunk;\n }\n }\n\n return null;\n }\n\n hasChunk(chunk) {\n return !!this.loadedChunks[chunk];\n }\n\n get length() {\n return this.end - this.start;\n }\n\n get isEmpty() {\n return this.length === 0;\n }\n\n getByte() {\n const pos = this.pos;\n\n if (pos >= this.end) {\n return -1;\n }\n\n if (pos >= this.progressiveDataLength) {\n this.ensureByte(pos);\n }\n\n return this.bytes[this.pos++];\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n getBytes(length, forceClamped = false) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n if (strEnd > this.progressiveDataLength) {\n this.ensureRange(pos, strEnd);\n }\n\n const subarray = bytes.subarray(pos, strEnd);\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n }\n\n let end = pos + length;\n\n if (end > strEnd) {\n end = strEnd;\n }\n\n if (end > this.progressiveDataLength) {\n this.ensureRange(pos, end);\n }\n\n this.pos = end;\n const subarray = bytes.subarray(pos, end);\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n\n if (peekedByte !== -1) {\n this.pos--;\n }\n\n return peekedByte;\n }\n\n peekBytes(length, forceClamped = false) {\n const bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n\n if (end > this.end) {\n end = this.end;\n }\n\n if (end > this.progressiveDataLength) {\n this.ensureRange(begin, end);\n }\n\n return this.bytes.subarray(begin, end);\n }\n\n skip(n) {\n if (!n) {\n n = 1;\n }\n\n this.pos += n;\n }\n\n reset() {\n this.pos = this.start;\n }\n\n moveStart() {\n this.start = this.pos;\n }\n\n makeSubStream(start, length, dict) {\n if (length) {\n if (start + length > this.progressiveDataLength) {\n this.ensureRange(start, start + length);\n }\n } else {\n if (start >= this.progressiveDataLength) {\n this.ensureByte(start);\n }\n }\n\n function ChunkedStreamSubstream() {}\n\n ChunkedStreamSubstream.prototype = Object.create(this);\n\n ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n const chunkSize = this.chunkSize;\n const beginChunk = Math.floor(this.start / chunkSize);\n const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n const missingChunks = [];\n\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n missingChunks.push(chunk);\n }\n }\n\n return missingChunks;\n };\n\n ChunkedStreamSubstream.prototype.allChunksLoaded = function () {\n if (this.numChunksLoaded === this.numChunks) {\n return true;\n }\n\n return this.getMissingChunks().length === 0;\n };\n\n const subStream = new ChunkedStreamSubstream();\n subStream.pos = subStream.start = start;\n subStream.end = start + length || this.end;\n subStream.dict = dict;\n return subStream;\n }\n\n}\n\nexports.ChunkedStream = ChunkedStream;\n\nclass ChunkedStreamManager {\n constructor(pdfNetworkStream, args) {\n this.length = args.length;\n this.chunkSize = args.rangeChunkSize;\n this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n this.pdfNetworkStream = pdfNetworkStream;\n this.disableAutoFetch = args.disableAutoFetch;\n this.msgHandler = args.msgHandler;\n this.currRequestId = 0;\n this.chunksNeededByRequest = Object.create(null);\n this.requestsByChunk = Object.create(null);\n this.promisesByRequest = Object.create(null);\n this.progressiveDataLength = 0;\n this.aborted = false;\n this._loadedStreamCapability = (0, _util.createPromiseCapability)();\n }\n\n onLoadedStream() {\n return this._loadedStreamCapability.promise;\n }\n\n sendRequest(begin, end) {\n const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n\n if (!rangeReader.isStreamingSupported) {\n rangeReader.onProgress = this.onProgress.bind(this);\n }\n\n let chunks = [],\n loaded = 0;\n const promise = new Promise((resolve, reject) => {\n const readChunk = chunk => {\n try {\n if (!chunk.done) {\n const data = chunk.value;\n chunks.push(data);\n loaded += (0, _util.arrayByteLength)(data);\n\n if (rangeReader.isStreamingSupported) {\n this.onProgress({\n loaded\n });\n }\n\n rangeReader.read().then(readChunk, reject);\n return;\n }\n\n const chunkData = (0, _util.arraysToBytes)(chunks);\n chunks = null;\n resolve(chunkData);\n } catch (e) {\n reject(e);\n }\n };\n\n rangeReader.read().then(readChunk, reject);\n });\n promise.then(data => {\n if (this.aborted) {\n return;\n }\n\n this.onReceiveData({\n chunk: data,\n begin\n });\n });\n }\n\n requestAllChunks() {\n const missingChunks = this.stream.getMissingChunks();\n\n this._requestChunks(missingChunks);\n\n return this._loadedStreamCapability.promise;\n }\n\n _requestChunks(chunks) {\n const requestId = this.currRequestId++;\n const chunksNeeded = Object.create(null);\n this.chunksNeededByRequest[requestId] = chunksNeeded;\n\n for (const chunk of chunks) {\n if (!this.stream.hasChunk(chunk)) {\n chunksNeeded[chunk] = true;\n }\n }\n\n if ((0, _util.isEmptyObj)(chunksNeeded)) {\n return Promise.resolve();\n }\n\n const capability = (0, _util.createPromiseCapability)();\n this.promisesByRequest[requestId] = capability;\n const chunksToRequest = [];\n\n for (let chunk in chunksNeeded) {\n chunk = chunk | 0;\n\n if (!(chunk in this.requestsByChunk)) {\n this.requestsByChunk[chunk] = [];\n chunksToRequest.push(chunk);\n }\n\n this.requestsByChunk[chunk].push(requestId);\n }\n\n if (!chunksToRequest.length) {\n return capability.promise;\n }\n\n const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n\n for (const groupedChunk of groupedChunksToRequest) {\n const begin = groupedChunk.beginChunk * this.chunkSize;\n const end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n this.sendRequest(begin, end);\n }\n\n return capability.promise;\n }\n\n getStream() {\n return this.stream;\n }\n\n requestRange(begin, end) {\n end = Math.min(end, this.length);\n const beginChunk = this.getBeginChunk(begin);\n const endChunk = this.getEndChunk(end);\n const chunks = [];\n\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n chunks.push(chunk);\n }\n\n return this._requestChunks(chunks);\n }\n\n requestRanges(ranges = []) {\n const chunksToRequest = [];\n\n for (const range of ranges) {\n const beginChunk = this.getBeginChunk(range.begin);\n const endChunk = this.getEndChunk(range.end);\n\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!chunksToRequest.includes(chunk)) {\n chunksToRequest.push(chunk);\n }\n }\n }\n\n chunksToRequest.sort(function (a, b) {\n return a - b;\n });\n return this._requestChunks(chunksToRequest);\n }\n\n groupChunks(chunks) {\n const groupedChunks = [];\n let beginChunk = -1;\n let prevChunk = -1;\n\n for (let i = 0, ii = chunks.length; i < ii; ++i) {\n const chunk = chunks[i];\n\n if (beginChunk < 0) {\n beginChunk = chunk;\n }\n\n if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n groupedChunks.push({\n beginChunk,\n endChunk: prevChunk + 1\n });\n beginChunk = chunk;\n }\n\n if (i + 1 === chunks.length) {\n groupedChunks.push({\n beginChunk,\n endChunk: chunk + 1\n });\n }\n\n prevChunk = chunk;\n }\n\n return groupedChunks;\n }\n\n onProgress(args) {\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n total: this.length\n });\n }\n\n onReceiveData(args) {\n const chunk = args.chunk;\n const isProgressive = args.begin === undefined;\n const begin = isProgressive ? this.progressiveDataLength : args.begin;\n const end = begin + chunk.byteLength;\n const beginChunk = Math.floor(begin / this.chunkSize);\n const endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize);\n\n if (isProgressive) {\n this.stream.onReceiveProgressiveData(chunk);\n this.progressiveDataLength = end;\n } else {\n this.stream.onReceiveData(begin, chunk);\n }\n\n if (this.stream.allChunksLoaded()) {\n this._loadedStreamCapability.resolve(this.stream);\n }\n\n const loadedRequests = [];\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n const requestIds = this.requestsByChunk[curChunk] || [];\n delete this.requestsByChunk[curChunk];\n\n for (const requestId of requestIds) {\n const chunksNeeded = this.chunksNeededByRequest[requestId];\n\n if (curChunk in chunksNeeded) {\n delete chunksNeeded[curChunk];\n }\n\n if (!(0, _util.isEmptyObj)(chunksNeeded)) {\n continue;\n }\n\n loadedRequests.push(requestId);\n }\n }\n\n if (!this.disableAutoFetch && (0, _util.isEmptyObj)(this.requestsByChunk)) {\n let nextEmptyChunk;\n\n if (this.stream.numChunksLoaded === 1) {\n const lastChunk = this.stream.numChunks - 1;\n\n if (!this.stream.hasChunk(lastChunk)) {\n nextEmptyChunk = lastChunk;\n }\n } else {\n nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n }\n\n if (Number.isInteger(nextEmptyChunk)) {\n this._requestChunks([nextEmptyChunk]);\n }\n }\n\n for (const requestId of loadedRequests) {\n const capability = this.promisesByRequest[requestId];\n delete this.promisesByRequest[requestId];\n capability.resolve();\n }\n\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize,\n total: this.length\n });\n }\n\n onError(err) {\n this._loadedStreamCapability.reject(err);\n }\n\n getBeginChunk(begin) {\n return Math.floor(begin / this.chunkSize);\n }\n\n getEndChunk(end) {\n return Math.floor((end - 1) / this.chunkSize) + 1;\n }\n\n abort(reason) {\n this.aborted = true;\n\n if (this.pdfNetworkStream) {\n this.pdfNetworkStream.cancelAllRequests(reason);\n }\n\n for (const requestId in this.promisesByRequest) {\n this.promisesByRequest[requestId].reject(reason);\n }\n }\n\n}\n\nexports.ChunkedStreamManager = ChunkedStreamManager;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLookupTableFactory = getLookupTableFactory;\nexports.getInheritableProperty = getInheritableProperty;\nexports.toRomanNumerals = toRomanNumerals;\nexports.log2 = log2;\nexports.readInt8 = readInt8;\nexports.readUint16 = readUint16;\nexports.readUint32 = readUint32;\nexports.isWhiteSpace = isWhiteSpace;\nexports.XRefParseException = exports.XRefEntryException = exports.MissingDataException = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction getLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n\n return lookup;\n };\n}\n\nclass MissingDataException extends _util.BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`);\n this.begin = begin;\n this.end = end;\n }\n\n}\n\nexports.MissingDataException = MissingDataException;\n\nclass XRefEntryException extends _util.BaseException {}\n\nexports.XRefEntryException = XRefEntryException;\n\nclass XRefParseException extends _util.BaseException {}\n\nexports.XRefParseException = XRefParseException;\n\nfunction getInheritableProperty({\n dict,\n key,\n getArray = false,\n stopWhenFound = true\n}) {\n const LOOP_LIMIT = 100;\n let loopCount = 0;\n let values;\n\n while (dict) {\n const value = getArray ? dict.getArray(key) : dict.get(key);\n\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n\n if (!values) {\n values = [];\n }\n\n values.push(value);\n }\n\n if (++loopCount > LOOP_LIMIT) {\n (0, _util.warn)(`getInheritableProperty: maximum loop count exceeded for \"${key}\"`);\n break;\n }\n\n dict = dict.get(\"Parent\");\n }\n\n return values;\n}\n\nconst ROMAN_NUMBER_MAP = [\"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\", \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\", \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"];\n\nfunction toRomanNumerals(number, lowerCase = false) {\n (0, _util.assert)(Number.isInteger(number) && number > 0, \"The number should be a positive integer.\");\n const romanBuf = [];\n let pos;\n\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push(\"M\");\n }\n\n pos = number / 100 | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n pos = number / 10 | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n const romanStr = romanBuf.join(\"\");\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n return data[offset] << 24 >> 24;\n}\n\nfunction readUint16(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\n\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFDocument = exports.Page = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _obj = __w_pdfjs_require__(10);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _annotation = __w_pdfjs_require__(25);\n\nvar _crypto = __w_pdfjs_require__(22);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _operator_list = __w_pdfjs_require__(26);\n\nvar _evaluator = __w_pdfjs_require__(27);\n\nvar _function = __w_pdfjs_require__(41);\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nfunction isAnnotationRenderable(annotation, intent) {\n return intent === \"display\" && annotation.viewable || intent === \"print\" && annotation.printable;\n}\n\nclass Page {\n constructor({\n pdfManager,\n xref,\n pageIndex,\n pageDict,\n ref,\n fontCache,\n builtInCMapCache,\n globalImageCache,\n pdfFunctionFactory\n }) {\n this.pdfManager = pdfManager;\n this.pageIndex = pageIndex;\n this.pageDict = pageDict;\n this.xref = xref;\n this.ref = ref;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.globalImageCache = globalImageCache;\n this.pdfFunctionFactory = pdfFunctionFactory;\n this.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n const idCounters = {\n obj: 0\n };\n this.idFactory = {\n createObjId() {\n return `p${pageIndex}_${++idCounters.obj}`;\n },\n\n getDocId() {\n return `g_${pdfManager.docId}`;\n }\n\n };\n }\n\n _getInheritableProperty(key, getArray = false) {\n const value = (0, _core_utils.getInheritableProperty)({\n dict: this.pageDict,\n key,\n getArray,\n stopWhenFound: false\n });\n\n if (!Array.isArray(value)) {\n return value;\n }\n\n if (value.length === 1 || !(0, _primitives.isDict)(value[0])) {\n return value[0];\n }\n\n return _primitives.Dict.merge(this.xref, value);\n }\n\n get content() {\n return this.pageDict.get(\"Contents\");\n }\n\n get resources() {\n return (0, _util.shadow)(this, \"resources\", this._getInheritableProperty(\"Resources\") || _primitives.Dict.empty);\n }\n\n _getBoundingBox(name) {\n const box = this._getInheritableProperty(name, true);\n\n if (Array.isArray(box) && box.length === 4) {\n if (box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n return box;\n }\n\n (0, _util.warn)(`Empty /${name} entry.`);\n }\n\n return null;\n }\n\n get mediaBox() {\n return (0, _util.shadow)(this, \"mediaBox\", this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX);\n }\n\n get cropBox() {\n return (0, _util.shadow)(this, \"cropBox\", this._getBoundingBox(\"CropBox\") || this.mediaBox);\n }\n\n get userUnit() {\n let obj = this.pageDict.get(\"UserUnit\");\n\n if (!(0, _util.isNum)(obj) || obj <= 0) {\n obj = DEFAULT_USER_UNIT;\n }\n\n return (0, _util.shadow)(this, \"userUnit\", obj);\n }\n\n get view() {\n const {\n cropBox,\n mediaBox\n } = this;\n let view;\n\n if (cropBox === mediaBox || (0, _util.isArrayEqual)(cropBox, mediaBox)) {\n view = mediaBox;\n } else {\n const box = _util.Util.intersect(cropBox, mediaBox);\n\n if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n view = box;\n } else {\n (0, _util.warn)(\"Empty /CropBox and /MediaBox intersection.\");\n }\n }\n\n return (0, _util.shadow)(this, \"view\", view || mediaBox);\n }\n\n get rotate() {\n let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n if (rotate % 90 !== 0) {\n rotate = 0;\n } else if (rotate >= 360) {\n rotate = rotate % 360;\n } else if (rotate < 0) {\n rotate = (rotate % 360 + 360) % 360;\n }\n\n return (0, _util.shadow)(this, \"rotate\", rotate);\n }\n\n getContentStream() {\n const content = this.content;\n let stream;\n\n if (Array.isArray(content)) {\n const xref = this.xref;\n const streams = [];\n\n for (const subStream of content) {\n streams.push(xref.fetchIfRef(subStream));\n }\n\n stream = new _stream.StreamsSequenceStream(streams);\n } else if ((0, _primitives.isStream)(content)) {\n stream = content;\n } else {\n stream = new _stream.NullStream();\n }\n\n return stream;\n }\n\n loadResources(keys) {\n if (!this.resourcesPromise) {\n this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n }\n\n return this.resourcesPromise.then(() => {\n const objectLoader = new _obj.ObjectLoader(this.resources, keys, this.xref);\n return objectLoader.load();\n });\n }\n\n getOperatorList({\n handler,\n sink,\n task,\n intent,\n renderInteractiveForms\n }) {\n const contentStreamPromise = this.pdfManager.ensure(this, \"getContentStream\");\n const resourcesPromise = this.loadResources([\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"]);\n const partialEvaluator = new _evaluator.PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this.idFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n pdfFunctionFactory: this.pdfFunctionFactory\n });\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n const pageListPromise = dataPromises.then(([contentStream]) => {\n const opList = new _operator_list.OperatorList(intent, sink, this.pageIndex);\n handler.send(\"StartRenderPage\", {\n transparency: partialEvaluator.hasBlendModes(this.resources),\n pageIndex: this.pageIndex,\n intent\n });\n return partialEvaluator.getOperatorList({\n stream: contentStream,\n task,\n resources: this.resources,\n operatorList: opList\n }).then(function () {\n return opList;\n });\n });\n return Promise.all([pageListPromise, this._parsedAnnotations]).then(function ([pageOpList, annotations]) {\n if (annotations.length === 0) {\n pageOpList.flush(true);\n return {\n length: pageOpList.totalLength\n };\n }\n\n const opListPromises = [];\n\n for (const annotation of annotations) {\n if (isAnnotationRenderable(annotation, intent)) {\n opListPromises.push(annotation.getOperatorList(partialEvaluator, task, renderInteractiveForms).catch(function (reason) {\n (0, _util.warn)(\"getOperatorList - ignoring annotation data during \" + `\"${task.name}\" task: \"${reason}\".`);\n return null;\n }));\n }\n }\n\n return Promise.all(opListPromises).then(function (opLists) {\n pageOpList.addOp(_util.OPS.beginAnnotations, []);\n\n for (const opList of opLists) {\n pageOpList.addOpList(opList);\n }\n\n pageOpList.addOp(_util.OPS.endAnnotations, []);\n pageOpList.flush(true);\n return {\n length: pageOpList.totalLength\n };\n });\n });\n }\n\n extractTextContent({\n handler,\n task,\n normalizeWhitespace,\n sink,\n combineTextItems\n }) {\n const contentStreamPromise = this.pdfManager.ensure(this, \"getContentStream\");\n const resourcesPromise = this.loadResources([\"ExtGState\", \"XObject\", \"Font\"]);\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n return dataPromises.then(([contentStream]) => {\n const partialEvaluator = new _evaluator.PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this.idFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n pdfFunctionFactory: this.pdfFunctionFactory\n });\n return partialEvaluator.getTextContent({\n stream: contentStream,\n task,\n resources: this.resources,\n normalizeWhitespace,\n combineTextItems,\n sink\n });\n });\n }\n\n getAnnotationsData(intent) {\n return this._parsedAnnotations.then(function (annotations) {\n const annotationsData = [];\n\n for (let i = 0, ii = annotations.length; i < ii; i++) {\n if (!intent || isAnnotationRenderable(annotations[i], intent)) {\n annotationsData.push(annotations[i].data);\n }\n }\n\n return annotationsData;\n });\n }\n\n get annotations() {\n return (0, _util.shadow)(this, \"annotations\", this._getInheritableProperty(\"Annots\") || []);\n }\n\n get _parsedAnnotations() {\n const parsedAnnotations = this.pdfManager.ensure(this, \"annotations\").then(() => {\n const annotationPromises = [];\n\n for (const annotationRef of this.annotations) {\n annotationPromises.push(_annotation.AnnotationFactory.create(this.xref, annotationRef, this.pdfManager, this.idFactory).catch(function (reason) {\n (0, _util.warn)(`_parsedAnnotations: \"${reason}\".`);\n return null;\n }));\n }\n\n return Promise.all(annotationPromises).then(function (annotations) {\n return annotations.filter(annotation => !!annotation);\n });\n });\n return (0, _util.shadow)(this, \"_parsedAnnotations\", parsedAnnotations);\n }\n\n}\n\nexports.Page = Page;\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT = \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\nconst PDF_HEADER_VERSION_REGEXP = /^[1-9]\\.[0-9]$/;\n\nfunction find(stream, signature, limit = 1024, backwards = false) {\n const signatureLength = signature.length;\n const scanBytes = stream.peekBytes(limit);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n return false;\n }\n\n if (backwards) {\n const signatureEnd = signatureLength - 1;\n let pos = scanBytes.length - 1;\n\n while (pos >= signatureEnd) {\n let j = 0;\n\n while (j < signatureLength && scanBytes[pos - j] === signature[signatureEnd - j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n stream.pos += pos - signatureEnd;\n return true;\n }\n\n pos--;\n }\n } else {\n let pos = 0;\n\n while (pos <= scanLength) {\n let j = 0;\n\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n stream.pos += pos;\n return true;\n }\n\n pos++;\n }\n }\n\n return false;\n}\n\nclass PDFDocument {\n constructor(pdfManager, arg) {\n let stream;\n\n if ((0, _primitives.isStream)(arg)) {\n stream = arg;\n } else if ((0, _util.isArrayBuffer)(arg)) {\n stream = new _stream.Stream(arg);\n } else {\n throw new Error(\"PDFDocument: Unknown argument type\");\n }\n\n if (stream.length <= 0) {\n throw new _util.InvalidPDFException(\"The PDF file is empty, i.e. its size is zero bytes.\");\n }\n\n this.pdfManager = pdfManager;\n this.stream = stream;\n this.xref = new _obj.XRef(stream, pdfManager);\n this.pdfFunctionFactory = new _function.PDFFunctionFactory({\n xref: this.xref,\n isEvalSupported: pdfManager.evaluatorOptions.isEvalSupported\n });\n this._pagePromises = [];\n }\n\n parse(recoveryMode) {\n this.setup(recoveryMode);\n const version = this.catalog.catDict.get(\"Version\");\n\n if ((0, _primitives.isName)(version)) {\n this.pdfFormatVersion = version.name;\n }\n\n try {\n this.acroForm = this.catalog.catDict.get(\"AcroForm\");\n\n if (this.acroForm) {\n this.xfa = this.acroForm.get(\"XFA\");\n const fields = this.acroForm.get(\"Fields\");\n\n if ((!Array.isArray(fields) || fields.length === 0) && !this.xfa) {\n this.acroForm = null;\n }\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.info)(\"Cannot fetch AcroForm entry; assuming no AcroForms are present\");\n this.acroForm = null;\n }\n\n try {\n const collection = this.catalog.catDict.get(\"Collection\");\n\n if ((0, _primitives.isDict)(collection) && collection.getKeys().length > 0) {\n this.collection = collection;\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.info)(\"Cannot fetch Collection dictionary.\");\n }\n }\n\n get linearization() {\n let linearization = null;\n\n try {\n linearization = _parser.Linearization.create(this.stream);\n } catch (err) {\n if (err instanceof _core_utils.MissingDataException) {\n throw err;\n }\n\n (0, _util.info)(err);\n }\n\n return (0, _util.shadow)(this, \"linearization\", linearization);\n }\n\n get startXRef() {\n const stream = this.stream;\n let startXRef = 0;\n\n if (this.linearization) {\n stream.reset();\n\n if (find(stream, ENDOBJ_SIGNATURE)) {\n startXRef = stream.pos + 6 - stream.start;\n }\n } else {\n const step = 1024;\n const startXRefLength = STARTXREF_SIGNATURE.length;\n let found = false,\n pos = stream.end;\n\n while (!found && pos > 0) {\n pos -= step - startXRefLength;\n\n if (pos < 0) {\n pos = 0;\n }\n\n stream.pos = pos;\n found = find(stream, STARTXREF_SIGNATURE, step, true);\n }\n\n if (found) {\n stream.skip(9);\n let ch;\n\n do {\n ch = stream.getByte();\n } while ((0, _core_utils.isWhiteSpace)(ch));\n\n let str = \"\";\n\n while (ch >= 0x20 && ch <= 0x39) {\n str += String.fromCharCode(ch);\n ch = stream.getByte();\n }\n\n startXRef = parseInt(str, 10);\n\n if (isNaN(startXRef)) {\n startXRef = 0;\n }\n }\n }\n\n return (0, _util.shadow)(this, \"startXRef\", startXRef);\n }\n\n checkHeader() {\n const stream = this.stream;\n stream.reset();\n\n if (!find(stream, PDF_HEADER_SIGNATURE)) {\n return;\n }\n\n stream.moveStart();\n const MAX_PDF_VERSION_LENGTH = 12;\n let version = \"\",\n ch;\n\n while ((ch = stream.getByte()) > 0x20) {\n if (version.length >= MAX_PDF_VERSION_LENGTH) {\n break;\n }\n\n version += String.fromCharCode(ch);\n }\n\n if (!this.pdfFormatVersion) {\n this.pdfFormatVersion = version.substring(5);\n }\n }\n\n parseStartXRef() {\n this.xref.setStartXRef(this.startXRef);\n }\n\n setup(recoveryMode) {\n this.xref.parse(recoveryMode);\n this.catalog = new _obj.Catalog(this.pdfManager, this.xref);\n }\n\n get numPages() {\n const linearization = this.linearization;\n const num = linearization ? linearization.numPages : this.catalog.numPages;\n return (0, _util.shadow)(this, \"numPages\", num);\n }\n\n get documentInfo() {\n const DocumentInfoValidators = {\n Title: _util.isString,\n Author: _util.isString,\n Subject: _util.isString,\n Keywords: _util.isString,\n Creator: _util.isString,\n Producer: _util.isString,\n CreationDate: _util.isString,\n ModDate: _util.isString,\n Trapped: _primitives.isName\n };\n let version = this.pdfFormatVersion;\n\n if (typeof version !== \"string\" || !PDF_HEADER_VERSION_REGEXP.test(version)) {\n (0, _util.warn)(`Invalid PDF header version number: ${version}`);\n version = null;\n }\n\n const docInfo = {\n PDFFormatVersion: version,\n IsLinearized: !!this.linearization,\n IsAcroFormPresent: !!this.acroForm,\n IsXFAPresent: !!this.xfa,\n IsCollectionPresent: !!this.collection\n };\n let infoDict;\n\n try {\n infoDict = this.xref.trailer.get(\"Info\");\n } catch (err) {\n if (err instanceof _core_utils.MissingDataException) {\n throw err;\n }\n\n (0, _util.info)(\"The document information dictionary is invalid.\");\n }\n\n if ((0, _primitives.isDict)(infoDict)) {\n for (const key of infoDict.getKeys()) {\n const value = infoDict.get(key);\n\n if (DocumentInfoValidators[key]) {\n if (DocumentInfoValidators[key](value)) {\n docInfo[key] = typeof value !== \"string\" ? value : (0, _util.stringToPDFString)(value);\n } else {\n (0, _util.info)(`Bad value in document info for \"${key}\".`);\n }\n } else if (typeof key === \"string\") {\n let customValue;\n\n if ((0, _util.isString)(value)) {\n customValue = (0, _util.stringToPDFString)(value);\n } else if ((0, _primitives.isName)(value) || (0, _util.isNum)(value) || (0, _util.isBool)(value)) {\n customValue = value;\n } else {\n (0, _util.info)(`Unsupported value in document info for (custom) \"${key}\".`);\n continue;\n }\n\n if (!docInfo.Custom) {\n docInfo.Custom = Object.create(null);\n }\n\n docInfo.Custom[key] = customValue;\n }\n }\n }\n\n return (0, _util.shadow)(this, \"documentInfo\", docInfo);\n }\n\n get fingerprint() {\n let hash;\n const idArray = this.xref.trailer.get(\"ID\");\n\n if (Array.isArray(idArray) && idArray[0] && (0, _util.isString)(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) {\n hash = (0, _util.stringToBytes)(idArray[0]);\n } else {\n hash = (0, _crypto.calculateMD5)(this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);\n }\n\n const fingerprintBuf = [];\n\n for (let i = 0, ii = hash.length; i < ii; i++) {\n const hex = hash[i].toString(16);\n fingerprintBuf.push(hex.padStart(2, \"0\"));\n }\n\n return (0, _util.shadow)(this, \"fingerprint\", fingerprintBuf.join(\"\"));\n }\n\n _getLinearizationPage(pageIndex) {\n const {\n catalog,\n linearization\n } = this;\n\n const ref = _primitives.Ref.get(linearization.objectNumberFirst, 0);\n\n return this.xref.fetchAsync(ref).then(obj => {\n if ((0, _primitives.isDict)(obj, \"Page\") || (0, _primitives.isDict)(obj) && !obj.has(\"Type\") && obj.has(\"Contents\")) {\n if (ref && !catalog.pageKidsCountCache.has(ref)) {\n catalog.pageKidsCountCache.put(ref, 1);\n }\n\n return [obj, ref];\n }\n\n throw new _util.FormatError(\"The Linearization dictionary doesn't point \" + \"to a valid Page dictionary.\");\n }).catch(reason => {\n (0, _util.info)(reason);\n return catalog.getPageDict(pageIndex);\n });\n }\n\n getPage(pageIndex) {\n if (this._pagePromises[pageIndex] !== undefined) {\n return this._pagePromises[pageIndex];\n }\n\n const {\n catalog,\n linearization\n } = this;\n const promise = linearization && linearization.pageFirst === pageIndex ? this._getLinearizationPage(pageIndex) : catalog.getPageDict(pageIndex);\n return this._pagePromises[pageIndex] = promise.then(([pageDict, ref]) => {\n return new Page({\n pdfManager: this.pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n globalImageCache: catalog.globalImageCache,\n pdfFunctionFactory: this.pdfFunctionFactory\n });\n });\n }\n\n checkFirstPage() {\n return this.getPage(0).catch(async reason => {\n if (reason instanceof _core_utils.XRefEntryException) {\n this._pagePromises.length = 0;\n await this.cleanup();\n throw new _core_utils.XRefParseException();\n }\n });\n }\n\n fontFallback(id, handler) {\n return this.catalog.fontFallback(id, handler);\n }\n\n async cleanup(manuallyTriggered = false) {\n return this.catalog ? this.catalog.cleanup(manuallyTriggered) : (0, _primitives.clearPrimitiveCaches)();\n }\n\n}\n\nexports.PDFDocument = PDFDocument;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _crypto = __w_pdfjs_require__(22);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _image_utils = __w_pdfjs_require__(24);\n\nfunction fetchDestination(dest) {\n return (0, _primitives.isDict)(dest) ? dest.get(\"D\") : dest;\n}\n\nclass Catalog {\n constructor(pdfManager, xref) {\n this.pdfManager = pdfManager;\n this.xref = xref;\n this.catDict = xref.getCatalogObj();\n\n if (!(0, _primitives.isDict)(this.catDict)) {\n throw new _util.FormatError(\"Catalog object is not a dictionary.\");\n }\n\n this.fontCache = new _primitives.RefSetCache();\n this.builtInCMapCache = new Map();\n this.globalImageCache = new _image_utils.GlobalImageCache();\n this.pageKidsCountCache = new _primitives.RefSetCache();\n }\n\n get metadata() {\n const streamRef = this.catDict.getRaw(\"Metadata\");\n\n if (!(0, _primitives.isRef)(streamRef)) {\n return (0, _util.shadow)(this, \"metadata\", null);\n }\n\n const suppressEncryption = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata);\n const stream = this.xref.fetch(streamRef, suppressEncryption);\n let metadata;\n\n if (stream && (0, _primitives.isDict)(stream.dict)) {\n const type = stream.dict.get(\"Type\");\n const subtype = stream.dict.get(\"Subtype\");\n\n if ((0, _primitives.isName)(type, \"Metadata\") && (0, _primitives.isName)(subtype, \"XML\")) {\n try {\n metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes()));\n } catch (e) {\n if (e instanceof _core_utils.MissingDataException) {\n throw e;\n }\n\n (0, _util.info)(\"Skipping invalid metadata.\");\n }\n }\n }\n\n return (0, _util.shadow)(this, \"metadata\", metadata);\n }\n\n get toplevelPagesDict() {\n const pagesObj = this.catDict.get(\"Pages\");\n\n if (!(0, _primitives.isDict)(pagesObj)) {\n throw new _util.FormatError(\"Invalid top-level pages dictionary.\");\n }\n\n return (0, _util.shadow)(this, \"toplevelPagesDict\", pagesObj);\n }\n\n get documentOutline() {\n let obj = null;\n\n try {\n obj = this._readDocumentOutline();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Unable to read document outline.\");\n }\n\n return (0, _util.shadow)(this, \"documentOutline\", obj);\n }\n\n _readDocumentOutline() {\n let obj = this.catDict.get(\"Outlines\");\n\n if (!(0, _primitives.isDict)(obj)) {\n return null;\n }\n\n obj = obj.getRaw(\"First\");\n\n if (!(0, _primitives.isRef)(obj)) {\n return null;\n }\n\n const root = {\n items: []\n };\n const queue = [{\n obj,\n parent: root\n }];\n const processed = new _primitives.RefSet();\n processed.put(obj);\n const xref = this.xref,\n blackColor = new Uint8ClampedArray(3);\n\n while (queue.length > 0) {\n const i = queue.shift();\n const outlineDict = xref.fetchIfRef(i.obj);\n\n if (outlineDict === null) {\n continue;\n }\n\n if (!outlineDict.has(\"Title\")) {\n throw new _util.FormatError(\"Invalid outline item encountered.\");\n }\n\n const data = {\n url: null,\n dest: null\n };\n Catalog.parseDestDictionary({\n destDict: outlineDict,\n resultObj: data,\n docBaseUrl: this.pdfManager.docBaseUrl\n });\n const title = outlineDict.get(\"Title\");\n const flags = outlineDict.get(\"F\") || 0;\n const color = outlineDict.getArray(\"C\");\n const count = outlineDict.get(\"Count\");\n let rgbColor = blackColor;\n\n if (Array.isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {\n rgbColor = _colorspace.ColorSpace.singletons.rgb.getRgb(color, 0);\n }\n\n const outlineItem = {\n dest: data.dest,\n url: data.url,\n unsafeUrl: data.unsafeUrl,\n newWindow: data.newWindow,\n title: (0, _util.stringToPDFString)(title),\n color: rgbColor,\n count: Number.isInteger(count) ? count : undefined,\n bold: !!(flags & 2),\n italic: !!(flags & 1),\n items: []\n };\n i.parent.items.push(outlineItem);\n obj = outlineDict.getRaw(\"First\");\n\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj,\n parent: outlineItem\n });\n processed.put(obj);\n }\n\n obj = outlineDict.getRaw(\"Next\");\n\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj,\n parent: i.parent\n });\n processed.put(obj);\n }\n }\n\n return root.items.length > 0 ? root.items : null;\n }\n\n get permissions() {\n let permissions = null;\n\n try {\n permissions = this._readPermissions();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Unable to read permissions.\");\n }\n\n return (0, _util.shadow)(this, \"permissions\", permissions);\n }\n\n _readPermissions() {\n const encrypt = this.xref.trailer.get(\"Encrypt\");\n\n if (!(0, _primitives.isDict)(encrypt)) {\n return null;\n }\n\n let flags = encrypt.get(\"P\");\n\n if (!(0, _util.isNum)(flags)) {\n return null;\n }\n\n flags += 2 ** 32;\n const permissions = [];\n\n for (const key in _util.PermissionFlag) {\n const value = _util.PermissionFlag[key];\n\n if (flags & value) {\n permissions.push(value);\n }\n }\n\n return permissions;\n }\n\n get numPages() {\n const obj = this.toplevelPagesDict.get(\"Count\");\n\n if (!Number.isInteger(obj)) {\n throw new _util.FormatError(\"Page count in top-level pages dictionary is not an integer.\");\n }\n\n return (0, _util.shadow)(this, \"numPages\", obj);\n }\n\n get destinations() {\n const obj = this._readDests(),\n dests = Object.create(null);\n\n if (obj instanceof NameTree) {\n const names = obj.getAll();\n\n for (const name in names) {\n dests[name] = fetchDestination(names[name]);\n }\n } else if (obj instanceof _primitives.Dict) {\n obj.forEach(function (key, value) {\n if (value) {\n dests[key] = fetchDestination(value);\n }\n });\n }\n\n return (0, _util.shadow)(this, \"destinations\", dests);\n }\n\n getDestination(destinationId) {\n const obj = this._readDests();\n\n if (obj instanceof NameTree || obj instanceof _primitives.Dict) {\n return fetchDestination(obj.get(destinationId) || null);\n }\n\n return null;\n }\n\n _readDests() {\n const obj = this.catDict.get(\"Names\");\n\n if (obj && obj.has(\"Dests\")) {\n return new NameTree(obj.getRaw(\"Dests\"), this.xref);\n } else if (this.catDict.has(\"Dests\")) {\n return this.catDict.get(\"Dests\");\n }\n\n return undefined;\n }\n\n get pageLabels() {\n let obj = null;\n\n try {\n obj = this._readPageLabels();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Unable to read page labels.\");\n }\n\n return (0, _util.shadow)(this, \"pageLabels\", obj);\n }\n\n _readPageLabels() {\n const obj = this.catDict.getRaw(\"PageLabels\");\n\n if (!obj) {\n return null;\n }\n\n const pageLabels = new Array(this.numPages);\n let style = null,\n prefix = \"\";\n const numberTree = new NumberTree(obj, this.xref);\n const nums = numberTree.getAll();\n let currentLabel = \"\",\n currentIndex = 1;\n\n for (let i = 0, ii = this.numPages; i < ii; i++) {\n if (i in nums) {\n const labelDict = nums[i];\n\n if (!(0, _primitives.isDict)(labelDict)) {\n throw new _util.FormatError(\"PageLabel is not a dictionary.\");\n }\n\n if (labelDict.has(\"Type\") && !(0, _primitives.isName)(labelDict.get(\"Type\"), \"PageLabel\")) {\n throw new _util.FormatError(\"Invalid type in PageLabel dictionary.\");\n }\n\n if (labelDict.has(\"S\")) {\n const s = labelDict.get(\"S\");\n\n if (!(0, _primitives.isName)(s)) {\n throw new _util.FormatError(\"Invalid style in PageLabel dictionary.\");\n }\n\n style = s.name;\n } else {\n style = null;\n }\n\n if (labelDict.has(\"P\")) {\n const p = labelDict.get(\"P\");\n\n if (!(0, _util.isString)(p)) {\n throw new _util.FormatError(\"Invalid prefix in PageLabel dictionary.\");\n }\n\n prefix = (0, _util.stringToPDFString)(p);\n } else {\n prefix = \"\";\n }\n\n if (labelDict.has(\"St\")) {\n const st = labelDict.get(\"St\");\n\n if (!(Number.isInteger(st) && st >= 1)) {\n throw new _util.FormatError(\"Invalid start in PageLabel dictionary.\");\n }\n\n currentIndex = st;\n } else {\n currentIndex = 1;\n }\n }\n\n switch (style) {\n case \"D\":\n currentLabel = currentIndex;\n break;\n\n case \"R\":\n case \"r\":\n currentLabel = (0, _core_utils.toRomanNumerals)(currentIndex, style === \"r\");\n break;\n\n case \"A\":\n case \"a\":\n const LIMIT = 26;\n const A_UPPER_CASE = 0x41,\n A_LOWER_CASE = 0x61;\n const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n const letterIndex = currentIndex - 1;\n const character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);\n const charBuf = [];\n\n for (let j = 0, jj = letterIndex / LIMIT | 0; j <= jj; j++) {\n charBuf.push(character);\n }\n\n currentLabel = charBuf.join(\"\");\n break;\n\n default:\n if (style) {\n throw new _util.FormatError(`Invalid style \"${style}\" in PageLabel dictionary.`);\n }\n\n currentLabel = \"\";\n }\n\n pageLabels[i] = prefix + currentLabel;\n currentIndex++;\n }\n\n return pageLabels;\n }\n\n get pageLayout() {\n const obj = this.catDict.get(\"PageLayout\");\n let pageLayout = \"\";\n\n if ((0, _primitives.isName)(obj)) {\n switch (obj.name) {\n case \"SinglePage\":\n case \"OneColumn\":\n case \"TwoColumnLeft\":\n case \"TwoColumnRight\":\n case \"TwoPageLeft\":\n case \"TwoPageRight\":\n pageLayout = obj.name;\n }\n }\n\n return (0, _util.shadow)(this, \"pageLayout\", pageLayout);\n }\n\n get pageMode() {\n const obj = this.catDict.get(\"PageMode\");\n let pageMode = \"UseNone\";\n\n if ((0, _primitives.isName)(obj)) {\n switch (obj.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"FullScreen\":\n case \"UseOC\":\n case \"UseAttachments\":\n pageMode = obj.name;\n }\n }\n\n return (0, _util.shadow)(this, \"pageMode\", pageMode);\n }\n\n get viewerPreferences() {\n const ViewerPreferencesValidators = {\n HideToolbar: _util.isBool,\n HideMenubar: _util.isBool,\n HideWindowUI: _util.isBool,\n FitWindow: _util.isBool,\n CenterWindow: _util.isBool,\n DisplayDocTitle: _util.isBool,\n NonFullScreenPageMode: _primitives.isName,\n Direction: _primitives.isName,\n ViewArea: _primitives.isName,\n ViewClip: _primitives.isName,\n PrintArea: _primitives.isName,\n PrintClip: _primitives.isName,\n PrintScaling: _primitives.isName,\n Duplex: _primitives.isName,\n PickTrayByPDFSize: _util.isBool,\n PrintPageRange: Array.isArray,\n NumCopies: Number.isInteger\n };\n const obj = this.catDict.get(\"ViewerPreferences\");\n let prefs = null;\n\n if ((0, _primitives.isDict)(obj)) {\n for (const key in ViewerPreferencesValidators) {\n if (!obj.has(key)) {\n continue;\n }\n\n const value = obj.get(key);\n\n if (!ViewerPreferencesValidators[key](value)) {\n (0, _util.info)(`Bad value in ViewerPreferences for \"${key}\".`);\n continue;\n }\n\n let prefValue;\n\n switch (key) {\n case \"NonFullScreenPageMode\":\n switch (value.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"UseOC\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"UseNone\";\n }\n\n break;\n\n case \"Direction\":\n switch (value.name) {\n case \"L2R\":\n case \"R2L\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"L2R\";\n }\n\n break;\n\n case \"ViewArea\":\n case \"ViewClip\":\n case \"PrintArea\":\n case \"PrintClip\":\n switch (value.name) {\n case \"MediaBox\":\n case \"CropBox\":\n case \"BleedBox\":\n case \"TrimBox\":\n case \"ArtBox\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"CropBox\";\n }\n\n break;\n\n case \"PrintScaling\":\n switch (value.name) {\n case \"None\":\n case \"AppDefault\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"AppDefault\";\n }\n\n break;\n\n case \"Duplex\":\n switch (value.name) {\n case \"Simplex\":\n case \"DuplexFlipShortEdge\":\n case \"DuplexFlipLongEdge\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"None\";\n }\n\n break;\n\n case \"PrintPageRange\":\n const length = value.length;\n\n if (length % 2 !== 0) {\n break;\n }\n\n const isValid = value.every((page, i, arr) => {\n return Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= this.numPages;\n });\n\n if (isValid) {\n prefValue = value;\n }\n\n break;\n\n case \"NumCopies\":\n if (value > 0) {\n prefValue = value;\n }\n\n break;\n\n default:\n if (typeof value !== \"boolean\") {\n throw new _util.FormatError(`viewerPreferences - expected a boolean value for: ${key}`);\n }\n\n prefValue = value;\n }\n\n if (prefValue !== undefined) {\n if (!prefs) {\n prefs = Object.create(null);\n }\n\n prefs[key] = prefValue;\n } else {\n (0, _util.info)(`Bad value in ViewerPreferences for \"${key}\".`);\n }\n }\n }\n\n return (0, _util.shadow)(this, \"viewerPreferences\", prefs);\n }\n\n get openAction() {\n const obj = this.catDict.get(\"OpenAction\");\n let openAction = null;\n\n if ((0, _primitives.isDict)(obj)) {\n const destDict = new _primitives.Dict(this.xref);\n destDict.set(\"A\", obj);\n const resultObj = {\n url: null,\n dest: null,\n action: null\n };\n Catalog.parseDestDictionary({\n destDict,\n resultObj\n });\n\n if (Array.isArray(resultObj.dest)) {\n if (!openAction) {\n openAction = Object.create(null);\n }\n\n openAction.dest = resultObj.dest;\n } else if (resultObj.action) {\n if (!openAction) {\n openAction = Object.create(null);\n }\n\n openAction.action = resultObj.action;\n }\n } else if (Array.isArray(obj)) {\n if (!openAction) {\n openAction = Object.create(null);\n }\n\n openAction.dest = obj;\n }\n\n return (0, _util.shadow)(this, \"openAction\", openAction);\n }\n\n get attachments() {\n const obj = this.catDict.get(\"Names\");\n let attachments = null;\n\n if (obj && obj.has(\"EmbeddedFiles\")) {\n const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n const names = nameTree.getAll();\n\n for (const name in names) {\n const fs = new FileSpec(names[name], this.xref);\n\n if (!attachments) {\n attachments = Object.create(null);\n }\n\n attachments[(0, _util.stringToPDFString)(name)] = fs.serializable;\n }\n }\n\n return (0, _util.shadow)(this, \"attachments\", attachments);\n }\n\n get javaScript() {\n const obj = this.catDict.get(\"Names\");\n let javaScript = null;\n\n function appendIfJavaScriptDict(jsDict) {\n const type = jsDict.get(\"S\");\n\n if (!(0, _primitives.isName)(type, \"JavaScript\")) {\n return;\n }\n\n let js = jsDict.get(\"JS\");\n\n if ((0, _primitives.isStream)(js)) {\n js = (0, _util.bytesToString)(js.getBytes());\n } else if (!(0, _util.isString)(js)) {\n return;\n }\n\n if (!javaScript) {\n javaScript = [];\n }\n\n javaScript.push((0, _util.stringToPDFString)(js));\n }\n\n if (obj && obj.has(\"JavaScript\")) {\n const nameTree = new NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n const names = nameTree.getAll();\n\n for (const name in names) {\n const jsDict = names[name];\n\n if ((0, _primitives.isDict)(jsDict)) {\n appendIfJavaScriptDict(jsDict);\n }\n }\n }\n\n const openAction = this.catDict.get(\"OpenAction\");\n\n if ((0, _primitives.isDict)(openAction) && (0, _primitives.isName)(openAction.get(\"S\"), \"JavaScript\")) {\n appendIfJavaScriptDict(openAction);\n }\n\n return (0, _util.shadow)(this, \"javaScript\", javaScript);\n }\n\n fontFallback(id, handler) {\n const promises = [];\n this.fontCache.forEach(function (promise) {\n promises.push(promise);\n });\n return Promise.all(promises).then(translatedFonts => {\n for (const translatedFont of translatedFonts) {\n if (translatedFont.loadedName === id) {\n translatedFont.fallback(handler);\n return;\n }\n }\n });\n }\n\n cleanup(manuallyTriggered = false) {\n (0, _primitives.clearPrimitiveCaches)();\n this.globalImageCache.clear(manuallyTriggered);\n this.pageKidsCountCache.clear();\n const promises = [];\n this.fontCache.forEach(function (promise) {\n promises.push(promise);\n });\n return Promise.all(promises).then(translatedFonts => {\n for (const {\n dict\n } of translatedFonts) {\n delete dict.translated;\n }\n\n this.fontCache.clear();\n this.builtInCMapCache.clear();\n });\n }\n\n getPageDict(pageIndex) {\n const capability = (0, _util.createPromiseCapability)();\n const nodesToVisit = [this.catDict.getRaw(\"Pages\")];\n const visitedNodes = new _primitives.RefSet();\n const xref = this.xref,\n pageKidsCountCache = this.pageKidsCountCache;\n let count,\n currentPageIndex = 0;\n\n function next() {\n while (nodesToVisit.length) {\n const currentNode = nodesToVisit.pop();\n\n if ((0, _primitives.isRef)(currentNode)) {\n count = pageKidsCountCache.get(currentNode);\n\n if (count > 0 && currentPageIndex + count < pageIndex) {\n currentPageIndex += count;\n continue;\n }\n\n if (visitedNodes.has(currentNode)) {\n capability.reject(new _util.FormatError(\"Pages tree contains circular reference.\"));\n return;\n }\n\n visitedNodes.put(currentNode);\n xref.fetchAsync(currentNode).then(function (obj) {\n if ((0, _primitives.isDict)(obj, \"Page\") || (0, _primitives.isDict)(obj) && !obj.has(\"Kids\")) {\n if (pageIndex === currentPageIndex) {\n if (currentNode && !pageKidsCountCache.has(currentNode)) {\n pageKidsCountCache.put(currentNode, 1);\n }\n\n capability.resolve([obj, currentNode]);\n } else {\n currentPageIndex++;\n next();\n }\n\n return;\n }\n\n nodesToVisit.push(obj);\n next();\n }, capability.reject);\n return;\n }\n\n if (!(0, _primitives.isDict)(currentNode)) {\n capability.reject(new _util.FormatError(\"Page dictionary kid reference points to wrong type of object.\"));\n return;\n }\n\n count = currentNode.get(\"Count\");\n\n if (Number.isInteger(count) && count >= 0) {\n const objId = currentNode.objId;\n\n if (objId && !pageKidsCountCache.has(objId)) {\n pageKidsCountCache.put(objId, count);\n }\n\n if (currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n }\n\n const kids = currentNode.get(\"Kids\");\n\n if (!Array.isArray(kids)) {\n if ((0, _primitives.isName)(currentNode.get(\"Type\"), \"Page\") || !currentNode.has(\"Type\") && currentNode.has(\"Contents\")) {\n if (currentPageIndex === pageIndex) {\n capability.resolve([currentNode, null]);\n return;\n }\n\n currentPageIndex++;\n continue;\n }\n\n capability.reject(new _util.FormatError(\"Page dictionary kids object is not an array.\"));\n return;\n }\n\n for (let last = kids.length - 1; last >= 0; last--) {\n nodesToVisit.push(kids[last]);\n }\n }\n\n capability.reject(new Error(`Page index ${pageIndex} not found.`));\n }\n\n next();\n return capability.promise;\n }\n\n getPageIndex(pageRef) {\n const xref = this.xref;\n\n function pagesBeforeRef(kidRef) {\n let total = 0,\n parentRef;\n return xref.fetchAsync(kidRef).then(function (node) {\n if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, \"Page\") && !((0, _primitives.isDict)(node) && !node.has(\"Type\") && node.has(\"Contents\"))) {\n throw new _util.FormatError(\"The reference does not point to a /Page dictionary.\");\n }\n\n if (!node) {\n return null;\n }\n\n if (!(0, _primitives.isDict)(node)) {\n throw new _util.FormatError(\"Node must be a dictionary.\");\n }\n\n parentRef = node.getRaw(\"Parent\");\n return node.getAsync(\"Parent\");\n }).then(function (parent) {\n if (!parent) {\n return null;\n }\n\n if (!(0, _primitives.isDict)(parent)) {\n throw new _util.FormatError(\"Parent must be a dictionary.\");\n }\n\n return parent.getAsync(\"Kids\");\n }).then(function (kids) {\n if (!kids) {\n return null;\n }\n\n const kidPromises = [];\n let found = false;\n\n for (let i = 0, ii = kids.length; i < ii; i++) {\n const kid = kids[i];\n\n if (!(0, _primitives.isRef)(kid)) {\n throw new _util.FormatError(\"Kid must be a reference.\");\n }\n\n if ((0, _primitives.isRefsEqual)(kid, kidRef)) {\n found = true;\n break;\n }\n\n kidPromises.push(xref.fetchAsync(kid).then(function (obj) {\n if (!(0, _primitives.isDict)(obj)) {\n throw new _util.FormatError(\"Kid node must be a dictionary.\");\n }\n\n if (obj.has(\"Count\")) {\n total += obj.get(\"Count\");\n } else {\n total++;\n }\n }));\n }\n\n if (!found) {\n throw new _util.FormatError(\"Kid reference not found in parent's kids.\");\n }\n\n return Promise.all(kidPromises).then(function () {\n return [total, parentRef];\n });\n });\n }\n\n let total = 0;\n\n function next(ref) {\n return pagesBeforeRef(ref).then(function (args) {\n if (!args) {\n return total;\n }\n\n const [count, parentRef] = args;\n total += count;\n return next(parentRef);\n });\n }\n\n return next(pageRef);\n }\n\n static parseDestDictionary(params) {\n function addDefaultProtocolToUrl(url) {\n return url.startsWith(\"www.\") ? `http://${url}` : url;\n }\n\n function tryConvertUrlEncoding(url) {\n try {\n return (0, _util.stringToUTF8String)(url);\n } catch (e) {\n return url;\n }\n }\n\n const destDict = params.destDict;\n\n if (!(0, _primitives.isDict)(destDict)) {\n (0, _util.warn)(\"parseDestDictionary: `destDict` must be a dictionary.\");\n return;\n }\n\n const resultObj = params.resultObj;\n\n if (typeof resultObj !== \"object\") {\n (0, _util.warn)(\"parseDestDictionary: `resultObj` must be an object.\");\n return;\n }\n\n const docBaseUrl = params.docBaseUrl || null;\n let action = destDict.get(\"A\"),\n url,\n dest;\n\n if (!(0, _primitives.isDict)(action) && destDict.has(\"Dest\")) {\n action = destDict.get(\"Dest\");\n }\n\n if ((0, _primitives.isDict)(action)) {\n const actionType = action.get(\"S\");\n\n if (!(0, _primitives.isName)(actionType)) {\n (0, _util.warn)(\"parseDestDictionary: Invalid type in Action dictionary.\");\n return;\n }\n\n const actionName = actionType.name;\n\n switch (actionName) {\n case \"URI\":\n url = action.get(\"URI\");\n\n if ((0, _primitives.isName)(url)) {\n url = \"/\" + url.name;\n } else if ((0, _util.isString)(url)) {\n url = addDefaultProtocolToUrl(url);\n }\n\n break;\n\n case \"GoTo\":\n dest = action.get(\"D\");\n break;\n\n case \"Launch\":\n case \"GoToR\":\n const urlDict = action.get(\"F\");\n\n if ((0, _primitives.isDict)(urlDict)) {\n url = urlDict.get(\"F\") || null;\n } else if ((0, _util.isString)(urlDict)) {\n url = urlDict;\n }\n\n let remoteDest = action.get(\"D\");\n\n if (remoteDest) {\n if ((0, _primitives.isName)(remoteDest)) {\n remoteDest = remoteDest.name;\n }\n\n if ((0, _util.isString)(url)) {\n const baseUrl = url.split(\"#\")[0];\n\n if ((0, _util.isString)(remoteDest)) {\n url = baseUrl + \"#\" + remoteDest;\n } else if (Array.isArray(remoteDest)) {\n url = baseUrl + \"#\" + JSON.stringify(remoteDest);\n }\n }\n }\n\n const newWindow = action.get(\"NewWindow\");\n\n if ((0, _util.isBool)(newWindow)) {\n resultObj.newWindow = newWindow;\n }\n\n break;\n\n case \"Named\":\n const namedAction = action.get(\"N\");\n\n if ((0, _primitives.isName)(namedAction)) {\n resultObj.action = namedAction.name;\n }\n\n break;\n\n case \"JavaScript\":\n const jsAction = action.get(\"JS\");\n let js;\n\n if ((0, _primitives.isStream)(jsAction)) {\n js = (0, _util.bytesToString)(jsAction.getBytes());\n } else if ((0, _util.isString)(jsAction)) {\n js = jsAction;\n }\n\n if (js) {\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\"];\n const regex = new RegExp(\"^\\\\s*(\" + URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") + \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\", \"i\");\n const jsUrl = regex.exec((0, _util.stringToPDFString)(js));\n\n if (jsUrl && jsUrl[2]) {\n url = jsUrl[2];\n\n if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n resultObj.newWindow = true;\n }\n\n break;\n }\n }\n\n default:\n (0, _util.warn)(`parseDestDictionary: unsupported action type \"${actionName}\".`);\n break;\n }\n } else if (destDict.has(\"Dest\")) {\n dest = destDict.get(\"Dest\");\n }\n\n if ((0, _util.isString)(url)) {\n url = tryConvertUrlEncoding(url);\n const absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl);\n\n if (absoluteUrl) {\n resultObj.url = absoluteUrl.href;\n }\n\n resultObj.unsafeUrl = url;\n }\n\n if (dest) {\n if ((0, _primitives.isName)(dest)) {\n dest = dest.name;\n }\n\n if ((0, _util.isString)(dest) || Array.isArray(dest)) {\n resultObj.dest = dest;\n }\n }\n }\n\n}\n\nexports.Catalog = Catalog;\n\nvar XRef = function XRefClosure() {\n function XRef(stream, pdfManager) {\n this.stream = stream;\n this.pdfManager = pdfManager;\n this.entries = [];\n this.xrefstms = Object.create(null);\n this._cacheMap = new Map();\n this.stats = {\n streamTypes: Object.create(null),\n fontTypes: Object.create(null)\n };\n }\n\n XRef.prototype = {\n setStartXRef: function XRef_setStartXRef(startXRef) {\n this.startXRefQueue = [startXRef];\n },\n parse: function XRef_parse(recoveryMode) {\n var trailerDict;\n\n if (!recoveryMode) {\n trailerDict = this.readXRef();\n } else {\n (0, _util.warn)(\"Indexing all PDF objects\");\n trailerDict = this.indexObjects();\n }\n\n trailerDict.assignXref(this);\n this.trailer = trailerDict;\n let encrypt;\n\n try {\n encrypt = trailerDict.get(\"Encrypt\");\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n }\n\n if ((0, _primitives.isDict)(encrypt)) {\n var ids = trailerDict.get(\"ID\");\n var fileId = ids && ids.length ? ids[0] : \"\";\n encrypt.suppressEncryption = true;\n this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password);\n }\n\n let root;\n\n try {\n root = trailerDict.get(\"Root\");\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n }\n\n if ((0, _primitives.isDict)(root) && root.has(\"Pages\")) {\n this.root = root;\n } else {\n if (!recoveryMode) {\n throw new _core_utils.XRefParseException();\n }\n\n throw new _util.FormatError(\"Invalid root reference\");\n }\n },\n processXRefTable: function XRef_processXRefTable(parser) {\n if (!(\"tableState\" in this)) {\n this.tableState = {\n entryNum: 0,\n streamPos: parser.lexer.stream.pos,\n parserBuf1: parser.buf1,\n parserBuf2: parser.buf2\n };\n }\n\n var obj = this.readXRefTable(parser);\n\n if (!(0, _primitives.isCmd)(obj, \"trailer\")) {\n throw new _util.FormatError(\"Invalid XRef table: could not find trailer dictionary\");\n }\n\n var dict = parser.getObj();\n\n if (!(0, _primitives.isDict)(dict) && dict.dict) {\n dict = dict.dict;\n }\n\n if (!(0, _primitives.isDict)(dict)) {\n throw new _util.FormatError(\"Invalid XRef table: could not parse trailer dictionary\");\n }\n\n delete this.tableState;\n return dict;\n },\n readXRefTable: function XRef_readXRefTable(parser) {\n var stream = parser.lexer.stream;\n var tableState = this.tableState;\n stream.pos = tableState.streamPos;\n parser.buf1 = tableState.parserBuf1;\n parser.buf2 = tableState.parserBuf2;\n var obj;\n\n while (true) {\n if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n if ((0, _primitives.isCmd)(obj = parser.getObj(), \"trailer\")) {\n break;\n }\n\n tableState.firstEntryNum = obj;\n tableState.entryCount = parser.getObj();\n }\n\n var first = tableState.firstEntryNum;\n var count = tableState.entryCount;\n\n if (!Number.isInteger(first) || !Number.isInteger(count)) {\n throw new _util.FormatError(\"Invalid XRef table: wrong types in subsection header\");\n }\n\n for (var i = tableState.entryNum; i < count; i++) {\n tableState.streamPos = stream.pos;\n tableState.entryNum = i;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n var entry = {};\n entry.offset = parser.getObj();\n entry.gen = parser.getObj();\n var type = parser.getObj();\n\n if (type instanceof _primitives.Cmd) {\n switch (type.cmd) {\n case \"f\":\n entry.free = true;\n break;\n\n case \"n\":\n entry.uncompressed = true;\n break;\n }\n }\n\n if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) {\n throw new _util.FormatError(`Invalid entry in XRef subsection: ${first}, ${count}`);\n }\n\n if (i === 0 && entry.free && first === 1) {\n first = 0;\n }\n\n if (!this.entries[i + first]) {\n this.entries[i + first] = entry;\n }\n }\n\n tableState.entryNum = 0;\n tableState.streamPos = stream.pos;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n delete tableState.firstEntryNum;\n delete tableState.entryCount;\n }\n\n if (this.entries[0] && !this.entries[0].free) {\n throw new _util.FormatError(\"Invalid XRef table: unexpected first object\");\n }\n\n return obj;\n },\n processXRefStream: function XRef_processXRefStream(stream) {\n if (!(\"streamState\" in this)) {\n var streamParameters = stream.dict;\n var byteWidths = streamParameters.get(\"W\");\n var range = streamParameters.get(\"Index\");\n\n if (!range) {\n range = [0, streamParameters.get(\"Size\")];\n }\n\n this.streamState = {\n entryRanges: range,\n byteWidths,\n entryNum: 0,\n streamPos: stream.pos\n };\n }\n\n this.readXRefStream(stream);\n delete this.streamState;\n return stream.dict;\n },\n readXRefStream: function XRef_readXRefStream(stream) {\n var i, j;\n var streamState = this.streamState;\n stream.pos = streamState.streamPos;\n var byteWidths = streamState.byteWidths;\n var typeFieldWidth = byteWidths[0];\n var offsetFieldWidth = byteWidths[1];\n var generationFieldWidth = byteWidths[2];\n var entryRanges = streamState.entryRanges;\n\n while (entryRanges.length > 0) {\n var first = entryRanges[0];\n var n = entryRanges[1];\n\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new _util.FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n }\n\n if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) {\n throw new _util.FormatError(`Invalid XRef entry fields length: ${first}, ${n}`);\n }\n\n for (i = streamState.entryNum; i < n; ++i) {\n streamState.entryNum = i;\n streamState.streamPos = stream.pos;\n var type = 0,\n offset = 0,\n generation = 0;\n\n for (j = 0; j < typeFieldWidth; ++j) {\n type = type << 8 | stream.getByte();\n }\n\n if (typeFieldWidth === 0) {\n type = 1;\n }\n\n for (j = 0; j < offsetFieldWidth; ++j) {\n offset = offset << 8 | stream.getByte();\n }\n\n for (j = 0; j < generationFieldWidth; ++j) {\n generation = generation << 8 | stream.getByte();\n }\n\n var entry = {};\n entry.offset = offset;\n entry.gen = generation;\n\n switch (type) {\n case 0:\n entry.free = true;\n break;\n\n case 1:\n entry.uncompressed = true;\n break;\n\n case 2:\n break;\n\n default:\n throw new _util.FormatError(`Invalid XRef entry type: ${type}`);\n }\n\n if (!this.entries[first + i]) {\n this.entries[first + i] = entry;\n }\n }\n\n streamState.entryNum = 0;\n streamState.streamPos = stream.pos;\n entryRanges.splice(0, 2);\n }\n },\n indexObjects: function XRef_indexObjects() {\n var TAB = 0x9,\n LF = 0xa,\n CR = 0xd,\n SPACE = 0x20;\n var PERCENT = 0x25,\n LT = 0x3c;\n\n function readToken(data, offset) {\n var token = \"\",\n ch = data[offset];\n\n while (ch !== LF && ch !== CR && ch !== LT) {\n if (++offset >= data.length) {\n break;\n }\n\n token += String.fromCharCode(ch);\n ch = data[offset];\n }\n\n return token;\n }\n\n function skipUntil(data, offset, what) {\n var length = what.length,\n dataLength = data.length;\n var skipped = 0;\n\n while (offset < dataLength) {\n var i = 0;\n\n while (i < length && data[offset + i] === what[i]) {\n ++i;\n }\n\n if (i >= length) {\n break;\n }\n\n offset++;\n skipped++;\n }\n\n return skipped;\n }\n\n var objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n const endobjRegExp = /\\bendobj[\\b\\s]$/;\n const nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s<])$/;\n const CHECK_CONTENT_LENGTH = 25;\n var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]);\n const objBytes = new Uint8Array([111, 98, 106]);\n var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n this.entries.length = 0;\n var stream = this.stream;\n stream.pos = 0;\n var buffer = stream.getBytes();\n var position = stream.start,\n length = buffer.length;\n var trailers = [],\n xrefStms = [];\n\n while (position < length) {\n var ch = buffer[position];\n\n if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n ++position;\n continue;\n }\n\n if (ch === PERCENT) {\n do {\n ++position;\n\n if (position >= length) {\n break;\n }\n\n ch = buffer[position];\n } while (ch !== LF && ch !== CR);\n\n continue;\n }\n\n var token = readToken(buffer, position);\n var m;\n\n if (token.startsWith(\"xref\") && (token.length === 4 || /\\s/.test(token[4]))) {\n position += skipUntil(buffer, position, trailerBytes);\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else if (m = objRegExp.exec(token)) {\n const num = m[1] | 0,\n gen = m[2] | 0;\n\n if (!this.entries[num] || this.entries[num].gen === gen) {\n this.entries[num] = {\n offset: position - stream.start,\n gen,\n uncompressed: true\n };\n }\n\n let contentLength,\n startPos = position + token.length;\n\n while (startPos < buffer.length) {\n const endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n contentLength = endPos - position;\n const checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n const tokenStr = (0, _util.bytesToString)(buffer.subarray(checkPos, endPos));\n\n if (endobjRegExp.test(tokenStr)) {\n break;\n } else {\n const objToken = nestedObjRegExp.exec(tokenStr);\n\n if (objToken && objToken[1]) {\n (0, _util.warn)('indexObjects: Found new \"obj\" inside of another \"obj\", ' + 'caused by missing \"endobj\" -- trying to recover.');\n contentLength -= objToken[1].length;\n break;\n }\n }\n\n startPos = endPos;\n }\n\n const content = buffer.subarray(position, position + contentLength);\n var xrefTagOffset = skipUntil(content, 0, xrefBytes);\n\n if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n xrefStms.push(position - stream.start);\n this.xrefstms[position - stream.start] = 1;\n }\n\n position += contentLength;\n } else if (token.startsWith(\"trailer\") && (token.length === 7 || /\\s/.test(token[7]))) {\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else {\n position += token.length + 1;\n }\n }\n\n var i, ii;\n\n for (i = 0, ii = xrefStms.length; i < ii; ++i) {\n this.startXRefQueue.push(xrefStms[i]);\n this.readXRef(true);\n }\n\n let trailerDict;\n\n for (i = 0, ii = trailers.length; i < ii; ++i) {\n stream.pos = trailers[i];\n const parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true,\n recoveryMode: true\n });\n var obj = parser.getObj();\n\n if (!(0, _primitives.isCmd)(obj, \"trailer\")) {\n continue;\n }\n\n const dict = parser.getObj();\n\n if (!(0, _primitives.isDict)(dict)) {\n continue;\n }\n\n let rootDict;\n\n try {\n rootDict = dict.get(\"Root\");\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n continue;\n }\n\n if (!(0, _primitives.isDict)(rootDict) || !rootDict.has(\"Pages\")) {\n continue;\n }\n\n if (dict.has(\"ID\")) {\n return dict;\n }\n\n trailerDict = dict;\n }\n\n if (trailerDict) {\n return trailerDict;\n }\n\n throw new _util.InvalidPDFException(\"Invalid PDF structure.\");\n },\n readXRef: function XRef_readXRef(recoveryMode) {\n var stream = this.stream;\n const startXRefParsedCache = Object.create(null);\n\n try {\n while (this.startXRefQueue.length) {\n var startXRef = this.startXRefQueue[0];\n\n if (startXRefParsedCache[startXRef]) {\n (0, _util.warn)(\"readXRef - skipping XRef table since it was already parsed.\");\n this.startXRefQueue.shift();\n continue;\n }\n\n startXRefParsedCache[startXRef] = true;\n stream.pos = startXRef + stream.start;\n const parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true\n });\n var obj = parser.getObj();\n var dict;\n\n if ((0, _primitives.isCmd)(obj, \"xref\")) {\n dict = this.processXRefTable(parser);\n\n if (!this.topDict) {\n this.topDict = dict;\n }\n\n obj = dict.get(\"XRefStm\");\n\n if (Number.isInteger(obj)) {\n var pos = obj;\n\n if (!(pos in this.xrefstms)) {\n this.xrefstms[pos] = 1;\n this.startXRefQueue.push(pos);\n }\n }\n } else if (Number.isInteger(obj)) {\n if (!Number.isInteger(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), \"obj\") || !(0, _primitives.isStream)(obj = parser.getObj())) {\n throw new _util.FormatError(\"Invalid XRef stream\");\n }\n\n dict = this.processXRefStream(obj);\n\n if (!this.topDict) {\n this.topDict = dict;\n }\n\n if (!dict) {\n throw new _util.FormatError(\"Failed to read XRef stream\");\n }\n } else {\n throw new _util.FormatError(\"Invalid XRef stream header\");\n }\n\n obj = dict.get(\"Prev\");\n\n if (Number.isInteger(obj)) {\n this.startXRefQueue.push(obj);\n } else if ((0, _primitives.isRef)(obj)) {\n this.startXRefQueue.push(obj.num);\n }\n\n this.startXRefQueue.shift();\n }\n\n return this.topDict;\n } catch (e) {\n if (e instanceof _core_utils.MissingDataException) {\n throw e;\n }\n\n (0, _util.info)(\"(while reading XRef): \" + e);\n }\n\n if (recoveryMode) {\n return undefined;\n }\n\n throw new _core_utils.XRefParseException();\n },\n getEntry: function XRef_getEntry(i) {\n var xrefEntry = this.entries[i];\n\n if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n return xrefEntry;\n }\n\n return null;\n },\n fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) {\n if (obj instanceof _primitives.Ref) {\n return this.fetch(obj, suppressEncryption);\n }\n\n return obj;\n },\n fetch: function XRef_fetch(ref, suppressEncryption) {\n if (!(ref instanceof _primitives.Ref)) {\n throw new Error(\"ref object is not a reference\");\n }\n\n const num = ref.num;\n\n const cacheEntry = this._cacheMap.get(num);\n\n if (cacheEntry !== undefined) {\n if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) {\n cacheEntry.objId = ref.toString();\n }\n\n return cacheEntry;\n }\n\n let xrefEntry = this.getEntry(num);\n\n if (xrefEntry === null) {\n this._cacheMap.set(num, xrefEntry);\n\n return xrefEntry;\n }\n\n if (xrefEntry.uncompressed) {\n xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n } else {\n xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n }\n\n if ((0, _primitives.isDict)(xrefEntry)) {\n xrefEntry.objId = ref.toString();\n } else if ((0, _primitives.isStream)(xrefEntry)) {\n xrefEntry.dict.objId = ref.toString();\n }\n\n return xrefEntry;\n },\n\n fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n var gen = ref.gen;\n var num = ref.num;\n\n if (xrefEntry.gen !== gen) {\n throw new _core_utils.XRefEntryException(`Inconsistent generation in XRef: ${ref}`);\n }\n\n var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);\n const parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true\n });\n var obj1 = parser.getObj();\n var obj2 = parser.getObj();\n var obj3 = parser.getObj();\n\n if (obj1 !== num || obj2 !== gen || !(obj3 instanceof _primitives.Cmd)) {\n throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n\n if (obj3.cmd !== \"obj\") {\n if (obj3.cmd.startsWith(\"obj\")) {\n num = parseInt(obj3.cmd.substring(3), 10);\n\n if (!Number.isNaN(num)) {\n return num;\n }\n }\n\n throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n\n if (this.encrypt && !suppressEncryption) {\n xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n } else {\n xrefEntry = parser.getObj();\n }\n\n if (!(0, _primitives.isStream)(xrefEntry)) {\n this._cacheMap.set(num, xrefEntry);\n }\n\n return xrefEntry;\n },\n\n fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n const tableOffset = xrefEntry.offset;\n const stream = this.fetch(_primitives.Ref.get(tableOffset, 0));\n\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError(\"bad ObjStm stream\");\n }\n\n const first = stream.dict.get(\"First\");\n const n = stream.dict.get(\"N\");\n\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new _util.FormatError(\"invalid first and n parameters for ObjStm stream\");\n }\n\n const parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true\n });\n const nums = new Array(n);\n\n for (let i = 0; i < n; ++i) {\n const num = parser.getObj();\n\n if (!Number.isInteger(num)) {\n throw new _util.FormatError(`invalid object number in the ObjStm stream: ${num}`);\n }\n\n const offset = parser.getObj();\n\n if (!Number.isInteger(offset)) {\n throw new _util.FormatError(`invalid object offset in the ObjStm stream: ${offset}`);\n }\n\n nums[i] = num;\n }\n\n const entries = new Array(n);\n\n for (let i = 0; i < n; ++i) {\n const obj = parser.getObj();\n entries[i] = obj;\n\n if (parser.buf1 instanceof _primitives.Cmd && parser.buf1.cmd === \"endobj\") {\n parser.shift();\n }\n\n if ((0, _primitives.isStream)(obj)) {\n continue;\n }\n\n const num = nums[i],\n entry = this.entries[num];\n\n if (entry && entry.offset === tableOffset && entry.gen === i) {\n this._cacheMap.set(num, obj);\n }\n }\n\n xrefEntry = entries[xrefEntry.gen];\n\n if (xrefEntry === undefined) {\n throw new _core_utils.XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n }\n\n return xrefEntry;\n },\n\n async fetchIfRefAsync(obj, suppressEncryption) {\n if (obj instanceof _primitives.Ref) {\n return this.fetchAsync(obj, suppressEncryption);\n }\n\n return obj;\n },\n\n async fetchAsync(ref, suppressEncryption) {\n try {\n return this.fetch(ref, suppressEncryption);\n } catch (ex) {\n if (!(ex instanceof _core_utils.MissingDataException)) {\n throw ex;\n }\n\n await this.pdfManager.requestRange(ex.begin, ex.end);\n return this.fetchAsync(ref, suppressEncryption);\n }\n },\n\n getCatalogObj: function XRef_getCatalogObj() {\n return this.root;\n }\n };\n return XRef;\n}();\n\nexports.XRef = XRef;\n\nclass NameOrNumberTree {\n constructor(root, xref, type) {\n if (this.constructor === NameOrNumberTree) {\n (0, _util.unreachable)(\"Cannot initialize NameOrNumberTree.\");\n }\n\n this.root = root;\n this.xref = xref;\n this._type = type;\n }\n\n getAll() {\n const dict = Object.create(null);\n\n if (!this.root) {\n return dict;\n }\n\n const xref = this.xref;\n const processed = new _primitives.RefSet();\n processed.put(this.root);\n const queue = [this.root];\n\n while (queue.length > 0) {\n const obj = xref.fetchIfRef(queue.shift());\n\n if (!(0, _primitives.isDict)(obj)) {\n continue;\n }\n\n if (obj.has(\"Kids\")) {\n const kids = obj.get(\"Kids\");\n\n for (let i = 0, ii = kids.length; i < ii; i++) {\n const kid = kids[i];\n\n if (processed.has(kid)) {\n throw new _util.FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n }\n\n queue.push(kid);\n processed.put(kid);\n }\n\n continue;\n }\n\n const entries = obj.get(this._type);\n\n if (Array.isArray(entries)) {\n for (let i = 0, ii = entries.length; i < ii; i += 2) {\n dict[xref.fetchIfRef(entries[i])] = xref.fetchIfRef(entries[i + 1]);\n }\n }\n }\n\n return dict;\n }\n\n get(key) {\n if (!this.root) {\n return null;\n }\n\n const xref = this.xref;\n let kidsOrEntries = xref.fetchIfRef(this.root);\n let loopCount = 0;\n const MAX_LEVELS = 10;\n\n while (kidsOrEntries.has(\"Kids\")) {\n if (++loopCount > MAX_LEVELS) {\n (0, _util.warn)(`Search depth limit reached for \"${this._type}\" tree.`);\n return null;\n }\n\n const kids = kidsOrEntries.get(\"Kids\");\n\n if (!Array.isArray(kids)) {\n return null;\n }\n\n let l = 0,\n r = kids.length - 1;\n\n while (l <= r) {\n const m = l + r >> 1;\n const kid = xref.fetchIfRef(kids[m]);\n const limits = kid.get(\"Limits\");\n\n if (key < xref.fetchIfRef(limits[0])) {\n r = m - 1;\n } else if (key > xref.fetchIfRef(limits[1])) {\n l = m + 1;\n } else {\n kidsOrEntries = xref.fetchIfRef(kids[m]);\n break;\n }\n }\n\n if (l > r) {\n return null;\n }\n }\n\n const entries = kidsOrEntries.get(this._type);\n\n if (Array.isArray(entries)) {\n let l = 0,\n r = entries.length - 2;\n\n while (l <= r) {\n const tmp = l + r >> 1,\n m = tmp + (tmp & 1);\n const currentKey = xref.fetchIfRef(entries[m]);\n\n if (key < currentKey) {\n r = m - 2;\n } else if (key > currentKey) {\n l = m + 2;\n } else {\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n\n (0, _util.info)(`Falling back to an exhaustive search, for key \"${key}\", ` + `in \"${this._type}\" tree.`);\n\n for (let m = 0, mm = entries.length; m < mm; m += 2) {\n const currentKey = xref.fetchIfRef(entries[m]);\n\n if (currentKey === key) {\n (0, _util.warn)(`The \"${key}\" key was found at an incorrect, ` + `i.e. out-of-order, position in \"${this._type}\" tree.`);\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n }\n\n return null;\n }\n\n}\n\nclass NameTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Names\");\n }\n\n}\n\nclass NumberTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Nums\");\n }\n\n}\n\nvar FileSpec = function FileSpecClosure() {\n function FileSpec(root, xref) {\n if (!root || !(0, _primitives.isDict)(root)) {\n return;\n }\n\n this.xref = xref;\n this.root = root;\n\n if (root.has(\"FS\")) {\n this.fs = root.get(\"FS\");\n }\n\n this.description = root.has(\"Desc\") ? (0, _util.stringToPDFString)(root.get(\"Desc\")) : \"\";\n\n if (root.has(\"RF\")) {\n (0, _util.warn)(\"Related file specifications are not supported\");\n }\n\n this.contentAvailable = true;\n\n if (!root.has(\"EF\")) {\n this.contentAvailable = false;\n (0, _util.warn)(\"Non-embedded file specifications are not supported\");\n }\n }\n\n function pickPlatformItem(dict) {\n if (dict.has(\"UF\")) {\n return dict.get(\"UF\");\n } else if (dict.has(\"F\")) {\n return dict.get(\"F\");\n } else if (dict.has(\"Unix\")) {\n return dict.get(\"Unix\");\n } else if (dict.has(\"Mac\")) {\n return dict.get(\"Mac\");\n } else if (dict.has(\"DOS\")) {\n return dict.get(\"DOS\");\n }\n\n return null;\n }\n\n FileSpec.prototype = {\n get filename() {\n if (!this._filename && this.root) {\n var filename = pickPlatformItem(this.root) || \"unnamed\";\n this._filename = (0, _util.stringToPDFString)(filename).replace(/\\\\\\\\/g, \"\\\\\").replace(/\\\\\\//g, \"/\").replace(/\\\\/g, \"/\");\n }\n\n return this._filename;\n },\n\n get content() {\n if (!this.contentAvailable) {\n return null;\n }\n\n if (!this.contentRef && this.root) {\n this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n }\n\n var content = null;\n\n if (this.contentRef) {\n var xref = this.xref;\n var fileObj = xref.fetchIfRef(this.contentRef);\n\n if (fileObj && (0, _primitives.isStream)(fileObj)) {\n content = fileObj.getBytes();\n } else {\n (0, _util.warn)(\"Embedded file specification points to non-existing/invalid \" + \"content\");\n }\n } else {\n (0, _util.warn)(\"Embedded file specification does not have a content\");\n }\n\n return content;\n },\n\n get serializable() {\n return {\n filename: this.filename,\n content: this.content\n };\n }\n\n };\n return FileSpec;\n}();\n\nexports.FileSpec = FileSpec;\n\nconst ObjectLoader = function () {\n function mayHaveChildren(value) {\n return value instanceof _primitives.Ref || value instanceof _primitives.Dict || Array.isArray(value) || (0, _primitives.isStream)(value);\n }\n\n function addChildren(node, nodesToVisit) {\n if (node instanceof _primitives.Dict || (0, _primitives.isStream)(node)) {\n const dict = node instanceof _primitives.Dict ? node : node.dict;\n const dictKeys = dict.getKeys();\n\n for (let i = 0, ii = dictKeys.length; i < ii; i++) {\n const rawValue = dict.getRaw(dictKeys[i]);\n\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\n }\n }\n } else if (Array.isArray(node)) {\n for (let i = 0, ii = node.length; i < ii; i++) {\n const value = node[i];\n\n if (mayHaveChildren(value)) {\n nodesToVisit.push(value);\n }\n }\n }\n }\n\n function ObjectLoader(dict, keys, xref) {\n this.dict = dict;\n this.keys = keys;\n this.xref = xref;\n this.refSet = null;\n }\n\n ObjectLoader.prototype = {\n async load() {\n if (!this.xref.stream.allChunksLoaded || this.xref.stream.allChunksLoaded()) {\n return undefined;\n }\n\n const {\n keys,\n dict\n } = this;\n this.refSet = new _primitives.RefSet();\n const nodesToVisit = [];\n\n for (let i = 0, ii = keys.length; i < ii; i++) {\n const rawValue = dict.getRaw(keys[i]);\n\n if (rawValue !== undefined) {\n nodesToVisit.push(rawValue);\n }\n }\n\n return this._walk(nodesToVisit);\n },\n\n async _walk(nodesToVisit) {\n const nodesToRevisit = [];\n const pendingRequests = [];\n\n while (nodesToVisit.length) {\n let currentNode = nodesToVisit.pop();\n\n if (currentNode instanceof _primitives.Ref) {\n if (this.refSet.has(currentNode)) {\n continue;\n }\n\n try {\n this.refSet.put(currentNode);\n currentNode = this.xref.fetch(currentNode);\n } catch (ex) {\n if (!(ex instanceof _core_utils.MissingDataException)) {\n throw ex;\n }\n\n nodesToRevisit.push(currentNode);\n pendingRequests.push({\n begin: ex.begin,\n end: ex.end\n });\n }\n }\n\n if (currentNode && currentNode.getBaseStreams) {\n const baseStreams = currentNode.getBaseStreams();\n let foundMissingData = false;\n\n for (let i = 0, ii = baseStreams.length; i < ii; i++) {\n const stream = baseStreams[i];\n\n if (stream.allChunksLoaded && !stream.allChunksLoaded()) {\n foundMissingData = true;\n pendingRequests.push({\n begin: stream.start,\n end: stream.end\n });\n }\n }\n\n if (foundMissingData) {\n nodesToRevisit.push(currentNode);\n }\n }\n\n addChildren(currentNode, nodesToVisit);\n }\n\n if (pendingRequests.length) {\n await this.xref.stream.manager.requestRanges(pendingRequests);\n\n for (let i = 0, ii = nodesToRevisit.length; i < ii; i++) {\n const node = nodesToRevisit[i];\n\n if (node instanceof _primitives.Ref) {\n this.refSet.remove(node);\n }\n }\n\n return this._walk(nodesToRevisit);\n }\n\n this.refSet = null;\n return undefined;\n }\n\n };\n return ObjectLoader;\n}();\n\nexports.ObjectLoader = ObjectLoader;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Parser = exports.Linearization = exports.Lexer = void 0;\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _ccitt_stream = __w_pdfjs_require__(13);\n\nvar _jbig2_stream = __w_pdfjs_require__(15);\n\nvar _jpeg_stream = __w_pdfjs_require__(18);\n\nvar _jpx_stream = __w_pdfjs_require__(20);\n\nconst MAX_LENGTH_TO_CACHE = 1000;\nconst MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n const bytesLength = bytes.length;\n let a = 1,\n b = 0;\n\n for (let i = 0; i < bytesLength; ++i) {\n a += bytes[i] & 0xff;\n b += a;\n }\n\n return b % 65521 << 16 | a % 65521;\n}\n\nclass Parser {\n constructor({\n lexer,\n xref,\n allowStreams = false,\n recoveryMode = false\n }) {\n this.lexer = lexer;\n this.xref = xref;\n this.allowStreams = allowStreams;\n this.recoveryMode = recoveryMode;\n this.imageCache = Object.create(null);\n this.refill();\n }\n\n refill() {\n this.buf1 = this.lexer.getObj();\n this.buf2 = this.lexer.getObj();\n }\n\n shift() {\n if (this.buf2 instanceof _primitives.Cmd && this.buf2.cmd === \"ID\") {\n this.buf1 = this.buf2;\n this.buf2 = null;\n } else {\n this.buf1 = this.buf2;\n this.buf2 = this.lexer.getObj();\n }\n }\n\n tryShift() {\n try {\n this.shift();\n return true;\n } catch (e) {\n if (e instanceof _core_utils.MissingDataException) {\n throw e;\n }\n\n return false;\n }\n }\n\n getObj(cipherTransform = null) {\n const buf1 = this.buf1;\n this.shift();\n\n if (buf1 instanceof _primitives.Cmd) {\n switch (buf1.cmd) {\n case \"BI\":\n return this.makeInlineImage(cipherTransform);\n\n case \"[\":\n const array = [];\n\n while (!(0, _primitives.isCmd)(this.buf1, \"]\") && !(0, _primitives.isEOF)(this.buf1)) {\n array.push(this.getObj(cipherTransform));\n }\n\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError(\"End of file inside array\");\n }\n\n return array;\n }\n\n this.shift();\n return array;\n\n case \"<<\":\n const dict = new _primitives.Dict(this.xref);\n\n while (!(0, _primitives.isCmd)(this.buf1, \">>\") && !(0, _primitives.isEOF)(this.buf1)) {\n if (!(0, _primitives.isName)(this.buf1)) {\n (0, _util.info)(\"Malformed dictionary: key must be a name object\");\n this.shift();\n continue;\n }\n\n const key = this.buf1.name;\n this.shift();\n\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n\n dict.set(key, this.getObj(cipherTransform));\n }\n\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError(\"End of file inside dictionary\");\n }\n\n return dict;\n }\n\n if ((0, _primitives.isCmd)(this.buf2, \"stream\")) {\n return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict;\n }\n\n this.shift();\n return dict;\n\n default:\n return buf1;\n }\n }\n\n if (Number.isInteger(buf1)) {\n if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, \"R\")) {\n const ref = _primitives.Ref.get(buf1, this.buf1);\n\n this.shift();\n this.shift();\n return ref;\n }\n\n return buf1;\n }\n\n if (typeof buf1 === \"string\") {\n if (cipherTransform) {\n return cipherTransform.decryptString(buf1);\n }\n\n return buf1;\n }\n\n return buf1;\n }\n\n findDefaultInlineStreamEnd(stream) {\n const E = 0x45,\n I = 0x49,\n SPACE = 0x20,\n LF = 0xa,\n CR = 0xd;\n const n = 10,\n NUL = 0x0;\n const startPos = stream.pos;\n let state = 0,\n ch,\n maybeEIPos;\n\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else {\n (0, _util.assert)(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n\n if (ch === SPACE || ch === LF || ch === CR) {\n maybeEIPos = stream.pos;\n const followingBytes = stream.peekBytes(n);\n\n for (let i = 0, ii = followingBytes.length; i < ii; i++) {\n ch = followingBytes[i];\n\n if (ch === NUL && followingBytes[i + 1] !== NUL) {\n continue;\n }\n\n if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n state = 0;\n break;\n }\n }\n\n if (state === 2) {\n break;\n }\n } else {\n state = 0;\n }\n }\n }\n\n if (ch === -1) {\n (0, _util.warn)(\"findDefaultInlineStreamEnd: \" + \"Reached the end of the stream without finding a valid EI marker\");\n\n if (maybeEIPos) {\n (0, _util.warn)('... trying to recover by using the last \"EI\" occurrence.');\n stream.skip(-(stream.pos - maybeEIPos));\n }\n }\n\n let endOffset = 4;\n stream.skip(-endOffset);\n ch = stream.peekByte();\n stream.skip(endOffset);\n\n if (!(0, _core_utils.isWhiteSpace)(ch)) {\n endOffset--;\n }\n\n return stream.pos - endOffset - startPos;\n }\n\n findDCTDecodeInlineStreamEnd(stream) {\n const startPos = stream.pos;\n let foundEOI = false,\n b,\n markerLength;\n\n while ((b = stream.getByte()) !== -1) {\n if (b !== 0xff) {\n continue;\n }\n\n switch (stream.getByte()) {\n case 0x00:\n break;\n\n case 0xff:\n stream.skip(-1);\n break;\n\n case 0xd9:\n foundEOI = true;\n break;\n\n case 0xc0:\n case 0xc1:\n case 0xc2:\n case 0xc3:\n case 0xc5:\n case 0xc6:\n case 0xc7:\n case 0xc9:\n case 0xca:\n case 0xcb:\n case 0xcd:\n case 0xce:\n case 0xcf:\n case 0xc4:\n case 0xcc:\n case 0xda:\n case 0xdb:\n case 0xdc:\n case 0xdd:\n case 0xde:\n case 0xdf:\n case 0xe0:\n case 0xe1:\n case 0xe2:\n case 0xe3:\n case 0xe4:\n case 0xe5:\n case 0xe6:\n case 0xe7:\n case 0xe8:\n case 0xe9:\n case 0xea:\n case 0xeb:\n case 0xec:\n case 0xed:\n case 0xee:\n case 0xef:\n case 0xfe:\n markerLength = stream.getUint16();\n\n if (markerLength > 2) {\n stream.skip(markerLength - 2);\n } else {\n stream.skip(-2);\n }\n\n break;\n }\n\n if (foundEOI) {\n break;\n }\n }\n\n const length = stream.pos - startPos;\n\n if (b === -1) {\n (0, _util.warn)(\"Inline DCTDecode image stream: \" + \"EOI marker not found, searching for /EI/ instead.\");\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n findASCII85DecodeInlineStreamEnd(stream) {\n const TILDE = 0x7e,\n GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n\n while ((ch = stream.getByte()) !== -1) {\n if (ch === TILDE) {\n const tildePos = stream.pos;\n ch = stream.peekByte();\n\n while ((0, _core_utils.isWhiteSpace)(ch)) {\n stream.skip();\n ch = stream.peekByte();\n }\n\n if (ch === GT) {\n stream.skip();\n break;\n }\n\n if (stream.pos > tildePos) {\n const maybeEI = stream.peekBytes(2);\n\n if (maybeEI[0] === 0x45 && maybeEI[1] === 0x49) {\n break;\n }\n }\n }\n }\n\n const length = stream.pos - startPos;\n\n if (ch === -1) {\n (0, _util.warn)(\"Inline ASCII85Decode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n findASCIIHexDecodeInlineStreamEnd(stream) {\n const GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n\n while ((ch = stream.getByte()) !== -1) {\n if (ch === GT) {\n break;\n }\n }\n\n const length = stream.pos - startPos;\n\n if (ch === -1) {\n (0, _util.warn)(\"Inline ASCIIHexDecode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n inlineStreamSkipEI(stream) {\n const E = 0x45,\n I = 0x49;\n let state = 0,\n ch;\n\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else if (state === 2) {\n break;\n }\n }\n }\n\n makeInlineImage(cipherTransform) {\n const lexer = this.lexer;\n const stream = lexer.stream;\n const dict = new _primitives.Dict(this.xref);\n let dictLength;\n\n while (!(0, _primitives.isCmd)(this.buf1, \"ID\") && !(0, _primitives.isEOF)(this.buf1)) {\n if (!(0, _primitives.isName)(this.buf1)) {\n throw new _util.FormatError(\"Dictionary key must be a name object\");\n }\n\n const key = this.buf1.name;\n this.shift();\n\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n\n dict.set(key, this.getObj(cipherTransform));\n }\n\n if (lexer.beginInlineImagePos !== -1) {\n dictLength = stream.pos - lexer.beginInlineImagePos;\n }\n\n const filter = dict.get(\"Filter\", \"F\");\n let filterName;\n\n if ((0, _primitives.isName)(filter)) {\n filterName = filter.name;\n } else if (Array.isArray(filter)) {\n const filterZero = this.xref.fetchIfRef(filter[0]);\n\n if ((0, _primitives.isName)(filterZero)) {\n filterName = filterZero.name;\n }\n }\n\n const startPos = stream.pos;\n let length;\n\n if (filterName === \"DCTDecode\" || filterName === \"DCT\") {\n length = this.findDCTDecodeInlineStreamEnd(stream);\n } else if (filterName === \"ASCII85Decode\" || filterName === \"A85\") {\n length = this.findASCII85DecodeInlineStreamEnd(stream);\n } else if (filterName === \"ASCIIHexDecode\" || filterName === \"AHx\") {\n length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n } else {\n length = this.findDefaultInlineStreamEnd(stream);\n }\n\n let imageStream = stream.makeSubStream(startPos, length, dict);\n let cacheKey;\n\n if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n const imageBytes = imageStream.getBytes();\n imageStream.reset();\n const initialStreamPos = stream.pos;\n stream.pos = lexer.beginInlineImagePos;\n const dictBytes = stream.getBytes(dictLength);\n stream.pos = initialStreamPos;\n cacheKey = computeAdler32(imageBytes) + \"_\" + computeAdler32(dictBytes);\n const cacheEntry = this.imageCache[cacheKey];\n\n if (cacheEntry !== undefined) {\n this.buf2 = _primitives.Cmd.get(\"EI\");\n this.shift();\n cacheEntry.reset();\n return cacheEntry;\n }\n }\n\n if (cipherTransform) {\n imageStream = cipherTransform.createStream(imageStream, length);\n }\n\n imageStream = this.filter(imageStream, dict, length);\n imageStream.dict = dict;\n\n if (cacheKey !== undefined) {\n imageStream.cacheKey = `inline_${length}_${cacheKey}`;\n this.imageCache[cacheKey] = imageStream;\n }\n\n this.buf2 = _primitives.Cmd.get(\"EI\");\n this.shift();\n return imageStream;\n }\n\n _findStreamLength(startPos, signature) {\n const {\n stream\n } = this.lexer;\n stream.pos = startPos;\n const SCAN_BLOCK_LENGTH = 2048;\n const signatureLength = signature.length;\n\n while (stream.pos < stream.end) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n break;\n }\n\n let pos = 0;\n\n while (pos < scanLength) {\n let j = 0;\n\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n stream.pos += pos;\n return stream.pos - startPos;\n }\n\n pos++;\n }\n\n stream.pos += scanLength;\n }\n\n return -1;\n }\n\n makeStream(dict, cipherTransform) {\n const lexer = this.lexer;\n let stream = lexer.stream;\n lexer.skipToNextLine();\n const startPos = stream.pos - 1;\n let length = dict.get(\"Length\");\n\n if (!Number.isInteger(length)) {\n (0, _util.info)(`Bad length \"${length}\" in stream`);\n length = 0;\n }\n\n stream.pos = startPos + length;\n lexer.nextChar();\n\n if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, \"endstream\")) {\n this.shift();\n } else {\n const ENDSTREAM_SIGNATURE = new Uint8Array([0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D]);\n\n let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n\n if (actualLength < 0) {\n const MAX_TRUNCATION = 1;\n\n for (let i = 1; i <= MAX_TRUNCATION; i++) {\n const end = ENDSTREAM_SIGNATURE.length - i;\n const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n const maybeLength = this._findStreamLength(startPos, TRUNCATED_SIGNATURE);\n\n if (maybeLength >= 0) {\n const lastByte = stream.peekBytes(end + 1)[end];\n\n if (!(0, _core_utils.isWhiteSpace)(lastByte)) {\n break;\n }\n\n (0, _util.info)(`Found \"${(0, _util.bytesToString)(TRUNCATED_SIGNATURE)}\" when ` + \"searching for endstream command.\");\n actualLength = maybeLength;\n break;\n }\n }\n\n if (actualLength < 0) {\n throw new _util.FormatError(\"Missing endstream command.\");\n }\n }\n\n length = actualLength;\n lexer.nextChar();\n this.shift();\n this.shift();\n }\n\n this.shift();\n stream = stream.makeSubStream(startPos, length, dict);\n\n if (cipherTransform) {\n stream = cipherTransform.createStream(stream, length);\n }\n\n stream = this.filter(stream, dict, length);\n stream.dict = dict;\n return stream;\n }\n\n filter(stream, dict, length) {\n let filter = dict.get(\"Filter\", \"F\");\n let params = dict.get(\"DecodeParms\", \"DP\");\n\n if ((0, _primitives.isName)(filter)) {\n if (Array.isArray(params)) {\n (0, _util.warn)(\"/DecodeParms should not contain an Array, \" + \"when /Filter contains a Name.\");\n }\n\n return this.makeFilter(stream, filter.name, length, params);\n }\n\n let maybeLength = length;\n\n if (Array.isArray(filter)) {\n const filterArray = filter;\n const paramsArray = params;\n\n for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n filter = this.xref.fetchIfRef(filterArray[i]);\n\n if (!(0, _primitives.isName)(filter)) {\n throw new _util.FormatError(`Bad filter name \"${filter}\"`);\n }\n\n params = null;\n\n if (Array.isArray(paramsArray) && i in paramsArray) {\n params = this.xref.fetchIfRef(paramsArray[i]);\n }\n\n stream = this.makeFilter(stream, filter.name, maybeLength, params);\n maybeLength = null;\n }\n }\n\n return stream;\n }\n\n makeFilter(stream, name, maybeLength, params) {\n if (maybeLength === 0) {\n (0, _util.warn)(`Empty \"${name}\" stream.`);\n return new _stream.NullStream();\n }\n\n try {\n const xrefStreamStats = this.xref.stats.streamTypes;\n\n if (name === \"FlateDecode\" || name === \"Fl\") {\n xrefStreamStats[_util.StreamType.FLATE] = true;\n\n if (params) {\n return new _stream.PredictorStream(new _stream.FlateStream(stream, maybeLength), maybeLength, params);\n }\n\n return new _stream.FlateStream(stream, maybeLength);\n }\n\n if (name === \"LZWDecode\" || name === \"LZW\") {\n xrefStreamStats[_util.StreamType.LZW] = true;\n let earlyChange = 1;\n\n if (params) {\n if (params.has(\"EarlyChange\")) {\n earlyChange = params.get(\"EarlyChange\");\n }\n\n return new _stream.PredictorStream(new _stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params);\n }\n\n return new _stream.LZWStream(stream, maybeLength, earlyChange);\n }\n\n if (name === \"DCTDecode\" || name === \"DCT\") {\n xrefStreamStats[_util.StreamType.DCT] = true;\n return new _jpeg_stream.JpegStream(stream, maybeLength, stream.dict, params);\n }\n\n if (name === \"JPXDecode\" || name === \"JPX\") {\n xrefStreamStats[_util.StreamType.JPX] = true;\n return new _jpx_stream.JpxStream(stream, maybeLength, stream.dict, params);\n }\n\n if (name === \"ASCII85Decode\" || name === \"A85\") {\n xrefStreamStats[_util.StreamType.A85] = true;\n return new _stream.Ascii85Stream(stream, maybeLength);\n }\n\n if (name === \"ASCIIHexDecode\" || name === \"AHx\") {\n xrefStreamStats[_util.StreamType.AHX] = true;\n return new _stream.AsciiHexStream(stream, maybeLength);\n }\n\n if (name === \"CCITTFaxDecode\" || name === \"CCF\") {\n xrefStreamStats[_util.StreamType.CCF] = true;\n return new _ccitt_stream.CCITTFaxStream(stream, maybeLength, params);\n }\n\n if (name === \"RunLengthDecode\" || name === \"RL\") {\n xrefStreamStats[_util.StreamType.RLX] = true;\n return new _stream.RunLengthStream(stream, maybeLength);\n }\n\n if (name === \"JBIG2Decode\") {\n xrefStreamStats[_util.StreamType.JBIG] = true;\n return new _jbig2_stream.Jbig2Stream(stream, maybeLength, stream.dict, params);\n }\n\n (0, _util.warn)(`Filter \"${name}\" is not supported.`);\n return stream;\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`Invalid stream: \"${ex}\"`);\n return new _stream.NullStream();\n }\n }\n\n}\n\nexports.Parser = Parser;\nconst specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\nfunction toHexDigit(ch) {\n if (ch >= 0x30 && ch <= 0x39) {\n return ch & 0x0f;\n }\n\n if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n return (ch & 0x0f) + 9;\n }\n\n return -1;\n}\n\nclass Lexer {\n constructor(stream, knownCommands = null) {\n this.stream = stream;\n this.nextChar();\n this.strBuf = [];\n this.knownCommands = knownCommands;\n this._hexStringNumWarn = 0;\n this.beginInlineImagePos = -1;\n }\n\n nextChar() {\n return this.currentChar = this.stream.getByte();\n }\n\n peekChar() {\n return this.stream.peekByte();\n }\n\n getNumber() {\n let ch = this.currentChar;\n let eNotation = false;\n let divideBy = 0;\n let sign = 0;\n\n if (ch === 0x2d) {\n sign = -1;\n ch = this.nextChar();\n\n if (ch === 0x2d) {\n ch = this.nextChar();\n }\n } else if (ch === 0x2b) {\n sign = 1;\n ch = this.nextChar();\n }\n\n if (ch === 0x0a || ch === 0x0d) {\n do {\n ch = this.nextChar();\n } while (ch === 0x0a || ch === 0x0d);\n }\n\n if (ch === 0x2e) {\n divideBy = 10;\n ch = this.nextChar();\n }\n\n if (ch < 0x30 || ch > 0x39) {\n if (divideBy === 10 && sign === 0 && ((0, _core_utils.isWhiteSpace)(ch) || ch === -1)) {\n (0, _util.warn)(\"Lexer.getNumber - treating a single decimal point as zero.\");\n return 0;\n }\n\n throw new _util.FormatError(`Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`);\n }\n\n sign = sign || 1;\n let baseValue = ch - 0x30;\n let powerValue = 0;\n let powerValueSign = 1;\n\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= 0x30 && ch <= 0x39) {\n const currentDigit = ch - 0x30;\n\n if (eNotation) {\n powerValue = powerValue * 10 + currentDigit;\n } else {\n if (divideBy !== 0) {\n divideBy *= 10;\n }\n\n baseValue = baseValue * 10 + currentDigit;\n }\n } else if (ch === 0x2e) {\n if (divideBy === 0) {\n divideBy = 1;\n } else {\n break;\n }\n } else if (ch === 0x2d) {\n (0, _util.warn)(\"Badly formatted number: minus sign in the middle\");\n } else if (ch === 0x45 || ch === 0x65) {\n ch = this.peekChar();\n\n if (ch === 0x2b || ch === 0x2d) {\n powerValueSign = ch === 0x2d ? -1 : 1;\n this.nextChar();\n } else if (ch < 0x30 || ch > 0x39) {\n break;\n }\n\n eNotation = true;\n } else {\n break;\n }\n }\n\n if (divideBy !== 0) {\n baseValue /= divideBy;\n }\n\n if (eNotation) {\n baseValue *= 10 ** (powerValueSign * powerValue);\n }\n\n return sign * baseValue;\n }\n\n getString() {\n let numParen = 1;\n let done = false;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n let ch = this.nextChar();\n\n while (true) {\n let charBuffered = false;\n\n switch (ch | 0) {\n case -1:\n (0, _util.warn)(\"Unterminated string\");\n done = true;\n break;\n\n case 0x28:\n ++numParen;\n strBuf.push(\"(\");\n break;\n\n case 0x29:\n if (--numParen === 0) {\n this.nextChar();\n done = true;\n } else {\n strBuf.push(\")\");\n }\n\n break;\n\n case 0x5c:\n ch = this.nextChar();\n\n switch (ch) {\n case -1:\n (0, _util.warn)(\"Unterminated string\");\n done = true;\n break;\n\n case 0x6e:\n strBuf.push(\"\\n\");\n break;\n\n case 0x72:\n strBuf.push(\"\\r\");\n break;\n\n case 0x74:\n strBuf.push(\"\\t\");\n break;\n\n case 0x62:\n strBuf.push(\"\\b\");\n break;\n\n case 0x66:\n strBuf.push(\"\\f\");\n break;\n\n case 0x5c:\n case 0x28:\n case 0x29:\n strBuf.push(String.fromCharCode(ch));\n break;\n\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n let x = ch & 0x0f;\n ch = this.nextChar();\n charBuffered = true;\n\n if (ch >= 0x30 && ch <= 0x37) {\n x = (x << 3) + (ch & 0x0f);\n ch = this.nextChar();\n\n if (ch >= 0x30 && ch <= 0x37) {\n charBuffered = false;\n x = (x << 3) + (ch & 0x0f);\n }\n }\n\n strBuf.push(String.fromCharCode(x));\n break;\n\n case 0x0d:\n if (this.peekChar() === 0x0a) {\n this.nextChar();\n }\n\n break;\n\n case 0x0a:\n break;\n\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n\n break;\n\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n\n if (done) {\n break;\n }\n\n if (!charBuffered) {\n ch = this.nextChar();\n }\n }\n\n return strBuf.join(\"\");\n }\n\n getName() {\n let ch, previousCh;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n if (ch === 0x23) {\n ch = this.nextChar();\n\n if (specialChars[ch]) {\n (0, _util.warn)(\"Lexer_getName: \" + \"NUMBER SIGN (#) should be followed by a hexadecimal number.\");\n strBuf.push(\"#\");\n break;\n }\n\n const x = toHexDigit(ch);\n\n if (x !== -1) {\n previousCh = ch;\n ch = this.nextChar();\n const x2 = toHexDigit(ch);\n\n if (x2 === -1) {\n (0, _util.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` + \"in hexadecimal number.\");\n strBuf.push(\"#\", String.fromCharCode(previousCh));\n\n if (specialChars[ch]) {\n break;\n }\n\n strBuf.push(String.fromCharCode(ch));\n continue;\n }\n\n strBuf.push(String.fromCharCode(x << 4 | x2));\n } else {\n strBuf.push(\"#\", String.fromCharCode(ch));\n }\n } else {\n strBuf.push(String.fromCharCode(ch));\n }\n }\n\n if (strBuf.length > 127) {\n (0, _util.warn)(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n }\n\n return _primitives.Name.get(strBuf.join(\"\"));\n }\n\n _hexStringWarn(ch) {\n const MAX_HEX_STRING_NUM_WARN = 5;\n\n if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n (0, _util.warn)(\"getHexString - ignoring additional invalid characters.\");\n return;\n }\n\n if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n return;\n }\n\n (0, _util.warn)(`getHexString - ignoring invalid character: ${ch}`);\n }\n\n getHexString() {\n const strBuf = this.strBuf;\n strBuf.length = 0;\n let ch = this.currentChar;\n let isFirstHex = true;\n let firstDigit, secondDigit;\n this._hexStringNumWarn = 0;\n\n while (true) {\n if (ch < 0) {\n (0, _util.warn)(\"Unterminated hex string\");\n break;\n } else if (ch === 0x3e) {\n this.nextChar();\n break;\n } else if (specialChars[ch] === 1) {\n ch = this.nextChar();\n continue;\n } else {\n if (isFirstHex) {\n firstDigit = toHexDigit(ch);\n\n if (firstDigit === -1) {\n this._hexStringWarn(ch);\n\n ch = this.nextChar();\n continue;\n }\n } else {\n secondDigit = toHexDigit(ch);\n\n if (secondDigit === -1) {\n this._hexStringWarn(ch);\n\n ch = this.nextChar();\n continue;\n }\n\n strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit));\n }\n\n isFirstHex = !isFirstHex;\n ch = this.nextChar();\n }\n }\n\n return strBuf.join(\"\");\n }\n\n getObj() {\n let comment = false;\n let ch = this.currentChar;\n\n while (true) {\n if (ch < 0) {\n return _primitives.EOF;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (specialChars[ch] !== 1) {\n break;\n }\n\n ch = this.nextChar();\n }\n\n switch (ch | 0) {\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n case 0x38:\n case 0x39:\n case 0x2b:\n case 0x2d:\n case 0x2e:\n return this.getNumber();\n\n case 0x28:\n return this.getString();\n\n case 0x2f:\n return this.getName();\n\n case 0x5b:\n this.nextChar();\n return _primitives.Cmd.get(\"[\");\n\n case 0x5d:\n this.nextChar();\n return _primitives.Cmd.get(\"]\");\n\n case 0x3c:\n ch = this.nextChar();\n\n if (ch === 0x3c) {\n this.nextChar();\n return _primitives.Cmd.get(\"<<\");\n }\n\n return this.getHexString();\n\n case 0x3e:\n ch = this.nextChar();\n\n if (ch === 0x3e) {\n this.nextChar();\n return _primitives.Cmd.get(\">>\");\n }\n\n return _primitives.Cmd.get(\">\");\n\n case 0x7b:\n this.nextChar();\n return _primitives.Cmd.get(\"{\");\n\n case 0x7d:\n this.nextChar();\n return _primitives.Cmd.get(\"}\");\n\n case 0x29:\n this.nextChar();\n throw new _util.FormatError(`Illegal character: ${ch}`);\n }\n\n let str = String.fromCharCode(ch);\n const knownCommands = this.knownCommands;\n let knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n const possibleCommand = str + String.fromCharCode(ch);\n\n if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n break;\n }\n\n if (str.length === 128) {\n throw new _util.FormatError(`Command token too long: ${str.length}`);\n }\n\n str = possibleCommand;\n knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n }\n\n if (str === \"true\") {\n return true;\n }\n\n if (str === \"false\") {\n return false;\n }\n\n if (str === \"null\") {\n return null;\n }\n\n if (str === \"BI\") {\n this.beginInlineImagePos = this.stream.pos;\n }\n\n return _primitives.Cmd.get(str);\n }\n\n skipToNextLine() {\n let ch = this.currentChar;\n\n while (ch >= 0) {\n if (ch === 0x0d) {\n ch = this.nextChar();\n\n if (ch === 0x0a) {\n this.nextChar();\n }\n\n break;\n } else if (ch === 0x0a) {\n this.nextChar();\n break;\n }\n\n ch = this.nextChar();\n }\n }\n\n}\n\nexports.Lexer = Lexer;\n\nclass Linearization {\n static create(stream) {\n function getInt(linDict, name, allowZeroValue = false) {\n const obj = linDict.get(name);\n\n if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n return obj;\n }\n\n throw new Error(`The \"${name}\" parameter in the linearization ` + \"dictionary is invalid.\");\n }\n\n function getHints(linDict) {\n const hints = linDict.get(\"H\");\n let hintsLength;\n\n if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {\n for (let index = 0; index < hintsLength; index++) {\n const hint = hints[index];\n\n if (!(Number.isInteger(hint) && hint > 0)) {\n throw new Error(`Hint (${index}) in the linearization dictionary is invalid.`);\n }\n }\n\n return hints;\n }\n\n throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n }\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: null\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n const linDict = parser.getObj();\n let obj, length;\n\n if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, \"obj\") && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get(\"Linearized\")) && obj > 0)) {\n return null;\n } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n throw new Error('The \"L\" parameter in the linearization dictionary ' + \"does not equal the stream length.\");\n }\n\n return {\n length,\n hints: getHints(linDict),\n objectNumberFirst: getInt(linDict, \"O\"),\n endFirst: getInt(linDict, \"E\"),\n numPages: getInt(linDict, \"N\"),\n mainXRefEntriesOffset: getInt(linDict, \"T\"),\n pageFirst: linDict.has(\"P\") ? getInt(linDict, \"P\", true) : 0\n };\n }\n\n}\n\nexports.Linearization = Linearization;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.AsciiHexStream = exports.Ascii85Stream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar Stream = function StreamClosure() {\n function Stream(arrayBuffer, start, length, dict) {\n this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer);\n this.start = start || 0;\n this.pos = this.start;\n this.end = start + length || this.bytes.length;\n this.dict = dict;\n }\n\n Stream.prototype = {\n get length() {\n return this.end - this.start;\n },\n\n get isEmpty() {\n return this.length === 0;\n },\n\n getByte: function Stream_getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n\n return this.bytes[this.pos++];\n },\n getUint16: function Stream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n\n return (b0 << 8) + b1;\n },\n getInt32: function Stream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n\n getBytes(length, forceClamped = false) {\n var bytes = this.bytes;\n var pos = this.pos;\n var strEnd = this.end;\n\n if (!length) {\n const subarray = bytes.subarray(pos, strEnd);\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n }\n\n var end = pos + length;\n\n if (end > strEnd) {\n end = strEnd;\n }\n\n this.pos = end;\n const subarray = bytes.subarray(pos, end);\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n },\n\n peekByte: function Stream_peekByte() {\n var peekedByte = this.getByte();\n\n if (peekedByte !== -1) {\n this.pos--;\n }\n\n return peekedByte;\n },\n\n peekBytes(length, forceClamped = false) {\n var bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n },\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n\n if (end > this.end) {\n end = this.end;\n }\n\n return this.bytes.subarray(begin, end);\n },\n\n skip: function Stream_skip(n) {\n if (!n) {\n n = 1;\n }\n\n this.pos += n;\n },\n reset: function Stream_reset() {\n this.pos = this.start;\n },\n moveStart: function Stream_moveStart() {\n this.start = this.pos;\n },\n makeSubStream: function Stream_makeSubStream(start, length, dict) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n };\n return Stream;\n}();\n\nexports.Stream = Stream;\n\nvar StringStream = function StringStreamClosure() {\n function StringStream(str) {\n const bytes = (0, _util.stringToBytes)(str);\n Stream.call(this, bytes);\n }\n\n StringStream.prototype = Stream.prototype;\n return StringStream;\n}();\n\nexports.StringStream = StringStream;\n\nvar DecodeStream = function DecodeStreamClosure() {\n var emptyBuffer = new Uint8Array(0);\n\n function DecodeStream(maybeMinBufferLength) {\n this._rawMinBufferLength = maybeMinBufferLength || 0;\n this.pos = 0;\n this.bufferLength = 0;\n this.eof = false;\n this.buffer = emptyBuffer;\n this.minBufferLength = 512;\n\n if (maybeMinBufferLength) {\n while (this.minBufferLength < maybeMinBufferLength) {\n this.minBufferLength *= 2;\n }\n }\n }\n\n DecodeStream.prototype = {\n get isEmpty() {\n while (!this.eof && this.bufferLength === 0) {\n this.readBlock();\n }\n\n return this.bufferLength === 0;\n },\n\n ensureBuffer: function DecodeStream_ensureBuffer(requested) {\n var buffer = this.buffer;\n\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n\n var size = this.minBufferLength;\n\n while (size < requested) {\n size *= 2;\n }\n\n var buffer2 = new Uint8Array(size);\n buffer2.set(buffer);\n return this.buffer = buffer2;\n },\n getByte: function DecodeStream_getByte() {\n var pos = this.pos;\n\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n\n this.readBlock();\n }\n\n return this.buffer[this.pos++];\n },\n getUint16: function DecodeStream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n\n return (b0 << 8) + b1;\n },\n getInt32: function DecodeStream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n\n getBytes(length, forceClamped = false) {\n var end,\n pos = this.pos;\n\n if (length) {\n this.ensureBuffer(pos + length);\n end = pos + length;\n\n while (!this.eof && this.bufferLength < end) {\n this.readBlock();\n }\n\n var bufEnd = this.bufferLength;\n\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n\n end = this.bufferLength;\n }\n\n this.pos = end;\n const subarray = this.buffer.subarray(pos, end);\n return forceClamped && !(subarray instanceof Uint8ClampedArray) ? new Uint8ClampedArray(subarray) : subarray;\n },\n\n peekByte: function DecodeStream_peekByte() {\n var peekedByte = this.getByte();\n\n if (peekedByte !== -1) {\n this.pos--;\n }\n\n return peekedByte;\n },\n\n peekBytes(length, forceClamped = false) {\n var bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n },\n\n makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {\n var end = start + length;\n\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n\n return new Stream(this.buffer, start, length, dict);\n },\n\n getByteRange(begin, end) {\n (0, _util.unreachable)(\"Should not call DecodeStream.getByteRange\");\n },\n\n skip: function DecodeStream_skip(n) {\n if (!n) {\n n = 1;\n }\n\n this.pos += n;\n },\n reset: function DecodeStream_reset() {\n this.pos = 0;\n },\n getBaseStreams: function DecodeStream_getBaseStreams() {\n if (this.str && this.str.getBaseStreams) {\n return this.str.getBaseStreams();\n }\n\n return [];\n }\n };\n return DecodeStream;\n}();\n\nexports.DecodeStream = DecodeStream;\n\nvar StreamsSequenceStream = function StreamsSequenceStreamClosure() {\n function StreamsSequenceStream(streams) {\n this.streams = streams;\n let maybeLength = 0;\n\n for (let i = 0, ii = streams.length; i < ii; i++) {\n const stream = streams[i];\n\n if (stream instanceof DecodeStream) {\n maybeLength += stream._rawMinBufferLength;\n } else {\n maybeLength += stream.length;\n }\n }\n\n DecodeStream.call(this, maybeLength);\n }\n\n StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype);\n\n StreamsSequenceStream.prototype.readBlock = function streamSequenceStreamReadBlock() {\n var streams = this.streams;\n\n if (streams.length === 0) {\n this.eof = true;\n return;\n }\n\n var stream = streams.shift();\n var chunk = stream.getBytes();\n var bufferLength = this.bufferLength;\n var newLength = bufferLength + chunk.length;\n var buffer = this.ensureBuffer(newLength);\n buffer.set(chunk, bufferLength);\n this.bufferLength = newLength;\n };\n\n StreamsSequenceStream.prototype.getBaseStreams = function StreamsSequenceStream_getBaseStreams() {\n var baseStreams = [];\n\n for (var i = 0, ii = this.streams.length; i < ii; i++) {\n var stream = this.streams[i];\n\n if (stream.getBaseStreams) {\n baseStreams.push(...stream.getBaseStreams());\n }\n }\n\n return baseStreams;\n };\n\n return StreamsSequenceStream;\n}();\n\nexports.StreamsSequenceStream = StreamsSequenceStream;\n\nvar FlateStream = function FlateStreamClosure() {\n var codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n var lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]);\n var distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]);\n var fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9];\n var fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5];\n\n function FlateStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n var cmf = str.getByte();\n var flg = str.getByte();\n\n if (cmf === -1 || flg === -1) {\n throw new _util.FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n }\n\n if ((cmf & 0x0f) !== 0x08) {\n throw new _util.FormatError(`Unknown compression method in flate stream: ${cmf}, ${flg}`);\n }\n\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new _util.FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n }\n\n if (flg & 0x20) {\n throw new _util.FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n }\n\n this.codeSize = 0;\n this.codeBuf = 0;\n DecodeStream.call(this, maybeLength);\n }\n\n FlateStream.prototype = Object.create(DecodeStream.prototype);\n\n FlateStream.prototype.getBits = function FlateStream_getBits(bits) {\n var str = this.str;\n var codeSize = this.codeSize;\n var codeBuf = this.codeBuf;\n var b;\n\n while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad encoding in flate stream\");\n }\n\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n\n b = codeBuf & (1 << bits) - 1;\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\n return b;\n };\n\n FlateStream.prototype.getCode = function FlateStream_getCode(table) {\n var str = this.str;\n var codes = table[0];\n var maxLen = table[1];\n var codeSize = this.codeSize;\n var codeBuf = this.codeBuf;\n var b;\n\n while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n break;\n }\n\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n\n var code = codes[codeBuf & (1 << maxLen) - 1];\n var codeLen = code >> 16;\n var codeVal = code & 0xffff;\n\n if (codeLen < 1 || codeSize < codeLen) {\n throw new _util.FormatError(\"Bad encoding in flate stream\");\n }\n\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n };\n\n FlateStream.prototype.generateHuffmanTable = function flateStreamGenerateHuffmanTable(lengths) {\n var n = lengths.length;\n var maxLen = 0;\n var i;\n\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n\n var size = 1 << maxLen;\n var codes = new Int32Array(size);\n\n for (var len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) {\n for (var val = 0; val < n; ++val) {\n if (lengths[val] === len) {\n var code2 = 0;\n var t = code;\n\n for (i = 0; i < len; ++i) {\n code2 = code2 << 1 | t & 1;\n t >>= 1;\n }\n\n for (i = code2; i < size; i += skip) {\n codes[i] = len << 16 | val;\n }\n\n ++code;\n }\n }\n }\n\n return [codes, maxLen];\n };\n\n FlateStream.prototype.readBlock = function FlateStream_readBlock() {\n var buffer, len;\n var str = this.str;\n var hdr = this.getBits(3);\n\n if (hdr & 1) {\n this.eof = true;\n }\n\n hdr >>= 1;\n\n if (hdr === 0) {\n var b;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n var blockLen = b;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n blockLen |= b << 8;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n var check = b;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n check |= b << 8;\n\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n throw new _util.FormatError(\"Bad uncompressed block length in flate stream\");\n }\n\n this.codeBuf = 0;\n this.codeSize = 0;\n const bufferLength = this.bufferLength,\n end = bufferLength + blockLen;\n buffer = this.ensureBuffer(end);\n this.bufferLength = end;\n\n if (blockLen === 0) {\n if (str.peekByte() === -1) {\n this.eof = true;\n }\n } else {\n const block = str.getBytes(blockLen);\n buffer.set(block, bufferLength);\n\n if (block.length < blockLen) {\n this.eof = true;\n }\n }\n\n return;\n }\n\n var litCodeTable;\n var distCodeTable;\n\n if (hdr === 1) {\n litCodeTable = fixedLitCodeTab;\n distCodeTable = fixedDistCodeTab;\n } else if (hdr === 2) {\n var numLitCodes = this.getBits(5) + 257;\n var numDistCodes = this.getBits(5) + 1;\n var numCodeLenCodes = this.getBits(4) + 4;\n var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n var i;\n\n for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n }\n\n var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n len = 0;\n i = 0;\n var codes = numLitCodes + numDistCodes;\n var codeLengths = new Uint8Array(codes);\n var bitsLength, bitsOffset, what;\n\n while (i < codes) {\n var code = this.getCode(codeLenCodeTab);\n\n if (code === 16) {\n bitsLength = 2;\n bitsOffset = 3;\n what = len;\n } else if (code === 17) {\n bitsLength = 3;\n bitsOffset = 3;\n what = len = 0;\n } else if (code === 18) {\n bitsLength = 7;\n bitsOffset = 11;\n what = len = 0;\n } else {\n codeLengths[i++] = len = code;\n continue;\n }\n\n var repeatLength = this.getBits(bitsLength) + bitsOffset;\n\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\n }\n }\n\n litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));\n distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));\n } else {\n throw new _util.FormatError(\"Unknown block type in flate stream\");\n }\n\n buffer = this.buffer;\n var limit = buffer ? buffer.length : 0;\n var pos = this.bufferLength;\n\n while (true) {\n var code1 = this.getCode(litCodeTable);\n\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n\n buffer[pos++] = code1;\n continue;\n }\n\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n\n code1 -= 257;\n code1 = lengthDecode[code1];\n var code2 = code1 >> 16;\n\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n\n var dist = (code1 & 0xffff) + code2;\n\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\n\n for (var k = 0; k < len; ++k, ++pos) {\n buffer[pos] = buffer[pos - dist];\n }\n }\n };\n\n return FlateStream;\n}();\n\nexports.FlateStream = FlateStream;\n\nvar PredictorStream = function PredictorStreamClosure() {\n function PredictorStream(str, maybeLength, params) {\n if (!(0, _primitives.isDict)(params)) {\n return str;\n }\n\n var predictor = this.predictor = params.get(\"Predictor\") || 1;\n\n if (predictor <= 1) {\n return str;\n }\n\n if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n throw new _util.FormatError(`Unsupported predictor: ${predictor}`);\n }\n\n if (predictor === 2) {\n this.readBlock = this.readBlockTiff;\n } else {\n this.readBlock = this.readBlockPng;\n }\n\n this.str = str;\n this.dict = str.dict;\n var colors = this.colors = params.get(\"Colors\") || 1;\n var bits = this.bits = params.get(\"BitsPerComponent\") || 8;\n var columns = this.columns = params.get(\"Columns\") || 1;\n this.pixBytes = colors * bits + 7 >> 3;\n this.rowBytes = columns * colors * bits + 7 >> 3;\n DecodeStream.call(this, maybeLength);\n return this;\n }\n\n PredictorStream.prototype = Object.create(DecodeStream.prototype);\n\n PredictorStream.prototype.readBlockTiff = function predictorStreamReadBlockTiff() {\n var rowBytes = this.rowBytes;\n var bufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(bufferLength + rowBytes);\n var bits = this.bits;\n var colors = this.colors;\n var rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n\n if (this.eof) {\n return;\n }\n\n var inbuf = 0,\n outbuf = 0;\n var inbits = 0,\n outbits = 0;\n var pos = bufferLength;\n var i;\n\n if (bits === 1 && colors === 1) {\n for (i = 0; i < rowBytes; ++i) {\n var c = rawBytes[i] ^ inbuf;\n c ^= c >> 1;\n c ^= c >> 2;\n c ^= c >> 4;\n inbuf = (c & 1) << 7;\n buffer[pos++] = c;\n }\n } else if (bits === 8) {\n for (i = 0; i < colors; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n\n for (; i < rowBytes; ++i) {\n buffer[pos] = buffer[pos - colors] + rawBytes[i];\n pos++;\n }\n } else if (bits === 16) {\n var bytesPerPixel = colors * 2;\n\n for (i = 0; i < bytesPerPixel; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n\n for (; i < rowBytes; i += 2) {\n var sum = ((rawBytes[i] & 0xff) << 8) + (rawBytes[i + 1] & 0xff) + ((buffer[pos - bytesPerPixel] & 0xff) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xff);\n buffer[pos++] = sum >> 8 & 0xff;\n buffer[pos++] = sum & 0xff;\n }\n } else {\n var compArray = new Uint8Array(colors + 1);\n var bitMask = (1 << bits) - 1;\n var j = 0,\n k = bufferLength;\n var columns = this.columns;\n\n for (i = 0; i < columns; ++i) {\n for (var kk = 0; kk < colors; ++kk) {\n if (inbits < bits) {\n inbuf = inbuf << 8 | rawBytes[j++] & 0xff;\n inbits += 8;\n }\n\n compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask;\n inbits -= bits;\n outbuf = outbuf << bits | compArray[kk];\n outbits += bits;\n\n if (outbits >= 8) {\n buffer[k++] = outbuf >> outbits - 8 & 0xff;\n outbits -= 8;\n }\n }\n }\n\n if (outbits > 0) {\n buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1);\n }\n }\n\n this.bufferLength += rowBytes;\n };\n\n PredictorStream.prototype.readBlockPng = function predictorStreamReadBlockPng() {\n var rowBytes = this.rowBytes;\n var pixBytes = this.pixBytes;\n var predictor = this.str.getByte();\n var rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n\n if (this.eof) {\n return;\n }\n\n var bufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(bufferLength + rowBytes);\n var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n\n if (prevRow.length === 0) {\n prevRow = new Uint8Array(rowBytes);\n }\n\n var i,\n j = bufferLength,\n up,\n c;\n\n switch (predictor) {\n case 0:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n\n break;\n\n case 1:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n\n for (; i < rowBytes; ++i) {\n buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xff;\n j++;\n }\n\n break;\n\n case 2:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = prevRow[i] + rawBytes[i] & 0xff;\n }\n\n break;\n\n case 3:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n }\n\n for (; i < rowBytes; ++i) {\n buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xff;\n j++;\n }\n\n break;\n\n case 4:\n for (i = 0; i < pixBytes; ++i) {\n up = prevRow[i];\n c = rawBytes[i];\n buffer[j++] = up + c;\n }\n\n for (; i < rowBytes; ++i) {\n up = prevRow[i];\n var upLeft = prevRow[i - pixBytes];\n var left = buffer[j - pixBytes];\n var p = left + up - upLeft;\n var pa = p - left;\n\n if (pa < 0) {\n pa = -pa;\n }\n\n var pb = p - up;\n\n if (pb < 0) {\n pb = -pb;\n }\n\n var pc = p - upLeft;\n\n if (pc < 0) {\n pc = -pc;\n }\n\n c = rawBytes[i];\n\n if (pa <= pb && pa <= pc) {\n buffer[j++] = left + c;\n } else if (pb <= pc) {\n buffer[j++] = up + c;\n } else {\n buffer[j++] = upLeft + c;\n }\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Unsupported predictor: ${predictor}`);\n }\n\n this.bufferLength += rowBytes;\n };\n\n return PredictorStream;\n}();\n\nexports.PredictorStream = PredictorStream;\n\nvar DecryptStream = function DecryptStreamClosure() {\n function DecryptStream(str, maybeLength, decrypt) {\n this.str = str;\n this.dict = str.dict;\n this.decrypt = decrypt;\n this.nextChunk = null;\n this.initialized = false;\n DecodeStream.call(this, maybeLength);\n }\n\n var chunkSize = 512;\n DecryptStream.prototype = Object.create(DecodeStream.prototype);\n\n DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {\n var chunk;\n\n if (this.initialized) {\n chunk = this.nextChunk;\n } else {\n chunk = this.str.getBytes(chunkSize);\n this.initialized = true;\n }\n\n if (!chunk || chunk.length === 0) {\n this.eof = true;\n return;\n }\n\n this.nextChunk = this.str.getBytes(chunkSize);\n var hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n var decrypt = this.decrypt;\n chunk = decrypt(chunk, !hasMoreData);\n var bufferLength = this.bufferLength;\n var i,\n n = chunk.length;\n var buffer = this.ensureBuffer(bufferLength + n);\n\n for (i = 0; i < n; i++) {\n buffer[bufferLength++] = chunk[i];\n }\n\n this.bufferLength = bufferLength;\n };\n\n return DecryptStream;\n}();\n\nexports.DecryptStream = DecryptStream;\n\nvar Ascii85Stream = function Ascii85StreamClosure() {\n function Ascii85Stream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n this.input = new Uint8Array(5);\n\n if (maybeLength) {\n maybeLength = 0.8 * maybeLength;\n }\n\n DecodeStream.call(this, maybeLength);\n }\n\n Ascii85Stream.prototype = Object.create(DecodeStream.prototype);\n\n Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() {\n var TILDA_CHAR = 0x7e;\n var Z_LOWER_CHAR = 0x7a;\n var EOF = -1;\n var str = this.str;\n var c = str.getByte();\n\n while ((0, _core_utils.isWhiteSpace)(c)) {\n c = str.getByte();\n }\n\n if (c === EOF || c === TILDA_CHAR) {\n this.eof = true;\n return;\n }\n\n var bufferLength = this.bufferLength,\n buffer;\n var i;\n\n if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n\n this.bufferLength += 4;\n } else {\n var input = this.input;\n input[0] = c;\n\n for (i = 1; i < 5; ++i) {\n c = str.getByte();\n\n while ((0, _core_utils.isWhiteSpace)(c)) {\n c = str.getByte();\n }\n\n input[i] = c;\n\n if (c === EOF || c === TILDA_CHAR) {\n break;\n }\n }\n\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n\n this.eof = true;\n }\n\n var t = 0;\n\n for (i = 0; i < 5; ++i) {\n t = t * 85 + (input[i] - 0x21);\n }\n\n for (i = 3; i >= 0; --i) {\n buffer[bufferLength + i] = t & 0xff;\n t >>= 8;\n }\n }\n };\n\n return Ascii85Stream;\n}();\n\nexports.Ascii85Stream = Ascii85Stream;\n\nvar AsciiHexStream = function AsciiHexStreamClosure() {\n function AsciiHexStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n this.firstDigit = -1;\n\n if (maybeLength) {\n maybeLength = 0.5 * maybeLength;\n }\n\n DecodeStream.call(this, maybeLength);\n }\n\n AsciiHexStream.prototype = Object.create(DecodeStream.prototype);\n\n AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() {\n var UPSTREAM_BLOCK_SIZE = 8000;\n var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n\n if (!bytes.length) {\n this.eof = true;\n return;\n }\n\n var maxDecodeLength = bytes.length + 1 >> 1;\n var buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n var bufferLength = this.bufferLength;\n var firstDigit = this.firstDigit;\n\n for (var i = 0, ii = bytes.length; i < ii; i++) {\n var ch = bytes[i],\n digit;\n\n if (ch >= 0x30 && ch <= 0x39) {\n digit = ch & 0x0f;\n } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n digit = (ch & 0x0f) + 9;\n } else if (ch === 0x3e) {\n this.eof = true;\n break;\n } else {\n continue;\n }\n\n if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = firstDigit << 4 | digit;\n firstDigit = -1;\n }\n }\n\n if (firstDigit >= 0 && this.eof) {\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n };\n\n return AsciiHexStream;\n}();\n\nexports.AsciiHexStream = AsciiHexStream;\n\nvar RunLengthStream = function RunLengthStreamClosure() {\n function RunLengthStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n DecodeStream.call(this, maybeLength);\n }\n\n RunLengthStream.prototype = Object.create(DecodeStream.prototype);\n\n RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {\n var repeatHeader = this.str.getBytes(2);\n\n if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n this.eof = true;\n return;\n }\n\n var buffer;\n var bufferLength = this.bufferLength;\n var n = repeatHeader[0];\n\n if (n < 128) {\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n\n if (n > 0) {\n var source = this.str.getBytes(n);\n buffer.set(source, bufferLength);\n bufferLength += n;\n }\n } else {\n n = 257 - n;\n var b = repeatHeader[1];\n buffer = this.ensureBuffer(bufferLength + n + 1);\n\n for (var i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n\n this.bufferLength = bufferLength;\n };\n\n return RunLengthStream;\n}();\n\nexports.RunLengthStream = RunLengthStream;\n\nvar LZWStream = function LZWStreamClosure() {\n function LZWStream(str, maybeLength, earlyChange) {\n this.str = str;\n this.dict = str.dict;\n this.cachedData = 0;\n this.bitsCached = 0;\n var maxLzwDictionarySize = 4096;\n var lzwState = {\n earlyChange,\n codeLength: 9,\n nextCode: 258,\n dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n currentSequence: new Uint8Array(maxLzwDictionarySize),\n currentSequenceLength: 0\n };\n\n for (var i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n\n this.lzwState = lzwState;\n DecodeStream.call(this, maybeLength);\n }\n\n LZWStream.prototype = Object.create(DecodeStream.prototype);\n\n LZWStream.prototype.readBits = function LZWStream_readBits(n) {\n var bitsCached = this.bitsCached;\n var cachedData = this.cachedData;\n\n while (bitsCached < n) {\n var c = this.str.getByte();\n\n if (c === -1) {\n this.eof = true;\n return null;\n }\n\n cachedData = cachedData << 8 | c;\n bitsCached += 8;\n }\n\n this.bitsCached = bitsCached -= n;\n this.cachedData = cachedData;\n this.lastCode = null;\n return cachedData >>> bitsCached & (1 << n) - 1;\n };\n\n LZWStream.prototype.readBlock = function LZWStream_readBlock() {\n var blockSize = 512;\n var estimatedDecodedSize = blockSize * 2,\n decodedSizeDelta = blockSize;\n var i, j, q;\n var lzwState = this.lzwState;\n\n if (!lzwState) {\n return;\n }\n\n var earlyChange = lzwState.earlyChange;\n var nextCode = lzwState.nextCode;\n var dictionaryValues = lzwState.dictionaryValues;\n var dictionaryLengths = lzwState.dictionaryLengths;\n var dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n var codeLength = lzwState.codeLength;\n var prevCode = lzwState.prevCode;\n var currentSequence = lzwState.currentSequence;\n var currentSequenceLength = lzwState.currentSequenceLength;\n var decodedLength = 0;\n var currentBufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n for (i = 0; i < blockSize; i++) {\n var code = this.readBits(codeLength);\n var hasPrev = currentSequenceLength > 0;\n\n if (code < 256) {\n currentSequence[0] = code;\n currentSequenceLength = 1;\n } else if (code >= 258) {\n if (code < nextCode) {\n currentSequenceLength = dictionaryLengths[code];\n\n for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n currentSequence[j] = dictionaryValues[q];\n q = dictionaryPrevCodes[q];\n }\n } else {\n currentSequence[currentSequenceLength++] = currentSequence[0];\n }\n } else if (code === 256) {\n codeLength = 9;\n nextCode = 258;\n currentSequenceLength = 0;\n continue;\n } else {\n this.eof = true;\n delete this.lzwState;\n break;\n }\n\n if (hasPrev) {\n dictionaryPrevCodes[nextCode] = prevCode;\n dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n dictionaryValues[nextCode] = currentSequence[0];\n nextCode++;\n codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0;\n }\n\n prevCode = code;\n decodedLength += currentSequenceLength;\n\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n this.bufferLength = currentBufferLength;\n };\n\n return LZWStream;\n}();\n\nexports.LZWStream = LZWStream;\n\nvar NullStream = function NullStreamClosure() {\n function NullStream() {\n Stream.call(this, new Uint8Array(0));\n }\n\n NullStream.prototype = Stream.prototype;\n return NullStream;\n}();\n\nexports.NullStream = NullStream;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CCITTFaxStream = void 0;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _ccitt = __w_pdfjs_require__(14);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar CCITTFaxStream = function CCITTFaxStreamClosure() {\n function CCITTFaxStream(str, maybeLength, params) {\n this.str = str;\n this.dict = str.dict;\n\n if (!(0, _primitives.isDict)(params)) {\n params = _primitives.Dict.empty;\n }\n\n const source = {\n next() {\n return str.getByte();\n }\n\n };\n this.ccittFaxDecoder = new _ccitt.CCITTFaxDecoder(source, {\n K: params.get(\"K\"),\n EndOfLine: params.get(\"EndOfLine\"),\n EncodedByteAlign: params.get(\"EncodedByteAlign\"),\n Columns: params.get(\"Columns\"),\n Rows: params.get(\"Rows\"),\n EndOfBlock: params.get(\"EndOfBlock\"),\n BlackIs1: params.get(\"BlackIs1\")\n });\n\n _stream.DecodeStream.call(this, maybeLength);\n }\n\n CCITTFaxStream.prototype = Object.create(_stream.DecodeStream.prototype);\n\n CCITTFaxStream.prototype.readBlock = function () {\n while (!this.eof) {\n const c = this.ccittFaxDecoder.readNextChar();\n\n if (c === -1) {\n this.eof = true;\n return;\n }\n\n this.ensureBuffer(this.bufferLength + 1);\n this.buffer[this.bufferLength++] = c;\n }\n };\n\n return CCITTFaxStream;\n}();\n\nexports.CCITTFaxStream = CCITTFaxStream;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CCITTFaxDecoder = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CCITTFaxDecoder = function CCITTFaxDecoder() {\n const ccittEOL = -2;\n const ccittEOF = -1;\n const twoDimPass = 0;\n const twoDimHoriz = 1;\n const twoDimVert0 = 2;\n const twoDimVertR1 = 3;\n const twoDimVertL1 = 4;\n const twoDimVertR2 = 5;\n const twoDimVertL2 = 6;\n const twoDimVertR3 = 7;\n const twoDimVertL3 = 8;\n const twoDimTable = [[-1, -1], [-1, -1], [7, twoDimVertL3], [7, twoDimVertR3], [6, twoDimVertL2], [6, twoDimVertL2], [6, twoDimVertR2], [6, twoDimVertR2], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0]];\n const whiteTable1 = [[-1, -1], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]];\n const whiteTable2 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]];\n const blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]];\n const blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]];\n const blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]];\n\n function CCITTFaxDecoder(source, options = {}) {\n if (!source || typeof source.next !== \"function\") {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n\n this.source = source;\n this.eof = false;\n this.encoding = options.K || 0;\n this.eoline = options.EndOfLine || false;\n this.byteAlign = options.EncodedByteAlign || false;\n this.columns = options.Columns || 1728;\n this.rows = options.Rows || 0;\n let eoblock = options.EndOfBlock;\n\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\n }\n\n this.eoblock = eoblock;\n this.black = options.BlackIs1 || false;\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n this.row = 0;\n this.nextLine2D = this.encoding < 0;\n this.inputBits = 0;\n this.inputBuf = 0;\n this.outputBits = 0;\n this.rowsDone = false;\n let code1;\n\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n\n if (code1 === 1) {\n this._eatBits(12);\n }\n\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n\n this._eatBits(1);\n }\n }\n\n CCITTFaxDecoder.prototype = {\n readNextChar() {\n if (this.eof) {\n return -1;\n }\n\n const refLine = this.refLine;\n const codingLine = this.codingLine;\n const columns = this.columns;\n let refPos, blackPixels, bits, i;\n\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n\n if (this.eof) {\n return -1;\n }\n\n this.err = false;\n let code1, code2, code3;\n\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = this._getTwoDimCode();\n\n switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n\n break;\n\n case twoDimHoriz:\n code1 = code2 = 0;\n\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n\n do {\n code2 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n\n do {\n code2 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n }\n\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1);\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n\n break;\n\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case ccittEOF:\n this._addPixels(columns, 0);\n\n this.eof = true;\n break;\n\n default:\n (0, _util.info)(\"bad 2d code\");\n\n this._addPixels(columns, 0);\n\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n }\n\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n blackPixels ^= 1;\n }\n }\n\n let gotEOL = false;\n\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n\n if (!this.eoblock && this.row === this.rows - 1) {\n this.rowsDone = true;\n } else {\n code1 = this._lookBits(12);\n\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n\n code1 = this._lookBits(12);\n }\n }\n\n if (code1 === 1) {\n this._eatBits(12);\n\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n\n if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n this.nextLine2D = !this._lookBits(1);\n\n this._eatBits(1);\n }\n\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n\n if (code1 === 1) {\n this._eatBits(12);\n\n if (this.encoding > 0) {\n this._lookBits(1);\n\n this._eatBits(1);\n }\n\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n\n if (code1 !== 1) {\n (0, _util.info)(\"bad rtc code: \" + code1);\n }\n\n this._eatBits(12);\n\n if (this.encoding > 0) {\n this._lookBits(1);\n\n this._eatBits(1);\n }\n }\n }\n\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n\n if (code1 >> 1 === 1) {\n break;\n }\n\n this._eatBits(1);\n }\n\n this._eatBits(12);\n\n if (this.encoding > 0) {\n this._eatBits(1);\n\n this.nextLine2D = !(code1 & 1);\n }\n }\n\n if (codingLine[0] > 0) {\n this.outputBits = codingLine[this.codingPos = 0];\n } else {\n this.outputBits = codingLine[this.codingPos = 1];\n }\n\n this.row++;\n }\n\n let c;\n\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xff;\n this.outputBits -= 8;\n\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n\n do {\n if (this.outputBits > bits) {\n c <<= bits;\n\n if (!(this.codingPos & 1)) {\n c |= 0xff >> 8 - bits;\n }\n\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n\n if (!(this.codingPos & 1)) {\n c |= 0xff >> 8 - this.outputBits;\n }\n\n bits -= this.outputBits;\n this.outputBits = 0;\n\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n\n if (this.black) {\n c ^= 0xff;\n }\n\n return c;\n },\n\n _addPixels(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n (0, _util.info)(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n\n if (codingPos & 1 ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n },\n\n _addPixelsNeg(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n (0, _util.info)(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n\n if (codingPos & 1 ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n } else if (a1 < codingLine[codingPos]) {\n if (a1 < 0) {\n (0, _util.info)(\"invalid code\");\n this.err = true;\n a1 = 0;\n }\n\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n },\n\n _findTableCode(start, end, table, limit) {\n const limitValue = limit || 0;\n\n for (let i = start; i <= end; ++i) {\n let code = this._lookBits(i);\n\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n\n if (i < end) {\n code <<= end - i;\n }\n\n if (!limitValue || code >= limitValue) {\n const p = table[code - limitValue];\n\n if (p[0] === i) {\n this._eatBits(i);\n\n return [true, p[1], true];\n }\n }\n }\n\n return [false, 0, false];\n },\n\n _getTwoDimCode() {\n let code = 0;\n let p;\n\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n\n if (p && p[0] > 0) {\n this._eatBits(p[0]);\n\n return p[1];\n }\n } else {\n const result = this._findTableCode(1, 7, twoDimTable);\n\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n\n (0, _util.info)(\"Bad two dim code\");\n return ccittEOF;\n },\n\n _getWhiteCode() {\n let code = 0;\n let p;\n\n if (this.eoblock) {\n code = this._lookBits(12);\n\n if (code === ccittEOF) {\n return 1;\n }\n\n if (code >> 5 === 0) {\n p = whiteTable1[code];\n } else {\n p = whiteTable2[code >> 3];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 9, whiteTable2);\n\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(11, 12, whiteTable1);\n\n if (result[0]) {\n return result[1];\n }\n }\n\n (0, _util.info)(\"bad white code\");\n\n this._eatBits(1);\n\n return 1;\n },\n\n _getBlackCode() {\n let code, p;\n\n if (this.eoblock) {\n code = this._lookBits(13);\n\n if (code === ccittEOF) {\n return 1;\n }\n\n if (code >> 7 === 0) {\n p = blackTable1[code];\n } else if (code >> 9 === 0 && code >> 7 !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n\n return p[1];\n }\n } else {\n let result = this._findTableCode(2, 6, blackTable3);\n\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(7, 12, blackTable2, 64);\n\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(10, 13, blackTable1);\n\n if (result[0]) {\n return result[1];\n }\n }\n\n (0, _util.info)(\"bad black code\");\n\n this._eatBits(1);\n\n return 1;\n },\n\n _lookBits(n) {\n let c;\n\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n\n return this.inputBuf << n - this.inputBits & 0xffff >> 16 - n;\n }\n\n this.inputBuf = this.inputBuf << 8 | c;\n this.inputBits += 8;\n }\n\n return this.inputBuf >> this.inputBits - n & 0xffff >> 16 - n;\n },\n\n _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n }\n\n };\n return CCITTFaxDecoder;\n}();\n\nexports.CCITTFaxDecoder = CCITTFaxDecoder;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Jbig2Stream = void 0;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _jbig = __w_pdfjs_require__(16);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst Jbig2Stream = function Jbig2StreamClosure() {\n function Jbig2Stream(stream, maybeLength, dict, params) {\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n\n _stream.DecodeStream.call(this, maybeLength);\n }\n\n Jbig2Stream.prototype = Object.create(_stream.DecodeStream.prototype);\n Object.defineProperty(Jbig2Stream.prototype, \"bytes\", {\n get() {\n return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n },\n\n configurable: true\n });\n\n Jbig2Stream.prototype.ensureBuffer = function (requested) {};\n\n Jbig2Stream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n\n const jbig2Image = new _jbig.Jbig2Image();\n const chunks = [];\n\n if ((0, _primitives.isDict)(this.params)) {\n const globalsStream = this.params.get(\"JBIG2Globals\");\n\n if ((0, _primitives.isStream)(globalsStream)) {\n const globals = globalsStream.getBytes();\n chunks.push({\n data: globals,\n start: 0,\n end: globals.length\n });\n }\n }\n\n chunks.push({\n data: this.bytes,\n start: 0,\n end: this.bytes.length\n });\n const data = jbig2Image.parseChunks(chunks);\n const dataLength = data.length;\n\n for (let i = 0; i < dataLength; i++) {\n data[i] ^= 0xff;\n }\n\n this.buffer = data;\n this.bufferLength = dataLength;\n this.eof = true;\n };\n\n return Jbig2Stream;\n}();\n\nexports.Jbig2Stream = Jbig2Stream;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Jbig2Image = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(17);\n\nvar _ccitt = __w_pdfjs_require__(14);\n\nclass Jbig2Error extends _util.BaseException {\n constructor(msg) {\n super(`JBIG2 error: ${msg}`);\n }\n\n}\n\nvar Jbig2Image = function Jbig2ImageClosure() {\n function ContextCache() {}\n\n ContextCache.prototype = {\n getContexts(id) {\n if (id in this) {\n return this[id];\n }\n\n return this[id] = new Int8Array(1 << 16);\n }\n\n };\n\n function DecodingContext(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n }\n\n DecodingContext.prototype = {\n get decoder() {\n var decoder = new _arithmetic_decoder.ArithmeticDecoder(this.data, this.start, this.end);\n return (0, _util.shadow)(this, \"decoder\", decoder);\n },\n\n get contextCache() {\n var cache = new ContextCache();\n return (0, _util.shadow)(this, \"contextCache\", cache);\n }\n\n };\n\n function decodeInteger(contextCache, procedure, decoder) {\n var contexts = contextCache.getContexts(procedure);\n var prev = 1;\n\n function readBits(length) {\n var v = 0;\n\n for (var i = 0; i < length; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256;\n v = v << 1 | bit;\n }\n\n return v >>> 0;\n }\n\n var sign = readBits(1);\n var value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2);\n\n if (sign === 0) {\n return value;\n } else if (value > 0) {\n return -value;\n }\n\n return null;\n }\n\n function decodeIAID(contextCache, decoder, codeLength) {\n var contexts = contextCache.getContexts(\"IAID\");\n var prev = 1;\n\n for (var i = 0; i < codeLength; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev << 1 | bit;\n }\n\n if (codeLength < 31) {\n return prev & (1 << codeLength) - 1;\n }\n\n return prev & 0x7fffffff;\n }\n\n var SegmentTypes = [\"SymbolDictionary\", null, null, null, \"IntermediateTextRegion\", null, \"ImmediateTextRegion\", \"ImmediateLosslessTextRegion\", null, null, null, null, null, null, null, null, \"PatternDictionary\", null, null, null, \"IntermediateHalftoneRegion\", null, \"ImmediateHalftoneRegion\", \"ImmediateLosslessHalftoneRegion\", null, null, null, null, null, null, null, null, null, null, null, null, \"IntermediateGenericRegion\", null, \"ImmediateGenericRegion\", \"ImmediateLosslessGenericRegion\", \"IntermediateGenericRefinementRegion\", null, \"ImmediateGenericRefinementRegion\", \"ImmediateLosslessGenericRefinementRegion\", null, null, null, null, \"PageInformation\", \"EndOfPage\", \"EndOfStripe\", \"EndOfFile\", \"Profiles\", \"Tables\", null, null, null, null, null, null, null, null, \"Extension\"];\n var CodingTemplates = [[{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: 2,\n y: -1\n }, {\n x: -4,\n y: 0\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: 2,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: 2,\n y: -1\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -3,\n y: -1\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -4,\n y: 0\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }]];\n var RefinementTemplates = [{\n coding: [{\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }],\n reference: [{\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n x: 1,\n y: 0\n }, {\n x: -1,\n y: 1\n }, {\n x: 0,\n y: 1\n }, {\n x: 1,\n y: 1\n }]\n }, {\n coding: [{\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }],\n reference: [{\n x: 0,\n y: -1\n }, {\n x: -1,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n x: 1,\n y: 0\n }, {\n x: 0,\n y: 1\n }, {\n x: 1,\n y: 1\n }]\n }];\n var ReusedContexts = [0x9b25, 0x0795, 0x00e5, 0x0195];\n var RefinementReusedContexts = [0x0020, 0x0008];\n\n function decodeBitmapTemplate0(width, height, decodingContext) {\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts(\"GB\");\n var contextLabel,\n i,\n j,\n pixel,\n row,\n row1,\n row2,\n bitmap = [];\n var OLD_PIXEL_MASK = 0x7bf7;\n\n for (i = 0; i < height; i++) {\n row = bitmap[i] = new Uint8Array(width);\n row1 = i < 1 ? row : bitmap[i - 1];\n row2 = i < 2 ? row : bitmap[i - 2];\n contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4;\n\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel;\n }\n }\n\n return bitmap;\n }\n\n function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) {\n if (mmr) {\n const input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n return decodeMMRBitmap(input, width, height, false);\n }\n\n if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n\n var useskip = !!skip;\n var template = CodingTemplates[templateIndex].concat(at);\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\n });\n var templateLength = template.length;\n var templateX = new Int8Array(templateLength);\n var templateY = new Int8Array(templateLength);\n var changingTemplateEntries = [];\n var reuseMask = 0,\n minX = 0,\n maxX = 0,\n minY = 0;\n var c, k;\n\n for (k = 0; k < templateLength; k++) {\n templateX[k] = template[k].x;\n templateY[k] = template[k].y;\n minX = Math.min(minX, template[k].x);\n maxX = Math.max(maxX, template[k].x);\n minY = Math.min(minY, template[k].y);\n\n if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) {\n reuseMask |= 1 << templateLength - 1 - k;\n } else {\n changingTemplateEntries.push(k);\n }\n }\n\n var changingEntriesLength = changingTemplateEntries.length;\n var changingTemplateX = new Int8Array(changingEntriesLength);\n var changingTemplateY = new Int8Array(changingEntriesLength);\n var changingTemplateBit = new Uint16Array(changingEntriesLength);\n\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << templateLength - 1 - k;\n }\n\n var sbb_left = -minX;\n var sbb_top = -minY;\n var sbb_right = width - maxX;\n var pseudoPixelContext = ReusedContexts[templateIndex];\n var row = new Uint8Array(width);\n var bitmap = [];\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts(\"GB\");\n var ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n\n if (ltp) {\n bitmap.push(row);\n continue;\n }\n }\n\n row = new Uint8Array(row);\n bitmap.push(row);\n\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n contextLabel = contextLabel << 1 & reuseMask;\n\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n contextLabel = 0;\n shift = templateLength - 1;\n\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n }\n\n function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) {\n var codingTemplate = RefinementTemplates[templateIndex].coding;\n\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n\n var codingTemplateLength = codingTemplate.length;\n var codingTemplateX = new Int32Array(codingTemplateLength);\n var codingTemplateY = new Int32Array(codingTemplateLength);\n var k;\n\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n\n var referenceTemplate = RefinementTemplates[templateIndex].reference;\n\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n\n var referenceTemplateLength = referenceTemplate.length;\n var referenceTemplateX = new Int32Array(referenceTemplateLength);\n var referenceTemplateY = new Int32Array(referenceTemplateLength);\n\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n\n var referenceWidth = referenceBitmap[0].length;\n var referenceHeight = referenceBitmap.length;\n var pseudoPixelContext = RefinementReusedContexts[templateIndex];\n var bitmap = [];\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts(\"GR\");\n var ltp = 0;\n\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n\n if (ltp) {\n throw new Jbig2Error(\"prediction is not supported\");\n }\n }\n\n var row = new Uint8Array(width);\n bitmap.push(row);\n\n for (var j = 0; j < width; j++) {\n var i0, j0;\n var contextLabel = 0;\n\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | bitmap[i0][j0];\n }\n }\n\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | referenceBitmap[i0][j0];\n }\n }\n\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n }\n\n function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext, huffmanInput) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n }\n\n var newSymbols = [];\n var currentHeight = 0;\n var symbolCodeLength = (0, _core_utils.log2)(symbols.length + numberOfNewSymbols);\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n let tableB1, symbolWidths;\n\n if (huffman) {\n tableB1 = getStandardTable(1);\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1);\n }\n\n while (newSymbols.length < numberOfNewSymbols) {\n var deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, \"IADH\", decoder);\n currentHeight += deltaHeight;\n let currentWidth = 0,\n totalWidth = 0;\n const firstSymbol = huffman ? symbolWidths.length : 0;\n\n while (true) {\n var deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, \"IADW\", decoder);\n\n if (deltaWidth === null) {\n break;\n }\n\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n var bitmap;\n\n if (refinement) {\n var numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, 0, huffmanInput);\n } else {\n var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n var rdx = decodeInteger(contextCache, \"IARDX\", decoder);\n var rdy = decodeInteger(contextCache, \"IARDY\", decoder);\n var symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext);\n }\n\n newSymbols.push(bitmap);\n } else if (huffman) {\n symbolWidths.push(currentWidth);\n } else {\n bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext);\n newSymbols.push(bitmap);\n }\n }\n\n if (huffman && !refinement) {\n const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n let collectiveBitmap;\n\n if (bitmapSize === 0) {\n collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight);\n } else {\n const originalEnd = huffmanInput.end;\n const bitmapEnd = huffmanInput.position + bitmapSize;\n huffmanInput.end = bitmapEnd;\n collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth, currentHeight, false);\n huffmanInput.end = originalEnd;\n huffmanInput.position = bitmapEnd;\n }\n\n const numberOfSymbolsDecoded = symbolWidths.length;\n\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n newSymbols.push(collectiveBitmap);\n } else {\n let i,\n y,\n xMin = 0,\n xMax,\n bitmapWidth,\n symbolBitmap;\n\n for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n bitmapWidth = symbolWidths[i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n\n var exportedSymbols = [];\n var flags = [],\n currentFlag = false;\n var totalSymbolsLength = symbols.length + numberOfNewSymbols;\n\n while (flags.length < totalSymbolsLength) {\n var runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, \"IAEX\", decoder);\n\n while (runLength--) {\n flags.push(currentFlag);\n }\n\n currentFlag = !currentFlag;\n }\n\n for (var i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n\n for (var j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n\n return exportedSymbols;\n }\n\n function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, logStripSize, huffmanInput) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n var bitmap = [];\n var i, row;\n\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n\n if (defaultPixelValue) {\n for (var j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n\n bitmap.push(row);\n }\n\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n var stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, \"IADT\", decoder);\n var firstS = 0;\n i = 0;\n\n while (i < numberOfSymbolInstances) {\n var deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, \"IADT\", decoder);\n stripT += deltaT;\n var deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, \"IAFS\", decoder);\n firstS += deltaFirstS;\n var currentS = firstS;\n\n do {\n let currentT = 0;\n\n if (stripSize > 1) {\n currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, \"IAIT\", decoder);\n }\n\n var t = stripSize * stripT + currentT;\n var symbolId = huffman ? huffmanTables.symbolIDTable.decode(huffmanInput) : decodeIAID(contextCache, decoder, symbolCodeLength);\n var applyRefinement = refinement && (huffman ? huffmanInput.readBit() : decodeInteger(contextCache, \"IARI\", decoder));\n var symbolBitmap = inputSymbols[symbolId];\n var symbolWidth = symbolBitmap[0].length;\n var symbolHeight = symbolBitmap.length;\n\n if (applyRefinement) {\n var rdw = decodeInteger(contextCache, \"IARDW\", decoder);\n var rdh = decodeInteger(contextCache, \"IARDH\", decoder);\n var rdx = decodeInteger(contextCache, \"IARDX\", decoder);\n var rdy = decodeInteger(contextCache, \"IARDY\", decoder);\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext);\n }\n\n var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n var offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n var s2, t2, symbolRow;\n\n if (transposed) {\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n\n if (!row) {\n continue;\n }\n\n symbolRow = symbolBitmap[s2];\n var maxWidth = Math.min(width - offsetT, symbolWidth);\n\n switch (combinationOperator) {\n case 0:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n\n break;\n\n case 2:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n\n break;\n\n default:\n throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n }\n }\n\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n\n if (!row) {\n continue;\n }\n\n symbolRow = symbolBitmap[t2];\n\n switch (combinationOperator) {\n case 0:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n\n break;\n\n case 2:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n\n break;\n\n default:\n throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n }\n }\n\n currentS += symbolWidth - 1;\n }\n\n i++;\n var deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, \"IADS\", decoder);\n\n if (deltaS === null) {\n break;\n }\n\n currentS += deltaS + dsOffset;\n } while (true);\n }\n\n return bitmap;\n }\n\n function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) {\n const at = [];\n\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0\n });\n\n if (template === 0) {\n at.push({\n x: -3,\n y: -1\n });\n at.push({\n x: 2,\n y: -2\n });\n at.push({\n x: -2,\n y: -2\n });\n }\n }\n\n const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n const collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext);\n const patterns = [];\n\n for (let i = 0; i <= maxPatternIndex; i++) {\n const patternBitmap = [];\n const xMin = patternWidth * i;\n const xMax = xMin + patternWidth;\n\n for (let y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n\n patterns.push(patternBitmap);\n }\n\n return patterns;\n }\n\n function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) {\n const skip = null;\n\n if (enableSkip) {\n throw new Jbig2Error(\"skip is not supported\");\n }\n\n if (combinationOperator !== 0) {\n throw new Jbig2Error(\"operator \" + combinationOperator + \" is not supported in halftone region\");\n }\n\n const regionBitmap = [];\n let i, j, row;\n\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n\n regionBitmap.push(row);\n }\n\n const numberOfPatterns = patterns.length;\n const pattern0 = patterns[0];\n const patternWidth = pattern0[0].length,\n patternHeight = pattern0.length;\n const bitsPerValue = (0, _core_utils.log2)(numberOfPatterns);\n const at = [];\n\n if (!mmr) {\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1\n });\n\n if (template === 0) {\n at.push({\n x: -3,\n y: -1\n });\n at.push({\n x: 2,\n y: -2\n });\n at.push({\n x: -2,\n y: -2\n });\n }\n }\n\n const grayScaleBitPlanes = [];\n let mmrInput, bitmap;\n\n if (mmr) {\n mmrInput = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n }\n\n for (i = bitsPerValue - 1; i >= 0; i--) {\n if (mmr) {\n bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n } else {\n bitmap = decodeBitmap(false, gridWidth, gridHeight, template, false, skip, at, decodingContext);\n }\n\n grayScaleBitPlanes[i] = bitmap;\n }\n\n let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit = grayScaleBitPlanes[j][mg][ng] ^ bit;\n patternIndex |= bit << j;\n }\n\n patternBitmap = patterns[patternIndex];\n x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8;\n y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8;\n\n if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n let regionX, regionY;\n\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n\n return regionBitmap;\n }\n\n function readSegmentHeader(data, start) {\n var segmentHeader = {};\n segmentHeader.number = (0, _core_utils.readUint32)(data, start);\n var flags = data[start + 4];\n var segmentType = flags & 0x3f;\n\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n }\n\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n var pageAssociationFieldSize = !!(flags & 0x40);\n var referredFlags = data[start + 5];\n var referredToCount = referredFlags >> 5 & 7;\n var retainBits = [referredFlags & 31];\n var position = start + 6;\n\n if (referredFlags === 7) {\n referredToCount = (0, _core_utils.readUint32)(data, position - 1) & 0x1fffffff;\n position += 3;\n var bytes = referredToCount + 7 >> 3;\n retainBits[0] = data[position++];\n\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error(\"invalid referred-to flags\");\n }\n\n segmentHeader.retainBits = retainBits;\n let referredToSegmentNumberSize = 4;\n\n if (segmentHeader.number <= 256) {\n referredToSegmentNumberSize = 1;\n } else if (segmentHeader.number <= 65536) {\n referredToSegmentNumberSize = 2;\n }\n\n var referredTo = [];\n var i, ii;\n\n for (i = 0; i < referredToCount; i++) {\n let number;\n\n if (referredToSegmentNumberSize === 1) {\n number = data[position];\n } else if (referredToSegmentNumberSize === 2) {\n number = (0, _core_utils.readUint16)(data, position);\n } else {\n number = (0, _core_utils.readUint32)(data, position);\n }\n\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n\n segmentHeader.referredTo = referredTo;\n\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = (0, _core_utils.readUint32)(data, position);\n position += 4;\n }\n\n segmentHeader.length = (0, _core_utils.readUint32)(data, position);\n position += 4;\n\n if (segmentHeader.length === 0xffffffff) {\n if (segmentType === 38) {\n var genericRegionInfo = readRegionSegmentInformation(data, position);\n var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength];\n var genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n var searchPatternLength = 6;\n var searchPattern = new Uint8Array(searchPatternLength);\n\n if (!genericRegionMmr) {\n searchPattern[0] = 0xff;\n searchPattern[1] = 0xac;\n }\n\n searchPattern[2] = genericRegionInfo.height >>> 24 & 0xff;\n searchPattern[3] = genericRegionInfo.height >> 16 & 0xff;\n searchPattern[4] = genericRegionInfo.height >> 8 & 0xff;\n searchPattern[5] = genericRegionInfo.height & 0xff;\n\n for (i = position, ii = data.length; i < ii; i++) {\n var j = 0;\n\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n\n if (segmentHeader.length === 0xffffffff) {\n throw new Jbig2Error(\"segment end was not found\");\n }\n } else {\n throw new Jbig2Error(\"invalid unknown segment length\");\n }\n }\n\n segmentHeader.headerEnd = position;\n return segmentHeader;\n }\n\n function readSegments(header, data, start, end) {\n var segments = [];\n var position = start;\n\n while (position < end) {\n var segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n var segment = {\n header: segmentHeader,\n data\n };\n\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n\n segments.push(segment);\n\n if (segmentHeader.type === 51) {\n break;\n }\n }\n\n if (header.randomAccess) {\n for (var i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n\n return segments;\n }\n\n function readRegionSegmentInformation(data, start) {\n return {\n width: (0, _core_utils.readUint32)(data, start),\n height: (0, _core_utils.readUint32)(data, start + 4),\n x: (0, _core_utils.readUint32)(data, start + 8),\n y: (0, _core_utils.readUint32)(data, start + 12),\n combinationOperator: data[start + 16] & 7\n };\n }\n\n var RegionSegmentInformationFieldLength = 17;\n\n function processSegment(segment, visitor) {\n var header = segment.header;\n var data = segment.data,\n position = segment.start,\n end = segment.end;\n var args, at, i, atLength;\n\n switch (header.type) {\n case 0:\n var dictionary = {};\n var dictionaryFlags = (0, _core_utils.readUint16)(data, position);\n dictionary.huffman = !!(dictionaryFlags & 1);\n dictionary.refinement = !!(dictionaryFlags & 2);\n dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3;\n dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3;\n dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1;\n dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1;\n dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n dictionary.template = dictionaryFlags >> 10 & 3;\n dictionary.refinementTemplate = dictionaryFlags >> 12 & 1;\n position += 2;\n\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n dictionary.at = at;\n }\n\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n dictionary.refinementAt = at;\n }\n\n dictionary.numberOfExportedSymbols = (0, _core_utils.readUint32)(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = (0, _core_utils.readUint32)(data, position);\n position += 4;\n args = [dictionary, header.number, header.referredTo, data, position, end];\n break;\n\n case 6:\n case 7:\n var textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var textRegionSegmentFlags = (0, _core_utils.readUint16)(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.logStripSize = textRegionSegmentFlags >> 2 & 3;\n textRegion.stripSize = 1 << textRegion.logStripSize;\n textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3;\n textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1;\n textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27;\n textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1;\n\n if (textRegion.huffman) {\n var textRegionHuffmanFlags = (0, _core_utils.readUint16)(data, position);\n position += 2;\n textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3;\n textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3;\n textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3;\n textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3;\n textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3;\n textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3;\n textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 0x4000);\n }\n\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n textRegion.refinementAt = at;\n }\n\n textRegion.numberOfSymbolInstances = (0, _core_utils.readUint32)(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n\n case 16:\n const patternDictionary = {};\n const patternDictionaryFlags = data[position++];\n patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n patternDictionary.template = patternDictionaryFlags >> 1 & 3;\n patternDictionary.patternWidth = data[position++];\n patternDictionary.patternHeight = data[position++];\n patternDictionary.maxPatternIndex = (0, _core_utils.readUint32)(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n\n case 22:\n case 23:\n const halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const halftoneRegionFlags = data[position++];\n halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n halftoneRegion.template = halftoneRegionFlags >> 1 & 3;\n halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7;\n halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1;\n halftoneRegion.gridWidth = (0, _core_utils.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridHeight = (0, _core_utils.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = (0, _core_utils.readUint32)(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridOffsetY = (0, _core_utils.readUint32)(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridVectorX = (0, _core_utils.readUint16)(data, position);\n position += 2;\n halftoneRegion.gridVectorY = (0, _core_utils.readUint16)(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n\n case 38:\n case 39:\n var genericRegion = {};\n genericRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var genericRegionSegmentFlags = data[position++];\n genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n genericRegion.template = genericRegionSegmentFlags >> 1 & 3;\n genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n genericRegion.at = at;\n }\n\n args = [genericRegion, data, position, end];\n break;\n\n case 48:\n var pageInfo = {\n width: (0, _core_utils.readUint32)(data, position),\n height: (0, _core_utils.readUint32)(data, position + 4),\n resolutionX: (0, _core_utils.readUint32)(data, position + 8),\n resolutionY: (0, _core_utils.readUint32)(data, position + 12)\n };\n\n if (pageInfo.height === 0xffffffff) {\n delete pageInfo.height;\n }\n\n var pageSegmentFlags = data[position + 16];\n (0, _core_utils.readUint16)(data, position + 17);\n pageInfo.lossless = !!(pageSegmentFlags & 1);\n pageInfo.refinement = !!(pageSegmentFlags & 2);\n pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1;\n pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3;\n pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n args = [pageInfo];\n break;\n\n case 49:\n break;\n\n case 50:\n break;\n\n case 51:\n break;\n\n case 53:\n args = [header.number, data, position, end];\n break;\n\n case 62:\n break;\n\n default:\n throw new Jbig2Error(`segment type ${header.typeName}(${header.type})` + \" is not implemented\");\n }\n\n var callbackName = \"on\" + header.typeName;\n\n if (callbackName in visitor) {\n visitor[callbackName].apply(visitor, args);\n }\n }\n\n function processSegments(segments, visitor) {\n for (var i = 0, ii = segments.length; i < ii; i++) {\n processSegment(segments[i], visitor);\n }\n }\n\n function parseJbig2Chunks(chunks) {\n var visitor = new SimpleSegmentVisitor();\n\n for (var i = 0, ii = chunks.length; i < ii; i++) {\n var chunk = chunks[i];\n var segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n\n return visitor.buffer;\n }\n\n function parseJbig2(data) {\n const end = data.length;\n let position = 0;\n\n if (data[position] !== 0x97 || data[position + 1] !== 0x4a || data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || data[position + 4] !== 0x0d || data[position + 5] !== 0x0a || data[position + 6] !== 0x1a || data[position + 7] !== 0x0a) {\n throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n }\n\n const header = Object.create(null);\n position += 8;\n const flags = data[position++];\n header.randomAccess = !(flags & 1);\n\n if (!(flags & 2)) {\n header.numberOfPages = (0, _core_utils.readUint32)(data, position);\n position += 4;\n }\n\n const segments = readSegments(header, data, position, end);\n const visitor = new SimpleSegmentVisitor();\n processSegments(segments, visitor);\n const {\n width,\n height\n } = visitor.currentPageInfo;\n const bitPacked = visitor.buffer;\n const imgData = new Uint8ClampedArray(width * height);\n let q = 0,\n k = 0;\n\n for (let i = 0; i < height; i++) {\n let mask = 0,\n buffer;\n\n for (let j = 0; j < width; j++) {\n if (!mask) {\n mask = 128;\n buffer = bitPacked[k++];\n }\n\n imgData[q++] = buffer & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n return {\n imgData,\n width,\n height\n };\n }\n\n function SimpleSegmentVisitor() {}\n\n SimpleSegmentVisitor.prototype = {\n onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) {\n this.currentPageInfo = info;\n var rowSize = info.width + 7 >> 3;\n var buffer = new Uint8ClampedArray(rowSize * info.height);\n\n if (info.defaultPixelValue) {\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = 0xff;\n }\n }\n\n this.buffer = buffer;\n },\n drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) {\n var pageInfo = this.currentPageInfo;\n var width = regionInfo.width,\n height = regionInfo.height;\n var rowSize = pageInfo.width + 7 >> 3;\n var combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator;\n var buffer = this.buffer;\n var mask0 = 128 >> (regionInfo.x & 7);\n var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n var i, j, mask, offset;\n\n switch (combinationOperator) {\n case 0:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n\n mask >>= 1;\n\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n\n offset0 += rowSize;\n }\n\n break;\n\n case 2:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n\n mask >>= 1;\n\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n\n offset0 += rowSize;\n }\n\n break;\n\n default:\n throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n }\n },\n onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) {\n var regionInfo = region.info;\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion.apply(this, arguments);\n },\n onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) {\n let huffmanTables, huffmanInput;\n\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables);\n huffmanInput = new Reader(data, start, end);\n }\n\n var symbols = this.symbols;\n\n if (!symbols) {\n this.symbols = symbols = {};\n }\n\n var inputSymbols = [];\n\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n\n var decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext, huffmanInput);\n },\n onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) {\n var regionInfo = region.info;\n let huffmanTables, huffmanInput;\n var symbols = this.symbols;\n var inputSymbols = [];\n\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n\n var symbolCodeLength = (0, _core_utils.log2)(inputSymbols.length);\n\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(region, referredSegments, this.customTables, inputSymbols.length, huffmanInput);\n }\n\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext, region.logStripSize, huffmanInput);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion.apply(this, arguments);\n },\n\n onPatternDictionary(dictionary, currentSegment, data, start, end) {\n let patterns = this.patterns;\n\n if (!patterns) {\n this.patterns = patterns = {};\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext);\n },\n\n onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n const patterns = this.patterns[referredSegments[0]];\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n\n onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion.apply(this, arguments);\n },\n\n onTables(currentSegment, data, start, end) {\n let customTables = this.customTables;\n\n if (!customTables) {\n this.customTables = customTables = {};\n }\n\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\n }\n\n };\n\n function HuffmanLine(lineData) {\n if (lineData.length === 2) {\n this.isOOB = true;\n this.rangeLow = 0;\n this.prefixLength = lineData[0];\n this.rangeLength = 0;\n this.prefixCode = lineData[1];\n this.isLowerRange = false;\n } else {\n this.isOOB = false;\n this.rangeLow = lineData[0];\n this.prefixLength = lineData[1];\n this.rangeLength = lineData[2];\n this.prefixCode = lineData[3];\n this.isLowerRange = lineData[4] === \"lower\";\n }\n }\n\n function HuffmanTreeNode(line) {\n this.children = [];\n\n if (line) {\n this.isLeaf = true;\n this.rangeLength = line.rangeLength;\n this.rangeLow = line.rangeLow;\n this.isLowerRange = line.isLowerRange;\n this.isOOB = line.isOOB;\n } else {\n this.isLeaf = false;\n }\n }\n\n HuffmanTreeNode.prototype = {\n buildTree(line, shift) {\n const bit = line.prefixCode >> shift & 1;\n\n if (shift <= 0) {\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n let node = this.children[bit];\n\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\n }\n\n node.buildTree(line, shift - 1);\n }\n },\n\n decodeNode(reader) {\n if (this.isLeaf) {\n if (this.isOOB) {\n return null;\n }\n\n const htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n\n const node = this.children[reader.readBit()];\n\n if (!node) {\n throw new Jbig2Error(\"invalid Huffman data\");\n }\n\n return node.decodeNode(reader);\n }\n\n };\n\n function HuffmanTable(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n\n this.rootNode = new HuffmanTreeNode(null);\n\n for (let i = 0, ii = lines.length; i < ii; i++) {\n const line = lines[i];\n\n if (line.prefixLength > 0) {\n this.rootNode.buildTree(line, line.prefixLength - 1);\n }\n }\n }\n\n HuffmanTable.prototype = {\n decode(reader) {\n return this.rootNode.decodeNode(reader);\n },\n\n assignPrefixCodes(lines) {\n const linesLength = lines.length;\n let prefixLengthMax = 0;\n\n for (let i = 0; i < linesLength; i++) {\n prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n }\n\n const histogram = new Uint32Array(prefixLengthMax + 1);\n\n for (let i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\n }\n\n let currentLength = 1,\n firstCode = 0,\n currentCode,\n currentTemp,\n line;\n histogram[0] = 0;\n\n while (currentLength <= prefixLengthMax) {\n firstCode = firstCode + histogram[currentLength - 1] << 1;\n currentCode = firstCode;\n currentTemp = 0;\n\n while (currentTemp < linesLength) {\n line = lines[currentTemp];\n\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n\n currentTemp++;\n }\n\n currentLength++;\n }\n }\n\n };\n\n function decodeTablesSegment(data, start, end) {\n const flags = data[start];\n const lowestValue = (0, _core_utils.readUint32)(data, start + 1) & 0xffffffff;\n const highestValue = (0, _core_utils.readUint32)(data, start + 5) & 0xffffffff;\n const reader = new Reader(data, start + 9, end);\n const prefixSizeBits = (flags >> 1 & 7) + 1;\n const rangeSizeBits = (flags >> 4 & 7) + 1;\n const lines = [];\n let prefixLength,\n rangeLength,\n currentRangeLow = lowestValue;\n\n do {\n prefixLength = reader.readBits(prefixSizeBits);\n rangeLength = reader.readBits(rangeSizeBits);\n lines.push(new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0]));\n currentRangeLow += 1 << rangeLength;\n } while (currentRangeLow < highestValue);\n\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n if (flags & 1) {\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([prefixLength, 0]));\n }\n\n return new HuffmanTable(lines, false);\n }\n\n const standardTablesCache = {};\n\n function getStandardTable(number) {\n let table = standardTablesCache[number];\n\n if (table) {\n return table;\n }\n\n let lines;\n\n switch (number) {\n case 1:\n lines = [[0, 1, 4, 0x0], [16, 2, 8, 0x2], [272, 3, 16, 0x6], [65808, 3, 32, 0x7]];\n break;\n\n case 2:\n lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [75, 6, 32, 0x3e], [6, 0x3f]];\n break;\n\n case 3:\n lines = [[-256, 8, 8, 0xfe], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [-257, 8, 32, 0xff, \"lower\"], [75, 7, 32, 0x7e], [6, 0x3e]];\n break;\n\n case 4:\n lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [76, 5, 32, 0x1f]];\n break;\n\n case 5:\n lines = [[-255, 7, 8, 0x7e], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [-256, 7, 32, 0x7f, \"lower\"], [76, 6, 32, 0x3e]];\n break;\n\n case 6:\n lines = [[-2048, 5, 10, 0x1c], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xa], [-128, 5, 6, 0x1d], [-64, 5, 5, 0x1e], [-32, 4, 5, 0xb], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xc], [1024, 4, 10, 0xd], [-2049, 6, 32, 0x3e, \"lower\"], [2048, 6, 32, 0x3f]];\n break;\n\n case 7:\n lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1a], [-64, 5, 5, 0x1b], [-32, 4, 5, 0xa], [0, 4, 5, 0xb], [32, 5, 5, 0x1c], [64, 5, 6, 0x1d], [128, 4, 7, 0xc], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1e, \"lower\"], [2048, 5, 32, 0x1f]];\n break;\n\n case 8:\n lines = [[-15, 8, 3, 0xfc], [-7, 9, 1, 0x1fc], [-5, 8, 1, 0xfd], [-3, 9, 0, 0x1fd], [-2, 7, 0, 0x7c], [-1, 4, 0, 0xa], [0, 2, 1, 0x0], [2, 5, 0, 0x1a], [3, 6, 0, 0x3a], [4, 3, 4, 0x4], [20, 6, 1, 0x3b], [22, 4, 4, 0xb], [38, 4, 5, 0xc], [70, 5, 6, 0x1b], [134, 5, 7, 0x1c], [262, 6, 7, 0x3c], [390, 7, 8, 0x7d], [646, 6, 10, 0x3d], [-16, 9, 32, 0x1fe, \"lower\"], [1670, 9, 32, 0x1ff], [2, 0x1]];\n break;\n\n case 9:\n lines = [[-31, 8, 4, 0xfc], [-15, 9, 2, 0x1fc], [-11, 8, 2, 0xfd], [-7, 9, 1, 0x1fd], [-5, 7, 1, 0x7c], [-3, 4, 1, 0xa], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1a], [5, 6, 1, 0x3a], [7, 3, 5, 0x4], [39, 6, 2, 0x3b], [43, 4, 5, 0xb], [75, 4, 6, 0xc], [139, 5, 7, 0x1b], [267, 5, 8, 0x1c], [523, 6, 8, 0x3c], [779, 7, 9, 0x7d], [1291, 6, 11, 0x3d], [-32, 9, 32, 0x1fe, \"lower\"], [3339, 9, 32, 0x1ff], [2, 0x0]];\n break;\n\n case 10:\n lines = [[-21, 7, 4, 0x7a], [-5, 8, 0, 0xfc], [-4, 7, 0, 0x7b], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7c], [5, 8, 0, 0xfd], [6, 2, 6, 0x1], [70, 5, 5, 0x1a], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3a], [582, 6, 9, 0x3b], [1094, 6, 10, 0x3c], [2118, 7, 11, 0x7d], [-22, 8, 32, 0xfe, \"lower\"], [4166, 8, 32, 0xff], [2, 0x2]];\n break;\n\n case 11:\n lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xc], [5, 4, 1, 0xd], [7, 5, 1, 0x1c], [9, 5, 2, 0x1d], [13, 6, 2, 0x3c], [17, 7, 2, 0x7a], [21, 7, 3, 0x7b], [29, 7, 4, 0x7c], [45, 7, 5, 0x7d], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]];\n break;\n\n case 12:\n lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1c], [6, 5, 1, 0x1d], [8, 6, 1, 0x3c], [10, 7, 0, 0x7a], [11, 7, 1, 0x7b], [13, 7, 2, 0x7c], [17, 7, 3, 0x7d], [25, 7, 4, 0x7e], [41, 8, 5, 0xfe], [73, 8, 32, 0xff]];\n break;\n\n case 13:\n lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xc], [4, 5, 0, 0x1c], [5, 4, 1, 0xd], [7, 3, 3, 0x5], [15, 6, 1, 0x3a], [17, 6, 2, 0x3b], [21, 6, 3, 0x3c], [29, 6, 4, 0x3d], [45, 6, 5, 0x3e], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]];\n break;\n\n case 14:\n lines = [[-2, 3, 0, 0x4], [-1, 3, 0, 0x5], [0, 1, 0, 0x0], [1, 3, 0, 0x6], [2, 3, 0, 0x7]];\n break;\n\n case 15:\n lines = [[-24, 7, 4, 0x7c], [-8, 6, 2, 0x3c], [-4, 5, 1, 0x1c], [-2, 4, 0, 0xc], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xd], [3, 5, 1, 0x1d], [5, 6, 2, 0x3d], [9, 7, 4, 0x7d], [-25, 7, 32, 0x7e, \"lower\"], [25, 7, 32, 0x7f]];\n break;\n\n default:\n throw new Jbig2Error(`standard table B.${number} does not exist`);\n }\n\n for (let i = 0, ii = lines.length; i < ii; i++) {\n lines[i] = new HuffmanLine(lines[i]);\n }\n\n table = new HuffmanTable(lines, true);\n standardTablesCache[number] = table;\n return table;\n }\n\n function Reader(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n this.position = start;\n this.shift = -1;\n this.currentByte = 0;\n }\n\n Reader.prototype = {\n readBit() {\n if (this.shift < 0) {\n if (this.position >= this.end) {\n throw new Jbig2Error(\"end of data while reading bit\");\n }\n\n this.currentByte = this.data[this.position++];\n this.shift = 7;\n }\n\n const bit = this.currentByte >> this.shift & 1;\n this.shift--;\n return bit;\n },\n\n readBits(numBits) {\n let result = 0,\n i;\n\n for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\n }\n\n return result;\n },\n\n byteAlign() {\n this.shift = -1;\n },\n\n next() {\n if (this.position >= this.end) {\n return -1;\n }\n\n return this.data[this.position++];\n }\n\n };\n\n function getCustomHuffmanTable(index, referredTo, customTables) {\n let currentIndex = 0;\n\n for (let i = 0, ii = referredTo.length; i < ii; i++) {\n const table = customTables[referredTo[i]];\n\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n\n currentIndex++;\n }\n }\n\n throw new Jbig2Error(\"can't find custom Huffman table\");\n }\n\n function getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) {\n const codes = [];\n\n for (let i = 0; i <= 34; i++) {\n const codeLength = reader.readBits(4);\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n }\n\n const runCodesTable = new HuffmanTable(codes, false);\n codes.length = 0;\n\n for (let i = 0; i < numberOfSymbols;) {\n const codeLength = runCodesTable.decode(reader);\n\n if (codeLength >= 32) {\n let repeatedLength, numberOfRepeats, j;\n\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error(\"no previous value in symbol ID table\");\n }\n\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n\n default:\n throw new Jbig2Error(\"invalid code length in symbol ID table\");\n }\n\n for (j = 0; j < numberOfRepeats; j++) {\n codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n i++;\n }\n } else {\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n i++;\n }\n }\n\n reader.byteAlign();\n const symbolIDTable = new HuffmanTable(codes, false);\n let customIndex = 0,\n tableFirstS,\n tableDeltaS,\n tableDeltaT;\n\n switch (textRegion.huffmanFS) {\n case 0:\n case 1:\n tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n break;\n\n case 3:\n tableFirstS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman FS selector\");\n }\n\n switch (textRegion.huffmanDS) {\n case 0:\n case 1:\n case 2:\n tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n break;\n\n case 3:\n tableDeltaS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman DS selector\");\n }\n\n switch (textRegion.huffmanDT) {\n case 0:\n case 1:\n case 2:\n tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n break;\n\n case 3:\n tableDeltaT = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman DT selector\");\n }\n\n if (textRegion.refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n return {\n symbolIDTable,\n tableFirstS,\n tableDeltaS,\n tableDeltaT\n };\n }\n\n function getSymbolDictionaryHuffmanTables(dictionary, referredTo, customTables) {\n let customIndex = 0,\n tableDeltaHeight,\n tableDeltaWidth;\n\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman DH selector\");\n }\n\n switch (dictionary.huffmanDWSelector) {\n case 0:\n case 1:\n tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n break;\n\n case 3:\n tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman DW selector\");\n }\n\n let tableBitmapSize, tableAggregateInstances;\n\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo, customTables);\n } else {\n tableAggregateInstances = getStandardTable(1);\n }\n\n return {\n tableDeltaHeight,\n tableDeltaWidth,\n tableBitmapSize,\n tableAggregateInstances\n };\n }\n\n function readUncompressedBitmap(reader, width, height) {\n const bitmap = [];\n\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n\n for (let x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n\n reader.byteAlign();\n }\n\n return bitmap;\n }\n\n function decodeMMRBitmap(input, width, height, endOfBlock) {\n const params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock\n };\n const decoder = new _ccitt.CCITTFaxDecoder(input, params);\n const bitmap = [];\n let currentByte,\n eof = false;\n\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n let shift = -1;\n\n for (let x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n\n if (currentByte === -1) {\n currentByte = 0;\n eof = true;\n }\n\n shift = 7;\n }\n\n row[x] = currentByte >> shift & 1;\n shift--;\n }\n }\n\n if (endOfBlock && !eof) {\n const lookForEOFLimit = 5;\n\n for (let i = 0; i < lookForEOFLimit; i++) {\n if (decoder.readNextChar() === -1) {\n break;\n }\n }\n }\n\n return bitmap;\n }\n\n function Jbig2Image() {}\n\n Jbig2Image.prototype = {\n parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n },\n\n parse(data) {\n const {\n imgData,\n width,\n height\n } = parseJbig2(data);\n this.width = width;\n this.height = height;\n return imgData;\n }\n\n };\n return Jbig2Image;\n}();\n\nexports.Jbig2Image = Jbig2Image;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ArithmeticDecoder = void 0;\nconst QeTable = [{\n qe: 0x5601,\n nmps: 1,\n nlps: 1,\n switchFlag: 1\n}, {\n qe: 0x3401,\n nmps: 2,\n nlps: 6,\n switchFlag: 0\n}, {\n qe: 0x1801,\n nmps: 3,\n nlps: 9,\n switchFlag: 0\n}, {\n qe: 0x0ac1,\n nmps: 4,\n nlps: 12,\n switchFlag: 0\n}, {\n qe: 0x0521,\n nmps: 5,\n nlps: 29,\n switchFlag: 0\n}, {\n qe: 0x0221,\n nmps: 38,\n nlps: 33,\n switchFlag: 0\n}, {\n qe: 0x5601,\n nmps: 7,\n nlps: 6,\n switchFlag: 1\n}, {\n qe: 0x5401,\n nmps: 8,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x4801,\n nmps: 9,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x3801,\n nmps: 10,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x3001,\n nmps: 11,\n nlps: 17,\n switchFlag: 0\n}, {\n qe: 0x2401,\n nmps: 12,\n nlps: 18,\n switchFlag: 0\n}, {\n qe: 0x1c01,\n nmps: 13,\n nlps: 20,\n switchFlag: 0\n}, {\n qe: 0x1601,\n nmps: 29,\n nlps: 21,\n switchFlag: 0\n}, {\n qe: 0x5601,\n nmps: 15,\n nlps: 14,\n switchFlag: 1\n}, {\n qe: 0x5401,\n nmps: 16,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x5101,\n nmps: 17,\n nlps: 15,\n switchFlag: 0\n}, {\n qe: 0x4801,\n nmps: 18,\n nlps: 16,\n switchFlag: 0\n}, {\n qe: 0x3801,\n nmps: 19,\n nlps: 17,\n switchFlag: 0\n}, {\n qe: 0x3401,\n nmps: 20,\n nlps: 18,\n switchFlag: 0\n}, {\n qe: 0x3001,\n nmps: 21,\n nlps: 19,\n switchFlag: 0\n}, {\n qe: 0x2801,\n nmps: 22,\n nlps: 19,\n switchFlag: 0\n}, {\n qe: 0x2401,\n nmps: 23,\n nlps: 20,\n switchFlag: 0\n}, {\n qe: 0x2201,\n nmps: 24,\n nlps: 21,\n switchFlag: 0\n}, {\n qe: 0x1c01,\n nmps: 25,\n nlps: 22,\n switchFlag: 0\n}, {\n qe: 0x1801,\n nmps: 26,\n nlps: 23,\n switchFlag: 0\n}, {\n qe: 0x1601,\n nmps: 27,\n nlps: 24,\n switchFlag: 0\n}, {\n qe: 0x1401,\n nmps: 28,\n nlps: 25,\n switchFlag: 0\n}, {\n qe: 0x1201,\n nmps: 29,\n nlps: 26,\n switchFlag: 0\n}, {\n qe: 0x1101,\n nmps: 30,\n nlps: 27,\n switchFlag: 0\n}, {\n qe: 0x0ac1,\n nmps: 31,\n nlps: 28,\n switchFlag: 0\n}, {\n qe: 0x09c1,\n nmps: 32,\n nlps: 29,\n switchFlag: 0\n}, {\n qe: 0x08a1,\n nmps: 33,\n nlps: 30,\n switchFlag: 0\n}, {\n qe: 0x0521,\n nmps: 34,\n nlps: 31,\n switchFlag: 0\n}, {\n qe: 0x0441,\n nmps: 35,\n nlps: 32,\n switchFlag: 0\n}, {\n qe: 0x02a1,\n nmps: 36,\n nlps: 33,\n switchFlag: 0\n}, {\n qe: 0x0221,\n nmps: 37,\n nlps: 34,\n switchFlag: 0\n}, {\n qe: 0x0141,\n nmps: 38,\n nlps: 35,\n switchFlag: 0\n}, {\n qe: 0x0111,\n nmps: 39,\n nlps: 36,\n switchFlag: 0\n}, {\n qe: 0x0085,\n nmps: 40,\n nlps: 37,\n switchFlag: 0\n}, {\n qe: 0x0049,\n nmps: 41,\n nlps: 38,\n switchFlag: 0\n}, {\n qe: 0x0025,\n nmps: 42,\n nlps: 39,\n switchFlag: 0\n}, {\n qe: 0x0015,\n nmps: 43,\n nlps: 40,\n switchFlag: 0\n}, {\n qe: 0x0009,\n nmps: 44,\n nlps: 41,\n switchFlag: 0\n}, {\n qe: 0x0005,\n nmps: 45,\n nlps: 42,\n switchFlag: 0\n}, {\n qe: 0x0001,\n nmps: 45,\n nlps: 43,\n switchFlag: 0\n}, {\n qe: 0x5601,\n nmps: 46,\n nlps: 46,\n switchFlag: 0\n}];\n\nclass ArithmeticDecoder {\n constructor(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n this.chigh = data[start];\n this.clow = 0;\n this.byteIn();\n this.chigh = this.chigh << 7 & 0xffff | this.clow >> 9 & 0x7f;\n this.clow = this.clow << 7 & 0xffff;\n this.ct -= 7;\n this.a = 0x8000;\n }\n\n byteIn() {\n const data = this.data;\n let bp = this.bp;\n\n if (data[bp] === 0xff) {\n if (data[bp + 1] > 0x8f) {\n this.clow += 0xff00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += data[bp] << 9;\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n this.ct = 8;\n this.bp = bp;\n }\n\n if (this.clow > 0xffff) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xffff;\n }\n }\n\n readBit(contexts, pos) {\n let cx_index = contexts[pos] >> 1,\n cx_mps = contexts[pos] & 1;\n const qeTableIcx = QeTable[cx_index];\n const qeIcx = qeTableIcx.qe;\n let d;\n let a = this.a - qeIcx;\n\n if (this.chigh < qeIcx) {\n if (a < qeIcx) {\n a = qeIcx;\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n } else {\n a = qeIcx;\n d = 1 ^ cx_mps;\n\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n\n a <<= 1;\n this.chigh = this.chigh << 1 & 0xffff | this.clow >> 15 & 1;\n this.clow = this.clow << 1 & 0xffff;\n this.ct--;\n } while ((a & 0x8000) === 0);\n\n this.a = a;\n contexts[pos] = cx_index << 1 | cx_mps;\n return d;\n }\n\n}\n\nexports.ArithmeticDecoder = ArithmeticDecoder;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpegStream = void 0;\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _jpg = __w_pdfjs_require__(19);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst JpegStream = function JpegStreamClosure() {\n function JpegStream(stream, maybeLength, dict, params) {\n let ch;\n\n while ((ch = stream.getByte()) !== -1) {\n if (ch === 0xff) {\n stream.skip(-1);\n break;\n }\n }\n\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n\n _stream.DecodeStream.call(this, maybeLength);\n }\n\n JpegStream.prototype = Object.create(_stream.DecodeStream.prototype);\n Object.defineProperty(JpegStream.prototype, \"bytes\", {\n get: function JpegStream_bytes() {\n return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n\n JpegStream.prototype.ensureBuffer = function (requested) {};\n\n JpegStream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n\n const jpegOptions = {\n decodeTransform: undefined,\n colorTransform: undefined\n };\n const decodeArr = this.dict.getArray(\"Decode\", \"D\");\n\n if (this.forceRGB && Array.isArray(decodeArr)) {\n const bitsPerComponent = this.dict.get(\"BitsPerComponent\") || 8;\n const decodeArrLength = decodeArr.length;\n const transform = new Int32Array(decodeArrLength);\n let transformNeeded = false;\n const maxValue = (1 << bitsPerComponent) - 1;\n\n for (let i = 0; i < decodeArrLength; i += 2) {\n transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0;\n transform[i + 1] = decodeArr[i] * maxValue | 0;\n\n if (transform[i] !== 256 || transform[i + 1] !== 0) {\n transformNeeded = true;\n }\n }\n\n if (transformNeeded) {\n jpegOptions.decodeTransform = transform;\n }\n }\n\n if ((0, _primitives.isDict)(this.params)) {\n const colorTransform = this.params.get(\"ColorTransform\");\n\n if (Number.isInteger(colorTransform)) {\n jpegOptions.colorTransform = colorTransform;\n }\n }\n\n const jpegImage = new _jpg.JpegImage(jpegOptions);\n jpegImage.parse(this.bytes);\n const data = jpegImage.getData({\n width: this.drawWidth,\n height: this.drawHeight,\n forceRGB: this.forceRGB,\n isSourcePDF: true\n });\n this.buffer = data;\n this.bufferLength = data.length;\n this.eof = true;\n };\n\n return JpegStream;\n}();\n\nexports.JpegStream = JpegStream;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpegImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nclass JpegError extends _util.BaseException {\n constructor(msg) {\n super(`JPEG error: ${msg}`);\n }\n\n}\n\nclass DNLMarkerError extends _util.BaseException {\n constructor(message, scanLines) {\n super(message);\n this.scanLines = scanLines;\n }\n\n}\n\nclass EOIMarkerError extends _util.BaseException {}\n\nvar JpegImage = function JpegImageClosure() {\n var dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n\n function JpegImage({\n decodeTransform = null,\n colorTransform = -1\n } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n function buildHuffmanTable(codeLengths, values) {\n var k = 0,\n code = [],\n i,\n j,\n length = 16;\n\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n\n code.push({\n children: [],\n index: 0\n });\n var p = code[0],\n q;\n\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n\n while (p.index > 0) {\n p = code.pop();\n }\n\n p.index++;\n code.push(p);\n\n while (code.length <= i) {\n code.push(q = {\n children: [],\n index: 0\n });\n p.children[p.index] = q.children;\n p = q;\n }\n\n k++;\n }\n\n if (i + 1 < length) {\n code.push(q = {\n children: [],\n index: 0\n });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n\n return code[0].children;\n }\n\n function getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n }\n\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, parseDNLMarker = false) {\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n const startOffset = offset;\n let bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n\n bitsData = data[offset++];\n\n if (bitsData === 0xff) {\n var nextByte = data[offset++];\n\n if (nextByte) {\n if (nextByte === 0xdc && parseDNLMarker) {\n offset += 2;\n const scanLines = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\"Found DNL marker (0xFFDC) while parsing scan data\", scanLines);\n }\n } else if (nextByte === 0xd9) {\n if (parseDNLMarker) {\n const maybeScanLines = blockRow * 8;\n\n if (maybeScanLines > 0 && maybeScanLines < frame.scanLines / 10) {\n throw new DNLMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data, \" + \"possibly caused by incorrect `scanLines` parameter\", maybeScanLines);\n }\n }\n\n throw new EOIMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data\");\n }\n\n throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`);\n }\n }\n\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n var node = tree;\n\n while (true) {\n node = node[readBit()];\n\n switch (typeof node) {\n case \"number\":\n return node;\n\n case \"object\":\n continue;\n }\n\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n var n = 0;\n\n while (length > 0) {\n n = n << 1 | readBit();\n length--;\n }\n\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n\n var n = receive(length);\n\n if (n >= 1 << length - 1) {\n return n;\n }\n\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, blockOffset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[blockOffset] = component.pred += diff;\n var k = 1;\n\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n\n if (s === 0) {\n if (r < 15) {\n break;\n }\n\n k += 16;\n continue;\n }\n\n k += r;\n var z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, blockOffset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[blockOffset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, blockOffset) {\n component.blockData[blockOffset] |= readBit() << successive;\n }\n\n var eobrun = 0;\n\n function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n\n var k = spectralStart,\n e = spectralEnd;\n\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n\n k += 16;\n continue;\n }\n\n k += r;\n var z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n var successiveACState = 0,\n successiveACNextValue;\n\n function decodeACSuccessive(component, blockOffset) {\n var k = spectralStart;\n var e = spectralEnd;\n var r = 0;\n var s;\n var rs;\n\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n\n switch (successiveACState) {\n case 0:\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError(\"invalid ACn encoding\");\n }\n\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n\n continue;\n\n case 1:\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n\n break;\n\n case 3:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n\n break;\n\n case 4:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n\n break;\n }\n\n k++;\n }\n\n if (successiveACState === 4) {\n eobrun--;\n\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\n\n function decodeMcu(component, decode, mcu, row, col) {\n var mcuRow = mcu / mcusPerLine | 0;\n var mcuCol = mcu % mcusPerLine;\n blockRow = mcuRow * component.v + row;\n var blockCol = mcuCol * component.h + col;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n function decodeBlock(component, decode, mcu) {\n blockRow = mcu / component.blocksPerLine | 0;\n var blockCol = mcu % component.blocksPerLine;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n var mcu = 0,\n fileMarker;\n var mcuExpected;\n\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n\n var h, v;\n\n while (mcu <= mcuExpected) {\n var mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n\n mcu++;\n }\n }\n }\n\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n\n if (!fileMarker) {\n break;\n }\n\n if (fileMarker.invalid) {\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n (0, _util.warn)(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`);\n offset = fileMarker.offset;\n }\n\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n }\n\n function quantizeAndInverse(component, blockBufferOffset, p) {\n var qt = component.quantizationTable,\n blockData = component.blockData;\n var v0, v1, v2, v3, v4, v5, v6, v7;\n var p0, p1, p2, p3, p4, p5, p6, p7;\n var t;\n\n if (!qt) {\n throw new JpegError(\"missing required Quantization Table.\");\n }\n\n for (var row = 0; row < 64; row += 8) {\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n p0 *= qt[row];\n\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = dctSqrt2 * p0 + 512 >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n v0 = dctSqrt2 * p0 + 128 >> 8;\n v1 = dctSqrt2 * p4 + 128 >> 8;\n v2 = p2;\n v3 = p6;\n v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8;\n v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n v0 = v0 + v1 + 1 >> 1;\n v1 = v0 - v1;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n v4 = v4 + v6 + 1 >> 1;\n v6 = v4 - v6;\n v7 = v7 + v5 + 1 >> 1;\n v5 = v7 - v5;\n v0 = v0 + v3 + 1 >> 1;\n v3 = v0 - v3;\n v1 = v1 + v2 + 1 >> 1;\n v2 = v1 - v2;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n\n for (var col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = dctSqrt2 * p0 + 8192 >> 14;\n\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = t + 2056 >> 4;\n }\n\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n\n v0 = dctSqrt2 * p0 + 2048 >> 12;\n v1 = dctSqrt2 * p4 + 2048 >> 12;\n v2 = p2;\n v3 = p6;\n v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12;\n v5 = p3;\n v6 = p5;\n v0 = (v0 + v1 + 1 >> 1) + 4112;\n v1 = v0 - v1;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n v4 = v4 + v6 + 1 >> 1;\n v6 = v4 - v6;\n v7 = v7 + v5 + 1 >> 1;\n v5 = v7 - v5;\n v0 = v0 + v3 + 1 >> 1;\n v3 = v0 - v3;\n v1 = v1 + v2 + 1 >> 1;\n v2 = v1 - v2;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n\n if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n }\n\n function buildComponentData(frame, component) {\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var computationBuffer = new Int16Array(64);\n\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n\n return component.blockData;\n }\n\n function findNextFileMarker(data, currentPos, startPos = currentPos) {\n const maxPos = data.length - 1;\n var newPos = startPos < currentPos ? startPos : currentPos;\n\n if (currentPos >= maxPos) {\n return null;\n }\n\n var currentMarker = (0, _core_utils.readUint16)(data, currentPos);\n\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos\n };\n }\n\n var newMarker = (0, _core_utils.readUint16)(data, newPos);\n\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null;\n }\n\n newMarker = (0, _core_utils.readUint16)(data, newPos);\n }\n\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos\n };\n }\n\n JpegImage.prototype = {\n parse(data, {\n dnlScanLines = null\n } = {}) {\n function readDataBlock() {\n const length = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n let endOffset = offset + length - 2;\n var fileMarker = findNextFileMarker(data, endOffset, offset);\n\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)(\"readDataBlock - incorrect length, current marker is: \" + fileMarker.invalid);\n endOffset = fileMarker.offset;\n }\n\n var array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n\n for (var i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);\n var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);\n var blocksPerLineForMcu = mcusPerLine * component.h;\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\n var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n var offset = 0;\n var jfif = null;\n var adobe = null;\n var frame, resetInterval;\n let numSOSMarkers = 0;\n var quantizationTables = [];\n var huffmanTablesAC = [],\n huffmanTablesDC = [];\n let fileMarker = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n if (fileMarker !== 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n\n fileMarker = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== 0xffd9) {\n var i, j, l;\n\n switch (fileMarker) {\n case 0xffe0:\n case 0xffe1:\n case 0xffe2:\n case 0xffe3:\n case 0xffe4:\n case 0xffe5:\n case 0xffe6:\n case 0xffe7:\n case 0xffe8:\n case 0xffe9:\n case 0xffea:\n case 0xffeb:\n case 0xffec:\n case 0xffed:\n case 0xffee:\n case 0xffef:\n case 0xfffe:\n var appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n if (appData[0] === 0x4a && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {\n jfif = {\n version: {\n major: appData[5],\n minor: appData[6]\n },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n\n if (fileMarker === 0xffee) {\n if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6f && appData[3] === 0x62 && appData[4] === 0x65) {\n adobe = {\n version: appData[5] << 8 | appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n\n break;\n\n case 0xffdb:\n const quantizationTablesLength = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n var z;\n\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n var tableData = new Uint16Array(64);\n\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n\n break;\n\n case 0xffc0:\n case 0xffc1:\n case 0xffc2:\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n\n offset += 2;\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n frame.components = [];\n frame.componentIds = {};\n var componentsCount = data[offset++],\n componentId;\n var maxH = 0,\n maxV = 0;\n\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n\n if (maxH < h) {\n maxH = h;\n }\n\n if (maxV < v) {\n maxV = v;\n }\n\n var qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4:\n const huffmanLength = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n for (i = 2; i < huffmanLength;) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n\n var huffmanValues = new Uint8Array(codeLengthSum);\n\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n\n break;\n\n case 0xffdd:\n offset += 2;\n resetInterval = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n break;\n\n case 0xffda:\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n offset += 2;\n var selectorsCount = data[offset++];\n var components = [],\n component;\n\n for (i = 0; i < selectorsCount; i++) {\n var componentIndex = frame.componentIds[data[offset++]];\n component = frame.components[componentIndex];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n\n try {\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker);\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n (0, _util.warn)(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, {\n dnlScanLines: ex.scanLines\n });\n } else if (ex instanceof EOIMarkerError) {\n (0, _util.warn)(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n\n throw ex;\n }\n\n break;\n\n case 0xffdc:\n offset += 4;\n break;\n\n case 0xffff:\n if (data[offset] !== 0xff) {\n offset--;\n }\n\n break;\n\n default:\n const nextFileMarker = findNextFileMarker(data, offset - 2, offset - 3);\n\n if (nextFileMarker && nextFileMarker.invalid) {\n (0, _util.warn)(\"JpegImage.parse - unexpected data, current marker is: \" + nextFileMarker.invalid);\n offset = nextFileMarker.offset;\n break;\n }\n\n if (offset >= data.length - 1) {\n (0, _util.warn)(\"JpegImage.parse - reached the end of the image data \" + \"without finding an EOI marker (0xFFD9).\");\n break markerLoop;\n }\n\n throw new JpegError(\"JpegImage.parse - unknown marker: \" + fileMarker.toString(16));\n }\n\n fileMarker = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n\n for (i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var quantizationTable = quantizationTables[component.quantizationId];\n\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn\n });\n }\n\n this.numComponents = this.components.length;\n return undefined;\n },\n\n _getLinearizedBlockData(width, height, isSourcePDF = false) {\n var scaleX = this.width / width,\n scaleY = this.height / height;\n var component, componentScaleX, componentScaleY, blocksPerScanline;\n var x, y, i, j, k;\n var index;\n var offset = 0;\n var output;\n var numComponents = this.components.length;\n var dataLength = width * height * numComponents;\n var data = new Uint8ClampedArray(dataLength);\n var xScaleBlockOffset = new Uint32Array(width);\n var mask3LSB = 0xfffffff8;\n let lastComponentScaleX;\n\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = component.blocksPerLine + 1 << 3;\n\n if (componentScaleX !== lastComponentScaleX) {\n for (x = 0; x < width; x++) {\n j = 0 | x * componentScaleX;\n xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;\n }\n\n lastComponentScaleX = componentScaleX;\n }\n\n for (y = 0; y < height; y++) {\n j = 0 | y * componentScaleY;\n index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;\n\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n let transform = this._decodeTransform;\n\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength;) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];\n }\n }\n }\n\n return data;\n },\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n return !!this.adobe.transformCode;\n }\n\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n return false;\n }\n\n return true;\n }\n\n if (this._colorTransform === 1) {\n return true;\n }\n\n return false;\n },\n\n _convertYccToRgb: function convertYccToRgb(data) {\n var Y, Cb, Cr;\n\n for (var i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n\n return data;\n },\n _convertYcckToRgb: function convertYcckToRgb(data) {\n var Y, Cb, Cr, k;\n var offset = 0;\n\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n data[offset++] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776);\n data[offset++] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665);\n data[offset++] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n\n return data.subarray(0, offset);\n },\n _convertYcckToCmyk: function convertYcckToCmyk(data) {\n var Y, Cb, Cr;\n\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n }\n\n return data;\n },\n _convertCmykToRgb: function convertCmykToRgb(data) {\n var c, m, y, k;\n var offset = 0;\n\n for (var i = 0, length = data.length; i < length; i += 4) {\n c = data[i];\n m = data[i + 1];\n y = data[i + 2];\n k = data[i + 3];\n data[offset++] = 255 + c * (-0.00006747147073602441 * c + 0.0008379262121013727 * m + 0.0002894718188643294 * y + 0.003264231057537806 * k - 1.1185611867203937) + m * (0.000026374107616089405 * m - 0.00008626949158638572 * y - 0.0002748769067499491 * k - 0.02155688794978967) + y * (-0.00003878099212869363 * y - 0.0003267808279485286 * k + 0.0686742238595345) - k * (0.0003361971776183937 * k + 0.7430659151342254);\n data[offset++] = 255 + c * (0.00013596372813588848 * c + 0.000924537132573585 * m + 0.00010567359618683593 * y + 0.0004791864687436512 * k - 0.3109689587515875) + m * (-0.00023545346108370344 * m + 0.0002702845253534714 * y + 0.0020200308977307156 * k - 0.7488052167015494) + y * (0.00006834815998235662 * y + 0.00015168452363460973 * k - 0.09751927774728933) - k * (0.00031891311758832814 * k + 0.7364883807733168);\n data[offset++] = 255 + c * (0.000013598650411385307 * c + 0.00012423956175490851 * m + 0.0004751985097583589 * y - 0.0000036729317476630422 * k - 0.05562186980264034) + m * (0.00016141380598724676 * m + 0.0009692239130725186 * y + 0.0007782692450036253 * k - 0.44015232367526463) + y * (5.068882914068769e-7 * y + 0.0017778369011375071 * k - 0.7591454649749609) - k * (0.0003435319965105553 * k + 0.7063770186160144);\n }\n\n return data.subarray(0, offset);\n },\n\n getData({\n width,\n height,\n forceRGB = false,\n isSourcePDF = false\n }) {\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n\n var data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && forceRGB) {\n var dataLength = data.length;\n var rgbData = new Uint8ClampedArray(dataLength * 3);\n var offset = 0;\n\n for (var i = 0; i < dataLength; i++) {\n var grayColor = data[i];\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n }\n\n return rgbData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n\n return this._convertYcckToCmyk(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n\n return data;\n }\n\n };\n return JpegImage;\n}();\n\nexports.JpegImage = JpegImage;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpxStream = void 0;\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _jpx = __w_pdfjs_require__(21);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst JpxStream = function JpxStreamClosure() {\n function JpxStream(stream, maybeLength, dict, params) {\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n\n _stream.DecodeStream.call(this, maybeLength);\n }\n\n JpxStream.prototype = Object.create(_stream.DecodeStream.prototype);\n Object.defineProperty(JpxStream.prototype, \"bytes\", {\n get: function JpxStream_bytes() {\n return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n\n JpxStream.prototype.ensureBuffer = function (requested) {};\n\n JpxStream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n\n const jpxImage = new _jpx.JpxImage();\n jpxImage.parse(this.bytes);\n const width = jpxImage.width;\n const height = jpxImage.height;\n const componentsCount = jpxImage.componentsCount;\n const tileCount = jpxImage.tiles.length;\n\n if (tileCount === 1) {\n this.buffer = jpxImage.tiles[0].items;\n } else {\n const data = new Uint8ClampedArray(width * height * componentsCount);\n\n for (let k = 0; k < tileCount; k++) {\n const tileComponents = jpxImage.tiles[k];\n const tileWidth = tileComponents.width;\n const tileHeight = tileComponents.height;\n const tileLeft = tileComponents.left;\n const tileTop = tileComponents.top;\n const src = tileComponents.items;\n let srcPosition = 0;\n let dataPosition = (width * tileTop + tileLeft) * componentsCount;\n const imgRowSize = width * componentsCount;\n const tileRowSize = tileWidth * componentsCount;\n\n for (let j = 0; j < tileHeight; j++) {\n const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n data.set(rowBytes, dataPosition);\n srcPosition += tileRowSize;\n dataPosition += imgRowSize;\n }\n }\n\n this.buffer = data;\n }\n\n this.bufferLength = this.buffer.length;\n this.eof = true;\n };\n\n return JpxStream;\n}();\n\nexports.JpxStream = JpxStream;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpxImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(17);\n\nclass JpxError extends _util.BaseException {\n constructor(msg) {\n super(`JPX error: ${msg}`);\n }\n\n}\n\nvar JpxImage = function JpxImageClosure() {\n var SubbandsGainLog2 = {\n LL: 0,\n LH: 1,\n HL: 1,\n HH: 2\n };\n\n function JpxImage() {\n this.failOnCorruptedImage = false;\n }\n\n JpxImage.prototype = {\n parse: function JpxImage_parse(data) {\n var head = (0, _core_utils.readUint16)(data, 0);\n\n if (head === 0xff4f) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n\n var position = 0,\n length = data.length;\n\n while (position < length) {\n var headerSize = 8;\n var lbox = (0, _core_utils.readUint32)(data, position);\n var tbox = (0, _core_utils.readUint32)(data, position + 4);\n position += headerSize;\n\n if (lbox === 1) {\n lbox = (0, _core_utils.readUint32)(data, position) * 4294967296 + (0, _core_utils.readUint32)(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n\n if (lbox < headerSize) {\n throw new JpxError(\"Invalid box field size\");\n }\n\n var dataLength = lbox - headerSize;\n var jumpDataLength = true;\n\n switch (tbox) {\n case 0x6a703268:\n jumpDataLength = false;\n break;\n\n case 0x636f6c72:\n var method = data[position];\n\n if (method === 1) {\n var colorspace = (0, _core_utils.readUint32)(data, position + 3);\n\n switch (colorspace) {\n case 16:\n case 17:\n case 18:\n break;\n\n default:\n (0, _util.warn)(\"Unknown colorspace \" + colorspace);\n break;\n }\n } else if (method === 2) {\n (0, _util.info)(\"ICC profile not supported\");\n }\n\n break;\n\n case 0x6a703263:\n this.parseCodestream(data, position, position + dataLength);\n break;\n\n case 0x6a502020:\n if ((0, _core_utils.readUint32)(data, position) !== 0x0d0a870a) {\n (0, _util.warn)(\"Invalid JP2 signature\");\n }\n\n break;\n\n case 0x6a501a1a:\n case 0x66747970:\n case 0x72726571:\n case 0x72657320:\n case 0x69686472:\n break;\n\n default:\n var headerType = String.fromCharCode(tbox >> 24 & 0xff, tbox >> 16 & 0xff, tbox >> 8 & 0xff, tbox & 0xff);\n (0, _util.warn)(\"Unsupported header type \" + tbox + \" (\" + headerType + \")\");\n break;\n }\n\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n },\n parseImageProperties: function JpxImage_parseImageProperties(stream) {\n var newByte = stream.getByte();\n\n while (newByte >= 0) {\n var oldByte = newByte;\n newByte = stream.getByte();\n var code = oldByte << 8 | newByte;\n\n if (code === 0xff51) {\n stream.skip(4);\n var Xsiz = stream.getInt32() >>> 0;\n var Ysiz = stream.getInt32() >>> 0;\n var XOsiz = stream.getInt32() >>> 0;\n var YOsiz = stream.getInt32() >>> 0;\n stream.skip(16);\n var Csiz = stream.getUint16();\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n this.bitsPerComponent = 8;\n return;\n }\n }\n\n throw new JpxError(\"No size marker found in JPX stream\");\n },\n parseCodestream: function JpxImage_parseCodestream(data, start, end) {\n var context = {};\n var doNotRecover = false;\n\n try {\n var position = start;\n\n while (position + 1 < end) {\n var code = (0, _core_utils.readUint16)(data, position);\n position += 2;\n var length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n\n switch (code) {\n case 0xff4f:\n context.mainHeader = true;\n break;\n\n case 0xffd9:\n break;\n\n case 0xff51:\n length = (0, _core_utils.readUint16)(data, position);\n var siz = {};\n siz.Xsiz = (0, _core_utils.readUint32)(data, position + 4);\n siz.Ysiz = (0, _core_utils.readUint32)(data, position + 8);\n siz.XOsiz = (0, _core_utils.readUint32)(data, position + 12);\n siz.YOsiz = (0, _core_utils.readUint32)(data, position + 16);\n siz.XTsiz = (0, _core_utils.readUint32)(data, position + 20);\n siz.YTsiz = (0, _core_utils.readUint32)(data, position + 24);\n siz.XTOsiz = (0, _core_utils.readUint32)(data, position + 28);\n siz.YTOsiz = (0, _core_utils.readUint32)(data, position + 32);\n var componentsCount = (0, _core_utils.readUint16)(data, position + 36);\n siz.Csiz = componentsCount;\n var components = [];\n j = position + 38;\n\n for (var i = 0; i < componentsCount; i++) {\n var component = {\n precision: (data[j] & 0x7f) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 2]\n };\n j += 3;\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n\n case 0xff5c:\n length = (0, _core_utils.readUint16)(data, position);\n var qcd = {};\n j = position + 2;\n sqcd = data[j++];\n\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n\n while (j < length + position) {\n var spqcd = {};\n\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n j += 2;\n }\n\n spqcds.push(spqcd);\n }\n\n qcd.SPqcds = spqcds;\n\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n\n break;\n\n case 0xff5d:\n length = (0, _core_utils.readUint16)(data, position);\n var qcc = {};\n j = position + 2;\n var cqcc;\n\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = (0, _core_utils.readUint16)(data, j);\n j += 2;\n }\n\n sqcd = data[j++];\n\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n\n while (j < length + position) {\n spqcd = {};\n\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n j += 2;\n }\n\n spqcds.push(spqcd);\n }\n\n qcc.SPqcds = spqcds;\n\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n\n break;\n\n case 0xff52:\n length = (0, _core_utils.readUint16)(data, position);\n var cod = {};\n j = position + 2;\n var scod = data[j++];\n cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n cod.sopMarkerUsed = !!(scod & 2);\n cod.ephMarkerUsed = !!(scod & 4);\n cod.progressionOrder = data[j++];\n cod.layersCount = (0, _core_utils.readUint16)(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n cod.decompositionLevelsCount = data[j++];\n cod.xcb = (data[j++] & 0xf) + 2;\n cod.ycb = (data[j++] & 0xf) + 2;\n var blockStyle = data[j++];\n cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n cod.resetContextProbabilities = !!(blockStyle & 2);\n cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n cod.verticallyStripe = !!(blockStyle & 8);\n cod.predictableTermination = !!(blockStyle & 16);\n cod.segmentationSymbolUsed = !!(blockStyle & 32);\n cod.reversibleTransformation = data[j++];\n\n if (cod.entropyCoderWithCustomPrecincts) {\n var precinctsSizes = [];\n\n while (j < length + position) {\n var precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xf,\n PPy: precinctsSize >> 4\n });\n }\n\n cod.precinctsSizes = precinctsSizes;\n }\n\n var unsupported = [];\n\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push(\"selectiveArithmeticCodingBypass\");\n }\n\n if (cod.resetContextProbabilities) {\n unsupported.push(\"resetContextProbabilities\");\n }\n\n if (cod.terminationOnEachCodingPass) {\n unsupported.push(\"terminationOnEachCodingPass\");\n }\n\n if (cod.verticallyStripe) {\n unsupported.push(\"verticallyStripe\");\n }\n\n if (cod.predictableTermination) {\n unsupported.push(\"predictableTermination\");\n }\n\n if (unsupported.length > 0) {\n doNotRecover = true;\n throw new Error(\"Unsupported COD options (\" + unsupported.join(\", \") + \")\");\n }\n\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n\n break;\n\n case 0xff90:\n length = (0, _core_utils.readUint16)(data, position);\n tile = {};\n tile.index = (0, _core_utils.readUint16)(data, position + 2);\n tile.length = (0, _core_utils.readUint32)(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n context.mainHeader = false;\n\n if (tile.partIndex === 0) {\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0);\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0);\n }\n\n context.currentTile = tile;\n break;\n\n case 0xff93:\n tile = context.currentTile;\n\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n\n case 0xff55:\n case 0xff57:\n case 0xff58:\n case 0xff64:\n length = (0, _core_utils.readUint16)(data, position);\n break;\n\n case 0xff53:\n throw new Error(\"Codestream code 0xFF53 (COC) is not implemented\");\n\n default:\n throw new Error(\"Unknown codestream code: \" + code.toString(16));\n }\n\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n (0, _util.warn)(\"JPX: Trying to recover from: \" + e.message);\n }\n }\n\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n }\n };\n\n function calculateComponentDimensions(component, siz) {\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n }\n\n function calculateTileGrids(context, components) {\n var siz = context.SIZ;\n var tile,\n tiles = [];\n var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n\n for (var q = 0; q < numYtiles; q++) {\n for (var p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n\n context.tiles = tiles;\n var componentsCount = siz.Csiz;\n\n for (var i = 0, ii = componentsCount; i < ii; i++) {\n var component = components[i];\n\n for (var j = 0, jj = tiles.length; j < jj; j++) {\n var tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n }\n\n function getBlocksDimensions(context, component, r) {\n var codOrCoc = component.codingStyleParameters;\n var result = {};\n\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n\n result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n }\n\n function buildPrecincts(context, resolution, dimensions) {\n var precinctWidth = 1 << dimensions.PPx;\n var precinctHeight = 1 << dimensions.PPy;\n var isZeroRes = resolution.resLevel === 0;\n var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1);\n var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1);\n var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0;\n var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0;\n var numprecincts = numprecinctswide * numprecinctshigh;\n resolution.precinctParameters = {\n precinctWidth,\n precinctHeight,\n numprecinctswide,\n numprecinctshigh,\n numprecincts,\n precinctWidthInSubband,\n precinctHeightInSubband\n };\n }\n\n function buildCodeblocks(context, subband, dimensions) {\n var xcb_ = dimensions.xcb_;\n var ycb_ = dimensions.ycb_;\n var codeblockWidth = 1 << xcb_;\n var codeblockHeight = 1 << ycb_;\n var cbx0 = subband.tbx0 >> xcb_;\n var cby0 = subband.tby0 >> ycb_;\n var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_;\n var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_;\n var precinctParameters = subband.resolution.precinctParameters;\n var codeblocks = [];\n var precincts = [];\n var i, j, codeblock, precinctNumber;\n\n for (j = cby0; j < cby1; j++) {\n for (i = cbx0; i < cbx1; i++) {\n codeblock = {\n cbx: i,\n cby: j,\n tbx0: codeblockWidth * i,\n tby0: codeblockHeight * j,\n tbx1: codeblockWidth * (i + 1),\n tby1: codeblockHeight * (j + 1)\n };\n codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband);\n var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband);\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n\n if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) {\n continue;\n }\n\n codeblocks.push(codeblock);\n var precinct = precincts[precinctNumber];\n\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j\n };\n }\n\n codeblock.precinct = precinct;\n }\n }\n\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n }\n\n function createPacket(resolution, precinctNumber, layerNumber) {\n var precinctCodeblocks = [];\n var subbands = resolution.subbands;\n\n for (var i = 0, ii = subbands.length; i < ii; i++) {\n var subband = subbands[i];\n var codeblocks = subband.codeblocks;\n\n for (var j = 0, jj = codeblocks.length; j < jj; j++) {\n var codeblock = codeblocks[j];\n\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n\n precinctCodeblocks.push(codeblock);\n }\n }\n\n return {\n layerNumber,\n codeblocks: precinctCodeblocks\n };\n }\n\n function LayerResolutionComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n\n var l = 0,\n r = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n\n k = 0;\n }\n\n i = 0;\n }\n\n r = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\n }\n\n function ResolutionLayerComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n\n var r = 0,\n l = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n\n k = 0;\n }\n\n i = 0;\n }\n\n l = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\n }\n\n function ResolutionPositionComponentLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var l, r, c, p;\n var maxDecompositionLevelsCount = 0;\n\n for (c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount);\n }\n\n var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1);\n\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n var maxNumPrecincts = 0;\n\n for (c = 0; c < componentsCount; ++c) {\n var resolutions = tile.components[c].resolutions;\n\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts);\n }\n }\n\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n\n if (p >= numprecincts) {\n continue;\n }\n\n for (; l < layersCount;) {\n var packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n\n l = 0;\n }\n\n c = 0;\n }\n\n p = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\n }\n\n function PositionComponentResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var precinctsIterationSizes = precinctsSizes;\n var l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n for (; r <= decompositionLevelsCount; r++) {\n var resolution = component.resolutions[r];\n var sizeInImageScale = precinctsSizes.components[c].resolutions[r];\n var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n if (k === null) {\n continue;\n }\n\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n\n l = 0;\n }\n\n r = 0;\n }\n\n c = 0;\n }\n\n px = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\n }\n\n function ComponentPositionResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; c < componentsCount; ++c) {\n var component = tile.components[c];\n var precinctsIterationSizes = precinctsSizes.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; r <= decompositionLevelsCount; r++) {\n var resolution = component.resolutions[r];\n var sizeInImageScale = precinctsIterationSizes.resolutions[r];\n var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n if (k === null) {\n continue;\n }\n\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n\n l = 0;\n }\n\n r = 0;\n }\n\n px = 0;\n }\n\n py = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\n }\n\n function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {\n var posX = pxIndex * precinctIterationSizes.minWidth;\n var posY = pyIndex * precinctIterationSizes.minHeight;\n\n if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) {\n return null;\n }\n\n var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n }\n\n function getPrecinctSizesInImageScale(tile) {\n var componentsCount = tile.components.length;\n var minWidth = Number.MAX_VALUE;\n var minHeight = Number.MAX_VALUE;\n var maxNumWide = 0;\n var maxNumHigh = 0;\n var sizePerComponent = new Array(componentsCount);\n\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n var sizePerResolution = new Array(decompositionLevelsCount + 1);\n var minWidthCurrentComponent = Number.MAX_VALUE;\n var minHeightCurrentComponent = Number.MAX_VALUE;\n var maxNumWideCurrentComponent = 0;\n var maxNumHighCurrentComponent = 0;\n var scale = 1;\n\n for (var r = decompositionLevelsCount; r >= 0; --r) {\n var resolution = component.resolutions[r];\n var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth;\n var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution);\n minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution);\n maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide);\n maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh);\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution\n };\n scale <<= 1;\n }\n\n minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent\n };\n }\n\n return {\n components: sizePerComponent,\n minWidth,\n minHeight,\n maxNumWide,\n maxNumHigh\n };\n }\n\n function buildPackets(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var componentsCount = siz.Csiz;\n\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n var resolutions = [];\n var subbands = [];\n\n for (var r = 0; r <= decompositionLevelsCount; r++) {\n var blocksDimensions = getBlocksDimensions(context, component, r);\n var resolution = {};\n var scale = 1 << decompositionLevelsCount - r;\n resolution.trx0 = Math.ceil(component.tcx0 / scale);\n resolution.try0 = Math.ceil(component.tcy0 / scale);\n resolution.trx1 = Math.ceil(component.tcx1 / scale);\n resolution.try1 = Math.ceil(component.tcy1 / scale);\n resolution.resLevel = r;\n buildPrecincts(context, resolution, blocksDimensions);\n resolutions.push(resolution);\n var subband;\n\n if (r === 0) {\n subband = {};\n subband.type = \"LL\";\n subband.tbx0 = Math.ceil(component.tcx0 / scale);\n subband.tby0 = Math.ceil(component.tcy0 / scale);\n subband.tbx1 = Math.ceil(component.tcx1 / scale);\n subband.tby1 = Math.ceil(component.tcy1 / scale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolution.subbands = [subband];\n } else {\n var bscale = 1 << decompositionLevelsCount - r + 1;\n var resolutionSubbands = [];\n subband = {};\n subband.type = \"HL\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n subband = {};\n subband.type = \"LH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n subband = {};\n subband.type = \"HH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n resolution.subbands = resolutionSubbands;\n }\n }\n\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n\n var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(context);\n break;\n\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context);\n break;\n\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context);\n break;\n\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(context);\n break;\n\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context);\n break;\n\n default:\n throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n }\n }\n\n function parseTilePackets(context, data, offset, dataLength) {\n var position = 0;\n var buffer,\n bufferSize = 0,\n skipNextBit = false;\n\n function readBits(count) {\n while (bufferSize < count) {\n var b = data[offset + position];\n position++;\n\n if (skipNextBit) {\n buffer = buffer << 7 | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = buffer << 8 | b;\n bufferSize += 8;\n }\n\n if (b === 0xff) {\n skipNextBit = true;\n }\n }\n\n bufferSize -= count;\n return buffer >>> bufferSize & (1 << count) - 1;\n }\n\n function skipMarkerIfEqual(value) {\n if (data[offset + position - 1] === 0xff && data[offset + position] === value) {\n skipBytes(1);\n return true;\n } else if (data[offset + position] === 0xff && data[offset + position + 1] === value) {\n skipBytes(2);\n return true;\n }\n\n return false;\n }\n\n function skipBytes(count) {\n position += count;\n }\n\n function alignToByte() {\n bufferSize = 0;\n\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n\n if (readBits(1) === 0) {\n return 2;\n }\n\n var value = readBits(2);\n\n if (value < 3) {\n return value + 3;\n }\n\n value = readBits(5);\n\n if (value < 31) {\n return value + 6;\n }\n\n value = readBits(7);\n return value + 37;\n }\n\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var sopMarkerUsed = context.COD.sopMarkerUsed;\n var ephMarkerUsed = context.COD.ephMarkerUsed;\n var packetsIterator = tile.packetsIterator;\n\n while (position < dataLength) {\n alignToByte();\n\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n skipBytes(4);\n }\n\n var packet = packetsIterator.nextPacket();\n\n if (!readBits(1)) {\n continue;\n }\n\n var layerNumber = packet.layerNumber;\n var queue = [],\n codeblock;\n\n for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n var precinct = codeblock.precinct;\n var codeblockColumn = codeblock.cbx - precinct.cbxMin;\n var codeblockRow = codeblock.cby - precinct.cbyMin;\n var codeblockIncluded = false;\n var firstTimeInclusion = false;\n var valueReady;\n\n if (codeblock.included !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n precinct = codeblock.precinct;\n var inclusionTree, zeroBitPlanesTree;\n\n if (precinct.inclusionTree !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n var width = precinct.cbxMax - precinct.cbxMin + 1;\n var height = precinct.cbyMax - precinct.cbyMin + 1;\n inclusionTree = new InclusionTree(width, height, layerNumber);\n zeroBitPlanesTree = new TagTree(width, height);\n precinct.inclusionTree = inclusionTree;\n precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n }\n\n if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n\n if (!codeblockIncluded) {\n continue;\n }\n\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n\n var codingpasses = readCodingpasses();\n\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n\n var codingpassesLog2 = (0, _core_utils.log2)(codingpasses);\n var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n var codedDataLength = readBits(bits);\n queue.push({\n codeblock,\n codingpasses,\n dataLength: codedDataLength\n });\n }\n\n alignToByte();\n\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n\n while (queue.length > 0) {\n var packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n\n if (codeblock.data === undefined) {\n codeblock.data = [];\n }\n\n codeblock.data.push({\n data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses\n });\n position += packetItem.dataLength;\n }\n }\n\n return position;\n }\n\n function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) {\n var x0 = subband.tbx0;\n var y0 = subband.tby0;\n var width = subband.tbx1 - subband.tbx0;\n var codeblocks = subband.codeblocks;\n var right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n var bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n for (var i = 0, ii = codeblocks.length; i < ii; ++i) {\n var codeblock = codeblocks[i];\n var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n var blockHeight = codeblock.tby1_ - codeblock.tby0_;\n\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n\n if (codeblock.data === undefined) {\n continue;\n }\n\n var bitModel, currentCodingpassType;\n bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb);\n currentCodingpassType = 2;\n var data = codeblock.data,\n totalLength = 0,\n codingpasses = 0;\n var j, jj, dataItem;\n\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n\n var encodedData = new Uint8Array(totalLength);\n var position = 0;\n\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n\n var decoder = new _arithmetic_decoder.ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n\n case 2:\n bitModel.runCleanupPass();\n\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n\n break;\n }\n\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n\n var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n var sign = bitModel.coefficentsSign;\n var magnitude = bitModel.coefficentsMagnitude;\n var bitsDecoded = bitModel.bitsDecoded;\n var magnitudeCorrection = reversible ? 0 : 0.5;\n var k, n, nb;\n position = 0;\n var interleave = subband.type !== \"LL\";\n\n for (j = 0; j < blockHeight; j++) {\n var row = offset / width | 0;\n var levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n\n if (sign[position] !== 0) {\n n = -n;\n }\n\n nb = bitsDecoded[position];\n var pos = interleave ? levelOffset + (offset << 1) : offset;\n\n if (reversible && nb >= mb) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << mb - nb);\n }\n }\n\n offset++;\n position++;\n }\n\n offset += width - blockWidth;\n }\n }\n }\n\n function transformTile(context, tile, c) {\n var component = tile.components[c];\n var codingStyleParameters = component.codingStyleParameters;\n var quantizationParameters = component.quantizationParameters;\n var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount;\n var spqcds = quantizationParameters.SPqcds;\n var scalarExpounded = quantizationParameters.scalarExpounded;\n var guardBits = quantizationParameters.guardBits;\n var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n var precision = context.components[c].precision;\n var reversible = codingStyleParameters.reversibleTransformation;\n var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform();\n var subbandCoefficients = [];\n var b = 0;\n\n for (var i = 0; i <= decompositionLevelsCount; i++) {\n var resolution = component.resolutions[i];\n var width = resolution.trx1 - resolution.trx0;\n var height = resolution.try1 - resolution.try0;\n var coefficients = new Float32Array(width * height);\n\n for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {\n var mu, epsilon;\n\n if (!scalarExpounded) {\n mu = spqcds[0].mu;\n epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n } else {\n mu = spqcds[b].mu;\n epsilon = spqcds[b].epsilon;\n b++;\n }\n\n var subband = resolution.subbands[j];\n var gainLog2 = SubbandsGainLog2[subband.type];\n var delta = reversible ? 1 : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n var mb = guardBits + epsilon - 1;\n copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed);\n }\n\n subbandCoefficients.push({\n width,\n height,\n items: coefficients\n });\n }\n\n var result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0);\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items\n };\n }\n\n function transformComponents(context) {\n var siz = context.SIZ;\n var components = context.components;\n var componentsCount = siz.Csiz;\n var resultImages = [];\n\n for (var i = 0, ii = context.tiles.length; i < ii; i++) {\n var tile = context.tiles[i];\n var transformedTiles = [];\n var c;\n\n for (c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n\n var tile0 = transformedTiles[0];\n var out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n var result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out\n };\n var shift, offset;\n var pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n var fourComponents = componentsCount === 4;\n var y0items = transformedTiles[0].items;\n var y1items = transformedTiles[1].items;\n var y2items = transformedTiles[2].items;\n var y3items = fourComponents ? transformedTiles[3].items : null;\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n var component0 = tile.components[0];\n var alpha01 = componentsCount - 3;\n jj = y0items.length;\n\n if (!component0.codingStyleParameters.reversibleTransformation) {\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n out[pos++] = y0 + 1.402 * y2 >> shift;\n out[pos++] = y0 - 0.34413 * y1 - 0.71414 * y2 >> shift;\n out[pos++] = y0 + 1.772 * y1 >> shift;\n }\n } else {\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n const g = y0 - (y2 + y1 >> 2);\n out[pos++] = g + y2 >> shift;\n out[pos++] = g >> shift;\n out[pos++] = g + y1 >> shift;\n }\n }\n\n if (fourComponents) {\n for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n out[pos] = y3items[j] + offset >> shift;\n }\n }\n } else {\n for (c = 0; c < componentsCount; c++) {\n var items = transformedTiles[c].items;\n shift = components[c].precision - 8;\n offset = (128 << shift) + 0.5;\n\n for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = items[j] + offset >> shift;\n pos += componentsCount;\n }\n }\n }\n\n resultImages.push(result);\n }\n\n return resultImages;\n }\n\n function initializeTile(context, tileIndex) {\n var siz = context.SIZ;\n var componentsCount = siz.Csiz;\n var tile = context.tiles[tileIndex];\n\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n var codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n }\n\n var TagTree = function TagTreeClosure() {\n function TagTree(width, height) {\n var levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n\n for (var i = 0; i < levelsLength; i++) {\n var level = {\n width,\n height,\n items: []\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n TagTree.prototype = {\n reset: function TagTree_reset(i, j) {\n var currentLevel = 0,\n value = 0,\n level;\n\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n var index = i + j * level.width;\n\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n },\n incrementValue: function TagTree_incrementValue() {\n var level = this.levels[this.currentLevel];\n level.items[level.index]++;\n },\n nextLevel: function TagTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n currentLevel--;\n\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n };\n return TagTree;\n }();\n\n var InclusionTree = function InclusionTreeClosure() {\n function InclusionTree(width, height, defaultValue) {\n var levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n\n for (var i = 0; i < levelsLength; i++) {\n var items = new Uint8Array(width * height);\n\n for (var j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n\n var level = {\n width,\n height,\n items\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n InclusionTree.prototype = {\n reset: function InclusionTree_reset(i, j, stopValue) {\n var currentLevel = 0;\n\n while (currentLevel < this.levels.length) {\n var level = this.levels[currentLevel];\n var index = i + j * level.width;\n level.index = index;\n var value = level.items[index];\n\n if (value === 0xff) {\n break;\n }\n\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n this.propagateValues();\n return false;\n }\n\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n\n this.currentLevel = currentLevel - 1;\n return true;\n },\n incrementValue: function InclusionTree_incrementValue(stopValue) {\n var level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n },\n propagateValues: function InclusionTree_propagateValues() {\n var levelIndex = this.currentLevel;\n var level = this.levels[levelIndex];\n var currentValue = level.items[level.index];\n\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n },\n nextLevel: function InclusionTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n level.items[level.index] = 0xff;\n currentLevel--;\n\n if (currentLevel < 0) {\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n };\n return InclusionTree;\n }();\n\n var BitModel = function BitModelClosure() {\n var UNIFORM_CONTEXT = 17;\n var RUNLENGTH_CONTEXT = 18;\n var LLAndLHContextsLabel = new Uint8Array([0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8]);\n var HLContextLabel = new Uint8Array([0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8]);\n var HHContextLabel = new Uint8Array([0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8]);\n\n function BitModel(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n let contextLabelTable;\n\n if (subband === \"HH\") {\n contextLabelTable = HHContextLabel;\n } else if (subband === \"HL\") {\n contextLabelTable = HLContextLabel;\n } else {\n contextLabelTable = LLAndLHContextsLabel;\n }\n\n this.contextLabelTable = contextLabelTable;\n var coefficientCount = width * height;\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n let coefficentsMagnitude;\n\n if (mb > 14) {\n coefficentsMagnitude = new Uint32Array(coefficientCount);\n } else if (mb > 6) {\n coefficentsMagnitude = new Uint16Array(coefficientCount);\n } else {\n coefficentsMagnitude = new Uint8Array(coefficientCount);\n }\n\n this.coefficentsMagnitude = coefficentsMagnitude;\n this.processingFlags = new Uint8Array(coefficientCount);\n var bitsDecoded = new Uint8Array(coefficientCount);\n\n if (zeroBitPlanes !== 0) {\n for (var i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n\n this.bitsDecoded = bitsDecoded;\n this.reset();\n }\n\n BitModel.prototype = {\n setDecoder: function BitModel_setDecoder(decoder) {\n this.decoder = decoder;\n },\n reset: function BitModel_reset() {\n this.contexts = new Int8Array(19);\n this.contexts[0] = 4 << 1 | 0;\n this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0;\n this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0;\n },\n setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) {\n var neighborsSignificance = this.neighborsSignificance;\n var width = this.width,\n height = this.height;\n var left = column > 0;\n var right = column + 1 < width;\n var i;\n\n if (row > 0) {\n i = index - width;\n\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n\n neighborsSignificance[i] += 0x04;\n }\n\n if (row + 1 < height) {\n i = index + width;\n\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n\n neighborsSignificance[i] += 0x04;\n }\n\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n\n neighborsSignificance[index] |= 0x80;\n },\n runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var neighborsSignificance = this.neighborsSignificance;\n var processingFlags = this.processingFlags;\n var contexts = this.contexts;\n var labels = this.contextLabelTable;\n var bitsDecoded = this.bitsDecoded;\n var processedInverseMask = ~1;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n\n for (var i0 = 0; i0 < height; i0 += 4) {\n for (var j = 0; j < width; j++) {\n var index = i0 * width + j;\n\n for (var i1 = 0; i1 < 4; i1++, index += width) {\n var i = i0 + i1;\n\n if (i >= height) {\n break;\n }\n\n processingFlags[index] &= processedInverseMask;\n\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n\n if (decision) {\n var sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n },\n decodeSignBit: function BitModel_decodeSignBit(row, column, index) {\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var contribution, sign0, sign1, significance1;\n var contextLabel, decoded;\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n\n var horizontalContribution = 3 * contribution;\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n\n return decoded;\n },\n runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var neighborsSignificance = this.neighborsSignificance;\n var contexts = this.contexts;\n var bitsDecoded = this.bitsDecoded;\n var processingFlags = this.processingFlags;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n var length = width * height;\n var width4 = width * 4;\n\n for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n\n for (var j = 0; j < width; j++) {\n for (var index = index0 + j; index < indexNext; index += width) {\n if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n\n var contextLabel = 16;\n\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n var significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n\n var bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit;\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n },\n runCleanupPass: function BitModel_runCleanupPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var neighborsSignificance = this.neighborsSignificance;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var contexts = this.contexts;\n var labels = this.contextLabelTable;\n var bitsDecoded = this.bitsDecoded;\n var processingFlags = this.processingFlags;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n var oneRowDown = width;\n var twoRowsDown = width * 2;\n var threeRowsDown = width * 3;\n var iNext;\n\n for (var i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n var indexBase = i0 * width;\n var checkAllEmpty = i0 + 3 < height;\n\n for (var j = 0; j < width; j++) {\n var index0 = indexBase + j;\n var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0;\n var i1 = 0,\n index = index0;\n var i = i0,\n sign;\n\n if (allEmpty) {\n var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT);\n\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue;\n }\n\n i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\n }\n\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n index = index0;\n\n for (var i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n\n i1++;\n }\n\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n\n bitsDecoded[index]++;\n }\n }\n }\n },\n checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() {\n var decoder = this.decoder;\n var contexts = this.contexts;\n var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n if (symbol !== 0xa) {\n throw new JpxError(\"Invalid segmentation symbol\");\n }\n }\n };\n return BitModel;\n }();\n\n var Transform = function TransformClosure() {\n function Transform() {}\n\n Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) {\n var ll = subbands[0];\n\n for (var i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n\n return ll;\n };\n\n Transform.prototype.extend = function extend(buffer, offset, size) {\n var i1 = offset - 1,\n j1 = offset + 1;\n var i2 = offset + size - 2,\n j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n };\n\n Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) {\n var llWidth = ll.width,\n llHeight = ll.height,\n llItems = ll.items;\n var width = hl_lh_hh.width;\n var height = hl_lh_hh.height;\n var items = hl_lh_hh.items;\n var i, j, k, l, u, v;\n\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n\n llItems = ll.items = null;\n var bufferPadding = 4;\n var rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n if (width === 1) {\n if ((u0 & 1) !== 0) {\n for (v = 0, k = 0; v < height; v++, k += width) {\n items[k] *= 0.5;\n }\n }\n } else {\n for (v = 0, k = 0; v < height; v++, k += width) {\n rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n\n var numBuffers = 16;\n var colBuffers = [];\n\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n\n var b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n\n if (height === 1) {\n if ((v0 & 1) !== 0) {\n for (u = 0; u < width; u++) {\n items[u] *= 0.5;\n }\n }\n } else {\n for (u = 0; u < width; u++) {\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n\n for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n\n currentBuffer = numBuffers;\n }\n\n currentBuffer--;\n var buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n\n return {\n width,\n height,\n items\n };\n };\n\n return Transform;\n }();\n\n var IrreversibleTransform = function IrreversibleTransformClosure() {\n function IrreversibleTransform() {\n Transform.call(this);\n }\n\n IrreversibleTransform.prototype = Object.create(Transform.prototype);\n\n IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n, current, next;\n var alpha = -1.586134342059924;\n var beta = -0.052980118572961;\n var gamma = 0.882911075530934;\n var delta = 0.443506852043971;\n var K = 1.230174104914001;\n var K_ = 1 / K;\n j = offset - 3;\n\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n\n j = offset - 2;\n current = delta * x[j - 1];\n\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n\n j = offset - 1;\n current = gamma * x[j - 1];\n\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n j = offset;\n current = beta * x[j - 1];\n\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n };\n\n return IrreversibleTransform;\n }();\n\n var ReversibleTransform = function ReversibleTransformClosure() {\n function ReversibleTransform() {\n Transform.call(this);\n }\n\n ReversibleTransform.prototype = Object.create(Transform.prototype);\n\n ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n;\n\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= x[j - 1] + x[j + 1] + 2 >> 2;\n }\n\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += x[j - 1] + x[j + 1] >> 1;\n }\n };\n\n return ReversibleTransform;\n }();\n\n return JpxImage;\n}();\n\nexports.JpxImage = JpxImage;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar ARCFourCipher = function ARCFourCipherClosure() {\n function ARCFourCipher(key) {\n this.a = 0;\n this.b = 0;\n var s = new Uint8Array(256);\n var i,\n j = 0,\n tmp,\n keyLength = key.length;\n\n for (i = 0; i < 256; ++i) {\n s[i] = i;\n }\n\n for (i = 0; i < 256; ++i) {\n tmp = s[i];\n j = j + tmp + key[i % keyLength] & 0xff;\n s[i] = s[j];\n s[j] = tmp;\n }\n\n this.s = s;\n }\n\n ARCFourCipher.prototype = {\n encryptBlock: function ARCFourCipher_encryptBlock(data) {\n var i,\n n = data.length,\n tmp,\n tmp2;\n var a = this.a,\n b = this.b,\n s = this.s;\n var output = new Uint8Array(n);\n\n for (i = 0; i < n; ++i) {\n a = a + 1 & 0xff;\n tmp = s[a];\n b = b + tmp & 0xff;\n tmp2 = s[b];\n s[a] = tmp2;\n s[b] = tmp;\n output[i] = data[i] ^ s[tmp + tmp2 & 0xff];\n }\n\n this.a = a;\n this.b = b;\n return output;\n }\n };\n ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock;\n return ARCFourCipher;\n}();\n\nexports.ARCFourCipher = ARCFourCipher;\n\nvar calculateMD5 = function calculateMD5Closure() {\n var r = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);\n var k = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]);\n\n function hash(data, offset, length) {\n var h0 = 1732584193,\n h1 = -271733879,\n h2 = -1732584194,\n h3 = 271733878;\n var paddedLength = length + 72 & ~63;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n\n padded[i++] = 0x80;\n n = paddedLength - 8;\n\n while (i < n) {\n padded[i++] = 0;\n }\n\n padded[i++] = length << 3 & 0xff;\n padded[i++] = length >> 5 & 0xff;\n padded[i++] = length >> 13 & 0xff;\n padded[i++] = length >> 21 & 0xff;\n padded[i++] = length >>> 29 & 0xff;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n var w = new Int32Array(16);\n\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j, i += 4) {\n w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24;\n }\n\n var a = h0,\n b = h1,\n c = h2,\n d = h3,\n f,\n g;\n\n for (j = 0; j < 64; ++j) {\n if (j < 16) {\n f = b & c | ~b & d;\n g = j;\n } else if (j < 32) {\n f = d & b | ~d & c;\n g = 5 * j + 1 & 15;\n } else if (j < 48) {\n f = b ^ c ^ d;\n g = 3 * j + 5 & 15;\n } else {\n f = c ^ (b | ~d);\n g = 7 * j & 15;\n }\n\n var tmp = d,\n rotateArg = a + f + k[j] + w[g] | 0,\n rotate = r[j];\n d = c;\n c = b;\n b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0;\n a = tmp;\n }\n\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n }\n\n return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]);\n }\n\n return hash;\n}();\n\nexports.calculateMD5 = calculateMD5;\n\nvar Word64 = function Word64Closure() {\n function Word64(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\n\n Word64.prototype = {\n and: function Word64_and(word) {\n this.high &= word.high;\n this.low &= word.low;\n },\n xor: function Word64_xor(word) {\n this.high ^= word.high;\n this.low ^= word.low;\n },\n or: function Word64_or(word) {\n this.high |= word.high;\n this.low |= word.low;\n },\n shiftRight: function Word64_shiftRight(places) {\n if (places >= 32) {\n this.low = this.high >>> places - 32 | 0;\n this.high = 0;\n } else {\n this.low = this.low >>> places | this.high << 32 - places;\n this.high = this.high >>> places | 0;\n }\n },\n shiftLeft: function Word64_shiftLeft(places) {\n if (places >= 32) {\n this.high = this.low << places - 32;\n this.low = 0;\n } else {\n this.high = this.high << places | this.low >>> 32 - places;\n this.low = this.low << places;\n }\n },\n rotateRight: function Word64_rotateRight(places) {\n var low, high;\n\n if (places & 32) {\n high = this.low;\n low = this.high;\n } else {\n low = this.low;\n high = this.high;\n }\n\n places &= 31;\n this.low = low >>> places | high << 32 - places;\n this.high = high >>> places | low << 32 - places;\n },\n not: function Word64_not() {\n this.high = ~this.high;\n this.low = ~this.low;\n },\n add: function Word64_add(word) {\n var lowAdd = (this.low >>> 0) + (word.low >>> 0);\n var highAdd = (this.high >>> 0) + (word.high >>> 0);\n\n if (lowAdd > 0xffffffff) {\n highAdd += 1;\n }\n\n this.low = lowAdd | 0;\n this.high = highAdd | 0;\n },\n copyTo: function Word64_copyTo(bytes, offset) {\n bytes[offset] = this.high >>> 24 & 0xff;\n bytes[offset + 1] = this.high >> 16 & 0xff;\n bytes[offset + 2] = this.high >> 8 & 0xff;\n bytes[offset + 3] = this.high & 0xff;\n bytes[offset + 4] = this.low >>> 24 & 0xff;\n bytes[offset + 5] = this.low >> 16 & 0xff;\n bytes[offset + 6] = this.low >> 8 & 0xff;\n bytes[offset + 7] = this.low & 0xff;\n },\n assign: function Word64_assign(word) {\n this.high = word.high;\n this.low = word.low;\n }\n };\n return Word64;\n}();\n\nvar calculateSHA256 = function calculateSHA256Closure() {\n function rotr(x, n) {\n return x >>> n | x << 32 - n;\n }\n\n function ch(x, y, z) {\n return x & y ^ ~x & z;\n }\n\n function maj(x, y, z) {\n return x & y ^ x & z ^ y & z;\n }\n\n function sigma(x) {\n return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n }\n\n function sigmaPrime(x) {\n return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n }\n\n function littleSigma(x) {\n return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3;\n }\n\n function littleSigmaPrime(x) {\n return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10;\n }\n\n var k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n function hash(data, offset, length) {\n var h0 = 0x6a09e667,\n h1 = 0xbb67ae85,\n h2 = 0x3c6ef372,\n h3 = 0xa54ff53a,\n h4 = 0x510e527f,\n h5 = 0x9b05688c,\n h6 = 0x1f83d9ab,\n h7 = 0x5be0cd19;\n var paddedLength = Math.ceil((length + 9) / 64) * 64;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n\n padded[i++] = 0x80;\n n = paddedLength - 8;\n\n while (i < n) {\n padded[i++] = 0;\n }\n\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = length >>> 29 & 0xff;\n padded[i++] = length >> 21 & 0xff;\n padded[i++] = length >> 13 & 0xff;\n padded[i++] = length >> 5 & 0xff;\n padded[i++] = length << 3 & 0xff;\n var w = new Uint32Array(64);\n\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j) {\n w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n i += 4;\n }\n\n for (j = 16; j < 64; ++j) {\n w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0;\n }\n\n var a = h0,\n b = h1,\n c = h2,\n d = h3,\n e = h4,\n f = h5,\n g = h6,\n h = h7,\n t1,\n t2;\n\n for (j = 0; j < 64; ++j) {\n t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n t2 = sigma(a) + maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n }\n\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n h4 = h4 + e | 0;\n h5 = h5 + f | 0;\n h6 = h6 + g | 0;\n h7 = h7 + h | 0;\n }\n\n return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]);\n }\n\n return hash;\n}();\n\nexports.calculateSHA256 = calculateSHA256;\n\nvar calculateSHA512 = function calculateSHA512Closure() {\n function ch(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.not();\n tmp.and(z);\n result.xor(tmp);\n }\n\n function maj(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.and(z);\n result.xor(tmp);\n tmp.assign(y);\n tmp.and(z);\n result.xor(tmp);\n }\n\n function sigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(28);\n tmp.assign(x);\n tmp.rotateRight(34);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(39);\n result.xor(tmp);\n }\n\n function sigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(14);\n tmp.assign(x);\n tmp.rotateRight(18);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(41);\n result.xor(tmp);\n }\n\n function littleSigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(1);\n tmp.assign(x);\n tmp.rotateRight(8);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(7);\n result.xor(tmp);\n }\n\n function littleSigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(19);\n tmp.assign(x);\n tmp.rotateRight(61);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(6);\n result.xor(tmp);\n }\n\n var k = [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n function hash(data, offset, length, mode384) {\n mode384 = !!mode384;\n var h0, h1, h2, h3, h4, h5, h6, h7;\n\n if (!mode384) {\n h0 = new Word64(0x6a09e667, 0xf3bcc908);\n h1 = new Word64(0xbb67ae85, 0x84caa73b);\n h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n h4 = new Word64(0x510e527f, 0xade682d1);\n h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n h7 = new Word64(0x5be0cd19, 0x137e2179);\n } else {\n h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n h1 = new Word64(0x629a292a, 0x367cd507);\n h2 = new Word64(0x9159015a, 0x3070dd17);\n h3 = new Word64(0x152fecd8, 0xf70e5939);\n h4 = new Word64(0x67332667, 0xffc00b31);\n h5 = new Word64(0x8eb44a87, 0x68581511);\n h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n }\n\n var paddedLength = Math.ceil((length + 17) / 128) * 128;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n\n padded[i++] = 0x80;\n n = paddedLength - 16;\n\n while (i < n) {\n padded[i++] = 0;\n }\n\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = length >>> 29 & 0xff;\n padded[i++] = length >> 21 & 0xff;\n padded[i++] = length >> 13 & 0xff;\n padded[i++] = length >> 5 & 0xff;\n padded[i++] = length << 3 & 0xff;\n var w = new Array(80);\n\n for (i = 0; i < 80; i++) {\n w[i] = new Word64(0, 0);\n }\n\n var a = new Word64(0, 0),\n b = new Word64(0, 0),\n c = new Word64(0, 0);\n var d = new Word64(0, 0),\n e = new Word64(0, 0),\n f = new Word64(0, 0);\n var g = new Word64(0, 0),\n h = new Word64(0, 0);\n var t1 = new Word64(0, 0),\n t2 = new Word64(0, 0);\n var tmp1 = new Word64(0, 0),\n tmp2 = new Word64(0, 0),\n tmp3;\n\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j) {\n w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7];\n i += 8;\n }\n\n for (j = 16; j < 80; ++j) {\n tmp3 = w[j];\n littleSigmaPrime(tmp3, w[j - 2], tmp2);\n tmp3.add(w[j - 7]);\n littleSigma(tmp1, w[j - 15], tmp2);\n tmp3.add(tmp1);\n tmp3.add(w[j - 16]);\n }\n\n a.assign(h0);\n b.assign(h1);\n c.assign(h2);\n d.assign(h3);\n e.assign(h4);\n f.assign(h5);\n g.assign(h6);\n h.assign(h7);\n\n for (j = 0; j < 80; ++j) {\n t1.assign(h);\n sigmaPrime(tmp1, e, tmp2);\n t1.add(tmp1);\n ch(tmp1, e, f, g, tmp2);\n t1.add(tmp1);\n t1.add(k[j]);\n t1.add(w[j]);\n sigma(t2, a, tmp2);\n maj(tmp1, a, b, c, tmp2);\n t2.add(tmp1);\n tmp3 = h;\n h = g;\n g = f;\n f = e;\n d.add(t1);\n e = d;\n d = c;\n c = b;\n b = a;\n tmp3.assign(t1);\n tmp3.add(t2);\n a = tmp3;\n }\n\n h0.add(a);\n h1.add(b);\n h2.add(c);\n h3.add(d);\n h4.add(e);\n h5.add(f);\n h6.add(g);\n h7.add(h);\n }\n\n var result;\n\n if (!mode384) {\n result = new Uint8Array(64);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n h6.copyTo(result, 48);\n h7.copyTo(result, 56);\n } else {\n result = new Uint8Array(48);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n }\n\n return result;\n }\n\n return hash;\n}();\n\nexports.calculateSHA512 = calculateSHA512;\n\nvar calculateSHA384 = function calculateSHA384Closure() {\n function hash(data, offset, length) {\n return calculateSHA512(data, offset, length, true);\n }\n\n return hash;\n}();\n\nexports.calculateSHA384 = calculateSHA384;\n\nvar NullCipher = function NullCipherClosure() {\n function NullCipher() {}\n\n NullCipher.prototype = {\n decryptBlock: function NullCipher_decryptBlock(data) {\n return data;\n }\n };\n return NullCipher;\n}();\n\nclass AESBaseCipher {\n constructor() {\n if (this.constructor === AESBaseCipher) {\n (0, _util.unreachable)(\"Cannot initialize AESBaseCipher.\");\n }\n\n this._s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n this._inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n this._mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n this._mixCol = new Uint8Array(256);\n\n for (let i = 0; i < 256; i++) {\n if (i < 128) {\n this._mixCol[i] = i << 1;\n } else {\n this._mixCol[i] = i << 1 ^ 0x1b;\n }\n }\n\n this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n\n _expandKey(cipherKey) {\n (0, _util.unreachable)(\"Cannot call `_expandKey` on the base class\");\n }\n\n _decrypt(input, key) {\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n\n for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n\n for (let j = 0; j < 16; ++j) {\n state[j] = this._inv_s[state[j]];\n }\n\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n\n for (let j = 0; j < 16; j += 4) {\n const s0 = this._mix[state[j]];\n const s1 = this._mix[state[j + 1]];\n const s2 = this._mix[state[j + 2]];\n const s3 = this._mix[state[j + 3]];\n t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n state[j] = t >>> 24 & 0xff;\n state[j + 1] = t >> 16 & 0xff;\n state[j + 2] = t >> 8 & 0xff;\n state[j + 3] = t & 0xff;\n }\n }\n\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n\n for (let j = 0; j < 16; ++j) {\n state[j] = this._inv_s[state[j]];\n state[j] ^= key[j];\n }\n\n return state;\n }\n\n _encrypt(input, key) {\n const s = this._s;\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n for (let j = 0; j < 16; ++j) {\n state[j] ^= key[j];\n }\n\n for (let i = 1; i < this._cyclesOfRepetition; i++) {\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n\n for (let j = 0; j < 16; j += 4) {\n const s0 = state[j + 0];\n const s1 = state[j + 1];\n const s2 = state[j + 2];\n const s3 = state[j + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[j + 0] ^= t ^ this._mixCol[s0 ^ s1];\n state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n }\n\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n\n return state;\n }\n\n _decryptBlock2(data, finalize) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n let iv = this.iv;\n\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n\n if (bufferLength < 16) {\n continue;\n }\n\n const plain = this._decrypt(buffer, this._key);\n\n for (let j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n\n let outputLength = 16 * result.length;\n\n if (finalize) {\n const lastBlock = result[result.length - 1];\n let psLen = lastBlock[15];\n\n if (psLen <= 16) {\n for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n psLen = 0;\n break;\n }\n }\n\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n\n const output = new Uint8Array(outputLength);\n\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n\n return output;\n }\n\n decryptBlock(data, finalize, iv = null) {\n const sourceLength = data.length;\n const buffer = this.buffer;\n let bufferLength = this.bufferPosition;\n\n if (iv) {\n this.iv = iv;\n } else {\n for (let i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n buffer[bufferLength] = data[i];\n }\n\n if (bufferLength < 16) {\n this.bufferLength = bufferLength;\n return new Uint8Array(0);\n }\n\n this.iv = buffer;\n data = data.subarray(16);\n }\n\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n this.decryptBlock = this._decryptBlock2;\n return this.decryptBlock(data, finalize);\n }\n\n encrypt(data, iv) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n\n if (!iv) {\n iv = new Uint8Array(16);\n }\n\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n\n if (bufferLength < 16) {\n continue;\n }\n\n for (let j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n\n const cipher = this._encrypt(buffer, this._key);\n\n iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n\n const outputLength = 16 * result.length;\n const output = new Uint8Array(outputLength);\n\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n\n return output;\n }\n\n}\n\nclass AES128Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n this._cyclesOfRepetition = 10;\n this._keySize = 160;\n this._rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]);\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 176;\n const s = this._s;\n const rcon = this._rcon;\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n for (let j = 16, i = 1; j < b; ++i) {\n let t1 = result[j - 3];\n let t2 = result[j - 2];\n let t3 = result[j - 1];\n let t4 = result[j - 4];\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n t1 = t1 ^ rcon[i];\n\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 16];\n j++;\n result[j] = t2 ^= result[j - 16];\n j++;\n result[j] = t3 ^= result[j - 16];\n j++;\n result[j] = t4 ^= result[j - 16];\n j++;\n }\n }\n\n return result;\n }\n\n}\n\nexports.AES128Cipher = AES128Cipher;\n\nclass AES256Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n this._cyclesOfRepetition = 14;\n this._keySize = 224;\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 240;\n const s = this._s;\n const result = new Uint8Array(b);\n result.set(cipherKey);\n let r = 1;\n let t1, t2, t3, t4;\n\n for (let j = 32, i = 1; j < b; ++i) {\n if (j % 32 === 16) {\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n } else if (j % 32 === 0) {\n t1 = result[j - 3];\n t2 = result[j - 2];\n t3 = result[j - 1];\n t4 = result[j - 4];\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n t1 = t1 ^ r;\n\n if ((r <<= 1) >= 256) {\n r = (r ^ 0x1b) & 0xff;\n }\n }\n\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 32];\n j++;\n result[j] = t2 ^= result[j - 32];\n j++;\n result[j] = t3 ^= result[j - 32];\n j++;\n result[j] = t4 ^= result[j - 32];\n j++;\n }\n }\n\n return result;\n }\n\n}\n\nexports.AES256Cipher = AES256Cipher;\n\nvar PDF17 = function PDF17Closure() {\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function PDF17() {}\n\n PDF17.prototype = {\n checkOwnerPassword: function PDF17_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n var result = calculateSHA256(hashData, 0, hashData.length);\n return compareByteArrays(result, ownerPassword);\n },\n checkUserPassword: function PDF17_checkUserPassword(password, userValidationSalt, userPassword) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n var result = calculateSHA256(hashData, 0, hashData.length);\n return compareByteArrays(result, userPassword);\n },\n getOwnerKey: function PDF17_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n var key = calculateSHA256(hashData, 0, hashData.length);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n },\n getUserKey: function PDF17_getUserKey(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n var key = calculateSHA256(hashData, 0, hashData.length);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n };\n return PDF17;\n}();\n\nexports.PDF17 = PDF17;\n\nvar PDF20 = function PDF20Closure() {\n function concatArrays(array1, array2) {\n var t = new Uint8Array(array1.length + array2.length);\n t.set(array1, 0);\n t.set(array2, array1.length);\n return t;\n }\n\n function calculatePDF20Hash(password, input, userBytes) {\n var k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n var e = [0];\n var i = 0;\n\n while (i < 64 || e[e.length - 1] > i - 32) {\n var arrayLength = password.length + k.length + userBytes.length;\n var k1 = new Uint8Array(arrayLength * 64);\n var array = concatArrays(password, k);\n array = concatArrays(array, userBytes);\n\n for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) {\n k1.set(array, pos);\n }\n\n var cipher = new AES128Cipher(k.subarray(0, 16));\n e = cipher.encrypt(k1, k.subarray(16, 32));\n var remainder = 0;\n\n for (var z = 0; z < 16; z++) {\n remainder *= 256 % 3;\n remainder %= 3;\n remainder += (e[z] >>> 0) % 3;\n remainder %= 3;\n }\n\n if (remainder === 0) {\n k = calculateSHA256(e, 0, e.length);\n } else if (remainder === 1) {\n k = calculateSHA384(e, 0, e.length);\n } else if (remainder === 2) {\n k = calculateSHA512(e, 0, e.length);\n }\n\n i++;\n }\n\n return k.subarray(0, 32);\n }\n\n function PDF20() {}\n\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n PDF20.prototype = {\n hash: function PDF20_hash(password, concatBytes, userBytes) {\n return calculatePDF20Hash(password, concatBytes, userBytes);\n },\n checkOwnerPassword: function PDF20_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n var result = calculatePDF20Hash(password, hashData, userBytes);\n return compareByteArrays(result, ownerPassword);\n },\n checkUserPassword: function PDF20_checkUserPassword(password, userValidationSalt, userPassword) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n var result = calculatePDF20Hash(password, hashData, []);\n return compareByteArrays(result, userPassword);\n },\n getOwnerKey: function PDF20_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n var key = calculatePDF20Hash(password, hashData, userBytes);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n },\n getUserKey: function PDF20_getUserKey(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n var key = calculatePDF20Hash(password, hashData, []);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n };\n return PDF20;\n}();\n\nexports.PDF20 = PDF20;\n\nvar CipherTransform = function CipherTransformClosure() {\n function CipherTransform(stringCipherConstructor, streamCipherConstructor) {\n this.StringCipherConstructor = stringCipherConstructor;\n this.StreamCipherConstructor = streamCipherConstructor;\n }\n\n CipherTransform.prototype = {\n createStream: function CipherTransform_createStream(stream, length) {\n var cipher = new this.StreamCipherConstructor();\n return new _stream.DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) {\n return cipher.decryptBlock(data, finalize);\n });\n },\n decryptString: function CipherTransform_decryptString(s) {\n var cipher = new this.StringCipherConstructor();\n var data = (0, _util.stringToBytes)(s);\n data = cipher.decryptBlock(data, true);\n return (0, _util.bytesToString)(data);\n }\n };\n return CipherTransform;\n}();\n\nvar CipherTransformFactory = function CipherTransformFactoryClosure() {\n var defaultPasswordBytes = new Uint8Array([0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]);\n\n function createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) {\n if (password) {\n var passwordLength = Math.min(127, password.length);\n password = password.subarray(0, passwordLength);\n } else {\n password = [];\n }\n\n var pdfAlgorithm;\n\n if (revision === 6) {\n pdfAlgorithm = new PDF20();\n } else {\n pdfAlgorithm = new PDF17();\n }\n\n if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) {\n return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) {\n return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption);\n }\n\n return null;\n }\n\n function prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) {\n var hashDataSize = 40 + ownerPassword.length + fileId.length;\n var hashData = new Uint8Array(hashDataSize),\n i = 0,\n j,\n n;\n\n if (password) {\n n = Math.min(32, password.length);\n\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n }\n\n j = 0;\n\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n\n for (j = 0, n = ownerPassword.length; j < n; ++j) {\n hashData[i++] = ownerPassword[j];\n }\n\n hashData[i++] = flags & 0xff;\n hashData[i++] = flags >> 8 & 0xff;\n hashData[i++] = flags >> 16 & 0xff;\n hashData[i++] = flags >>> 24 & 0xff;\n\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n\n if (revision >= 4 && !encryptMetadata) {\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n }\n\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, keyLengthInBytes);\n }\n }\n\n var encryptionKey = hash.subarray(0, keyLengthInBytes);\n var cipher, checkData;\n\n if (revision >= 3) {\n for (i = 0; i < 32; ++i) {\n hashData[i] = defaultPasswordBytes[i];\n }\n\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n n = encryptionKey.length;\n var derivedKey = new Uint8Array(n),\n k;\n\n for (j = 1; j <= 19; ++j) {\n for (k = 0; k < n; ++k) {\n derivedKey[k] = encryptionKey[k] ^ j;\n }\n\n cipher = new ARCFourCipher(derivedKey);\n checkData = cipher.encryptBlock(checkData);\n }\n\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n } else {\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(defaultPasswordBytes);\n\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n }\n\n return encryptionKey;\n }\n\n function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n var hashData = new Uint8Array(32),\n i = 0,\n j,\n n;\n n = Math.min(32, password.length);\n\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n\n j = 0;\n\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, hash.length);\n }\n }\n\n var cipher, userPassword;\n\n if (revision >= 3) {\n userPassword = ownerPassword;\n var derivedKey = new Uint8Array(keyLengthInBytes),\n k;\n\n for (j = 19; j >= 0; j--) {\n for (k = 0; k < keyLengthInBytes; ++k) {\n derivedKey[k] = hash[k] ^ j;\n }\n\n cipher = new ARCFourCipher(derivedKey);\n userPassword = cipher.encryptBlock(userPassword);\n }\n } else {\n cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n userPassword = cipher.encryptBlock(ownerPassword);\n }\n\n return userPassword;\n }\n\n var identityName = _primitives.Name.get(\"Identity\");\n\n function CipherTransformFactory(dict, fileId, password) {\n var filter = dict.get(\"Filter\");\n\n if (!(0, _primitives.isName)(filter, \"Standard\")) {\n throw new _util.FormatError(\"unknown encryption method\");\n }\n\n this.dict = dict;\n var algorithm = dict.get(\"V\");\n\n if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) {\n throw new _util.FormatError(\"unsupported encryption algorithm\");\n }\n\n this.algorithm = algorithm;\n var keyLength = dict.get(\"Length\");\n\n if (!keyLength) {\n if (algorithm <= 3) {\n keyLength = 40;\n } else {\n var cfDict = dict.get(\"CF\");\n var streamCryptoName = dict.get(\"StmF\");\n\n if ((0, _primitives.isDict)(cfDict) && (0, _primitives.isName)(streamCryptoName)) {\n cfDict.suppressEncryption = true;\n var handlerDict = cfDict.get(streamCryptoName.name);\n keyLength = handlerDict && handlerDict.get(\"Length\") || 128;\n\n if (keyLength < 40) {\n keyLength <<= 3;\n }\n }\n }\n }\n\n if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n throw new _util.FormatError(\"invalid key length\");\n }\n\n var ownerPassword = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(0, 32);\n var userPassword = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(0, 32);\n var flags = dict.get(\"P\");\n var revision = dict.get(\"R\");\n var encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get(\"EncryptMetadata\") !== false;\n this.encryptMetadata = encryptMetadata;\n var fileIdBytes = (0, _util.stringToBytes)(fileId);\n var passwordBytes;\n\n if (password) {\n if (revision === 6) {\n try {\n password = (0, _util.utf8StringToString)(password);\n } catch (ex) {\n (0, _util.warn)(\"CipherTransformFactory: \" + \"Unable to convert UTF8 encoded password.\");\n }\n }\n\n passwordBytes = (0, _util.stringToBytes)(password);\n }\n\n var encryptionKey;\n\n if (algorithm !== 5) {\n encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n } else {\n var ownerValidationSalt = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(32, 40);\n var ownerKeySalt = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(40, 48);\n var uBytes = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(0, 48);\n var userValidationSalt = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(32, 40);\n var userKeySalt = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(40, 48);\n var ownerEncryption = (0, _util.stringToBytes)(dict.get(\"OE\"));\n var userEncryption = (0, _util.stringToBytes)(dict.get(\"UE\"));\n var perms = (0, _util.stringToBytes)(dict.get(\"Perms\"));\n encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms);\n }\n\n if (!encryptionKey && !password) {\n throw new _util.PasswordException(\"No password given\", _util.PasswordResponses.NEED_PASSWORD);\n } else if (!encryptionKey && password) {\n var decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength);\n encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n }\n\n if (!encryptionKey) {\n throw new _util.PasswordException(\"Incorrect Password\", _util.PasswordResponses.INCORRECT_PASSWORD);\n }\n\n this.encryptionKey = encryptionKey;\n\n if (algorithm >= 4) {\n var cf = dict.get(\"CF\");\n\n if ((0, _primitives.isDict)(cf)) {\n cf.suppressEncryption = true;\n }\n\n this.cf = cf;\n this.stmf = dict.get(\"StmF\") || identityName;\n this.strf = dict.get(\"StrF\") || identityName;\n this.eff = dict.get(\"EFF\") || this.stmf;\n }\n }\n\n function buildObjectKey(num, gen, encryptionKey, isAes) {\n var key = new Uint8Array(encryptionKey.length + 9),\n i,\n n;\n\n for (i = 0, n = encryptionKey.length; i < n; ++i) {\n key[i] = encryptionKey[i];\n }\n\n key[i++] = num & 0xff;\n key[i++] = num >> 8 & 0xff;\n key[i++] = num >> 16 & 0xff;\n key[i++] = gen & 0xff;\n key[i++] = gen >> 8 & 0xff;\n\n if (isAes) {\n key[i++] = 0x73;\n key[i++] = 0x41;\n key[i++] = 0x6c;\n key[i++] = 0x54;\n }\n\n var hash = calculateMD5(key, 0, i);\n return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n }\n\n function buildCipherConstructor(cf, name, num, gen, key) {\n if (!(0, _primitives.isName)(name)) {\n throw new _util.FormatError(\"Invalid crypt filter name.\");\n }\n\n var cryptFilter = cf.get(name.name);\n var cfm;\n\n if (cryptFilter !== null && cryptFilter !== undefined) {\n cfm = cryptFilter.get(\"CFM\");\n }\n\n if (!cfm || cfm.name === \"None\") {\n return function cipherTransformFactoryBuildCipherConstructorNone() {\n return new NullCipher();\n };\n }\n\n if (cfm.name === \"V2\") {\n return function cipherTransformFactoryBuildCipherConstructorV2() {\n return new ARCFourCipher(buildObjectKey(num, gen, key, false));\n };\n }\n\n if (cfm.name === \"AESV2\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n return new AES128Cipher(buildObjectKey(num, gen, key, true));\n };\n }\n\n if (cfm.name === \"AESV3\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n return new AES256Cipher(key);\n };\n }\n\n throw new _util.FormatError(\"Unknown crypto method\");\n }\n\n CipherTransformFactory.prototype = {\n createCipherTransform: function CipherTransformFactory_createCipherTransform(num, gen) {\n if (this.algorithm === 4 || this.algorithm === 5) {\n return new CipherTransform(buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey));\n }\n\n var key = buildObjectKey(num, gen, this.encryptionKey, false);\n\n var cipherConstructor = function buildCipherCipherConstructor() {\n return new ARCFourCipher(key);\n };\n\n return new CipherTransform(cipherConstructor, cipherConstructor);\n }\n };\n return CipherTransformFactory;\n}();\n\nexports.CipherTransformFactory = CipherTransformFactory;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorSpace = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n const COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1 * COMPONENTS;\n\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n\n for (let i = 0; i < h2; i++) {\n const py = Math.floor(i * yRatio) * w1Scanline;\n\n for (let j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n newIndex += alpha01;\n }\n }\n}\n\nclass ColorSpace {\n constructor(name, numComps) {\n if (this.constructor === ColorSpace) {\n (0, _util.unreachable)(\"Cannot initialize ColorSpace.\");\n }\n\n this.name = name;\n this.numComps = numComps;\n }\n\n getRgb(src, srcOffset) {\n const rgb = new Uint8ClampedArray(3);\n this.getRgbItem(src, srcOffset, rgb, 0);\n return rgb;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n (0, _util.unreachable)(\"Should not call ColorSpace.getRgbItem\");\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n (0, _util.unreachable)(\"Should not call ColorSpace.getRgbBuffer\");\n }\n\n getOutputLength(inputLength, alpha01) {\n (0, _util.unreachable)(\"Should not call ColorSpace.getOutputLength\");\n }\n\n isPassthrough(bits) {\n return false;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n\n fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\n const count = originalWidth * originalHeight;\n let rgbBuf = null;\n const numComponentColors = 1 << bpc;\n const needsResizing = originalHeight !== height || originalWidth !== width;\n\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (this.numComps === 1 && count > numComponentColors && this.name !== \"DeviceGray\" && this.name !== \"DeviceRGB\") {\n const allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);\n\n for (let i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n\n const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);\n\n if (!needsResizing) {\n let destPos = 0;\n\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n dest[destPos++] = colorMap[key];\n dest[destPos++] = colorMap[key + 1];\n dest[destPos++] = colorMap[key + 2];\n destPos += alpha01;\n }\n } else {\n rgbBuf = new Uint8Array(count * 3);\n let rgbPos = 0;\n\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n rgbBuf[rgbPos++] = colorMap[key];\n rgbBuf[rgbPos++] = colorMap[key + 1];\n rgbBuf[rgbPos++] = colorMap[key + 2];\n }\n }\n } else {\n if (!needsResizing) {\n this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n } else {\n rgbBuf = new Uint8ClampedArray(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);\n }\n }\n\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01);\n } else {\n let destPos = 0,\n rgbPos = 0;\n\n for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n destPos += alpha01;\n }\n }\n }\n }\n\n get usesZeroToOneRange() {\n return (0, _util.shadow)(this, \"usesZeroToOneRange\", true);\n }\n\n static parse(cs, xref, res, pdfFunctionFactory) {\n const IR = this.parseToIR(cs, xref, res, pdfFunctionFactory);\n return this.fromIR(IR);\n }\n\n static fromIR(IR) {\n const name = Array.isArray(IR) ? IR[0] : IR;\n let whitePoint, blackPoint, gamma;\n\n switch (name) {\n case \"DeviceGrayCS\":\n return this.singletons.gray;\n\n case \"DeviceRgbCS\":\n return this.singletons.rgb;\n\n case \"DeviceCmykCS\":\n return this.singletons.cmyk;\n\n case \"CalGrayCS\":\n whitePoint = IR[1];\n blackPoint = IR[2];\n gamma = IR[3];\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n\n case \"CalRGBCS\":\n whitePoint = IR[1];\n blackPoint = IR[2];\n gamma = IR[3];\n const matrix = IR[4];\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n\n case \"PatternCS\":\n let basePatternCS = IR[1];\n\n if (basePatternCS) {\n basePatternCS = this.fromIR(basePatternCS);\n }\n\n return new PatternCS(basePatternCS);\n\n case \"IndexedCS\":\n const baseIndexedCS = IR[1];\n const hiVal = IR[2];\n const lookup = IR[3];\n return new IndexedCS(this.fromIR(baseIndexedCS), hiVal, lookup);\n\n case \"AlternateCS\":\n const numComps = IR[1];\n const alt = IR[2];\n const tintFn = IR[3];\n return new AlternateCS(numComps, this.fromIR(alt), tintFn);\n\n case \"LabCS\":\n whitePoint = IR[1];\n blackPoint = IR[2];\n const range = IR[3];\n return new LabCS(whitePoint, blackPoint, range);\n\n default:\n throw new _util.FormatError(`Unknown colorspace name: ${name}`);\n }\n }\n\n static parseToIR(cs, xref, res = null, pdfFunctionFactory) {\n cs = xref.fetchIfRef(cs);\n\n if ((0, _primitives.isName)(cs)) {\n switch (cs.name) {\n case \"DeviceGray\":\n case \"G\":\n return \"DeviceGrayCS\";\n\n case \"DeviceRGB\":\n case \"RGB\":\n return \"DeviceRgbCS\";\n\n case \"DeviceCMYK\":\n case \"CMYK\":\n return \"DeviceCmykCS\";\n\n case \"Pattern\":\n return [\"PatternCS\", null];\n\n default:\n if ((0, _primitives.isDict)(res)) {\n const colorSpaces = res.get(\"ColorSpace\");\n\n if ((0, _primitives.isDict)(colorSpaces)) {\n const resCS = colorSpaces.get(cs.name);\n\n if (resCS) {\n if ((0, _primitives.isName)(resCS)) {\n return this.parseToIR(resCS, xref, res, pdfFunctionFactory);\n }\n\n cs = resCS;\n break;\n }\n }\n }\n\n throw new _util.FormatError(`unrecognized colorspace ${cs.name}`);\n }\n }\n\n if (Array.isArray(cs)) {\n const mode = xref.fetchIfRef(cs[0]).name;\n let numComps, params, alt, whitePoint, blackPoint, gamma;\n\n switch (mode) {\n case \"DeviceGray\":\n case \"G\":\n return \"DeviceGrayCS\";\n\n case \"DeviceRGB\":\n case \"RGB\":\n return \"DeviceRgbCS\";\n\n case \"DeviceCMYK\":\n case \"CMYK\":\n return \"DeviceCmykCS\";\n\n case \"CalGray\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.get(\"Gamma\");\n return [\"CalGrayCS\", whitePoint, blackPoint, gamma];\n\n case \"CalRGB\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.getArray(\"Gamma\");\n const matrix = params.getArray(\"Matrix\");\n return [\"CalRGBCS\", whitePoint, blackPoint, gamma, matrix];\n\n case \"ICCBased\":\n const stream = xref.fetchIfRef(cs[1]);\n const dict = stream.dict;\n numComps = dict.get(\"N\");\n alt = dict.get(\"Alternate\");\n\n if (alt) {\n const altIR = this.parseToIR(alt, xref, res, pdfFunctionFactory);\n const altCS = this.fromIR(altIR, pdfFunctionFactory);\n\n if (altCS.numComps === numComps) {\n return altIR;\n }\n\n (0, _util.warn)(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n }\n\n if (numComps === 1) {\n return \"DeviceGrayCS\";\n } else if (numComps === 3) {\n return \"DeviceRgbCS\";\n } else if (numComps === 4) {\n return \"DeviceCmykCS\";\n }\n\n break;\n\n case \"Pattern\":\n let basePatternCS = cs[1] || null;\n\n if (basePatternCS) {\n basePatternCS = this.parseToIR(basePatternCS, xref, res, pdfFunctionFactory);\n }\n\n return [\"PatternCS\", basePatternCS];\n\n case \"Indexed\":\n case \"I\":\n const baseIndexedCS = this.parseToIR(cs[1], xref, res, pdfFunctionFactory);\n const hiVal = xref.fetchIfRef(cs[2]) + 1;\n let lookup = xref.fetchIfRef(cs[3]);\n\n if ((0, _primitives.isStream)(lookup)) {\n lookup = lookup.getBytes();\n }\n\n return [\"IndexedCS\", baseIndexedCS, hiVal, lookup];\n\n case \"Separation\":\n case \"DeviceN\":\n const name = xref.fetchIfRef(cs[1]);\n numComps = Array.isArray(name) ? name.length : 1;\n alt = this.parseToIR(cs[2], xref, res, pdfFunctionFactory);\n const tintFn = pdfFunctionFactory.create(xref.fetchIfRef(cs[3]));\n return [\"AlternateCS\", numComps, alt, tintFn];\n\n case \"Lab\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n const range = params.getArray(\"Range\");\n return [\"LabCS\", whitePoint, blackPoint, range];\n\n default:\n throw new _util.FormatError(`unimplemented color space object \"${mode}\"`);\n }\n }\n\n throw new _util.FormatError(`unrecognized color space object: \"${cs}\"`);\n }\n\n static isDefaultDecode(decode, numComps) {\n if (!Array.isArray(decode)) {\n return true;\n }\n\n if (numComps * 2 !== decode.length) {\n (0, _util.warn)(\"The decode map is not the correct length\");\n return true;\n }\n\n for (let i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n\n return true;\n }\n\n static get singletons() {\n return (0, _util.shadow)(this, \"singletons\", {\n get gray() {\n return (0, _util.shadow)(this, \"gray\", new DeviceGrayCS());\n },\n\n get rgb() {\n return (0, _util.shadow)(this, \"rgb\", new DeviceRgbCS());\n },\n\n get cmyk() {\n return (0, _util.shadow)(this, \"cmyk\", new DeviceCmykCS());\n }\n\n });\n }\n\n}\n\nexports.ColorSpace = ColorSpace;\n\nclass AlternateCS extends ColorSpace {\n constructor(numComps, base, tintFn) {\n super(\"Alternate\", numComps);\n this.base = base;\n this.tintFn = tintFn;\n this.tmpBuf = new Float32Array(base.numComps);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n const tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const tintFn = this.tintFn;\n const base = this.base;\n const scale = 1 / ((1 << bits) - 1);\n const baseNumComps = base.numComps;\n const usesZeroToOneRange = base.usesZeroToOneRange;\n const isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n let pos = isPassthrough ? destOffset : 0;\n const baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count);\n const numComps = this.numComps;\n const scaled = new Float32Array(numComps);\n const tinted = new Float32Array(baseNumComps);\n let i, j;\n\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n\n tintFn(scaled, 0, tinted, 0);\n\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);\n }\n\n}\n\nclass PatternCS extends ColorSpace {\n constructor(baseCS) {\n super(\"Pattern\", null);\n this.base = baseCS;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n (0, _util.unreachable)(\"Should not call PatternCS.isDefaultDecode\");\n }\n\n}\n\nclass IndexedCS extends ColorSpace {\n constructor(base, highVal, lookup) {\n super(\"Indexed\", 1);\n this.base = base;\n this.highVal = highVal;\n const baseNumComps = base.numComps;\n const length = baseNumComps * highVal;\n\n if ((0, _primitives.isStream)(lookup)) {\n this.lookup = new Uint8Array(length);\n const bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if ((0, _util.isString)(lookup)) {\n this.lookup = new Uint8Array(length);\n\n for (let i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i);\n }\n } else if (lookup instanceof Uint8Array) {\n this.lookup = lookup;\n } else {\n throw new _util.FormatError(`Unrecognized lookup table: ${lookup}`);\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n const numComps = this.base.numComps;\n const start = src[srcOffset] * numComps;\n this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const base = this.base;\n const numComps = base.numComps;\n const outputDelta = base.getOutputLength(numComps, alpha01);\n const lookup = this.lookup;\n\n for (let i = 0; i < count; ++i) {\n const lookupPos = src[srcOffset++] * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n }\n\n isDefaultDecode(decodeMap, bpc) {\n if (!Array.isArray(decodeMap)) {\n return true;\n }\n\n if (decodeMap.length !== 2) {\n (0, _util.warn)(\"Decode map length is not correct\");\n return true;\n }\n\n if (!Number.isInteger(bpc) || bpc < 1) {\n (0, _util.warn)(\"Bits per component is not correct\");\n return true;\n }\n\n return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n }\n\n}\n\nclass DeviceGrayCS extends ColorSpace {\n constructor() {\n super(\"DeviceGray\", 1);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n const c = src[srcOffset] * 255;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n\n for (let i = 0; i < count; ++i) {\n const c = scale * src[j++];\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n\n}\n\nclass DeviceRgbCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGB\", 3);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n dest[destOffset] = src[srcOffset] * 255;\n dest[destOffset + 1] = src[srcOffset + 1] * 255;\n dest[destOffset + 2] = src[srcOffset + 2] * 255;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n\n for (let i = 0; i < count; ++i) {\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n }\n\n isPassthrough(bits) {\n return bits === 8;\n }\n\n}\n\nconst DeviceCmykCS = function DeviceCmykCSClosure() {\n function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n const c = src[srcOffset] * srcScale;\n const m = src[srcOffset + 1] * srcScale;\n const y = src[srcOffset + 2] * srcScale;\n const k = src[srcOffset + 3] * srcScale;\n dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747);\n dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578);\n dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367);\n }\n\n class DeviceCmykCS extends ColorSpace {\n constructor() {\n super(\"DeviceCMYK\", 4);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(src, srcOffset, 1, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; i++) {\n convertToRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength / 4 * (3 + alpha01) | 0;\n }\n\n }\n\n return DeviceCmykCS;\n}();\n\nconst CalGrayCS = function CalGrayCSClosure() {\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n const A = src[srcOffset] * scale;\n const AG = A ** cs.G;\n const L = cs.YW * AG;\n const val = Math.max(295.8 * L ** 0.333333333333333333 - 40.8, 0);\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n\n class CalGrayCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma) {\n super(\"CalGray\", 1);\n\n if (!whitePoint) {\n throw new _util.FormatError(\"WhitePoint missing - required for color space CalGray\");\n }\n\n blackPoint = blackPoint || [0, 0, 0];\n gamma = gamma || 1;\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n this.G = gamma;\n\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + \", no fallback available\");\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n (0, _util.info)(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n (0, _util.warn)(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` + `ZB: ${this.ZB}, only default values are supported.`);\n }\n\n if (this.G < 1) {\n (0, _util.info)(`Invalid Gamma: ${this.G} for ${this.name}, ` + \"falling back to default.\");\n this.G = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n\n }\n\n return CalGrayCS;\n}();\n\nconst CalRGBCS = function CalRGBCSClosure() {\n const BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);\n const BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);\n const SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);\n const FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n const tempNormalizeMatrix = new Float32Array(3);\n const tempConvertMatrix1 = new Float32Array(3);\n const tempConvertMatrix2 = new Float32Array(3);\n const DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n function matrixProduct(a, b, result) {\n result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n }\n\n function convertToFlat(sourceWhitePoint, LMS, result) {\n result[0] = LMS[0] * 1 / sourceWhitePoint[0];\n result[1] = LMS[1] * 1 / sourceWhitePoint[1];\n result[2] = LMS[2] * 1 / sourceWhitePoint[2];\n }\n\n function convertToD65(sourceWhitePoint, LMS, result) {\n const D65X = 0.95047;\n const D65Y = 1;\n const D65Z = 1.08883;\n result[0] = LMS[0] * D65X / sourceWhitePoint[0];\n result[1] = LMS[1] * D65Y / sourceWhitePoint[1];\n result[2] = LMS[2] * D65Z / sourceWhitePoint[2];\n }\n\n function sRGBTransferFunction(color) {\n if (color <= 0.0031308) {\n return adjustToRange(0, 1, 12.92 * color);\n }\n\n return adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055);\n }\n\n function adjustToRange(min, max, value) {\n return Math.max(min, Math.min(max, value));\n }\n\n function decodeL(L) {\n if (L < 0) {\n return -decodeL(-L);\n }\n\n if (L > 8.0) {\n return ((L + 16) / 116) ** 3;\n }\n\n return L * DECODE_L_CONSTANT;\n }\n\n function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n\n const zeroDecodeL = decodeL(0);\n const X_DST = zeroDecodeL;\n const X_SRC = decodeL(sourceBlackPoint[0]);\n const Y_DST = zeroDecodeL;\n const Y_SRC = decodeL(sourceBlackPoint[1]);\n const Z_DST = zeroDecodeL;\n const Z_SRC = decodeL(sourceBlackPoint[2]);\n const X_Scale = (1 - X_DST) / (1 - X_SRC);\n const X_Offset = 1 - X_Scale;\n const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n const Y_Offset = 1 - Y_Scale;\n const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n const Z_Offset = 1 - Z_Scale;\n result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n }\n\n function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n result[0] = XYZ_In[0];\n result[1] = XYZ_In[1];\n result[2] = XYZ_In[2];\n return;\n }\n\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n const LMS_Flat = tempNormalizeMatrix;\n convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n }\n\n function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n const LMS_D65 = tempNormalizeMatrix;\n convertToD65(sourceWhitePoint, LMS, LMS_D65);\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n }\n\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n const A = adjustToRange(0, 1, src[srcOffset] * scale);\n const B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n const C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n const AGR = A ** cs.GR;\n const BGG = B ** cs.GG;\n const CGB = C ** cs.GB;\n const X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n const Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n const Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n const XYZ = tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n const XYZ_Flat = tempConvertMatrix2;\n normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n const XYZ_Black = tempConvertMatrix1;\n compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n const XYZ_D65 = tempConvertMatrix2;\n normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n const SRGB = tempConvertMatrix1;\n matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255;\n dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255;\n dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255;\n }\n\n class CalRGBCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma, matrix) {\n super(\"CalRGB\", 3);\n\n if (!whitePoint) {\n throw new _util.FormatError(\"WhitePoint missing - required for color space CalRGB\");\n }\n\n blackPoint = blackPoint || new Float32Array(3);\n gamma = gamma || new Float32Array([1, 1, 1]);\n matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n const XW = whitePoint[0];\n const YW = whitePoint[1];\n const ZW = whitePoint[2];\n this.whitePoint = whitePoint;\n const XB = blackPoint[0];\n const YB = blackPoint[1];\n const ZB = blackPoint[2];\n this.blackPoint = blackPoint;\n this.GR = gamma[0];\n this.GG = gamma[1];\n this.GB = gamma[2];\n this.MXA = matrix[0];\n this.MYA = matrix[1];\n this.MZA = matrix[2];\n this.MXB = matrix[3];\n this.MYB = matrix[4];\n this.MZB = matrix[5];\n this.MXC = matrix[6];\n this.MYC = matrix[7];\n this.MZC = matrix[8];\n\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + \", no fallback available\");\n }\n\n if (XB < 0 || YB < 0 || ZB < 0) {\n (0, _util.info)(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` + \"falling back to default.\");\n this.blackPoint = new Float32Array(3);\n }\n\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n (0, _util.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` + `${this.name}, falling back to default.`);\n this.GR = this.GG = this.GB = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n }\n\n }\n\n return CalRGBCS;\n}();\n\nconst LabCS = function LabCSClosure() {\n function fn_g(x) {\n let result;\n\n if (x >= 6 / 29) {\n result = x * x * x;\n } else {\n result = 108 / 841 * (x - 4 / 29);\n }\n\n return result;\n }\n\n function decode(value, high1, low2, high2) {\n return low2 + value * (high2 - low2) / high1;\n }\n\n function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n let Ls = src[srcOffset];\n let as = src[srcOffset + 1];\n let bs = src[srcOffset + 2];\n\n if (maxVal !== false) {\n Ls = decode(Ls, maxVal, 0, 100);\n as = decode(as, maxVal, cs.amin, cs.amax);\n bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n }\n\n if (as > cs.amax) {\n as = cs.amax;\n } else if (as < cs.amin) {\n as = cs.amin;\n }\n\n if (bs > cs.bmax) {\n bs = cs.bmax;\n } else if (bs < cs.bmin) {\n bs = cs.bmin;\n }\n\n const M = (Ls + 16) / 116;\n const L = M + as / 500;\n const N = M - bs / 200;\n const X = cs.XW * fn_g(L);\n const Y = cs.YW * fn_g(M);\n const Z = cs.ZW * fn_g(N);\n let r, g, b;\n\n if (cs.ZW < 1) {\n r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n } else {\n r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n }\n\n dest[destOffset] = Math.sqrt(r) * 255;\n dest[destOffset + 1] = Math.sqrt(g) * 255;\n dest[destOffset + 2] = Math.sqrt(b) * 255;\n }\n\n class LabCS extends ColorSpace {\n constructor(whitePoint, blackPoint, range) {\n super(\"Lab\", 3);\n\n if (!whitePoint) {\n throw new _util.FormatError(\"WhitePoint missing - required for color space Lab\");\n }\n\n blackPoint = blackPoint || [0, 0, 0];\n range = range || [-100, 100, -100, 100];\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.amin = range[0];\n this.amax = range[1];\n this.bmin = range[2];\n this.bmax = range[3];\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new _util.FormatError(\"Invalid WhitePoint components, no fallback available\");\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n (0, _util.info)(\"Invalid BlackPoint, falling back to default\");\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.amin > this.amax || this.bmin > this.bmax) {\n (0, _util.info)(\"Invalid Range, falling back to defaults\");\n this.amin = -100;\n this.amax = 100;\n this.bmin = -100;\n this.bmax = 100;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, false, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const maxVal = (1 << bits) - 1;\n\n for (let i = 0; i < count; i++) {\n convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n return true;\n }\n\n get usesZeroToOneRange() {\n return (0, _util.shadow)(this, \"usesZeroToOneRange\", false);\n }\n\n }\n\n return LabCS;\n}();\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GlobalImageCache = exports.LocalImageCache = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nclass LocalImageCache {\n constructor() {\n this._nameRefMap = new Map();\n this._imageMap = new Map();\n this._imageCache = new _primitives.RefSetCache();\n }\n\n getByName(name) {\n const ref = this._nameRefMap.get(name);\n\n if (ref) {\n return this.getByRef(ref);\n }\n\n return this._imageMap.get(name) || null;\n }\n\n getByRef(ref) {\n return this._imageCache.get(ref) || null;\n }\n\n set(name, ref = null, data) {\n if (!name) {\n throw new Error('LocalImageCache.set - expected \"name\" argument.');\n }\n\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n\n this._nameRefMap.set(name, ref);\n\n this._imageCache.put(ref, data);\n\n return;\n }\n\n if (this._imageMap.has(name)) {\n return;\n }\n\n this._imageMap.set(name, data);\n }\n\n}\n\nexports.LocalImageCache = LocalImageCache;\n\nclass GlobalImageCache {\n static get NUM_PAGES_THRESHOLD() {\n return (0, _util.shadow)(this, \"NUM_PAGES_THRESHOLD\", 2);\n }\n\n static get MAX_IMAGES_TO_CACHE() {\n return (0, _util.shadow)(this, \"MAX_IMAGES_TO_CACHE\", 10);\n }\n\n constructor() {\n this._refCache = new _primitives.RefSetCache();\n this._imageCache = new _primitives.RefSetCache();\n }\n\n shouldCache(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n\n const numPages = pageIndexSet ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1) : 1;\n\n if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return false;\n }\n\n if (!this._imageCache.has(ref) && this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE) {\n return false;\n }\n\n return true;\n }\n\n addPageIndex(ref, pageIndex) {\n let pageIndexSet = this._refCache.get(ref);\n\n if (!pageIndexSet) {\n pageIndexSet = new Set();\n\n this._refCache.put(ref, pageIndexSet);\n }\n\n pageIndexSet.add(pageIndex);\n }\n\n getData(ref, pageIndex) {\n if (!this._refCache.has(ref)) {\n return null;\n }\n\n const pageIndexSet = this._refCache.get(ref);\n\n if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return null;\n }\n\n if (!this._imageCache.has(ref)) {\n return null;\n }\n\n pageIndexSet.add(pageIndex);\n return this._imageCache.get(ref);\n }\n\n setData(ref, data) {\n if (!this._refCache.has(ref)) {\n throw new Error('GlobalImageCache.setData - expected \"addPageIndex\" to have been called.');\n }\n\n if (this._imageCache.has(ref)) {\n return;\n }\n\n if (this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE) {\n (0, _util.info)(\"GlobalImageCache.setData - ignoring image above MAX_IMAGES_TO_CACHE.\");\n return;\n }\n\n this._imageCache.put(ref, data);\n }\n\n clear(onlyData = false) {\n if (!onlyData) {\n this._refCache.clear();\n }\n\n this._imageCache.clear();\n }\n\n}\n\nexports.GlobalImageCache = GlobalImageCache;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getQuadPoints = getQuadPoints;\nexports.MarkupAnnotation = exports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _obj = __w_pdfjs_require__(10);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _operator_list = __w_pdfjs_require__(26);\n\nvar _stream = __w_pdfjs_require__(12);\n\nclass AnnotationFactory {\n static create(xref, ref, pdfManager, idFactory) {\n return pdfManager.ensure(this, \"_create\", [xref, ref, pdfManager, idFactory]);\n }\n\n static _create(xref, ref, pdfManager, idFactory) {\n const dict = xref.fetchIfRef(ref);\n\n if (!(0, _primitives.isDict)(dict)) {\n return undefined;\n }\n\n const id = (0, _primitives.isRef)(ref) ? ref.toString() : `annot_${idFactory.createObjId()}`;\n let subtype = dict.get(\"Subtype\");\n subtype = (0, _primitives.isName)(subtype) ? subtype.name : null;\n const parameters = {\n xref,\n dict,\n subtype,\n id,\n pdfManager\n };\n\n switch (subtype) {\n case \"Link\":\n return new LinkAnnotation(parameters);\n\n case \"Text\":\n return new TextAnnotation(parameters);\n\n case \"Widget\":\n let fieldType = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"FT\"\n });\n fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotation(parameters);\n\n case \"Btn\":\n return new ButtonWidgetAnnotation(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotation(parameters);\n }\n\n (0, _util.warn)('Unimplemented widget field type \"' + fieldType + '\", ' + \"falling back to base field type.\");\n return new WidgetAnnotation(parameters);\n\n case \"Popup\":\n return new PopupAnnotation(parameters);\n\n case \"FreeText\":\n return new FreeTextAnnotation(parameters);\n\n case \"Line\":\n return new LineAnnotation(parameters);\n\n case \"Square\":\n return new SquareAnnotation(parameters);\n\n case \"Circle\":\n return new CircleAnnotation(parameters);\n\n case \"PolyLine\":\n return new PolylineAnnotation(parameters);\n\n case \"Polygon\":\n return new PolygonAnnotation(parameters);\n\n case \"Caret\":\n return new CaretAnnotation(parameters);\n\n case \"Ink\":\n return new InkAnnotation(parameters);\n\n case \"Highlight\":\n return new HighlightAnnotation(parameters);\n\n case \"Underline\":\n return new UnderlineAnnotation(parameters);\n\n case \"Squiggly\":\n return new SquigglyAnnotation(parameters);\n\n case \"StrikeOut\":\n return new StrikeOutAnnotation(parameters);\n\n case \"Stamp\":\n return new StampAnnotation(parameters);\n\n case \"FileAttachment\":\n return new FileAttachmentAnnotation(parameters);\n\n default:\n if (!subtype) {\n (0, _util.warn)(\"Annotation is missing the required /Subtype.\");\n } else {\n (0, _util.warn)('Unimplemented annotation type \"' + subtype + '\", ' + \"falling back to base annotation.\");\n }\n\n return new Annotation(parameters);\n }\n }\n\n}\n\nexports.AnnotationFactory = AnnotationFactory;\n\nfunction getQuadPoints(dict, rect) {\n if (!dict.has(\"QuadPoints\")) {\n return null;\n }\n\n const quadPoints = dict.getArray(\"QuadPoints\");\n\n if (!Array.isArray(quadPoints) || quadPoints.length % 8 > 0) {\n return null;\n }\n\n const quadPointsLists = [];\n\n for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n quadPointsLists.push([]);\n\n for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {\n const x = quadPoints[j];\n const y = quadPoints[j + 1];\n\n if (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3]) {\n return null;\n }\n\n quadPointsLists[i].push({\n x,\n y\n });\n }\n }\n\n return quadPointsLists;\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n const [minX, minY, maxX, maxY] = _util.Util.getAxialAlignedBoundingBox(bbox, matrix);\n\n if (minX === maxX || minY === maxY) {\n return [1, 0, 0, 1, rect[0], rect[1]];\n }\n\n const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio];\n}\n\nclass Annotation {\n constructor(params) {\n const dict = params.dict;\n this.setContents(dict.get(\"Contents\"));\n this.setModificationDate(dict.get(\"M\"));\n this.setFlags(dict.get(\"F\"));\n this.setRectangle(dict.getArray(\"Rect\"));\n this.setColor(dict.getArray(\"C\"));\n this.setBorderStyle(dict);\n this.setAppearance(dict);\n this.data = {\n annotationFlags: this.flags,\n borderStyle: this.borderStyle,\n color: this.color,\n contents: this.contents,\n hasAppearance: !!this.appearance,\n id: params.id,\n modificationDate: this.modificationDate,\n rect: this.rectangle,\n subtype: params.subtype\n };\n }\n\n _hasFlag(flags, flag) {\n return !!(flags & flag);\n }\n\n _isViewable(flags) {\n return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW);\n }\n\n _isPrintable(flags) {\n return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN);\n }\n\n get viewable() {\n if (this.flags === 0) {\n return true;\n }\n\n return this._isViewable(this.flags);\n }\n\n get printable() {\n if (this.flags === 0) {\n return false;\n }\n\n return this._isPrintable(this.flags);\n }\n\n setContents(contents) {\n this.contents = (0, _util.stringToPDFString)(contents || \"\");\n }\n\n setModificationDate(modificationDate) {\n this.modificationDate = (0, _util.isString)(modificationDate) ? modificationDate : null;\n }\n\n setFlags(flags) {\n this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n }\n\n hasFlag(flag) {\n return this._hasFlag(this.flags, flag);\n }\n\n setRectangle(rectangle) {\n if (Array.isArray(rectangle) && rectangle.length === 4) {\n this.rectangle = _util.Util.normalizeRect(rectangle);\n } else {\n this.rectangle = [0, 0, 0, 0];\n }\n }\n\n setColor(color) {\n const rgbColor = new Uint8ClampedArray(3);\n\n if (!Array.isArray(color)) {\n this.color = rgbColor;\n return;\n }\n\n switch (color.length) {\n case 0:\n this.color = null;\n break;\n\n case 1:\n _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n\n this.color = rgbColor;\n break;\n\n case 3:\n _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n\n this.color = rgbColor;\n break;\n\n case 4:\n _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n\n this.color = rgbColor;\n break;\n\n default:\n this.color = rgbColor;\n break;\n }\n }\n\n setBorderStyle(borderStyle) {\n this.borderStyle = new AnnotationBorderStyle();\n\n if (!(0, _primitives.isDict)(borderStyle)) {\n return;\n }\n\n if (borderStyle.has(\"BS\")) {\n const dict = borderStyle.get(\"BS\");\n const dictType = dict.get(\"Type\");\n\n if (!dictType || (0, _primitives.isName)(dictType, \"Border\")) {\n this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n this.borderStyle.setStyle(dict.get(\"S\"));\n this.borderStyle.setDashArray(dict.getArray(\"D\"));\n }\n } else if (borderStyle.has(\"Border\")) {\n const array = borderStyle.getArray(\"Border\");\n\n if (Array.isArray(array) && array.length >= 3) {\n this.borderStyle.setHorizontalCornerRadius(array[0]);\n this.borderStyle.setVerticalCornerRadius(array[1]);\n this.borderStyle.setWidth(array[2], this.rectangle);\n\n if (array.length === 4) {\n this.borderStyle.setDashArray(array[3]);\n }\n }\n } else {\n this.borderStyle.setWidth(0);\n }\n }\n\n setAppearance(dict) {\n this.appearance = null;\n const appearanceStates = dict.get(\"AP\");\n\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n\n const normalAppearanceState = appearanceStates.get(\"N\");\n\n if ((0, _primitives.isStream)(normalAppearanceState)) {\n this.appearance = normalAppearanceState;\n return;\n }\n\n if (!(0, _primitives.isDict)(normalAppearanceState)) {\n return;\n }\n\n const as = dict.get(\"AS\");\n\n if (!(0, _primitives.isName)(as) || !normalAppearanceState.has(as.name)) {\n return;\n }\n\n this.appearance = normalAppearanceState.get(as.name);\n }\n\n loadResources(keys) {\n return this.appearance.dict.getAsync(\"Resources\").then(resources => {\n if (!resources) {\n return undefined;\n }\n\n const objectLoader = new _obj.ObjectLoader(resources, keys, resources.xref);\n return objectLoader.load().then(function () {\n return resources;\n });\n });\n }\n\n getOperatorList(evaluator, task, renderForms) {\n if (!this.appearance) {\n return Promise.resolve(new _operator_list.OperatorList());\n }\n\n const data = this.data;\n const appearanceDict = this.appearance.dict;\n const resourcesPromise = this.loadResources([\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"]);\n const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n const transform = getTransformMatrix(data.rect, bbox, matrix);\n return resourcesPromise.then(resources => {\n const opList = new _operator_list.OperatorList();\n opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]);\n return evaluator.getOperatorList({\n stream: this.appearance,\n task,\n resources,\n operatorList: opList\n }).then(() => {\n opList.addOp(_util.OPS.endAnnotation, []);\n this.appearance.reset();\n return opList;\n });\n });\n }\n\n}\n\nexports.Annotation = Annotation;\n\nclass AnnotationBorderStyle {\n constructor() {\n this.width = 1;\n this.style = _util.AnnotationBorderStyleType.SOLID;\n this.dashArray = [3];\n this.horizontalCornerRadius = 0;\n this.verticalCornerRadius = 0;\n }\n\n setWidth(width, rect = [0, 0, 0, 0]) {\n if ((0, _primitives.isName)(width)) {\n this.width = 0;\n return;\n }\n\n if (Number.isInteger(width)) {\n if (width > 0) {\n const maxWidth = (rect[2] - rect[0]) / 2;\n const maxHeight = (rect[3] - rect[1]) / 2;\n\n if (maxWidth > 0 && maxHeight > 0 && (width > maxWidth || width > maxHeight)) {\n (0, _util.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n width = 1;\n }\n }\n\n this.width = width;\n }\n }\n\n setStyle(style) {\n if (!(0, _primitives.isName)(style)) {\n return;\n }\n\n switch (style.name) {\n case \"S\":\n this.style = _util.AnnotationBorderStyleType.SOLID;\n break;\n\n case \"D\":\n this.style = _util.AnnotationBorderStyleType.DASHED;\n break;\n\n case \"B\":\n this.style = _util.AnnotationBorderStyleType.BEVELED;\n break;\n\n case \"I\":\n this.style = _util.AnnotationBorderStyleType.INSET;\n break;\n\n case \"U\":\n this.style = _util.AnnotationBorderStyleType.UNDERLINE;\n break;\n\n default:\n break;\n }\n }\n\n setDashArray(dashArray) {\n if (Array.isArray(dashArray) && dashArray.length > 0) {\n let isValid = true;\n let allZeros = true;\n\n for (const element of dashArray) {\n const validNumber = +element >= 0;\n\n if (!validNumber) {\n isValid = false;\n break;\n } else if (element > 0) {\n allZeros = false;\n }\n }\n\n if (isValid && !allZeros) {\n this.dashArray = dashArray;\n } else {\n this.width = 0;\n }\n } else if (dashArray) {\n this.width = 0;\n }\n }\n\n setHorizontalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.horizontalCornerRadius = radius;\n }\n }\n\n setVerticalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.verticalCornerRadius = radius;\n }\n }\n\n}\n\nexports.AnnotationBorderStyle = AnnotationBorderStyle;\n\nclass MarkupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n const dict = parameters.dict;\n\n if (dict.has(\"IRT\")) {\n const rawIRT = dict.getRaw(\"IRT\");\n this.data.inReplyTo = (0, _primitives.isRef)(rawIRT) ? rawIRT.toString() : null;\n const rt = dict.get(\"RT\");\n this.data.replyType = (0, _primitives.isName)(rt) ? rt.name : _util.AnnotationReplyType.REPLY;\n }\n\n if (this.data.replyType === _util.AnnotationReplyType.GROUP) {\n const parent = dict.get(\"IRT\");\n this.data.title = (0, _util.stringToPDFString)(parent.get(\"T\") || \"\");\n this.setContents(parent.get(\"Contents\"));\n this.data.contents = this.contents;\n\n if (!parent.has(\"CreationDate\")) {\n this.data.creationDate = null;\n } else {\n this.setCreationDate(parent.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n }\n\n if (!parent.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parent.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n this.data.hasPopup = parent.has(\"Popup\");\n\n if (!parent.has(\"C\")) {\n this.data.color = null;\n } else {\n this.setColor(parent.getArray(\"C\"));\n this.data.color = this.color;\n }\n } else {\n this.data.title = (0, _util.stringToPDFString)(dict.get(\"T\") || \"\");\n this.setCreationDate(dict.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n this.data.hasPopup = dict.has(\"Popup\");\n\n if (!dict.has(\"C\")) {\n this.data.color = null;\n }\n }\n }\n\n setCreationDate(creationDate) {\n this.creationDate = (0, _util.isString)(creationDate) ? creationDate : null;\n }\n\n}\n\nexports.MarkupAnnotation = MarkupAnnotation;\n\nclass WidgetAnnotation extends Annotation {\n constructor(params) {\n super(params);\n const dict = params.dict;\n const data = this.data;\n data.annotationType = _util.AnnotationType.WIDGET;\n data.fieldName = this._constructFieldName(dict);\n data.fieldValue = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"V\",\n getArray: true\n });\n data.alternativeText = (0, _util.stringToPDFString)(dict.get(\"TU\") || \"\");\n data.defaultAppearance = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"DA\"\n }) || \"\";\n const fieldType = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"FT\"\n });\n data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n this.fieldResources = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"DR\"\n }) || _primitives.Dict.empty;\n data.fieldFlags = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"Ff\"\n });\n\n if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n data.fieldFlags = 0;\n }\n\n data.readOnly = this.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);\n\n if (data.fieldType === \"Sig\") {\n data.fieldValue = null;\n this.setFlags(_util.AnnotationFlag.HIDDEN);\n }\n }\n\n _constructFieldName(dict) {\n if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n (0, _util.warn)(\"Unknown field name, falling back to empty field name.\");\n return \"\";\n }\n\n if (!dict.has(\"Parent\")) {\n return (0, _util.stringToPDFString)(dict.get(\"T\"));\n }\n\n const fieldName = [];\n\n if (dict.has(\"T\")) {\n fieldName.unshift((0, _util.stringToPDFString)(dict.get(\"T\")));\n }\n\n let loopDict = dict;\n\n while (loopDict.has(\"Parent\")) {\n loopDict = loopDict.get(\"Parent\");\n\n if (!(0, _primitives.isDict)(loopDict)) {\n break;\n }\n\n if (loopDict.has(\"T\")) {\n fieldName.unshift((0, _util.stringToPDFString)(loopDict.get(\"T\")));\n }\n }\n\n return fieldName.join(\".\");\n }\n\n hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n\n getOperatorList(evaluator, task, renderForms) {\n if (renderForms) {\n return Promise.resolve(new _operator_list.OperatorList());\n }\n\n return super.getOperatorList(evaluator, task, renderForms);\n }\n\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n const dict = params.dict;\n this.data.fieldValue = (0, _util.stringToPDFString)(this.data.fieldValue || \"\");\n let alignment = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"Q\"\n });\n\n if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n alignment = null;\n }\n\n this.data.textAlignment = alignment;\n let maximumLength = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"MaxLen\"\n });\n\n if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n maximumLength = null;\n }\n\n this.data.maxLen = maximumLength;\n this.data.multiLine = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);\n this.data.comb = this.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !this.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== null;\n }\n\n getOperatorList(evaluator, task, renderForms) {\n if (renderForms || this.appearance) {\n return super.getOperatorList(evaluator, task, renderForms);\n }\n\n const operatorList = new _operator_list.OperatorList();\n\n if (!this.data.defaultAppearance) {\n return Promise.resolve(operatorList);\n }\n\n const stream = new _stream.Stream((0, _util.stringToBytes)(this.data.defaultAppearance));\n return evaluator.getOperatorList({\n stream,\n task,\n resources: this.fieldResources,\n operatorList\n }).then(function () {\n return operatorList;\n });\n }\n\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n this.data.checkBox = !this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n this.data.radioButton = this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n this.data.pushButton = this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n\n if (this.data.checkBox) {\n this._processCheckBox(params);\n } else if (this.data.radioButton) {\n this._processRadioButton(params);\n } else if (this.data.pushButton) {\n this._processPushButton(params);\n } else {\n (0, _util.warn)(\"Invalid field flags for button widget annotation\");\n }\n }\n\n _processCheckBox(params) {\n if ((0, _primitives.isName)(this.data.fieldValue)) {\n this.data.fieldValue = this.data.fieldValue.name;\n }\n\n const customAppearance = params.dict.get(\"AP\");\n\n if (!(0, _primitives.isDict)(customAppearance)) {\n return;\n }\n\n const exportValueOptionsDict = customAppearance.get(\"D\");\n\n if (!(0, _primitives.isDict)(exportValueOptionsDict)) {\n return;\n }\n\n const exportValues = exportValueOptionsDict.getKeys();\n const hasCorrectOptionCount = exportValues.length === 2;\n\n if (!hasCorrectOptionCount) {\n return;\n }\n\n this.data.exportValue = exportValues[0] === \"Off\" ? exportValues[1] : exportValues[0];\n }\n\n _processRadioButton(params) {\n this.data.fieldValue = this.data.buttonValue = null;\n const fieldParent = params.dict.get(\"Parent\");\n\n if ((0, _primitives.isDict)(fieldParent) && fieldParent.has(\"V\")) {\n const fieldParentValue = fieldParent.get(\"V\");\n\n if ((0, _primitives.isName)(fieldParentValue)) {\n this.data.fieldValue = fieldParentValue.name;\n }\n }\n\n const appearanceStates = params.dict.get(\"AP\");\n\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n\n const normalAppearanceState = appearanceStates.get(\"N\");\n\n if (!(0, _primitives.isDict)(normalAppearanceState)) {\n return;\n }\n\n for (const key of normalAppearanceState.getKeys()) {\n if (key !== \"Off\") {\n this.data.buttonValue = key;\n break;\n }\n }\n }\n\n _processPushButton(params) {\n if (!params.dict.has(\"A\")) {\n (0, _util.warn)(\"Push buttons without action dictionaries are not supported\");\n return;\n }\n\n _obj.Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl\n });\n }\n\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n this.data.options = [];\n const options = (0, _core_utils.getInheritableProperty)({\n dict: params.dict,\n key: \"Opt\"\n });\n\n if (Array.isArray(options)) {\n const xref = params.xref;\n\n for (let i = 0, ii = options.length; i < ii; i++) {\n const option = xref.fetchIfRef(options[i]);\n const isOptionArray = Array.isArray(option);\n this.data.options[i] = {\n exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option,\n displayValue: (0, _util.stringToPDFString)(isOptionArray ? xref.fetchIfRef(option[1]) : option)\n };\n }\n }\n\n if (!Array.isArray(this.data.fieldValue)) {\n this.data.fieldValue = [this.data.fieldValue];\n }\n\n this.data.combo = this.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);\n this.data.multiSelect = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);\n }\n\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n const DEFAULT_ICON_SIZE = 22;\n super(parameters);\n const dict = parameters.dict;\n this.data.annotationType = _util.AnnotationType.TEXT;\n\n if (this.data.hasAppearance) {\n this.data.name = \"NoIcon\";\n } else {\n this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n }\n\n if (dict.has(\"State\")) {\n this.data.state = dict.get(\"State\") || null;\n this.data.stateModel = dict.get(\"StateModel\") || null;\n } else {\n this.data.state = null;\n this.data.stateModel = null;\n }\n }\n\n}\n\nclass LinkAnnotation extends Annotation {\n constructor(params) {\n super(params);\n this.data.annotationType = _util.AnnotationType.LINK;\n const quadPoints = getQuadPoints(params.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n\n _obj.Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl\n });\n }\n\n}\n\nclass PopupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.POPUP;\n let parentItem = parameters.dict.get(\"Parent\");\n\n if (!parentItem) {\n (0, _util.warn)(\"Popup annotation has a missing or invalid parent annotation.\");\n return;\n }\n\n const parentSubtype = parentItem.get(\"Subtype\");\n this.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null;\n const rawParent = parameters.dict.getRaw(\"Parent\");\n this.data.parentId = (0, _primitives.isRef)(rawParent) ? rawParent.toString() : null;\n const rt = parentItem.get(\"RT\");\n\n if ((0, _primitives.isName)(rt, _util.AnnotationReplyType.GROUP)) {\n parentItem = parentItem.get(\"IRT\");\n }\n\n if (!parentItem.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parentItem.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n if (!parentItem.has(\"C\")) {\n this.data.color = null;\n } else {\n this.setColor(parentItem.getArray(\"C\"));\n this.data.color = this.color;\n }\n\n if (!this.viewable) {\n const parentFlags = parentItem.get(\"F\");\n\n if (this._isViewable(parentFlags)) {\n this.setFlags(parentFlags);\n }\n }\n\n this.data.title = (0, _util.stringToPDFString)(parentItem.get(\"T\") || \"\");\n this.data.contents = (0, _util.stringToPDFString)(parentItem.get(\"Contents\") || \"\");\n }\n\n}\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.FREETEXT;\n }\n\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.LINE;\n this.data.lineCoordinates = _util.Util.normalizeRect(parameters.dict.getArray(\"L\"));\n }\n\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.SQUARE;\n }\n\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.CIRCLE;\n }\n\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.POLYLINE;\n const rawVertices = parameters.dict.getArray(\"Vertices\");\n this.data.vertices = [];\n\n for (let i = 0, ii = rawVertices.length; i < ii; i += 2) {\n this.data.vertices.push({\n x: rawVertices[i],\n y: rawVertices[i + 1]\n });\n }\n }\n\n}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.POLYGON;\n }\n\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.CARET;\n }\n\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.INK;\n const xref = parameters.xref;\n const originalInkLists = parameters.dict.getArray(\"InkList\");\n this.data.inkLists = [];\n\n for (let i = 0, ii = originalInkLists.length; i < ii; ++i) {\n this.data.inkLists.push([]);\n\n for (let j = 0, jj = originalInkLists[i].length; j < jj; j += 2) {\n this.data.inkLists[i].push({\n x: xref.fetchIfRef(originalInkLists[i][j]),\n y: xref.fetchIfRef(originalInkLists[i][j + 1])\n });\n }\n }\n }\n\n}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.HIGHLIGHT;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.UNDERLINE;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.SQUIGGLY;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.STRIKEOUT;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.STAMP;\n }\n\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n const file = new _obj.FileSpec(parameters.dict.get(\"FS\"), parameters.xref);\n this.data.annotationType = _util.AnnotationType.FILEATTACHMENT;\n this.data.file = file.serializable;\n }\n\n}\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OperatorList = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar QueueOptimizer = function QueueOptimizerClosure() {\n function addState(parentState, pattern, checkFn, iterateFn, processFn) {\n var state = parentState;\n\n for (var i = 0, ii = pattern.length - 1; i < ii; i++) {\n var item = pattern[i];\n state = state[item] || (state[item] = []);\n }\n\n state[pattern[pattern.length - 1]] = {\n checkFn,\n iterateFn,\n processFn\n };\n }\n\n function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) {\n var iFirstPIMXO = iFirstSave + 2;\n\n for (var i = 0; i < count; i++) {\n var arg = argsArray[iFirstPIMXO + 4 * i];\n var imageMask = arg.length === 1 && arg[0];\n\n if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) {\n fnArray[iFirstPIMXO + 4 * i] = _util.OPS.paintSolidColorImageMask;\n continue;\n }\n\n break;\n }\n\n return count - i;\n }\n\n var InitialState = [];\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) {\n var fnArray = context.fnArray;\n var iFirstSave = context.iCurr - 3;\n var pos = (i - iFirstSave) % 4;\n\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n\n case 1:\n return fnArray[i] === _util.OPS.transform;\n\n case 2:\n return fnArray[i] === _util.OPS.paintInlineImageXObject;\n\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n\n throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n }, function foundInlineImageGroup(context, i) {\n var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n var MAX_WIDTH = 1000;\n var IMAGE_PADDING = 1;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIIXO = curr - 1;\n var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);\n\n if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n return i - (i - iFirstSave) % 4;\n }\n\n var maxX = 0;\n var map = [],\n maxLineHeight = 0;\n var currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n var q;\n\n for (q = 0; q < count; q++) {\n var transform = argsArray[iFirstTransform + (q << 2)];\n var img = argsArray[iFirstPIIXO + (q << 2)][0];\n\n if (currentX + img.width > MAX_WIDTH) {\n maxX = Math.max(maxX, currentX);\n currentY += maxLineHeight + 2 * IMAGE_PADDING;\n currentX = 0;\n maxLineHeight = 0;\n }\n\n map.push({\n transform,\n x: currentX,\n y: currentY,\n w: img.width,\n h: img.height\n });\n currentX += img.width + 2 * IMAGE_PADDING;\n maxLineHeight = Math.max(maxLineHeight, img.height);\n }\n\n var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n var imgData = new Uint8ClampedArray(imgWidth * imgHeight * 4);\n var imgRowSize = imgWidth << 2;\n\n for (q = 0; q < count; q++) {\n var data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n var rowSize = map[q].w << 2;\n var dataOffset = 0;\n var offset = map[q].x + map[q].y * imgWidth << 2;\n imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n\n for (var k = 0, kk = map[q].h; k < kk; k++) {\n imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n dataOffset += rowSize;\n offset += imgRowSize;\n }\n\n imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n\n while (offset >= 0) {\n data[offset - 4] = data[offset];\n data[offset - 3] = data[offset + 1];\n data[offset - 2] = data[offset + 2];\n data[offset - 1] = data[offset + 3];\n data[offset + rowSize] = data[offset + rowSize - 4];\n data[offset + rowSize + 1] = data[offset + rowSize - 3];\n data[offset + rowSize + 2] = data[offset + rowSize - 2];\n data[offset + rowSize + 3] = data[offset + rowSize - 1];\n offset -= imgRowSize;\n }\n }\n\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [{\n width: imgWidth,\n height: imgHeight,\n kind: _util.ImageKind.RGBA_32BPP,\n data: imgData\n }, map]);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], null, function iterateImageMaskGroup(context, i) {\n var fnArray = context.fnArray;\n var iFirstSave = context.iCurr - 3;\n var pos = (i - iFirstSave) % 4;\n\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n\n case 1:\n return fnArray[i] === _util.OPS.transform;\n\n case 2:\n return fnArray[i] === _util.OPS.paintImageMaskXObject;\n\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n\n throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n }, function foundImageMaskGroup(context, i) {\n var MIN_IMAGES_IN_MASKS_BLOCK = 10;\n var MAX_IMAGES_IN_MASKS_BLOCK = 100;\n var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIMXO = curr - 1;\n var count = Math.floor((i - iFirstSave) / 4);\n count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray);\n\n if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n return i - (i - iFirstSave) % 4;\n }\n\n var q;\n var isSameImage = false;\n var iTransform, transformArgs;\n var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n\n if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) {\n isSameImage = true;\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n iTransform = iFirstTransform + 4;\n var iPIMXO = iFirstPIMXO + 4;\n\n for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n transformArgs = argsArray[iTransform];\n\n if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n\n break;\n }\n }\n }\n\n if (isSameImage) {\n count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n var positions = new Float32Array(count * 2);\n iTransform = iFirstTransform;\n\n for (q = 0; q < count; q++, iTransform += 4) {\n transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]);\n } else {\n count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n var images = [];\n\n for (q = 0; q < count; q++) {\n transformArgs = argsArray[iFirstTransform + (q << 2)];\n var maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n images.push({\n data: maskParams.data,\n width: maskParams.width,\n height: maskParams.height,\n transform: transformArgs\n });\n }\n\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [images]);\n }\n\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {\n var argsArray = context.argsArray;\n var iFirstTransform = context.iCurr - 2;\n return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;\n }, function iterateImageGroup(context, i) {\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var iFirstSave = context.iCurr - 3;\n var pos = (i - iFirstSave) % 4;\n\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n\n case 1:\n if (fnArray[i] !== _util.OPS.transform) {\n return false;\n }\n\n var iFirstTransform = context.iCurr - 2;\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n\n if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) {\n return false;\n }\n\n return true;\n\n case 2:\n if (fnArray[i] !== _util.OPS.paintImageXObject) {\n return false;\n }\n\n var iFirstPIXO = context.iCurr - 1;\n var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n\n if (argsArray[i][0] !== firstPIXOArg0) {\n return false;\n }\n\n return true;\n\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n\n throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n }, function (context, i) {\n var MIN_IMAGES_IN_BLOCK = 3;\n var MAX_IMAGES_IN_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIXO = curr - 1;\n var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK);\n\n if (count < MIN_IMAGES_IN_BLOCK) {\n return i - (i - iFirstSave) % 4;\n }\n\n var positions = new Float32Array(count * 2);\n var iTransform = iFirstTransform;\n\n for (var q = 0; q < count; q++, iTransform += 4) {\n var transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, args);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, function iterateShowTextGroup(context, i) {\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var iFirstSave = context.iCurr - 4;\n var pos = (i - iFirstSave) % 5;\n\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.beginText;\n\n case 1:\n return fnArray[i] === _util.OPS.setFont;\n\n case 2:\n return fnArray[i] === _util.OPS.setTextMatrix;\n\n case 3:\n if (fnArray[i] !== _util.OPS.showText) {\n return false;\n }\n\n var iFirstSetFont = context.iCurr - 3;\n var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) {\n return false;\n }\n\n return true;\n\n case 4:\n return fnArray[i] === _util.OPS.endText;\n }\n\n throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n }, function (context, i) {\n var MIN_CHARS_IN_BLOCK = 3;\n var MAX_CHARS_IN_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstBeginText = curr - 4;\n var iFirstSetFont = curr - 3;\n var iFirstSetTextMatrix = curr - 2;\n var iFirstShowText = curr - 1;\n var iFirstEndText = curr;\n var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n var count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK);\n\n if (count < MIN_CHARS_IN_BLOCK) {\n return i - (i - iFirstBeginText) % 5;\n }\n\n var iFirst = iFirstBeginText;\n\n if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {\n count++;\n iFirst -= 5;\n }\n\n var iEndText = iFirst + 4;\n\n for (var q = 1; q < count; q++) {\n fnArray.splice(iEndText, 3);\n argsArray.splice(iEndText, 3);\n iEndText += 2;\n }\n\n return iEndText + 1;\n });\n\n function QueueOptimizer(queue) {\n this.queue = queue;\n this.state = null;\n this.context = {\n iCurr: 0,\n fnArray: queue.fnArray,\n argsArray: queue.argsArray\n };\n this.match = null;\n this.lastProcessed = 0;\n }\n\n QueueOptimizer.prototype = {\n _optimize() {\n const fnArray = this.queue.fnArray;\n let i = this.lastProcessed,\n ii = fnArray.length;\n let state = this.state;\n let match = this.match;\n\n if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n this.lastProcessed = ii;\n return;\n }\n\n const context = this.context;\n\n while (i < ii) {\n if (match) {\n const iterate = (0, match.iterateFn)(context, i);\n\n if (iterate) {\n i++;\n continue;\n }\n\n i = (0, match.processFn)(context, i + 1);\n ii = fnArray.length;\n match = null;\n state = null;\n\n if (i >= ii) {\n break;\n }\n }\n\n state = (state || InitialState)[fnArray[i]];\n\n if (!state || Array.isArray(state)) {\n i++;\n continue;\n }\n\n context.iCurr = i;\n i++;\n\n if (state.checkFn && !(0, state.checkFn)(context)) {\n state = null;\n continue;\n }\n\n match = state;\n state = null;\n }\n\n this.state = state;\n this.match = match;\n this.lastProcessed = i;\n },\n\n push(fn, args) {\n this.queue.fnArray.push(fn);\n this.queue.argsArray.push(args);\n\n this._optimize();\n },\n\n flush() {\n while (this.match) {\n const length = this.queue.fnArray.length;\n this.lastProcessed = (0, this.match.processFn)(this.context, length);\n this.match = null;\n this.state = null;\n\n this._optimize();\n }\n },\n\n reset() {\n this.state = null;\n this.match = null;\n this.lastProcessed = 0;\n }\n\n };\n return QueueOptimizer;\n}();\n\nvar NullOptimizer = function NullOptimizerClosure() {\n function NullOptimizer(queue) {\n this.queue = queue;\n }\n\n NullOptimizer.prototype = {\n push(fn, args) {\n this.queue.fnArray.push(fn);\n this.queue.argsArray.push(args);\n },\n\n flush() {},\n\n reset() {}\n\n };\n return NullOptimizer;\n}();\n\nvar OperatorList = function OperatorListClosure() {\n var CHUNK_SIZE = 1000;\n var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;\n\n function OperatorList(intent, streamSink, pageIndex) {\n this._streamSink = streamSink;\n this.fnArray = [];\n this.argsArray = [];\n\n if (streamSink && intent !== \"oplist\") {\n this.optimizer = new QueueOptimizer(this);\n } else {\n this.optimizer = new NullOptimizer(this);\n }\n\n this.dependencies = Object.create(null);\n this._totalLength = 0;\n this.pageIndex = pageIndex;\n this.intent = intent;\n this.weight = 0;\n this._resolved = streamSink ? null : Promise.resolve();\n }\n\n OperatorList.prototype = {\n get length() {\n return this.argsArray.length;\n },\n\n get ready() {\n return this._resolved || this._streamSink.ready;\n },\n\n get totalLength() {\n return this._totalLength + this.length;\n },\n\n addOp(fn, args) {\n this.optimizer.push(fn, args);\n this.weight++;\n\n if (this._streamSink) {\n if (this.weight >= CHUNK_SIZE) {\n this.flush();\n } else if (this.weight >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {\n this.flush();\n }\n }\n },\n\n addDependency(dependency) {\n if (dependency in this.dependencies) {\n return;\n }\n\n this.dependencies[dependency] = true;\n this.addOp(_util.OPS.dependency, [dependency]);\n },\n\n addDependencies(dependencies) {\n for (var key in dependencies) {\n this.addDependency(key);\n }\n },\n\n addOpList(opList) {\n if (!(opList instanceof OperatorList)) {\n (0, _util.warn)('addOpList - ignoring invalid \"opList\" parameter.');\n return;\n }\n\n Object.assign(this.dependencies, opList.dependencies);\n\n for (var i = 0, ii = opList.length; i < ii; i++) {\n this.addOp(opList.fnArray[i], opList.argsArray[i]);\n }\n },\n\n getIR() {\n return {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n length: this.length\n };\n },\n\n get _transfers() {\n const transfers = [];\n const {\n fnArray,\n argsArray,\n length\n } = this;\n\n for (let i = 0; i < length; i++) {\n switch (fnArray[i]) {\n case _util.OPS.paintInlineImageXObject:\n case _util.OPS.paintInlineImageXObjectGroup:\n case _util.OPS.paintImageMaskXObject:\n const arg = argsArray[i][0];\n ;\n\n if (!arg.cached) {\n transfers.push(arg.data.buffer);\n }\n\n break;\n }\n }\n\n return transfers;\n },\n\n flush(lastChunk = false) {\n this.optimizer.flush();\n const length = this.length;\n this._totalLength += length;\n\n this._streamSink.enqueue({\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n lastChunk,\n length\n }, 1, this._transfers);\n\n this.dependencies = Object.create(null);\n this.fnArray.length = 0;\n this.argsArray.length = 0;\n this.weight = 0;\n this.optimizer.reset();\n }\n\n };\n return OperatorList;\n}();\n\nexports.OperatorList = OperatorList;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PartialEvaluator = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cmap = __w_pdfjs_require__(28);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _fonts = __w_pdfjs_require__(29);\n\nvar _encodings = __w_pdfjs_require__(32);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _unicode = __w_pdfjs_require__(35);\n\nvar _standard_fonts = __w_pdfjs_require__(34);\n\nvar _pattern = __w_pdfjs_require__(38);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _bidi = __w_pdfjs_require__(39);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _glyphlist = __w_pdfjs_require__(33);\n\nvar _metrics = __w_pdfjs_require__(40);\n\nvar _function = __w_pdfjs_require__(41);\n\nvar _image_utils = __w_pdfjs_require__(24);\n\nvar _murmurhash = __w_pdfjs_require__(43);\n\nvar _operator_list = __w_pdfjs_require__(26);\n\nvar _image = __w_pdfjs_require__(44);\n\nvar PartialEvaluator = function PartialEvaluatorClosure() {\n const DefaultPartialEvaluatorOptions = {\n maxImageSize: -1,\n disableFontFace: false,\n ignoreErrors: false,\n isEvalSupported: true,\n fontExtraProperties: false\n };\n\n function PartialEvaluator({\n xref,\n handler,\n pageIndex,\n idFactory,\n fontCache,\n builtInCMapCache,\n globalImageCache,\n options = null,\n pdfFunctionFactory\n }) {\n this.xref = xref;\n this.handler = handler;\n this.pageIndex = pageIndex;\n this.idFactory = idFactory;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.globalImageCache = globalImageCache;\n this.options = options || DefaultPartialEvaluatorOptions;\n this.pdfFunctionFactory = pdfFunctionFactory;\n this.parsingType3Font = false;\n\n this.fetchBuiltInCMap = async name => {\n if (this.builtInCMapCache.has(name)) {\n return this.builtInCMapCache.get(name);\n }\n\n const readableStream = this.handler.sendWithStream(\"FetchBuiltInCMap\", {\n name\n });\n const reader = readableStream.getReader();\n const data = await new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n return;\n }\n\n resolve(value);\n pump();\n }, reject);\n }\n\n pump();\n });\n\n if (data.compressionType !== _util.CMapCompressionType.NONE) {\n this.builtInCMapCache.set(name, data);\n }\n\n return data;\n };\n }\n\n var TIME_SLOT_DURATION_MS = 20;\n var CHECK_TIME_EVERY = 100;\n\n function TimeSlotManager() {\n this.reset();\n }\n\n TimeSlotManager.prototype = {\n check: function TimeSlotManager_check() {\n if (++this.checked < CHECK_TIME_EVERY) {\n return false;\n }\n\n this.checked = 0;\n return this.endTime <= Date.now();\n },\n reset: function TimeSlotManager_reset() {\n this.endTime = Date.now() + TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n };\n\n function normalizeBlendMode(value, parsingArray = false) {\n if (Array.isArray(value)) {\n for (let i = 0, ii = value.length; i < ii; i++) {\n const maybeBM = normalizeBlendMode(value[i], true);\n\n if (maybeBM) {\n return maybeBM;\n }\n }\n\n (0, _util.warn)(`Unsupported blend mode Array: ${value}`);\n return \"source-over\";\n }\n\n if (!(0, _primitives.isName)(value)) {\n if (parsingArray) {\n return null;\n }\n\n return \"source-over\";\n }\n\n switch (value.name) {\n case \"Normal\":\n case \"Compatible\":\n return \"source-over\";\n\n case \"Multiply\":\n return \"multiply\";\n\n case \"Screen\":\n return \"screen\";\n\n case \"Overlay\":\n return \"overlay\";\n\n case \"Darken\":\n return \"darken\";\n\n case \"Lighten\":\n return \"lighten\";\n\n case \"ColorDodge\":\n return \"color-dodge\";\n\n case \"ColorBurn\":\n return \"color-burn\";\n\n case \"HardLight\":\n return \"hard-light\";\n\n case \"SoftLight\":\n return \"soft-light\";\n\n case \"Difference\":\n return \"difference\";\n\n case \"Exclusion\":\n return \"exclusion\";\n\n case \"Hue\":\n return \"hue\";\n\n case \"Saturation\":\n return \"saturation\";\n\n case \"Color\":\n return \"color\";\n\n case \"Luminosity\":\n return \"luminosity\";\n }\n\n if (parsingArray) {\n return null;\n }\n\n (0, _util.warn)(`Unsupported blend mode: ${value.name}`);\n return \"source-over\";\n }\n\n var deferred = Promise.resolve();\n var TILING_PATTERN = 1,\n SHADING_PATTERN = 2;\n PartialEvaluator.prototype = {\n clone(newOptions = DefaultPartialEvaluatorOptions) {\n var newEvaluator = Object.create(this);\n newEvaluator.options = newOptions;\n return newEvaluator;\n },\n\n hasBlendModes: function PartialEvaluator_hasBlendModes(resources) {\n if (!(resources instanceof _primitives.Dict)) {\n return false;\n }\n\n var processed = Object.create(null);\n\n if (resources.objId) {\n processed[resources.objId] = true;\n }\n\n var nodes = [resources],\n xref = this.xref;\n\n while (nodes.length) {\n var node = nodes.shift();\n var graphicStates = node.get(\"ExtGState\");\n\n if (graphicStates instanceof _primitives.Dict) {\n var graphicStatesKeys = graphicStates.getKeys();\n\n for (let i = 0, ii = graphicStatesKeys.length; i < ii; i++) {\n const key = graphicStatesKeys[i];\n let graphicState = graphicStates.getRaw(key);\n\n if (graphicState instanceof _primitives.Ref) {\n if (processed[graphicState.toString()]) {\n continue;\n }\n\n try {\n graphicState = xref.fetch(graphicState);\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n if (this.options.ignoreErrors) {\n if (graphicState instanceof _primitives.Ref) {\n processed[graphicState.toString()] = true;\n }\n\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorExtGState\n });\n (0, _util.warn)(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n continue;\n }\n\n throw ex;\n }\n }\n\n if (!(graphicState instanceof _primitives.Dict)) {\n continue;\n }\n\n if (graphicState.objId) {\n processed[graphicState.objId] = true;\n }\n\n const bm = graphicState.get(\"BM\");\n\n if (bm instanceof _primitives.Name) {\n if (bm.name !== \"Normal\") {\n return true;\n }\n\n continue;\n }\n\n if (bm !== undefined && Array.isArray(bm)) {\n for (let j = 0, jj = bm.length; j < jj; j++) {\n if (bm[j] instanceof _primitives.Name && bm[j].name !== \"Normal\") {\n return true;\n }\n }\n }\n }\n }\n\n var xObjects = node.get(\"XObject\");\n\n if (!(xObjects instanceof _primitives.Dict)) {\n continue;\n }\n\n var xObjectsKeys = xObjects.getKeys();\n\n for (let i = 0, ii = xObjectsKeys.length; i < ii; i++) {\n const key = xObjectsKeys[i];\n var xObject = xObjects.getRaw(key);\n\n if (xObject instanceof _primitives.Ref) {\n if (processed[xObject.toString()]) {\n continue;\n }\n\n try {\n xObject = xref.fetch(xObject);\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n if (this.options.ignoreErrors) {\n if (xObject instanceof _primitives.Ref) {\n processed[xObject.toString()] = true;\n }\n\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorXObject\n });\n (0, _util.warn)(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n continue;\n }\n\n throw ex;\n }\n }\n\n if (!(0, _primitives.isStream)(xObject)) {\n continue;\n }\n\n if (xObject.dict.objId) {\n if (processed[xObject.dict.objId]) {\n continue;\n }\n\n processed[xObject.dict.objId] = true;\n }\n\n var xResources = xObject.dict.get(\"Resources\");\n\n if (xResources instanceof _primitives.Dict && (!xResources.objId || !processed[xResources.objId])) {\n nodes.push(xResources);\n\n if (xResources.objId) {\n processed[xResources.objId] = true;\n }\n }\n }\n }\n\n return false;\n },\n\n async buildFormXObject(resources, xobj, smask, operatorList, task, initialState) {\n var dict = xobj.dict;\n var matrix = dict.getArray(\"Matrix\");\n var bbox = dict.getArray(\"BBox\");\n\n if (Array.isArray(bbox) && bbox.length === 4) {\n bbox = _util.Util.normalizeRect(bbox);\n } else {\n bbox = null;\n }\n\n var group = dict.get(\"Group\");\n\n if (group) {\n var groupOptions = {\n matrix,\n bbox,\n smask,\n isolated: false,\n knockout: false\n };\n var groupSubtype = group.get(\"S\");\n var colorSpace = null;\n\n if ((0, _primitives.isName)(groupSubtype, \"Transparency\")) {\n groupOptions.isolated = group.get(\"I\") || false;\n groupOptions.knockout = group.get(\"K\") || false;\n\n if (group.has(\"CS\")) {\n colorSpace = await this.parseColorSpace({\n cs: group.get(\"CS\"),\n resources\n });\n }\n }\n\n if (smask && smask.backdrop) {\n colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb;\n smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n }\n\n operatorList.addOp(_util.OPS.beginGroup, [groupOptions]);\n }\n\n operatorList.addOp(_util.OPS.paintFormXObjectBegin, [matrix, bbox]);\n return this.getOperatorList({\n stream: xobj,\n task,\n resources: dict.get(\"Resources\") || resources,\n operatorList,\n initialState\n }).then(function () {\n operatorList.addOp(_util.OPS.paintFormXObjectEnd, []);\n\n if (group) {\n operatorList.addOp(_util.OPS.endGroup, [groupOptions]);\n }\n });\n },\n\n async buildPaintImageXObject({\n resources,\n image,\n isInline = false,\n operatorList,\n cacheKey,\n localImageCache\n }) {\n var dict = image.dict;\n const imageRef = dict.objId;\n var w = dict.get(\"Width\", \"W\");\n var h = dict.get(\"Height\", \"H\");\n\n if (!(w && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h))) {\n (0, _util.warn)(\"Image dimensions are missing, or not numbers.\");\n return undefined;\n }\n\n var maxImageSize = this.options.maxImageSize;\n\n if (maxImageSize !== -1 && w * h > maxImageSize) {\n (0, _util.warn)(\"Image exceeded maximum allowed size and was removed.\");\n return undefined;\n }\n\n var imageMask = dict.get(\"ImageMask\", \"IM\") || false;\n var imgData, args;\n\n if (imageMask) {\n var width = dict.get(\"Width\", \"W\");\n var height = dict.get(\"Height\", \"H\");\n var bitStrideLength = width + 7 >> 3;\n var imgArray = image.getBytes(bitStrideLength * height, true);\n var decode = dict.getArray(\"Decode\", \"D\");\n imgData = _image.PDFImage.createMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream: image instanceof _stream.DecodeStream,\n inverseDecode: !!decode && decode[0] > 0\n });\n imgData.cached = !!cacheKey;\n args = [imgData];\n operatorList.addOp(_util.OPS.paintImageMaskXObject, args);\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: _util.OPS.paintImageMaskXObject,\n args\n });\n }\n\n return undefined;\n }\n\n var softMask = dict.get(\"SMask\", \"SM\") || false;\n var mask = dict.get(\"Mask\") || false;\n var SMALL_IMAGE_DIMENSIONS = 200;\n\n if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) {\n const imageObj = new _image.PDFImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this.pdfFunctionFactory\n });\n imgData = imageObj.createImageData(true);\n operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]);\n return undefined;\n }\n\n let objId = `img_${this.idFactory.createObjId()}`,\n cacheGlobally = false;\n\n if (this.parsingType3Font) {\n objId = `${this.idFactory.getDocId()}_type3res_${objId}`;\n } else if (imageRef) {\n cacheGlobally = this.globalImageCache.shouldCache(imageRef, this.pageIndex);\n\n if (cacheGlobally) {\n objId = `${this.idFactory.getDocId()}_${objId}`;\n }\n }\n\n operatorList.addDependency(objId);\n args = [objId, w, h];\n\n const imgPromise = _image.PDFImage.buildImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this.pdfFunctionFactory\n }).then(imageObj => {\n imgData = imageObj.createImageData(false);\n\n if (this.parsingType3Font) {\n return this.handler.sendWithPromise(\"commonobj\", [objId, \"FontType3Res\", imgData], [imgData.data.buffer]);\n } else if (cacheGlobally) {\n this.handler.send(\"commonobj\", [objId, \"Image\", imgData], [imgData.data.buffer]);\n return undefined;\n }\n\n this.handler.send(\"obj\", [objId, this.pageIndex, \"Image\", imgData], [imgData.data.buffer]);\n return undefined;\n }).catch(reason => {\n (0, _util.warn)(\"Unable to decode image: \" + reason);\n\n if (this.parsingType3Font) {\n return this.handler.sendWithPromise(\"commonobj\", [objId, \"FontType3Res\", null]);\n } else if (cacheGlobally) {\n this.handler.send(\"commonobj\", [objId, \"Image\", null]);\n return undefined;\n }\n\n this.handler.send(\"obj\", [objId, this.pageIndex, \"Image\", null]);\n return undefined;\n });\n\n if (this.parsingType3Font) {\n await imgPromise;\n }\n\n operatorList.addOp(_util.OPS.paintImageXObject, args);\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: _util.OPS.paintImageXObject,\n args\n });\n\n if (imageRef) {\n (0, _util.assert)(!isInline, \"Cannot cache an inline image globally.\");\n this.globalImageCache.addPageIndex(imageRef, this.pageIndex);\n\n if (cacheGlobally) {\n this.globalImageCache.setData(imageRef, {\n objId,\n fn: _util.OPS.paintImageXObject,\n args\n });\n }\n }\n }\n\n return undefined;\n },\n\n handleSMask: function PartialEvaluator_handleSmask(smask, resources, operatorList, task, stateManager) {\n var smaskContent = smask.get(\"G\");\n var smaskOptions = {\n subtype: smask.get(\"S\").name,\n backdrop: smask.get(\"BC\")\n };\n var transferObj = smask.get(\"TR\");\n\n if ((0, _function.isPDFFunction)(transferObj)) {\n const transferFn = this.pdfFunctionFactory.create(transferObj);\n var transferMap = new Uint8Array(256);\n var tmp = new Float32Array(1);\n\n for (var i = 0; i < 256; i++) {\n tmp[0] = i / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[i] = tmp[0] * 255 | 0;\n }\n\n smaskOptions.transferMap = transferMap;\n }\n\n return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone());\n },\n\n handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) {\n const tilingOpList = new _operator_list.OperatorList();\n const resourcesArray = [patternDict.get(\"Resources\"), resources];\n\n const patternResources = _primitives.Dict.merge(this.xref, resourcesArray);\n\n return this.getOperatorList({\n stream: pattern,\n task,\n resources: patternResources,\n operatorList: tilingOpList\n }).then(function () {\n return (0, _pattern.getTilingPatternIR)({\n fnArray: tilingOpList.fnArray,\n argsArray: tilingOpList.argsArray\n }, patternDict, args);\n }).then(function (tilingPatternIR) {\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n }, reason => {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorTilingPattern\n });\n (0, _util.warn)(`handleTilingType - ignoring pattern: \"${reason}\".`);\n return;\n }\n\n throw reason;\n });\n },\n\n handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {\n var fontName;\n\n if (fontArgs) {\n fontArgs = fontArgs.slice();\n fontName = fontArgs[0].name;\n }\n\n return this.loadFont(fontName, fontRef, resources).then(translated => {\n if (!translated.font.isType3Font) {\n return translated;\n }\n\n return translated.loadType3Data(this, resources, operatorList, task).then(function () {\n return translated;\n }).catch(reason => {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadType3\n });\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new _fonts.ErrorFont(`Type3 font load error: ${reason}`),\n dict: translated.font,\n extraProperties: this.options.fontExtraProperties\n });\n });\n }).then(translated => {\n state.font = translated.font;\n translated.send(this.handler);\n return translated.loadedName;\n });\n },\n\n handleText(chars, state) {\n const font = state.font;\n const glyphs = font.charsToGlyphs(chars);\n\n if (font.data) {\n const isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n\n if (isAddToPathSet || state.fillColorSpace.name === \"Pattern\" || font.disableFontFace || this.options.disableFontFace) {\n PartialEvaluator.buildFontPaths(font, glyphs, this.handler);\n }\n }\n\n return glyphs;\n },\n\n ensureStateFont(state) {\n if (state.font) {\n return;\n }\n\n const reason = new _util.FormatError(\"Missing setFont (Tf) operator before text rendering operator.\");\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontState\n });\n (0, _util.warn)(`ensureStateFont: \"${reason}\".`);\n return;\n }\n\n throw reason;\n },\n\n setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) {\n var gStateObj = [];\n var gStateKeys = gState.getKeys();\n var promise = Promise.resolve();\n\n for (var i = 0, ii = gStateKeys.length; i < ii; i++) {\n const key = gStateKeys[i];\n const value = gState.get(key);\n\n switch (key) {\n case \"Type\":\n break;\n\n case \"LW\":\n case \"LC\":\n case \"LJ\":\n case \"ML\":\n case \"D\":\n case \"RI\":\n case \"FL\":\n case \"CA\":\n case \"ca\":\n gStateObj.push([key, value]);\n break;\n\n case \"Font\":\n promise = promise.then(() => {\n return this.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n gStateObj.push([key, [loadedName, value[1]]]);\n });\n });\n break;\n\n case \"BM\":\n gStateObj.push([key, normalizeBlendMode(value)]);\n break;\n\n case \"SMask\":\n if ((0, _primitives.isName)(value, \"None\")) {\n gStateObj.push([key, false]);\n break;\n }\n\n if ((0, _primitives.isDict)(value)) {\n promise = promise.then(() => {\n return this.handleSMask(value, resources, operatorList, task, stateManager);\n });\n gStateObj.push([key, true]);\n } else {\n (0, _util.warn)(\"Unsupported SMask type\");\n }\n\n break;\n\n case \"OP\":\n case \"op\":\n case \"OPM\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n case \"TR\":\n case \"TR2\":\n case \"HT\":\n case \"SM\":\n case \"SA\":\n case \"AIS\":\n case \"TK\":\n (0, _util.info)(\"graphic state operator \" + key);\n break;\n\n default:\n (0, _util.info)(\"Unknown graphic state operator \" + key);\n break;\n }\n }\n\n return promise.then(function () {\n if (gStateObj.length > 0) {\n operatorList.addOp(_util.OPS.setGState, [gStateObj]);\n }\n });\n },\n loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {\n const errorFont = () => {\n return Promise.resolve(new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new _fonts.ErrorFont(`Font \"${fontName}\" is not available.`),\n dict: font,\n extraProperties: this.options.fontExtraProperties\n }));\n };\n\n var fontRef,\n xref = this.xref;\n\n if (font) {\n if (!(0, _primitives.isRef)(font)) {\n throw new _util.FormatError('The \"font\" object should be a reference.');\n }\n\n fontRef = font;\n } else {\n var fontRes = resources.get(\"Font\");\n\n if (fontRes) {\n fontRef = fontRes.getRaw(fontName);\n }\n }\n\n if (!fontRef) {\n const partialMsg = `Font \"${fontName || font && font.toString()}\" is not available`;\n\n if (!this.options.ignoreErrors && !this.parsingType3Font) {\n (0, _util.warn)(`${partialMsg}.`);\n return errorFont();\n }\n\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontMissing\n });\n (0, _util.warn)(`${partialMsg} -- attempting to fallback to a default font.`);\n fontRef = PartialEvaluator.getFallbackFontDict();\n }\n\n if (this.fontCache.has(fontRef)) {\n return this.fontCache.get(fontRef);\n }\n\n font = xref.fetchIfRef(fontRef);\n\n if (!(0, _primitives.isDict)(font)) {\n return errorFont();\n }\n\n if (font.translated) {\n return font.translated;\n }\n\n var fontCapability = (0, _util.createPromiseCapability)();\n var preEvaluatedFont = this.preEvaluateFont(font);\n const {\n descriptor,\n hash\n } = preEvaluatedFont;\n var fontRefIsRef = (0, _primitives.isRef)(fontRef),\n fontID;\n\n if (fontRefIsRef) {\n fontID = fontRef.toString();\n }\n\n if (hash && (0, _primitives.isDict)(descriptor)) {\n if (!descriptor.fontAliases) {\n descriptor.fontAliases = Object.create(null);\n }\n\n var fontAliases = descriptor.fontAliases;\n\n if (fontAliases[hash]) {\n var aliasFontRef = fontAliases[hash].aliasRef;\n\n if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n this.fontCache.putAlias(fontRef, aliasFontRef);\n return this.fontCache.get(fontRef);\n }\n } else {\n fontAliases[hash] = {\n fontID: _fonts.Font.getFontID()\n };\n }\n\n if (fontRefIsRef) {\n fontAliases[hash].aliasRef = fontRef;\n }\n\n fontID = fontAliases[hash].fontID;\n }\n\n if (fontRefIsRef) {\n this.fontCache.put(fontRef, fontCapability.promise);\n } else {\n if (!fontID) {\n fontID = this.idFactory.createObjId();\n }\n\n this.fontCache.put(`id_${fontID}`, fontCapability.promise);\n }\n\n (0, _util.assert)(fontID, 'The \"fontID\" must be defined.');\n font.loadedName = `${this.idFactory.getDocId()}_f${fontID}`;\n font.translated = fontCapability.promise;\n var translatedPromise;\n\n try {\n translatedPromise = this.translateFont(preEvaluatedFont);\n } catch (e) {\n translatedPromise = Promise.reject(e);\n }\n\n translatedPromise.then(translatedFont => {\n if (translatedFont.fontType !== undefined) {\n var xrefFontStats = xref.stats.fontTypes;\n xrefFontStats[translatedFont.fontType] = true;\n }\n\n fontCapability.resolve(new TranslatedFont({\n loadedName: font.loadedName,\n font: translatedFont,\n dict: font,\n extraProperties: this.options.fontExtraProperties\n }));\n }).catch(reason => {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontTranslate\n });\n\n try {\n var fontFile3 = descriptor && descriptor.get(\"FontFile3\");\n var subtype = fontFile3 && fontFile3.get(\"Subtype\");\n var fontType = (0, _fonts.getFontType)(preEvaluatedFont.type, subtype && subtype.name);\n var xrefFontStats = xref.stats.fontTypes;\n xrefFontStats[fontType] = true;\n } catch (ex) {}\n\n fontCapability.resolve(new TranslatedFont({\n loadedName: font.loadedName,\n font: new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason),\n dict: font,\n extraProperties: this.options.fontExtraProperties\n }));\n });\n return fontCapability.promise;\n },\n\n buildPath(operatorList, fn, args, parsingText = false) {\n var lastIndex = operatorList.length - 1;\n\n if (!args) {\n args = [];\n }\n\n if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) {\n if (parsingText) {\n (0, _util.warn)(`Encountered path operator \"${fn}\" inside of a text object.`);\n operatorList.addOp(_util.OPS.save, null);\n }\n\n operatorList.addOp(_util.OPS.constructPath, [[fn], args]);\n\n if (parsingText) {\n operatorList.addOp(_util.OPS.restore, null);\n }\n } else {\n var opArgs = operatorList.argsArray[lastIndex];\n opArgs[0].push(fn);\n Array.prototype.push.apply(opArgs[1], args);\n }\n },\n\n parseColorSpace({\n cs,\n resources\n }) {\n return new Promise(resolve => {\n resolve(_colorspace.ColorSpace.parse(cs, this.xref, resources, this.pdfFunctionFactory));\n }).catch(reason => {\n if (reason instanceof _util.AbortException) {\n return null;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorColorSpace\n });\n (0, _util.warn)(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n return null;\n }\n\n throw reason;\n });\n },\n\n async handleColorN(operatorList, fn, args, cs, patterns, resources, task) {\n var patternName = args[args.length - 1];\n var pattern;\n\n if ((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name))) {\n var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern;\n var typeNum = dict.get(\"PatternType\");\n\n if (typeNum === TILING_PATTERN) {\n var color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task);\n } else if (typeNum === SHADING_PATTERN) {\n var shading = dict.get(\"Shading\");\n var matrix = dict.getArray(\"Matrix\");\n pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler, this.pdfFunctionFactory);\n operatorList.addOp(fn, pattern.getIR());\n return undefined;\n }\n\n throw new _util.FormatError(`Unknown PatternType: ${typeNum}`);\n }\n\n throw new _util.FormatError(`Unknown PatternName: ${patternName}`);\n },\n\n getOperatorList({\n stream,\n task,\n resources,\n operatorList,\n initialState = null\n }) {\n resources = resources || _primitives.Dict.empty;\n initialState = initialState || new EvalState();\n\n if (!operatorList) {\n throw new Error('getOperatorList: missing \"operatorList\" parameter');\n }\n\n var self = this;\n var xref = this.xref;\n let parsingText = false;\n const localImageCache = new _image_utils.LocalImageCache();\n\n var xobjs = resources.get(\"XObject\") || _primitives.Dict.empty;\n\n var patterns = resources.get(\"Pattern\") || _primitives.Dict.empty;\n\n var stateManager = new StateManager(initialState);\n var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n var timeSlotManager = new TimeSlotManager();\n\n function closePendingRestoreOPS(argument) {\n for (var i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n operatorList.addOp(_util.OPS.restore, []);\n }\n }\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n Promise.all([promise, operatorList.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n i,\n ii,\n cs;\n\n while (!(stop = timeSlotManager.check())) {\n operation.args = null;\n\n if (!preprocessor.read(operation)) {\n break;\n }\n\n var args = operation.args;\n var fn = operation.fn;\n\n switch (fn | 0) {\n case _util.OPS.paintXObject:\n var name = args[0].name;\n\n if (name) {\n const localImage = localImageCache.getByName(name);\n\n if (localImage) {\n operatorList.addOp(localImage.fn, localImage.args);\n args = null;\n continue;\n }\n }\n\n next(new Promise(function (resolveXObject, rejectXObject) {\n if (!name) {\n throw new _util.FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n\n if (xobj instanceof _primitives.Ref) {\n const localImage = localImageCache.getByRef(xobj);\n\n if (localImage) {\n operatorList.addOp(localImage.fn, localImage.args);\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(xobj, self.pageIndex);\n\n if (globalImage) {\n operatorList.addDependency(globalImage.objId);\n operatorList.addOp(globalImage.fn, globalImage.args);\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!xobj) {\n operatorList.addOp(fn, args);\n resolveXObject();\n return;\n }\n\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name === \"Form\") {\n stateManager.save();\n self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone()).then(function () {\n stateManager.restore();\n resolveXObject();\n }, rejectXObject);\n return;\n } else if (type.name === \"Image\") {\n self.buildPaintImageXObject({\n resources,\n image: xobj,\n operatorList,\n cacheKey: name,\n localImageCache\n }).then(resolveXObject, rejectXObject);\n return;\n } else if (type.name === \"PS\") {\n (0, _util.info)(\"Ignored XObject subtype PS\");\n } else {\n throw new _util.FormatError(`Unhandled XObject subtype ${type.name}`);\n }\n\n resolveXObject();\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (self.options.ignoreErrors) {\n self.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorXObject\n });\n (0, _util.warn)(`getOperatorList - ignoring XObject: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\n return;\n\n case _util.OPS.setFont:\n var fontSize = args[1];\n next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]);\n }));\n return;\n\n case _util.OPS.beginText:\n parsingText = true;\n break;\n\n case _util.OPS.endText:\n parsingText = false;\n break;\n\n case _util.OPS.endInlineImage:\n var cacheKey = args[0].cacheKey;\n\n if (cacheKey) {\n const localImage = localImageCache.getByName(cacheKey);\n\n if (localImage) {\n operatorList.addOp(localImage.fn, localImage.args);\n args = null;\n continue;\n }\n }\n\n next(self.buildPaintImageXObject({\n resources,\n image: args[0],\n isInline: true,\n operatorList,\n cacheKey,\n localImageCache\n }));\n return;\n\n case _util.OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n args[0] = self.handleText(args[0], stateManager.state);\n break;\n\n case _util.OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n var arr = args[0];\n var combinedGlyphs = [];\n var arrLength = arr.length;\n var state = stateManager.state;\n\n for (i = 0; i < arrLength; ++i) {\n var arrItem = arr[i];\n\n if ((0, _util.isString)(arrItem)) {\n Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state));\n } else if ((0, _util.isNum)(arrItem)) {\n combinedGlyphs.push(arrItem);\n }\n }\n\n args[0] = combinedGlyphs;\n fn = _util.OPS.showText;\n break;\n\n case _util.OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n operatorList.addOp(_util.OPS.nextLine);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = _util.OPS.showText;\n break;\n\n case _util.OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n operatorList.addOp(_util.OPS.nextLine);\n operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]);\n operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = _util.OPS.showText;\n break;\n\n case _util.OPS.setTextRenderingMode:\n stateManager.state.textRenderingMode = args[0];\n break;\n\n case _util.OPS.setFillColorSpace:\n next(self.parseColorSpace({\n cs: args[0],\n resources\n }).then(function (colorSpace) {\n if (colorSpace) {\n stateManager.state.fillColorSpace = colorSpace;\n }\n }));\n return;\n\n case _util.OPS.setStrokeColorSpace:\n next(self.parseColorSpace({\n cs: args[0],\n resources\n }).then(function (colorSpace) {\n if (colorSpace) {\n stateManager.state.strokeColorSpace = colorSpace;\n }\n }));\n return;\n\n case _util.OPS.setFillColor:\n cs = stateManager.state.fillColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeColor:\n cs = stateManager.state.strokeColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.setFillGray:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeGray:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.setFillCMYKColor:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeCMYKColor:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.setFillRGBColor:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb;\n args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb;\n args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n\n case _util.OPS.setFillColorN:\n cs = stateManager.state.fillColorSpace;\n\n if (cs.name === \"Pattern\") {\n next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task));\n return;\n }\n\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeColorN:\n cs = stateManager.state.strokeColorSpace;\n\n if (cs.name === \"Pattern\") {\n next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task));\n return;\n }\n\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.shadingFill:\n var shadingRes = resources.get(\"Shading\");\n\n if (!shadingRes) {\n throw new _util.FormatError(\"No shading resource found\");\n }\n\n var shading = shadingRes.get(args[0].name);\n\n if (!shading) {\n throw new _util.FormatError(\"No shading object found\");\n }\n\n var shadingFill = _pattern.Pattern.parseShading(shading, null, xref, resources, self.handler, self.pdfFunctionFactory);\n\n var patternIR = shadingFill.getIR();\n args = [patternIR];\n fn = _util.OPS.shadingFill;\n break;\n\n case _util.OPS.setGState:\n var dictName = args[0];\n var extGState = resources.get(\"ExtGState\");\n\n if (!(0, _primitives.isDict)(extGState) || !extGState.has(dictName.name)) {\n break;\n }\n\n var gState = extGState.get(dictName.name);\n next(self.setGState(resources, gState, operatorList, task, stateManager));\n return;\n\n case _util.OPS.moveTo:\n case _util.OPS.lineTo:\n case _util.OPS.curveTo:\n case _util.OPS.curveTo2:\n case _util.OPS.curveTo3:\n case _util.OPS.closePath:\n case _util.OPS.rectangle:\n self.buildPath(operatorList, fn, args, parsingText);\n continue;\n\n case _util.OPS.markPoint:\n case _util.OPS.markPointProps:\n case _util.OPS.beginMarkedContent:\n case _util.OPS.beginMarkedContentProps:\n case _util.OPS.endMarkedContent:\n case _util.OPS.beginCompat:\n case _util.OPS.endCompat:\n continue;\n\n default:\n if (args !== null) {\n for (i = 0, ii = args.length; i < ii; i++) {\n if (args[i] instanceof _primitives.Dict) {\n break;\n }\n }\n\n if (i < ii) {\n (0, _util.warn)(\"getOperatorList - ignoring operator: \" + fn);\n continue;\n }\n }\n\n }\n\n operatorList.addOp(fn, args);\n }\n\n if (stop) {\n next(deferred);\n return;\n }\n\n closePendingRestoreOPS();\n resolve();\n }).catch(reason => {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList\n });\n (0, _util.warn)(`getOperatorList - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n closePendingRestoreOPS();\n return;\n }\n\n throw reason;\n });\n },\n\n getTextContent({\n stream,\n task,\n resources,\n stateManager = null,\n normalizeWhitespace = false,\n combineTextItems = false,\n sink,\n seenStyles = Object.create(null)\n }) {\n resources = resources || _primitives.Dict.empty;\n stateManager = stateManager || new StateManager(new TextState());\n var WhitespaceRegexp = /\\s/g;\n var textContent = {\n items: [],\n styles: Object.create(null)\n };\n var textContentItem = {\n initialized: false,\n str: [],\n width: 0,\n height: 0,\n vertical: false,\n lastAdvanceWidth: 0,\n lastAdvanceHeight: 0,\n textAdvanceScale: 0,\n spaceWidth: 0,\n fakeSpaceMin: Infinity,\n fakeMultiSpaceMin: Infinity,\n fakeMultiSpaceMax: -0,\n textRunBreakAllowed: false,\n transform: null,\n fontName: null\n };\n var SPACE_FACTOR = 0.3;\n var MULTI_SPACE_FACTOR = 1.5;\n var MULTI_SPACE_FACTOR_MAX = 4;\n var self = this;\n var xref = this.xref;\n var xobjs = null;\n const emptyXObjectCache = new _image_utils.LocalImageCache();\n var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n var textState;\n\n function ensureTextContentItem() {\n if (textContentItem.initialized) {\n return textContentItem;\n }\n\n var font = textState.font;\n\n if (!(font.loadedName in seenStyles)) {\n seenStyles[font.loadedName] = true;\n textContent.styles[font.loadedName] = {\n fontFamily: font.fallbackName,\n ascent: font.ascent,\n descent: font.descent,\n vertical: font.vertical\n };\n }\n\n textContentItem.fontName = font.loadedName;\n var tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];\n\n if (font.isType3Font && textState.fontSize <= 1 && !(0, _util.isArrayEqual)(textState.fontMatrix, _util.FONT_IDENTITY_MATRIX)) {\n const glyphHeight = font.bbox[3] - font.bbox[1];\n\n if (glyphHeight > 0) {\n tsm[3] *= glyphHeight * textState.fontMatrix[3];\n }\n }\n\n var trm = _util.Util.transform(textState.ctm, _util.Util.transform(textState.textMatrix, tsm));\n\n textContentItem.transform = trm;\n\n if (!font.vertical) {\n textContentItem.width = 0;\n textContentItem.height = Math.sqrt(trm[2] * trm[2] + trm[3] * trm[3]);\n textContentItem.vertical = false;\n } else {\n textContentItem.width = Math.sqrt(trm[0] * trm[0] + trm[1] * trm[1]);\n textContentItem.height = 0;\n textContentItem.vertical = true;\n }\n\n var a = textState.textLineMatrix[0];\n var b = textState.textLineMatrix[1];\n var scaleLineX = Math.sqrt(a * a + b * b);\n a = textState.ctm[0];\n b = textState.ctm[1];\n var scaleCtmX = Math.sqrt(a * a + b * b);\n textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n textContentItem.lastAdvanceWidth = 0;\n textContentItem.lastAdvanceHeight = 0;\n var spaceWidth = font.spaceWidth / 1000 * textState.fontSize;\n\n if (spaceWidth) {\n textContentItem.spaceWidth = spaceWidth;\n textContentItem.fakeSpaceMin = spaceWidth * SPACE_FACTOR;\n textContentItem.fakeMultiSpaceMin = spaceWidth * MULTI_SPACE_FACTOR;\n textContentItem.fakeMultiSpaceMax = spaceWidth * MULTI_SPACE_FACTOR_MAX;\n textContentItem.textRunBreakAllowed = !font.isMonospace;\n } else {\n textContentItem.spaceWidth = 0;\n textContentItem.fakeSpaceMin = Infinity;\n textContentItem.fakeMultiSpaceMin = Infinity;\n textContentItem.fakeMultiSpaceMax = 0;\n textContentItem.textRunBreakAllowed = false;\n }\n\n textContentItem.initialized = true;\n return textContentItem;\n }\n\n function replaceWhitespace(str) {\n var i = 0,\n ii = str.length,\n code;\n\n while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7f) {\n i++;\n }\n\n return i < ii ? str.replace(WhitespaceRegexp, \" \") : str;\n }\n\n function runBidiTransform(textChunk) {\n var str = textChunk.str.join(\"\");\n var bidiResult = (0, _bidi.bidi)(str, -1, textChunk.vertical);\n return {\n str: normalizeWhitespace ? replaceWhitespace(bidiResult.str) : bidiResult.str,\n dir: bidiResult.dir,\n width: textChunk.width,\n height: textChunk.height,\n transform: textChunk.transform,\n fontName: textChunk.fontName\n };\n }\n\n function handleSetFont(fontName, fontRef) {\n return self.loadFont(fontName, fontRef, resources).then(function (translated) {\n textState.font = translated.font;\n textState.fontMatrix = translated.font.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n });\n }\n\n function buildTextContentItem(chars) {\n var font = textState.font;\n var textChunk = ensureTextContentItem();\n var width = 0;\n var height = 0;\n var glyphs = font.charsToGlyphs(chars);\n\n for (var i = 0; i < glyphs.length; i++) {\n var glyph = glyphs[i];\n var glyphWidth = null;\n\n if (font.vertical && glyph.vmetric) {\n glyphWidth = glyph.vmetric[0];\n } else {\n glyphWidth = glyph.width;\n }\n\n var glyphUnicode = glyph.unicode;\n var NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)();\n\n if (NormalizedUnicodes[glyphUnicode] !== undefined) {\n glyphUnicode = NormalizedUnicodes[glyphUnicode];\n }\n\n glyphUnicode = (0, _unicode.reverseIfRtl)(glyphUnicode);\n var charSpacing = textState.charSpacing;\n\n if (glyph.isSpace) {\n var wordSpacing = textState.wordSpacing;\n charSpacing += wordSpacing;\n\n if (wordSpacing > 0) {\n addFakeSpaces(wordSpacing, textChunk.str);\n }\n }\n\n var tx = 0;\n var ty = 0;\n\n if (!font.vertical) {\n var w0 = glyphWidth * textState.fontMatrix[0];\n tx = (w0 * textState.fontSize + charSpacing) * textState.textHScale;\n width += tx;\n } else {\n var w1 = glyphWidth * textState.fontMatrix[0];\n ty = w1 * textState.fontSize + charSpacing;\n height += ty;\n }\n\n textState.translateTextMatrix(tx, ty);\n textChunk.str.push(glyphUnicode);\n }\n\n if (!font.vertical) {\n textChunk.lastAdvanceWidth = width;\n textChunk.width += width;\n } else {\n textChunk.lastAdvanceHeight = height;\n textChunk.height += Math.abs(height);\n }\n\n return textChunk;\n }\n\n function addFakeSpaces(width, strBuf) {\n if (width < textContentItem.fakeSpaceMin) {\n return;\n }\n\n if (width < textContentItem.fakeMultiSpaceMin) {\n strBuf.push(\" \");\n return;\n }\n\n var fakeSpaces = Math.round(width / textContentItem.spaceWidth);\n\n while (fakeSpaces-- > 0) {\n strBuf.push(\" \");\n }\n }\n\n function flushTextContentItem() {\n if (!textContentItem.initialized) {\n return;\n }\n\n if (!textContentItem.vertical) {\n textContentItem.width *= textContentItem.textAdvanceScale;\n } else {\n textContentItem.height *= textContentItem.textAdvanceScale;\n }\n\n textContent.items.push(runBidiTransform(textContentItem));\n textContentItem.initialized = false;\n textContentItem.str.length = 0;\n }\n\n function enqueueChunk() {\n const length = textContent.items.length;\n\n if (length > 0) {\n sink.enqueue(textContent, length);\n textContent.items = [];\n textContent.styles = Object.create(null);\n }\n }\n\n var timeSlotManager = new TimeSlotManager();\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n enqueueChunk();\n Promise.all([promise, sink.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n args = [];\n\n while (!(stop = timeSlotManager.check())) {\n args.length = 0;\n operation.args = args;\n\n if (!preprocessor.read(operation)) {\n break;\n }\n\n textState = stateManager.state;\n var fn = operation.fn;\n args = operation.args;\n var advance, diff;\n\n switch (fn | 0) {\n case _util.OPS.setFont:\n var fontNameArg = args[0].name,\n fontSizeArg = args[1];\n\n if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {\n break;\n }\n\n flushTextContentItem();\n textState.fontName = fontNameArg;\n textState.fontSize = fontSizeArg;\n next(handleSetFont(fontNameArg, null));\n return;\n\n case _util.OPS.setTextRise:\n flushTextContentItem();\n textState.textRise = args[0];\n break;\n\n case _util.OPS.setHScale:\n flushTextContentItem();\n textState.textHScale = args[0] / 100;\n break;\n\n case _util.OPS.setLeading:\n flushTextContentItem();\n textState.leading = args[0];\n break;\n\n case _util.OPS.moveText:\n var isSameTextLine = !textState.font ? false : (textState.font.vertical ? args[0] : args[1]) === 0;\n advance = args[0] - args[1];\n\n if (combineTextItems && isSameTextLine && textContentItem.initialized && advance > 0 && advance <= textContentItem.fakeMultiSpaceMax) {\n textState.translateTextLineMatrix(args[0], args[1]);\n textContentItem.width += args[0] - textContentItem.lastAdvanceWidth;\n textContentItem.height += args[1] - textContentItem.lastAdvanceHeight;\n diff = args[0] - textContentItem.lastAdvanceWidth - (args[1] - textContentItem.lastAdvanceHeight);\n addFakeSpaces(diff, textContentItem.str);\n break;\n }\n\n flushTextContentItem();\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n\n case _util.OPS.setLeadingMoveText:\n flushTextContentItem();\n textState.leading = -args[1];\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n\n case _util.OPS.nextLine:\n flushTextContentItem();\n textState.carriageReturn();\n break;\n\n case _util.OPS.setTextMatrix:\n advance = textState.calcTextLineMatrixAdvance(args[0], args[1], args[2], args[3], args[4], args[5]);\n\n if (combineTextItems && advance !== null && textContentItem.initialized && advance.value > 0 && advance.value <= textContentItem.fakeMultiSpaceMax) {\n textState.translateTextLineMatrix(advance.width, advance.height);\n textContentItem.width += advance.width - textContentItem.lastAdvanceWidth;\n textContentItem.height += advance.height - textContentItem.lastAdvanceHeight;\n diff = advance.width - textContentItem.lastAdvanceWidth - (advance.height - textContentItem.lastAdvanceHeight);\n addFakeSpaces(diff, textContentItem.str);\n break;\n }\n\n flushTextContentItem();\n textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setCharSpacing:\n textState.charSpacing = args[0];\n break;\n\n case _util.OPS.setWordSpacing:\n textState.wordSpacing = args[0];\n break;\n\n case _util.OPS.beginText:\n flushTextContentItem();\n textState.textMatrix = _util.IDENTITY_MATRIX.slice();\n textState.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n break;\n\n case _util.OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n var items = args[0];\n var offset;\n\n for (var j = 0, jj = items.length; j < jj; j++) {\n if (typeof items[j] === \"string\") {\n buildTextContentItem(items[j]);\n } else if ((0, _util.isNum)(items[j])) {\n ensureTextContentItem();\n advance = items[j] * textState.fontSize / 1000;\n var breakTextRun = false;\n\n if (textState.font.vertical) {\n offset = advance;\n textState.translateTextMatrix(0, offset);\n breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n\n if (!breakTextRun) {\n textContentItem.height += offset;\n }\n } else {\n advance = -advance;\n offset = advance * textState.textHScale;\n textState.translateTextMatrix(offset, 0);\n breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n\n if (!breakTextRun) {\n textContentItem.width += offset;\n }\n }\n\n if (breakTextRun) {\n flushTextContentItem();\n } else if (advance > 0) {\n addFakeSpaces(advance, textContentItem.str);\n }\n }\n }\n\n break;\n\n case _util.OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n buildTextContentItem(args[0]);\n break;\n\n case _util.OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n flushTextContentItem();\n textState.carriageReturn();\n buildTextContentItem(args[0]);\n break;\n\n case _util.OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n flushTextContentItem();\n textState.wordSpacing = args[0];\n textState.charSpacing = args[1];\n textState.carriageReturn();\n buildTextContentItem(args[2]);\n break;\n\n case _util.OPS.paintXObject:\n flushTextContentItem();\n\n if (!xobjs) {\n xobjs = resources.get(\"XObject\") || _primitives.Dict.empty;\n }\n\n var name = args[0].name;\n\n if (name && emptyXObjectCache.getByName(name)) {\n break;\n }\n\n next(new Promise(function (resolveXObject, rejectXObject) {\n if (!name) {\n throw new _util.FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n\n if (xobj instanceof _primitives.Ref) {\n if (emptyXObjectCache.getByRef(xobj)) {\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!xobj) {\n resolveXObject();\n return;\n }\n\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name !== \"Form\") {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n resolveXObject();\n return;\n }\n\n const currentState = stateManager.state.clone();\n const xObjStateManager = new StateManager(currentState);\n const matrix = xobj.dict.getArray(\"Matrix\");\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n xObjStateManager.transform(matrix);\n }\n\n enqueueChunk();\n const sinkWrapper = {\n enqueueInvoked: false,\n\n enqueue(chunk, size) {\n this.enqueueInvoked = true;\n sink.enqueue(chunk, size);\n },\n\n get desiredSize() {\n return sink.desiredSize;\n },\n\n get ready() {\n return sink.ready;\n }\n\n };\n self.getTextContent({\n stream: xobj,\n task,\n resources: xobj.dict.get(\"Resources\") || resources,\n stateManager: xObjStateManager,\n normalizeWhitespace,\n combineTextItems,\n sink: sinkWrapper,\n seenStyles\n }).then(function () {\n if (!sinkWrapper.enqueueInvoked) {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n }\n\n resolveXObject();\n }, rejectXObject);\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (self.options.ignoreErrors) {\n (0, _util.warn)(`getTextContent - ignoring XObject: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\n return;\n\n case _util.OPS.setGState:\n flushTextContentItem();\n var dictName = args[0];\n var extGState = resources.get(\"ExtGState\");\n\n if (!(0, _primitives.isDict)(extGState) || !(0, _primitives.isName)(dictName)) {\n break;\n }\n\n var gState = extGState.get(dictName.name);\n\n if (!(0, _primitives.isDict)(gState)) {\n break;\n }\n\n var gStateFont = gState.get(\"Font\");\n\n if (gStateFont) {\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n next(handleSetFont(null, gStateFont[0]));\n return;\n }\n\n break;\n }\n\n if (textContent.items.length >= sink.desiredSize) {\n stop = true;\n break;\n }\n }\n\n if (stop) {\n next(deferred);\n return;\n }\n\n flushTextContentItem();\n enqueueChunk();\n resolve();\n }).catch(reason => {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (this.options.ignoreErrors) {\n (0, _util.warn)(`getTextContent - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n flushTextContentItem();\n enqueueChunk();\n return;\n }\n\n throw reason;\n });\n },\n\n extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) {\n const xref = this.xref;\n let cidToGidBytes;\n var toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);\n\n if (properties.composite) {\n var cidSystemInfo = dict.get(\"CIDSystemInfo\");\n\n if ((0, _primitives.isDict)(cidSystemInfo)) {\n properties.cidSystemInfo = {\n registry: (0, _util.stringToPDFString)(cidSystemInfo.get(\"Registry\")),\n ordering: (0, _util.stringToPDFString)(cidSystemInfo.get(\"Ordering\")),\n supplement: cidSystemInfo.get(\"Supplement\")\n };\n }\n\n var cidToGidMap = dict.get(\"CIDToGIDMap\");\n\n if ((0, _primitives.isStream)(cidToGidMap)) {\n cidToGidBytes = cidToGidMap.getBytes();\n }\n }\n\n var differences = [];\n var baseEncodingName = null;\n var encoding;\n\n if (dict.has(\"Encoding\")) {\n encoding = dict.get(\"Encoding\");\n\n if ((0, _primitives.isDict)(encoding)) {\n baseEncodingName = encoding.get(\"BaseEncoding\");\n baseEncodingName = (0, _primitives.isName)(baseEncodingName) ? baseEncodingName.name : null;\n\n if (encoding.has(\"Differences\")) {\n var diffEncoding = encoding.get(\"Differences\");\n var index = 0;\n\n for (var j = 0, jj = diffEncoding.length; j < jj; j++) {\n var data = xref.fetchIfRef(diffEncoding[j]);\n\n if ((0, _util.isNum)(data)) {\n index = data;\n } else if ((0, _primitives.isName)(data)) {\n differences[index++] = data.name;\n } else {\n throw new _util.FormatError(`Invalid entry in 'Differences' array: ${data}`);\n }\n }\n }\n } else if ((0, _primitives.isName)(encoding)) {\n baseEncodingName = encoding.name;\n } else {\n throw new _util.FormatError(\"Encoding is not a Name nor a Dict\");\n }\n\n if (baseEncodingName !== \"MacRomanEncoding\" && baseEncodingName !== \"MacExpertEncoding\" && baseEncodingName !== \"WinAnsiEncoding\") {\n baseEncodingName = null;\n }\n }\n\n if (baseEncodingName) {\n properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName).slice();\n } else {\n var isSymbolicFont = !!(properties.flags & _fonts.FontFlags.Symbolic);\n var isNonsymbolicFont = !!(properties.flags & _fonts.FontFlags.Nonsymbolic);\n encoding = _encodings.StandardEncoding;\n\n if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n encoding = _encodings.WinAnsiEncoding;\n }\n\n if (isSymbolicFont) {\n encoding = _encodings.MacRomanEncoding;\n\n if (!properties.file) {\n if (/Symbol/i.test(properties.name)) {\n encoding = _encodings.SymbolSetEncoding;\n } else if (/Dingbats|Wingdings/i.test(properties.name)) {\n encoding = _encodings.ZapfDingbatsEncoding;\n }\n }\n }\n\n properties.defaultEncoding = encoding;\n }\n\n properties.differences = differences;\n properties.baseEncodingName = baseEncodingName;\n properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n properties.dict = dict;\n return toUnicodePromise.then(readToUnicode => {\n properties.toUnicode = readToUnicode;\n return this.buildToUnicode(properties);\n }).then(builtToUnicode => {\n properties.toUnicode = builtToUnicode;\n\n if (cidToGidBytes) {\n properties.cidToGidMap = this.readCidToGidMap(cidToGidBytes, builtToUnicode);\n }\n\n return properties;\n });\n },\n\n _buildSimpleFontToUnicode(properties, forceGlyphs = false) {\n (0, _util.assert)(!properties.composite, \"Must be a simple font.\");\n const toUnicode = [];\n const encoding = properties.defaultEncoding.slice();\n const baseEncodingName = properties.baseEncodingName;\n const differences = properties.differences;\n\n for (const charcode in differences) {\n const glyphName = differences[charcode];\n\n if (glyphName === \".notdef\") {\n continue;\n }\n\n encoding[charcode] = glyphName;\n }\n\n const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n for (const charcode in encoding) {\n let glyphName = encoding[charcode];\n\n if (glyphName === \"\") {\n continue;\n } else if (glyphsUnicodeMap[glyphName] === undefined) {\n let code = 0;\n\n switch (glyphName[0]) {\n case \"G\":\n if (glyphName.length === 3) {\n code = parseInt(glyphName.substring(1), 16);\n }\n\n break;\n\n case \"g\":\n if (glyphName.length === 5) {\n code = parseInt(glyphName.substring(1), 16);\n }\n\n break;\n\n case \"C\":\n case \"c\":\n if (glyphName.length >= 3 && glyphName.length <= 4) {\n const codeStr = glyphName.substring(1);\n\n if (forceGlyphs) {\n code = parseInt(codeStr, 16);\n break;\n }\n\n code = +codeStr;\n\n if (Number.isNaN(code) && Number.isInteger(parseInt(codeStr, 16))) {\n return this._buildSimpleFontToUnicode(properties, true);\n }\n }\n\n break;\n\n default:\n const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n code = unicode;\n }\n\n }\n\n if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n if (baseEncodingName && code === +charcode) {\n const baseEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n\n if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n continue;\n }\n }\n\n toUnicode[charcode] = String.fromCodePoint(code);\n }\n\n continue;\n }\n\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n }\n\n return new _fonts.ToUnicodeMap(toUnicode);\n },\n\n buildToUnicode(properties) {\n properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0;\n\n if (properties.hasIncludedToUnicodeMap) {\n if (!properties.composite && properties.hasEncoding) {\n properties.fallbackToUnicode = this._buildSimpleFontToUnicode(properties);\n }\n\n return Promise.resolve(properties.toUnicode);\n }\n\n if (!properties.composite) {\n return Promise.resolve(this._buildSimpleFontToUnicode(properties));\n }\n\n if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.IdentityCMap) || properties.cidSystemInfo.registry === \"Adobe\" && (properties.cidSystemInfo.ordering === \"GB1\" || properties.cidSystemInfo.ordering === \"CNS1\" || properties.cidSystemInfo.ordering === \"Japan1\" || properties.cidSystemInfo.ordering === \"Korea1\"))) {\n const registry = properties.cidSystemInfo.registry;\n const ordering = properties.cidSystemInfo.ordering;\n\n const ucs2CMapName = _primitives.Name.get(registry + \"-\" + ordering + \"-UCS2\");\n\n return _cmap.CMapFactory.create({\n encoding: ucs2CMapName,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (ucs2CMap) {\n const cMap = properties.cMap;\n const toUnicode = [];\n cMap.forEach(function (charcode, cid) {\n if (cid > 0xffff) {\n throw new _util.FormatError(\"Max size of CID is 65,535\");\n }\n\n const ucs2 = ucs2CMap.lookup(cid);\n\n if (ucs2) {\n toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1));\n }\n });\n return new _fonts.ToUnicodeMap(toUnicode);\n });\n }\n\n return Promise.resolve(new _fonts.IdentityToUnicodeMap(properties.firstChar, properties.lastChar));\n },\n\n readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) {\n var cmapObj = toUnicode;\n\n if ((0, _primitives.isName)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xffff);\n }\n\n return new _fonts.ToUnicodeMap(cmap.getMap());\n });\n } else if ((0, _primitives.isStream)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xffff);\n }\n\n var map = new Array(cmap.length);\n cmap.forEach(function (charCode, token) {\n var str = [];\n\n for (var k = 0; k < token.length; k += 2) {\n var w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n\n if ((w1 & 0xf800) !== 0xd800) {\n str.push(w1);\n continue;\n }\n\n k += 2;\n var w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n }\n\n map[charCode] = String.fromCodePoint.apply(String, str);\n });\n return new _fonts.ToUnicodeMap(map);\n }, reason => {\n if (reason instanceof _util.AbortException) {\n return null;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontToUnicode\n });\n (0, _util.warn)(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n return null;\n }\n\n throw reason;\n });\n }\n\n return Promise.resolve(null);\n },\n\n readCidToGidMap(glyphsData, toUnicode) {\n var result = [];\n\n for (var j = 0, jj = glyphsData.length; j < jj; j++) {\n var glyphID = glyphsData[j++] << 8 | glyphsData[j];\n const code = j >> 1;\n\n if (glyphID === 0 && !toUnicode.has(code)) {\n continue;\n }\n\n result[code] = glyphID;\n }\n\n return result;\n },\n\n extractWidths: function PartialEvaluator_extractWidths(dict, descriptor, properties) {\n var xref = this.xref;\n var glyphsWidths = [];\n var defaultWidth = 0;\n var glyphsVMetrics = [];\n var defaultVMetrics;\n var i, ii, j, jj, start, code, widths;\n\n if (properties.composite) {\n defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n widths = dict.get(\"W\");\n\n if (widths) {\n for (i = 0, ii = widths.length; i < ii; i++) {\n start = xref.fetchIfRef(widths[i++]);\n code = xref.fetchIfRef(widths[i]);\n\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n }\n } else {\n var width = xref.fetchIfRef(widths[++i]);\n\n for (j = start; j <= code; j++) {\n glyphsWidths[j] = width;\n }\n }\n }\n }\n\n if (properties.vertical) {\n var vmetrics = dict.getArray(\"DW2\") || [880, -1000];\n defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n vmetrics = dict.get(\"W2\");\n\n if (vmetrics) {\n for (i = 0, ii = vmetrics.length; i < ii; i++) {\n start = xref.fetchIfRef(vmetrics[i++]);\n code = xref.fetchIfRef(vmetrics[i]);\n\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsVMetrics[start++] = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])];\n }\n } else {\n var vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])];\n\n for (j = start; j <= code; j++) {\n glyphsVMetrics[j] = vmetric;\n }\n }\n }\n }\n }\n } else {\n var firstChar = properties.firstChar;\n widths = dict.get(\"Widths\");\n\n if (widths) {\n j = firstChar;\n\n for (i = 0, ii = widths.length; i < ii; i++) {\n glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n }\n\n defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n } else {\n var baseFontName = dict.get(\"BaseFont\");\n\n if ((0, _primitives.isName)(baseFontName)) {\n var metrics = this.getBaseFontMetrics(baseFontName.name);\n glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n defaultWidth = metrics.defaultWidth;\n }\n }\n }\n\n var isMonospace = true;\n var firstWidth = defaultWidth;\n\n for (var glyph in glyphsWidths) {\n var glyphWidth = glyphsWidths[glyph];\n\n if (!glyphWidth) {\n continue;\n }\n\n if (!firstWidth) {\n firstWidth = glyphWidth;\n continue;\n }\n\n if (firstWidth !== glyphWidth) {\n isMonospace = false;\n break;\n }\n }\n\n if (isMonospace) {\n properties.flags |= _fonts.FontFlags.FixedPitch;\n }\n\n properties.defaultWidth = defaultWidth;\n properties.widths = glyphsWidths;\n properties.defaultVMetrics = defaultVMetrics;\n properties.vmetrics = glyphsVMetrics;\n },\n isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) {\n var fontNameWoStyle = baseFontName.split(\"-\")[0];\n return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1;\n },\n getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) {\n var defaultWidth = 0;\n var widths = [];\n var monospace = false;\n var stdFontMap = (0, _standard_fonts.getStdFontMap)();\n var lookupName = stdFontMap[name] || name;\n var Metrics = (0, _metrics.getMetrics)();\n\n if (!(lookupName in Metrics)) {\n if (this.isSerifFont(name)) {\n lookupName = \"Times-Roman\";\n } else {\n lookupName = \"Helvetica\";\n }\n }\n\n var glyphWidths = Metrics[lookupName];\n\n if ((0, _util.isNum)(glyphWidths)) {\n defaultWidth = glyphWidths;\n monospace = true;\n } else {\n widths = glyphWidths();\n }\n\n return {\n defaultWidth,\n monospace,\n widths\n };\n },\n buildCharCodeToWidth: function PartialEvaluator_bulildCharCodeToWidth(widthsByGlyphName, properties) {\n var widths = Object.create(null);\n var differences = properties.differences;\n var encoding = properties.defaultEncoding;\n\n for (var charCode = 0; charCode < 256; charCode++) {\n if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n widths[charCode] = widthsByGlyphName[differences[charCode]];\n continue;\n }\n\n if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n widths[charCode] = widthsByGlyphName[encoding[charCode]];\n continue;\n }\n }\n\n return widths;\n },\n preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict) {\n var baseDict = dict;\n var type = dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"invalid font Subtype\");\n }\n\n var composite = false;\n var uint8array;\n\n if (type.name === \"Type0\") {\n var df = dict.get(\"DescendantFonts\");\n\n if (!df) {\n throw new _util.FormatError(\"Descendant fonts are not specified\");\n }\n\n dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n type = dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"invalid font Subtype\");\n }\n\n composite = true;\n }\n\n var descriptor = dict.get(\"FontDescriptor\");\n\n if (descriptor) {\n var hash = new _murmurhash.MurmurHash3_64();\n var encoding = baseDict.getRaw(\"Encoding\");\n\n if ((0, _primitives.isName)(encoding)) {\n hash.update(encoding.name);\n } else if ((0, _primitives.isRef)(encoding)) {\n hash.update(encoding.toString());\n } else if ((0, _primitives.isDict)(encoding)) {\n var keys = encoding.getKeys();\n\n for (var i = 0, ii = keys.length; i < ii; i++) {\n var entry = encoding.getRaw(keys[i]);\n\n if ((0, _primitives.isName)(entry)) {\n hash.update(entry.name);\n } else if ((0, _primitives.isRef)(entry)) {\n hash.update(entry.toString());\n } else if (Array.isArray(entry)) {\n var diffLength = entry.length,\n diffBuf = new Array(diffLength);\n\n for (var j = 0; j < diffLength; j++) {\n var diffEntry = entry[j];\n\n if ((0, _primitives.isName)(diffEntry)) {\n diffBuf[j] = diffEntry.name;\n } else if ((0, _util.isNum)(diffEntry) || (0, _primitives.isRef)(diffEntry)) {\n diffBuf[j] = diffEntry.toString();\n }\n }\n\n hash.update(diffBuf.join());\n }\n }\n }\n\n const firstChar = dict.get(\"FirstChar\") || 0;\n const lastChar = dict.get(\"LastChar\") || (composite ? 0xffff : 0xff);\n hash.update(`${firstChar}-${lastChar}`);\n var toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n\n if ((0, _primitives.isStream)(toUnicode)) {\n var stream = toUnicode.str || toUnicode;\n uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start);\n hash.update(uint8array);\n } else if ((0, _primitives.isName)(toUnicode)) {\n hash.update(toUnicode.name);\n }\n\n var widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n\n if (widths) {\n uint8array = new Uint8Array(new Uint32Array(widths).buffer);\n hash.update(uint8array);\n }\n }\n\n return {\n descriptor,\n dict,\n baseDict,\n composite,\n type: type.name,\n hash: hash ? hash.hexdigest() : \"\"\n };\n },\n translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) {\n var baseDict = preEvaluatedFont.baseDict;\n var dict = preEvaluatedFont.dict;\n var composite = preEvaluatedFont.composite;\n var descriptor = preEvaluatedFont.descriptor;\n var type = preEvaluatedFont.type;\n var maxCharIndex = composite ? 0xffff : 0xff;\n var properties;\n const firstChar = dict.get(\"FirstChar\") || 0;\n const lastChar = dict.get(\"LastChar\") || maxCharIndex;\n\n if (!descriptor) {\n if (type === \"Type3\") {\n descriptor = new _primitives.Dict(null);\n descriptor.set(\"FontName\", _primitives.Name.get(type));\n descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n } else {\n var baseFontName = dict.get(\"BaseFont\");\n\n if (!(0, _primitives.isName)(baseFontName)) {\n throw new _util.FormatError(\"Base font is not specified\");\n }\n\n baseFontName = baseFontName.name.replace(/[,_]/g, \"-\");\n var metrics = this.getBaseFontMetrics(baseFontName);\n var fontNameWoStyle = baseFontName.split(\"-\")[0];\n var flags = (this.isSerifFont(fontNameWoStyle) ? _fonts.FontFlags.Serif : 0) | (metrics.monospace ? _fonts.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts.FontFlags.Symbolic : _fonts.FontFlags.Nonsymbolic);\n properties = {\n type,\n name: baseFontName,\n widths: metrics.widths,\n defaultWidth: metrics.defaultWidth,\n flags,\n firstChar,\n lastChar\n };\n const widths = dict.get(\"Widths\");\n return this.extractDataStructures(dict, dict, properties).then(newProperties => {\n if (widths) {\n const glyphWidths = [];\n let j = firstChar;\n\n for (let i = 0, ii = widths.length; i < ii; i++) {\n glyphWidths[j++] = this.xref.fetchIfRef(widths[i]);\n }\n\n newProperties.widths = glyphWidths;\n } else {\n newProperties.widths = this.buildCharCodeToWidth(metrics.widths, newProperties);\n }\n\n return new _fonts.Font(baseFontName, null, newProperties);\n });\n }\n }\n\n var fontName = descriptor.get(\"FontName\");\n var baseFont = dict.get(\"BaseFont\");\n\n if ((0, _util.isString)(fontName)) {\n fontName = _primitives.Name.get(fontName);\n }\n\n if ((0, _util.isString)(baseFont)) {\n baseFont = _primitives.Name.get(baseFont);\n }\n\n if (type !== \"Type3\") {\n var fontNameStr = fontName && fontName.name;\n var baseFontStr = baseFont && baseFont.name;\n\n if (fontNameStr !== baseFontStr) {\n (0, _util.info)(`The FontDescriptor\\'s FontName is \"${fontNameStr}\" but ` + `should be the same as the Font\\'s BaseFont \"${baseFontStr}\".`);\n\n if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) {\n fontName = baseFont;\n }\n }\n }\n\n fontName = fontName || baseFont;\n\n if (!(0, _primitives.isName)(fontName)) {\n throw new _util.FormatError(\"invalid font name\");\n }\n\n var fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n\n if (fontFile) {\n if (fontFile.dict) {\n var subtype = fontFile.dict.get(\"Subtype\");\n\n if (subtype) {\n subtype = subtype.name;\n }\n\n var length1 = fontFile.dict.get(\"Length1\");\n var length2 = fontFile.dict.get(\"Length2\");\n var length3 = fontFile.dict.get(\"Length3\");\n }\n }\n\n properties = {\n type,\n name: fontName.name,\n subtype,\n file: fontFile,\n length1,\n length2,\n length3,\n loadedName: baseDict.loadedName,\n composite,\n fixedPitch: false,\n fontMatrix: dict.getArray(\"FontMatrix\") || _util.FONT_IDENTITY_MATRIX,\n firstChar: firstChar || 0,\n lastChar: lastChar || maxCharIndex,\n bbox: descriptor.getArray(\"FontBBox\"),\n ascent: descriptor.get(\"Ascent\"),\n descent: descriptor.get(\"Descent\"),\n xHeight: descriptor.get(\"XHeight\"),\n capHeight: descriptor.get(\"CapHeight\"),\n flags: descriptor.get(\"Flags\"),\n italicAngle: descriptor.get(\"ItalicAngle\"),\n isType3Font: false\n };\n var cMapPromise;\n\n if (composite) {\n var cidEncoding = baseDict.get(\"Encoding\");\n\n if ((0, _primitives.isName)(cidEncoding)) {\n properties.cidEncoding = cidEncoding.name;\n }\n\n cMapPromise = _cmap.CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cMap) {\n properties.cMap = cMap;\n properties.vertical = properties.cMap.vertical;\n });\n } else {\n cMapPromise = Promise.resolve(undefined);\n }\n\n return cMapPromise.then(() => {\n return this.extractDataStructures(dict, baseDict, properties);\n }).then(newProperties => {\n this.extractWidths(dict, descriptor, newProperties);\n\n if (type === \"Type3\") {\n newProperties.isType3Font = true;\n }\n\n return new _fonts.Font(fontName.name, fontFile, newProperties);\n });\n }\n };\n\n PartialEvaluator.buildFontPaths = function (font, glyphs, handler) {\n function buildPath(fontChar) {\n if (font.renderer.hasBuiltPath(fontChar)) {\n return;\n }\n\n handler.send(\"commonobj\", [`${font.loadedName}_path_${fontChar}`, \"FontPath\", font.renderer.getPathJs(fontChar)]);\n }\n\n for (const glyph of glyphs) {\n buildPath(glyph.fontChar);\n const accent = glyph.accent;\n\n if (accent && accent.fontChar) {\n buildPath(accent.fontChar);\n }\n }\n };\n\n PartialEvaluator.getFallbackFontDict = function () {\n if (this._fallbackFontDict) {\n return this._fallbackFontDict;\n }\n\n const dict = new _primitives.Dict();\n dict.set(\"BaseFont\", _primitives.Name.get(\"PDFJS-FallbackFont\"));\n dict.set(\"Type\", _primitives.Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", _primitives.Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", _primitives.Name.get(\"WinAnsiEncoding\"));\n return this._fallbackFontDict = dict;\n };\n\n return PartialEvaluator;\n}();\n\nexports.PartialEvaluator = PartialEvaluator;\n\nclass TranslatedFont {\n constructor({\n loadedName,\n font,\n dict,\n extraProperties = false\n }) {\n this.loadedName = loadedName;\n this.font = font;\n this.dict = dict;\n this._extraProperties = extraProperties;\n this.type3Loaded = null;\n this.sent = false;\n }\n\n send(handler) {\n if (this.sent) {\n return;\n }\n\n this.sent = true;\n handler.send(\"commonobj\", [this.loadedName, \"Font\", this.font.exportData(this._extraProperties)]);\n }\n\n fallback(handler) {\n if (!this.font.data) {\n return;\n }\n\n this.font.disableFontFace = true;\n const glyphs = this.font.glyphCacheValues;\n PartialEvaluator.buildFontPaths(this.font, glyphs, handler);\n }\n\n loadType3Data(evaluator, resources, parentOperatorList, task) {\n if (!this.font.isType3Font) {\n throw new Error(\"Must be a Type3 font.\");\n }\n\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n\n var type3Options = Object.create(evaluator.options);\n type3Options.ignoreErrors = false;\n var type3Evaluator = evaluator.clone(type3Options);\n type3Evaluator.parsingType3Font = true;\n var translatedFont = this.font;\n var loadCharProcsPromise = Promise.resolve();\n var charProcs = this.dict.get(\"CharProcs\");\n var fontResources = this.dict.get(\"Resources\") || resources;\n var charProcKeys = charProcs.getKeys();\n var charProcOperatorList = Object.create(null);\n\n for (var i = 0, n = charProcKeys.length; i < n; ++i) {\n const key = charProcKeys[i];\n loadCharProcsPromise = loadCharProcsPromise.then(function () {\n var glyphStream = charProcs.get(key);\n var operatorList = new _operator_list.OperatorList();\n return type3Evaluator.getOperatorList({\n stream: glyphStream,\n task,\n resources: fontResources,\n operatorList\n }).then(function () {\n charProcOperatorList[key] = operatorList.getIR();\n parentOperatorList.addDependencies(operatorList.dependencies);\n }).catch(function (reason) {\n (0, _util.warn)(`Type3 font resource \"${key}\" is not available.`);\n const dummyOperatorList = new _operator_list.OperatorList();\n charProcOperatorList[key] = dummyOperatorList.getIR();\n });\n });\n }\n\n this.type3Loaded = loadCharProcsPromise.then(function () {\n translatedFont.charProcOperatorList = charProcOperatorList;\n });\n return this.type3Loaded;\n }\n\n}\n\nvar StateManager = function StateManagerClosure() {\n function StateManager(initialState) {\n this.state = initialState;\n this.stateStack = [];\n }\n\n StateManager.prototype = {\n save() {\n var old = this.state;\n this.stateStack.push(this.state);\n this.state = old.clone();\n },\n\n restore() {\n var prev = this.stateStack.pop();\n\n if (prev) {\n this.state = prev;\n }\n },\n\n transform(args) {\n this.state.ctm = _util.Util.transform(this.state.ctm, args);\n }\n\n };\n return StateManager;\n}();\n\nvar TextState = function TextStateClosure() {\n function TextState() {\n this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n this.fontName = null;\n this.fontSize = 0;\n this.font = null;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.textMatrix = _util.IDENTITY_MATRIX.slice();\n this.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.leading = 0;\n this.textHScale = 1;\n this.textRise = 0;\n }\n\n TextState.prototype = {\n setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n var m = this.textMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n },\n setTextLineMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n var m = this.textLineMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n },\n translateTextMatrix: function TextState_translateTextMatrix(x, y) {\n var m = this.textMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n },\n translateTextLineMatrix: function TextState_translateTextMatrix(x, y) {\n var m = this.textLineMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n },\n calcTextLineMatrixAdvance: function TextState_calcTextLineMatrixAdvance(a, b, c, d, e, f) {\n var font = this.font;\n\n if (!font) {\n return null;\n }\n\n var m = this.textLineMatrix;\n\n if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) {\n return null;\n }\n\n var txDiff = e - m[4],\n tyDiff = f - m[5];\n\n if (font.vertical && txDiff !== 0 || !font.vertical && tyDiff !== 0) {\n return null;\n }\n\n var tx,\n ty,\n denominator = a * d - b * c;\n\n if (font.vertical) {\n tx = -tyDiff * c / denominator;\n ty = tyDiff * a / denominator;\n } else {\n tx = txDiff * d / denominator;\n ty = -txDiff * b / denominator;\n }\n\n return {\n width: tx,\n height: ty,\n value: font.vertical ? ty : tx\n };\n },\n calcRenderMatrix: function TextState_calcRendeMatrix(ctm) {\n var tsm = [this.fontSize * this.textHScale, 0, 0, this.fontSize, 0, this.textRise];\n return _util.Util.transform(ctm, _util.Util.transform(this.textMatrix, tsm));\n },\n carriageReturn: function TextState_carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n },\n clone: function TextState_clone() {\n var clone = Object.create(this);\n clone.textMatrix = this.textMatrix.slice();\n clone.textLineMatrix = this.textLineMatrix.slice();\n clone.fontMatrix = this.fontMatrix.slice();\n return clone;\n }\n };\n return TextState;\n}();\n\nvar EvalState = function EvalStateClosure() {\n function EvalState() {\n this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n this.font = null;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n this.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n }\n\n EvalState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n }\n };\n return EvalState;\n}();\n\nvar EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {\n var getOPMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.w = {\n id: _util.OPS.setLineWidth,\n numArgs: 1,\n variableArgs: false\n };\n t.J = {\n id: _util.OPS.setLineCap,\n numArgs: 1,\n variableArgs: false\n };\n t.j = {\n id: _util.OPS.setLineJoin,\n numArgs: 1,\n variableArgs: false\n };\n t.M = {\n id: _util.OPS.setMiterLimit,\n numArgs: 1,\n variableArgs: false\n };\n t.d = {\n id: _util.OPS.setDash,\n numArgs: 2,\n variableArgs: false\n };\n t.ri = {\n id: _util.OPS.setRenderingIntent,\n numArgs: 1,\n variableArgs: false\n };\n t.i = {\n id: _util.OPS.setFlatness,\n numArgs: 1,\n variableArgs: false\n };\n t.gs = {\n id: _util.OPS.setGState,\n numArgs: 1,\n variableArgs: false\n };\n t.q = {\n id: _util.OPS.save,\n numArgs: 0,\n variableArgs: false\n };\n t.Q = {\n id: _util.OPS.restore,\n numArgs: 0,\n variableArgs: false\n };\n t.cm = {\n id: _util.OPS.transform,\n numArgs: 6,\n variableArgs: false\n };\n t.m = {\n id: _util.OPS.moveTo,\n numArgs: 2,\n variableArgs: false\n };\n t.l = {\n id: _util.OPS.lineTo,\n numArgs: 2,\n variableArgs: false\n };\n t.c = {\n id: _util.OPS.curveTo,\n numArgs: 6,\n variableArgs: false\n };\n t.v = {\n id: _util.OPS.curveTo2,\n numArgs: 4,\n variableArgs: false\n };\n t.y = {\n id: _util.OPS.curveTo3,\n numArgs: 4,\n variableArgs: false\n };\n t.h = {\n id: _util.OPS.closePath,\n numArgs: 0,\n variableArgs: false\n };\n t.re = {\n id: _util.OPS.rectangle,\n numArgs: 4,\n variableArgs: false\n };\n t.S = {\n id: _util.OPS.stroke,\n numArgs: 0,\n variableArgs: false\n };\n t.s = {\n id: _util.OPS.closeStroke,\n numArgs: 0,\n variableArgs: false\n };\n t.f = {\n id: _util.OPS.fill,\n numArgs: 0,\n variableArgs: false\n };\n t.F = {\n id: _util.OPS.fill,\n numArgs: 0,\n variableArgs: false\n };\n t[\"f*\"] = {\n id: _util.OPS.eoFill,\n numArgs: 0,\n variableArgs: false\n };\n t.B = {\n id: _util.OPS.fillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t[\"B*\"] = {\n id: _util.OPS.eoFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t.b = {\n id: _util.OPS.closeFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t[\"b*\"] = {\n id: _util.OPS.closeEOFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t.n = {\n id: _util.OPS.endPath,\n numArgs: 0,\n variableArgs: false\n };\n t.W = {\n id: _util.OPS.clip,\n numArgs: 0,\n variableArgs: false\n };\n t[\"W*\"] = {\n id: _util.OPS.eoClip,\n numArgs: 0,\n variableArgs: false\n };\n t.BT = {\n id: _util.OPS.beginText,\n numArgs: 0,\n variableArgs: false\n };\n t.ET = {\n id: _util.OPS.endText,\n numArgs: 0,\n variableArgs: false\n };\n t.Tc = {\n id: _util.OPS.setCharSpacing,\n numArgs: 1,\n variableArgs: false\n };\n t.Tw = {\n id: _util.OPS.setWordSpacing,\n numArgs: 1,\n variableArgs: false\n };\n t.Tz = {\n id: _util.OPS.setHScale,\n numArgs: 1,\n variableArgs: false\n };\n t.TL = {\n id: _util.OPS.setLeading,\n numArgs: 1,\n variableArgs: false\n };\n t.Tf = {\n id: _util.OPS.setFont,\n numArgs: 2,\n variableArgs: false\n };\n t.Tr = {\n id: _util.OPS.setTextRenderingMode,\n numArgs: 1,\n variableArgs: false\n };\n t.Ts = {\n id: _util.OPS.setTextRise,\n numArgs: 1,\n variableArgs: false\n };\n t.Td = {\n id: _util.OPS.moveText,\n numArgs: 2,\n variableArgs: false\n };\n t.TD = {\n id: _util.OPS.setLeadingMoveText,\n numArgs: 2,\n variableArgs: false\n };\n t.Tm = {\n id: _util.OPS.setTextMatrix,\n numArgs: 6,\n variableArgs: false\n };\n t[\"T*\"] = {\n id: _util.OPS.nextLine,\n numArgs: 0,\n variableArgs: false\n };\n t.Tj = {\n id: _util.OPS.showText,\n numArgs: 1,\n variableArgs: false\n };\n t.TJ = {\n id: _util.OPS.showSpacedText,\n numArgs: 1,\n variableArgs: false\n };\n t[\"'\"] = {\n id: _util.OPS.nextLineShowText,\n numArgs: 1,\n variableArgs: false\n };\n t['\"'] = {\n id: _util.OPS.nextLineSetSpacingShowText,\n numArgs: 3,\n variableArgs: false\n };\n t.d0 = {\n id: _util.OPS.setCharWidth,\n numArgs: 2,\n variableArgs: false\n };\n t.d1 = {\n id: _util.OPS.setCharWidthAndBounds,\n numArgs: 6,\n variableArgs: false\n };\n t.CS = {\n id: _util.OPS.setStrokeColorSpace,\n numArgs: 1,\n variableArgs: false\n };\n t.cs = {\n id: _util.OPS.setFillColorSpace,\n numArgs: 1,\n variableArgs: false\n };\n t.SC = {\n id: _util.OPS.setStrokeColor,\n numArgs: 4,\n variableArgs: true\n };\n t.SCN = {\n id: _util.OPS.setStrokeColorN,\n numArgs: 33,\n variableArgs: true\n };\n t.sc = {\n id: _util.OPS.setFillColor,\n numArgs: 4,\n variableArgs: true\n };\n t.scn = {\n id: _util.OPS.setFillColorN,\n numArgs: 33,\n variableArgs: true\n };\n t.G = {\n id: _util.OPS.setStrokeGray,\n numArgs: 1,\n variableArgs: false\n };\n t.g = {\n id: _util.OPS.setFillGray,\n numArgs: 1,\n variableArgs: false\n };\n t.RG = {\n id: _util.OPS.setStrokeRGBColor,\n numArgs: 3,\n variableArgs: false\n };\n t.rg = {\n id: _util.OPS.setFillRGBColor,\n numArgs: 3,\n variableArgs: false\n };\n t.K = {\n id: _util.OPS.setStrokeCMYKColor,\n numArgs: 4,\n variableArgs: false\n };\n t.k = {\n id: _util.OPS.setFillCMYKColor,\n numArgs: 4,\n variableArgs: false\n };\n t.sh = {\n id: _util.OPS.shadingFill,\n numArgs: 1,\n variableArgs: false\n };\n t.BI = {\n id: _util.OPS.beginInlineImage,\n numArgs: 0,\n variableArgs: false\n };\n t.ID = {\n id: _util.OPS.beginImageData,\n numArgs: 0,\n variableArgs: false\n };\n t.EI = {\n id: _util.OPS.endInlineImage,\n numArgs: 1,\n variableArgs: false\n };\n t.Do = {\n id: _util.OPS.paintXObject,\n numArgs: 1,\n variableArgs: false\n };\n t.MP = {\n id: _util.OPS.markPoint,\n numArgs: 1,\n variableArgs: false\n };\n t.DP = {\n id: _util.OPS.markPointProps,\n numArgs: 2,\n variableArgs: false\n };\n t.BMC = {\n id: _util.OPS.beginMarkedContent,\n numArgs: 1,\n variableArgs: false\n };\n t.BDC = {\n id: _util.OPS.beginMarkedContentProps,\n numArgs: 2,\n variableArgs: false\n };\n t.EMC = {\n id: _util.OPS.endMarkedContent,\n numArgs: 0,\n variableArgs: false\n };\n t.BX = {\n id: _util.OPS.beginCompat,\n numArgs: 0,\n variableArgs: false\n };\n t.EX = {\n id: _util.OPS.endCompat,\n numArgs: 0,\n variableArgs: false\n };\n t.BM = null;\n t.BD = null;\n t.true = null;\n t.fa = null;\n t.fal = null;\n t.fals = null;\n t.false = null;\n t.nu = null;\n t.nul = null;\n t.null = null;\n });\n const MAX_INVALID_PATH_OPS = 20;\n\n function EvaluatorPreprocessor(stream, xref, stateManager) {\n this.opMap = getOPMap();\n this.parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream, this.opMap),\n xref\n });\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n this._numInvalidPathOPS = 0;\n }\n\n EvaluatorPreprocessor.prototype = {\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n },\n\n read: function EvaluatorPreprocessor_read(operation) {\n var args = operation.args;\n\n while (true) {\n var obj = this.parser.getObj();\n\n if (obj instanceof _primitives.Cmd) {\n var cmd = obj.cmd;\n var opSpec = this.opMap[cmd];\n\n if (!opSpec) {\n (0, _util.warn)(`Unknown command \"${cmd}\".`);\n continue;\n }\n\n var fn = opSpec.id;\n var numArgs = opSpec.numArgs;\n var argsLength = args !== null ? args.length : 0;\n\n if (!opSpec.variableArgs) {\n if (argsLength !== numArgs) {\n var nonProcessedArgs = this.nonProcessedArgs;\n\n while (argsLength > numArgs) {\n nonProcessedArgs.push(args.shift());\n argsLength--;\n }\n\n while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n if (args === null) {\n args = [];\n }\n\n args.unshift(nonProcessedArgs.pop());\n argsLength++;\n }\n }\n\n if (argsLength < numArgs) {\n const partialMsg = `command ${cmd}: expected ${numArgs} args, ` + `but received ${argsLength} args.`;\n\n if (fn >= _util.OPS.moveTo && fn <= _util.OPS.endPath && ++this._numInvalidPathOPS > MAX_INVALID_PATH_OPS) {\n throw new _util.FormatError(`Invalid ${partialMsg}`);\n }\n\n (0, _util.warn)(`Skipping ${partialMsg}`);\n\n if (args !== null) {\n args.length = 0;\n }\n\n continue;\n }\n } else if (argsLength > numArgs) {\n (0, _util.info)(`Command ${cmd}: expected [0, ${numArgs}] args, ` + `but received ${argsLength} args.`);\n }\n\n this.preprocessCommand(fn, args);\n operation.fn = fn;\n operation.args = args;\n return true;\n }\n\n if (obj === _primitives.EOF) {\n return false;\n }\n\n if (obj !== null) {\n if (args === null) {\n args = [];\n }\n\n args.push(obj);\n\n if (args.length > 33) {\n throw new _util.FormatError(\"Too many arguments\");\n }\n }\n }\n },\n preprocessCommand: function EvaluatorPreprocessor_preprocessCommand(fn, args) {\n switch (fn | 0) {\n case _util.OPS.save:\n this.stateManager.save();\n break;\n\n case _util.OPS.restore:\n this.stateManager.restore();\n break;\n\n case _util.OPS.transform:\n this.stateManager.transform(args);\n break;\n }\n }\n };\n return EvaluatorPreprocessor;\n}();\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CMapFactory = exports.IdentityCMap = exports.CMap = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar BUILT_IN_CMAPS = [\"Adobe-GB1-UCS2\", \"Adobe-CNS1-UCS2\", \"Adobe-Japan1-UCS2\", \"Adobe-Korea1-UCS2\", \"78-EUC-H\", \"78-EUC-V\", \"78-H\", \"78-RKSJ-H\", \"78-RKSJ-V\", \"78-V\", \"78ms-RKSJ-H\", \"78ms-RKSJ-V\", \"83pv-RKSJ-H\", \"90ms-RKSJ-H\", \"90ms-RKSJ-V\", \"90msp-RKSJ-H\", \"90msp-RKSJ-V\", \"90pv-RKSJ-H\", \"90pv-RKSJ-V\", \"Add-H\", \"Add-RKSJ-H\", \"Add-RKSJ-V\", \"Add-V\", \"Adobe-CNS1-0\", \"Adobe-CNS1-1\", \"Adobe-CNS1-2\", \"Adobe-CNS1-3\", \"Adobe-CNS1-4\", \"Adobe-CNS1-5\", \"Adobe-CNS1-6\", \"Adobe-GB1-0\", \"Adobe-GB1-1\", \"Adobe-GB1-2\", \"Adobe-GB1-3\", \"Adobe-GB1-4\", \"Adobe-GB1-5\", \"Adobe-Japan1-0\", \"Adobe-Japan1-1\", \"Adobe-Japan1-2\", \"Adobe-Japan1-3\", \"Adobe-Japan1-4\", \"Adobe-Japan1-5\", \"Adobe-Japan1-6\", \"Adobe-Korea1-0\", \"Adobe-Korea1-1\", \"Adobe-Korea1-2\", \"B5-H\", \"B5-V\", \"B5pc-H\", \"B5pc-V\", \"CNS-EUC-H\", \"CNS-EUC-V\", \"CNS1-H\", \"CNS1-V\", \"CNS2-H\", \"CNS2-V\", \"ETHK-B5-H\", \"ETHK-B5-V\", \"ETen-B5-H\", \"ETen-B5-V\", \"ETenms-B5-H\", \"ETenms-B5-V\", \"EUC-H\", \"EUC-V\", \"Ext-H\", \"Ext-RKSJ-H\", \"Ext-RKSJ-V\", \"Ext-V\", \"GB-EUC-H\", \"GB-EUC-V\", \"GB-H\", \"GB-V\", \"GBK-EUC-H\", \"GBK-EUC-V\", \"GBK2K-H\", \"GBK2K-V\", \"GBKp-EUC-H\", \"GBKp-EUC-V\", \"GBT-EUC-H\", \"GBT-EUC-V\", \"GBT-H\", \"GBT-V\", \"GBTpc-EUC-H\", \"GBTpc-EUC-V\", \"GBpc-EUC-H\", \"GBpc-EUC-V\", \"H\", \"HKdla-B5-H\", \"HKdla-B5-V\", \"HKdlb-B5-H\", \"HKdlb-B5-V\", \"HKgccs-B5-H\", \"HKgccs-B5-V\", \"HKm314-B5-H\", \"HKm314-B5-V\", \"HKm471-B5-H\", \"HKm471-B5-V\", \"HKscs-B5-H\", \"HKscs-B5-V\", \"Hankaku\", \"Hiragana\", \"KSC-EUC-H\", \"KSC-EUC-V\", \"KSC-H\", \"KSC-Johab-H\", \"KSC-Johab-V\", \"KSC-V\", \"KSCms-UHC-H\", \"KSCms-UHC-HW-H\", \"KSCms-UHC-HW-V\", \"KSCms-UHC-V\", \"KSCpc-EUC-H\", \"KSCpc-EUC-V\", \"Katakana\", \"NWP-H\", \"NWP-V\", \"RKSJ-H\", \"RKSJ-V\", \"Roman\", \"UniCNS-UCS2-H\", \"UniCNS-UCS2-V\", \"UniCNS-UTF16-H\", \"UniCNS-UTF16-V\", \"UniCNS-UTF32-H\", \"UniCNS-UTF32-V\", \"UniCNS-UTF8-H\", \"UniCNS-UTF8-V\", \"UniGB-UCS2-H\", \"UniGB-UCS2-V\", \"UniGB-UTF16-H\", \"UniGB-UTF16-V\", \"UniGB-UTF32-H\", \"UniGB-UTF32-V\", \"UniGB-UTF8-H\", \"UniGB-UTF8-V\", \"UniJIS-UCS2-H\", \"UniJIS-UCS2-HW-H\", \"UniJIS-UCS2-HW-V\", \"UniJIS-UCS2-V\", \"UniJIS-UTF16-H\", \"UniJIS-UTF16-V\", \"UniJIS-UTF32-H\", \"UniJIS-UTF32-V\", \"UniJIS-UTF8-H\", \"UniJIS-UTF8-V\", \"UniJIS2004-UTF16-H\", \"UniJIS2004-UTF16-V\", \"UniJIS2004-UTF32-H\", \"UniJIS2004-UTF32-V\", \"UniJIS2004-UTF8-H\", \"UniJIS2004-UTF8-V\", \"UniJISPro-UCS2-HW-V\", \"UniJISPro-UCS2-V\", \"UniJISPro-UTF8-V\", \"UniJISX0213-UTF32-H\", \"UniJISX0213-UTF32-V\", \"UniJISX02132004-UTF32-H\", \"UniJISX02132004-UTF32-V\", \"UniKS-UCS2-H\", \"UniKS-UCS2-V\", \"UniKS-UTF16-H\", \"UniKS-UTF16-V\", \"UniKS-UTF32-H\", \"UniKS-UTF32-V\", \"UniKS-UTF8-H\", \"UniKS-UTF8-V\", \"V\", \"WP-Symbol\"];\nconst MAX_MAP_RANGE = 2 ** 24 - 1;\n\nclass CMap {\n constructor(builtInCMap = false) {\n this.codespaceRanges = [[], [], [], []];\n this.numCodespaceRanges = 0;\n this._map = [];\n this.name = \"\";\n this.vertical = false;\n this.useCMap = null;\n this.builtInCMap = builtInCMap;\n }\n\n addCodespaceRange(n, low, high) {\n this.codespaceRanges[n - 1].push(low, high);\n this.numCodespaceRanges++;\n }\n\n mapCidRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n }\n\n while (low <= high) {\n this._map[low++] = dstLow++;\n }\n }\n\n mapBfRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n }\n\n var lastByte = dstLow.length - 1;\n\n while (low <= high) {\n this._map[low++] = dstLow;\n dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1);\n }\n }\n\n mapBfRangeToArray(low, high, array) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n }\n\n const ii = array.length;\n let i = 0;\n\n while (low <= high && i < ii) {\n this._map[low] = array[i++];\n ++low;\n }\n }\n\n mapOne(src, dst) {\n this._map[src] = dst;\n }\n\n lookup(code) {\n return this._map[code];\n }\n\n contains(code) {\n return this._map[code] !== undefined;\n }\n\n forEach(callback) {\n const map = this._map;\n const length = map.length;\n\n if (length <= 0x10000) {\n for (let i = 0; i < length; i++) {\n if (map[i] !== undefined) {\n callback(i, map[i]);\n }\n }\n } else {\n for (const i in map) {\n callback(i, map[i]);\n }\n }\n }\n\n charCodeOf(value) {\n const map = this._map;\n\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n\n return -1;\n }\n\n getMap() {\n return this._map;\n }\n\n readCharCode(str, offset, out) {\n let c = 0;\n const codespaceRanges = this.codespaceRanges;\n\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;\n const codespaceRange = codespaceRanges[n];\n\n for (let k = 0, kk = codespaceRange.length; k < kk;) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n\n if (c >= low && c <= high) {\n out.charcode = c;\n out.length = n + 1;\n return;\n }\n }\n }\n\n out.charcode = 0;\n out.length = 1;\n }\n\n get length() {\n return this._map.length;\n }\n\n get isIdentityCMap() {\n if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n return false;\n }\n\n if (this._map.length !== 0x10000) {\n return false;\n }\n\n for (let i = 0; i < 0x10000; i++) {\n if (this._map[i] !== i) {\n return false;\n }\n }\n\n return true;\n }\n\n}\n\nexports.CMap = CMap;\n\nclass IdentityCMap extends CMap {\n constructor(vertical, n) {\n super();\n this.vertical = vertical;\n this.addCodespaceRange(n, 0, 0xffff);\n }\n\n mapCidRange(low, high, dstLow) {\n (0, _util.unreachable)(\"should not call mapCidRange\");\n }\n\n mapBfRange(low, high, dstLow) {\n (0, _util.unreachable)(\"should not call mapBfRange\");\n }\n\n mapBfRangeToArray(low, high, array) {\n (0, _util.unreachable)(\"should not call mapBfRangeToArray\");\n }\n\n mapOne(src, dst) {\n (0, _util.unreachable)(\"should not call mapCidOne\");\n }\n\n lookup(code) {\n return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n }\n\n contains(code) {\n return Number.isInteger(code) && code <= 0xffff;\n }\n\n forEach(callback) {\n for (let i = 0; i <= 0xffff; i++) {\n callback(i, i);\n }\n }\n\n charCodeOf(value) {\n return Number.isInteger(value) && value <= 0xffff ? value : -1;\n }\n\n getMap() {\n const map = new Array(0x10000);\n\n for (let i = 0; i <= 0xffff; i++) {\n map[i] = i;\n }\n\n return map;\n }\n\n get length() {\n return 0x10000;\n }\n\n get isIdentityCMap() {\n (0, _util.unreachable)(\"should not access .isIdentityCMap\");\n }\n\n}\n\nexports.IdentityCMap = IdentityCMap;\n\nvar BinaryCMapReader = function BinaryCMapReaderClosure() {\n function hexToInt(a, size) {\n var n = 0;\n\n for (var i = 0; i <= size; i++) {\n n = n << 8 | a[i];\n }\n\n return n >>> 0;\n }\n\n function hexToStr(a, size) {\n if (size === 1) {\n return String.fromCharCode(a[0], a[1]);\n }\n\n if (size === 3) {\n return String.fromCharCode(a[0], a[1], a[2], a[3]);\n }\n\n return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n }\n\n function addHex(a, b, size) {\n var c = 0;\n\n for (var i = size; i >= 0; i--) {\n c += a[i] + b[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n function incHex(a, size) {\n var c = 1;\n\n for (var i = size; i >= 0 && c > 0; i--) {\n c += a[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n var MAX_NUM_SIZE = 16;\n var MAX_ENCODED_NUM_SIZE = 19;\n\n function BinaryCMapStream(data) {\n this.buffer = data;\n this.pos = 0;\n this.end = data.length;\n this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n }\n\n BinaryCMapStream.prototype = {\n readByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n\n return this.buffer[this.pos++];\n },\n\n readNumber() {\n var n = 0;\n var last;\n\n do {\n var b = this.readByte();\n\n if (b < 0) {\n throw new _util.FormatError(\"unexpected EOF in bcmap\");\n }\n\n last = !(b & 0x80);\n n = n << 7 | b & 0x7f;\n } while (!last);\n\n return n;\n },\n\n readSigned() {\n var n = this.readNumber();\n return n & 1 ? ~(n >>> 1) : n >>> 1;\n },\n\n readHex(num, size) {\n num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n this.pos += size + 1;\n },\n\n readHexNumber(num, size) {\n var last;\n var stack = this.tmpBuf,\n sp = 0;\n\n do {\n var b = this.readByte();\n\n if (b < 0) {\n throw new _util.FormatError(\"unexpected EOF in bcmap\");\n }\n\n last = !(b & 0x80);\n stack[sp++] = b & 0x7f;\n } while (!last);\n\n var i = size,\n buffer = 0,\n bufferSize = 0;\n\n while (i >= 0) {\n while (bufferSize < 8 && stack.length > 0) {\n buffer = stack[--sp] << bufferSize | buffer;\n bufferSize += 7;\n }\n\n num[i] = buffer & 255;\n i--;\n buffer >>= 8;\n bufferSize -= 8;\n }\n },\n\n readHexSigned(num, size) {\n this.readHexNumber(num, size);\n var sign = num[size] & 1 ? 255 : 0;\n var c = 0;\n\n for (var i = 0; i <= size; i++) {\n c = (c & 1) << 8 | num[i];\n num[i] = c >> 1 ^ sign;\n }\n },\n\n readString() {\n var len = this.readNumber();\n var s = \"\";\n\n for (var i = 0; i < len; i++) {\n s += String.fromCharCode(this.readNumber());\n }\n\n return s;\n }\n\n };\n\n function processBinaryCMap(data, cMap, extend) {\n return new Promise(function (resolve, reject) {\n var stream = new BinaryCMapStream(data);\n var header = stream.readByte();\n cMap.vertical = !!(header & 1);\n var useCMap = null;\n var start = new Uint8Array(MAX_NUM_SIZE);\n var end = new Uint8Array(MAX_NUM_SIZE);\n var char = new Uint8Array(MAX_NUM_SIZE);\n var charCode = new Uint8Array(MAX_NUM_SIZE);\n var tmp = new Uint8Array(MAX_NUM_SIZE);\n var code;\n var b;\n\n while ((b = stream.readByte()) >= 0) {\n var type = b >> 5;\n\n if (type === 7) {\n switch (b & 0x1f) {\n case 0:\n stream.readString();\n break;\n\n case 1:\n useCMap = stream.readString();\n break;\n }\n\n continue;\n }\n\n var sequence = !!(b & 0x10);\n var dataSize = b & 15;\n\n if (dataSize + 1 > MAX_NUM_SIZE) {\n throw new Error(\"processBinaryCMap: Invalid dataSize.\");\n }\n\n var ucs2DataSize = 1;\n var subitemsCount = stream.readNumber();\n var i;\n\n switch (type) {\n case 0:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n }\n\n break;\n\n case 1:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber();\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber();\n }\n\n break;\n\n case 2:\n stream.readHex(char, dataSize);\n code = stream.readNumber();\n cMap.mapOne(hexToInt(char, dataSize), code);\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, dataSize);\n\n if (!sequence) {\n stream.readHexNumber(tmp, dataSize);\n addHex(char, tmp, dataSize);\n }\n\n code = stream.readSigned() + (code + 1);\n cMap.mapOne(hexToInt(char, dataSize), code);\n }\n\n break;\n\n case 3:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n\n if (!sequence) {\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n } else {\n start.set(end);\n }\n\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n }\n\n break;\n\n case 4:\n stream.readHex(char, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, ucs2DataSize);\n\n if (!sequence) {\n stream.readHexNumber(tmp, ucs2DataSize);\n addHex(char, tmp, ucs2DataSize);\n }\n\n incHex(charCode, dataSize);\n stream.readHexSigned(tmp, dataSize);\n addHex(charCode, tmp, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n\n break;\n\n case 5:\n stream.readHex(start, ucs2DataSize);\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, ucs2DataSize);\n\n if (!sequence) {\n stream.readHexNumber(start, ucs2DataSize);\n addHex(start, end, ucs2DataSize);\n } else {\n start.set(end);\n }\n\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n\n break;\n\n default:\n reject(new Error(\"processBinaryCMap: Unknown type: \" + type));\n return;\n }\n }\n\n if (useCMap) {\n resolve(extend(useCMap));\n return;\n }\n\n resolve(cMap);\n });\n }\n\n function BinaryCMapReader() {}\n\n BinaryCMapReader.prototype = {\n process: processBinaryCMap\n };\n return BinaryCMapReader;\n}();\n\nvar CMapFactory = function CMapFactoryClosure() {\n function strToInt(str) {\n var a = 0;\n\n for (var i = 0; i < str.length; i++) {\n a = a << 8 | str.charCodeAt(i);\n }\n\n return a >>> 0;\n }\n\n function expectString(obj) {\n if (!(0, _util.isString)(obj)) {\n throw new _util.FormatError(\"Malformed CMap: expected string.\");\n }\n }\n\n function expectInt(obj) {\n if (!Number.isInteger(obj)) {\n throw new _util.FormatError(\"Malformed CMap: expected int.\");\n }\n }\n\n function parseBfChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endbfchar\")) {\n return;\n }\n\n expectString(obj);\n var src = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseBfRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endbfrange\")) {\n return;\n }\n\n expectString(obj);\n var low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var high = strToInt(obj);\n obj = lexer.getObj();\n\n if (Number.isInteger(obj) || (0, _util.isString)(obj)) {\n var dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n cMap.mapBfRange(low, high, dstLow);\n } else if ((0, _primitives.isCmd)(obj, \"[\")) {\n obj = lexer.getObj();\n var array = [];\n\n while (!(0, _primitives.isCmd)(obj, \"]\") && !(0, _primitives.isEOF)(obj)) {\n array.push(obj);\n obj = lexer.getObj();\n }\n\n cMap.mapBfRangeToArray(low, high, array);\n } else {\n break;\n }\n }\n\n throw new _util.FormatError(\"Invalid bf range.\");\n }\n\n function parseCidChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endcidchar\")) {\n return;\n }\n\n expectString(obj);\n var src = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n var dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseCidRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endcidrange\")) {\n return;\n }\n\n expectString(obj);\n var low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var high = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n var dstLow = obj;\n cMap.mapCidRange(low, high, dstLow);\n }\n }\n\n function parseCodespaceRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endcodespacerange\")) {\n return;\n }\n\n if (!(0, _util.isString)(obj)) {\n break;\n }\n\n var low = strToInt(obj);\n obj = lexer.getObj();\n\n if (!(0, _util.isString)(obj)) {\n break;\n }\n\n var high = strToInt(obj);\n cMap.addCodespaceRange(obj.length, low, high);\n }\n\n throw new _util.FormatError(\"Invalid codespace range.\");\n }\n\n function parseWMode(cMap, lexer) {\n var obj = lexer.getObj();\n\n if (Number.isInteger(obj)) {\n cMap.vertical = !!obj;\n }\n }\n\n function parseCMapName(cMap, lexer) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isName)(obj) && (0, _util.isString)(obj.name)) {\n cMap.name = obj.name;\n }\n }\n\n function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n var previous;\n var embeddedUseCMap;\n\n objLoop: while (true) {\n try {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n } else if ((0, _primitives.isName)(obj)) {\n if (obj.name === \"WMode\") {\n parseWMode(cMap, lexer);\n } else if (obj.name === \"CMapName\") {\n parseCMapName(cMap, lexer);\n }\n\n previous = obj;\n } else if ((0, _primitives.isCmd)(obj)) {\n switch (obj.cmd) {\n case \"endcmap\":\n break objLoop;\n\n case \"usecmap\":\n if ((0, _primitives.isName)(previous)) {\n embeddedUseCMap = previous.name;\n }\n\n break;\n\n case \"begincodespacerange\":\n parseCodespaceRange(cMap, lexer);\n break;\n\n case \"beginbfchar\":\n parseBfChar(cMap, lexer);\n break;\n\n case \"begincidchar\":\n parseCidChar(cMap, lexer);\n break;\n\n case \"beginbfrange\":\n parseBfRange(cMap, lexer);\n break;\n\n case \"begincidrange\":\n parseCidRange(cMap, lexer);\n break;\n }\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Invalid cMap data: \" + ex);\n continue;\n }\n }\n\n if (!useCMap && embeddedUseCMap) {\n useCMap = embeddedUseCMap;\n }\n\n if (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n }\n\n return Promise.resolve(cMap);\n }\n\n function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) {\n cMap.useCMap = newCMap;\n\n if (cMap.numCodespaceRanges === 0) {\n var useCodespaceRanges = cMap.useCMap.codespaceRanges;\n\n for (var i = 0; i < useCodespaceRanges.length; i++) {\n cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n }\n\n cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n }\n\n cMap.useCMap.forEach(function (key, value) {\n if (!cMap.contains(key)) {\n cMap.mapOne(key, cMap.useCMap.lookup(key));\n }\n });\n return cMap;\n });\n }\n\n function createBuiltInCMap(name, fetchBuiltInCMap) {\n if (name === \"Identity-H\") {\n return Promise.resolve(new IdentityCMap(false, 2));\n } else if (name === \"Identity-V\") {\n return Promise.resolve(new IdentityCMap(true, 2));\n }\n\n if (!BUILT_IN_CMAPS.includes(name)) {\n return Promise.reject(new Error(\"Unknown CMap name: \" + name));\n }\n\n if (!fetchBuiltInCMap) {\n return Promise.reject(new Error(\"Built-in CMap parameters are not provided.\"));\n }\n\n return fetchBuiltInCMap(name).then(function (data) {\n var cMapData = data.cMapData,\n compressionType = data.compressionType;\n var cMap = new CMap(true);\n\n if (compressionType === _util.CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n });\n }\n\n if (compressionType === _util.CMapCompressionType.NONE) {\n var lexer = new _parser.Lexer(new _stream.Stream(cMapData));\n return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n }\n\n return Promise.reject(new Error(\"TODO: Only BINARY/NONE CMap compression is currently supported.\"));\n });\n }\n\n return {\n async create(params) {\n var encoding = params.encoding;\n var fetchBuiltInCMap = params.fetchBuiltInCMap;\n var useCMap = params.useCMap;\n\n if ((0, _primitives.isName)(encoding)) {\n return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n } else if ((0, _primitives.isStream)(encoding)) {\n var cMap = new CMap();\n var lexer = new _parser.Lexer(encoding);\n return parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap).then(function (parsedCMap) {\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n\n return parsedCMap;\n });\n }\n\n throw new Error(\"Encoding required.\");\n }\n\n };\n}();\n\nexports.CMapFactory = CMapFactory;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFontType = getFontType;\nexports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = exports.SEAC_ANALYSIS_ENABLED = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(30);\n\nvar _glyphlist = __w_pdfjs_require__(33);\n\nvar _encodings = __w_pdfjs_require__(32);\n\nvar _standard_fonts = __w_pdfjs_require__(34);\n\nvar _unicode = __w_pdfjs_require__(35);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _font_renderer = __w_pdfjs_require__(36);\n\nvar _cmap = __w_pdfjs_require__(28);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _type1_parser = __w_pdfjs_require__(37);\n\nconst PRIVATE_USE_AREAS = [[0xe000, 0xf8ff], [0x100000, 0x10fffd]];\nvar PDF_GLYPH_SPACE_UNITS = 1000;\nvar SEAC_ANALYSIS_ENABLED = true;\nexports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED;\nconst EXPORT_DATA_PROPERTIES = [\"ascent\", \"bbox\", \"black\", \"bold\", \"charProcOperatorList\", \"composite\", \"data\", \"defaultVMetrics\", \"defaultWidth\", \"descent\", \"fallbackName\", \"fontMatrix\", \"fontType\", \"isMonospace\", \"isSerifFont\", \"isType3Font\", \"italic\", \"loadedName\", \"mimetype\", \"missingFile\", \"name\", \"remeasure\", \"subtype\", \"type\", \"vertical\"];\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\"cMap\", \"defaultEncoding\", \"differences\", \"isSymbolicFont\", \"seacMap\", \"toFontChar\", \"toUnicode\", \"vmetrics\", \"widths\"];\nvar FontFlags = {\n FixedPitch: 1,\n Serif: 2,\n Symbolic: 4,\n Script: 8,\n Nonsymbolic: 32,\n Italic: 64,\n AllCap: 65536,\n SmallCap: 131072,\n ForceBold: 262144\n};\nexports.FontFlags = FontFlags;\nvar MacStandardGlyphOrdering = [\".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\", \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\", \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\", \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\", \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\", \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\n\nfunction adjustWidths(properties) {\n if (!properties.fontMatrix) {\n return;\n }\n\n if (properties.fontMatrix[0] === _util.FONT_IDENTITY_MATRIX[0]) {\n return;\n }\n\n var scale = 0.001 / properties.fontMatrix[0];\n var glyphsWidths = properties.widths;\n\n for (var glyph in glyphsWidths) {\n glyphsWidths[glyph] *= scale;\n }\n\n properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n if (properties.hasIncludedToUnicodeMap) {\n return;\n }\n\n if (properties.hasEncoding) {\n return;\n }\n\n if (builtInEncoding === properties.defaultEncoding) {\n return;\n }\n\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n\n var toUnicode = [],\n glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n for (var charCode in builtInEncoding) {\n var glyphName = builtInEncoding[charCode];\n var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n }\n\n properties.toUnicode.amend(toUnicode);\n}\n\nfunction getFontType(type, subtype) {\n switch (type) {\n case \"Type1\":\n return subtype === \"Type1C\" ? _util.FontType.TYPE1C : _util.FontType.TYPE1;\n\n case \"CIDFontType0\":\n return subtype === \"CIDFontType0C\" ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0;\n\n case \"OpenType\":\n return _util.FontType.OPENTYPE;\n\n case \"TrueType\":\n return _util.FontType.TRUETYPE;\n\n case \"CIDFontType2\":\n return _util.FontType.CIDFONTTYPE2;\n\n case \"MMType1\":\n return _util.FontType.MMTYPE1;\n\n case \"Type0\":\n return _util.FontType.TYPE0;\n\n default:\n return _util.FontType.UNKNOWN;\n }\n}\n\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n if (glyphsUnicodeMap[name] !== undefined) {\n return name;\n }\n\n var unicode = (0, _unicode.getUnicodeForGlyph)(name, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n for (var key in glyphsUnicodeMap) {\n if (glyphsUnicodeMap[key] === unicode) {\n return key;\n }\n }\n }\n\n (0, _util.info)(\"Unable to recover a standard glyph name for: \" + name);\n return name;\n}\n\nvar Glyph = function GlyphClosure() {\n function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n this.fontChar = fontChar;\n this.unicode = unicode;\n this.accent = accent;\n this.width = width;\n this.vmetric = vmetric;\n this.operatorListId = operatorListId;\n this.isSpace = isSpace;\n this.isInFont = isInFont;\n }\n\n Glyph.prototype.matchesForCache = function (fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n return this.fontChar === fontChar && this.unicode === unicode && this.accent === accent && this.width === width && this.vmetric === vmetric && this.operatorListId === operatorListId && this.isSpace === isSpace && this.isInFont === isInFont;\n };\n\n return Glyph;\n}();\n\nvar ToUnicodeMap = function ToUnicodeMapClosure() {\n function ToUnicodeMap(cmap = []) {\n this._map = cmap;\n }\n\n ToUnicodeMap.prototype = {\n get length() {\n return this._map.length;\n },\n\n forEach(callback) {\n for (var charCode in this._map) {\n callback(charCode, this._map[charCode].charCodeAt(0));\n }\n },\n\n has(i) {\n return this._map[i] !== undefined;\n },\n\n get(i) {\n return this._map[i];\n },\n\n charCodeOf(value) {\n const map = this._map;\n\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n\n return -1;\n },\n\n amend(map) {\n for (var charCode in map) {\n this._map[charCode] = map[charCode];\n }\n }\n\n };\n return ToUnicodeMap;\n}();\n\nexports.ToUnicodeMap = ToUnicodeMap;\n\nvar IdentityToUnicodeMap = function IdentityToUnicodeMapClosure() {\n function IdentityToUnicodeMap(firstChar, lastChar) {\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n }\n\n IdentityToUnicodeMap.prototype = {\n get length() {\n return this.lastChar + 1 - this.firstChar;\n },\n\n forEach(callback) {\n for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n callback(i, i);\n }\n },\n\n has(i) {\n return this.firstChar <= i && i <= this.lastChar;\n },\n\n get(i) {\n if (this.firstChar <= i && i <= this.lastChar) {\n return String.fromCharCode(i);\n }\n\n return undefined;\n },\n\n charCodeOf(v) {\n return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1;\n },\n\n amend(map) {\n (0, _util.unreachable)(\"Should not call amend()\");\n }\n\n };\n return IdentityToUnicodeMap;\n}();\n\nexports.IdentityToUnicodeMap = IdentityToUnicodeMap;\n\nvar OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() {\n function writeInt16(dest, offset, num) {\n dest[offset] = num >> 8 & 0xff;\n dest[offset + 1] = num & 0xff;\n }\n\n function writeInt32(dest, offset, num) {\n dest[offset] = num >> 24 & 0xff;\n dest[offset + 1] = num >> 16 & 0xff;\n dest[offset + 2] = num >> 8 & 0xff;\n dest[offset + 3] = num & 0xff;\n }\n\n function writeData(dest, offset, data) {\n var i, ii;\n\n if (data instanceof Uint8Array) {\n dest.set(data, offset);\n } else if (typeof data === \"string\") {\n for (i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data.charCodeAt(i) & 0xff;\n }\n } else {\n for (i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data[i] & 0xff;\n }\n }\n }\n\n function OpenTypeFileBuilder(sfnt) {\n this.sfnt = sfnt;\n this.tables = Object.create(null);\n }\n\n OpenTypeFileBuilder.getSearchParams = function OpenTypeFileBuilder_getSearchParams(entriesCount, entrySize) {\n var maxPower2 = 1,\n log2 = 0;\n\n while ((maxPower2 ^ entriesCount) > maxPower2) {\n maxPower2 <<= 1;\n log2++;\n }\n\n var searchRange = maxPower2 * entrySize;\n return {\n range: searchRange,\n entry: log2,\n rangeShift: entrySize * entriesCount - searchRange\n };\n };\n\n var OTF_HEADER_SIZE = 12;\n var OTF_TABLE_ENTRY_SIZE = 16;\n OpenTypeFileBuilder.prototype = {\n toArray: function OpenTypeFileBuilder_toArray() {\n var sfnt = this.sfnt;\n var tables = this.tables;\n var tablesNames = Object.keys(tables);\n tablesNames.sort();\n var numTables = tablesNames.length;\n var i, j, jj, table, tableName;\n var offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n var tableOffsets = [offset];\n\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n var paddedLength = (table.length + 3 & ~3) >>> 0;\n offset += paddedLength;\n tableOffsets.push(offset);\n }\n\n var file = new Uint8Array(offset);\n\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n writeData(file, tableOffsets[i], table);\n }\n\n if (sfnt === \"true\") {\n sfnt = (0, _util.string32)(0x00010000);\n }\n\n file[0] = sfnt.charCodeAt(0) & 0xff;\n file[1] = sfnt.charCodeAt(1) & 0xff;\n file[2] = sfnt.charCodeAt(2) & 0xff;\n file[3] = sfnt.charCodeAt(3) & 0xff;\n writeInt16(file, 4, numTables);\n var searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n writeInt16(file, 6, searchParams.range);\n writeInt16(file, 8, searchParams.entry);\n writeInt16(file, 10, searchParams.rangeShift);\n offset = OTF_HEADER_SIZE;\n\n for (i = 0; i < numTables; i++) {\n tableName = tablesNames[i];\n file[offset] = tableName.charCodeAt(0) & 0xff;\n file[offset + 1] = tableName.charCodeAt(1) & 0xff;\n file[offset + 2] = tableName.charCodeAt(2) & 0xff;\n file[offset + 3] = tableName.charCodeAt(3) & 0xff;\n var checksum = 0;\n\n for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n var quad = (0, _core_utils.readUint32)(file, j);\n checksum = checksum + quad >>> 0;\n }\n\n writeInt32(file, offset + 4, checksum);\n writeInt32(file, offset + 8, tableOffsets[i]);\n writeInt32(file, offset + 12, tables[tableName].length);\n offset += OTF_TABLE_ENTRY_SIZE;\n }\n\n return file;\n },\n addTable: function OpenTypeFileBuilder_addTable(tag, data) {\n if (tag in this.tables) {\n throw new Error(\"Table \" + tag + \" already exists\");\n }\n\n this.tables[tag] = data;\n }\n };\n return OpenTypeFileBuilder;\n}();\n\nvar Font = function FontClosure() {\n function Font(name, file, properties) {\n var charCode;\n this.name = name;\n this.loadedName = properties.loadedName;\n this.isType3Font = properties.isType3Font;\n this.missingFile = false;\n this.glyphCache = Object.create(null);\n this.isSerifFont = !!(properties.flags & FontFlags.Serif);\n this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n var type = properties.type;\n var subtype = properties.subtype;\n this.type = type;\n this.subtype = subtype;\n let fallbackName = \"sans-serif\";\n\n if (this.isMonospace) {\n fallbackName = \"monospace\";\n } else if (this.isSerifFont) {\n fallbackName = \"serif\";\n }\n\n this.fallbackName = fallbackName;\n this.differences = properties.differences;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.composite = properties.composite;\n this.cMap = properties.cMap;\n this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n this.fontMatrix = properties.fontMatrix;\n this.bbox = properties.bbox;\n this.defaultEncoding = properties.defaultEncoding;\n this.toUnicode = properties.toUnicode;\n this.fallbackToUnicode = properties.fallbackToUnicode || new ToUnicodeMap();\n this.toFontChar = [];\n\n if (properties.type === \"Type3\") {\n for (charCode = 0; charCode < 256; charCode++) {\n this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode];\n }\n\n this.fontType = _util.FontType.TYPE3;\n return;\n }\n\n this.cidEncoding = properties.cidEncoding;\n this.vertical = !!properties.vertical;\n\n if (this.vertical) {\n this.vmetrics = properties.vmetrics;\n this.defaultVMetrics = properties.defaultVMetrics;\n }\n\n if (!file || file.isEmpty) {\n if (file) {\n (0, _util.warn)('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n }\n\n this.fallbackToSystemFont();\n return;\n }\n\n [type, subtype] = getFontFileType(file, properties);\n\n if (type !== this.type || subtype !== this.subtype) {\n (0, _util.info)(\"Inconsistent font file Type/SubType, expected: \" + `${this.type}/${this.subtype} but found: ${type}/${subtype}.`);\n }\n\n try {\n var data;\n\n switch (type) {\n case \"MMType1\":\n (0, _util.info)(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n\n case \"Type1\":\n case \"CIDFontType0\":\n this.mimetype = \"font/opentype\";\n var cff = subtype === \"Type1C\" || subtype === \"CIDFontType0C\" ? new CFFFont(file, properties) : new Type1Font(name, file, properties);\n adjustWidths(properties);\n data = this.convert(name, cff, properties);\n break;\n\n case \"OpenType\":\n case \"TrueType\":\n case \"CIDFontType2\":\n this.mimetype = \"font/opentype\";\n data = this.checkAndRepair(name, file, properties);\n\n if (this.isOpenType) {\n adjustWidths(properties);\n type = \"OpenType\";\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Font ${type} is not supported`);\n }\n } catch (e) {\n (0, _util.warn)(e);\n this.fallbackToSystemFont();\n return;\n }\n\n this.data = data;\n this.fontType = getFontType(type, subtype);\n this.fontMatrix = properties.fontMatrix;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.toUnicode = properties.toUnicode;\n this.seacMap = properties.seacMap;\n }\n\n Font.getFontID = function () {\n var ID = 1;\n return function Font_getFontID() {\n return String(ID++);\n };\n }();\n\n function int16(b0, b1) {\n return (b0 << 8) + b1;\n }\n\n function writeSignedInt16(bytes, index, value) {\n bytes[index + 1] = value;\n bytes[index] = value >>> 8;\n }\n\n function signedInt16(b0, b1) {\n var value = (b0 << 8) + b1;\n return value & 1 << 15 ? value - 0x10000 : value;\n }\n\n function int32(b0, b1, b2, b3) {\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n function string16(value) {\n return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n }\n\n function safeString16(value) {\n if (value > 0x7fff) {\n value = 0x7fff;\n } else if (value < -0x8000) {\n value = -0x8000;\n }\n\n return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n }\n\n function isTrueTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _core_utils.readUint32)(header, 0) === 0x00010000 || (0, _util.bytesToString)(header) === \"true\";\n }\n\n function isTrueTypeCollectionFile(file) {\n const header = file.peekBytes(4);\n return (0, _util.bytesToString)(header) === \"ttcf\";\n }\n\n function isOpenTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _util.bytesToString)(header) === \"OTTO\";\n }\n\n function isType1File(file) {\n var header = file.peekBytes(2);\n\n if (header[0] === 0x25 && header[1] === 0x21) {\n return true;\n }\n\n if (header[0] === 0x80 && header[1] === 0x01) {\n return true;\n }\n\n return false;\n }\n\n function isCFFFile(file) {\n const header = file.peekBytes(4);\n\n if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) {\n return true;\n }\n\n return false;\n }\n\n function getFontFileType(file, {\n type,\n subtype,\n composite\n }) {\n let fileType, fileSubtype;\n\n if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"TrueType\";\n }\n } else if (isOpenTypeFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"OpenType\";\n }\n } else if (isType1File(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n }\n } else if (isCFFFile(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n fileSubtype = \"CIDFontType0C\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n fileSubtype = \"Type1C\";\n }\n } else {\n (0, _util.warn)(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n fileType = type;\n fileSubtype = subtype;\n }\n\n return [fileType, fileSubtype];\n }\n\n function buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n var toFontChar = [],\n unicode;\n\n for (var i = 0, ii = encoding.length; i < ii; i++) {\n unicode = (0, _unicode.getUnicodeForGlyph)(encoding[i], glyphsUnicodeMap);\n\n if (unicode !== -1) {\n toFontChar[i] = unicode;\n }\n }\n\n for (var charCode in differences) {\n unicode = (0, _unicode.getUnicodeForGlyph)(differences[charCode], glyphsUnicodeMap);\n\n if (unicode !== -1) {\n toFontChar[+charCode] = unicode;\n }\n }\n\n return toFontChar;\n }\n\n function adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId) {\n var newMap = Object.create(null);\n var toFontChar = [];\n var privateUseAreaIndex = 0;\n var nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n var privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n\n for (var originalCharCode in charCodeToGlyphId) {\n originalCharCode |= 0;\n var glyphId = charCodeToGlyphId[originalCharCode];\n\n if (!hasGlyph(glyphId)) {\n continue;\n }\n\n if (nextAvailableFontCharCode > privateUseOffetEnd) {\n privateUseAreaIndex++;\n\n if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n (0, _util.warn)(\"Ran out of space in font private use area.\");\n break;\n }\n\n nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n }\n\n var fontCharCode = nextAvailableFontCharCode++;\n\n if (glyphId === 0) {\n glyphId = newGlyphZeroId;\n }\n\n newMap[fontCharCode] = glyphId;\n toFontChar[originalCharCode] = fontCharCode;\n }\n\n return {\n toFontChar,\n charCodeToGlyphId: newMap,\n nextAvailableFontCharCode\n };\n }\n\n function getRanges(glyphs, numGlyphs) {\n var codes = [];\n\n for (var charCode in glyphs) {\n if (glyphs[charCode] >= numGlyphs) {\n continue;\n }\n\n codes.push({\n fontCharCode: charCode | 0,\n glyphId: glyphs[charCode]\n });\n }\n\n if (codes.length === 0) {\n codes.push({\n fontCharCode: 0,\n glyphId: 0\n });\n }\n\n codes.sort(function fontGetRangesSort(a, b) {\n return a.fontCharCode - b.fontCharCode;\n });\n var ranges = [];\n var length = codes.length;\n\n for (var n = 0; n < length;) {\n var start = codes[n].fontCharCode;\n var codeIndices = [codes[n].glyphId];\n ++n;\n var end = start;\n\n while (n < length && end + 1 === codes[n].fontCharCode) {\n codeIndices.push(codes[n].glyphId);\n ++end;\n ++n;\n\n if (end === 0xffff) {\n break;\n }\n }\n\n ranges.push([start, end, codeIndices]);\n }\n\n return ranges;\n }\n\n function createCmapTable(glyphs, numGlyphs) {\n var ranges = getRanges(glyphs, numGlyphs);\n var numTables = ranges[ranges.length - 1][1] > 0xffff ? 2 : 1;\n var cmap = \"\\x00\\x00\" + string16(numTables) + \"\\x00\\x03\" + \"\\x00\\x01\" + (0, _util.string32)(4 + numTables * 8);\n var i, ii, j, jj;\n\n for (i = ranges.length - 1; i >= 0; --i) {\n if (ranges[i][0] <= 0xffff) {\n break;\n }\n }\n\n var bmpLength = i + 1;\n\n if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n ranges[i][1] = 0xfffe;\n }\n\n var trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n var segCount = bmpLength + trailingRangesCount;\n var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n var startCount = \"\";\n var endCount = \"\";\n var idDeltas = \"\";\n var idRangeOffsets = \"\";\n var glyphsIds = \"\";\n var bias = 0;\n var range, start, end, codes;\n\n for (i = 0, ii = bmpLength; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n end = range[1];\n startCount += string16(start);\n endCount += string16(end);\n codes = range[2];\n var contiguous = true;\n\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n contiguous = false;\n break;\n }\n }\n\n if (!contiguous) {\n var offset = (segCount - i) * 2 + bias * 2;\n bias += end - start + 1;\n idDeltas += string16(0);\n idRangeOffsets += string16(offset);\n\n for (j = 0, jj = codes.length; j < jj; ++j) {\n glyphsIds += string16(codes[j]);\n }\n } else {\n var startCode = codes[0];\n idDeltas += string16(startCode - start & 0xffff);\n idRangeOffsets += string16(0);\n }\n }\n\n if (trailingRangesCount > 0) {\n endCount += \"\\xFF\\xFF\";\n startCount += \"\\xFF\\xFF\";\n idDeltas += \"\\x00\\x01\";\n idRangeOffsets += \"\\x00\\x00\";\n }\n\n var format314 = \"\\x00\\x00\" + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + \"\\x00\\x00\" + startCount + idDeltas + idRangeOffsets + glyphsIds;\n var format31012 = \"\";\n var header31012 = \"\";\n\n if (numTables > 1) {\n cmap += \"\\x00\\x03\" + \"\\x00\\x0A\" + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length);\n format31012 = \"\";\n\n for (i = 0, ii = ranges.length; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n codes = range[2];\n var code = codes[0];\n\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n end = range[0] + j - 1;\n format31012 += (0, _util.string32)(start) + (0, _util.string32)(end) + (0, _util.string32)(code);\n start = end + 1;\n code = codes[j];\n }\n }\n\n format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code);\n }\n\n header31012 = \"\\x00\\x0C\" + \"\\x00\\x00\" + (0, _util.string32)(format31012.length + 16) + \"\\x00\\x00\\x00\\x00\" + (0, _util.string32)(format31012.length / 12);\n }\n\n return cmap + \"\\x00\\x04\" + string16(format314.length + 4) + format314 + header31012 + format31012;\n }\n\n function validateOS2Table(os2, file) {\n file.pos = (file.start || 0) + os2.offset;\n var version = file.getUint16();\n file.skip(60);\n var selection = file.getUint16();\n\n if (version < 4 && selection & 0x0300) {\n return false;\n }\n\n var firstChar = file.getUint16();\n var lastChar = file.getUint16();\n\n if (firstChar > lastChar) {\n return false;\n }\n\n file.skip(6);\n var usWinAscent = file.getUint16();\n\n if (usWinAscent === 0) {\n return false;\n }\n\n os2.data[8] = os2.data[9] = 0;\n return true;\n }\n\n function createOS2Table(properties, charstrings, override) {\n override = override || {\n unitsPerEm: 0,\n yMax: 0,\n yMin: 0,\n ascent: 0,\n descent: 0\n };\n var ulUnicodeRange1 = 0;\n var ulUnicodeRange2 = 0;\n var ulUnicodeRange3 = 0;\n var ulUnicodeRange4 = 0;\n var firstCharIndex = null;\n var lastCharIndex = 0;\n\n if (charstrings) {\n for (var code in charstrings) {\n code |= 0;\n\n if (firstCharIndex > code || !firstCharIndex) {\n firstCharIndex = code;\n }\n\n if (lastCharIndex < code) {\n lastCharIndex = code;\n }\n\n var position = (0, _unicode.getUnicodeRangeFor)(code);\n\n if (position < 32) {\n ulUnicodeRange1 |= 1 << position;\n } else if (position < 64) {\n ulUnicodeRange2 |= 1 << position - 32;\n } else if (position < 96) {\n ulUnicodeRange3 |= 1 << position - 64;\n } else if (position < 123) {\n ulUnicodeRange4 |= 1 << position - 96;\n } else {\n throw new _util.FormatError(\"Unicode ranges Bits > 123 are reserved for internal usage\");\n }\n }\n\n if (lastCharIndex > 0xffff) {\n lastCharIndex = 0xffff;\n }\n } else {\n firstCharIndex = 0;\n lastCharIndex = 255;\n }\n\n var bbox = properties.bbox || [0, 0, 0, 0];\n var unitsPerEm = override.unitsPerEm || 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n var scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n var typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n var typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1]));\n\n if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n typoDescent = -typoDescent;\n }\n\n var winAscent = override.yMax || typoAscent;\n var winDescent = -override.yMin || -typoDescent;\n return \"\\x00\\x03\" + \"\\x02\\x24\" + \"\\x01\\xF4\" + \"\\x00\\x05\" + \"\\x00\\x00\" + \"\\x02\\x8A\" + \"\\x02\\xBB\" + \"\\x00\\x00\" + \"\\x00\\x8C\" + \"\\x02\\x8A\" + \"\\x02\\xBB\" + \"\\x00\\x00\" + \"\\x01\\xDF\" + \"\\x00\\x31\" + \"\\x01\\x02\" + \"\\x00\\x00\" + \"\\x00\\x00\\x06\" + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + \"\\x00\\x00\\x00\\x00\\x00\\x00\" + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.string32)(ulUnicodeRange4) + \"\\x2A\\x32\\x31\\x2A\" + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + \"\\x00\\x64\" + string16(winAscent) + string16(winDescent) + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + \"\\x00\\x03\";\n }\n\n function createPostTable(properties) {\n var angle = Math.floor(properties.italicAngle * 2 ** 16);\n return \"\\x00\\x03\\x00\\x00\" + (0, _util.string32)(angle) + \"\\x00\\x00\" + \"\\x00\\x00\" + (0, _util.string32)(properties.fixedPitch) + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\";\n }\n\n function createNameTable(name, proto) {\n if (!proto) {\n proto = [[], []];\n }\n\n var strings = [proto[0][0] || \"Original licence\", proto[0][1] || name, proto[0][2] || \"Unknown\", proto[0][3] || \"uniqueID\", proto[0][4] || name, proto[0][5] || \"Version 0.11\", proto[0][6] || \"\", proto[0][7] || \"Unknown\", proto[0][8] || \"Unknown\", proto[0][9] || \"Unknown\"];\n var stringsUnicode = [];\n var i, ii, j, jj, str;\n\n for (i = 0, ii = strings.length; i < ii; i++) {\n str = proto[1][i] || strings[i];\n var strBufUnicode = [];\n\n for (j = 0, jj = str.length; j < jj; j++) {\n strBufUnicode.push(string16(str.charCodeAt(j)));\n }\n\n stringsUnicode.push(strBufUnicode.join(\"\"));\n }\n\n var names = [strings, stringsUnicode];\n var platforms = [\"\\x00\\x01\", \"\\x00\\x03\"];\n var encodings = [\"\\x00\\x00\", \"\\x00\\x01\"];\n var languages = [\"\\x00\\x00\", \"\\x04\\x09\"];\n var namesRecordCount = strings.length * platforms.length;\n var nameTable = \"\\x00\\x00\" + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6);\n var strOffset = 0;\n\n for (i = 0, ii = platforms.length; i < ii; i++) {\n var strs = names[i];\n\n for (j = 0, jj = strs.length; j < jj; j++) {\n str = strs[j];\n var nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset);\n nameTable += nameRecord;\n strOffset += str.length;\n }\n }\n\n nameTable += strings.join(\"\") + stringsUnicode.join(\"\");\n return nameTable;\n }\n\n Font.prototype = {\n name: null,\n font: null,\n mimetype: null,\n disableFontFace: false,\n\n get renderer() {\n var renderer = _font_renderer.FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n\n return (0, _util.shadow)(this, \"renderer\", renderer);\n },\n\n exportData(extraProperties = false) {\n const exportDataProperties = extraProperties ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES] : EXPORT_DATA_PROPERTIES;\n const data = Object.create(null);\n let property, value;\n\n for (property of exportDataProperties) {\n value = this[property];\n\n if (value !== undefined) {\n data[property] = value;\n }\n }\n\n return data;\n },\n\n fallbackToSystemFont: function Font_fallbackToSystemFont() {\n this.missingFile = true;\n var name = this.name;\n var type = this.type;\n var subtype = this.subtype;\n let fontName = name.replace(/[,_]/g, \"-\").replace(/\\s/g, \"\");\n var stdFontMap = (0, _standard_fonts.getStdFontMap)(),\n nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)();\n var isStandardFont = !!stdFontMap[fontName] || !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n this.bold = fontName.search(/bold/gi) !== -1;\n this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n this.black = name.search(/Black/g) !== -1;\n this.remeasure = Object.keys(this.widths).length > 0;\n\n if (isStandardFont && type === \"CIDFontType2\" && this.cidEncoding.startsWith(\"Identity-\")) {\n const GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();\n const map = [];\n\n for (const charCode in GlyphMapForStandardFonts) {\n map[+charCode] = GlyphMapForStandardFonts[charCode];\n }\n\n if (/Arial-?Black/i.test(name)) {\n var SupplementalGlyphMapForArialBlack = (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)();\n\n for (const charCode in SupplementalGlyphMapForArialBlack) {\n map[+charCode] = SupplementalGlyphMapForArialBlack[charCode];\n }\n } else if (/Calibri/i.test(name)) {\n const SupplementalGlyphMapForCalibri = (0, _standard_fonts.getSupplementalGlyphMapForCalibri)();\n\n for (const charCode in SupplementalGlyphMapForCalibri) {\n map[+charCode] = SupplementalGlyphMapForCalibri[charCode];\n }\n }\n\n var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap;\n\n if (!isIdentityUnicode) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n\n this.toFontChar = map;\n this.toUnicode = new ToUnicodeMap(map);\n } else if (/Symbol/i.test(fontName)) {\n this.toFontChar = buildToFontChar(_encodings.SymbolSetEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n } else if (/Dingbats/i.test(fontName)) {\n if (/Wingdings/i.test(name)) {\n (0, _util.warn)(\"Non-embedded Wingdings font, falling back to ZapfDingbats.\");\n }\n\n this.toFontChar = buildToFontChar(_encodings.ZapfDingbatsEncoding, (0, _glyphlist.getDingbatsGlyphsUnicode)(), this.differences);\n } else if (isStandardFont) {\n this.toFontChar = buildToFontChar(this.defaultEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n } else {\n const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n const map = [];\n this.toUnicode.forEach((charCode, unicodeCharCode) => {\n if (!this.composite) {\n var glyphName = this.differences[charCode] || this.defaultEncoding[charCode];\n const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n unicodeCharCode = unicode;\n }\n }\n\n map[+charCode] = unicodeCharCode;\n });\n\n if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) {\n if (/Verdana/i.test(name)) {\n const GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();\n\n for (const charCode in GlyphMapForStandardFonts) {\n map[+charCode] = GlyphMapForStandardFonts[charCode];\n }\n }\n }\n\n this.toFontChar = map;\n }\n\n this.loadedName = fontName.split(\"-\")[0];\n this.fontType = getFontType(type, subtype);\n },\n checkAndRepair: function Font_checkAndRepair(name, font, properties) {\n const VALID_TABLES = [\"OS/2\", \"cmap\", \"head\", \"hhea\", \"hmtx\", \"maxp\", \"name\", \"post\", \"loca\", \"glyf\", \"fpgm\", \"prep\", \"cvt \", \"CFF \"];\n\n function readTables(file, numTables) {\n const tables = Object.create(null);\n tables[\"OS/2\"] = null;\n tables.cmap = null;\n tables.head = null;\n tables.hhea = null;\n tables.hmtx = null;\n tables.maxp = null;\n tables.name = null;\n tables.post = null;\n\n for (let i = 0; i < numTables; i++) {\n const table = readTableEntry(file);\n\n if (!VALID_TABLES.includes(table.tag)) {\n continue;\n }\n\n if (table.length === 0) {\n continue;\n }\n\n tables[table.tag] = table;\n }\n\n return tables;\n }\n\n function readTableEntry(file) {\n var tag = (0, _util.bytesToString)(file.getBytes(4));\n var checksum = file.getInt32() >>> 0;\n var offset = file.getInt32() >>> 0;\n var length = file.getInt32() >>> 0;\n var previousPosition = file.pos;\n file.pos = file.start ? file.start : 0;\n file.skip(offset);\n var data = file.getBytes(length);\n file.pos = previousPosition;\n\n if (tag === \"head\") {\n data[8] = data[9] = data[10] = data[11] = 0;\n data[17] |= 0x20;\n }\n\n return {\n tag,\n checksum,\n length,\n offset,\n data\n };\n }\n\n function readOpenTypeHeader(ttf) {\n return {\n version: (0, _util.bytesToString)(ttf.getBytes(4)),\n numTables: ttf.getUint16(),\n searchRange: ttf.getUint16(),\n entrySelector: ttf.getUint16(),\n rangeShift: ttf.getUint16()\n };\n }\n\n function readTrueTypeCollectionHeader(ttc) {\n const ttcTag = (0, _util.bytesToString)(ttc.getBytes(4));\n (0, _util.assert)(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n const majorVersion = ttc.getUint16();\n const minorVersion = ttc.getUint16();\n const numFonts = ttc.getInt32() >>> 0;\n const offsetTable = [];\n\n for (let i = 0; i < numFonts; i++) {\n offsetTable.push(ttc.getInt32() >>> 0);\n }\n\n const header = {\n ttcTag,\n majorVersion,\n minorVersion,\n numFonts,\n offsetTable\n };\n\n switch (majorVersion) {\n case 1:\n return header;\n\n case 2:\n header.dsigTag = ttc.getInt32() >>> 0;\n header.dsigLength = ttc.getInt32() >>> 0;\n header.dsigOffset = ttc.getInt32() >>> 0;\n return header;\n }\n\n throw new _util.FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`);\n }\n\n function readTrueTypeCollectionData(ttc, fontName) {\n const {\n numFonts,\n offsetTable\n } = readTrueTypeCollectionHeader(ttc);\n\n for (let i = 0; i < numFonts; i++) {\n ttc.pos = (ttc.start || 0) + offsetTable[i];\n const potentialHeader = readOpenTypeHeader(ttc);\n const potentialTables = readTables(ttc, potentialHeader.numTables);\n\n if (!potentialTables.name) {\n throw new _util.FormatError('TrueType Collection font must contain a \"name\" table.');\n }\n\n const nameTable = readNameTable(potentialTables.name);\n\n for (let j = 0, jj = nameTable.length; j < jj; j++) {\n for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n const nameEntry = nameTable[j][k];\n\n if (nameEntry && nameEntry.replace(/\\s/g, \"\") === fontName) {\n return {\n header: potentialHeader,\n tables: potentialTables\n };\n }\n }\n }\n }\n\n throw new _util.FormatError(`TrueType Collection does not contain \"${fontName}\" font.`);\n }\n\n function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n if (!cmap) {\n (0, _util.warn)(\"No cmap table available.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n\n var segment;\n var start = (file.start ? file.start : 0) + cmap.offset;\n file.pos = start;\n file.skip(2);\n var numTables = file.getUint16();\n var potentialTable;\n var canBreak = false;\n\n for (var i = 0; i < numTables; i++) {\n var platformId = file.getUint16();\n var encodingId = file.getUint16();\n var offset = file.getInt32() >>> 0;\n var useTable = false;\n\n if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) {\n continue;\n }\n\n if (platformId === 0 && encodingId === 0) {\n useTable = true;\n } else if (platformId === 1 && encodingId === 0) {\n useTable = true;\n } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) {\n useTable = true;\n\n if (!isSymbolicFont) {\n canBreak = true;\n }\n } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n useTable = true;\n canBreak = true;\n }\n\n if (useTable) {\n potentialTable = {\n platformId,\n encodingId,\n offset\n };\n }\n\n if (canBreak) {\n break;\n }\n }\n\n if (potentialTable) {\n file.pos = start + potentialTable.offset;\n }\n\n if (!potentialTable || file.peekByte() === -1) {\n (0, _util.warn)(\"Could not find a preferred cmap table.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n\n var format = file.getUint16();\n file.skip(2 + 2);\n var hasShortCmap = false;\n var mappings = [];\n var j, glyphId;\n\n if (format === 0) {\n for (j = 0; j < 256; j++) {\n var index = file.getByte();\n\n if (!index) {\n continue;\n }\n\n mappings.push({\n charCode: j,\n glyphId: index\n });\n }\n\n hasShortCmap = true;\n } else if (format === 4) {\n var segCount = file.getUint16() >> 1;\n file.skip(6);\n var segIndex,\n segments = [];\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments.push({\n end: file.getUint16()\n });\n }\n\n file.skip(2);\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].start = file.getUint16();\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].delta = file.getUint16();\n }\n\n var offsetsCount = 0;\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n var rangeOffset = file.getUint16();\n\n if (!rangeOffset) {\n segment.offsetIndex = -1;\n continue;\n }\n\n var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n segment.offsetIndex = offsetIndex;\n offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1);\n }\n\n var offsets = [];\n\n for (j = 0; j < offsetsCount; j++) {\n offsets.push(file.getUint16());\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n start = segment.start;\n var end = segment.end;\n var delta = segment.delta;\n offsetIndex = segment.offsetIndex;\n\n for (j = start; j <= end; j++) {\n if (j === 0xffff) {\n continue;\n }\n\n glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n glyphId = glyphId + delta & 0xffff;\n mappings.push({\n charCode: j,\n glyphId\n });\n }\n }\n } else if (format === 6) {\n var firstCode = file.getUint16();\n var entryCount = file.getUint16();\n\n for (j = 0; j < entryCount; j++) {\n glyphId = file.getUint16();\n var charCode = firstCode + j;\n mappings.push({\n charCode,\n glyphId\n });\n }\n } else {\n (0, _util.warn)(\"cmap table has unsupported format: \" + format);\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n\n mappings.sort(function (a, b) {\n return a.charCode - b.charCode;\n });\n\n for (i = 1; i < mappings.length; i++) {\n if (mappings[i - 1].charCode === mappings[i].charCode) {\n mappings.splice(i, 1);\n i--;\n }\n }\n\n return {\n platformId: potentialTable.platformId,\n encodingId: potentialTable.encodingId,\n mappings,\n hasShortCmap\n };\n }\n\n function sanitizeMetrics(file, header, metrics, numGlyphs, dupFirstEntry) {\n if (!header) {\n if (metrics) {\n metrics.data = null;\n }\n\n return;\n }\n\n file.pos = (file.start ? file.start : 0) + header.offset;\n file.pos += 4;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 8;\n file.pos += 2;\n var numOfMetrics = file.getUint16();\n\n if (numOfMetrics > numGlyphs) {\n (0, _util.info)(\"The numOfMetrics (\" + numOfMetrics + \") should not be \" + \"greater than the numGlyphs (\" + numGlyphs + \")\");\n numOfMetrics = numGlyphs;\n header.data[34] = (numOfMetrics & 0xff00) >> 8;\n header.data[35] = numOfMetrics & 0x00ff;\n }\n\n var numOfSidebearings = numGlyphs - numOfMetrics;\n var numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1);\n\n if (numMissing > 0) {\n var entries = new Uint8Array(metrics.length + numMissing * 2);\n entries.set(metrics.data);\n\n if (dupFirstEntry) {\n entries[metrics.length] = metrics.data[2];\n entries[metrics.length + 1] = metrics.data[3];\n }\n\n metrics.data = entries;\n }\n }\n\n function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) {\n var glyphProfile = {\n length: 0,\n sizeOfInstructions: 0\n };\n\n if (sourceEnd - sourceStart <= 12) {\n return glyphProfile;\n }\n\n var glyf = source.subarray(sourceStart, sourceEnd);\n var contoursCount = signedInt16(glyf[0], glyf[1]);\n\n if (contoursCount < 0) {\n contoursCount = -1;\n writeSignedInt16(glyf, 0, contoursCount);\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n var i,\n j = 10,\n flagsCount = 0;\n\n for (i = 0; i < contoursCount; i++) {\n var endPoint = glyf[j] << 8 | glyf[j + 1];\n flagsCount = endPoint + 1;\n j += 2;\n }\n\n var instructionsStart = j;\n var instructionsLength = glyf[j] << 8 | glyf[j + 1];\n glyphProfile.sizeOfInstructions = instructionsLength;\n j += 2 + instructionsLength;\n var instructionsEnd = j;\n var coordinatesLength = 0;\n\n for (i = 0; i < flagsCount; i++) {\n var flag = glyf[j++];\n\n if (flag & 0xc0) {\n glyf[j - 1] = flag & 0x3f;\n }\n\n let xLength = 2;\n\n if (flag & 2) {\n xLength = 1;\n } else if (flag & 16) {\n xLength = 0;\n }\n\n let yLength = 2;\n\n if (flag & 4) {\n yLength = 1;\n } else if (flag & 32) {\n yLength = 0;\n }\n\n const xyLength = xLength + yLength;\n coordinatesLength += xyLength;\n\n if (flag & 8) {\n var repeat = glyf[j++];\n i += repeat;\n coordinatesLength += repeat * xyLength;\n }\n }\n\n if (coordinatesLength === 0) {\n return glyphProfile;\n }\n\n var glyphDataLength = j + coordinatesLength;\n\n if (glyphDataLength > glyf.length) {\n return glyphProfile;\n }\n\n if (!hintsValid && instructionsLength > 0) {\n dest.set(glyf.subarray(0, instructionsStart), destStart);\n dest.set([0, 0], destStart + instructionsStart);\n dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2);\n glyphDataLength -= instructionsLength;\n\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n }\n\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n dest.set(glyf.subarray(0, glyphDataLength), destStart);\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n function sanitizeHead(head, numGlyphs, locaLength) {\n var data = head.data;\n var version = int32(data[0], data[1], data[2], data[3]);\n\n if (version >> 16 !== 1) {\n (0, _util.info)(\"Attempting to fix invalid version in head table: \" + version);\n data[0] = 0;\n data[1] = 1;\n data[2] = 0;\n data[3] = 0;\n }\n\n var indexToLocFormat = int16(data[50], data[51]);\n\n if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n (0, _util.info)(\"Attempting to fix invalid indexToLocFormat in head table: \" + indexToLocFormat);\n var numGlyphsPlusOne = numGlyphs + 1;\n\n if (locaLength === numGlyphsPlusOne << 1) {\n data[50] = 0;\n data[51] = 0;\n } else if (locaLength === numGlyphsPlusOne << 2) {\n data[50] = 0;\n data[51] = 1;\n } else {\n throw new _util.FormatError(\"Could not fix indexToLocFormat: \" + indexToLocFormat);\n }\n }\n }\n\n function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) {\n var itemSize, itemDecode, itemEncode;\n\n if (isGlyphLocationsLong) {\n itemSize = 4;\n\n itemDecode = function fontItemDecodeLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n };\n\n itemEncode = function fontItemEncodeLong(data, offset, value) {\n data[offset] = value >>> 24 & 0xff;\n data[offset + 1] = value >> 16 & 0xff;\n data[offset + 2] = value >> 8 & 0xff;\n data[offset + 3] = value & 0xff;\n };\n } else {\n itemSize = 2;\n\n itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n\n itemEncode = function fontItemEncode(data, offset, value) {\n data[offset] = value >> 9 & 0xff;\n data[offset + 1] = value >> 1 & 0xff;\n };\n }\n\n var numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n var locaDataSize = itemSize * (1 + numGlyphsOut);\n var locaData = new Uint8Array(locaDataSize);\n locaData.set(loca.data.subarray(0, locaDataSize));\n loca.data = locaData;\n var oldGlyfData = glyf.data;\n var oldGlyfDataLength = oldGlyfData.length;\n var newGlyfData = new Uint8Array(oldGlyfDataLength);\n var startOffset = itemDecode(locaData, 0);\n var writeOffset = 0;\n var missingGlyphs = Object.create(null);\n itemEncode(locaData, 0, writeOffset);\n var i, j;\n\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n var endOffset = itemDecode(locaData, j);\n\n if (endOffset === 0) {\n endOffset = startOffset;\n }\n\n if (endOffset > oldGlyfDataLength && (oldGlyfDataLength + 3 & ~3) === endOffset) {\n endOffset = oldGlyfDataLength;\n }\n\n if (endOffset > oldGlyfDataLength) {\n startOffset = endOffset;\n }\n\n var glyphProfile = sanitizeGlyph(oldGlyfData, startOffset, endOffset, newGlyfData, writeOffset, hintsValid);\n var newLength = glyphProfile.length;\n\n if (newLength === 0) {\n missingGlyphs[i] = true;\n }\n\n if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n }\n\n writeOffset += newLength;\n itemEncode(locaData, j, writeOffset);\n startOffset = endOffset;\n }\n\n if (writeOffset === 0) {\n var simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);\n\n for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n itemEncode(locaData, j, simpleGlyph.length);\n }\n\n glyf.data = simpleGlyph;\n } else if (dupFirstEntry) {\n var firstEntryLength = itemDecode(locaData, itemSize);\n\n if (newGlyfData.length > firstEntryLength + writeOffset) {\n glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n } else {\n glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n glyf.data.set(newGlyfData.subarray(0, writeOffset));\n }\n\n glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength);\n } else {\n glyf.data = newGlyfData.subarray(0, writeOffset);\n }\n\n return {\n missingGlyphs,\n maxSizeOfInstructions\n };\n }\n\n function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n var start = (font.start ? font.start : 0) + post.offset;\n font.pos = start;\n var length = post.length,\n end = start + length;\n var version = font.getInt32();\n font.skip(28);\n var glyphNames;\n var valid = true;\n var i;\n\n switch (version) {\n case 0x00010000:\n glyphNames = MacStandardGlyphOrdering;\n break;\n\n case 0x00020000:\n var numGlyphs = font.getUint16();\n\n if (numGlyphs !== maxpNumGlyphs) {\n valid = false;\n break;\n }\n\n var glyphNameIndexes = [];\n\n for (i = 0; i < numGlyphs; ++i) {\n var index = font.getUint16();\n\n if (index >= 32768) {\n valid = false;\n break;\n }\n\n glyphNameIndexes.push(index);\n }\n\n if (!valid) {\n break;\n }\n\n var customNames = [];\n var strBuf = [];\n\n while (font.pos < end) {\n var stringLength = font.getByte();\n strBuf.length = stringLength;\n\n for (i = 0; i < stringLength; ++i) {\n strBuf[i] = String.fromCharCode(font.getByte());\n }\n\n customNames.push(strBuf.join(\"\"));\n }\n\n glyphNames = [];\n\n for (i = 0; i < numGlyphs; ++i) {\n var j = glyphNameIndexes[i];\n\n if (j < 258) {\n glyphNames.push(MacStandardGlyphOrdering[j]);\n continue;\n }\n\n glyphNames.push(customNames[j - 258]);\n }\n\n break;\n\n case 0x00030000:\n break;\n\n default:\n (0, _util.warn)(\"Unknown/unsupported post table version \" + version);\n valid = false;\n\n if (propertiesObj.defaultEncoding) {\n glyphNames = propertiesObj.defaultEncoding;\n }\n\n break;\n }\n\n propertiesObj.glyphNames = glyphNames;\n return valid;\n }\n\n function readNameTable(nameTable) {\n var start = (font.start ? font.start : 0) + nameTable.offset;\n font.pos = start;\n var names = [[], []];\n var length = nameTable.length,\n end = start + length;\n var format = font.getUint16();\n var FORMAT_0_HEADER_LENGTH = 6;\n\n if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n return names;\n }\n\n var numRecords = font.getUint16();\n var stringsStart = font.getUint16();\n var records = [];\n var NAME_RECORD_LENGTH = 12;\n var i, ii;\n\n for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n var r = {\n platform: font.getUint16(),\n encoding: font.getUint16(),\n language: font.getUint16(),\n name: font.getUint16(),\n length: font.getUint16(),\n offset: font.getUint16()\n };\n\n if (r.platform === 1 && r.encoding === 0 && r.language === 0 || r.platform === 3 && r.encoding === 1 && r.language === 0x409) {\n records.push(r);\n }\n }\n\n for (i = 0, ii = records.length; i < ii; i++) {\n var record = records[i];\n\n if (record.length <= 0) {\n continue;\n }\n\n var pos = start + stringsStart + record.offset;\n\n if (pos + record.length > end) {\n continue;\n }\n\n font.pos = pos;\n var nameIndex = record.name;\n\n if (record.encoding) {\n var str = \"\";\n\n for (var j = 0, jj = record.length; j < jj; j += 2) {\n str += String.fromCharCode(font.getUint16());\n }\n\n names[1][nameIndex] = str;\n } else {\n names[0][nameIndex] = (0, _util.bytesToString)(font.getBytes(record.length));\n }\n }\n\n return names;\n }\n\n var TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n\n function sanitizeTTProgram(table, ttContext) {\n var data = table.data;\n var i = 0,\n j,\n n,\n b,\n funcId,\n pc,\n lastEndf = 0,\n lastDeff = 0;\n var stack = [];\n var callstack = [];\n var functionsCalled = [];\n var tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n var inFDEF = false,\n ifLevel = 0,\n inELSE = 0;\n\n for (var ii = data.length; i < ii;) {\n var op = data[i++];\n\n if (op === 0x40) {\n n = data[i++];\n\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if (op === 0x41) {\n n = data[i++];\n\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push(b << 8 | data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb0) {\n n = op - 0xb0 + 1;\n\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb8) {\n n = op - 0xb8 + 1;\n\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push(b << 8 | data[i++]);\n }\n }\n } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n if (!inFDEF && !inELSE) {\n funcId = stack[stack.length - 1];\n\n if (isNaN(funcId)) {\n (0, _util.info)(\"TT: CALL empty stack (or invalid entry).\");\n } else {\n ttContext.functionsUsed[funcId] = true;\n\n if (funcId in ttContext.functionsStackDeltas) {\n const newStackLength = stack.length + ttContext.functionsStackDeltas[funcId];\n\n if (newStackLength < 0) {\n (0, _util.warn)(\"TT: CALL invalid functions stack delta.\");\n ttContext.hintsValid = false;\n return;\n }\n\n stack.length = newStackLength;\n } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) {\n callstack.push({\n data,\n i,\n stackTop: stack.length - 1\n });\n functionsCalled.push(funcId);\n pc = ttContext.functionsDefined[funcId];\n\n if (!pc) {\n (0, _util.warn)(\"TT: CALL non-existent function\");\n ttContext.hintsValid = false;\n return;\n }\n\n data = pc.data;\n i = pc.i;\n }\n }\n }\n } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n if (inFDEF || inELSE) {\n (0, _util.warn)(\"TT: nested FDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n\n inFDEF = true;\n lastDeff = i;\n funcId = stack.pop();\n ttContext.functionsDefined[funcId] = {\n data,\n i\n };\n } else if (op === 0x2d) {\n if (inFDEF) {\n inFDEF = false;\n lastEndf = i;\n } else {\n pc = callstack.pop();\n\n if (!pc) {\n (0, _util.warn)(\"TT: ENDF bad stack\");\n ttContext.hintsValid = false;\n return;\n }\n\n funcId = functionsCalled.pop();\n data = pc.data;\n i = pc.i;\n ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n }\n } else if (op === 0x89) {\n if (inFDEF || inELSE) {\n (0, _util.warn)(\"TT: nested IDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n\n inFDEF = true;\n lastDeff = i;\n } else if (op === 0x58) {\n ++ifLevel;\n } else if (op === 0x1b) {\n inELSE = ifLevel;\n } else if (op === 0x59) {\n if (inELSE === ifLevel) {\n inELSE = 0;\n }\n\n --ifLevel;\n } else if (op === 0x1c) {\n if (!inFDEF && !inELSE) {\n var offset = stack[stack.length - 1];\n\n if (offset > 0) {\n i += offset - 1;\n }\n }\n }\n\n if (!inFDEF && !inELSE) {\n let stackDelta = 0;\n\n if (op <= 0x8e) {\n stackDelta = TTOpsStackDeltas[op];\n } else if (op >= 0xc0 && op <= 0xdf) {\n stackDelta = -1;\n } else if (op >= 0xe0) {\n stackDelta = -2;\n }\n\n if (op >= 0x71 && op <= 0x75) {\n n = stack.pop();\n\n if (!isNaN(n)) {\n stackDelta = -n * 2;\n }\n }\n\n while (stackDelta < 0 && stack.length > 0) {\n stack.pop();\n stackDelta++;\n }\n\n while (stackDelta > 0) {\n stack.push(NaN);\n stackDelta--;\n }\n }\n }\n\n ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n var content = [data];\n\n if (i > data.length) {\n content.push(new Uint8Array(i - data.length));\n }\n\n if (lastDeff > lastEndf) {\n (0, _util.warn)(\"TT: complementing a missing function tail\");\n content.push(new Uint8Array([0x22, 0x2d]));\n }\n\n foldTTTable(table, content);\n }\n\n function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n if (ttContext.tooComplexToFollowFunctions) {\n return;\n }\n\n if (ttContext.functionsDefined.length > maxFunctionDefs) {\n (0, _util.warn)(\"TT: more functions defined than expected\");\n ttContext.hintsValid = false;\n return;\n }\n\n for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n if (j > maxFunctionDefs) {\n (0, _util.warn)(\"TT: invalid function id: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n\n if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n (0, _util.warn)(\"TT: undefined function: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n }\n }\n\n function foldTTTable(table, content) {\n if (content.length > 1) {\n var newLength = 0;\n var j, jj;\n\n for (j = 0, jj = content.length; j < jj; j++) {\n newLength += content[j].length;\n }\n\n newLength = newLength + 3 & ~3;\n var result = new Uint8Array(newLength);\n var pos = 0;\n\n for (j = 0, jj = content.length; j < jj; j++) {\n result.set(content[j], pos);\n pos += content[j].length;\n }\n\n table.data = result;\n table.length = newLength;\n }\n }\n\n function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n var ttContext = {\n functionsDefined: [],\n functionsUsed: [],\n functionsStackDeltas: [],\n tooComplexToFollowFunctions: false,\n hintsValid: true\n };\n\n if (fpgm) {\n sanitizeTTProgram(fpgm, ttContext);\n }\n\n if (prep) {\n sanitizeTTProgram(prep, ttContext);\n }\n\n if (fpgm) {\n checkInvalidFunctions(ttContext, maxFunctionDefs);\n }\n\n if (cvt && cvt.length & 1) {\n var cvtData = new Uint8Array(cvt.length + 1);\n cvtData.set(cvt.data);\n cvt.data = cvtData;\n }\n\n return ttContext.hintsValid;\n }\n\n font = new _stream.Stream(new Uint8Array(font.getBytes()));\n let header, tables;\n\n if (isTrueTypeCollectionFile(font)) {\n const ttcData = readTrueTypeCollectionData(font, this.name);\n header = ttcData.header;\n tables = ttcData.tables;\n } else {\n header = readOpenTypeHeader(font);\n tables = readTables(font, header.numTables);\n }\n\n let cff, cffFile;\n var isTrueType = !tables[\"CFF \"];\n\n if (!isTrueType) {\n const isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || !(properties.cMap instanceof _cmap.IdentityCMap));\n\n if (header.version === \"OTTO\" && !isComposite || !tables.head || !tables.hhea || !tables.maxp || !tables.post) {\n cffFile = new _stream.Stream(tables[\"CFF \"].data);\n cff = new CFFFont(cffFile, properties);\n adjustWidths(properties);\n return this.convert(name, cff, properties);\n }\n\n delete tables.glyf;\n delete tables.loca;\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n this.isOpenType = true;\n } else {\n if (!tables.loca) {\n throw new _util.FormatError('Required \"loca\" table is not found');\n }\n\n if (!tables.glyf) {\n (0, _util.warn)('Required \"glyf\" table is not found -- trying to recover.');\n tables.glyf = {\n tag: \"glyf\",\n data: new Uint8Array(0)\n };\n }\n\n this.isOpenType = false;\n }\n\n if (!tables.maxp) {\n throw new _util.FormatError('Required \"maxp\" table is not found');\n }\n\n font.pos = (font.start || 0) + tables.maxp.offset;\n var version = font.getInt32();\n const numGlyphs = font.getUint16();\n let numGlyphsOut = numGlyphs + 1;\n let dupFirstEntry = true;\n\n if (numGlyphsOut > 0xffff) {\n dupFirstEntry = false;\n numGlyphsOut = numGlyphs;\n (0, _util.warn)(\"Not enough space in glyfs to duplicate first glyph.\");\n }\n\n var maxFunctionDefs = 0;\n var maxSizeOfInstructions = 0;\n\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n font.pos += 8;\n var maxZones = font.getUint16();\n\n if (maxZones > 2) {\n tables.maxp.data[14] = 0;\n tables.maxp.data[15] = 2;\n }\n\n font.pos += 4;\n maxFunctionDefs = font.getUint16();\n font.pos += 4;\n maxSizeOfInstructions = font.getUint16();\n }\n\n tables.maxp.data[4] = numGlyphsOut >> 8;\n tables.maxp.data[5] = numGlyphsOut & 255;\n var hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep, tables[\"cvt \"], maxFunctionDefs);\n\n if (!hintsValid) {\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n }\n\n sanitizeMetrics(font, tables.hhea, tables.hmtx, numGlyphsOut, dupFirstEntry);\n\n if (!tables.head) {\n throw new _util.FormatError('Required \"head\" table is not found');\n }\n\n sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n var missingGlyphs = Object.create(null);\n\n if (isTrueType) {\n var isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]);\n var glyphsInfo = sanitizeGlyphLocations(tables.loca, tables.glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions);\n missingGlyphs = glyphsInfo.missingGlyphs;\n\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n }\n }\n\n if (!tables.hhea) {\n throw new _util.FormatError('Required \"hhea\" table is not found');\n }\n\n if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n tables.hhea.data[10] = 0xff;\n tables.hhea.data[11] = 0xff;\n }\n\n var metricsOverride = {\n unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n yMax: int16(tables.head.data[42], tables.head.data[43]),\n yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n ascent: int16(tables.hhea.data[4], tables.hhea.data[5]),\n descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7])\n };\n this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n\n if (tables.post) {\n readPostScriptTable(tables.post, properties, numGlyphs);\n }\n\n tables.post = {\n tag: \"post\",\n data: createPostTable(properties)\n };\n const charCodeToGlyphId = [];\n\n function hasGlyph(glyphId) {\n return !missingGlyphs[glyphId];\n }\n\n if (properties.composite) {\n var cidToGidMap = properties.cidToGidMap || [];\n var isCidToGidMapEmpty = cidToGidMap.length === 0;\n properties.cMap.forEach(function (charCode, cid) {\n if (cid > 0xffff) {\n throw new _util.FormatError(\"Max size of CID is 65,535\");\n }\n\n var glyphId = -1;\n\n if (isCidToGidMapEmpty) {\n glyphId = cid;\n } else if (cidToGidMap[cid] !== undefined) {\n glyphId = cidToGidMap[cid];\n }\n\n if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n });\n } else {\n var cmapTable = readCmapTable(tables.cmap, font, this.isSymbolicFont, properties.hasEncoding);\n var cmapPlatformId = cmapTable.platformId;\n var cmapEncodingId = cmapTable.encodingId;\n var cmapMappings = cmapTable.mappings;\n var cmapMappingsLength = cmapMappings.length;\n\n if (properties.hasEncoding && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0) || cmapPlatformId === -1 && cmapEncodingId === -1 && !!(0, _encodings.getEncoding)(properties.baseEncodingName)) {\n var baseEncoding = [];\n\n if (properties.baseEncodingName === \"MacRomanEncoding\" || properties.baseEncodingName === \"WinAnsiEncoding\") {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n }\n\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n for (let charCode = 0; charCode < 256; charCode++) {\n var glyphName, standardGlyphName;\n\n if (this.differences && charCode in this.differences) {\n glyphName = this.differences[charCode];\n } else if (charCode in baseEncoding && baseEncoding[charCode] !== \"\") {\n glyphName = baseEncoding[charCode];\n } else {\n glyphName = _encodings.StandardEncoding[charCode];\n }\n\n if (!glyphName) {\n continue;\n }\n\n standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n var unicodeOrCharCode;\n\n if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName);\n }\n\n var found = false;\n\n for (let i = 0; i < cmapMappingsLength; ++i) {\n if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n continue;\n }\n\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n found = true;\n break;\n }\n\n if (!found && properties.glyphNames) {\n var glyphId = properties.glyphNames.indexOf(glyphName);\n\n if (glyphId === -1 && standardGlyphName !== glyphName) {\n glyphId = properties.glyphNames.indexOf(standardGlyphName);\n }\n\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n }\n }\n } else if (cmapPlatformId === 0 && cmapEncodingId === 0) {\n for (let i = 0; i < cmapMappingsLength; ++i) {\n charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId;\n }\n } else {\n for (let i = 0; i < cmapMappingsLength; ++i) {\n let charCode = cmapMappings[i].charCode;\n\n if (cmapPlatformId === 3 && charCode >= 0xf000 && charCode <= 0xf0ff) {\n charCode &= 0xff;\n }\n\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n }\n }\n }\n\n if (charCodeToGlyphId.length === 0) {\n charCodeToGlyphId[0] = 0;\n }\n\n let glyphZeroId = numGlyphsOut - 1;\n\n if (!dupFirstEntry) {\n glyphZeroId = 0;\n }\n\n var newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId);\n this.toFontChar = newMapping.toFontChar;\n tables.cmap = {\n tag: \"cmap\",\n data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut)\n };\n\n if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n tables[\"OS/2\"] = {\n tag: \"OS/2\",\n data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride)\n };\n }\n\n if (!isTrueType) {\n try {\n cffFile = new _stream.Stream(tables[\"CFF \"].data);\n var parser = new _cff_parser.CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED);\n cff = parser.parse();\n cff.duplicateFirstGlyph();\n var compiler = new _cff_parser.CFFCompiler(cff);\n tables[\"CFF \"].data = compiler.compile();\n } catch (e) {\n (0, _util.warn)(\"Failed to compile font \" + properties.loadedName);\n }\n }\n\n if (!tables.name) {\n tables.name = {\n tag: \"name\",\n data: createNameTable(this.name)\n };\n } else {\n var namePrototype = readNameTable(tables.name);\n tables.name.data = createNameTable(name, namePrototype);\n }\n\n var builder = new OpenTypeFileBuilder(header.version);\n\n for (var tableTag in tables) {\n builder.addTable(tableTag, tables[tableTag].data);\n }\n\n return builder.toArray();\n },\n convert: function Font_convert(fontName, font, properties) {\n properties.fixedPitch = false;\n\n if (properties.builtInEncoding) {\n adjustToUnicode(properties, properties.builtInEncoding);\n }\n\n let glyphZeroId = 1;\n\n if (font instanceof CFFFont) {\n glyphZeroId = font.numGlyphs - 1;\n }\n\n var mapping = font.getGlyphMapping(properties);\n var newMapping = adjustMapping(mapping, font.hasGlyphId.bind(font), glyphZeroId);\n this.toFontChar = newMapping.toFontChar;\n var numGlyphs = font.numGlyphs;\n\n function getCharCodes(charCodeToGlyphId, glyphId) {\n var charCodes = null;\n\n for (var charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n if (!charCodes) {\n charCodes = [];\n }\n\n charCodes.push(charCode | 0);\n }\n }\n\n return charCodes;\n }\n\n function createCharCode(charCodeToGlyphId, glyphId) {\n for (var charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n return charCode | 0;\n }\n }\n\n newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId;\n return newMapping.nextAvailableFontCharCode++;\n }\n\n var seacs = font.seacs;\n\n if (SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n var matrix = properties.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var charset = font.getCharset();\n var seacMap = Object.create(null);\n\n for (var glyphId in seacs) {\n glyphId |= 0;\n var seac = seacs[glyphId];\n var baseGlyphName = _encodings.StandardEncoding[seac[2]];\n var accentGlyphName = _encodings.StandardEncoding[seac[3]];\n var baseGlyphId = charset.indexOf(baseGlyphName);\n var accentGlyphId = charset.indexOf(accentGlyphName);\n\n if (baseGlyphId < 0 || accentGlyphId < 0) {\n continue;\n }\n\n var accentOffset = {\n x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5]\n };\n var charCodes = getCharCodes(mapping, glyphId);\n\n if (!charCodes) {\n continue;\n }\n\n for (let i = 0, ii = charCodes.length; i < ii; i++) {\n var charCode = charCodes[i];\n var charCodeToGlyphId = newMapping.charCodeToGlyphId;\n var baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId);\n var accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId);\n seacMap[charCode] = {\n baseFontCharCode,\n accentFontCharCode,\n accentOffset\n };\n }\n }\n\n properties.seacMap = seacMap;\n }\n\n var unitsPerEm = 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n var builder = new OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n builder.addTable(\"CFF \", font.data);\n builder.addTable(\"OS/2\", createOS2Table(properties, newMapping.charCodeToGlyphId));\n builder.addTable(\"cmap\", createCmapTable(newMapping.charCodeToGlyphId, numGlyphs));\n builder.addTable(\"head\", \"\\x00\\x01\\x00\\x00\" + \"\\x00\\x00\\x10\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x5F\\x0F\\x3C\\xF5\" + \"\\x00\\x00\" + safeString16(unitsPerEm) + \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + \"\\x00\\x00\" + safeString16(properties.descent) + \"\\x0F\\xFF\" + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + \"\\x00\\x11\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\");\n builder.addTable(\"hhea\", \"\\x00\\x01\\x00\\x00\" + safeString16(properties.ascent) + safeString16(properties.descent) + \"\\x00\\x00\" + \"\\xFF\\xFF\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + string16(numGlyphs));\n builder.addTable(\"hmtx\", function fontFieldsHmtx() {\n var charstrings = font.charstrings;\n var cffWidths = font.cff ? font.cff.widths : null;\n var hmtx = \"\\x00\\x00\\x00\\x00\";\n\n for (let i = 1, ii = numGlyphs; i < ii; i++) {\n var width = 0;\n\n if (charstrings) {\n var charstring = charstrings[i - 1];\n width = \"width\" in charstring ? charstring.width : 0;\n } else if (cffWidths) {\n width = Math.ceil(cffWidths[i] || 0);\n }\n\n hmtx += string16(width) + string16(0);\n }\n\n return hmtx;\n }());\n builder.addTable(\"maxp\", \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs));\n builder.addTable(\"name\", createNameTable(fontName));\n builder.addTable(\"post\", createPostTable(properties));\n return builder.toArray();\n },\n\n get spaceWidth() {\n var possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n var width;\n\n for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n var glyphName = possibleSpaceReplacements[i];\n\n if (glyphName in this.widths) {\n width = this.widths[glyphName];\n break;\n }\n\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n var glyphUnicode = glyphsUnicodeMap[glyphName];\n var charcode = 0;\n\n if (this.composite && this.cMap.contains(glyphUnicode)) {\n charcode = this.cMap.lookup(glyphUnicode);\n }\n\n if (!charcode && this.toUnicode) {\n charcode = this.toUnicode.charCodeOf(glyphUnicode);\n }\n\n if (charcode <= 0) {\n charcode = glyphUnicode;\n }\n\n width = this.widths[charcode];\n\n if (width) {\n break;\n }\n }\n\n width = width || this.defaultWidth;\n return (0, _util.shadow)(this, \"spaceWidth\", width);\n },\n\n charToGlyph: function Font_charToGlyph(charcode, isSpace) {\n var fontCharCode, width, operatorListId;\n var widthCode = charcode;\n\n if (this.cMap && this.cMap.contains(charcode)) {\n widthCode = this.cMap.lookup(charcode);\n }\n\n width = this.widths[widthCode];\n width = (0, _util.isNum)(width) ? width : this.defaultWidth;\n var vmetric = this.vmetrics && this.vmetrics[widthCode];\n let unicode = this.toUnicode.get(charcode) || this.fallbackToUnicode.get(charcode) || charcode;\n\n if (typeof unicode === \"number\") {\n unicode = String.fromCharCode(unicode);\n }\n\n var isInFont = (charcode in this.toFontChar);\n fontCharCode = this.toFontChar[charcode] || charcode;\n\n if (this.missingFile) {\n const glyphName = this.differences[charcode] || this.defaultEncoding[charcode];\n\n if ((glyphName === \".notdef\" || glyphName === \"\") && this.type === \"Type1\") {\n fontCharCode = 0x20;\n }\n\n fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode);\n }\n\n if (this.isType3Font) {\n operatorListId = fontCharCode;\n }\n\n var accent = null;\n\n if (this.seacMap && this.seacMap[charcode]) {\n isInFont = true;\n var seac = this.seacMap[charcode];\n fontCharCode = seac.baseFontCharCode;\n accent = {\n fontChar: String.fromCodePoint(seac.accentFontCharCode),\n offset: seac.accentOffset\n };\n }\n\n let fontChar = \"\";\n\n if (typeof fontCharCode === \"number\") {\n if (fontCharCode <= 0x10ffff) {\n fontChar = String.fromCodePoint(fontCharCode);\n } else {\n (0, _util.warn)(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n }\n }\n\n var glyph = this.glyphCache[charcode];\n\n if (!glyph || !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) {\n glyph = new Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont);\n this.glyphCache[charcode] = glyph;\n }\n\n return glyph;\n },\n charsToGlyphs: function Font_charsToGlyphs(chars) {\n var charsCache = this.charsCache;\n var glyphs, glyph, charcode;\n\n if (charsCache) {\n glyphs = charsCache[chars];\n\n if (glyphs) {\n return glyphs;\n }\n }\n\n if (!charsCache) {\n charsCache = this.charsCache = Object.create(null);\n }\n\n glyphs = [];\n var charsCacheKey = chars;\n var i = 0,\n ii;\n\n if (this.cMap) {\n var c = Object.create(null);\n\n while (i < chars.length) {\n this.cMap.readCharCode(chars, i, c);\n charcode = c.charcode;\n var length = c.length;\n i += length;\n var isSpace = length === 1 && chars.charCodeAt(i - 1) === 0x20;\n glyph = this.charToGlyph(charcode, isSpace);\n glyphs.push(glyph);\n }\n } else {\n for (i = 0, ii = chars.length; i < ii; ++i) {\n charcode = chars.charCodeAt(i);\n glyph = this.charToGlyph(charcode, charcode === 0x20);\n glyphs.push(glyph);\n }\n }\n\n return charsCache[charsCacheKey] = glyphs;\n },\n\n get glyphCacheValues() {\n return Object.values(this.glyphCache);\n }\n\n };\n return Font;\n}();\n\nexports.Font = Font;\n\nvar ErrorFont = function ErrorFontClosure() {\n function ErrorFont(error) {\n this.error = error;\n this.loadedName = \"g_font_error\";\n this.missingFile = true;\n }\n\n ErrorFont.prototype = {\n charsToGlyphs: function ErrorFont_charsToGlyphs() {\n return [];\n },\n\n exportData(extraProperties = false) {\n return {\n error: this.error\n };\n }\n\n };\n return ErrorFont;\n}();\n\nexports.ErrorFont = ErrorFont;\n\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n var charCodeToGlyphId = Object.create(null);\n var glyphId, charCode, baseEncoding;\n var isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n if (properties.baseEncodingName) {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n } else if (isSymbolicFont) {\n for (charCode in builtInEncoding) {\n charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n }\n } else {\n baseEncoding = _encodings.StandardEncoding;\n\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n\n var differences = properties.differences,\n glyphsUnicodeMap;\n\n if (differences) {\n for (charCode in differences) {\n var glyphName = differences[charCode];\n glyphId = glyphNames.indexOf(glyphName);\n\n if (glyphId === -1) {\n if (!glyphsUnicodeMap) {\n glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n }\n\n var standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n\n if (standardGlyphName !== glyphName) {\n glyphId = glyphNames.indexOf(standardGlyphName);\n }\n }\n\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n\n return charCodeToGlyphId;\n}\n\nvar Type1Font = function Type1FontClosure() {\n function findBlock(streamBytes, signature, startIndex) {\n var streamBytesLength = streamBytes.length;\n var signatureLength = signature.length;\n var scanLength = streamBytesLength - signatureLength;\n var i = startIndex,\n j,\n found = false;\n\n while (i < scanLength) {\n j = 0;\n\n while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n i += j;\n\n while (i < streamBytesLength && (0, _core_utils.isWhiteSpace)(streamBytes[i])) {\n i++;\n }\n\n found = true;\n break;\n }\n\n i++;\n }\n\n return {\n found,\n length: i\n };\n }\n\n function getHeaderBlock(stream, suggestedLength) {\n var EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n var streamStartPos = stream.pos;\n var headerBytes, headerBytesLength, block;\n\n try {\n headerBytes = stream.getBytes(suggestedLength);\n headerBytesLength = headerBytes.length;\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n }\n\n if (headerBytesLength === suggestedLength) {\n block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length);\n\n if (block.found && block.length === suggestedLength) {\n return {\n stream: new _stream.Stream(headerBytes),\n length: suggestedLength\n };\n }\n }\n\n (0, _util.warn)('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n stream.pos = streamStartPos;\n var SCAN_BLOCK_LENGTH = 2048;\n var actualLength;\n\n while (true) {\n var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n if (block.length === 0) {\n break;\n }\n\n stream.pos += block.length;\n\n if (block.found) {\n actualLength = stream.pos - streamStartPos;\n break;\n }\n }\n\n stream.pos = streamStartPos;\n\n if (actualLength) {\n return {\n stream: new _stream.Stream(stream.getBytes(actualLength)),\n length: actualLength\n };\n }\n\n (0, _util.warn)('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n return {\n stream: new _stream.Stream(stream.getBytes(suggestedLength)),\n length: suggestedLength\n };\n }\n\n function getEexecBlock(stream, suggestedLength) {\n var eexecBytes = stream.getBytes();\n return {\n stream: new _stream.Stream(eexecBytes),\n length: eexecBytes.length\n };\n }\n\n function Type1Font(name, file, properties) {\n var PFB_HEADER_SIZE = 6;\n var headerBlockLength = properties.length1;\n var eexecBlockLength = properties.length2;\n var pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n\n if (pfbHeaderPresent) {\n file.skip(PFB_HEADER_SIZE);\n headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n }\n\n var headerBlock = getHeaderBlock(file, headerBlockLength);\n var headerBlockParser = new _type1_parser.Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED);\n headerBlockParser.extractFontHeader(properties);\n\n if (pfbHeaderPresent) {\n pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n }\n\n var eexecBlock = getEexecBlock(file, eexecBlockLength);\n var eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED);\n var data = eexecBlockParser.extractFontProgram(properties);\n\n for (const key in data.properties) {\n properties[key] = data.properties[key];\n }\n\n var charstrings = data.charstrings;\n var type2Charstrings = this.getType2Charstrings(charstrings);\n var subrs = this.getType2Subrs(data.subrs);\n this.charstrings = charstrings;\n this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties);\n this.seacs = this.getSeacs(data.charstrings);\n }\n\n Type1Font.prototype = {\n get numGlyphs() {\n return this.charstrings.length + 1;\n },\n\n getCharset: function Type1Font_getCharset() {\n var charset = [\".notdef\"];\n var charstrings = this.charstrings;\n\n for (var glyphId = 0; glyphId < charstrings.length; glyphId++) {\n charset.push(charstrings[glyphId].glyphName);\n }\n\n return charset;\n },\n getGlyphMapping: function Type1Font_getGlyphMapping(properties) {\n var charstrings = this.charstrings;\n\n if (properties.composite) {\n const charCodeToGlyphId = Object.create(null);\n\n for (let glyphId = 0, charstringsLen = charstrings.length; glyphId < charstringsLen; glyphId++) {\n const charCode = properties.cMap.charCodeOf(glyphId);\n charCodeToGlyphId[charCode] = glyphId + 1;\n }\n\n return charCodeToGlyphId;\n }\n\n var glyphNames = [\".notdef\"],\n glyphId;\n\n for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n glyphNames.push(charstrings[glyphId].glyphName);\n }\n\n var encoding = properties.builtInEncoding;\n\n if (encoding) {\n var builtInEncoding = Object.create(null);\n\n for (var charCode in encoding) {\n glyphId = glyphNames.indexOf(encoding[charCode]);\n\n if (glyphId >= 0) {\n builtInEncoding[charCode] = glyphId;\n }\n }\n }\n\n return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n },\n hasGlyphId: function Type1Font_hasGlyphID(id) {\n if (id < 0 || id >= this.numGlyphs) {\n return false;\n }\n\n if (id === 0) {\n return true;\n }\n\n var glyph = this.charstrings[id - 1];\n return glyph.charstring.length > 0;\n },\n getSeacs: function Type1Font_getSeacs(charstrings) {\n var i, ii;\n var seacMap = [];\n\n for (i = 0, ii = charstrings.length; i < ii; i++) {\n var charstring = charstrings[i];\n\n if (charstring.seac) {\n seacMap[i + 1] = charstring.seac;\n }\n }\n\n return seacMap;\n },\n getType2Charstrings: function Type1Font_getType2Charstrings(type1Charstrings) {\n var type2Charstrings = [];\n\n for (var i = 0, ii = type1Charstrings.length; i < ii; i++) {\n type2Charstrings.push(type1Charstrings[i].charstring);\n }\n\n return type2Charstrings;\n },\n getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {\n var bias = 0;\n var count = type1Subrs.length;\n\n if (count < 1133) {\n bias = 107;\n } else if (count < 33769) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n\n var type2Subrs = [];\n var i;\n\n for (i = 0; i < bias; i++) {\n type2Subrs.push([0x0b]);\n }\n\n for (i = 0; i < count; i++) {\n type2Subrs.push(type1Subrs[i]);\n }\n\n return type2Subrs;\n },\n wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) {\n var cff = new _cff_parser.CFF();\n cff.header = new _cff_parser.CFFHeader(1, 0, 4, 4);\n cff.names = [name];\n var topDict = new _cff_parser.CFFTopDict();\n topDict.setByName(\"version\", 391);\n topDict.setByName(\"Notice\", 392);\n topDict.setByName(\"FullName\", 393);\n topDict.setByName(\"FamilyName\", 394);\n topDict.setByName(\"Weight\", 395);\n topDict.setByName(\"Encoding\", null);\n topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n topDict.setByName(\"FontBBox\", properties.bbox);\n topDict.setByName(\"charset\", null);\n topDict.setByName(\"CharStrings\", null);\n topDict.setByName(\"Private\", null);\n cff.topDict = topDict;\n var strings = new _cff_parser.CFFStrings();\n strings.add(\"Version 0.11\");\n strings.add(\"See original notice\");\n strings.add(name);\n strings.add(name);\n strings.add(\"Medium\");\n cff.strings = strings;\n cff.globalSubrIndex = new _cff_parser.CFFIndex();\n var count = glyphs.length;\n var charsetArray = [\".notdef\"];\n var i, ii;\n\n for (i = 0; i < count; i++) {\n const glyphName = charstrings[i].glyphName;\n\n const index = _cff_parser.CFFStandardStrings.indexOf(glyphName);\n\n if (index === -1) {\n strings.add(glyphName);\n }\n\n charsetArray.push(glyphName);\n }\n\n cff.charset = new _cff_parser.CFFCharset(false, 0, charsetArray);\n var charStringsIndex = new _cff_parser.CFFIndex();\n charStringsIndex.add([0x8b, 0x0e]);\n\n for (i = 0; i < count; i++) {\n charStringsIndex.add(glyphs[i]);\n }\n\n cff.charStrings = charStringsIndex;\n var privateDict = new _cff_parser.CFFPrivateDict();\n privateDict.setByName(\"Subrs\", null);\n var fields = [\"BlueValues\", \"OtherBlues\", \"FamilyBlues\", \"FamilyOtherBlues\", \"StemSnapH\", \"StemSnapV\", \"BlueShift\", \"BlueFuzz\", \"BlueScale\", \"LanguageGroup\", \"ExpansionFactor\", \"ForceBold\", \"StdHW\", \"StdVW\"];\n\n for (i = 0, ii = fields.length; i < ii; i++) {\n var field = fields[i];\n\n if (!(field in properties.privateData)) {\n continue;\n }\n\n var value = properties.privateData[field];\n\n if (Array.isArray(value)) {\n for (var j = value.length - 1; j > 0; j--) {\n value[j] -= value[j - 1];\n }\n }\n\n privateDict.setByName(field, value);\n }\n\n cff.topDict.privateDict = privateDict;\n var subrIndex = new _cff_parser.CFFIndex();\n\n for (i = 0, ii = subrs.length; i < ii; i++) {\n subrIndex.add(subrs[i]);\n }\n\n privateDict.subrsIndex = subrIndex;\n var compiler = new _cff_parser.CFFCompiler(cff);\n return compiler.compile();\n }\n };\n return Type1Font;\n}();\n\nvar CFFFont = function CFFFontClosure() {\n function CFFFont(file, properties) {\n this.properties = properties;\n var parser = new _cff_parser.CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n this.cff = parser.parse();\n this.cff.duplicateFirstGlyph();\n var compiler = new _cff_parser.CFFCompiler(this.cff);\n this.seacs = this.cff.seacs;\n\n try {\n this.data = compiler.compile();\n } catch (e) {\n (0, _util.warn)(\"Failed to compile font \" + properties.loadedName);\n this.data = file;\n }\n }\n\n CFFFont.prototype = {\n get numGlyphs() {\n return this.cff.charStrings.count;\n },\n\n getCharset: function CFFFont_getCharset() {\n return this.cff.charset.charset;\n },\n getGlyphMapping: function CFFFont_getGlyphMapping() {\n var cff = this.cff;\n var properties = this.properties;\n var charsets = cff.charset.charset;\n var charCodeToGlyphId;\n var glyphId;\n\n if (properties.composite) {\n charCodeToGlyphId = Object.create(null);\n let charCode;\n\n if (cff.isCIDFont) {\n for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n var cid = charsets[glyphId];\n charCode = properties.cMap.charCodeOf(cid);\n charCodeToGlyphId[charCode] = glyphId;\n }\n } else {\n for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n charCode = properties.cMap.charCodeOf(glyphId);\n charCodeToGlyphId[charCode] = glyphId;\n }\n }\n\n return charCodeToGlyphId;\n }\n\n var encoding = cff.encoding ? cff.encoding.encoding : null;\n charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n return charCodeToGlyphId;\n },\n hasGlyphId: function CFFFont_hasGlyphID(id) {\n return this.cff.hasGlyphId(id);\n }\n };\n return CFFFont;\n}();\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CFFFDSelect = exports.CFFCompiler = exports.CFFPrivateDict = exports.CFFTopDict = exports.CFFCharset = exports.CFFIndex = exports.CFFStrings = exports.CFFHeader = exports.CFF = exports.CFFParser = exports.CFFStandardStrings = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _charsets = __w_pdfjs_require__(31);\n\nvar _encodings = __w_pdfjs_require__(32);\n\nvar MAX_SUBR_NESTING = 10;\nvar CFFStandardStrings = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\", \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"];\nexports.CFFStandardStrings = CFFStandardStrings;\nconst NUM_STANDARD_CFF_STRINGS = 391;\n\nvar CFFParser = function CFFParserClosure() {\n var CharstringValidationData = [null, {\n id: \"hstem\",\n min: 2,\n stackClearing: true,\n stem: true\n }, null, {\n id: \"vstem\",\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: \"vmoveto\",\n min: 1,\n stackClearing: true\n }, {\n id: \"rlineto\",\n min: 2,\n resetStack: true\n }, {\n id: \"hlineto\",\n min: 1,\n resetStack: true\n }, {\n id: \"vlineto\",\n min: 1,\n resetStack: true\n }, {\n id: \"rrcurveto\",\n min: 6,\n resetStack: true\n }, null, {\n id: \"callsubr\",\n min: 1,\n undefStack: true\n }, {\n id: \"return\",\n min: 0,\n undefStack: true\n }, null, null, {\n id: \"endchar\",\n min: 0,\n stackClearing: true\n }, null, null, null, {\n id: \"hstemhm\",\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: \"hintmask\",\n min: 0,\n stackClearing: true\n }, {\n id: \"cntrmask\",\n min: 0,\n stackClearing: true\n }, {\n id: \"rmoveto\",\n min: 2,\n stackClearing: true\n }, {\n id: \"hmoveto\",\n min: 1,\n stackClearing: true\n }, {\n id: \"vstemhm\",\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: \"rcurveline\",\n min: 8,\n resetStack: true\n }, {\n id: \"rlinecurve\",\n min: 8,\n resetStack: true\n }, {\n id: \"vvcurveto\",\n min: 4,\n resetStack: true\n }, {\n id: \"hhcurveto\",\n min: 4,\n resetStack: true\n }, null, {\n id: \"callgsubr\",\n min: 1,\n undefStack: true\n }, {\n id: \"vhcurveto\",\n min: 4,\n resetStack: true\n }, {\n id: \"hvcurveto\",\n min: 4,\n resetStack: true\n }];\n var CharstringValidationData12 = [null, null, null, {\n id: \"and\",\n min: 2,\n stackDelta: -1\n }, {\n id: \"or\",\n min: 2,\n stackDelta: -1\n }, {\n id: \"not\",\n min: 1,\n stackDelta: 0\n }, null, null, null, {\n id: \"abs\",\n min: 1,\n stackDelta: 0\n }, {\n id: \"add\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] + stack[index - 1];\n }\n }, {\n id: \"sub\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] - stack[index - 1];\n }\n }, {\n id: \"div\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] / stack[index - 1];\n }\n }, null, {\n id: \"neg\",\n min: 1,\n stackDelta: 0,\n stackFn: function stack_div(stack, index) {\n stack[index - 1] = -stack[index - 1];\n }\n }, {\n id: \"eq\",\n min: 2,\n stackDelta: -1\n }, null, null, {\n id: \"drop\",\n min: 1,\n stackDelta: -1\n }, null, {\n id: \"put\",\n min: 2,\n stackDelta: -2\n }, {\n id: \"get\",\n min: 1,\n stackDelta: 0\n }, {\n id: \"ifelse\",\n min: 4,\n stackDelta: -3\n }, {\n id: \"random\",\n min: 0,\n stackDelta: 1\n }, {\n id: \"mul\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] * stack[index - 1];\n }\n }, null, {\n id: \"sqrt\",\n min: 1,\n stackDelta: 0\n }, {\n id: \"dup\",\n min: 1,\n stackDelta: 1\n }, {\n id: \"exch\",\n min: 2,\n stackDelta: 0\n }, {\n id: \"index\",\n min: 2,\n stackDelta: 0\n }, {\n id: \"roll\",\n min: 3,\n stackDelta: -2\n }, null, null, null, {\n id: \"hflex\",\n min: 7,\n resetStack: true\n }, {\n id: \"flex\",\n min: 13,\n resetStack: true\n }, {\n id: \"hflex1\",\n min: 9,\n resetStack: true\n }, {\n id: \"flex1\",\n min: 11,\n resetStack: true\n }];\n\n function CFFParser(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n\n CFFParser.prototype = {\n parse: function CFFParser_parse() {\n var properties = this.properties;\n var cff = new CFF();\n this.cff = cff;\n var header = this.parseHeader();\n var nameIndex = this.parseIndex(header.endPos);\n var topDictIndex = this.parseIndex(nameIndex.endPos);\n var stringIndex = this.parseIndex(topDictIndex.endPos);\n var globalSubrIndex = this.parseIndex(stringIndex.endPos);\n var topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n cff.header = header.obj;\n cff.names = this.parseNameIndex(nameIndex.obj);\n cff.strings = this.parseStringIndex(stringIndex.obj);\n cff.topDict = topDict;\n cff.globalSubrIndex = globalSubrIndex.obj;\n this.parsePrivateDict(cff.topDict);\n cff.isCIDFont = topDict.hasName(\"ROS\");\n var charStringOffset = topDict.getByName(\"CharStrings\");\n var charStringIndex = this.parseIndex(charStringOffset).obj;\n var fontMatrix = topDict.getByName(\"FontMatrix\");\n\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n\n var fontBBox = topDict.getByName(\"FontBBox\");\n\n if (fontBBox) {\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n }\n\n var charset, encoding;\n\n if (cff.isCIDFont) {\n var fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n\n for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n var dictRaw = fdArrayIndex.get(i);\n var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings);\n this.parsePrivateDict(fontDict);\n cff.fdArray.push(fontDict);\n }\n\n encoding = null;\n charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, true);\n cff.fdSelect = this.parseFDSelect(topDict.getByName(\"FDSelect\"), charStringIndex.count);\n } else {\n charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, false);\n encoding = this.parseEncoding(topDict.getByName(\"Encoding\"), properties, cff.strings, charset.charset);\n }\n\n cff.charset = charset;\n cff.encoding = encoding;\n var charStringsAndSeacs = this.parseCharStrings({\n charStrings: charStringIndex,\n localSubrIndex: topDict.privateDict.subrsIndex,\n globalSubrIndex: globalSubrIndex.obj,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n privateDict: topDict.privateDict\n });\n cff.charStrings = charStringsAndSeacs.charStrings;\n cff.seacs = charStringsAndSeacs.seacs;\n cff.widths = charStringsAndSeacs.widths;\n return cff;\n },\n parseHeader: function CFFParser_parseHeader() {\n var bytes = this.bytes;\n var bytesLength = bytes.length;\n var offset = 0;\n\n while (offset < bytesLength && bytes[offset] !== 1) {\n ++offset;\n }\n\n if (offset >= bytesLength) {\n throw new _util.FormatError(\"Invalid CFF header\");\n }\n\n if (offset !== 0) {\n (0, _util.info)(\"cff data is shifted\");\n bytes = bytes.subarray(offset);\n this.bytes = bytes;\n }\n\n var major = bytes[0];\n var minor = bytes[1];\n var hdrSize = bytes[2];\n var offSize = bytes[3];\n var header = new CFFHeader(major, minor, hdrSize, offSize);\n return {\n obj: header,\n endPos: hdrSize\n };\n },\n parseDict: function CFFParser_parseDict(dict) {\n var pos = 0;\n\n function parseOperand() {\n var value = dict[pos++];\n\n if (value === 30) {\n return parseFloatOperand();\n } else if (value === 28) {\n value = dict[pos++];\n value = (value << 24 | dict[pos++] << 16) >> 16;\n return value;\n } else if (value === 29) {\n value = dict[pos++];\n value = value << 8 | dict[pos++];\n value = value << 8 | dict[pos++];\n value = value << 8 | dict[pos++];\n return value;\n } else if (value >= 32 && value <= 246) {\n return value - 139;\n } else if (value >= 247 && value <= 250) {\n return (value - 247) * 256 + dict[pos++] + 108;\n } else if (value >= 251 && value <= 254) {\n return -((value - 251) * 256) - dict[pos++] - 108;\n }\n\n (0, _util.warn)('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n return NaN;\n }\n\n function parseFloatOperand() {\n var str = \"\";\n var eof = 15;\n const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n var length = dict.length;\n\n while (pos < length) {\n var b = dict[pos++];\n var b1 = b >> 4;\n var b2 = b & 15;\n\n if (b1 === eof) {\n break;\n }\n\n str += lookup[b1];\n\n if (b2 === eof) {\n break;\n }\n\n str += lookup[b2];\n }\n\n return parseFloat(str);\n }\n\n var operands = [];\n var entries = [];\n pos = 0;\n var end = dict.length;\n\n while (pos < end) {\n var b = dict[pos];\n\n if (b <= 21) {\n if (b === 12) {\n b = b << 8 | dict[++pos];\n }\n\n entries.push([b, operands]);\n operands = [];\n ++pos;\n } else {\n operands.push(parseOperand());\n }\n }\n\n return entries;\n },\n parseIndex: function CFFParser_parseIndex(pos) {\n var cffIndex = new CFFIndex();\n var bytes = this.bytes;\n var count = bytes[pos++] << 8 | bytes[pos++];\n var offsets = [];\n var end = pos;\n var i, ii;\n\n if (count !== 0) {\n var offsetSize = bytes[pos++];\n var startPos = pos + (count + 1) * offsetSize - 1;\n\n for (i = 0, ii = count + 1; i < ii; ++i) {\n var offset = 0;\n\n for (var j = 0; j < offsetSize; ++j) {\n offset <<= 8;\n offset += bytes[pos++];\n }\n\n offsets.push(startPos + offset);\n }\n\n end = offsets[count];\n }\n\n for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n var offsetStart = offsets[i];\n var offsetEnd = offsets[i + 1];\n cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n }\n\n return {\n obj: cffIndex,\n endPos: end\n };\n },\n parseNameIndex: function CFFParser_parseNameIndex(index) {\n var names = [];\n\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var name = index.get(i);\n names.push((0, _util.bytesToString)(name));\n }\n\n return names;\n },\n parseStringIndex: function CFFParser_parseStringIndex(index) {\n var strings = new CFFStrings();\n\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var data = index.get(i);\n strings.add((0, _util.bytesToString)(data));\n }\n\n return strings;\n },\n createDict: function CFFParser_createDict(Type, dict, strings) {\n var cffDict = new Type(strings);\n\n for (var i = 0, ii = dict.length; i < ii; ++i) {\n var pair = dict[i];\n var key = pair[0];\n var value = pair[1];\n cffDict.setByKey(key, value);\n }\n\n return cffDict;\n },\n parseCharString: function CFFParser_parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n if (!data || state.callDepth > MAX_SUBR_NESTING) {\n return false;\n }\n\n var stackSize = state.stackSize;\n var stack = state.stack;\n var length = data.length;\n\n for (var j = 0; j < length;) {\n var value = data[j++];\n var validationCommand = null;\n\n if (value === 12) {\n var q = data[j++];\n\n if (q === 0) {\n data[j - 2] = 139;\n data[j - 1] = 22;\n stackSize = 0;\n } else {\n validationCommand = CharstringValidationData12[q];\n }\n } else if (value === 28) {\n stack[stackSize] = (data[j] << 24 | data[j + 1] << 16) >> 16;\n j += 2;\n stackSize++;\n } else if (value === 14) {\n if (stackSize >= 4) {\n stackSize -= 4;\n\n if (this.seacAnalysisEnabled) {\n state.seac = stack.slice(stackSize, stackSize + 4);\n return false;\n }\n }\n\n validationCommand = CharstringValidationData[value];\n } else if (value >= 32 && value <= 246) {\n stack[stackSize] = value - 139;\n stackSize++;\n } else if (value >= 247 && value <= 254) {\n stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108;\n j++;\n stackSize++;\n } else if (value === 255) {\n stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536;\n j += 4;\n stackSize++;\n } else if (value === 19 || value === 20) {\n state.hints += stackSize >> 1;\n j += state.hints + 7 >> 3;\n stackSize %= 2;\n validationCommand = CharstringValidationData[value];\n } else if (value === 10 || value === 29) {\n var subrsIndex;\n\n if (value === 10) {\n subrsIndex = localSubrIndex;\n } else {\n subrsIndex = globalSubrIndex;\n }\n\n if (!subrsIndex) {\n validationCommand = CharstringValidationData[value];\n (0, _util.warn)(\"Missing subrsIndex for \" + validationCommand.id);\n return false;\n }\n\n var bias = 32768;\n\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n\n var subrNumber = stack[--stackSize] + bias;\n\n if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) {\n validationCommand = CharstringValidationData[value];\n (0, _util.warn)(\"Out of bounds subrIndex for \" + validationCommand.id);\n return false;\n }\n\n state.stackSize = stackSize;\n state.callDepth++;\n var valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex);\n\n if (!valid) {\n return false;\n }\n\n state.callDepth--;\n stackSize = state.stackSize;\n continue;\n } else if (value === 11) {\n state.stackSize = stackSize;\n return true;\n } else {\n validationCommand = CharstringValidationData[value];\n }\n\n if (validationCommand) {\n if (validationCommand.stem) {\n state.hints += stackSize >> 1;\n\n if (value === 3 || value === 23) {\n state.hasVStems = true;\n } else if (state.hasVStems && (value === 1 || value === 18)) {\n (0, _util.warn)(\"CFF stem hints are in wrong order\");\n data[j - 1] = value === 1 ? 3 : 23;\n }\n }\n\n if (\"min\" in validationCommand) {\n if (!state.undefStack && stackSize < validationCommand.min) {\n (0, _util.warn)(\"Not enough parameters for \" + validationCommand.id + \"; actual: \" + stackSize + \", expected: \" + validationCommand.min);\n return false;\n }\n }\n\n if (state.firstStackClearing && validationCommand.stackClearing) {\n state.firstStackClearing = false;\n stackSize -= validationCommand.min;\n\n if (stackSize >= 2 && validationCommand.stem) {\n stackSize %= 2;\n } else if (stackSize > 1) {\n (0, _util.warn)(\"Found too many parameters for stack-clearing command\");\n }\n\n if (stackSize > 0 && stack[stackSize - 1] >= 0) {\n state.width = stack[stackSize - 1];\n }\n }\n\n if (\"stackDelta\" in validationCommand) {\n if (\"stackFn\" in validationCommand) {\n validationCommand.stackFn(stack, stackSize);\n }\n\n stackSize += validationCommand.stackDelta;\n } else if (validationCommand.stackClearing) {\n stackSize = 0;\n } else if (validationCommand.resetStack) {\n stackSize = 0;\n state.undefStack = false;\n } else if (validationCommand.undefStack) {\n stackSize = 0;\n state.undefStack = true;\n state.firstStackClearing = false;\n }\n }\n }\n\n state.stackSize = stackSize;\n return true;\n },\n\n parseCharStrings({\n charStrings,\n localSubrIndex,\n globalSubrIndex,\n fdSelect,\n fdArray,\n privateDict\n }) {\n var seacs = [];\n var widths = [];\n var count = charStrings.count;\n\n for (var i = 0; i < count; i++) {\n var charstring = charStrings.get(i);\n var state = {\n callDepth: 0,\n stackSize: 0,\n stack: [],\n undefStack: true,\n hints: 0,\n firstStackClearing: true,\n seac: null,\n width: null,\n hasVStems: false\n };\n var valid = true;\n var localSubrToUse = null;\n var privateDictToUse = privateDict;\n\n if (fdSelect && fdArray.length) {\n var fdIndex = fdSelect.getFDIndex(i);\n\n if (fdIndex === -1) {\n (0, _util.warn)(\"Glyph index is not in fd select.\");\n valid = false;\n }\n\n if (fdIndex >= fdArray.length) {\n (0, _util.warn)(\"Invalid fd index for glyph index.\");\n valid = false;\n }\n\n if (valid) {\n privateDictToUse = fdArray[fdIndex].privateDict;\n localSubrToUse = privateDictToUse.subrsIndex;\n }\n } else if (localSubrIndex) {\n localSubrToUse = localSubrIndex;\n }\n\n if (valid) {\n valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex);\n }\n\n if (state.width !== null) {\n const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n widths[i] = nominalWidth + state.width;\n } else {\n const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n widths[i] = defaultWidth;\n }\n\n if (state.seac !== null) {\n seacs[i] = state.seac;\n }\n\n if (!valid) {\n charStrings.set(i, new Uint8Array([14]));\n }\n }\n\n return {\n charStrings,\n seacs,\n widths\n };\n },\n\n emptyPrivateDictionary: function CFFParser_emptyPrivateDictionary(parentDict) {\n var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n },\n parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) {\n if (!parentDict.hasName(\"Private\")) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n var privateOffset = parentDict.getByName(\"Private\");\n\n if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName(\"Private\");\n return;\n }\n\n var size = privateOffset[0];\n var offset = privateOffset[1];\n\n if (size === 0 || offset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n var privateDictEnd = offset + size;\n var dictData = this.bytes.subarray(offset, privateDictEnd);\n var dict = this.parseDict(dictData);\n var privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings);\n parentDict.privateDict = privateDict;\n\n if (!privateDict.getByName(\"Subrs\")) {\n return;\n }\n\n var subrsOffset = privateDict.getByName(\"Subrs\");\n var relativeOffset = offset + subrsOffset;\n\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n var subrsIndex = this.parseIndex(relativeOffset);\n privateDict.subrsIndex = subrsIndex.obj;\n },\n parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) {\n if (pos === 0) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, _charsets.ISOAdobeCharset);\n } else if (pos === 1) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, _charsets.ExpertCharset);\n } else if (pos === 2) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, _charsets.ExpertSubsetCharset);\n }\n\n var bytes = this.bytes;\n var start = pos;\n var format = bytes[pos++];\n const charset = [cid ? 0 : \".notdef\"];\n var id, count, i;\n length -= 1;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; i++) {\n id = bytes[pos++] << 8 | bytes[pos++];\n charset.push(cid ? id : strings.get(id));\n }\n\n break;\n\n case 1:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++];\n\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n\n break;\n\n case 2:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++] << 8 | bytes[pos++];\n\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n\n break;\n\n default:\n throw new _util.FormatError(\"Unknown charset format\");\n }\n\n var end = pos;\n var raw = bytes.subarray(start, end);\n return new CFFCharset(false, format, charset, raw);\n },\n parseEncoding: function CFFParser_parseEncoding(pos, properties, strings, charset) {\n var encoding = Object.create(null);\n var bytes = this.bytes;\n var predefined = false;\n var format, i, ii;\n var raw = null;\n\n function readSupplement() {\n var supplementsCount = bytes[pos++];\n\n for (i = 0; i < supplementsCount; i++) {\n var code = bytes[pos++];\n var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n encoding[code] = charset.indexOf(strings.get(sid));\n }\n }\n\n if (pos === 0 || pos === 1) {\n predefined = true;\n format = pos;\n var baseEncoding = pos ? _encodings.ExpertEncoding : _encodings.StandardEncoding;\n\n for (i = 0, ii = charset.length; i < ii; i++) {\n var index = baseEncoding.indexOf(charset[i]);\n\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n var dataStart = pos;\n format = bytes[pos++];\n\n switch (format & 0x7f) {\n case 0:\n var glyphsCount = bytes[pos++];\n\n for (i = 1; i <= glyphsCount; i++) {\n encoding[bytes[pos++]] = i;\n }\n\n break;\n\n case 1:\n var rangesCount = bytes[pos++];\n var gid = 1;\n\n for (i = 0; i < rangesCount; i++) {\n var start = bytes[pos++];\n var left = bytes[pos++];\n\n for (var j = start; j <= start + left; j++) {\n encoding[j] = gid++;\n }\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Unknown encoding format: ${format} in CFF`);\n }\n\n var dataEnd = pos;\n\n if (format & 0x80) {\n bytes[dataStart] &= 0x7f;\n readSupplement();\n }\n\n raw = bytes.subarray(dataStart, dataEnd);\n }\n\n format = format & 0x7f;\n return new CFFEncoding(predefined, format, encoding, raw);\n },\n parseFDSelect: function CFFParser_parseFDSelect(pos, length) {\n var bytes = this.bytes;\n var format = bytes[pos++];\n var fdSelect = [];\n var i;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; ++i) {\n var id = bytes[pos++];\n fdSelect.push(id);\n }\n\n break;\n\n case 3:\n var rangesCount = bytes[pos++] << 8 | bytes[pos++];\n\n for (i = 0; i < rangesCount; ++i) {\n var first = bytes[pos++] << 8 | bytes[pos++];\n\n if (i === 0 && first !== 0) {\n (0, _util.warn)(\"parseFDSelect: The first range must have a first GID of 0\" + \" -- trying to recover.\");\n first = 0;\n }\n\n var fdIndex = bytes[pos++];\n var next = bytes[pos] << 8 | bytes[pos + 1];\n\n for (var j = first; j < next; ++j) {\n fdSelect.push(fdIndex);\n }\n }\n\n pos += 2;\n break;\n\n default:\n throw new _util.FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n }\n\n if (fdSelect.length !== length) {\n throw new _util.FormatError(\"parseFDSelect: Invalid font data.\");\n }\n\n return new CFFFDSelect(format, fdSelect);\n }\n };\n return CFFParser;\n}();\n\nexports.CFFParser = CFFParser;\n\nvar CFF = function CFFClosure() {\n function CFF() {\n this.header = null;\n this.names = [];\n this.topDict = null;\n this.strings = new CFFStrings();\n this.globalSubrIndex = null;\n this.encoding = null;\n this.charset = null;\n this.charStrings = null;\n this.fdArray = [];\n this.fdSelect = null;\n this.isCIDFont = false;\n }\n\n CFF.prototype = {\n duplicateFirstGlyph: function CFF_duplicateFirstGlyph() {\n if (this.charStrings.count >= 65535) {\n (0, _util.warn)(\"Not enough space in charstrings to duplicate first glyph.\");\n return;\n }\n\n var glyphZero = this.charStrings.get(0);\n this.charStrings.add(glyphZero);\n\n if (this.isCIDFont) {\n this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n }\n },\n hasGlyphId: function CFF_hasGlyphID(id) {\n if (id < 0 || id >= this.charStrings.count) {\n return false;\n }\n\n var glyph = this.charStrings.get(id);\n return glyph.length > 0;\n }\n };\n return CFF;\n}();\n\nexports.CFF = CFF;\n\nvar CFFHeader = function CFFHeaderClosure() {\n function CFFHeader(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n\n return CFFHeader;\n}();\n\nexports.CFFHeader = CFFHeader;\n\nvar CFFStrings = function CFFStringsClosure() {\n function CFFStrings() {\n this.strings = [];\n }\n\n CFFStrings.prototype = {\n get: function CFFStrings_get(index) {\n if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n return CFFStandardStrings[index];\n }\n\n if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n }\n\n return CFFStandardStrings[0];\n },\n getSID: function CFFStrings_getSID(str) {\n let index = CFFStandardStrings.indexOf(str);\n\n if (index !== -1) {\n return index;\n }\n\n index = this.strings.indexOf(str);\n\n if (index !== -1) {\n return index + NUM_STANDARD_CFF_STRINGS;\n }\n\n return -1;\n },\n add: function CFFStrings_add(value) {\n this.strings.push(value);\n },\n\n get count() {\n return this.strings.length;\n }\n\n };\n return CFFStrings;\n}();\n\nexports.CFFStrings = CFFStrings;\n\nvar CFFIndex = function CFFIndexClosure() {\n function CFFIndex() {\n this.objects = [];\n this.length = 0;\n }\n\n CFFIndex.prototype = {\n add: function CFFIndex_add(data) {\n this.length += data.length;\n this.objects.push(data);\n },\n set: function CFFIndex_set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n },\n get: function CFFIndex_get(index) {\n return this.objects[index];\n },\n\n get count() {\n return this.objects.length;\n }\n\n };\n return CFFIndex;\n}();\n\nexports.CFFIndex = CFFIndex;\n\nvar CFFDict = function CFFDictClosure() {\n function CFFDict(tables, strings) {\n this.keyToNameMap = tables.keyToNameMap;\n this.nameToKeyMap = tables.nameToKeyMap;\n this.defaults = tables.defaults;\n this.types = tables.types;\n this.opcodes = tables.opcodes;\n this.order = tables.order;\n this.strings = strings;\n this.values = Object.create(null);\n }\n\n CFFDict.prototype = {\n setByKey: function CFFDict_setByKey(key, value) {\n if (!(key in this.keyToNameMap)) {\n return false;\n }\n\n var valueLength = value.length;\n\n if (valueLength === 0) {\n return true;\n }\n\n for (var i = 0; i < valueLength; i++) {\n if (isNaN(value[i])) {\n (0, _util.warn)('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n return true;\n }\n }\n\n var type = this.types[key];\n\n if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n value = value[0];\n }\n\n this.values[key] = value;\n return true;\n },\n setByName: function CFFDict_setByName(name, value) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError(`Invalid dictionary name \"${name}\"`);\n }\n\n this.values[this.nameToKeyMap[name]] = value;\n },\n hasName: function CFFDict_hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n },\n getByName: function CFFDict_getByName(name) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError(`Invalid dictionary name ${name}\"`);\n }\n\n var key = this.nameToKeyMap[name];\n\n if (!(key in this.values)) {\n return this.defaults[key];\n }\n\n return this.values[key];\n },\n removeByName: function CFFDict_removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n };\n\n CFFDict.createTables = function CFFDict_createTables(layout) {\n var tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: []\n };\n\n for (var i = 0, ii = layout.length; i < ii; ++i) {\n var entry = layout[i];\n var key = Array.isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];\n tables.keyToNameMap[key] = entry[1];\n tables.nameToKeyMap[entry[1]] = key;\n tables.types[key] = entry[2];\n tables.defaults[key] = entry[3];\n tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n tables.order.push(key);\n }\n\n return tables;\n };\n\n return CFFDict;\n}();\n\nvar CFFTopDict = function CFFTopDictClosure() {\n var layout = [[[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null], [[12, 20], \"SyntheticBase\", \"num\", null], [0, \"version\", \"sid\", null], [1, \"Notice\", \"sid\", null], [[12, 0], \"Copyright\", \"sid\", null], [2, \"FullName\", \"sid\", null], [3, \"FamilyName\", \"sid\", null], [4, \"Weight\", \"sid\", null], [[12, 1], \"isFixedPitch\", \"num\", 0], [[12, 2], \"ItalicAngle\", \"num\", 0], [[12, 3], \"UnderlinePosition\", \"num\", -100], [[12, 4], \"UnderlineThickness\", \"num\", 50], [[12, 5], \"PaintType\", \"num\", 0], [[12, 6], \"CharstringType\", \"num\", 2], [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"], [0.001, 0, 0, 0.001, 0, 0]], [13, \"UniqueID\", \"num\", null], [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]], [[12, 8], \"StrokeWidth\", \"num\", 0], [14, \"XUID\", \"array\", null], [15, \"charset\", \"offset\", 0], [16, \"Encoding\", \"offset\", 0], [17, \"CharStrings\", \"offset\", 0], [18, \"Private\", [\"offset\", \"offset\"], null], [[12, 21], \"PostScript\", \"sid\", null], [[12, 22], \"BaseFontName\", \"sid\", null], [[12, 23], \"BaseFontBlend\", \"delta\", null], [[12, 31], \"CIDFontVersion\", \"num\", 0], [[12, 32], \"CIDFontRevision\", \"num\", 0], [[12, 33], \"CIDFontType\", \"num\", 0], [[12, 34], \"CIDCount\", \"num\", 8720], [[12, 35], \"UIDBase\", \"num\", null], [[12, 37], \"FDSelect\", \"offset\", null], [[12, 36], \"FDArray\", \"offset\", null], [[12, 38], \"FontName\", \"sid\", null]];\n var tables = null;\n\n function CFFTopDict(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n\n CFFDict.call(this, tables, strings);\n this.privateDict = null;\n }\n\n CFFTopDict.prototype = Object.create(CFFDict.prototype);\n return CFFTopDict;\n}();\n\nexports.CFFTopDict = CFFTopDict;\n\nvar CFFPrivateDict = function CFFPrivateDictClosure() {\n var layout = [[6, \"BlueValues\", \"delta\", null], [7, \"OtherBlues\", \"delta\", null], [8, \"FamilyBlues\", \"delta\", null], [9, \"FamilyOtherBlues\", \"delta\", null], [[12, 9], \"BlueScale\", \"num\", 0.039625], [[12, 10], \"BlueShift\", \"num\", 7], [[12, 11], \"BlueFuzz\", \"num\", 1], [10, \"StdHW\", \"num\", null], [11, \"StdVW\", \"num\", null], [[12, 12], \"StemSnapH\", \"delta\", null], [[12, 13], \"StemSnapV\", \"delta\", null], [[12, 14], \"ForceBold\", \"num\", 0], [[12, 17], \"LanguageGroup\", \"num\", 0], [[12, 18], \"ExpansionFactor\", \"num\", 0.06], [[12, 19], \"initialRandomSeed\", \"num\", 0], [20, \"defaultWidthX\", \"num\", 0], [21, \"nominalWidthX\", \"num\", 0], [19, \"Subrs\", \"offset\", null]];\n var tables = null;\n\n function CFFPrivateDict(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n\n CFFDict.call(this, tables, strings);\n this.subrsIndex = null;\n }\n\n CFFPrivateDict.prototype = Object.create(CFFDict.prototype);\n return CFFPrivateDict;\n}();\n\nexports.CFFPrivateDict = CFFPrivateDict;\nvar CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2\n};\n\nvar CFFCharset = function CFFCharsetClosure() {\n function CFFCharset(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n\n return CFFCharset;\n}();\n\nexports.CFFCharset = CFFCharset;\n\nvar CFFEncoding = function CFFEncodingClosure() {\n function CFFEncoding(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n\n return CFFEncoding;\n}();\n\nvar CFFFDSelect = function CFFFDSelectClosure() {\n function CFFFDSelect(format, fdSelect) {\n this.format = format;\n this.fdSelect = fdSelect;\n }\n\n CFFFDSelect.prototype = {\n getFDIndex: function CFFFDSelect_get(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n\n return this.fdSelect[glyphIndex];\n }\n };\n return CFFFDSelect;\n}();\n\nexports.CFFFDSelect = CFFFDSelect;\n\nvar CFFOffsetTracker = function CFFOffsetTrackerClosure() {\n function CFFOffsetTracker() {\n this.offsets = Object.create(null);\n }\n\n CFFOffsetTracker.prototype = {\n isTracking: function CFFOffsetTracker_isTracking(key) {\n return key in this.offsets;\n },\n track: function CFFOffsetTracker_track(key, location) {\n if (key in this.offsets) {\n throw new _util.FormatError(`Already tracking location of ${key}`);\n }\n\n this.offsets[key] = location;\n },\n offset: function CFFOffsetTracker_offset(value) {\n for (var key in this.offsets) {\n this.offsets[key] += value;\n }\n },\n setEntryLocation: function CFFOffsetTracker_setEntryLocation(key, values, output) {\n if (!(key in this.offsets)) {\n throw new _util.FormatError(`Not tracking location of ${key}`);\n }\n\n var data = output.data;\n var dataOffset = this.offsets[key];\n var size = 5;\n\n for (var i = 0, ii = values.length; i < ii; ++i) {\n var offset0 = i * size + dataOffset;\n var offset1 = offset0 + 1;\n var offset2 = offset0 + 2;\n var offset3 = offset0 + 3;\n var offset4 = offset0 + 4;\n\n if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) {\n throw new _util.FormatError(\"writing to an offset that is not empty\");\n }\n\n var value = values[i];\n data[offset0] = 0x1d;\n data[offset1] = value >> 24 & 0xff;\n data[offset2] = value >> 16 & 0xff;\n data[offset3] = value >> 8 & 0xff;\n data[offset4] = value & 0xff;\n }\n }\n };\n return CFFOffsetTracker;\n}();\n\nvar CFFCompiler = function CFFCompilerClosure() {\n function CFFCompiler(cff) {\n this.cff = cff;\n }\n\n CFFCompiler.prototype = {\n compile: function CFFCompiler_compile() {\n var cff = this.cff;\n var output = {\n data: [],\n length: 0,\n add: function CFFCompiler_add(data) {\n this.data = this.data.concat(data);\n this.length = this.data.length;\n }\n };\n var header = this.compileHeader(cff.header);\n output.add(header);\n var nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n\n if (cff.isCIDFont) {\n if (cff.topDict.hasName(\"FontMatrix\")) {\n var base = cff.topDict.getByName(\"FontMatrix\");\n cff.topDict.removeByName(\"FontMatrix\");\n\n for (var i = 0, ii = cff.fdArray.length; i < ii; i++) {\n var subDict = cff.fdArray[i];\n var matrix = base.slice(0);\n\n if (subDict.hasName(\"FontMatrix\")) {\n matrix = _util.Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n }\n\n subDict.setByName(\"FontMatrix\", matrix);\n }\n }\n }\n\n cff.topDict.setByName(\"charset\", 0);\n var compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n output.add(compiled.output);\n var topDictTracker = compiled.trackers[0];\n var stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n output.add(globalSubrIndex);\n\n if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n if (cff.encoding.predefined) {\n topDictTracker.setEntryLocation(\"Encoding\", [cff.encoding.format], output);\n } else {\n var encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n output.add(encoding);\n }\n }\n\n var charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont);\n topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n output.add(charset);\n var charStrings = this.compileCharStrings(cff.charStrings);\n topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n output.add(charStrings);\n\n if (cff.isCIDFont) {\n topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n var fdSelect = this.compileFDSelect(cff.fdSelect);\n output.add(fdSelect);\n compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n output.add(compiled.output);\n var fontDictTrackers = compiled.trackers;\n this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n }\n\n this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n output.add([0]);\n return output.data;\n },\n encodeNumber: function CFFCompiler_encodeNumber(value) {\n if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) {\n return this.encodeInteger(value);\n }\n\n return this.encodeFloat(value);\n },\n encodeFloat: function CFFCompiler_encodeFloat(num) {\n var value = num.toString();\n var m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n\n if (m) {\n var epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(num * epsilon) / epsilon).toString();\n }\n\n var nibbles = \"\";\n var i, ii;\n\n for (i = 0, ii = value.length; i < ii; ++i) {\n var a = value[i];\n\n if (a === \"e\") {\n nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n } else if (a === \".\") {\n nibbles += \"a\";\n } else if (a === \"-\") {\n nibbles += \"e\";\n } else {\n nibbles += a;\n }\n }\n\n nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n var out = [30];\n\n for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substring(i, i + 2), 16));\n }\n\n return out;\n },\n encodeInteger: function CFFCompiler_encodeInteger(value) {\n var code;\n\n if (value >= -107 && value <= 107) {\n code = [value + 139];\n } else if (value >= 108 && value <= 1131) {\n value = value - 108;\n code = [(value >> 8) + 247, value & 0xff];\n } else if (value >= -1131 && value <= -108) {\n value = -value - 108;\n code = [(value >> 8) + 251, value & 0xff];\n } else if (value >= -32768 && value <= 32767) {\n code = [0x1c, value >> 8 & 0xff, value & 0xff];\n } else {\n code = [0x1d, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff];\n }\n\n return code;\n },\n compileHeader: function CFFCompiler_compileHeader(header) {\n return [header.major, header.minor, header.hdrSize, header.offSize];\n },\n compileNameIndex: function CFFCompiler_compileNameIndex(names) {\n var nameIndex = new CFFIndex();\n\n for (var i = 0, ii = names.length; i < ii; ++i) {\n var name = names[i];\n var length = Math.min(name.length, 127);\n var sanitizedName = new Array(length);\n\n for (var j = 0; j < length; j++) {\n var char = name[j];\n\n if (char < \"!\" || char > \"~\" || char === \"[\" || char === \"]\" || char === \"(\" || char === \")\" || char === \"{\" || char === \"}\" || char === \"<\" || char === \">\" || char === \"/\" || char === \"%\") {\n char = \"_\";\n }\n\n sanitizedName[j] = char;\n }\n\n sanitizedName = sanitizedName.join(\"\");\n\n if (sanitizedName === \"\") {\n sanitizedName = \"Bad_Font_Name\";\n }\n\n nameIndex.add((0, _util.stringToBytes)(sanitizedName));\n }\n\n return this.compileIndex(nameIndex);\n },\n compileTopDicts: function CFFCompiler_compileTopDicts(dicts, length, removeCidKeys) {\n var fontDictTrackers = [];\n var fdArrayIndex = new CFFIndex();\n\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n\n if (removeCidKeys) {\n fontDict.removeByName(\"CIDFontVersion\");\n fontDict.removeByName(\"CIDFontRevision\");\n fontDict.removeByName(\"CIDFontType\");\n fontDict.removeByName(\"CIDCount\");\n fontDict.removeByName(\"UIDBase\");\n }\n\n var fontDictTracker = new CFFOffsetTracker();\n var fontDictData = this.compileDict(fontDict, fontDictTracker);\n fontDictTrackers.push(fontDictTracker);\n fdArrayIndex.add(fontDictData);\n fontDictTracker.offset(length);\n }\n\n fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n return {\n trackers: fontDictTrackers,\n output: fdArrayIndex\n };\n },\n compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts, trackers, output) {\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n var privateDict = fontDict.privateDict;\n\n if (!privateDict || !fontDict.hasName(\"Private\")) {\n throw new _util.FormatError(\"There must be a private dictionary.\");\n }\n\n var privateDictTracker = new CFFOffsetTracker();\n var privateDictData = this.compileDict(privateDict, privateDictTracker);\n var outputLength = output.length;\n privateDictTracker.offset(outputLength);\n\n if (!privateDictData.length) {\n outputLength = 0;\n }\n\n trackers[i].setEntryLocation(\"Private\", [privateDictData.length, outputLength], output);\n output.add(privateDictData);\n\n if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n var subrs = this.compileIndex(privateDict.subrsIndex);\n privateDictTracker.setEntryLocation(\"Subrs\", [privateDictData.length], output);\n output.add(subrs);\n }\n }\n },\n compileDict: function CFFCompiler_compileDict(dict, offsetTracker) {\n var out = [];\n var order = dict.order;\n\n for (var i = 0; i < order.length; ++i) {\n var key = order[i];\n\n if (!(key in dict.values)) {\n continue;\n }\n\n var values = dict.values[key];\n var types = dict.types[key];\n\n if (!Array.isArray(types)) {\n types = [types];\n }\n\n if (!Array.isArray(values)) {\n values = [values];\n }\n\n if (values.length === 0) {\n continue;\n }\n\n for (var j = 0, jj = types.length; j < jj; ++j) {\n var type = types[j];\n var value = values[j];\n\n switch (type) {\n case \"num\":\n case \"sid\":\n out = out.concat(this.encodeNumber(value));\n break;\n\n case \"offset\":\n var name = dict.keyToNameMap[key];\n\n if (!offsetTracker.isTracking(name)) {\n offsetTracker.track(name, out.length);\n }\n\n out = out.concat([0x1d, 0, 0, 0, 0]);\n break;\n\n case \"array\":\n case \"delta\":\n out = out.concat(this.encodeNumber(value));\n\n for (var k = 1, kk = values.length; k < kk; ++k) {\n out = out.concat(this.encodeNumber(values[k]));\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Unknown data type of ${type}`);\n }\n }\n\n out = out.concat(dict.opcodes[key]);\n }\n\n return out;\n },\n compileStringIndex: function CFFCompiler_compileStringIndex(strings) {\n var stringIndex = new CFFIndex();\n\n for (var i = 0, ii = strings.length; i < ii; ++i) {\n stringIndex.add((0, _util.stringToBytes)(strings[i]));\n }\n\n return this.compileIndex(stringIndex);\n },\n compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() {\n var globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n },\n compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) {\n var charStringsIndex = new CFFIndex();\n\n for (var i = 0; i < charStrings.count; i++) {\n var glyph = charStrings.get(i);\n\n if (glyph.length === 0) {\n charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n continue;\n }\n\n charStringsIndex.add(glyph);\n }\n\n return this.compileIndex(charStringsIndex);\n },\n compileCharset: function CFFCompiler_compileCharset(charset, numGlyphs, strings, isCIDFont) {\n let out;\n const numGlyphsLessNotDef = numGlyphs - 1;\n\n if (isCIDFont) {\n out = new Uint8Array([2, 0, 0, numGlyphsLessNotDef >> 8 & 0xff, numGlyphsLessNotDef & 0xff]);\n } else {\n const length = 1 + numGlyphsLessNotDef * 2;\n out = new Uint8Array(length);\n out[0] = 0;\n let charsetIndex = 0;\n const numCharsets = charset.charset.length;\n let warned = false;\n\n for (let i = 1; i < out.length; i += 2) {\n let sid = 0;\n\n if (charsetIndex < numCharsets) {\n const name = charset.charset[charsetIndex++];\n sid = strings.getSID(name);\n\n if (sid === -1) {\n sid = 0;\n\n if (!warned) {\n warned = true;\n (0, _util.warn)(`Couldn't find ${name} in CFF strings`);\n }\n }\n }\n\n out[i] = sid >> 8 & 0xff;\n out[i + 1] = sid & 0xff;\n }\n }\n\n return this.compileTypedArray(out);\n },\n compileEncoding: function CFFCompiler_compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n },\n compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) {\n const format = fdSelect.format;\n let out, i;\n\n switch (format) {\n case 0:\n out = new Uint8Array(1 + fdSelect.fdSelect.length);\n out[0] = format;\n\n for (i = 0; i < fdSelect.fdSelect.length; i++) {\n out[i + 1] = fdSelect.fdSelect[i];\n }\n\n break;\n\n case 3:\n const start = 0;\n let lastFD = fdSelect.fdSelect[0];\n const ranges = [format, 0, 0, start >> 8 & 0xff, start & 0xff, lastFD];\n\n for (i = 1; i < fdSelect.fdSelect.length; i++) {\n const currentFD = fdSelect.fdSelect[i];\n\n if (currentFD !== lastFD) {\n ranges.push(i >> 8 & 0xff, i & 0xff, currentFD);\n lastFD = currentFD;\n }\n }\n\n const numRanges = (ranges.length - 3) / 3;\n ranges[1] = numRanges >> 8 & 0xff;\n ranges[2] = numRanges & 0xff;\n ranges.push(i >> 8 & 0xff, i & 0xff);\n out = new Uint8Array(ranges);\n break;\n }\n\n return this.compileTypedArray(out);\n },\n compileTypedArray: function CFFCompiler_compileTypedArray(data) {\n var out = [];\n\n for (var i = 0, ii = data.length; i < ii; ++i) {\n out[i] = data[i];\n }\n\n return out;\n },\n compileIndex: function CFFCompiler_compileIndex(index, trackers) {\n trackers = trackers || [];\n var objects = index.objects;\n var count = objects.length;\n\n if (count === 0) {\n return [0, 0, 0];\n }\n\n var data = [count >> 8 & 0xff, count & 0xff];\n var lastOffset = 1,\n i;\n\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n\n var offsetSize;\n\n if (lastOffset < 0x100) {\n offsetSize = 1;\n } else if (lastOffset < 0x10000) {\n offsetSize = 2;\n } else if (lastOffset < 0x1000000) {\n offsetSize = 3;\n } else {\n offsetSize = 4;\n }\n\n data.push(offsetSize);\n var relativeOffset = 1;\n\n for (i = 0; i < count + 1; i++) {\n if (offsetSize === 1) {\n data.push(relativeOffset & 0xff);\n } else if (offsetSize === 2) {\n data.push(relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n } else if (offsetSize === 3) {\n data.push(relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n } else {\n data.push(relativeOffset >>> 24 & 0xff, relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n }\n\n if (objects[i]) {\n relativeOffset += objects[i].length;\n }\n }\n\n for (i = 0; i < count; i++) {\n if (trackers[i]) {\n trackers[i].offset(data.length);\n }\n\n for (var j = 0, jj = objects[i].length; j < jj; j++) {\n data.push(objects[i][j]);\n }\n }\n\n return data;\n }\n };\n return CFFCompiler;\n}();\n\nexports.CFFCompiler = CFFCompiler;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ExpertSubsetCharset = exports.ExpertCharset = exports.ISOAdobeCharset = void 0;\nconst ISOAdobeCharset = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"];\nexports.ISOAdobeCharset = ISOAdobeCharset;\nconst ExpertCharset = [\".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\"];\nexports.ExpertCharset = ExpertCharset;\nconst ExpertSubsetCharset = [\".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\", \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\"];\nexports.ExpertSubsetCharset = ExpertSubsetCharset;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getEncoding = getEncoding;\nexports.ExpertEncoding = exports.ZapfDingbatsEncoding = exports.SymbolSetEncoding = exports.MacRomanEncoding = exports.StandardEncoding = exports.WinAnsiEncoding = void 0;\nconst ExpertEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\", \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\"];\nexports.ExpertEncoding = ExpertEncoding;\nconst MacExpertEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\", \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\", \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\", \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\", \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\", \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\", \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\", \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\", \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\", \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\", \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\", \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\", \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\", \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\", \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\", \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\", \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\", \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\", \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\nconst MacRomanEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\", \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\"];\nexports.MacRomanEncoding = MacRomanEncoding;\nconst StandardEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\", \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\", \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\", \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\", \"\", \"\", \"\"];\nexports.StandardEncoding = StandardEncoding;\nconst WinAnsiEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\", \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\", \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\", \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\", \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\", \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\", \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\", \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\", \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\", \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\", \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\", \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\", \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\", \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\", \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\", \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\", \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\", \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\", \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\", \"ydieresis\"];\nexports.WinAnsiEncoding = WinAnsiEncoding;\nconst SymbolSetEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\", \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\", \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\", \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\", \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\", \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\", \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\", \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\", \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\", \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\", \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\", \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\", \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\", \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\", \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\", \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\", \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\", \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\", \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\", \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\", \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\", \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\", \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\", \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\", \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\", \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\", \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\", \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\", \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\", \"bracerightbt\", \"\"];\nexports.SymbolSetEncoding = SymbolSetEncoding;\nconst ZapfDingbatsEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"a1\", \"a2\", \"a202\", \"a3\", \"a4\", \"a5\", \"a119\", \"a118\", \"a117\", \"a11\", \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a105\", \"a17\", \"a18\", \"a19\", \"a20\", \"a21\", \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a6\", \"a7\", \"a8\", \"a9\", \"a10\", \"a29\", \"a30\", \"a31\", \"a32\", \"a33\", \"a34\", \"a35\", \"a36\", \"a37\", \"a38\", \"a39\", \"a40\", \"a41\", \"a42\", \"a43\", \"a44\", \"a45\", \"a46\", \"a47\", \"a48\", \"a49\", \"a50\", \"a51\", \"a52\", \"a53\", \"a54\", \"a55\", \"a56\", \"a57\", \"a58\", \"a59\", \"a60\", \"a61\", \"a62\", \"a63\", \"a64\", \"a65\", \"a66\", \"a67\", \"a68\", \"a69\", \"a70\", \"a71\", \"a72\", \"a73\", \"a74\", \"a203\", \"a75\", \"a204\", \"a76\", \"a77\", \"a78\", \"a79\", \"a81\", \"a82\", \"a83\", \"a84\", \"a97\", \"a98\", \"a99\", \"a100\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\", \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"a101\", \"a102\", \"a103\", \"a104\", \"a106\", \"a107\", \"a108\", \"a112\", \"a111\", \"a110\", \"a109\", \"a120\", \"a121\", \"a122\", \"a123\", \"a124\", \"a125\", \"a126\", \"a127\", \"a128\", \"a129\", \"a130\", \"a131\", \"a132\", \"a133\", \"a134\", \"a135\", \"a136\", \"a137\", \"a138\", \"a139\", \"a140\", \"a141\", \"a142\", \"a143\", \"a144\", \"a145\", \"a146\", \"a147\", \"a148\", \"a149\", \"a150\", \"a151\", \"a152\", \"a153\", \"a154\", \"a155\", \"a156\", \"a157\", \"a158\", \"a159\", \"a160\", \"a161\", \"a163\", \"a164\", \"a196\", \"a165\", \"a192\", \"a166\", \"a167\", \"a168\", \"a169\", \"a170\", \"a171\", \"a172\", \"a173\", \"a162\", \"a174\", \"a175\", \"a176\", \"a177\", \"a178\", \"a179\", \"a193\", \"a180\", \"a199\", \"a181\", \"a200\", \"a182\", \"\", \"a201\", \"a183\", \"a184\", \"a197\", \"a185\", \"a194\", \"a198\", \"a186\", \"a195\", \"a187\", \"a188\", \"a189\", \"a190\", \"a191\", \"\"];\nexports.ZapfDingbatsEncoding = ZapfDingbatsEncoding;\n\nfunction getEncoding(encodingName) {\n switch (encodingName) {\n case \"WinAnsiEncoding\":\n return WinAnsiEncoding;\n\n case \"StandardEncoding\":\n return StandardEncoding;\n\n case \"MacRomanEncoding\":\n return MacRomanEncoding;\n\n case \"SymbolSetEncoding\":\n return SymbolSetEncoding;\n\n case \"ZapfDingbatsEncoding\":\n return ZapfDingbatsEncoding;\n\n case \"ExpertEncoding\":\n return ExpertEncoding;\n\n case \"MacExpertEncoding\":\n return MacExpertEncoding;\n\n default:\n return null;\n }\n}\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(8).getLookupTableFactory;\nvar getGlyphsUnicode = getLookupTableFactory(function (t) {\n t.A = 0x0041;\n t.AE = 0x00c6;\n t.AEacute = 0x01fc;\n t.AEmacron = 0x01e2;\n t.AEsmall = 0xf7e6;\n t.Aacute = 0x00c1;\n t.Aacutesmall = 0xf7e1;\n t.Abreve = 0x0102;\n t.Abreveacute = 0x1eae;\n t.Abrevecyrillic = 0x04d0;\n t.Abrevedotbelow = 0x1eb6;\n t.Abrevegrave = 0x1eb0;\n t.Abrevehookabove = 0x1eb2;\n t.Abrevetilde = 0x1eb4;\n t.Acaron = 0x01cd;\n t.Acircle = 0x24b6;\n t.Acircumflex = 0x00c2;\n t.Acircumflexacute = 0x1ea4;\n t.Acircumflexdotbelow = 0x1eac;\n t.Acircumflexgrave = 0x1ea6;\n t.Acircumflexhookabove = 0x1ea8;\n t.Acircumflexsmall = 0xf7e2;\n t.Acircumflextilde = 0x1eaa;\n t.Acute = 0xf6c9;\n t.Acutesmall = 0xf7b4;\n t.Acyrillic = 0x0410;\n t.Adblgrave = 0x0200;\n t.Adieresis = 0x00c4;\n t.Adieresiscyrillic = 0x04d2;\n t.Adieresismacron = 0x01de;\n t.Adieresissmall = 0xf7e4;\n t.Adotbelow = 0x1ea0;\n t.Adotmacron = 0x01e0;\n t.Agrave = 0x00c0;\n t.Agravesmall = 0xf7e0;\n t.Ahookabove = 0x1ea2;\n t.Aiecyrillic = 0x04d4;\n t.Ainvertedbreve = 0x0202;\n t.Alpha = 0x0391;\n t.Alphatonos = 0x0386;\n t.Amacron = 0x0100;\n t.Amonospace = 0xff21;\n t.Aogonek = 0x0104;\n t.Aring = 0x00c5;\n t.Aringacute = 0x01fa;\n t.Aringbelow = 0x1e00;\n t.Aringsmall = 0xf7e5;\n t.Asmall = 0xf761;\n t.Atilde = 0x00c3;\n t.Atildesmall = 0xf7e3;\n t.Aybarmenian = 0x0531;\n t.B = 0x0042;\n t.Bcircle = 0x24b7;\n t.Bdotaccent = 0x1e02;\n t.Bdotbelow = 0x1e04;\n t.Becyrillic = 0x0411;\n t.Benarmenian = 0x0532;\n t.Beta = 0x0392;\n t.Bhook = 0x0181;\n t.Blinebelow = 0x1e06;\n t.Bmonospace = 0xff22;\n t.Brevesmall = 0xf6f4;\n t.Bsmall = 0xf762;\n t.Btopbar = 0x0182;\n t.C = 0x0043;\n t.Caarmenian = 0x053e;\n t.Cacute = 0x0106;\n t.Caron = 0xf6ca;\n t.Caronsmall = 0xf6f5;\n t.Ccaron = 0x010c;\n t.Ccedilla = 0x00c7;\n t.Ccedillaacute = 0x1e08;\n t.Ccedillasmall = 0xf7e7;\n t.Ccircle = 0x24b8;\n t.Ccircumflex = 0x0108;\n t.Cdot = 0x010a;\n t.Cdotaccent = 0x010a;\n t.Cedillasmall = 0xf7b8;\n t.Chaarmenian = 0x0549;\n t.Cheabkhasiancyrillic = 0x04bc;\n t.Checyrillic = 0x0427;\n t.Chedescenderabkhasiancyrillic = 0x04be;\n t.Chedescendercyrillic = 0x04b6;\n t.Chedieresiscyrillic = 0x04f4;\n t.Cheharmenian = 0x0543;\n t.Chekhakassiancyrillic = 0x04cb;\n t.Cheverticalstrokecyrillic = 0x04b8;\n t.Chi = 0x03a7;\n t.Chook = 0x0187;\n t.Circumflexsmall = 0xf6f6;\n t.Cmonospace = 0xff23;\n t.Coarmenian = 0x0551;\n t.Csmall = 0xf763;\n t.D = 0x0044;\n t.DZ = 0x01f1;\n t.DZcaron = 0x01c4;\n t.Daarmenian = 0x0534;\n t.Dafrican = 0x0189;\n t.Dcaron = 0x010e;\n t.Dcedilla = 0x1e10;\n t.Dcircle = 0x24b9;\n t.Dcircumflexbelow = 0x1e12;\n t.Dcroat = 0x0110;\n t.Ddotaccent = 0x1e0a;\n t.Ddotbelow = 0x1e0c;\n t.Decyrillic = 0x0414;\n t.Deicoptic = 0x03ee;\n t.Delta = 0x2206;\n t.Deltagreek = 0x0394;\n t.Dhook = 0x018a;\n t.Dieresis = 0xf6cb;\n t.DieresisAcute = 0xf6cc;\n t.DieresisGrave = 0xf6cd;\n t.Dieresissmall = 0xf7a8;\n t.Digammagreek = 0x03dc;\n t.Djecyrillic = 0x0402;\n t.Dlinebelow = 0x1e0e;\n t.Dmonospace = 0xff24;\n t.Dotaccentsmall = 0xf6f7;\n t.Dslash = 0x0110;\n t.Dsmall = 0xf764;\n t.Dtopbar = 0x018b;\n t.Dz = 0x01f2;\n t.Dzcaron = 0x01c5;\n t.Dzeabkhasiancyrillic = 0x04e0;\n t.Dzecyrillic = 0x0405;\n t.Dzhecyrillic = 0x040f;\n t.E = 0x0045;\n t.Eacute = 0x00c9;\n t.Eacutesmall = 0xf7e9;\n t.Ebreve = 0x0114;\n t.Ecaron = 0x011a;\n t.Ecedillabreve = 0x1e1c;\n t.Echarmenian = 0x0535;\n t.Ecircle = 0x24ba;\n t.Ecircumflex = 0x00ca;\n t.Ecircumflexacute = 0x1ebe;\n t.Ecircumflexbelow = 0x1e18;\n t.Ecircumflexdotbelow = 0x1ec6;\n t.Ecircumflexgrave = 0x1ec0;\n t.Ecircumflexhookabove = 0x1ec2;\n t.Ecircumflexsmall = 0xf7ea;\n t.Ecircumflextilde = 0x1ec4;\n t.Ecyrillic = 0x0404;\n t.Edblgrave = 0x0204;\n t.Edieresis = 0x00cb;\n t.Edieresissmall = 0xf7eb;\n t.Edot = 0x0116;\n t.Edotaccent = 0x0116;\n t.Edotbelow = 0x1eb8;\n t.Efcyrillic = 0x0424;\n t.Egrave = 0x00c8;\n t.Egravesmall = 0xf7e8;\n t.Eharmenian = 0x0537;\n t.Ehookabove = 0x1eba;\n t.Eightroman = 0x2167;\n t.Einvertedbreve = 0x0206;\n t.Eiotifiedcyrillic = 0x0464;\n t.Elcyrillic = 0x041b;\n t.Elevenroman = 0x216a;\n t.Emacron = 0x0112;\n t.Emacronacute = 0x1e16;\n t.Emacrongrave = 0x1e14;\n t.Emcyrillic = 0x041c;\n t.Emonospace = 0xff25;\n t.Encyrillic = 0x041d;\n t.Endescendercyrillic = 0x04a2;\n t.Eng = 0x014a;\n t.Enghecyrillic = 0x04a4;\n t.Enhookcyrillic = 0x04c7;\n t.Eogonek = 0x0118;\n t.Eopen = 0x0190;\n t.Epsilon = 0x0395;\n t.Epsilontonos = 0x0388;\n t.Ercyrillic = 0x0420;\n t.Ereversed = 0x018e;\n t.Ereversedcyrillic = 0x042d;\n t.Escyrillic = 0x0421;\n t.Esdescendercyrillic = 0x04aa;\n t.Esh = 0x01a9;\n t.Esmall = 0xf765;\n t.Eta = 0x0397;\n t.Etarmenian = 0x0538;\n t.Etatonos = 0x0389;\n t.Eth = 0x00d0;\n t.Ethsmall = 0xf7f0;\n t.Etilde = 0x1ebc;\n t.Etildebelow = 0x1e1a;\n t.Euro = 0x20ac;\n t.Ezh = 0x01b7;\n t.Ezhcaron = 0x01ee;\n t.Ezhreversed = 0x01b8;\n t.F = 0x0046;\n t.Fcircle = 0x24bb;\n t.Fdotaccent = 0x1e1e;\n t.Feharmenian = 0x0556;\n t.Feicoptic = 0x03e4;\n t.Fhook = 0x0191;\n t.Fitacyrillic = 0x0472;\n t.Fiveroman = 0x2164;\n t.Fmonospace = 0xff26;\n t.Fourroman = 0x2163;\n t.Fsmall = 0xf766;\n t.G = 0x0047;\n t.GBsquare = 0x3387;\n t.Gacute = 0x01f4;\n t.Gamma = 0x0393;\n t.Gammaafrican = 0x0194;\n t.Gangiacoptic = 0x03ea;\n t.Gbreve = 0x011e;\n t.Gcaron = 0x01e6;\n t.Gcedilla = 0x0122;\n t.Gcircle = 0x24bc;\n t.Gcircumflex = 0x011c;\n t.Gcommaaccent = 0x0122;\n t.Gdot = 0x0120;\n t.Gdotaccent = 0x0120;\n t.Gecyrillic = 0x0413;\n t.Ghadarmenian = 0x0542;\n t.Ghemiddlehookcyrillic = 0x0494;\n t.Ghestrokecyrillic = 0x0492;\n t.Gheupturncyrillic = 0x0490;\n t.Ghook = 0x0193;\n t.Gimarmenian = 0x0533;\n t.Gjecyrillic = 0x0403;\n t.Gmacron = 0x1e20;\n t.Gmonospace = 0xff27;\n t.Grave = 0xf6ce;\n t.Gravesmall = 0xf760;\n t.Gsmall = 0xf767;\n t.Gsmallhook = 0x029b;\n t.Gstroke = 0x01e4;\n t.H = 0x0048;\n t.H18533 = 0x25cf;\n t.H18543 = 0x25aa;\n t.H18551 = 0x25ab;\n t.H22073 = 0x25a1;\n t.HPsquare = 0x33cb;\n t.Haabkhasiancyrillic = 0x04a8;\n t.Hadescendercyrillic = 0x04b2;\n t.Hardsigncyrillic = 0x042a;\n t.Hbar = 0x0126;\n t.Hbrevebelow = 0x1e2a;\n t.Hcedilla = 0x1e28;\n t.Hcircle = 0x24bd;\n t.Hcircumflex = 0x0124;\n t.Hdieresis = 0x1e26;\n t.Hdotaccent = 0x1e22;\n t.Hdotbelow = 0x1e24;\n t.Hmonospace = 0xff28;\n t.Hoarmenian = 0x0540;\n t.Horicoptic = 0x03e8;\n t.Hsmall = 0xf768;\n t.Hungarumlaut = 0xf6cf;\n t.Hungarumlautsmall = 0xf6f8;\n t.Hzsquare = 0x3390;\n t.I = 0x0049;\n t.IAcyrillic = 0x042f;\n t.IJ = 0x0132;\n t.IUcyrillic = 0x042e;\n t.Iacute = 0x00cd;\n t.Iacutesmall = 0xf7ed;\n t.Ibreve = 0x012c;\n t.Icaron = 0x01cf;\n t.Icircle = 0x24be;\n t.Icircumflex = 0x00ce;\n t.Icircumflexsmall = 0xf7ee;\n t.Icyrillic = 0x0406;\n t.Idblgrave = 0x0208;\n t.Idieresis = 0x00cf;\n t.Idieresisacute = 0x1e2e;\n t.Idieresiscyrillic = 0x04e4;\n t.Idieresissmall = 0xf7ef;\n t.Idot = 0x0130;\n t.Idotaccent = 0x0130;\n t.Idotbelow = 0x1eca;\n t.Iebrevecyrillic = 0x04d6;\n t.Iecyrillic = 0x0415;\n t.Ifraktur = 0x2111;\n t.Igrave = 0x00cc;\n t.Igravesmall = 0xf7ec;\n t.Ihookabove = 0x1ec8;\n t.Iicyrillic = 0x0418;\n t.Iinvertedbreve = 0x020a;\n t.Iishortcyrillic = 0x0419;\n t.Imacron = 0x012a;\n t.Imacroncyrillic = 0x04e2;\n t.Imonospace = 0xff29;\n t.Iniarmenian = 0x053b;\n t.Iocyrillic = 0x0401;\n t.Iogonek = 0x012e;\n t.Iota = 0x0399;\n t.Iotaafrican = 0x0196;\n t.Iotadieresis = 0x03aa;\n t.Iotatonos = 0x038a;\n t.Ismall = 0xf769;\n t.Istroke = 0x0197;\n t.Itilde = 0x0128;\n t.Itildebelow = 0x1e2c;\n t.Izhitsacyrillic = 0x0474;\n t.Izhitsadblgravecyrillic = 0x0476;\n t.J = 0x004a;\n t.Jaarmenian = 0x0541;\n t.Jcircle = 0x24bf;\n t.Jcircumflex = 0x0134;\n t.Jecyrillic = 0x0408;\n t.Jheharmenian = 0x054b;\n t.Jmonospace = 0xff2a;\n t.Jsmall = 0xf76a;\n t.K = 0x004b;\n t.KBsquare = 0x3385;\n t.KKsquare = 0x33cd;\n t.Kabashkircyrillic = 0x04a0;\n t.Kacute = 0x1e30;\n t.Kacyrillic = 0x041a;\n t.Kadescendercyrillic = 0x049a;\n t.Kahookcyrillic = 0x04c3;\n t.Kappa = 0x039a;\n t.Kastrokecyrillic = 0x049e;\n t.Kaverticalstrokecyrillic = 0x049c;\n t.Kcaron = 0x01e8;\n t.Kcedilla = 0x0136;\n t.Kcircle = 0x24c0;\n t.Kcommaaccent = 0x0136;\n t.Kdotbelow = 0x1e32;\n t.Keharmenian = 0x0554;\n t.Kenarmenian = 0x053f;\n t.Khacyrillic = 0x0425;\n t.Kheicoptic = 0x03e6;\n t.Khook = 0x0198;\n t.Kjecyrillic = 0x040c;\n t.Klinebelow = 0x1e34;\n t.Kmonospace = 0xff2b;\n t.Koppacyrillic = 0x0480;\n t.Koppagreek = 0x03de;\n t.Ksicyrillic = 0x046e;\n t.Ksmall = 0xf76b;\n t.L = 0x004c;\n t.LJ = 0x01c7;\n t.LL = 0xf6bf;\n t.Lacute = 0x0139;\n t.Lambda = 0x039b;\n t.Lcaron = 0x013d;\n t.Lcedilla = 0x013b;\n t.Lcircle = 0x24c1;\n t.Lcircumflexbelow = 0x1e3c;\n t.Lcommaaccent = 0x013b;\n t.Ldot = 0x013f;\n t.Ldotaccent = 0x013f;\n t.Ldotbelow = 0x1e36;\n t.Ldotbelowmacron = 0x1e38;\n t.Liwnarmenian = 0x053c;\n t.Lj = 0x01c8;\n t.Ljecyrillic = 0x0409;\n t.Llinebelow = 0x1e3a;\n t.Lmonospace = 0xff2c;\n t.Lslash = 0x0141;\n t.Lslashsmall = 0xf6f9;\n t.Lsmall = 0xf76c;\n t.M = 0x004d;\n t.MBsquare = 0x3386;\n t.Macron = 0xf6d0;\n t.Macronsmall = 0xf7af;\n t.Macute = 0x1e3e;\n t.Mcircle = 0x24c2;\n t.Mdotaccent = 0x1e40;\n t.Mdotbelow = 0x1e42;\n t.Menarmenian = 0x0544;\n t.Mmonospace = 0xff2d;\n t.Msmall = 0xf76d;\n t.Mturned = 0x019c;\n t.Mu = 0x039c;\n t.N = 0x004e;\n t.NJ = 0x01ca;\n t.Nacute = 0x0143;\n t.Ncaron = 0x0147;\n t.Ncedilla = 0x0145;\n t.Ncircle = 0x24c3;\n t.Ncircumflexbelow = 0x1e4a;\n t.Ncommaaccent = 0x0145;\n t.Ndotaccent = 0x1e44;\n t.Ndotbelow = 0x1e46;\n t.Nhookleft = 0x019d;\n t.Nineroman = 0x2168;\n t.Nj = 0x01cb;\n t.Njecyrillic = 0x040a;\n t.Nlinebelow = 0x1e48;\n t.Nmonospace = 0xff2e;\n t.Nowarmenian = 0x0546;\n t.Nsmall = 0xf76e;\n t.Ntilde = 0x00d1;\n t.Ntildesmall = 0xf7f1;\n t.Nu = 0x039d;\n t.O = 0x004f;\n t.OE = 0x0152;\n t.OEsmall = 0xf6fa;\n t.Oacute = 0x00d3;\n t.Oacutesmall = 0xf7f3;\n t.Obarredcyrillic = 0x04e8;\n t.Obarreddieresiscyrillic = 0x04ea;\n t.Obreve = 0x014e;\n t.Ocaron = 0x01d1;\n t.Ocenteredtilde = 0x019f;\n t.Ocircle = 0x24c4;\n t.Ocircumflex = 0x00d4;\n t.Ocircumflexacute = 0x1ed0;\n t.Ocircumflexdotbelow = 0x1ed8;\n t.Ocircumflexgrave = 0x1ed2;\n t.Ocircumflexhookabove = 0x1ed4;\n t.Ocircumflexsmall = 0xf7f4;\n t.Ocircumflextilde = 0x1ed6;\n t.Ocyrillic = 0x041e;\n t.Odblacute = 0x0150;\n t.Odblgrave = 0x020c;\n t.Odieresis = 0x00d6;\n t.Odieresiscyrillic = 0x04e6;\n t.Odieresissmall = 0xf7f6;\n t.Odotbelow = 0x1ecc;\n t.Ogoneksmall = 0xf6fb;\n t.Ograve = 0x00d2;\n t.Ogravesmall = 0xf7f2;\n t.Oharmenian = 0x0555;\n t.Ohm = 0x2126;\n t.Ohookabove = 0x1ece;\n t.Ohorn = 0x01a0;\n t.Ohornacute = 0x1eda;\n t.Ohorndotbelow = 0x1ee2;\n t.Ohorngrave = 0x1edc;\n t.Ohornhookabove = 0x1ede;\n t.Ohorntilde = 0x1ee0;\n t.Ohungarumlaut = 0x0150;\n t.Oi = 0x01a2;\n t.Oinvertedbreve = 0x020e;\n t.Omacron = 0x014c;\n t.Omacronacute = 0x1e52;\n t.Omacrongrave = 0x1e50;\n t.Omega = 0x2126;\n t.Omegacyrillic = 0x0460;\n t.Omegagreek = 0x03a9;\n t.Omegaroundcyrillic = 0x047a;\n t.Omegatitlocyrillic = 0x047c;\n t.Omegatonos = 0x038f;\n t.Omicron = 0x039f;\n t.Omicrontonos = 0x038c;\n t.Omonospace = 0xff2f;\n t.Oneroman = 0x2160;\n t.Oogonek = 0x01ea;\n t.Oogonekmacron = 0x01ec;\n t.Oopen = 0x0186;\n t.Oslash = 0x00d8;\n t.Oslashacute = 0x01fe;\n t.Oslashsmall = 0xf7f8;\n t.Osmall = 0xf76f;\n t.Ostrokeacute = 0x01fe;\n t.Otcyrillic = 0x047e;\n t.Otilde = 0x00d5;\n t.Otildeacute = 0x1e4c;\n t.Otildedieresis = 0x1e4e;\n t.Otildesmall = 0xf7f5;\n t.P = 0x0050;\n t.Pacute = 0x1e54;\n t.Pcircle = 0x24c5;\n t.Pdotaccent = 0x1e56;\n t.Pecyrillic = 0x041f;\n t.Peharmenian = 0x054a;\n t.Pemiddlehookcyrillic = 0x04a6;\n t.Phi = 0x03a6;\n t.Phook = 0x01a4;\n t.Pi = 0x03a0;\n t.Piwrarmenian = 0x0553;\n t.Pmonospace = 0xff30;\n t.Psi = 0x03a8;\n t.Psicyrillic = 0x0470;\n t.Psmall = 0xf770;\n t.Q = 0x0051;\n t.Qcircle = 0x24c6;\n t.Qmonospace = 0xff31;\n t.Qsmall = 0xf771;\n t.R = 0x0052;\n t.Raarmenian = 0x054c;\n t.Racute = 0x0154;\n t.Rcaron = 0x0158;\n t.Rcedilla = 0x0156;\n t.Rcircle = 0x24c7;\n t.Rcommaaccent = 0x0156;\n t.Rdblgrave = 0x0210;\n t.Rdotaccent = 0x1e58;\n t.Rdotbelow = 0x1e5a;\n t.Rdotbelowmacron = 0x1e5c;\n t.Reharmenian = 0x0550;\n t.Rfraktur = 0x211c;\n t.Rho = 0x03a1;\n t.Ringsmall = 0xf6fc;\n t.Rinvertedbreve = 0x0212;\n t.Rlinebelow = 0x1e5e;\n t.Rmonospace = 0xff32;\n t.Rsmall = 0xf772;\n t.Rsmallinverted = 0x0281;\n t.Rsmallinvertedsuperior = 0x02b6;\n t.S = 0x0053;\n t.SF010000 = 0x250c;\n t.SF020000 = 0x2514;\n t.SF030000 = 0x2510;\n t.SF040000 = 0x2518;\n t.SF050000 = 0x253c;\n t.SF060000 = 0x252c;\n t.SF070000 = 0x2534;\n t.SF080000 = 0x251c;\n t.SF090000 = 0x2524;\n t.SF100000 = 0x2500;\n t.SF110000 = 0x2502;\n t.SF190000 = 0x2561;\n t.SF200000 = 0x2562;\n t.SF210000 = 0x2556;\n t.SF220000 = 0x2555;\n t.SF230000 = 0x2563;\n t.SF240000 = 0x2551;\n t.SF250000 = 0x2557;\n t.SF260000 = 0x255d;\n t.SF270000 = 0x255c;\n t.SF280000 = 0x255b;\n t.SF360000 = 0x255e;\n t.SF370000 = 0x255f;\n t.SF380000 = 0x255a;\n t.SF390000 = 0x2554;\n t.SF400000 = 0x2569;\n t.SF410000 = 0x2566;\n t.SF420000 = 0x2560;\n t.SF430000 = 0x2550;\n t.SF440000 = 0x256c;\n t.SF450000 = 0x2567;\n t.SF460000 = 0x2568;\n t.SF470000 = 0x2564;\n t.SF480000 = 0x2565;\n t.SF490000 = 0x2559;\n t.SF500000 = 0x2558;\n t.SF510000 = 0x2552;\n t.SF520000 = 0x2553;\n t.SF530000 = 0x256b;\n t.SF540000 = 0x256a;\n t.Sacute = 0x015a;\n t.Sacutedotaccent = 0x1e64;\n t.Sampigreek = 0x03e0;\n t.Scaron = 0x0160;\n t.Scarondotaccent = 0x1e66;\n t.Scaronsmall = 0xf6fd;\n t.Scedilla = 0x015e;\n t.Schwa = 0x018f;\n t.Schwacyrillic = 0x04d8;\n t.Schwadieresiscyrillic = 0x04da;\n t.Scircle = 0x24c8;\n t.Scircumflex = 0x015c;\n t.Scommaaccent = 0x0218;\n t.Sdotaccent = 0x1e60;\n t.Sdotbelow = 0x1e62;\n t.Sdotbelowdotaccent = 0x1e68;\n t.Seharmenian = 0x054d;\n t.Sevenroman = 0x2166;\n t.Shaarmenian = 0x0547;\n t.Shacyrillic = 0x0428;\n t.Shchacyrillic = 0x0429;\n t.Sheicoptic = 0x03e2;\n t.Shhacyrillic = 0x04ba;\n t.Shimacoptic = 0x03ec;\n t.Sigma = 0x03a3;\n t.Sixroman = 0x2165;\n t.Smonospace = 0xff33;\n t.Softsigncyrillic = 0x042c;\n t.Ssmall = 0xf773;\n t.Stigmagreek = 0x03da;\n t.T = 0x0054;\n t.Tau = 0x03a4;\n t.Tbar = 0x0166;\n t.Tcaron = 0x0164;\n t.Tcedilla = 0x0162;\n t.Tcircle = 0x24c9;\n t.Tcircumflexbelow = 0x1e70;\n t.Tcommaaccent = 0x0162;\n t.Tdotaccent = 0x1e6a;\n t.Tdotbelow = 0x1e6c;\n t.Tecyrillic = 0x0422;\n t.Tedescendercyrillic = 0x04ac;\n t.Tenroman = 0x2169;\n t.Tetsecyrillic = 0x04b4;\n t.Theta = 0x0398;\n t.Thook = 0x01ac;\n t.Thorn = 0x00de;\n t.Thornsmall = 0xf7fe;\n t.Threeroman = 0x2162;\n t.Tildesmall = 0xf6fe;\n t.Tiwnarmenian = 0x054f;\n t.Tlinebelow = 0x1e6e;\n t.Tmonospace = 0xff34;\n t.Toarmenian = 0x0539;\n t.Tonefive = 0x01bc;\n t.Tonesix = 0x0184;\n t.Tonetwo = 0x01a7;\n t.Tretroflexhook = 0x01ae;\n t.Tsecyrillic = 0x0426;\n t.Tshecyrillic = 0x040b;\n t.Tsmall = 0xf774;\n t.Twelveroman = 0x216b;\n t.Tworoman = 0x2161;\n t.U = 0x0055;\n t.Uacute = 0x00da;\n t.Uacutesmall = 0xf7fa;\n t.Ubreve = 0x016c;\n t.Ucaron = 0x01d3;\n t.Ucircle = 0x24ca;\n t.Ucircumflex = 0x00db;\n t.Ucircumflexbelow = 0x1e76;\n t.Ucircumflexsmall = 0xf7fb;\n t.Ucyrillic = 0x0423;\n t.Udblacute = 0x0170;\n t.Udblgrave = 0x0214;\n t.Udieresis = 0x00dc;\n t.Udieresisacute = 0x01d7;\n t.Udieresisbelow = 0x1e72;\n t.Udieresiscaron = 0x01d9;\n t.Udieresiscyrillic = 0x04f0;\n t.Udieresisgrave = 0x01db;\n t.Udieresismacron = 0x01d5;\n t.Udieresissmall = 0xf7fc;\n t.Udotbelow = 0x1ee4;\n t.Ugrave = 0x00d9;\n t.Ugravesmall = 0xf7f9;\n t.Uhookabove = 0x1ee6;\n t.Uhorn = 0x01af;\n t.Uhornacute = 0x1ee8;\n t.Uhorndotbelow = 0x1ef0;\n t.Uhorngrave = 0x1eea;\n t.Uhornhookabove = 0x1eec;\n t.Uhorntilde = 0x1eee;\n t.Uhungarumlaut = 0x0170;\n t.Uhungarumlautcyrillic = 0x04f2;\n t.Uinvertedbreve = 0x0216;\n t.Ukcyrillic = 0x0478;\n t.Umacron = 0x016a;\n t.Umacroncyrillic = 0x04ee;\n t.Umacrondieresis = 0x1e7a;\n t.Umonospace = 0xff35;\n t.Uogonek = 0x0172;\n t.Upsilon = 0x03a5;\n t.Upsilon1 = 0x03d2;\n t.Upsilonacutehooksymbolgreek = 0x03d3;\n t.Upsilonafrican = 0x01b1;\n t.Upsilondieresis = 0x03ab;\n t.Upsilondieresishooksymbolgreek = 0x03d4;\n t.Upsilonhooksymbol = 0x03d2;\n t.Upsilontonos = 0x038e;\n t.Uring = 0x016e;\n t.Ushortcyrillic = 0x040e;\n t.Usmall = 0xf775;\n t.Ustraightcyrillic = 0x04ae;\n t.Ustraightstrokecyrillic = 0x04b0;\n t.Utilde = 0x0168;\n t.Utildeacute = 0x1e78;\n t.Utildebelow = 0x1e74;\n t.V = 0x0056;\n t.Vcircle = 0x24cb;\n t.Vdotbelow = 0x1e7e;\n t.Vecyrillic = 0x0412;\n t.Vewarmenian = 0x054e;\n t.Vhook = 0x01b2;\n t.Vmonospace = 0xff36;\n t.Voarmenian = 0x0548;\n t.Vsmall = 0xf776;\n t.Vtilde = 0x1e7c;\n t.W = 0x0057;\n t.Wacute = 0x1e82;\n t.Wcircle = 0x24cc;\n t.Wcircumflex = 0x0174;\n t.Wdieresis = 0x1e84;\n t.Wdotaccent = 0x1e86;\n t.Wdotbelow = 0x1e88;\n t.Wgrave = 0x1e80;\n t.Wmonospace = 0xff37;\n t.Wsmall = 0xf777;\n t.X = 0x0058;\n t.Xcircle = 0x24cd;\n t.Xdieresis = 0x1e8c;\n t.Xdotaccent = 0x1e8a;\n t.Xeharmenian = 0x053d;\n t.Xi = 0x039e;\n t.Xmonospace = 0xff38;\n t.Xsmall = 0xf778;\n t.Y = 0x0059;\n t.Yacute = 0x00dd;\n t.Yacutesmall = 0xf7fd;\n t.Yatcyrillic = 0x0462;\n t.Ycircle = 0x24ce;\n t.Ycircumflex = 0x0176;\n t.Ydieresis = 0x0178;\n t.Ydieresissmall = 0xf7ff;\n t.Ydotaccent = 0x1e8e;\n t.Ydotbelow = 0x1ef4;\n t.Yericyrillic = 0x042b;\n t.Yerudieresiscyrillic = 0x04f8;\n t.Ygrave = 0x1ef2;\n t.Yhook = 0x01b3;\n t.Yhookabove = 0x1ef6;\n t.Yiarmenian = 0x0545;\n t.Yicyrillic = 0x0407;\n t.Yiwnarmenian = 0x0552;\n t.Ymonospace = 0xff39;\n t.Ysmall = 0xf779;\n t.Ytilde = 0x1ef8;\n t.Yusbigcyrillic = 0x046a;\n t.Yusbigiotifiedcyrillic = 0x046c;\n t.Yuslittlecyrillic = 0x0466;\n t.Yuslittleiotifiedcyrillic = 0x0468;\n t.Z = 0x005a;\n t.Zaarmenian = 0x0536;\n t.Zacute = 0x0179;\n t.Zcaron = 0x017d;\n t.Zcaronsmall = 0xf6ff;\n t.Zcircle = 0x24cf;\n t.Zcircumflex = 0x1e90;\n t.Zdot = 0x017b;\n t.Zdotaccent = 0x017b;\n t.Zdotbelow = 0x1e92;\n t.Zecyrillic = 0x0417;\n t.Zedescendercyrillic = 0x0498;\n t.Zedieresiscyrillic = 0x04de;\n t.Zeta = 0x0396;\n t.Zhearmenian = 0x053a;\n t.Zhebrevecyrillic = 0x04c1;\n t.Zhecyrillic = 0x0416;\n t.Zhedescendercyrillic = 0x0496;\n t.Zhedieresiscyrillic = 0x04dc;\n t.Zlinebelow = 0x1e94;\n t.Zmonospace = 0xff3a;\n t.Zsmall = 0xf77a;\n t.Zstroke = 0x01b5;\n t.a = 0x0061;\n t.aabengali = 0x0986;\n t.aacute = 0x00e1;\n t.aadeva = 0x0906;\n t.aagujarati = 0x0a86;\n t.aagurmukhi = 0x0a06;\n t.aamatragurmukhi = 0x0a3e;\n t.aarusquare = 0x3303;\n t.aavowelsignbengali = 0x09be;\n t.aavowelsigndeva = 0x093e;\n t.aavowelsigngujarati = 0x0abe;\n t.abbreviationmarkarmenian = 0x055f;\n t.abbreviationsigndeva = 0x0970;\n t.abengali = 0x0985;\n t.abopomofo = 0x311a;\n t.abreve = 0x0103;\n t.abreveacute = 0x1eaf;\n t.abrevecyrillic = 0x04d1;\n t.abrevedotbelow = 0x1eb7;\n t.abrevegrave = 0x1eb1;\n t.abrevehookabove = 0x1eb3;\n t.abrevetilde = 0x1eb5;\n t.acaron = 0x01ce;\n t.acircle = 0x24d0;\n t.acircumflex = 0x00e2;\n t.acircumflexacute = 0x1ea5;\n t.acircumflexdotbelow = 0x1ead;\n t.acircumflexgrave = 0x1ea7;\n t.acircumflexhookabove = 0x1ea9;\n t.acircumflextilde = 0x1eab;\n t.acute = 0x00b4;\n t.acutebelowcmb = 0x0317;\n t.acutecmb = 0x0301;\n t.acutecomb = 0x0301;\n t.acutedeva = 0x0954;\n t.acutelowmod = 0x02cf;\n t.acutetonecmb = 0x0341;\n t.acyrillic = 0x0430;\n t.adblgrave = 0x0201;\n t.addakgurmukhi = 0x0a71;\n t.adeva = 0x0905;\n t.adieresis = 0x00e4;\n t.adieresiscyrillic = 0x04d3;\n t.adieresismacron = 0x01df;\n t.adotbelow = 0x1ea1;\n t.adotmacron = 0x01e1;\n t.ae = 0x00e6;\n t.aeacute = 0x01fd;\n t.aekorean = 0x3150;\n t.aemacron = 0x01e3;\n t.afii00208 = 0x2015;\n t.afii08941 = 0x20a4;\n t.afii10017 = 0x0410;\n t.afii10018 = 0x0411;\n t.afii10019 = 0x0412;\n t.afii10020 = 0x0413;\n t.afii10021 = 0x0414;\n t.afii10022 = 0x0415;\n t.afii10023 = 0x0401;\n t.afii10024 = 0x0416;\n t.afii10025 = 0x0417;\n t.afii10026 = 0x0418;\n t.afii10027 = 0x0419;\n t.afii10028 = 0x041a;\n t.afii10029 = 0x041b;\n t.afii10030 = 0x041c;\n t.afii10031 = 0x041d;\n t.afii10032 = 0x041e;\n t.afii10033 = 0x041f;\n t.afii10034 = 0x0420;\n t.afii10035 = 0x0421;\n t.afii10036 = 0x0422;\n t.afii10037 = 0x0423;\n t.afii10038 = 0x0424;\n t.afii10039 = 0x0425;\n t.afii10040 = 0x0426;\n t.afii10041 = 0x0427;\n t.afii10042 = 0x0428;\n t.afii10043 = 0x0429;\n t.afii10044 = 0x042a;\n t.afii10045 = 0x042b;\n t.afii10046 = 0x042c;\n t.afii10047 = 0x042d;\n t.afii10048 = 0x042e;\n t.afii10049 = 0x042f;\n t.afii10050 = 0x0490;\n t.afii10051 = 0x0402;\n t.afii10052 = 0x0403;\n t.afii10053 = 0x0404;\n t.afii10054 = 0x0405;\n t.afii10055 = 0x0406;\n t.afii10056 = 0x0407;\n t.afii10057 = 0x0408;\n t.afii10058 = 0x0409;\n t.afii10059 = 0x040a;\n t.afii10060 = 0x040b;\n t.afii10061 = 0x040c;\n t.afii10062 = 0x040e;\n t.afii10063 = 0xf6c4;\n t.afii10064 = 0xf6c5;\n t.afii10065 = 0x0430;\n t.afii10066 = 0x0431;\n t.afii10067 = 0x0432;\n t.afii10068 = 0x0433;\n t.afii10069 = 0x0434;\n t.afii10070 = 0x0435;\n t.afii10071 = 0x0451;\n t.afii10072 = 0x0436;\n t.afii10073 = 0x0437;\n t.afii10074 = 0x0438;\n t.afii10075 = 0x0439;\n t.afii10076 = 0x043a;\n t.afii10077 = 0x043b;\n t.afii10078 = 0x043c;\n t.afii10079 = 0x043d;\n t.afii10080 = 0x043e;\n t.afii10081 = 0x043f;\n t.afii10082 = 0x0440;\n t.afii10083 = 0x0441;\n t.afii10084 = 0x0442;\n t.afii10085 = 0x0443;\n t.afii10086 = 0x0444;\n t.afii10087 = 0x0445;\n t.afii10088 = 0x0446;\n t.afii10089 = 0x0447;\n t.afii10090 = 0x0448;\n t.afii10091 = 0x0449;\n t.afii10092 = 0x044a;\n t.afii10093 = 0x044b;\n t.afii10094 = 0x044c;\n t.afii10095 = 0x044d;\n t.afii10096 = 0x044e;\n t.afii10097 = 0x044f;\n t.afii10098 = 0x0491;\n t.afii10099 = 0x0452;\n t.afii10100 = 0x0453;\n t.afii10101 = 0x0454;\n t.afii10102 = 0x0455;\n t.afii10103 = 0x0456;\n t.afii10104 = 0x0457;\n t.afii10105 = 0x0458;\n t.afii10106 = 0x0459;\n t.afii10107 = 0x045a;\n t.afii10108 = 0x045b;\n t.afii10109 = 0x045c;\n t.afii10110 = 0x045e;\n t.afii10145 = 0x040f;\n t.afii10146 = 0x0462;\n t.afii10147 = 0x0472;\n t.afii10148 = 0x0474;\n t.afii10192 = 0xf6c6;\n t.afii10193 = 0x045f;\n t.afii10194 = 0x0463;\n t.afii10195 = 0x0473;\n t.afii10196 = 0x0475;\n t.afii10831 = 0xf6c7;\n t.afii10832 = 0xf6c8;\n t.afii10846 = 0x04d9;\n t.afii299 = 0x200e;\n t.afii300 = 0x200f;\n t.afii301 = 0x200d;\n t.afii57381 = 0x066a;\n t.afii57388 = 0x060c;\n t.afii57392 = 0x0660;\n t.afii57393 = 0x0661;\n t.afii57394 = 0x0662;\n t.afii57395 = 0x0663;\n t.afii57396 = 0x0664;\n t.afii57397 = 0x0665;\n t.afii57398 = 0x0666;\n t.afii57399 = 0x0667;\n t.afii57400 = 0x0668;\n t.afii57401 = 0x0669;\n t.afii57403 = 0x061b;\n t.afii57407 = 0x061f;\n t.afii57409 = 0x0621;\n t.afii57410 = 0x0622;\n t.afii57411 = 0x0623;\n t.afii57412 = 0x0624;\n t.afii57413 = 0x0625;\n t.afii57414 = 0x0626;\n t.afii57415 = 0x0627;\n t.afii57416 = 0x0628;\n t.afii57417 = 0x0629;\n t.afii57418 = 0x062a;\n t.afii57419 = 0x062b;\n t.afii57420 = 0x062c;\n t.afii57421 = 0x062d;\n t.afii57422 = 0x062e;\n t.afii57423 = 0x062f;\n t.afii57424 = 0x0630;\n t.afii57425 = 0x0631;\n t.afii57426 = 0x0632;\n t.afii57427 = 0x0633;\n t.afii57428 = 0x0634;\n t.afii57429 = 0x0635;\n t.afii57430 = 0x0636;\n t.afii57431 = 0x0637;\n t.afii57432 = 0x0638;\n t.afii57433 = 0x0639;\n t.afii57434 = 0x063a;\n t.afii57440 = 0x0640;\n t.afii57441 = 0x0641;\n t.afii57442 = 0x0642;\n t.afii57443 = 0x0643;\n t.afii57444 = 0x0644;\n t.afii57445 = 0x0645;\n t.afii57446 = 0x0646;\n t.afii57448 = 0x0648;\n t.afii57449 = 0x0649;\n t.afii57450 = 0x064a;\n t.afii57451 = 0x064b;\n t.afii57452 = 0x064c;\n t.afii57453 = 0x064d;\n t.afii57454 = 0x064e;\n t.afii57455 = 0x064f;\n t.afii57456 = 0x0650;\n t.afii57457 = 0x0651;\n t.afii57458 = 0x0652;\n t.afii57470 = 0x0647;\n t.afii57505 = 0x06a4;\n t.afii57506 = 0x067e;\n t.afii57507 = 0x0686;\n t.afii57508 = 0x0698;\n t.afii57509 = 0x06af;\n t.afii57511 = 0x0679;\n t.afii57512 = 0x0688;\n t.afii57513 = 0x0691;\n t.afii57514 = 0x06ba;\n t.afii57519 = 0x06d2;\n t.afii57534 = 0x06d5;\n t.afii57636 = 0x20aa;\n t.afii57645 = 0x05be;\n t.afii57658 = 0x05c3;\n t.afii57664 = 0x05d0;\n t.afii57665 = 0x05d1;\n t.afii57666 = 0x05d2;\n t.afii57667 = 0x05d3;\n t.afii57668 = 0x05d4;\n t.afii57669 = 0x05d5;\n t.afii57670 = 0x05d6;\n t.afii57671 = 0x05d7;\n t.afii57672 = 0x05d8;\n t.afii57673 = 0x05d9;\n t.afii57674 = 0x05da;\n t.afii57675 = 0x05db;\n t.afii57676 = 0x05dc;\n t.afii57677 = 0x05dd;\n t.afii57678 = 0x05de;\n t.afii57679 = 0x05df;\n t.afii57680 = 0x05e0;\n t.afii57681 = 0x05e1;\n t.afii57682 = 0x05e2;\n t.afii57683 = 0x05e3;\n t.afii57684 = 0x05e4;\n t.afii57685 = 0x05e5;\n t.afii57686 = 0x05e6;\n t.afii57687 = 0x05e7;\n t.afii57688 = 0x05e8;\n t.afii57689 = 0x05e9;\n t.afii57690 = 0x05ea;\n t.afii57694 = 0xfb2a;\n t.afii57695 = 0xfb2b;\n t.afii57700 = 0xfb4b;\n t.afii57705 = 0xfb1f;\n t.afii57716 = 0x05f0;\n t.afii57717 = 0x05f1;\n t.afii57718 = 0x05f2;\n t.afii57723 = 0xfb35;\n t.afii57793 = 0x05b4;\n t.afii57794 = 0x05b5;\n t.afii57795 = 0x05b6;\n t.afii57796 = 0x05bb;\n t.afii57797 = 0x05b8;\n t.afii57798 = 0x05b7;\n t.afii57799 = 0x05b0;\n t.afii57800 = 0x05b2;\n t.afii57801 = 0x05b1;\n t.afii57802 = 0x05b3;\n t.afii57803 = 0x05c2;\n t.afii57804 = 0x05c1;\n t.afii57806 = 0x05b9;\n t.afii57807 = 0x05bc;\n t.afii57839 = 0x05bd;\n t.afii57841 = 0x05bf;\n t.afii57842 = 0x05c0;\n t.afii57929 = 0x02bc;\n t.afii61248 = 0x2105;\n t.afii61289 = 0x2113;\n t.afii61352 = 0x2116;\n t.afii61573 = 0x202c;\n t.afii61574 = 0x202d;\n t.afii61575 = 0x202e;\n t.afii61664 = 0x200c;\n t.afii63167 = 0x066d;\n t.afii64937 = 0x02bd;\n t.agrave = 0x00e0;\n t.agujarati = 0x0a85;\n t.agurmukhi = 0x0a05;\n t.ahiragana = 0x3042;\n t.ahookabove = 0x1ea3;\n t.aibengali = 0x0990;\n t.aibopomofo = 0x311e;\n t.aideva = 0x0910;\n t.aiecyrillic = 0x04d5;\n t.aigujarati = 0x0a90;\n t.aigurmukhi = 0x0a10;\n t.aimatragurmukhi = 0x0a48;\n t.ainarabic = 0x0639;\n t.ainfinalarabic = 0xfeca;\n t.aininitialarabic = 0xfecb;\n t.ainmedialarabic = 0xfecc;\n t.ainvertedbreve = 0x0203;\n t.aivowelsignbengali = 0x09c8;\n t.aivowelsigndeva = 0x0948;\n t.aivowelsigngujarati = 0x0ac8;\n t.akatakana = 0x30a2;\n t.akatakanahalfwidth = 0xff71;\n t.akorean = 0x314f;\n t.alef = 0x05d0;\n t.alefarabic = 0x0627;\n t.alefdageshhebrew = 0xfb30;\n t.aleffinalarabic = 0xfe8e;\n t.alefhamzaabovearabic = 0x0623;\n t.alefhamzaabovefinalarabic = 0xfe84;\n t.alefhamzabelowarabic = 0x0625;\n t.alefhamzabelowfinalarabic = 0xfe88;\n t.alefhebrew = 0x05d0;\n t.aleflamedhebrew = 0xfb4f;\n t.alefmaddaabovearabic = 0x0622;\n t.alefmaddaabovefinalarabic = 0xfe82;\n t.alefmaksuraarabic = 0x0649;\n t.alefmaksurafinalarabic = 0xfef0;\n t.alefmaksurainitialarabic = 0xfef3;\n t.alefmaksuramedialarabic = 0xfef4;\n t.alefpatahhebrew = 0xfb2e;\n t.alefqamatshebrew = 0xfb2f;\n t.aleph = 0x2135;\n t.allequal = 0x224c;\n t.alpha = 0x03b1;\n t.alphatonos = 0x03ac;\n t.amacron = 0x0101;\n t.amonospace = 0xff41;\n t.ampersand = 0x0026;\n t.ampersandmonospace = 0xff06;\n t.ampersandsmall = 0xf726;\n t.amsquare = 0x33c2;\n t.anbopomofo = 0x3122;\n t.angbopomofo = 0x3124;\n t.angbracketleft = 0x3008;\n t.angbracketright = 0x3009;\n t.angkhankhuthai = 0x0e5a;\n t.angle = 0x2220;\n t.anglebracketleft = 0x3008;\n t.anglebracketleftvertical = 0xfe3f;\n t.anglebracketright = 0x3009;\n t.anglebracketrightvertical = 0xfe40;\n t.angleleft = 0x2329;\n t.angleright = 0x232a;\n t.angstrom = 0x212b;\n t.anoteleia = 0x0387;\n t.anudattadeva = 0x0952;\n t.anusvarabengali = 0x0982;\n t.anusvaradeva = 0x0902;\n t.anusvaragujarati = 0x0a82;\n t.aogonek = 0x0105;\n t.apaatosquare = 0x3300;\n t.aparen = 0x249c;\n t.apostrophearmenian = 0x055a;\n t.apostrophemod = 0x02bc;\n t.apple = 0xf8ff;\n t.approaches = 0x2250;\n t.approxequal = 0x2248;\n t.approxequalorimage = 0x2252;\n t.approximatelyequal = 0x2245;\n t.araeaekorean = 0x318e;\n t.araeakorean = 0x318d;\n t.arc = 0x2312;\n t.arighthalfring = 0x1e9a;\n t.aring = 0x00e5;\n t.aringacute = 0x01fb;\n t.aringbelow = 0x1e01;\n t.arrowboth = 0x2194;\n t.arrowdashdown = 0x21e3;\n t.arrowdashleft = 0x21e0;\n t.arrowdashright = 0x21e2;\n t.arrowdashup = 0x21e1;\n t.arrowdblboth = 0x21d4;\n t.arrowdbldown = 0x21d3;\n t.arrowdblleft = 0x21d0;\n t.arrowdblright = 0x21d2;\n t.arrowdblup = 0x21d1;\n t.arrowdown = 0x2193;\n t.arrowdownleft = 0x2199;\n t.arrowdownright = 0x2198;\n t.arrowdownwhite = 0x21e9;\n t.arrowheaddownmod = 0x02c5;\n t.arrowheadleftmod = 0x02c2;\n t.arrowheadrightmod = 0x02c3;\n t.arrowheadupmod = 0x02c4;\n t.arrowhorizex = 0xf8e7;\n t.arrowleft = 0x2190;\n t.arrowleftdbl = 0x21d0;\n t.arrowleftdblstroke = 0x21cd;\n t.arrowleftoverright = 0x21c6;\n t.arrowleftwhite = 0x21e6;\n t.arrowright = 0x2192;\n t.arrowrightdblstroke = 0x21cf;\n t.arrowrightheavy = 0x279e;\n t.arrowrightoverleft = 0x21c4;\n t.arrowrightwhite = 0x21e8;\n t.arrowtableft = 0x21e4;\n t.arrowtabright = 0x21e5;\n t.arrowup = 0x2191;\n t.arrowupdn = 0x2195;\n t.arrowupdnbse = 0x21a8;\n t.arrowupdownbase = 0x21a8;\n t.arrowupleft = 0x2196;\n t.arrowupleftofdown = 0x21c5;\n t.arrowupright = 0x2197;\n t.arrowupwhite = 0x21e7;\n t.arrowvertex = 0xf8e6;\n t.asciicircum = 0x005e;\n t.asciicircummonospace = 0xff3e;\n t.asciitilde = 0x007e;\n t.asciitildemonospace = 0xff5e;\n t.ascript = 0x0251;\n t.ascriptturned = 0x0252;\n t.asmallhiragana = 0x3041;\n t.asmallkatakana = 0x30a1;\n t.asmallkatakanahalfwidth = 0xff67;\n t.asterisk = 0x002a;\n t.asteriskaltonearabic = 0x066d;\n t.asteriskarabic = 0x066d;\n t.asteriskmath = 0x2217;\n t.asteriskmonospace = 0xff0a;\n t.asterisksmall = 0xfe61;\n t.asterism = 0x2042;\n t.asuperior = 0xf6e9;\n t.asymptoticallyequal = 0x2243;\n t.at = 0x0040;\n t.atilde = 0x00e3;\n t.atmonospace = 0xff20;\n t.atsmall = 0xfe6b;\n t.aturned = 0x0250;\n t.aubengali = 0x0994;\n t.aubopomofo = 0x3120;\n t.audeva = 0x0914;\n t.augujarati = 0x0a94;\n t.augurmukhi = 0x0a14;\n t.aulengthmarkbengali = 0x09d7;\n t.aumatragurmukhi = 0x0a4c;\n t.auvowelsignbengali = 0x09cc;\n t.auvowelsigndeva = 0x094c;\n t.auvowelsigngujarati = 0x0acc;\n t.avagrahadeva = 0x093d;\n t.aybarmenian = 0x0561;\n t.ayin = 0x05e2;\n t.ayinaltonehebrew = 0xfb20;\n t.ayinhebrew = 0x05e2;\n t.b = 0x0062;\n t.babengali = 0x09ac;\n t.backslash = 0x005c;\n t.backslashmonospace = 0xff3c;\n t.badeva = 0x092c;\n t.bagujarati = 0x0aac;\n t.bagurmukhi = 0x0a2c;\n t.bahiragana = 0x3070;\n t.bahtthai = 0x0e3f;\n t.bakatakana = 0x30d0;\n t.bar = 0x007c;\n t.barmonospace = 0xff5c;\n t.bbopomofo = 0x3105;\n t.bcircle = 0x24d1;\n t.bdotaccent = 0x1e03;\n t.bdotbelow = 0x1e05;\n t.beamedsixteenthnotes = 0x266c;\n t.because = 0x2235;\n t.becyrillic = 0x0431;\n t.beharabic = 0x0628;\n t.behfinalarabic = 0xfe90;\n t.behinitialarabic = 0xfe91;\n t.behiragana = 0x3079;\n t.behmedialarabic = 0xfe92;\n t.behmeeminitialarabic = 0xfc9f;\n t.behmeemisolatedarabic = 0xfc08;\n t.behnoonfinalarabic = 0xfc6d;\n t.bekatakana = 0x30d9;\n t.benarmenian = 0x0562;\n t.bet = 0x05d1;\n t.beta = 0x03b2;\n t.betasymbolgreek = 0x03d0;\n t.betdagesh = 0xfb31;\n t.betdageshhebrew = 0xfb31;\n t.bethebrew = 0x05d1;\n t.betrafehebrew = 0xfb4c;\n t.bhabengali = 0x09ad;\n t.bhadeva = 0x092d;\n t.bhagujarati = 0x0aad;\n t.bhagurmukhi = 0x0a2d;\n t.bhook = 0x0253;\n t.bihiragana = 0x3073;\n t.bikatakana = 0x30d3;\n t.bilabialclick = 0x0298;\n t.bindigurmukhi = 0x0a02;\n t.birusquare = 0x3331;\n t.blackcircle = 0x25cf;\n t.blackdiamond = 0x25c6;\n t.blackdownpointingtriangle = 0x25bc;\n t.blackleftpointingpointer = 0x25c4;\n t.blackleftpointingtriangle = 0x25c0;\n t.blacklenticularbracketleft = 0x3010;\n t.blacklenticularbracketleftvertical = 0xfe3b;\n t.blacklenticularbracketright = 0x3011;\n t.blacklenticularbracketrightvertical = 0xfe3c;\n t.blacklowerlefttriangle = 0x25e3;\n t.blacklowerrighttriangle = 0x25e2;\n t.blackrectangle = 0x25ac;\n t.blackrightpointingpointer = 0x25ba;\n t.blackrightpointingtriangle = 0x25b6;\n t.blacksmallsquare = 0x25aa;\n t.blacksmilingface = 0x263b;\n t.blacksquare = 0x25a0;\n t.blackstar = 0x2605;\n t.blackupperlefttriangle = 0x25e4;\n t.blackupperrighttriangle = 0x25e5;\n t.blackuppointingsmalltriangle = 0x25b4;\n t.blackuppointingtriangle = 0x25b2;\n t.blank = 0x2423;\n t.blinebelow = 0x1e07;\n t.block = 0x2588;\n t.bmonospace = 0xff42;\n t.bobaimaithai = 0x0e1a;\n t.bohiragana = 0x307c;\n t.bokatakana = 0x30dc;\n t.bparen = 0x249d;\n t.bqsquare = 0x33c3;\n t.braceex = 0xf8f4;\n t.braceleft = 0x007b;\n t.braceleftbt = 0xf8f3;\n t.braceleftmid = 0xf8f2;\n t.braceleftmonospace = 0xff5b;\n t.braceleftsmall = 0xfe5b;\n t.bracelefttp = 0xf8f1;\n t.braceleftvertical = 0xfe37;\n t.braceright = 0x007d;\n t.bracerightbt = 0xf8fe;\n t.bracerightmid = 0xf8fd;\n t.bracerightmonospace = 0xff5d;\n t.bracerightsmall = 0xfe5c;\n t.bracerighttp = 0xf8fc;\n t.bracerightvertical = 0xfe38;\n t.bracketleft = 0x005b;\n t.bracketleftbt = 0xf8f0;\n t.bracketleftex = 0xf8ef;\n t.bracketleftmonospace = 0xff3b;\n t.bracketlefttp = 0xf8ee;\n t.bracketright = 0x005d;\n t.bracketrightbt = 0xf8fb;\n t.bracketrightex = 0xf8fa;\n t.bracketrightmonospace = 0xff3d;\n t.bracketrighttp = 0xf8f9;\n t.breve = 0x02d8;\n t.brevebelowcmb = 0x032e;\n t.brevecmb = 0x0306;\n t.breveinvertedbelowcmb = 0x032f;\n t.breveinvertedcmb = 0x0311;\n t.breveinverteddoublecmb = 0x0361;\n t.bridgebelowcmb = 0x032a;\n t.bridgeinvertedbelowcmb = 0x033a;\n t.brokenbar = 0x00a6;\n t.bstroke = 0x0180;\n t.bsuperior = 0xf6ea;\n t.btopbar = 0x0183;\n t.buhiragana = 0x3076;\n t.bukatakana = 0x30d6;\n t.bullet = 0x2022;\n t.bulletinverse = 0x25d8;\n t.bulletoperator = 0x2219;\n t.bullseye = 0x25ce;\n t.c = 0x0063;\n t.caarmenian = 0x056e;\n t.cabengali = 0x099a;\n t.cacute = 0x0107;\n t.cadeva = 0x091a;\n t.cagujarati = 0x0a9a;\n t.cagurmukhi = 0x0a1a;\n t.calsquare = 0x3388;\n t.candrabindubengali = 0x0981;\n t.candrabinducmb = 0x0310;\n t.candrabindudeva = 0x0901;\n t.candrabindugujarati = 0x0a81;\n t.capslock = 0x21ea;\n t.careof = 0x2105;\n t.caron = 0x02c7;\n t.caronbelowcmb = 0x032c;\n t.caroncmb = 0x030c;\n t.carriagereturn = 0x21b5;\n t.cbopomofo = 0x3118;\n t.ccaron = 0x010d;\n t.ccedilla = 0x00e7;\n t.ccedillaacute = 0x1e09;\n t.ccircle = 0x24d2;\n t.ccircumflex = 0x0109;\n t.ccurl = 0x0255;\n t.cdot = 0x010b;\n t.cdotaccent = 0x010b;\n t.cdsquare = 0x33c5;\n t.cedilla = 0x00b8;\n t.cedillacmb = 0x0327;\n t.cent = 0x00a2;\n t.centigrade = 0x2103;\n t.centinferior = 0xf6df;\n t.centmonospace = 0xffe0;\n t.centoldstyle = 0xf7a2;\n t.centsuperior = 0xf6e0;\n t.chaarmenian = 0x0579;\n t.chabengali = 0x099b;\n t.chadeva = 0x091b;\n t.chagujarati = 0x0a9b;\n t.chagurmukhi = 0x0a1b;\n t.chbopomofo = 0x3114;\n t.cheabkhasiancyrillic = 0x04bd;\n t.checkmark = 0x2713;\n t.checyrillic = 0x0447;\n t.chedescenderabkhasiancyrillic = 0x04bf;\n t.chedescendercyrillic = 0x04b7;\n t.chedieresiscyrillic = 0x04f5;\n t.cheharmenian = 0x0573;\n t.chekhakassiancyrillic = 0x04cc;\n t.cheverticalstrokecyrillic = 0x04b9;\n t.chi = 0x03c7;\n t.chieuchacirclekorean = 0x3277;\n t.chieuchaparenkorean = 0x3217;\n t.chieuchcirclekorean = 0x3269;\n t.chieuchkorean = 0x314a;\n t.chieuchparenkorean = 0x3209;\n t.chochangthai = 0x0e0a;\n t.chochanthai = 0x0e08;\n t.chochingthai = 0x0e09;\n t.chochoethai = 0x0e0c;\n t.chook = 0x0188;\n t.cieucacirclekorean = 0x3276;\n t.cieucaparenkorean = 0x3216;\n t.cieuccirclekorean = 0x3268;\n t.cieuckorean = 0x3148;\n t.cieucparenkorean = 0x3208;\n t.cieucuparenkorean = 0x321c;\n t.circle = 0x25cb;\n t.circlecopyrt = 0x00a9;\n t.circlemultiply = 0x2297;\n t.circleot = 0x2299;\n t.circleplus = 0x2295;\n t.circlepostalmark = 0x3036;\n t.circlewithlefthalfblack = 0x25d0;\n t.circlewithrighthalfblack = 0x25d1;\n t.circumflex = 0x02c6;\n t.circumflexbelowcmb = 0x032d;\n t.circumflexcmb = 0x0302;\n t.clear = 0x2327;\n t.clickalveolar = 0x01c2;\n t.clickdental = 0x01c0;\n t.clicklateral = 0x01c1;\n t.clickretroflex = 0x01c3;\n t.club = 0x2663;\n t.clubsuitblack = 0x2663;\n t.clubsuitwhite = 0x2667;\n t.cmcubedsquare = 0x33a4;\n t.cmonospace = 0xff43;\n t.cmsquaredsquare = 0x33a0;\n t.coarmenian = 0x0581;\n t.colon = 0x003a;\n t.colonmonetary = 0x20a1;\n t.colonmonospace = 0xff1a;\n t.colonsign = 0x20a1;\n t.colonsmall = 0xfe55;\n t.colontriangularhalfmod = 0x02d1;\n t.colontriangularmod = 0x02d0;\n t.comma = 0x002c;\n t.commaabovecmb = 0x0313;\n t.commaaboverightcmb = 0x0315;\n t.commaaccent = 0xf6c3;\n t.commaarabic = 0x060c;\n t.commaarmenian = 0x055d;\n t.commainferior = 0xf6e1;\n t.commamonospace = 0xff0c;\n t.commareversedabovecmb = 0x0314;\n t.commareversedmod = 0x02bd;\n t.commasmall = 0xfe50;\n t.commasuperior = 0xf6e2;\n t.commaturnedabovecmb = 0x0312;\n t.commaturnedmod = 0x02bb;\n t.compass = 0x263c;\n t.congruent = 0x2245;\n t.contourintegral = 0x222e;\n t.control = 0x2303;\n t.controlACK = 0x0006;\n t.controlBEL = 0x0007;\n t.controlBS = 0x0008;\n t.controlCAN = 0x0018;\n t.controlCR = 0x000d;\n t.controlDC1 = 0x0011;\n t.controlDC2 = 0x0012;\n t.controlDC3 = 0x0013;\n t.controlDC4 = 0x0014;\n t.controlDEL = 0x007f;\n t.controlDLE = 0x0010;\n t.controlEM = 0x0019;\n t.controlENQ = 0x0005;\n t.controlEOT = 0x0004;\n t.controlESC = 0x001b;\n t.controlETB = 0x0017;\n t.controlETX = 0x0003;\n t.controlFF = 0x000c;\n t.controlFS = 0x001c;\n t.controlGS = 0x001d;\n t.controlHT = 0x0009;\n t.controlLF = 0x000a;\n t.controlNAK = 0x0015;\n t.controlNULL = 0x0000;\n t.controlRS = 0x001e;\n t.controlSI = 0x000f;\n t.controlSO = 0x000e;\n t.controlSOT = 0x0002;\n t.controlSTX = 0x0001;\n t.controlSUB = 0x001a;\n t.controlSYN = 0x0016;\n t.controlUS = 0x001f;\n t.controlVT = 0x000b;\n t.copyright = 0x00a9;\n t.copyrightsans = 0xf8e9;\n t.copyrightserif = 0xf6d9;\n t.cornerbracketleft = 0x300c;\n t.cornerbracketlefthalfwidth = 0xff62;\n t.cornerbracketleftvertical = 0xfe41;\n t.cornerbracketright = 0x300d;\n t.cornerbracketrighthalfwidth = 0xff63;\n t.cornerbracketrightvertical = 0xfe42;\n t.corporationsquare = 0x337f;\n t.cosquare = 0x33c7;\n t.coverkgsquare = 0x33c6;\n t.cparen = 0x249e;\n t.cruzeiro = 0x20a2;\n t.cstretched = 0x0297;\n t.curlyand = 0x22cf;\n t.curlyor = 0x22ce;\n t.currency = 0x00a4;\n t.cyrBreve = 0xf6d1;\n t.cyrFlex = 0xf6d2;\n t.cyrbreve = 0xf6d4;\n t.cyrflex = 0xf6d5;\n t.d = 0x0064;\n t.daarmenian = 0x0564;\n t.dabengali = 0x09a6;\n t.dadarabic = 0x0636;\n t.dadeva = 0x0926;\n t.dadfinalarabic = 0xfebe;\n t.dadinitialarabic = 0xfebf;\n t.dadmedialarabic = 0xfec0;\n t.dagesh = 0x05bc;\n t.dageshhebrew = 0x05bc;\n t.dagger = 0x2020;\n t.daggerdbl = 0x2021;\n t.dagujarati = 0x0aa6;\n t.dagurmukhi = 0x0a26;\n t.dahiragana = 0x3060;\n t.dakatakana = 0x30c0;\n t.dalarabic = 0x062f;\n t.dalet = 0x05d3;\n t.daletdagesh = 0xfb33;\n t.daletdageshhebrew = 0xfb33;\n t.dalethebrew = 0x05d3;\n t.dalfinalarabic = 0xfeaa;\n t.dammaarabic = 0x064f;\n t.dammalowarabic = 0x064f;\n t.dammatanaltonearabic = 0x064c;\n t.dammatanarabic = 0x064c;\n t.danda = 0x0964;\n t.dargahebrew = 0x05a7;\n t.dargalefthebrew = 0x05a7;\n t.dasiapneumatacyrilliccmb = 0x0485;\n t.dblGrave = 0xf6d3;\n t.dblanglebracketleft = 0x300a;\n t.dblanglebracketleftvertical = 0xfe3d;\n t.dblanglebracketright = 0x300b;\n t.dblanglebracketrightvertical = 0xfe3e;\n t.dblarchinvertedbelowcmb = 0x032b;\n t.dblarrowleft = 0x21d4;\n t.dblarrowright = 0x21d2;\n t.dbldanda = 0x0965;\n t.dblgrave = 0xf6d6;\n t.dblgravecmb = 0x030f;\n t.dblintegral = 0x222c;\n t.dbllowline = 0x2017;\n t.dbllowlinecmb = 0x0333;\n t.dbloverlinecmb = 0x033f;\n t.dblprimemod = 0x02ba;\n t.dblverticalbar = 0x2016;\n t.dblverticallineabovecmb = 0x030e;\n t.dbopomofo = 0x3109;\n t.dbsquare = 0x33c8;\n t.dcaron = 0x010f;\n t.dcedilla = 0x1e11;\n t.dcircle = 0x24d3;\n t.dcircumflexbelow = 0x1e13;\n t.dcroat = 0x0111;\n t.ddabengali = 0x09a1;\n t.ddadeva = 0x0921;\n t.ddagujarati = 0x0aa1;\n t.ddagurmukhi = 0x0a21;\n t.ddalarabic = 0x0688;\n t.ddalfinalarabic = 0xfb89;\n t.dddhadeva = 0x095c;\n t.ddhabengali = 0x09a2;\n t.ddhadeva = 0x0922;\n t.ddhagujarati = 0x0aa2;\n t.ddhagurmukhi = 0x0a22;\n t.ddotaccent = 0x1e0b;\n t.ddotbelow = 0x1e0d;\n t.decimalseparatorarabic = 0x066b;\n t.decimalseparatorpersian = 0x066b;\n t.decyrillic = 0x0434;\n t.degree = 0x00b0;\n t.dehihebrew = 0x05ad;\n t.dehiragana = 0x3067;\n t.deicoptic = 0x03ef;\n t.dekatakana = 0x30c7;\n t.deleteleft = 0x232b;\n t.deleteright = 0x2326;\n t.delta = 0x03b4;\n t.deltaturned = 0x018d;\n t.denominatorminusonenumeratorbengali = 0x09f8;\n t.dezh = 0x02a4;\n t.dhabengali = 0x09a7;\n t.dhadeva = 0x0927;\n t.dhagujarati = 0x0aa7;\n t.dhagurmukhi = 0x0a27;\n t.dhook = 0x0257;\n t.dialytikatonos = 0x0385;\n t.dialytikatonoscmb = 0x0344;\n t.diamond = 0x2666;\n t.diamondsuitwhite = 0x2662;\n t.dieresis = 0x00a8;\n t.dieresisacute = 0xf6d7;\n t.dieresisbelowcmb = 0x0324;\n t.dieresiscmb = 0x0308;\n t.dieresisgrave = 0xf6d8;\n t.dieresistonos = 0x0385;\n t.dihiragana = 0x3062;\n t.dikatakana = 0x30c2;\n t.dittomark = 0x3003;\n t.divide = 0x00f7;\n t.divides = 0x2223;\n t.divisionslash = 0x2215;\n t.djecyrillic = 0x0452;\n t.dkshade = 0x2593;\n t.dlinebelow = 0x1e0f;\n t.dlsquare = 0x3397;\n t.dmacron = 0x0111;\n t.dmonospace = 0xff44;\n t.dnblock = 0x2584;\n t.dochadathai = 0x0e0e;\n t.dodekthai = 0x0e14;\n t.dohiragana = 0x3069;\n t.dokatakana = 0x30c9;\n t.dollar = 0x0024;\n t.dollarinferior = 0xf6e3;\n t.dollarmonospace = 0xff04;\n t.dollaroldstyle = 0xf724;\n t.dollarsmall = 0xfe69;\n t.dollarsuperior = 0xf6e4;\n t.dong = 0x20ab;\n t.dorusquare = 0x3326;\n t.dotaccent = 0x02d9;\n t.dotaccentcmb = 0x0307;\n t.dotbelowcmb = 0x0323;\n t.dotbelowcomb = 0x0323;\n t.dotkatakana = 0x30fb;\n t.dotlessi = 0x0131;\n t.dotlessj = 0xf6be;\n t.dotlessjstrokehook = 0x0284;\n t.dotmath = 0x22c5;\n t.dottedcircle = 0x25cc;\n t.doubleyodpatah = 0xfb1f;\n t.doubleyodpatahhebrew = 0xfb1f;\n t.downtackbelowcmb = 0x031e;\n t.downtackmod = 0x02d5;\n t.dparen = 0x249f;\n t.dsuperior = 0xf6eb;\n t.dtail = 0x0256;\n t.dtopbar = 0x018c;\n t.duhiragana = 0x3065;\n t.dukatakana = 0x30c5;\n t.dz = 0x01f3;\n t.dzaltone = 0x02a3;\n t.dzcaron = 0x01c6;\n t.dzcurl = 0x02a5;\n t.dzeabkhasiancyrillic = 0x04e1;\n t.dzecyrillic = 0x0455;\n t.dzhecyrillic = 0x045f;\n t.e = 0x0065;\n t.eacute = 0x00e9;\n t.earth = 0x2641;\n t.ebengali = 0x098f;\n t.ebopomofo = 0x311c;\n t.ebreve = 0x0115;\n t.ecandradeva = 0x090d;\n t.ecandragujarati = 0x0a8d;\n t.ecandravowelsigndeva = 0x0945;\n t.ecandravowelsigngujarati = 0x0ac5;\n t.ecaron = 0x011b;\n t.ecedillabreve = 0x1e1d;\n t.echarmenian = 0x0565;\n t.echyiwnarmenian = 0x0587;\n t.ecircle = 0x24d4;\n t.ecircumflex = 0x00ea;\n t.ecircumflexacute = 0x1ebf;\n t.ecircumflexbelow = 0x1e19;\n t.ecircumflexdotbelow = 0x1ec7;\n t.ecircumflexgrave = 0x1ec1;\n t.ecircumflexhookabove = 0x1ec3;\n t.ecircumflextilde = 0x1ec5;\n t.ecyrillic = 0x0454;\n t.edblgrave = 0x0205;\n t.edeva = 0x090f;\n t.edieresis = 0x00eb;\n t.edot = 0x0117;\n t.edotaccent = 0x0117;\n t.edotbelow = 0x1eb9;\n t.eegurmukhi = 0x0a0f;\n t.eematragurmukhi = 0x0a47;\n t.efcyrillic = 0x0444;\n t.egrave = 0x00e8;\n t.egujarati = 0x0a8f;\n t.eharmenian = 0x0567;\n t.ehbopomofo = 0x311d;\n t.ehiragana = 0x3048;\n t.ehookabove = 0x1ebb;\n t.eibopomofo = 0x311f;\n t.eight = 0x0038;\n t.eightarabic = 0x0668;\n t.eightbengali = 0x09ee;\n t.eightcircle = 0x2467;\n t.eightcircleinversesansserif = 0x2791;\n t.eightdeva = 0x096e;\n t.eighteencircle = 0x2471;\n t.eighteenparen = 0x2485;\n t.eighteenperiod = 0x2499;\n t.eightgujarati = 0x0aee;\n t.eightgurmukhi = 0x0a6e;\n t.eighthackarabic = 0x0668;\n t.eighthangzhou = 0x3028;\n t.eighthnotebeamed = 0x266b;\n t.eightideographicparen = 0x3227;\n t.eightinferior = 0x2088;\n t.eightmonospace = 0xff18;\n t.eightoldstyle = 0xf738;\n t.eightparen = 0x247b;\n t.eightperiod = 0x248f;\n t.eightpersian = 0x06f8;\n t.eightroman = 0x2177;\n t.eightsuperior = 0x2078;\n t.eightthai = 0x0e58;\n t.einvertedbreve = 0x0207;\n t.eiotifiedcyrillic = 0x0465;\n t.ekatakana = 0x30a8;\n t.ekatakanahalfwidth = 0xff74;\n t.ekonkargurmukhi = 0x0a74;\n t.ekorean = 0x3154;\n t.elcyrillic = 0x043b;\n t.element = 0x2208;\n t.elevencircle = 0x246a;\n t.elevenparen = 0x247e;\n t.elevenperiod = 0x2492;\n t.elevenroman = 0x217a;\n t.ellipsis = 0x2026;\n t.ellipsisvertical = 0x22ee;\n t.emacron = 0x0113;\n t.emacronacute = 0x1e17;\n t.emacrongrave = 0x1e15;\n t.emcyrillic = 0x043c;\n t.emdash = 0x2014;\n t.emdashvertical = 0xfe31;\n t.emonospace = 0xff45;\n t.emphasismarkarmenian = 0x055b;\n t.emptyset = 0x2205;\n t.enbopomofo = 0x3123;\n t.encyrillic = 0x043d;\n t.endash = 0x2013;\n t.endashvertical = 0xfe32;\n t.endescendercyrillic = 0x04a3;\n t.eng = 0x014b;\n t.engbopomofo = 0x3125;\n t.enghecyrillic = 0x04a5;\n t.enhookcyrillic = 0x04c8;\n t.enspace = 0x2002;\n t.eogonek = 0x0119;\n t.eokorean = 0x3153;\n t.eopen = 0x025b;\n t.eopenclosed = 0x029a;\n t.eopenreversed = 0x025c;\n t.eopenreversedclosed = 0x025e;\n t.eopenreversedhook = 0x025d;\n t.eparen = 0x24a0;\n t.epsilon = 0x03b5;\n t.epsilontonos = 0x03ad;\n t.equal = 0x003d;\n t.equalmonospace = 0xff1d;\n t.equalsmall = 0xfe66;\n t.equalsuperior = 0x207c;\n t.equivalence = 0x2261;\n t.erbopomofo = 0x3126;\n t.ercyrillic = 0x0440;\n t.ereversed = 0x0258;\n t.ereversedcyrillic = 0x044d;\n t.escyrillic = 0x0441;\n t.esdescendercyrillic = 0x04ab;\n t.esh = 0x0283;\n t.eshcurl = 0x0286;\n t.eshortdeva = 0x090e;\n t.eshortvowelsigndeva = 0x0946;\n t.eshreversedloop = 0x01aa;\n t.eshsquatreversed = 0x0285;\n t.esmallhiragana = 0x3047;\n t.esmallkatakana = 0x30a7;\n t.esmallkatakanahalfwidth = 0xff6a;\n t.estimated = 0x212e;\n t.esuperior = 0xf6ec;\n t.eta = 0x03b7;\n t.etarmenian = 0x0568;\n t.etatonos = 0x03ae;\n t.eth = 0x00f0;\n t.etilde = 0x1ebd;\n t.etildebelow = 0x1e1b;\n t.etnahtafoukhhebrew = 0x0591;\n t.etnahtafoukhlefthebrew = 0x0591;\n t.etnahtahebrew = 0x0591;\n t.etnahtalefthebrew = 0x0591;\n t.eturned = 0x01dd;\n t.eukorean = 0x3161;\n t.euro = 0x20ac;\n t.evowelsignbengali = 0x09c7;\n t.evowelsigndeva = 0x0947;\n t.evowelsigngujarati = 0x0ac7;\n t.exclam = 0x0021;\n t.exclamarmenian = 0x055c;\n t.exclamdbl = 0x203c;\n t.exclamdown = 0x00a1;\n t.exclamdownsmall = 0xf7a1;\n t.exclammonospace = 0xff01;\n t.exclamsmall = 0xf721;\n t.existential = 0x2203;\n t.ezh = 0x0292;\n t.ezhcaron = 0x01ef;\n t.ezhcurl = 0x0293;\n t.ezhreversed = 0x01b9;\n t.ezhtail = 0x01ba;\n t.f = 0x0066;\n t.fadeva = 0x095e;\n t.fagurmukhi = 0x0a5e;\n t.fahrenheit = 0x2109;\n t.fathaarabic = 0x064e;\n t.fathalowarabic = 0x064e;\n t.fathatanarabic = 0x064b;\n t.fbopomofo = 0x3108;\n t.fcircle = 0x24d5;\n t.fdotaccent = 0x1e1f;\n t.feharabic = 0x0641;\n t.feharmenian = 0x0586;\n t.fehfinalarabic = 0xfed2;\n t.fehinitialarabic = 0xfed3;\n t.fehmedialarabic = 0xfed4;\n t.feicoptic = 0x03e5;\n t.female = 0x2640;\n t.ff = 0xfb00;\n t.f_f = 0xfb00;\n t.ffi = 0xfb03;\n t.ffl = 0xfb04;\n t.fi = 0xfb01;\n t.fifteencircle = 0x246e;\n t.fifteenparen = 0x2482;\n t.fifteenperiod = 0x2496;\n t.figuredash = 0x2012;\n t.filledbox = 0x25a0;\n t.filledrect = 0x25ac;\n t.finalkaf = 0x05da;\n t.finalkafdagesh = 0xfb3a;\n t.finalkafdageshhebrew = 0xfb3a;\n t.finalkafhebrew = 0x05da;\n t.finalmem = 0x05dd;\n t.finalmemhebrew = 0x05dd;\n t.finalnun = 0x05df;\n t.finalnunhebrew = 0x05df;\n t.finalpe = 0x05e3;\n t.finalpehebrew = 0x05e3;\n t.finaltsadi = 0x05e5;\n t.finaltsadihebrew = 0x05e5;\n t.firsttonechinese = 0x02c9;\n t.fisheye = 0x25c9;\n t.fitacyrillic = 0x0473;\n t.five = 0x0035;\n t.fivearabic = 0x0665;\n t.fivebengali = 0x09eb;\n t.fivecircle = 0x2464;\n t.fivecircleinversesansserif = 0x278e;\n t.fivedeva = 0x096b;\n t.fiveeighths = 0x215d;\n t.fivegujarati = 0x0aeb;\n t.fivegurmukhi = 0x0a6b;\n t.fivehackarabic = 0x0665;\n t.fivehangzhou = 0x3025;\n t.fiveideographicparen = 0x3224;\n t.fiveinferior = 0x2085;\n t.fivemonospace = 0xff15;\n t.fiveoldstyle = 0xf735;\n t.fiveparen = 0x2478;\n t.fiveperiod = 0x248c;\n t.fivepersian = 0x06f5;\n t.fiveroman = 0x2174;\n t.fivesuperior = 0x2075;\n t.fivethai = 0x0e55;\n t.fl = 0xfb02;\n t.florin = 0x0192;\n t.fmonospace = 0xff46;\n t.fmsquare = 0x3399;\n t.fofanthai = 0x0e1f;\n t.fofathai = 0x0e1d;\n t.fongmanthai = 0x0e4f;\n t.forall = 0x2200;\n t.four = 0x0034;\n t.fourarabic = 0x0664;\n t.fourbengali = 0x09ea;\n t.fourcircle = 0x2463;\n t.fourcircleinversesansserif = 0x278d;\n t.fourdeva = 0x096a;\n t.fourgujarati = 0x0aea;\n t.fourgurmukhi = 0x0a6a;\n t.fourhackarabic = 0x0664;\n t.fourhangzhou = 0x3024;\n t.fourideographicparen = 0x3223;\n t.fourinferior = 0x2084;\n t.fourmonospace = 0xff14;\n t.fournumeratorbengali = 0x09f7;\n t.fouroldstyle = 0xf734;\n t.fourparen = 0x2477;\n t.fourperiod = 0x248b;\n t.fourpersian = 0x06f4;\n t.fourroman = 0x2173;\n t.foursuperior = 0x2074;\n t.fourteencircle = 0x246d;\n t.fourteenparen = 0x2481;\n t.fourteenperiod = 0x2495;\n t.fourthai = 0x0e54;\n t.fourthtonechinese = 0x02cb;\n t.fparen = 0x24a1;\n t.fraction = 0x2044;\n t.franc = 0x20a3;\n t.g = 0x0067;\n t.gabengali = 0x0997;\n t.gacute = 0x01f5;\n t.gadeva = 0x0917;\n t.gafarabic = 0x06af;\n t.gaffinalarabic = 0xfb93;\n t.gafinitialarabic = 0xfb94;\n t.gafmedialarabic = 0xfb95;\n t.gagujarati = 0x0a97;\n t.gagurmukhi = 0x0a17;\n t.gahiragana = 0x304c;\n t.gakatakana = 0x30ac;\n t.gamma = 0x03b3;\n t.gammalatinsmall = 0x0263;\n t.gammasuperior = 0x02e0;\n t.gangiacoptic = 0x03eb;\n t.gbopomofo = 0x310d;\n t.gbreve = 0x011f;\n t.gcaron = 0x01e7;\n t.gcedilla = 0x0123;\n t.gcircle = 0x24d6;\n t.gcircumflex = 0x011d;\n t.gcommaaccent = 0x0123;\n t.gdot = 0x0121;\n t.gdotaccent = 0x0121;\n t.gecyrillic = 0x0433;\n t.gehiragana = 0x3052;\n t.gekatakana = 0x30b2;\n t.geometricallyequal = 0x2251;\n t.gereshaccenthebrew = 0x059c;\n t.gereshhebrew = 0x05f3;\n t.gereshmuqdamhebrew = 0x059d;\n t.germandbls = 0x00df;\n t.gershayimaccenthebrew = 0x059e;\n t.gershayimhebrew = 0x05f4;\n t.getamark = 0x3013;\n t.ghabengali = 0x0998;\n t.ghadarmenian = 0x0572;\n t.ghadeva = 0x0918;\n t.ghagujarati = 0x0a98;\n t.ghagurmukhi = 0x0a18;\n t.ghainarabic = 0x063a;\n t.ghainfinalarabic = 0xfece;\n t.ghaininitialarabic = 0xfecf;\n t.ghainmedialarabic = 0xfed0;\n t.ghemiddlehookcyrillic = 0x0495;\n t.ghestrokecyrillic = 0x0493;\n t.gheupturncyrillic = 0x0491;\n t.ghhadeva = 0x095a;\n t.ghhagurmukhi = 0x0a5a;\n t.ghook = 0x0260;\n t.ghzsquare = 0x3393;\n t.gihiragana = 0x304e;\n t.gikatakana = 0x30ae;\n t.gimarmenian = 0x0563;\n t.gimel = 0x05d2;\n t.gimeldagesh = 0xfb32;\n t.gimeldageshhebrew = 0xfb32;\n t.gimelhebrew = 0x05d2;\n t.gjecyrillic = 0x0453;\n t.glottalinvertedstroke = 0x01be;\n t.glottalstop = 0x0294;\n t.glottalstopinverted = 0x0296;\n t.glottalstopmod = 0x02c0;\n t.glottalstopreversed = 0x0295;\n t.glottalstopreversedmod = 0x02c1;\n t.glottalstopreversedsuperior = 0x02e4;\n t.glottalstopstroke = 0x02a1;\n t.glottalstopstrokereversed = 0x02a2;\n t.gmacron = 0x1e21;\n t.gmonospace = 0xff47;\n t.gohiragana = 0x3054;\n t.gokatakana = 0x30b4;\n t.gparen = 0x24a2;\n t.gpasquare = 0x33ac;\n t.gradient = 0x2207;\n t.grave = 0x0060;\n t.gravebelowcmb = 0x0316;\n t.gravecmb = 0x0300;\n t.gravecomb = 0x0300;\n t.gravedeva = 0x0953;\n t.gravelowmod = 0x02ce;\n t.gravemonospace = 0xff40;\n t.gravetonecmb = 0x0340;\n t.greater = 0x003e;\n t.greaterequal = 0x2265;\n t.greaterequalorless = 0x22db;\n t.greatermonospace = 0xff1e;\n t.greaterorequivalent = 0x2273;\n t.greaterorless = 0x2277;\n t.greateroverequal = 0x2267;\n t.greatersmall = 0xfe65;\n t.gscript = 0x0261;\n t.gstroke = 0x01e5;\n t.guhiragana = 0x3050;\n t.guillemotleft = 0x00ab;\n t.guillemotright = 0x00bb;\n t.guilsinglleft = 0x2039;\n t.guilsinglright = 0x203a;\n t.gukatakana = 0x30b0;\n t.guramusquare = 0x3318;\n t.gysquare = 0x33c9;\n t.h = 0x0068;\n t.haabkhasiancyrillic = 0x04a9;\n t.haaltonearabic = 0x06c1;\n t.habengali = 0x09b9;\n t.hadescendercyrillic = 0x04b3;\n t.hadeva = 0x0939;\n t.hagujarati = 0x0ab9;\n t.hagurmukhi = 0x0a39;\n t.haharabic = 0x062d;\n t.hahfinalarabic = 0xfea2;\n t.hahinitialarabic = 0xfea3;\n t.hahiragana = 0x306f;\n t.hahmedialarabic = 0xfea4;\n t.haitusquare = 0x332a;\n t.hakatakana = 0x30cf;\n t.hakatakanahalfwidth = 0xff8a;\n t.halantgurmukhi = 0x0a4d;\n t.hamzaarabic = 0x0621;\n t.hamzalowarabic = 0x0621;\n t.hangulfiller = 0x3164;\n t.hardsigncyrillic = 0x044a;\n t.harpoonleftbarbup = 0x21bc;\n t.harpoonrightbarbup = 0x21c0;\n t.hasquare = 0x33ca;\n t.hatafpatah = 0x05b2;\n t.hatafpatah16 = 0x05b2;\n t.hatafpatah23 = 0x05b2;\n t.hatafpatah2f = 0x05b2;\n t.hatafpatahhebrew = 0x05b2;\n t.hatafpatahnarrowhebrew = 0x05b2;\n t.hatafpatahquarterhebrew = 0x05b2;\n t.hatafpatahwidehebrew = 0x05b2;\n t.hatafqamats = 0x05b3;\n t.hatafqamats1b = 0x05b3;\n t.hatafqamats28 = 0x05b3;\n t.hatafqamats34 = 0x05b3;\n t.hatafqamatshebrew = 0x05b3;\n t.hatafqamatsnarrowhebrew = 0x05b3;\n t.hatafqamatsquarterhebrew = 0x05b3;\n t.hatafqamatswidehebrew = 0x05b3;\n t.hatafsegol = 0x05b1;\n t.hatafsegol17 = 0x05b1;\n t.hatafsegol24 = 0x05b1;\n t.hatafsegol30 = 0x05b1;\n t.hatafsegolhebrew = 0x05b1;\n t.hatafsegolnarrowhebrew = 0x05b1;\n t.hatafsegolquarterhebrew = 0x05b1;\n t.hatafsegolwidehebrew = 0x05b1;\n t.hbar = 0x0127;\n t.hbopomofo = 0x310f;\n t.hbrevebelow = 0x1e2b;\n t.hcedilla = 0x1e29;\n t.hcircle = 0x24d7;\n t.hcircumflex = 0x0125;\n t.hdieresis = 0x1e27;\n t.hdotaccent = 0x1e23;\n t.hdotbelow = 0x1e25;\n t.he = 0x05d4;\n t.heart = 0x2665;\n t.heartsuitblack = 0x2665;\n t.heartsuitwhite = 0x2661;\n t.hedagesh = 0xfb34;\n t.hedageshhebrew = 0xfb34;\n t.hehaltonearabic = 0x06c1;\n t.heharabic = 0x0647;\n t.hehebrew = 0x05d4;\n t.hehfinalaltonearabic = 0xfba7;\n t.hehfinalalttwoarabic = 0xfeea;\n t.hehfinalarabic = 0xfeea;\n t.hehhamzaabovefinalarabic = 0xfba5;\n t.hehhamzaaboveisolatedarabic = 0xfba4;\n t.hehinitialaltonearabic = 0xfba8;\n t.hehinitialarabic = 0xfeeb;\n t.hehiragana = 0x3078;\n t.hehmedialaltonearabic = 0xfba9;\n t.hehmedialarabic = 0xfeec;\n t.heiseierasquare = 0x337b;\n t.hekatakana = 0x30d8;\n t.hekatakanahalfwidth = 0xff8d;\n t.hekutaarusquare = 0x3336;\n t.henghook = 0x0267;\n t.herutusquare = 0x3339;\n t.het = 0x05d7;\n t.hethebrew = 0x05d7;\n t.hhook = 0x0266;\n t.hhooksuperior = 0x02b1;\n t.hieuhacirclekorean = 0x327b;\n t.hieuhaparenkorean = 0x321b;\n t.hieuhcirclekorean = 0x326d;\n t.hieuhkorean = 0x314e;\n t.hieuhparenkorean = 0x320d;\n t.hihiragana = 0x3072;\n t.hikatakana = 0x30d2;\n t.hikatakanahalfwidth = 0xff8b;\n t.hiriq = 0x05b4;\n t.hiriq14 = 0x05b4;\n t.hiriq21 = 0x05b4;\n t.hiriq2d = 0x05b4;\n t.hiriqhebrew = 0x05b4;\n t.hiriqnarrowhebrew = 0x05b4;\n t.hiriqquarterhebrew = 0x05b4;\n t.hiriqwidehebrew = 0x05b4;\n t.hlinebelow = 0x1e96;\n t.hmonospace = 0xff48;\n t.hoarmenian = 0x0570;\n t.hohipthai = 0x0e2b;\n t.hohiragana = 0x307b;\n t.hokatakana = 0x30db;\n t.hokatakanahalfwidth = 0xff8e;\n t.holam = 0x05b9;\n t.holam19 = 0x05b9;\n t.holam26 = 0x05b9;\n t.holam32 = 0x05b9;\n t.holamhebrew = 0x05b9;\n t.holamnarrowhebrew = 0x05b9;\n t.holamquarterhebrew = 0x05b9;\n t.holamwidehebrew = 0x05b9;\n t.honokhukthai = 0x0e2e;\n t.hookabovecomb = 0x0309;\n t.hookcmb = 0x0309;\n t.hookpalatalizedbelowcmb = 0x0321;\n t.hookretroflexbelowcmb = 0x0322;\n t.hoonsquare = 0x3342;\n t.horicoptic = 0x03e9;\n t.horizontalbar = 0x2015;\n t.horncmb = 0x031b;\n t.hotsprings = 0x2668;\n t.house = 0x2302;\n t.hparen = 0x24a3;\n t.hsuperior = 0x02b0;\n t.hturned = 0x0265;\n t.huhiragana = 0x3075;\n t.huiitosquare = 0x3333;\n t.hukatakana = 0x30d5;\n t.hukatakanahalfwidth = 0xff8c;\n t.hungarumlaut = 0x02dd;\n t.hungarumlautcmb = 0x030b;\n t.hv = 0x0195;\n t.hyphen = 0x002d;\n t.hypheninferior = 0xf6e5;\n t.hyphenmonospace = 0xff0d;\n t.hyphensmall = 0xfe63;\n t.hyphensuperior = 0xf6e6;\n t.hyphentwo = 0x2010;\n t.i = 0x0069;\n t.iacute = 0x00ed;\n t.iacyrillic = 0x044f;\n t.ibengali = 0x0987;\n t.ibopomofo = 0x3127;\n t.ibreve = 0x012d;\n t.icaron = 0x01d0;\n t.icircle = 0x24d8;\n t.icircumflex = 0x00ee;\n t.icyrillic = 0x0456;\n t.idblgrave = 0x0209;\n t.ideographearthcircle = 0x328f;\n t.ideographfirecircle = 0x328b;\n t.ideographicallianceparen = 0x323f;\n t.ideographiccallparen = 0x323a;\n t.ideographiccentrecircle = 0x32a5;\n t.ideographicclose = 0x3006;\n t.ideographiccomma = 0x3001;\n t.ideographiccommaleft = 0xff64;\n t.ideographiccongratulationparen = 0x3237;\n t.ideographiccorrectcircle = 0x32a3;\n t.ideographicearthparen = 0x322f;\n t.ideographicenterpriseparen = 0x323d;\n t.ideographicexcellentcircle = 0x329d;\n t.ideographicfestivalparen = 0x3240;\n t.ideographicfinancialcircle = 0x3296;\n t.ideographicfinancialparen = 0x3236;\n t.ideographicfireparen = 0x322b;\n t.ideographichaveparen = 0x3232;\n t.ideographichighcircle = 0x32a4;\n t.ideographiciterationmark = 0x3005;\n t.ideographiclaborcircle = 0x3298;\n t.ideographiclaborparen = 0x3238;\n t.ideographicleftcircle = 0x32a7;\n t.ideographiclowcircle = 0x32a6;\n t.ideographicmedicinecircle = 0x32a9;\n t.ideographicmetalparen = 0x322e;\n t.ideographicmoonparen = 0x322a;\n t.ideographicnameparen = 0x3234;\n t.ideographicperiod = 0x3002;\n t.ideographicprintcircle = 0x329e;\n t.ideographicreachparen = 0x3243;\n t.ideographicrepresentparen = 0x3239;\n t.ideographicresourceparen = 0x323e;\n t.ideographicrightcircle = 0x32a8;\n t.ideographicsecretcircle = 0x3299;\n t.ideographicselfparen = 0x3242;\n t.ideographicsocietyparen = 0x3233;\n t.ideographicspace = 0x3000;\n t.ideographicspecialparen = 0x3235;\n t.ideographicstockparen = 0x3231;\n t.ideographicstudyparen = 0x323b;\n t.ideographicsunparen = 0x3230;\n t.ideographicsuperviseparen = 0x323c;\n t.ideographicwaterparen = 0x322c;\n t.ideographicwoodparen = 0x322d;\n t.ideographiczero = 0x3007;\n t.ideographmetalcircle = 0x328e;\n t.ideographmooncircle = 0x328a;\n t.ideographnamecircle = 0x3294;\n t.ideographsuncircle = 0x3290;\n t.ideographwatercircle = 0x328c;\n t.ideographwoodcircle = 0x328d;\n t.ideva = 0x0907;\n t.idieresis = 0x00ef;\n t.idieresisacute = 0x1e2f;\n t.idieresiscyrillic = 0x04e5;\n t.idotbelow = 0x1ecb;\n t.iebrevecyrillic = 0x04d7;\n t.iecyrillic = 0x0435;\n t.ieungacirclekorean = 0x3275;\n t.ieungaparenkorean = 0x3215;\n t.ieungcirclekorean = 0x3267;\n t.ieungkorean = 0x3147;\n t.ieungparenkorean = 0x3207;\n t.igrave = 0x00ec;\n t.igujarati = 0x0a87;\n t.igurmukhi = 0x0a07;\n t.ihiragana = 0x3044;\n t.ihookabove = 0x1ec9;\n t.iibengali = 0x0988;\n t.iicyrillic = 0x0438;\n t.iideva = 0x0908;\n t.iigujarati = 0x0a88;\n t.iigurmukhi = 0x0a08;\n t.iimatragurmukhi = 0x0a40;\n t.iinvertedbreve = 0x020b;\n t.iishortcyrillic = 0x0439;\n t.iivowelsignbengali = 0x09c0;\n t.iivowelsigndeva = 0x0940;\n t.iivowelsigngujarati = 0x0ac0;\n t.ij = 0x0133;\n t.ikatakana = 0x30a4;\n t.ikatakanahalfwidth = 0xff72;\n t.ikorean = 0x3163;\n t.ilde = 0x02dc;\n t.iluyhebrew = 0x05ac;\n t.imacron = 0x012b;\n t.imacroncyrillic = 0x04e3;\n t.imageorapproximatelyequal = 0x2253;\n t.imatragurmukhi = 0x0a3f;\n t.imonospace = 0xff49;\n t.increment = 0x2206;\n t.infinity = 0x221e;\n t.iniarmenian = 0x056b;\n t.integral = 0x222b;\n t.integralbottom = 0x2321;\n t.integralbt = 0x2321;\n t.integralex = 0xf8f5;\n t.integraltop = 0x2320;\n t.integraltp = 0x2320;\n t.intersection = 0x2229;\n t.intisquare = 0x3305;\n t.invbullet = 0x25d8;\n t.invcircle = 0x25d9;\n t.invsmileface = 0x263b;\n t.iocyrillic = 0x0451;\n t.iogonek = 0x012f;\n t.iota = 0x03b9;\n t.iotadieresis = 0x03ca;\n t.iotadieresistonos = 0x0390;\n t.iotalatin = 0x0269;\n t.iotatonos = 0x03af;\n t.iparen = 0x24a4;\n t.irigurmukhi = 0x0a72;\n t.ismallhiragana = 0x3043;\n t.ismallkatakana = 0x30a3;\n t.ismallkatakanahalfwidth = 0xff68;\n t.issharbengali = 0x09fa;\n t.istroke = 0x0268;\n t.isuperior = 0xf6ed;\n t.iterationhiragana = 0x309d;\n t.iterationkatakana = 0x30fd;\n t.itilde = 0x0129;\n t.itildebelow = 0x1e2d;\n t.iubopomofo = 0x3129;\n t.iucyrillic = 0x044e;\n t.ivowelsignbengali = 0x09bf;\n t.ivowelsigndeva = 0x093f;\n t.ivowelsigngujarati = 0x0abf;\n t.izhitsacyrillic = 0x0475;\n t.izhitsadblgravecyrillic = 0x0477;\n t.j = 0x006a;\n t.jaarmenian = 0x0571;\n t.jabengali = 0x099c;\n t.jadeva = 0x091c;\n t.jagujarati = 0x0a9c;\n t.jagurmukhi = 0x0a1c;\n t.jbopomofo = 0x3110;\n t.jcaron = 0x01f0;\n t.jcircle = 0x24d9;\n t.jcircumflex = 0x0135;\n t.jcrossedtail = 0x029d;\n t.jdotlessstroke = 0x025f;\n t.jecyrillic = 0x0458;\n t.jeemarabic = 0x062c;\n t.jeemfinalarabic = 0xfe9e;\n t.jeeminitialarabic = 0xfe9f;\n t.jeemmedialarabic = 0xfea0;\n t.jeharabic = 0x0698;\n t.jehfinalarabic = 0xfb8b;\n t.jhabengali = 0x099d;\n t.jhadeva = 0x091d;\n t.jhagujarati = 0x0a9d;\n t.jhagurmukhi = 0x0a1d;\n t.jheharmenian = 0x057b;\n t.jis = 0x3004;\n t.jmonospace = 0xff4a;\n t.jparen = 0x24a5;\n t.jsuperior = 0x02b2;\n t.k = 0x006b;\n t.kabashkircyrillic = 0x04a1;\n t.kabengali = 0x0995;\n t.kacute = 0x1e31;\n t.kacyrillic = 0x043a;\n t.kadescendercyrillic = 0x049b;\n t.kadeva = 0x0915;\n t.kaf = 0x05db;\n t.kafarabic = 0x0643;\n t.kafdagesh = 0xfb3b;\n t.kafdageshhebrew = 0xfb3b;\n t.kaffinalarabic = 0xfeda;\n t.kafhebrew = 0x05db;\n t.kafinitialarabic = 0xfedb;\n t.kafmedialarabic = 0xfedc;\n t.kafrafehebrew = 0xfb4d;\n t.kagujarati = 0x0a95;\n t.kagurmukhi = 0x0a15;\n t.kahiragana = 0x304b;\n t.kahookcyrillic = 0x04c4;\n t.kakatakana = 0x30ab;\n t.kakatakanahalfwidth = 0xff76;\n t.kappa = 0x03ba;\n t.kappasymbolgreek = 0x03f0;\n t.kapyeounmieumkorean = 0x3171;\n t.kapyeounphieuphkorean = 0x3184;\n t.kapyeounpieupkorean = 0x3178;\n t.kapyeounssangpieupkorean = 0x3179;\n t.karoriisquare = 0x330d;\n t.kashidaautoarabic = 0x0640;\n t.kashidaautonosidebearingarabic = 0x0640;\n t.kasmallkatakana = 0x30f5;\n t.kasquare = 0x3384;\n t.kasraarabic = 0x0650;\n t.kasratanarabic = 0x064d;\n t.kastrokecyrillic = 0x049f;\n t.katahiraprolongmarkhalfwidth = 0xff70;\n t.kaverticalstrokecyrillic = 0x049d;\n t.kbopomofo = 0x310e;\n t.kcalsquare = 0x3389;\n t.kcaron = 0x01e9;\n t.kcedilla = 0x0137;\n t.kcircle = 0x24da;\n t.kcommaaccent = 0x0137;\n t.kdotbelow = 0x1e33;\n t.keharmenian = 0x0584;\n t.kehiragana = 0x3051;\n t.kekatakana = 0x30b1;\n t.kekatakanahalfwidth = 0xff79;\n t.kenarmenian = 0x056f;\n t.kesmallkatakana = 0x30f6;\n t.kgreenlandic = 0x0138;\n t.khabengali = 0x0996;\n t.khacyrillic = 0x0445;\n t.khadeva = 0x0916;\n t.khagujarati = 0x0a96;\n t.khagurmukhi = 0x0a16;\n t.khaharabic = 0x062e;\n t.khahfinalarabic = 0xfea6;\n t.khahinitialarabic = 0xfea7;\n t.khahmedialarabic = 0xfea8;\n t.kheicoptic = 0x03e7;\n t.khhadeva = 0x0959;\n t.khhagurmukhi = 0x0a59;\n t.khieukhacirclekorean = 0x3278;\n t.khieukhaparenkorean = 0x3218;\n t.khieukhcirclekorean = 0x326a;\n t.khieukhkorean = 0x314b;\n t.khieukhparenkorean = 0x320a;\n t.khokhaithai = 0x0e02;\n t.khokhonthai = 0x0e05;\n t.khokhuatthai = 0x0e03;\n t.khokhwaithai = 0x0e04;\n t.khomutthai = 0x0e5b;\n t.khook = 0x0199;\n t.khorakhangthai = 0x0e06;\n t.khzsquare = 0x3391;\n t.kihiragana = 0x304d;\n t.kikatakana = 0x30ad;\n t.kikatakanahalfwidth = 0xff77;\n t.kiroguramusquare = 0x3315;\n t.kiromeetorusquare = 0x3316;\n t.kirosquare = 0x3314;\n t.kiyeokacirclekorean = 0x326e;\n t.kiyeokaparenkorean = 0x320e;\n t.kiyeokcirclekorean = 0x3260;\n t.kiyeokkorean = 0x3131;\n t.kiyeokparenkorean = 0x3200;\n t.kiyeoksioskorean = 0x3133;\n t.kjecyrillic = 0x045c;\n t.klinebelow = 0x1e35;\n t.klsquare = 0x3398;\n t.kmcubedsquare = 0x33a6;\n t.kmonospace = 0xff4b;\n t.kmsquaredsquare = 0x33a2;\n t.kohiragana = 0x3053;\n t.kohmsquare = 0x33c0;\n t.kokaithai = 0x0e01;\n t.kokatakana = 0x30b3;\n t.kokatakanahalfwidth = 0xff7a;\n t.kooposquare = 0x331e;\n t.koppacyrillic = 0x0481;\n t.koreanstandardsymbol = 0x327f;\n t.koroniscmb = 0x0343;\n t.kparen = 0x24a6;\n t.kpasquare = 0x33aa;\n t.ksicyrillic = 0x046f;\n t.ktsquare = 0x33cf;\n t.kturned = 0x029e;\n t.kuhiragana = 0x304f;\n t.kukatakana = 0x30af;\n t.kukatakanahalfwidth = 0xff78;\n t.kvsquare = 0x33b8;\n t.kwsquare = 0x33be;\n t.l = 0x006c;\n t.labengali = 0x09b2;\n t.lacute = 0x013a;\n t.ladeva = 0x0932;\n t.lagujarati = 0x0ab2;\n t.lagurmukhi = 0x0a32;\n t.lakkhangyaothai = 0x0e45;\n t.lamaleffinalarabic = 0xfefc;\n t.lamalefhamzaabovefinalarabic = 0xfef8;\n t.lamalefhamzaaboveisolatedarabic = 0xfef7;\n t.lamalefhamzabelowfinalarabic = 0xfefa;\n t.lamalefhamzabelowisolatedarabic = 0xfef9;\n t.lamalefisolatedarabic = 0xfefb;\n t.lamalefmaddaabovefinalarabic = 0xfef6;\n t.lamalefmaddaaboveisolatedarabic = 0xfef5;\n t.lamarabic = 0x0644;\n t.lambda = 0x03bb;\n t.lambdastroke = 0x019b;\n t.lamed = 0x05dc;\n t.lameddagesh = 0xfb3c;\n t.lameddageshhebrew = 0xfb3c;\n t.lamedhebrew = 0x05dc;\n t.lamfinalarabic = 0xfede;\n t.lamhahinitialarabic = 0xfcca;\n t.laminitialarabic = 0xfedf;\n t.lamjeeminitialarabic = 0xfcc9;\n t.lamkhahinitialarabic = 0xfccb;\n t.lamlamhehisolatedarabic = 0xfdf2;\n t.lammedialarabic = 0xfee0;\n t.lammeemhahinitialarabic = 0xfd88;\n t.lammeeminitialarabic = 0xfccc;\n t.largecircle = 0x25ef;\n t.lbar = 0x019a;\n t.lbelt = 0x026c;\n t.lbopomofo = 0x310c;\n t.lcaron = 0x013e;\n t.lcedilla = 0x013c;\n t.lcircle = 0x24db;\n t.lcircumflexbelow = 0x1e3d;\n t.lcommaaccent = 0x013c;\n t.ldot = 0x0140;\n t.ldotaccent = 0x0140;\n t.ldotbelow = 0x1e37;\n t.ldotbelowmacron = 0x1e39;\n t.leftangleabovecmb = 0x031a;\n t.lefttackbelowcmb = 0x0318;\n t.less = 0x003c;\n t.lessequal = 0x2264;\n t.lessequalorgreater = 0x22da;\n t.lessmonospace = 0xff1c;\n t.lessorequivalent = 0x2272;\n t.lessorgreater = 0x2276;\n t.lessoverequal = 0x2266;\n t.lesssmall = 0xfe64;\n t.lezh = 0x026e;\n t.lfblock = 0x258c;\n t.lhookretroflex = 0x026d;\n t.lira = 0x20a4;\n t.liwnarmenian = 0x056c;\n t.lj = 0x01c9;\n t.ljecyrillic = 0x0459;\n t.ll = 0xf6c0;\n t.lladeva = 0x0933;\n t.llagujarati = 0x0ab3;\n t.llinebelow = 0x1e3b;\n t.llladeva = 0x0934;\n t.llvocalicbengali = 0x09e1;\n t.llvocalicdeva = 0x0961;\n t.llvocalicvowelsignbengali = 0x09e3;\n t.llvocalicvowelsigndeva = 0x0963;\n t.lmiddletilde = 0x026b;\n t.lmonospace = 0xff4c;\n t.lmsquare = 0x33d0;\n t.lochulathai = 0x0e2c;\n t.logicaland = 0x2227;\n t.logicalnot = 0x00ac;\n t.logicalnotreversed = 0x2310;\n t.logicalor = 0x2228;\n t.lolingthai = 0x0e25;\n t.longs = 0x017f;\n t.lowlinecenterline = 0xfe4e;\n t.lowlinecmb = 0x0332;\n t.lowlinedashed = 0xfe4d;\n t.lozenge = 0x25ca;\n t.lparen = 0x24a7;\n t.lslash = 0x0142;\n t.lsquare = 0x2113;\n t.lsuperior = 0xf6ee;\n t.ltshade = 0x2591;\n t.luthai = 0x0e26;\n t.lvocalicbengali = 0x098c;\n t.lvocalicdeva = 0x090c;\n t.lvocalicvowelsignbengali = 0x09e2;\n t.lvocalicvowelsigndeva = 0x0962;\n t.lxsquare = 0x33d3;\n t.m = 0x006d;\n t.mabengali = 0x09ae;\n t.macron = 0x00af;\n t.macronbelowcmb = 0x0331;\n t.macroncmb = 0x0304;\n t.macronlowmod = 0x02cd;\n t.macronmonospace = 0xffe3;\n t.macute = 0x1e3f;\n t.madeva = 0x092e;\n t.magujarati = 0x0aae;\n t.magurmukhi = 0x0a2e;\n t.mahapakhhebrew = 0x05a4;\n t.mahapakhlefthebrew = 0x05a4;\n t.mahiragana = 0x307e;\n t.maichattawalowleftthai = 0xf895;\n t.maichattawalowrightthai = 0xf894;\n t.maichattawathai = 0x0e4b;\n t.maichattawaupperleftthai = 0xf893;\n t.maieklowleftthai = 0xf88c;\n t.maieklowrightthai = 0xf88b;\n t.maiekthai = 0x0e48;\n t.maiekupperleftthai = 0xf88a;\n t.maihanakatleftthai = 0xf884;\n t.maihanakatthai = 0x0e31;\n t.maitaikhuleftthai = 0xf889;\n t.maitaikhuthai = 0x0e47;\n t.maitholowleftthai = 0xf88f;\n t.maitholowrightthai = 0xf88e;\n t.maithothai = 0x0e49;\n t.maithoupperleftthai = 0xf88d;\n t.maitrilowleftthai = 0xf892;\n t.maitrilowrightthai = 0xf891;\n t.maitrithai = 0x0e4a;\n t.maitriupperleftthai = 0xf890;\n t.maiyamokthai = 0x0e46;\n t.makatakana = 0x30de;\n t.makatakanahalfwidth = 0xff8f;\n t.male = 0x2642;\n t.mansyonsquare = 0x3347;\n t.maqafhebrew = 0x05be;\n t.mars = 0x2642;\n t.masoracirclehebrew = 0x05af;\n t.masquare = 0x3383;\n t.mbopomofo = 0x3107;\n t.mbsquare = 0x33d4;\n t.mcircle = 0x24dc;\n t.mcubedsquare = 0x33a5;\n t.mdotaccent = 0x1e41;\n t.mdotbelow = 0x1e43;\n t.meemarabic = 0x0645;\n t.meemfinalarabic = 0xfee2;\n t.meeminitialarabic = 0xfee3;\n t.meemmedialarabic = 0xfee4;\n t.meemmeeminitialarabic = 0xfcd1;\n t.meemmeemisolatedarabic = 0xfc48;\n t.meetorusquare = 0x334d;\n t.mehiragana = 0x3081;\n t.meizierasquare = 0x337e;\n t.mekatakana = 0x30e1;\n t.mekatakanahalfwidth = 0xff92;\n t.mem = 0x05de;\n t.memdagesh = 0xfb3e;\n t.memdageshhebrew = 0xfb3e;\n t.memhebrew = 0x05de;\n t.menarmenian = 0x0574;\n t.merkhahebrew = 0x05a5;\n t.merkhakefulahebrew = 0x05a6;\n t.merkhakefulalefthebrew = 0x05a6;\n t.merkhalefthebrew = 0x05a5;\n t.mhook = 0x0271;\n t.mhzsquare = 0x3392;\n t.middledotkatakanahalfwidth = 0xff65;\n t.middot = 0x00b7;\n t.mieumacirclekorean = 0x3272;\n t.mieumaparenkorean = 0x3212;\n t.mieumcirclekorean = 0x3264;\n t.mieumkorean = 0x3141;\n t.mieumpansioskorean = 0x3170;\n t.mieumparenkorean = 0x3204;\n t.mieumpieupkorean = 0x316e;\n t.mieumsioskorean = 0x316f;\n t.mihiragana = 0x307f;\n t.mikatakana = 0x30df;\n t.mikatakanahalfwidth = 0xff90;\n t.minus = 0x2212;\n t.minusbelowcmb = 0x0320;\n t.minuscircle = 0x2296;\n t.minusmod = 0x02d7;\n t.minusplus = 0x2213;\n t.minute = 0x2032;\n t.miribaarusquare = 0x334a;\n t.mirisquare = 0x3349;\n t.mlonglegturned = 0x0270;\n t.mlsquare = 0x3396;\n t.mmcubedsquare = 0x33a3;\n t.mmonospace = 0xff4d;\n t.mmsquaredsquare = 0x339f;\n t.mohiragana = 0x3082;\n t.mohmsquare = 0x33c1;\n t.mokatakana = 0x30e2;\n t.mokatakanahalfwidth = 0xff93;\n t.molsquare = 0x33d6;\n t.momathai = 0x0e21;\n t.moverssquare = 0x33a7;\n t.moverssquaredsquare = 0x33a8;\n t.mparen = 0x24a8;\n t.mpasquare = 0x33ab;\n t.mssquare = 0x33b3;\n t.msuperior = 0xf6ef;\n t.mturned = 0x026f;\n t.mu = 0x00b5;\n t.mu1 = 0x00b5;\n t.muasquare = 0x3382;\n t.muchgreater = 0x226b;\n t.muchless = 0x226a;\n t.mufsquare = 0x338c;\n t.mugreek = 0x03bc;\n t.mugsquare = 0x338d;\n t.muhiragana = 0x3080;\n t.mukatakana = 0x30e0;\n t.mukatakanahalfwidth = 0xff91;\n t.mulsquare = 0x3395;\n t.multiply = 0x00d7;\n t.mumsquare = 0x339b;\n t.munahhebrew = 0x05a3;\n t.munahlefthebrew = 0x05a3;\n t.musicalnote = 0x266a;\n t.musicalnotedbl = 0x266b;\n t.musicflatsign = 0x266d;\n t.musicsharpsign = 0x266f;\n t.mussquare = 0x33b2;\n t.muvsquare = 0x33b6;\n t.muwsquare = 0x33bc;\n t.mvmegasquare = 0x33b9;\n t.mvsquare = 0x33b7;\n t.mwmegasquare = 0x33bf;\n t.mwsquare = 0x33bd;\n t.n = 0x006e;\n t.nabengali = 0x09a8;\n t.nabla = 0x2207;\n t.nacute = 0x0144;\n t.nadeva = 0x0928;\n t.nagujarati = 0x0aa8;\n t.nagurmukhi = 0x0a28;\n t.nahiragana = 0x306a;\n t.nakatakana = 0x30ca;\n t.nakatakanahalfwidth = 0xff85;\n t.napostrophe = 0x0149;\n t.nasquare = 0x3381;\n t.nbopomofo = 0x310b;\n t.nbspace = 0x00a0;\n t.ncaron = 0x0148;\n t.ncedilla = 0x0146;\n t.ncircle = 0x24dd;\n t.ncircumflexbelow = 0x1e4b;\n t.ncommaaccent = 0x0146;\n t.ndotaccent = 0x1e45;\n t.ndotbelow = 0x1e47;\n t.nehiragana = 0x306d;\n t.nekatakana = 0x30cd;\n t.nekatakanahalfwidth = 0xff88;\n t.newsheqelsign = 0x20aa;\n t.nfsquare = 0x338b;\n t.ngabengali = 0x0999;\n t.ngadeva = 0x0919;\n t.ngagujarati = 0x0a99;\n t.ngagurmukhi = 0x0a19;\n t.ngonguthai = 0x0e07;\n t.nhiragana = 0x3093;\n t.nhookleft = 0x0272;\n t.nhookretroflex = 0x0273;\n t.nieunacirclekorean = 0x326f;\n t.nieunaparenkorean = 0x320f;\n t.nieuncieuckorean = 0x3135;\n t.nieuncirclekorean = 0x3261;\n t.nieunhieuhkorean = 0x3136;\n t.nieunkorean = 0x3134;\n t.nieunpansioskorean = 0x3168;\n t.nieunparenkorean = 0x3201;\n t.nieunsioskorean = 0x3167;\n t.nieuntikeutkorean = 0x3166;\n t.nihiragana = 0x306b;\n t.nikatakana = 0x30cb;\n t.nikatakanahalfwidth = 0xff86;\n t.nikhahitleftthai = 0xf899;\n t.nikhahitthai = 0x0e4d;\n t.nine = 0x0039;\n t.ninearabic = 0x0669;\n t.ninebengali = 0x09ef;\n t.ninecircle = 0x2468;\n t.ninecircleinversesansserif = 0x2792;\n t.ninedeva = 0x096f;\n t.ninegujarati = 0x0aef;\n t.ninegurmukhi = 0x0a6f;\n t.ninehackarabic = 0x0669;\n t.ninehangzhou = 0x3029;\n t.nineideographicparen = 0x3228;\n t.nineinferior = 0x2089;\n t.ninemonospace = 0xff19;\n t.nineoldstyle = 0xf739;\n t.nineparen = 0x247c;\n t.nineperiod = 0x2490;\n t.ninepersian = 0x06f9;\n t.nineroman = 0x2178;\n t.ninesuperior = 0x2079;\n t.nineteencircle = 0x2472;\n t.nineteenparen = 0x2486;\n t.nineteenperiod = 0x249a;\n t.ninethai = 0x0e59;\n t.nj = 0x01cc;\n t.njecyrillic = 0x045a;\n t.nkatakana = 0x30f3;\n t.nkatakanahalfwidth = 0xff9d;\n t.nlegrightlong = 0x019e;\n t.nlinebelow = 0x1e49;\n t.nmonospace = 0xff4e;\n t.nmsquare = 0x339a;\n t.nnabengali = 0x09a3;\n t.nnadeva = 0x0923;\n t.nnagujarati = 0x0aa3;\n t.nnagurmukhi = 0x0a23;\n t.nnnadeva = 0x0929;\n t.nohiragana = 0x306e;\n t.nokatakana = 0x30ce;\n t.nokatakanahalfwidth = 0xff89;\n t.nonbreakingspace = 0x00a0;\n t.nonenthai = 0x0e13;\n t.nonuthai = 0x0e19;\n t.noonarabic = 0x0646;\n t.noonfinalarabic = 0xfee6;\n t.noonghunnaarabic = 0x06ba;\n t.noonghunnafinalarabic = 0xfb9f;\n t.nooninitialarabic = 0xfee7;\n t.noonjeeminitialarabic = 0xfcd2;\n t.noonjeemisolatedarabic = 0xfc4b;\n t.noonmedialarabic = 0xfee8;\n t.noonmeeminitialarabic = 0xfcd5;\n t.noonmeemisolatedarabic = 0xfc4e;\n t.noonnoonfinalarabic = 0xfc8d;\n t.notcontains = 0x220c;\n t.notelement = 0x2209;\n t.notelementof = 0x2209;\n t.notequal = 0x2260;\n t.notgreater = 0x226f;\n t.notgreaternorequal = 0x2271;\n t.notgreaternorless = 0x2279;\n t.notidentical = 0x2262;\n t.notless = 0x226e;\n t.notlessnorequal = 0x2270;\n t.notparallel = 0x2226;\n t.notprecedes = 0x2280;\n t.notsubset = 0x2284;\n t.notsucceeds = 0x2281;\n t.notsuperset = 0x2285;\n t.nowarmenian = 0x0576;\n t.nparen = 0x24a9;\n t.nssquare = 0x33b1;\n t.nsuperior = 0x207f;\n t.ntilde = 0x00f1;\n t.nu = 0x03bd;\n t.nuhiragana = 0x306c;\n t.nukatakana = 0x30cc;\n t.nukatakanahalfwidth = 0xff87;\n t.nuktabengali = 0x09bc;\n t.nuktadeva = 0x093c;\n t.nuktagujarati = 0x0abc;\n t.nuktagurmukhi = 0x0a3c;\n t.numbersign = 0x0023;\n t.numbersignmonospace = 0xff03;\n t.numbersignsmall = 0xfe5f;\n t.numeralsigngreek = 0x0374;\n t.numeralsignlowergreek = 0x0375;\n t.numero = 0x2116;\n t.nun = 0x05e0;\n t.nundagesh = 0xfb40;\n t.nundageshhebrew = 0xfb40;\n t.nunhebrew = 0x05e0;\n t.nvsquare = 0x33b5;\n t.nwsquare = 0x33bb;\n t.nyabengali = 0x099e;\n t.nyadeva = 0x091e;\n t.nyagujarati = 0x0a9e;\n t.nyagurmukhi = 0x0a1e;\n t.o = 0x006f;\n t.oacute = 0x00f3;\n t.oangthai = 0x0e2d;\n t.obarred = 0x0275;\n t.obarredcyrillic = 0x04e9;\n t.obarreddieresiscyrillic = 0x04eb;\n t.obengali = 0x0993;\n t.obopomofo = 0x311b;\n t.obreve = 0x014f;\n t.ocandradeva = 0x0911;\n t.ocandragujarati = 0x0a91;\n t.ocandravowelsigndeva = 0x0949;\n t.ocandravowelsigngujarati = 0x0ac9;\n t.ocaron = 0x01d2;\n t.ocircle = 0x24de;\n t.ocircumflex = 0x00f4;\n t.ocircumflexacute = 0x1ed1;\n t.ocircumflexdotbelow = 0x1ed9;\n t.ocircumflexgrave = 0x1ed3;\n t.ocircumflexhookabove = 0x1ed5;\n t.ocircumflextilde = 0x1ed7;\n t.ocyrillic = 0x043e;\n t.odblacute = 0x0151;\n t.odblgrave = 0x020d;\n t.odeva = 0x0913;\n t.odieresis = 0x00f6;\n t.odieresiscyrillic = 0x04e7;\n t.odotbelow = 0x1ecd;\n t.oe = 0x0153;\n t.oekorean = 0x315a;\n t.ogonek = 0x02db;\n t.ogonekcmb = 0x0328;\n t.ograve = 0x00f2;\n t.ogujarati = 0x0a93;\n t.oharmenian = 0x0585;\n t.ohiragana = 0x304a;\n t.ohookabove = 0x1ecf;\n t.ohorn = 0x01a1;\n t.ohornacute = 0x1edb;\n t.ohorndotbelow = 0x1ee3;\n t.ohorngrave = 0x1edd;\n t.ohornhookabove = 0x1edf;\n t.ohorntilde = 0x1ee1;\n t.ohungarumlaut = 0x0151;\n t.oi = 0x01a3;\n t.oinvertedbreve = 0x020f;\n t.okatakana = 0x30aa;\n t.okatakanahalfwidth = 0xff75;\n t.okorean = 0x3157;\n t.olehebrew = 0x05ab;\n t.omacron = 0x014d;\n t.omacronacute = 0x1e53;\n t.omacrongrave = 0x1e51;\n t.omdeva = 0x0950;\n t.omega = 0x03c9;\n t.omega1 = 0x03d6;\n t.omegacyrillic = 0x0461;\n t.omegalatinclosed = 0x0277;\n t.omegaroundcyrillic = 0x047b;\n t.omegatitlocyrillic = 0x047d;\n t.omegatonos = 0x03ce;\n t.omgujarati = 0x0ad0;\n t.omicron = 0x03bf;\n t.omicrontonos = 0x03cc;\n t.omonospace = 0xff4f;\n t.one = 0x0031;\n t.onearabic = 0x0661;\n t.onebengali = 0x09e7;\n t.onecircle = 0x2460;\n t.onecircleinversesansserif = 0x278a;\n t.onedeva = 0x0967;\n t.onedotenleader = 0x2024;\n t.oneeighth = 0x215b;\n t.onefitted = 0xf6dc;\n t.onegujarati = 0x0ae7;\n t.onegurmukhi = 0x0a67;\n t.onehackarabic = 0x0661;\n t.onehalf = 0x00bd;\n t.onehangzhou = 0x3021;\n t.oneideographicparen = 0x3220;\n t.oneinferior = 0x2081;\n t.onemonospace = 0xff11;\n t.onenumeratorbengali = 0x09f4;\n t.oneoldstyle = 0xf731;\n t.oneparen = 0x2474;\n t.oneperiod = 0x2488;\n t.onepersian = 0x06f1;\n t.onequarter = 0x00bc;\n t.oneroman = 0x2170;\n t.onesuperior = 0x00b9;\n t.onethai = 0x0e51;\n t.onethird = 0x2153;\n t.oogonek = 0x01eb;\n t.oogonekmacron = 0x01ed;\n t.oogurmukhi = 0x0a13;\n t.oomatragurmukhi = 0x0a4b;\n t.oopen = 0x0254;\n t.oparen = 0x24aa;\n t.openbullet = 0x25e6;\n t.option = 0x2325;\n t.ordfeminine = 0x00aa;\n t.ordmasculine = 0x00ba;\n t.orthogonal = 0x221f;\n t.oshortdeva = 0x0912;\n t.oshortvowelsigndeva = 0x094a;\n t.oslash = 0x00f8;\n t.oslashacute = 0x01ff;\n t.osmallhiragana = 0x3049;\n t.osmallkatakana = 0x30a9;\n t.osmallkatakanahalfwidth = 0xff6b;\n t.ostrokeacute = 0x01ff;\n t.osuperior = 0xf6f0;\n t.otcyrillic = 0x047f;\n t.otilde = 0x00f5;\n t.otildeacute = 0x1e4d;\n t.otildedieresis = 0x1e4f;\n t.oubopomofo = 0x3121;\n t.overline = 0x203e;\n t.overlinecenterline = 0xfe4a;\n t.overlinecmb = 0x0305;\n t.overlinedashed = 0xfe49;\n t.overlinedblwavy = 0xfe4c;\n t.overlinewavy = 0xfe4b;\n t.overscore = 0x00af;\n t.ovowelsignbengali = 0x09cb;\n t.ovowelsigndeva = 0x094b;\n t.ovowelsigngujarati = 0x0acb;\n t.p = 0x0070;\n t.paampssquare = 0x3380;\n t.paasentosquare = 0x332b;\n t.pabengali = 0x09aa;\n t.pacute = 0x1e55;\n t.padeva = 0x092a;\n t.pagedown = 0x21df;\n t.pageup = 0x21de;\n t.pagujarati = 0x0aaa;\n t.pagurmukhi = 0x0a2a;\n t.pahiragana = 0x3071;\n t.paiyannoithai = 0x0e2f;\n t.pakatakana = 0x30d1;\n t.palatalizationcyrilliccmb = 0x0484;\n t.palochkacyrillic = 0x04c0;\n t.pansioskorean = 0x317f;\n t.paragraph = 0x00b6;\n t.parallel = 0x2225;\n t.parenleft = 0x0028;\n t.parenleftaltonearabic = 0xfd3e;\n t.parenleftbt = 0xf8ed;\n t.parenleftex = 0xf8ec;\n t.parenleftinferior = 0x208d;\n t.parenleftmonospace = 0xff08;\n t.parenleftsmall = 0xfe59;\n t.parenleftsuperior = 0x207d;\n t.parenlefttp = 0xf8eb;\n t.parenleftvertical = 0xfe35;\n t.parenright = 0x0029;\n t.parenrightaltonearabic = 0xfd3f;\n t.parenrightbt = 0xf8f8;\n t.parenrightex = 0xf8f7;\n t.parenrightinferior = 0x208e;\n t.parenrightmonospace = 0xff09;\n t.parenrightsmall = 0xfe5a;\n t.parenrightsuperior = 0x207e;\n t.parenrighttp = 0xf8f6;\n t.parenrightvertical = 0xfe36;\n t.partialdiff = 0x2202;\n t.paseqhebrew = 0x05c0;\n t.pashtahebrew = 0x0599;\n t.pasquare = 0x33a9;\n t.patah = 0x05b7;\n t.patah11 = 0x05b7;\n t.patah1d = 0x05b7;\n t.patah2a = 0x05b7;\n t.patahhebrew = 0x05b7;\n t.patahnarrowhebrew = 0x05b7;\n t.patahquarterhebrew = 0x05b7;\n t.patahwidehebrew = 0x05b7;\n t.pazerhebrew = 0x05a1;\n t.pbopomofo = 0x3106;\n t.pcircle = 0x24df;\n t.pdotaccent = 0x1e57;\n t.pe = 0x05e4;\n t.pecyrillic = 0x043f;\n t.pedagesh = 0xfb44;\n t.pedageshhebrew = 0xfb44;\n t.peezisquare = 0x333b;\n t.pefinaldageshhebrew = 0xfb43;\n t.peharabic = 0x067e;\n t.peharmenian = 0x057a;\n t.pehebrew = 0x05e4;\n t.pehfinalarabic = 0xfb57;\n t.pehinitialarabic = 0xfb58;\n t.pehiragana = 0x307a;\n t.pehmedialarabic = 0xfb59;\n t.pekatakana = 0x30da;\n t.pemiddlehookcyrillic = 0x04a7;\n t.perafehebrew = 0xfb4e;\n t.percent = 0x0025;\n t.percentarabic = 0x066a;\n t.percentmonospace = 0xff05;\n t.percentsmall = 0xfe6a;\n t.period = 0x002e;\n t.periodarmenian = 0x0589;\n t.periodcentered = 0x00b7;\n t.periodhalfwidth = 0xff61;\n t.periodinferior = 0xf6e7;\n t.periodmonospace = 0xff0e;\n t.periodsmall = 0xfe52;\n t.periodsuperior = 0xf6e8;\n t.perispomenigreekcmb = 0x0342;\n t.perpendicular = 0x22a5;\n t.perthousand = 0x2030;\n t.peseta = 0x20a7;\n t.pfsquare = 0x338a;\n t.phabengali = 0x09ab;\n t.phadeva = 0x092b;\n t.phagujarati = 0x0aab;\n t.phagurmukhi = 0x0a2b;\n t.phi = 0x03c6;\n t.phi1 = 0x03d5;\n t.phieuphacirclekorean = 0x327a;\n t.phieuphaparenkorean = 0x321a;\n t.phieuphcirclekorean = 0x326c;\n t.phieuphkorean = 0x314d;\n t.phieuphparenkorean = 0x320c;\n t.philatin = 0x0278;\n t.phinthuthai = 0x0e3a;\n t.phisymbolgreek = 0x03d5;\n t.phook = 0x01a5;\n t.phophanthai = 0x0e1e;\n t.phophungthai = 0x0e1c;\n t.phosamphaothai = 0x0e20;\n t.pi = 0x03c0;\n t.pieupacirclekorean = 0x3273;\n t.pieupaparenkorean = 0x3213;\n t.pieupcieuckorean = 0x3176;\n t.pieupcirclekorean = 0x3265;\n t.pieupkiyeokkorean = 0x3172;\n t.pieupkorean = 0x3142;\n t.pieupparenkorean = 0x3205;\n t.pieupsioskiyeokkorean = 0x3174;\n t.pieupsioskorean = 0x3144;\n t.pieupsiostikeutkorean = 0x3175;\n t.pieupthieuthkorean = 0x3177;\n t.pieuptikeutkorean = 0x3173;\n t.pihiragana = 0x3074;\n t.pikatakana = 0x30d4;\n t.pisymbolgreek = 0x03d6;\n t.piwrarmenian = 0x0583;\n t.plus = 0x002b;\n t.plusbelowcmb = 0x031f;\n t.pluscircle = 0x2295;\n t.plusminus = 0x00b1;\n t.plusmod = 0x02d6;\n t.plusmonospace = 0xff0b;\n t.plussmall = 0xfe62;\n t.plussuperior = 0x207a;\n t.pmonospace = 0xff50;\n t.pmsquare = 0x33d8;\n t.pohiragana = 0x307d;\n t.pointingindexdownwhite = 0x261f;\n t.pointingindexleftwhite = 0x261c;\n t.pointingindexrightwhite = 0x261e;\n t.pointingindexupwhite = 0x261d;\n t.pokatakana = 0x30dd;\n t.poplathai = 0x0e1b;\n t.postalmark = 0x3012;\n t.postalmarkface = 0x3020;\n t.pparen = 0x24ab;\n t.precedes = 0x227a;\n t.prescription = 0x211e;\n t.primemod = 0x02b9;\n t.primereversed = 0x2035;\n t.product = 0x220f;\n t.projective = 0x2305;\n t.prolongedkana = 0x30fc;\n t.propellor = 0x2318;\n t.propersubset = 0x2282;\n t.propersuperset = 0x2283;\n t.proportion = 0x2237;\n t.proportional = 0x221d;\n t.psi = 0x03c8;\n t.psicyrillic = 0x0471;\n t.psilipneumatacyrilliccmb = 0x0486;\n t.pssquare = 0x33b0;\n t.puhiragana = 0x3077;\n t.pukatakana = 0x30d7;\n t.pvsquare = 0x33b4;\n t.pwsquare = 0x33ba;\n t.q = 0x0071;\n t.qadeva = 0x0958;\n t.qadmahebrew = 0x05a8;\n t.qafarabic = 0x0642;\n t.qaffinalarabic = 0xfed6;\n t.qafinitialarabic = 0xfed7;\n t.qafmedialarabic = 0xfed8;\n t.qamats = 0x05b8;\n t.qamats10 = 0x05b8;\n t.qamats1a = 0x05b8;\n t.qamats1c = 0x05b8;\n t.qamats27 = 0x05b8;\n t.qamats29 = 0x05b8;\n t.qamats33 = 0x05b8;\n t.qamatsde = 0x05b8;\n t.qamatshebrew = 0x05b8;\n t.qamatsnarrowhebrew = 0x05b8;\n t.qamatsqatanhebrew = 0x05b8;\n t.qamatsqatannarrowhebrew = 0x05b8;\n t.qamatsqatanquarterhebrew = 0x05b8;\n t.qamatsqatanwidehebrew = 0x05b8;\n t.qamatsquarterhebrew = 0x05b8;\n t.qamatswidehebrew = 0x05b8;\n t.qarneyparahebrew = 0x059f;\n t.qbopomofo = 0x3111;\n t.qcircle = 0x24e0;\n t.qhook = 0x02a0;\n t.qmonospace = 0xff51;\n t.qof = 0x05e7;\n t.qofdagesh = 0xfb47;\n t.qofdageshhebrew = 0xfb47;\n t.qofhebrew = 0x05e7;\n t.qparen = 0x24ac;\n t.quarternote = 0x2669;\n t.qubuts = 0x05bb;\n t.qubuts18 = 0x05bb;\n t.qubuts25 = 0x05bb;\n t.qubuts31 = 0x05bb;\n t.qubutshebrew = 0x05bb;\n t.qubutsnarrowhebrew = 0x05bb;\n t.qubutsquarterhebrew = 0x05bb;\n t.qubutswidehebrew = 0x05bb;\n t.question = 0x003f;\n t.questionarabic = 0x061f;\n t.questionarmenian = 0x055e;\n t.questiondown = 0x00bf;\n t.questiondownsmall = 0xf7bf;\n t.questiongreek = 0x037e;\n t.questionmonospace = 0xff1f;\n t.questionsmall = 0xf73f;\n t.quotedbl = 0x0022;\n t.quotedblbase = 0x201e;\n t.quotedblleft = 0x201c;\n t.quotedblmonospace = 0xff02;\n t.quotedblprime = 0x301e;\n t.quotedblprimereversed = 0x301d;\n t.quotedblright = 0x201d;\n t.quoteleft = 0x2018;\n t.quoteleftreversed = 0x201b;\n t.quotereversed = 0x201b;\n t.quoteright = 0x2019;\n t.quoterightn = 0x0149;\n t.quotesinglbase = 0x201a;\n t.quotesingle = 0x0027;\n t.quotesinglemonospace = 0xff07;\n t.r = 0x0072;\n t.raarmenian = 0x057c;\n t.rabengali = 0x09b0;\n t.racute = 0x0155;\n t.radeva = 0x0930;\n t.radical = 0x221a;\n t.radicalex = 0xf8e5;\n t.radoverssquare = 0x33ae;\n t.radoverssquaredsquare = 0x33af;\n t.radsquare = 0x33ad;\n t.rafe = 0x05bf;\n t.rafehebrew = 0x05bf;\n t.ragujarati = 0x0ab0;\n t.ragurmukhi = 0x0a30;\n t.rahiragana = 0x3089;\n t.rakatakana = 0x30e9;\n t.rakatakanahalfwidth = 0xff97;\n t.ralowerdiagonalbengali = 0x09f1;\n t.ramiddlediagonalbengali = 0x09f0;\n t.ramshorn = 0x0264;\n t.ratio = 0x2236;\n t.rbopomofo = 0x3116;\n t.rcaron = 0x0159;\n t.rcedilla = 0x0157;\n t.rcircle = 0x24e1;\n t.rcommaaccent = 0x0157;\n t.rdblgrave = 0x0211;\n t.rdotaccent = 0x1e59;\n t.rdotbelow = 0x1e5b;\n t.rdotbelowmacron = 0x1e5d;\n t.referencemark = 0x203b;\n t.reflexsubset = 0x2286;\n t.reflexsuperset = 0x2287;\n t.registered = 0x00ae;\n t.registersans = 0xf8e8;\n t.registerserif = 0xf6da;\n t.reharabic = 0x0631;\n t.reharmenian = 0x0580;\n t.rehfinalarabic = 0xfeae;\n t.rehiragana = 0x308c;\n t.rekatakana = 0x30ec;\n t.rekatakanahalfwidth = 0xff9a;\n t.resh = 0x05e8;\n t.reshdageshhebrew = 0xfb48;\n t.reshhebrew = 0x05e8;\n t.reversedtilde = 0x223d;\n t.reviahebrew = 0x0597;\n t.reviamugrashhebrew = 0x0597;\n t.revlogicalnot = 0x2310;\n t.rfishhook = 0x027e;\n t.rfishhookreversed = 0x027f;\n t.rhabengali = 0x09dd;\n t.rhadeva = 0x095d;\n t.rho = 0x03c1;\n t.rhook = 0x027d;\n t.rhookturned = 0x027b;\n t.rhookturnedsuperior = 0x02b5;\n t.rhosymbolgreek = 0x03f1;\n t.rhotichookmod = 0x02de;\n t.rieulacirclekorean = 0x3271;\n t.rieulaparenkorean = 0x3211;\n t.rieulcirclekorean = 0x3263;\n t.rieulhieuhkorean = 0x3140;\n t.rieulkiyeokkorean = 0x313a;\n t.rieulkiyeoksioskorean = 0x3169;\n t.rieulkorean = 0x3139;\n t.rieulmieumkorean = 0x313b;\n t.rieulpansioskorean = 0x316c;\n t.rieulparenkorean = 0x3203;\n t.rieulphieuphkorean = 0x313f;\n t.rieulpieupkorean = 0x313c;\n t.rieulpieupsioskorean = 0x316b;\n t.rieulsioskorean = 0x313d;\n t.rieulthieuthkorean = 0x313e;\n t.rieultikeutkorean = 0x316a;\n t.rieulyeorinhieuhkorean = 0x316d;\n t.rightangle = 0x221f;\n t.righttackbelowcmb = 0x0319;\n t.righttriangle = 0x22bf;\n t.rihiragana = 0x308a;\n t.rikatakana = 0x30ea;\n t.rikatakanahalfwidth = 0xff98;\n t.ring = 0x02da;\n t.ringbelowcmb = 0x0325;\n t.ringcmb = 0x030a;\n t.ringhalfleft = 0x02bf;\n t.ringhalfleftarmenian = 0x0559;\n t.ringhalfleftbelowcmb = 0x031c;\n t.ringhalfleftcentered = 0x02d3;\n t.ringhalfright = 0x02be;\n t.ringhalfrightbelowcmb = 0x0339;\n t.ringhalfrightcentered = 0x02d2;\n t.rinvertedbreve = 0x0213;\n t.rittorusquare = 0x3351;\n t.rlinebelow = 0x1e5f;\n t.rlongleg = 0x027c;\n t.rlonglegturned = 0x027a;\n t.rmonospace = 0xff52;\n t.rohiragana = 0x308d;\n t.rokatakana = 0x30ed;\n t.rokatakanahalfwidth = 0xff9b;\n t.roruathai = 0x0e23;\n t.rparen = 0x24ad;\n t.rrabengali = 0x09dc;\n t.rradeva = 0x0931;\n t.rragurmukhi = 0x0a5c;\n t.rreharabic = 0x0691;\n t.rrehfinalarabic = 0xfb8d;\n t.rrvocalicbengali = 0x09e0;\n t.rrvocalicdeva = 0x0960;\n t.rrvocalicgujarati = 0x0ae0;\n t.rrvocalicvowelsignbengali = 0x09c4;\n t.rrvocalicvowelsigndeva = 0x0944;\n t.rrvocalicvowelsigngujarati = 0x0ac4;\n t.rsuperior = 0xf6f1;\n t.rtblock = 0x2590;\n t.rturned = 0x0279;\n t.rturnedsuperior = 0x02b4;\n t.ruhiragana = 0x308b;\n t.rukatakana = 0x30eb;\n t.rukatakanahalfwidth = 0xff99;\n t.rupeemarkbengali = 0x09f2;\n t.rupeesignbengali = 0x09f3;\n t.rupiah = 0xf6dd;\n t.ruthai = 0x0e24;\n t.rvocalicbengali = 0x098b;\n t.rvocalicdeva = 0x090b;\n t.rvocalicgujarati = 0x0a8b;\n t.rvocalicvowelsignbengali = 0x09c3;\n t.rvocalicvowelsigndeva = 0x0943;\n t.rvocalicvowelsigngujarati = 0x0ac3;\n t.s = 0x0073;\n t.sabengali = 0x09b8;\n t.sacute = 0x015b;\n t.sacutedotaccent = 0x1e65;\n t.sadarabic = 0x0635;\n t.sadeva = 0x0938;\n t.sadfinalarabic = 0xfeba;\n t.sadinitialarabic = 0xfebb;\n t.sadmedialarabic = 0xfebc;\n t.sagujarati = 0x0ab8;\n t.sagurmukhi = 0x0a38;\n t.sahiragana = 0x3055;\n t.sakatakana = 0x30b5;\n t.sakatakanahalfwidth = 0xff7b;\n t.sallallahoualayhewasallamarabic = 0xfdfa;\n t.samekh = 0x05e1;\n t.samekhdagesh = 0xfb41;\n t.samekhdageshhebrew = 0xfb41;\n t.samekhhebrew = 0x05e1;\n t.saraaathai = 0x0e32;\n t.saraaethai = 0x0e41;\n t.saraaimaimalaithai = 0x0e44;\n t.saraaimaimuanthai = 0x0e43;\n t.saraamthai = 0x0e33;\n t.saraathai = 0x0e30;\n t.saraethai = 0x0e40;\n t.saraiileftthai = 0xf886;\n t.saraiithai = 0x0e35;\n t.saraileftthai = 0xf885;\n t.saraithai = 0x0e34;\n t.saraothai = 0x0e42;\n t.saraueeleftthai = 0xf888;\n t.saraueethai = 0x0e37;\n t.saraueleftthai = 0xf887;\n t.sarauethai = 0x0e36;\n t.sarauthai = 0x0e38;\n t.sarauuthai = 0x0e39;\n t.sbopomofo = 0x3119;\n t.scaron = 0x0161;\n t.scarondotaccent = 0x1e67;\n t.scedilla = 0x015f;\n t.schwa = 0x0259;\n t.schwacyrillic = 0x04d9;\n t.schwadieresiscyrillic = 0x04db;\n t.schwahook = 0x025a;\n t.scircle = 0x24e2;\n t.scircumflex = 0x015d;\n t.scommaaccent = 0x0219;\n t.sdotaccent = 0x1e61;\n t.sdotbelow = 0x1e63;\n t.sdotbelowdotaccent = 0x1e69;\n t.seagullbelowcmb = 0x033c;\n t.second = 0x2033;\n t.secondtonechinese = 0x02ca;\n t.section = 0x00a7;\n t.seenarabic = 0x0633;\n t.seenfinalarabic = 0xfeb2;\n t.seeninitialarabic = 0xfeb3;\n t.seenmedialarabic = 0xfeb4;\n t.segol = 0x05b6;\n t.segol13 = 0x05b6;\n t.segol1f = 0x05b6;\n t.segol2c = 0x05b6;\n t.segolhebrew = 0x05b6;\n t.segolnarrowhebrew = 0x05b6;\n t.segolquarterhebrew = 0x05b6;\n t.segoltahebrew = 0x0592;\n t.segolwidehebrew = 0x05b6;\n t.seharmenian = 0x057d;\n t.sehiragana = 0x305b;\n t.sekatakana = 0x30bb;\n t.sekatakanahalfwidth = 0xff7e;\n t.semicolon = 0x003b;\n t.semicolonarabic = 0x061b;\n t.semicolonmonospace = 0xff1b;\n t.semicolonsmall = 0xfe54;\n t.semivoicedmarkkana = 0x309c;\n t.semivoicedmarkkanahalfwidth = 0xff9f;\n t.sentisquare = 0x3322;\n t.sentosquare = 0x3323;\n t.seven = 0x0037;\n t.sevenarabic = 0x0667;\n t.sevenbengali = 0x09ed;\n t.sevencircle = 0x2466;\n t.sevencircleinversesansserif = 0x2790;\n t.sevendeva = 0x096d;\n t.seveneighths = 0x215e;\n t.sevengujarati = 0x0aed;\n t.sevengurmukhi = 0x0a6d;\n t.sevenhackarabic = 0x0667;\n t.sevenhangzhou = 0x3027;\n t.sevenideographicparen = 0x3226;\n t.seveninferior = 0x2087;\n t.sevenmonospace = 0xff17;\n t.sevenoldstyle = 0xf737;\n t.sevenparen = 0x247a;\n t.sevenperiod = 0x248e;\n t.sevenpersian = 0x06f7;\n t.sevenroman = 0x2176;\n t.sevensuperior = 0x2077;\n t.seventeencircle = 0x2470;\n t.seventeenparen = 0x2484;\n t.seventeenperiod = 0x2498;\n t.seventhai = 0x0e57;\n t.sfthyphen = 0x00ad;\n t.shaarmenian = 0x0577;\n t.shabengali = 0x09b6;\n t.shacyrillic = 0x0448;\n t.shaddaarabic = 0x0651;\n t.shaddadammaarabic = 0xfc61;\n t.shaddadammatanarabic = 0xfc5e;\n t.shaddafathaarabic = 0xfc60;\n t.shaddakasraarabic = 0xfc62;\n t.shaddakasratanarabic = 0xfc5f;\n t.shade = 0x2592;\n t.shadedark = 0x2593;\n t.shadelight = 0x2591;\n t.shademedium = 0x2592;\n t.shadeva = 0x0936;\n t.shagujarati = 0x0ab6;\n t.shagurmukhi = 0x0a36;\n t.shalshelethebrew = 0x0593;\n t.shbopomofo = 0x3115;\n t.shchacyrillic = 0x0449;\n t.sheenarabic = 0x0634;\n t.sheenfinalarabic = 0xfeb6;\n t.sheeninitialarabic = 0xfeb7;\n t.sheenmedialarabic = 0xfeb8;\n t.sheicoptic = 0x03e3;\n t.sheqel = 0x20aa;\n t.sheqelhebrew = 0x20aa;\n t.sheva = 0x05b0;\n t.sheva115 = 0x05b0;\n t.sheva15 = 0x05b0;\n t.sheva22 = 0x05b0;\n t.sheva2e = 0x05b0;\n t.shevahebrew = 0x05b0;\n t.shevanarrowhebrew = 0x05b0;\n t.shevaquarterhebrew = 0x05b0;\n t.shevawidehebrew = 0x05b0;\n t.shhacyrillic = 0x04bb;\n t.shimacoptic = 0x03ed;\n t.shin = 0x05e9;\n t.shindagesh = 0xfb49;\n t.shindageshhebrew = 0xfb49;\n t.shindageshshindot = 0xfb2c;\n t.shindageshshindothebrew = 0xfb2c;\n t.shindageshsindot = 0xfb2d;\n t.shindageshsindothebrew = 0xfb2d;\n t.shindothebrew = 0x05c1;\n t.shinhebrew = 0x05e9;\n t.shinshindot = 0xfb2a;\n t.shinshindothebrew = 0xfb2a;\n t.shinsindot = 0xfb2b;\n t.shinsindothebrew = 0xfb2b;\n t.shook = 0x0282;\n t.sigma = 0x03c3;\n t.sigma1 = 0x03c2;\n t.sigmafinal = 0x03c2;\n t.sigmalunatesymbolgreek = 0x03f2;\n t.sihiragana = 0x3057;\n t.sikatakana = 0x30b7;\n t.sikatakanahalfwidth = 0xff7c;\n t.siluqhebrew = 0x05bd;\n t.siluqlefthebrew = 0x05bd;\n t.similar = 0x223c;\n t.sindothebrew = 0x05c2;\n t.siosacirclekorean = 0x3274;\n t.siosaparenkorean = 0x3214;\n t.sioscieuckorean = 0x317e;\n t.sioscirclekorean = 0x3266;\n t.sioskiyeokkorean = 0x317a;\n t.sioskorean = 0x3145;\n t.siosnieunkorean = 0x317b;\n t.siosparenkorean = 0x3206;\n t.siospieupkorean = 0x317d;\n t.siostikeutkorean = 0x317c;\n t.six = 0x0036;\n t.sixarabic = 0x0666;\n t.sixbengali = 0x09ec;\n t.sixcircle = 0x2465;\n t.sixcircleinversesansserif = 0x278f;\n t.sixdeva = 0x096c;\n t.sixgujarati = 0x0aec;\n t.sixgurmukhi = 0x0a6c;\n t.sixhackarabic = 0x0666;\n t.sixhangzhou = 0x3026;\n t.sixideographicparen = 0x3225;\n t.sixinferior = 0x2086;\n t.sixmonospace = 0xff16;\n t.sixoldstyle = 0xf736;\n t.sixparen = 0x2479;\n t.sixperiod = 0x248d;\n t.sixpersian = 0x06f6;\n t.sixroman = 0x2175;\n t.sixsuperior = 0x2076;\n t.sixteencircle = 0x246f;\n t.sixteencurrencydenominatorbengali = 0x09f9;\n t.sixteenparen = 0x2483;\n t.sixteenperiod = 0x2497;\n t.sixthai = 0x0e56;\n t.slash = 0x002f;\n t.slashmonospace = 0xff0f;\n t.slong = 0x017f;\n t.slongdotaccent = 0x1e9b;\n t.smileface = 0x263a;\n t.smonospace = 0xff53;\n t.sofpasuqhebrew = 0x05c3;\n t.softhyphen = 0x00ad;\n t.softsigncyrillic = 0x044c;\n t.sohiragana = 0x305d;\n t.sokatakana = 0x30bd;\n t.sokatakanahalfwidth = 0xff7f;\n t.soliduslongoverlaycmb = 0x0338;\n t.solidusshortoverlaycmb = 0x0337;\n t.sorusithai = 0x0e29;\n t.sosalathai = 0x0e28;\n t.sosothai = 0x0e0b;\n t.sosuathai = 0x0e2a;\n t.space = 0x0020;\n t.spacehackarabic = 0x0020;\n t.spade = 0x2660;\n t.spadesuitblack = 0x2660;\n t.spadesuitwhite = 0x2664;\n t.sparen = 0x24ae;\n t.squarebelowcmb = 0x033b;\n t.squarecc = 0x33c4;\n t.squarecm = 0x339d;\n t.squarediagonalcrosshatchfill = 0x25a9;\n t.squarehorizontalfill = 0x25a4;\n t.squarekg = 0x338f;\n t.squarekm = 0x339e;\n t.squarekmcapital = 0x33ce;\n t.squareln = 0x33d1;\n t.squarelog = 0x33d2;\n t.squaremg = 0x338e;\n t.squaremil = 0x33d5;\n t.squaremm = 0x339c;\n t.squaremsquared = 0x33a1;\n t.squareorthogonalcrosshatchfill = 0x25a6;\n t.squareupperlefttolowerrightfill = 0x25a7;\n t.squareupperrighttolowerleftfill = 0x25a8;\n t.squareverticalfill = 0x25a5;\n t.squarewhitewithsmallblack = 0x25a3;\n t.srsquare = 0x33db;\n t.ssabengali = 0x09b7;\n t.ssadeva = 0x0937;\n t.ssagujarati = 0x0ab7;\n t.ssangcieuckorean = 0x3149;\n t.ssanghieuhkorean = 0x3185;\n t.ssangieungkorean = 0x3180;\n t.ssangkiyeokkorean = 0x3132;\n t.ssangnieunkorean = 0x3165;\n t.ssangpieupkorean = 0x3143;\n t.ssangsioskorean = 0x3146;\n t.ssangtikeutkorean = 0x3138;\n t.ssuperior = 0xf6f2;\n t.sterling = 0x00a3;\n t.sterlingmonospace = 0xffe1;\n t.strokelongoverlaycmb = 0x0336;\n t.strokeshortoverlaycmb = 0x0335;\n t.subset = 0x2282;\n t.subsetnotequal = 0x228a;\n t.subsetorequal = 0x2286;\n t.succeeds = 0x227b;\n t.suchthat = 0x220b;\n t.suhiragana = 0x3059;\n t.sukatakana = 0x30b9;\n t.sukatakanahalfwidth = 0xff7d;\n t.sukunarabic = 0x0652;\n t.summation = 0x2211;\n t.sun = 0x263c;\n t.superset = 0x2283;\n t.supersetnotequal = 0x228b;\n t.supersetorequal = 0x2287;\n t.svsquare = 0x33dc;\n t.syouwaerasquare = 0x337c;\n t.t = 0x0074;\n t.tabengali = 0x09a4;\n t.tackdown = 0x22a4;\n t.tackleft = 0x22a3;\n t.tadeva = 0x0924;\n t.tagujarati = 0x0aa4;\n t.tagurmukhi = 0x0a24;\n t.taharabic = 0x0637;\n t.tahfinalarabic = 0xfec2;\n t.tahinitialarabic = 0xfec3;\n t.tahiragana = 0x305f;\n t.tahmedialarabic = 0xfec4;\n t.taisyouerasquare = 0x337d;\n t.takatakana = 0x30bf;\n t.takatakanahalfwidth = 0xff80;\n t.tatweelarabic = 0x0640;\n t.tau = 0x03c4;\n t.tav = 0x05ea;\n t.tavdages = 0xfb4a;\n t.tavdagesh = 0xfb4a;\n t.tavdageshhebrew = 0xfb4a;\n t.tavhebrew = 0x05ea;\n t.tbar = 0x0167;\n t.tbopomofo = 0x310a;\n t.tcaron = 0x0165;\n t.tccurl = 0x02a8;\n t.tcedilla = 0x0163;\n t.tcheharabic = 0x0686;\n t.tchehfinalarabic = 0xfb7b;\n t.tchehinitialarabic = 0xfb7c;\n t.tchehmedialarabic = 0xfb7d;\n t.tcircle = 0x24e3;\n t.tcircumflexbelow = 0x1e71;\n t.tcommaaccent = 0x0163;\n t.tdieresis = 0x1e97;\n t.tdotaccent = 0x1e6b;\n t.tdotbelow = 0x1e6d;\n t.tecyrillic = 0x0442;\n t.tedescendercyrillic = 0x04ad;\n t.teharabic = 0x062a;\n t.tehfinalarabic = 0xfe96;\n t.tehhahinitialarabic = 0xfca2;\n t.tehhahisolatedarabic = 0xfc0c;\n t.tehinitialarabic = 0xfe97;\n t.tehiragana = 0x3066;\n t.tehjeeminitialarabic = 0xfca1;\n t.tehjeemisolatedarabic = 0xfc0b;\n t.tehmarbutaarabic = 0x0629;\n t.tehmarbutafinalarabic = 0xfe94;\n t.tehmedialarabic = 0xfe98;\n t.tehmeeminitialarabic = 0xfca4;\n t.tehmeemisolatedarabic = 0xfc0e;\n t.tehnoonfinalarabic = 0xfc73;\n t.tekatakana = 0x30c6;\n t.tekatakanahalfwidth = 0xff83;\n t.telephone = 0x2121;\n t.telephoneblack = 0x260e;\n t.telishagedolahebrew = 0x05a0;\n t.telishaqetanahebrew = 0x05a9;\n t.tencircle = 0x2469;\n t.tenideographicparen = 0x3229;\n t.tenparen = 0x247d;\n t.tenperiod = 0x2491;\n t.tenroman = 0x2179;\n t.tesh = 0x02a7;\n t.tet = 0x05d8;\n t.tetdagesh = 0xfb38;\n t.tetdageshhebrew = 0xfb38;\n t.tethebrew = 0x05d8;\n t.tetsecyrillic = 0x04b5;\n t.tevirhebrew = 0x059b;\n t.tevirlefthebrew = 0x059b;\n t.thabengali = 0x09a5;\n t.thadeva = 0x0925;\n t.thagujarati = 0x0aa5;\n t.thagurmukhi = 0x0a25;\n t.thalarabic = 0x0630;\n t.thalfinalarabic = 0xfeac;\n t.thanthakhatlowleftthai = 0xf898;\n t.thanthakhatlowrightthai = 0xf897;\n t.thanthakhatthai = 0x0e4c;\n t.thanthakhatupperleftthai = 0xf896;\n t.theharabic = 0x062b;\n t.thehfinalarabic = 0xfe9a;\n t.thehinitialarabic = 0xfe9b;\n t.thehmedialarabic = 0xfe9c;\n t.thereexists = 0x2203;\n t.therefore = 0x2234;\n t.theta = 0x03b8;\n t.theta1 = 0x03d1;\n t.thetasymbolgreek = 0x03d1;\n t.thieuthacirclekorean = 0x3279;\n t.thieuthaparenkorean = 0x3219;\n t.thieuthcirclekorean = 0x326b;\n t.thieuthkorean = 0x314c;\n t.thieuthparenkorean = 0x320b;\n t.thirteencircle = 0x246c;\n t.thirteenparen = 0x2480;\n t.thirteenperiod = 0x2494;\n t.thonangmonthothai = 0x0e11;\n t.thook = 0x01ad;\n t.thophuthaothai = 0x0e12;\n t.thorn = 0x00fe;\n t.thothahanthai = 0x0e17;\n t.thothanthai = 0x0e10;\n t.thothongthai = 0x0e18;\n t.thothungthai = 0x0e16;\n t.thousandcyrillic = 0x0482;\n t.thousandsseparatorarabic = 0x066c;\n t.thousandsseparatorpersian = 0x066c;\n t.three = 0x0033;\n t.threearabic = 0x0663;\n t.threebengali = 0x09e9;\n t.threecircle = 0x2462;\n t.threecircleinversesansserif = 0x278c;\n t.threedeva = 0x0969;\n t.threeeighths = 0x215c;\n t.threegujarati = 0x0ae9;\n t.threegurmukhi = 0x0a69;\n t.threehackarabic = 0x0663;\n t.threehangzhou = 0x3023;\n t.threeideographicparen = 0x3222;\n t.threeinferior = 0x2083;\n t.threemonospace = 0xff13;\n t.threenumeratorbengali = 0x09f6;\n t.threeoldstyle = 0xf733;\n t.threeparen = 0x2476;\n t.threeperiod = 0x248a;\n t.threepersian = 0x06f3;\n t.threequarters = 0x00be;\n t.threequartersemdash = 0xf6de;\n t.threeroman = 0x2172;\n t.threesuperior = 0x00b3;\n t.threethai = 0x0e53;\n t.thzsquare = 0x3394;\n t.tihiragana = 0x3061;\n t.tikatakana = 0x30c1;\n t.tikatakanahalfwidth = 0xff81;\n t.tikeutacirclekorean = 0x3270;\n t.tikeutaparenkorean = 0x3210;\n t.tikeutcirclekorean = 0x3262;\n t.tikeutkorean = 0x3137;\n t.tikeutparenkorean = 0x3202;\n t.tilde = 0x02dc;\n t.tildebelowcmb = 0x0330;\n t.tildecmb = 0x0303;\n t.tildecomb = 0x0303;\n t.tildedoublecmb = 0x0360;\n t.tildeoperator = 0x223c;\n t.tildeoverlaycmb = 0x0334;\n t.tildeverticalcmb = 0x033e;\n t.timescircle = 0x2297;\n t.tipehahebrew = 0x0596;\n t.tipehalefthebrew = 0x0596;\n t.tippigurmukhi = 0x0a70;\n t.titlocyrilliccmb = 0x0483;\n t.tiwnarmenian = 0x057f;\n t.tlinebelow = 0x1e6f;\n t.tmonospace = 0xff54;\n t.toarmenian = 0x0569;\n t.tohiragana = 0x3068;\n t.tokatakana = 0x30c8;\n t.tokatakanahalfwidth = 0xff84;\n t.tonebarextrahighmod = 0x02e5;\n t.tonebarextralowmod = 0x02e9;\n t.tonebarhighmod = 0x02e6;\n t.tonebarlowmod = 0x02e8;\n t.tonebarmidmod = 0x02e7;\n t.tonefive = 0x01bd;\n t.tonesix = 0x0185;\n t.tonetwo = 0x01a8;\n t.tonos = 0x0384;\n t.tonsquare = 0x3327;\n t.topatakthai = 0x0e0f;\n t.tortoiseshellbracketleft = 0x3014;\n t.tortoiseshellbracketleftsmall = 0xfe5d;\n t.tortoiseshellbracketleftvertical = 0xfe39;\n t.tortoiseshellbracketright = 0x3015;\n t.tortoiseshellbracketrightsmall = 0xfe5e;\n t.tortoiseshellbracketrightvertical = 0xfe3a;\n t.totaothai = 0x0e15;\n t.tpalatalhook = 0x01ab;\n t.tparen = 0x24af;\n t.trademark = 0x2122;\n t.trademarksans = 0xf8ea;\n t.trademarkserif = 0xf6db;\n t.tretroflexhook = 0x0288;\n t.triagdn = 0x25bc;\n t.triaglf = 0x25c4;\n t.triagrt = 0x25ba;\n t.triagup = 0x25b2;\n t.ts = 0x02a6;\n t.tsadi = 0x05e6;\n t.tsadidagesh = 0xfb46;\n t.tsadidageshhebrew = 0xfb46;\n t.tsadihebrew = 0x05e6;\n t.tsecyrillic = 0x0446;\n t.tsere = 0x05b5;\n t.tsere12 = 0x05b5;\n t.tsere1e = 0x05b5;\n t.tsere2b = 0x05b5;\n t.tserehebrew = 0x05b5;\n t.tserenarrowhebrew = 0x05b5;\n t.tserequarterhebrew = 0x05b5;\n t.tserewidehebrew = 0x05b5;\n t.tshecyrillic = 0x045b;\n t.tsuperior = 0xf6f3;\n t.ttabengali = 0x099f;\n t.ttadeva = 0x091f;\n t.ttagujarati = 0x0a9f;\n t.ttagurmukhi = 0x0a1f;\n t.tteharabic = 0x0679;\n t.ttehfinalarabic = 0xfb67;\n t.ttehinitialarabic = 0xfb68;\n t.ttehmedialarabic = 0xfb69;\n t.tthabengali = 0x09a0;\n t.tthadeva = 0x0920;\n t.tthagujarati = 0x0aa0;\n t.tthagurmukhi = 0x0a20;\n t.tturned = 0x0287;\n t.tuhiragana = 0x3064;\n t.tukatakana = 0x30c4;\n t.tukatakanahalfwidth = 0xff82;\n t.tusmallhiragana = 0x3063;\n t.tusmallkatakana = 0x30c3;\n t.tusmallkatakanahalfwidth = 0xff6f;\n t.twelvecircle = 0x246b;\n t.twelveparen = 0x247f;\n t.twelveperiod = 0x2493;\n t.twelveroman = 0x217b;\n t.twentycircle = 0x2473;\n t.twentyhangzhou = 0x5344;\n t.twentyparen = 0x2487;\n t.twentyperiod = 0x249b;\n t.two = 0x0032;\n t.twoarabic = 0x0662;\n t.twobengali = 0x09e8;\n t.twocircle = 0x2461;\n t.twocircleinversesansserif = 0x278b;\n t.twodeva = 0x0968;\n t.twodotenleader = 0x2025;\n t.twodotleader = 0x2025;\n t.twodotleadervertical = 0xfe30;\n t.twogujarati = 0x0ae8;\n t.twogurmukhi = 0x0a68;\n t.twohackarabic = 0x0662;\n t.twohangzhou = 0x3022;\n t.twoideographicparen = 0x3221;\n t.twoinferior = 0x2082;\n t.twomonospace = 0xff12;\n t.twonumeratorbengali = 0x09f5;\n t.twooldstyle = 0xf732;\n t.twoparen = 0x2475;\n t.twoperiod = 0x2489;\n t.twopersian = 0x06f2;\n t.tworoman = 0x2171;\n t.twostroke = 0x01bb;\n t.twosuperior = 0x00b2;\n t.twothai = 0x0e52;\n t.twothirds = 0x2154;\n t.u = 0x0075;\n t.uacute = 0x00fa;\n t.ubar = 0x0289;\n t.ubengali = 0x0989;\n t.ubopomofo = 0x3128;\n t.ubreve = 0x016d;\n t.ucaron = 0x01d4;\n t.ucircle = 0x24e4;\n t.ucircumflex = 0x00fb;\n t.ucircumflexbelow = 0x1e77;\n t.ucyrillic = 0x0443;\n t.udattadeva = 0x0951;\n t.udblacute = 0x0171;\n t.udblgrave = 0x0215;\n t.udeva = 0x0909;\n t.udieresis = 0x00fc;\n t.udieresisacute = 0x01d8;\n t.udieresisbelow = 0x1e73;\n t.udieresiscaron = 0x01da;\n t.udieresiscyrillic = 0x04f1;\n t.udieresisgrave = 0x01dc;\n t.udieresismacron = 0x01d6;\n t.udotbelow = 0x1ee5;\n t.ugrave = 0x00f9;\n t.ugujarati = 0x0a89;\n t.ugurmukhi = 0x0a09;\n t.uhiragana = 0x3046;\n t.uhookabove = 0x1ee7;\n t.uhorn = 0x01b0;\n t.uhornacute = 0x1ee9;\n t.uhorndotbelow = 0x1ef1;\n t.uhorngrave = 0x1eeb;\n t.uhornhookabove = 0x1eed;\n t.uhorntilde = 0x1eef;\n t.uhungarumlaut = 0x0171;\n t.uhungarumlautcyrillic = 0x04f3;\n t.uinvertedbreve = 0x0217;\n t.ukatakana = 0x30a6;\n t.ukatakanahalfwidth = 0xff73;\n t.ukcyrillic = 0x0479;\n t.ukorean = 0x315c;\n t.umacron = 0x016b;\n t.umacroncyrillic = 0x04ef;\n t.umacrondieresis = 0x1e7b;\n t.umatragurmukhi = 0x0a41;\n t.umonospace = 0xff55;\n t.underscore = 0x005f;\n t.underscoredbl = 0x2017;\n t.underscoremonospace = 0xff3f;\n t.underscorevertical = 0xfe33;\n t.underscorewavy = 0xfe4f;\n t.union = 0x222a;\n t.universal = 0x2200;\n t.uogonek = 0x0173;\n t.uparen = 0x24b0;\n t.upblock = 0x2580;\n t.upperdothebrew = 0x05c4;\n t.upsilon = 0x03c5;\n t.upsilondieresis = 0x03cb;\n t.upsilondieresistonos = 0x03b0;\n t.upsilonlatin = 0x028a;\n t.upsilontonos = 0x03cd;\n t.uptackbelowcmb = 0x031d;\n t.uptackmod = 0x02d4;\n t.uragurmukhi = 0x0a73;\n t.uring = 0x016f;\n t.ushortcyrillic = 0x045e;\n t.usmallhiragana = 0x3045;\n t.usmallkatakana = 0x30a5;\n t.usmallkatakanahalfwidth = 0xff69;\n t.ustraightcyrillic = 0x04af;\n t.ustraightstrokecyrillic = 0x04b1;\n t.utilde = 0x0169;\n t.utildeacute = 0x1e79;\n t.utildebelow = 0x1e75;\n t.uubengali = 0x098a;\n t.uudeva = 0x090a;\n t.uugujarati = 0x0a8a;\n t.uugurmukhi = 0x0a0a;\n t.uumatragurmukhi = 0x0a42;\n t.uuvowelsignbengali = 0x09c2;\n t.uuvowelsigndeva = 0x0942;\n t.uuvowelsigngujarati = 0x0ac2;\n t.uvowelsignbengali = 0x09c1;\n t.uvowelsigndeva = 0x0941;\n t.uvowelsigngujarati = 0x0ac1;\n t.v = 0x0076;\n t.vadeva = 0x0935;\n t.vagujarati = 0x0ab5;\n t.vagurmukhi = 0x0a35;\n t.vakatakana = 0x30f7;\n t.vav = 0x05d5;\n t.vavdagesh = 0xfb35;\n t.vavdagesh65 = 0xfb35;\n t.vavdageshhebrew = 0xfb35;\n t.vavhebrew = 0x05d5;\n t.vavholam = 0xfb4b;\n t.vavholamhebrew = 0xfb4b;\n t.vavvavhebrew = 0x05f0;\n t.vavyodhebrew = 0x05f1;\n t.vcircle = 0x24e5;\n t.vdotbelow = 0x1e7f;\n t.vecyrillic = 0x0432;\n t.veharabic = 0x06a4;\n t.vehfinalarabic = 0xfb6b;\n t.vehinitialarabic = 0xfb6c;\n t.vehmedialarabic = 0xfb6d;\n t.vekatakana = 0x30f9;\n t.venus = 0x2640;\n t.verticalbar = 0x007c;\n t.verticallineabovecmb = 0x030d;\n t.verticallinebelowcmb = 0x0329;\n t.verticallinelowmod = 0x02cc;\n t.verticallinemod = 0x02c8;\n t.vewarmenian = 0x057e;\n t.vhook = 0x028b;\n t.vikatakana = 0x30f8;\n t.viramabengali = 0x09cd;\n t.viramadeva = 0x094d;\n t.viramagujarati = 0x0acd;\n t.visargabengali = 0x0983;\n t.visargadeva = 0x0903;\n t.visargagujarati = 0x0a83;\n t.vmonospace = 0xff56;\n t.voarmenian = 0x0578;\n t.voicediterationhiragana = 0x309e;\n t.voicediterationkatakana = 0x30fe;\n t.voicedmarkkana = 0x309b;\n t.voicedmarkkanahalfwidth = 0xff9e;\n t.vokatakana = 0x30fa;\n t.vparen = 0x24b1;\n t.vtilde = 0x1e7d;\n t.vturned = 0x028c;\n t.vuhiragana = 0x3094;\n t.vukatakana = 0x30f4;\n t.w = 0x0077;\n t.wacute = 0x1e83;\n t.waekorean = 0x3159;\n t.wahiragana = 0x308f;\n t.wakatakana = 0x30ef;\n t.wakatakanahalfwidth = 0xff9c;\n t.wakorean = 0x3158;\n t.wasmallhiragana = 0x308e;\n t.wasmallkatakana = 0x30ee;\n t.wattosquare = 0x3357;\n t.wavedash = 0x301c;\n t.wavyunderscorevertical = 0xfe34;\n t.wawarabic = 0x0648;\n t.wawfinalarabic = 0xfeee;\n t.wawhamzaabovearabic = 0x0624;\n t.wawhamzaabovefinalarabic = 0xfe86;\n t.wbsquare = 0x33dd;\n t.wcircle = 0x24e6;\n t.wcircumflex = 0x0175;\n t.wdieresis = 0x1e85;\n t.wdotaccent = 0x1e87;\n t.wdotbelow = 0x1e89;\n t.wehiragana = 0x3091;\n t.weierstrass = 0x2118;\n t.wekatakana = 0x30f1;\n t.wekorean = 0x315e;\n t.weokorean = 0x315d;\n t.wgrave = 0x1e81;\n t.whitebullet = 0x25e6;\n t.whitecircle = 0x25cb;\n t.whitecircleinverse = 0x25d9;\n t.whitecornerbracketleft = 0x300e;\n t.whitecornerbracketleftvertical = 0xfe43;\n t.whitecornerbracketright = 0x300f;\n t.whitecornerbracketrightvertical = 0xfe44;\n t.whitediamond = 0x25c7;\n t.whitediamondcontainingblacksmalldiamond = 0x25c8;\n t.whitedownpointingsmalltriangle = 0x25bf;\n t.whitedownpointingtriangle = 0x25bd;\n t.whiteleftpointingsmalltriangle = 0x25c3;\n t.whiteleftpointingtriangle = 0x25c1;\n t.whitelenticularbracketleft = 0x3016;\n t.whitelenticularbracketright = 0x3017;\n t.whiterightpointingsmalltriangle = 0x25b9;\n t.whiterightpointingtriangle = 0x25b7;\n t.whitesmallsquare = 0x25ab;\n t.whitesmilingface = 0x263a;\n t.whitesquare = 0x25a1;\n t.whitestar = 0x2606;\n t.whitetelephone = 0x260f;\n t.whitetortoiseshellbracketleft = 0x3018;\n t.whitetortoiseshellbracketright = 0x3019;\n t.whiteuppointingsmalltriangle = 0x25b5;\n t.whiteuppointingtriangle = 0x25b3;\n t.wihiragana = 0x3090;\n t.wikatakana = 0x30f0;\n t.wikorean = 0x315f;\n t.wmonospace = 0xff57;\n t.wohiragana = 0x3092;\n t.wokatakana = 0x30f2;\n t.wokatakanahalfwidth = 0xff66;\n t.won = 0x20a9;\n t.wonmonospace = 0xffe6;\n t.wowaenthai = 0x0e27;\n t.wparen = 0x24b2;\n t.wring = 0x1e98;\n t.wsuperior = 0x02b7;\n t.wturned = 0x028d;\n t.wynn = 0x01bf;\n t.x = 0x0078;\n t.xabovecmb = 0x033d;\n t.xbopomofo = 0x3112;\n t.xcircle = 0x24e7;\n t.xdieresis = 0x1e8d;\n t.xdotaccent = 0x1e8b;\n t.xeharmenian = 0x056d;\n t.xi = 0x03be;\n t.xmonospace = 0xff58;\n t.xparen = 0x24b3;\n t.xsuperior = 0x02e3;\n t.y = 0x0079;\n t.yaadosquare = 0x334e;\n t.yabengali = 0x09af;\n t.yacute = 0x00fd;\n t.yadeva = 0x092f;\n t.yaekorean = 0x3152;\n t.yagujarati = 0x0aaf;\n t.yagurmukhi = 0x0a2f;\n t.yahiragana = 0x3084;\n t.yakatakana = 0x30e4;\n t.yakatakanahalfwidth = 0xff94;\n t.yakorean = 0x3151;\n t.yamakkanthai = 0x0e4e;\n t.yasmallhiragana = 0x3083;\n t.yasmallkatakana = 0x30e3;\n t.yasmallkatakanahalfwidth = 0xff6c;\n t.yatcyrillic = 0x0463;\n t.ycircle = 0x24e8;\n t.ycircumflex = 0x0177;\n t.ydieresis = 0x00ff;\n t.ydotaccent = 0x1e8f;\n t.ydotbelow = 0x1ef5;\n t.yeharabic = 0x064a;\n t.yehbarreearabic = 0x06d2;\n t.yehbarreefinalarabic = 0xfbaf;\n t.yehfinalarabic = 0xfef2;\n t.yehhamzaabovearabic = 0x0626;\n t.yehhamzaabovefinalarabic = 0xfe8a;\n t.yehhamzaaboveinitialarabic = 0xfe8b;\n t.yehhamzaabovemedialarabic = 0xfe8c;\n t.yehinitialarabic = 0xfef3;\n t.yehmedialarabic = 0xfef4;\n t.yehmeeminitialarabic = 0xfcdd;\n t.yehmeemisolatedarabic = 0xfc58;\n t.yehnoonfinalarabic = 0xfc94;\n t.yehthreedotsbelowarabic = 0x06d1;\n t.yekorean = 0x3156;\n t.yen = 0x00a5;\n t.yenmonospace = 0xffe5;\n t.yeokorean = 0x3155;\n t.yeorinhieuhkorean = 0x3186;\n t.yerahbenyomohebrew = 0x05aa;\n t.yerahbenyomolefthebrew = 0x05aa;\n t.yericyrillic = 0x044b;\n t.yerudieresiscyrillic = 0x04f9;\n t.yesieungkorean = 0x3181;\n t.yesieungpansioskorean = 0x3183;\n t.yesieungsioskorean = 0x3182;\n t.yetivhebrew = 0x059a;\n t.ygrave = 0x1ef3;\n t.yhook = 0x01b4;\n t.yhookabove = 0x1ef7;\n t.yiarmenian = 0x0575;\n t.yicyrillic = 0x0457;\n t.yikorean = 0x3162;\n t.yinyang = 0x262f;\n t.yiwnarmenian = 0x0582;\n t.ymonospace = 0xff59;\n t.yod = 0x05d9;\n t.yoddagesh = 0xfb39;\n t.yoddageshhebrew = 0xfb39;\n t.yodhebrew = 0x05d9;\n t.yodyodhebrew = 0x05f2;\n t.yodyodpatahhebrew = 0xfb1f;\n t.yohiragana = 0x3088;\n t.yoikorean = 0x3189;\n t.yokatakana = 0x30e8;\n t.yokatakanahalfwidth = 0xff96;\n t.yokorean = 0x315b;\n t.yosmallhiragana = 0x3087;\n t.yosmallkatakana = 0x30e7;\n t.yosmallkatakanahalfwidth = 0xff6e;\n t.yotgreek = 0x03f3;\n t.yoyaekorean = 0x3188;\n t.yoyakorean = 0x3187;\n t.yoyakthai = 0x0e22;\n t.yoyingthai = 0x0e0d;\n t.yparen = 0x24b4;\n t.ypogegrammeni = 0x037a;\n t.ypogegrammenigreekcmb = 0x0345;\n t.yr = 0x01a6;\n t.yring = 0x1e99;\n t.ysuperior = 0x02b8;\n t.ytilde = 0x1ef9;\n t.yturned = 0x028e;\n t.yuhiragana = 0x3086;\n t.yuikorean = 0x318c;\n t.yukatakana = 0x30e6;\n t.yukatakanahalfwidth = 0xff95;\n t.yukorean = 0x3160;\n t.yusbigcyrillic = 0x046b;\n t.yusbigiotifiedcyrillic = 0x046d;\n t.yuslittlecyrillic = 0x0467;\n t.yuslittleiotifiedcyrillic = 0x0469;\n t.yusmallhiragana = 0x3085;\n t.yusmallkatakana = 0x30e5;\n t.yusmallkatakanahalfwidth = 0xff6d;\n t.yuyekorean = 0x318b;\n t.yuyeokorean = 0x318a;\n t.yyabengali = 0x09df;\n t.yyadeva = 0x095f;\n t.z = 0x007a;\n t.zaarmenian = 0x0566;\n t.zacute = 0x017a;\n t.zadeva = 0x095b;\n t.zagurmukhi = 0x0a5b;\n t.zaharabic = 0x0638;\n t.zahfinalarabic = 0xfec6;\n t.zahinitialarabic = 0xfec7;\n t.zahiragana = 0x3056;\n t.zahmedialarabic = 0xfec8;\n t.zainarabic = 0x0632;\n t.zainfinalarabic = 0xfeb0;\n t.zakatakana = 0x30b6;\n t.zaqefgadolhebrew = 0x0595;\n t.zaqefqatanhebrew = 0x0594;\n t.zarqahebrew = 0x0598;\n t.zayin = 0x05d6;\n t.zayindagesh = 0xfb36;\n t.zayindageshhebrew = 0xfb36;\n t.zayinhebrew = 0x05d6;\n t.zbopomofo = 0x3117;\n t.zcaron = 0x017e;\n t.zcircle = 0x24e9;\n t.zcircumflex = 0x1e91;\n t.zcurl = 0x0291;\n t.zdot = 0x017c;\n t.zdotaccent = 0x017c;\n t.zdotbelow = 0x1e93;\n t.zecyrillic = 0x0437;\n t.zedescendercyrillic = 0x0499;\n t.zedieresiscyrillic = 0x04df;\n t.zehiragana = 0x305c;\n t.zekatakana = 0x30bc;\n t.zero = 0x0030;\n t.zeroarabic = 0x0660;\n t.zerobengali = 0x09e6;\n t.zerodeva = 0x0966;\n t.zerogujarati = 0x0ae6;\n t.zerogurmukhi = 0x0a66;\n t.zerohackarabic = 0x0660;\n t.zeroinferior = 0x2080;\n t.zeromonospace = 0xff10;\n t.zerooldstyle = 0xf730;\n t.zeropersian = 0x06f0;\n t.zerosuperior = 0x2070;\n t.zerothai = 0x0e50;\n t.zerowidthjoiner = 0xfeff;\n t.zerowidthnonjoiner = 0x200c;\n t.zerowidthspace = 0x200b;\n t.zeta = 0x03b6;\n t.zhbopomofo = 0x3113;\n t.zhearmenian = 0x056a;\n t.zhebrevecyrillic = 0x04c2;\n t.zhecyrillic = 0x0436;\n t.zhedescendercyrillic = 0x0497;\n t.zhedieresiscyrillic = 0x04dd;\n t.zihiragana = 0x3058;\n t.zikatakana = 0x30b8;\n t.zinorhebrew = 0x05ae;\n t.zlinebelow = 0x1e95;\n t.zmonospace = 0xff5a;\n t.zohiragana = 0x305e;\n t.zokatakana = 0x30be;\n t.zparen = 0x24b5;\n t.zretroflexhook = 0x0290;\n t.zstroke = 0x01b6;\n t.zuhiragana = 0x305a;\n t.zukatakana = 0x30ba;\n t[\".notdef\"] = 0x0000;\n t.angbracketleftbig = 0x2329;\n t.angbracketleftBig = 0x2329;\n t.angbracketleftbigg = 0x2329;\n t.angbracketleftBigg = 0x2329;\n t.angbracketrightBig = 0x232a;\n t.angbracketrightbig = 0x232a;\n t.angbracketrightBigg = 0x232a;\n t.angbracketrightbigg = 0x232a;\n t.arrowhookleft = 0x21aa;\n t.arrowhookright = 0x21a9;\n t.arrowlefttophalf = 0x21bc;\n t.arrowleftbothalf = 0x21bd;\n t.arrownortheast = 0x2197;\n t.arrownorthwest = 0x2196;\n t.arrowrighttophalf = 0x21c0;\n t.arrowrightbothalf = 0x21c1;\n t.arrowsoutheast = 0x2198;\n t.arrowsouthwest = 0x2199;\n t.backslashbig = 0x2216;\n t.backslashBig = 0x2216;\n t.backslashBigg = 0x2216;\n t.backslashbigg = 0x2216;\n t.bardbl = 0x2016;\n t.bracehtipdownleft = 0xfe37;\n t.bracehtipdownright = 0xfe37;\n t.bracehtipupleft = 0xfe38;\n t.bracehtipupright = 0xfe38;\n t.braceleftBig = 0x007b;\n t.braceleftbig = 0x007b;\n t.braceleftbigg = 0x007b;\n t.braceleftBigg = 0x007b;\n t.bracerightBig = 0x007d;\n t.bracerightbig = 0x007d;\n t.bracerightbigg = 0x007d;\n t.bracerightBigg = 0x007d;\n t.bracketleftbig = 0x005b;\n t.bracketleftBig = 0x005b;\n t.bracketleftbigg = 0x005b;\n t.bracketleftBigg = 0x005b;\n t.bracketrightBig = 0x005d;\n t.bracketrightbig = 0x005d;\n t.bracketrightbigg = 0x005d;\n t.bracketrightBigg = 0x005d;\n t.ceilingleftbig = 0x2308;\n t.ceilingleftBig = 0x2308;\n t.ceilingleftBigg = 0x2308;\n t.ceilingleftbigg = 0x2308;\n t.ceilingrightbig = 0x2309;\n t.ceilingrightBig = 0x2309;\n t.ceilingrightbigg = 0x2309;\n t.ceilingrightBigg = 0x2309;\n t.circledotdisplay = 0x2299;\n t.circledottext = 0x2299;\n t.circlemultiplydisplay = 0x2297;\n t.circlemultiplytext = 0x2297;\n t.circleplusdisplay = 0x2295;\n t.circleplustext = 0x2295;\n t.contintegraldisplay = 0x222e;\n t.contintegraltext = 0x222e;\n t.coproductdisplay = 0x2210;\n t.coproducttext = 0x2210;\n t.floorleftBig = 0x230a;\n t.floorleftbig = 0x230a;\n t.floorleftbigg = 0x230a;\n t.floorleftBigg = 0x230a;\n t.floorrightbig = 0x230b;\n t.floorrightBig = 0x230b;\n t.floorrightBigg = 0x230b;\n t.floorrightbigg = 0x230b;\n t.hatwide = 0x0302;\n t.hatwider = 0x0302;\n t.hatwidest = 0x0302;\n t.intercal = 0x1d40;\n t.integraldisplay = 0x222b;\n t.integraltext = 0x222b;\n t.intersectiondisplay = 0x22c2;\n t.intersectiontext = 0x22c2;\n t.logicalanddisplay = 0x2227;\n t.logicalandtext = 0x2227;\n t.logicalordisplay = 0x2228;\n t.logicalortext = 0x2228;\n t.parenleftBig = 0x0028;\n t.parenleftbig = 0x0028;\n t.parenleftBigg = 0x0028;\n t.parenleftbigg = 0x0028;\n t.parenrightBig = 0x0029;\n t.parenrightbig = 0x0029;\n t.parenrightBigg = 0x0029;\n t.parenrightbigg = 0x0029;\n t.prime = 0x2032;\n t.productdisplay = 0x220f;\n t.producttext = 0x220f;\n t.radicalbig = 0x221a;\n t.radicalBig = 0x221a;\n t.radicalBigg = 0x221a;\n t.radicalbigg = 0x221a;\n t.radicalbt = 0x221a;\n t.radicaltp = 0x221a;\n t.radicalvertex = 0x221a;\n t.slashbig = 0x002f;\n t.slashBig = 0x002f;\n t.slashBigg = 0x002f;\n t.slashbigg = 0x002f;\n t.summationdisplay = 0x2211;\n t.summationtext = 0x2211;\n t.tildewide = 0x02dc;\n t.tildewider = 0x02dc;\n t.tildewidest = 0x02dc;\n t.uniondisplay = 0x22c3;\n t.unionmultidisplay = 0x228e;\n t.unionmultitext = 0x228e;\n t.unionsqdisplay = 0x2294;\n t.unionsqtext = 0x2294;\n t.uniontext = 0x22c3;\n t.vextenddouble = 0x2225;\n t.vextendsingle = 0x2223;\n});\nvar getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {\n t.space = 0x0020;\n t.a1 = 0x2701;\n t.a2 = 0x2702;\n t.a202 = 0x2703;\n t.a3 = 0x2704;\n t.a4 = 0x260e;\n t.a5 = 0x2706;\n t.a119 = 0x2707;\n t.a118 = 0x2708;\n t.a117 = 0x2709;\n t.a11 = 0x261b;\n t.a12 = 0x261e;\n t.a13 = 0x270c;\n t.a14 = 0x270d;\n t.a15 = 0x270e;\n t.a16 = 0x270f;\n t.a105 = 0x2710;\n t.a17 = 0x2711;\n t.a18 = 0x2712;\n t.a19 = 0x2713;\n t.a20 = 0x2714;\n t.a21 = 0x2715;\n t.a22 = 0x2716;\n t.a23 = 0x2717;\n t.a24 = 0x2718;\n t.a25 = 0x2719;\n t.a26 = 0x271a;\n t.a27 = 0x271b;\n t.a28 = 0x271c;\n t.a6 = 0x271d;\n t.a7 = 0x271e;\n t.a8 = 0x271f;\n t.a9 = 0x2720;\n t.a10 = 0x2721;\n t.a29 = 0x2722;\n t.a30 = 0x2723;\n t.a31 = 0x2724;\n t.a32 = 0x2725;\n t.a33 = 0x2726;\n t.a34 = 0x2727;\n t.a35 = 0x2605;\n t.a36 = 0x2729;\n t.a37 = 0x272a;\n t.a38 = 0x272b;\n t.a39 = 0x272c;\n t.a40 = 0x272d;\n t.a41 = 0x272e;\n t.a42 = 0x272f;\n t.a43 = 0x2730;\n t.a44 = 0x2731;\n t.a45 = 0x2732;\n t.a46 = 0x2733;\n t.a47 = 0x2734;\n t.a48 = 0x2735;\n t.a49 = 0x2736;\n t.a50 = 0x2737;\n t.a51 = 0x2738;\n t.a52 = 0x2739;\n t.a53 = 0x273a;\n t.a54 = 0x273b;\n t.a55 = 0x273c;\n t.a56 = 0x273d;\n t.a57 = 0x273e;\n t.a58 = 0x273f;\n t.a59 = 0x2740;\n t.a60 = 0x2741;\n t.a61 = 0x2742;\n t.a62 = 0x2743;\n t.a63 = 0x2744;\n t.a64 = 0x2745;\n t.a65 = 0x2746;\n t.a66 = 0x2747;\n t.a67 = 0x2748;\n t.a68 = 0x2749;\n t.a69 = 0x274a;\n t.a70 = 0x274b;\n t.a71 = 0x25cf;\n t.a72 = 0x274d;\n t.a73 = 0x25a0;\n t.a74 = 0x274f;\n t.a203 = 0x2750;\n t.a75 = 0x2751;\n t.a204 = 0x2752;\n t.a76 = 0x25b2;\n t.a77 = 0x25bc;\n t.a78 = 0x25c6;\n t.a79 = 0x2756;\n t.a81 = 0x25d7;\n t.a82 = 0x2758;\n t.a83 = 0x2759;\n t.a84 = 0x275a;\n t.a97 = 0x275b;\n t.a98 = 0x275c;\n t.a99 = 0x275d;\n t.a100 = 0x275e;\n t.a101 = 0x2761;\n t.a102 = 0x2762;\n t.a103 = 0x2763;\n t.a104 = 0x2764;\n t.a106 = 0x2765;\n t.a107 = 0x2766;\n t.a108 = 0x2767;\n t.a112 = 0x2663;\n t.a111 = 0x2666;\n t.a110 = 0x2665;\n t.a109 = 0x2660;\n t.a120 = 0x2460;\n t.a121 = 0x2461;\n t.a122 = 0x2462;\n t.a123 = 0x2463;\n t.a124 = 0x2464;\n t.a125 = 0x2465;\n t.a126 = 0x2466;\n t.a127 = 0x2467;\n t.a128 = 0x2468;\n t.a129 = 0x2469;\n t.a130 = 0x2776;\n t.a131 = 0x2777;\n t.a132 = 0x2778;\n t.a133 = 0x2779;\n t.a134 = 0x277a;\n t.a135 = 0x277b;\n t.a136 = 0x277c;\n t.a137 = 0x277d;\n t.a138 = 0x277e;\n t.a139 = 0x277f;\n t.a140 = 0x2780;\n t.a141 = 0x2781;\n t.a142 = 0x2782;\n t.a143 = 0x2783;\n t.a144 = 0x2784;\n t.a145 = 0x2785;\n t.a146 = 0x2786;\n t.a147 = 0x2787;\n t.a148 = 0x2788;\n t.a149 = 0x2789;\n t.a150 = 0x278a;\n t.a151 = 0x278b;\n t.a152 = 0x278c;\n t.a153 = 0x278d;\n t.a154 = 0x278e;\n t.a155 = 0x278f;\n t.a156 = 0x2790;\n t.a157 = 0x2791;\n t.a158 = 0x2792;\n t.a159 = 0x2793;\n t.a160 = 0x2794;\n t.a161 = 0x2192;\n t.a163 = 0x2194;\n t.a164 = 0x2195;\n t.a196 = 0x2798;\n t.a165 = 0x2799;\n t.a192 = 0x279a;\n t.a166 = 0x279b;\n t.a167 = 0x279c;\n t.a168 = 0x279d;\n t.a169 = 0x279e;\n t.a170 = 0x279f;\n t.a171 = 0x27a0;\n t.a172 = 0x27a1;\n t.a173 = 0x27a2;\n t.a162 = 0x27a3;\n t.a174 = 0x27a4;\n t.a175 = 0x27a5;\n t.a176 = 0x27a6;\n t.a177 = 0x27a7;\n t.a178 = 0x27a8;\n t.a179 = 0x27a9;\n t.a193 = 0x27aa;\n t.a180 = 0x27ab;\n t.a199 = 0x27ac;\n t.a181 = 0x27ad;\n t.a200 = 0x27ae;\n t.a182 = 0x27af;\n t.a201 = 0x27b1;\n t.a183 = 0x27b2;\n t.a184 = 0x27b3;\n t.a197 = 0x27b4;\n t.a185 = 0x27b5;\n t.a194 = 0x27b6;\n t.a198 = 0x27b7;\n t.a186 = 0x27b8;\n t.a195 = 0x27b9;\n t.a187 = 0x27ba;\n t.a188 = 0x27bb;\n t.a189 = 0x27bc;\n t.a190 = 0x27bd;\n t.a191 = 0x27be;\n t.a89 = 0x2768;\n t.a90 = 0x2769;\n t.a93 = 0x276a;\n t.a94 = 0x276b;\n t.a91 = 0x276c;\n t.a92 = 0x276d;\n t.a205 = 0x276e;\n t.a85 = 0x276f;\n t.a206 = 0x2770;\n t.a86 = 0x2771;\n t.a87 = 0x2772;\n t.a88 = 0x2773;\n t.a95 = 0x2774;\n t.a96 = 0x2775;\n t[\".notdef\"] = 0x0000;\n});\nexports.getGlyphsUnicode = getGlyphsUnicode;\nexports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = void 0;\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nconst getStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.ArialNarrow = \"Helvetica\";\n t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n t.ArialBlack = \"Helvetica\";\n t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-Black\"] = \"Helvetica\";\n t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n t.Arial = \"Helvetica\";\n t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n t.ArialMT = \"Helvetica\";\n t[\"Courier-Bold\"] = \"Courier-Bold\";\n t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"Courier-Italic\"] = \"Courier-Oblique\";\n t.CourierNew = \"Courier\";\n t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n t.CourierNewPSMT = \"Courier\";\n t.Helvetica = \"Helvetica\";\n t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n t[\"Symbol-Bold\"] = \"Symbol\";\n t[\"Symbol-BoldItalic\"] = \"Symbol\";\n t[\"Symbol-Italic\"] = \"Symbol\";\n t.TimesNewRoman = \"Times-Roman\";\n t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n t.TimesNewRomanPS = \"Times-Roman\";\n t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n t.TimesNewRomanPSMT = \"Times-Roman\";\n t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\nexports.getStdFontMap = getStdFontMap;\nconst getNonStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.Calibri = \"Helvetica\";\n t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n t.CenturyGothic = \"Helvetica\";\n t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n t.ComicSansMS = \"Comic Sans MS\";\n t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n t.LucidaConsole = \"Courier\";\n t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n t[\"MS-Gothic\"] = \"MS Gothic\";\n t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n t[\"MS-Mincho\"] = \"MS Mincho\";\n t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n t[\"MS-PGothic\"] = \"MS PGothic\";\n t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n t[\"MS-PMincho\"] = \"MS PMincho\";\n t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n t.NuptialScript = \"Times-Italic\";\n t.SegoeUISymbol = \"Helvetica\";\n t.Wingdings = \"ZapfDingbats\";\n t[\"Wingdings-Regular\"] = \"ZapfDingbats\";\n});\nexports.getNonStdFontMap = getNonStdFontMap;\nconst getSerifFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n t[\"Adobe Jenson\"] = true;\n t[\"Adobe Text\"] = true;\n t.Albertus = true;\n t.Aldus = true;\n t.Alexandria = true;\n t.Algerian = true;\n t[\"American Typewriter\"] = true;\n t.Antiqua = true;\n t.Apex = true;\n t.Arno = true;\n t.Aster = true;\n t.Aurora = true;\n t.Baskerville = true;\n t.Bell = true;\n t.Bembo = true;\n t[\"Bembo Schoolbook\"] = true;\n t.Benguiat = true;\n t[\"Berkeley Old Style\"] = true;\n t[\"Bernhard Modern\"] = true;\n t[\"Berthold City\"] = true;\n t.Bodoni = true;\n t[\"Bauer Bodoni\"] = true;\n t[\"Book Antiqua\"] = true;\n t.Bookman = true;\n t[\"Bordeaux Roman\"] = true;\n t[\"Californian FB\"] = true;\n t.Calisto = true;\n t.Calvert = true;\n t.Capitals = true;\n t.Cambria = true;\n t.Cartier = true;\n t.Caslon = true;\n t.Catull = true;\n t.Centaur = true;\n t[\"Century Old Style\"] = true;\n t[\"Century Schoolbook\"] = true;\n t.Chaparral = true;\n t[\"Charis SIL\"] = true;\n t.Cheltenham = true;\n t[\"Cholla Slab\"] = true;\n t.Clarendon = true;\n t.Clearface = true;\n t.Cochin = true;\n t.Colonna = true;\n t[\"Computer Modern\"] = true;\n t[\"Concrete Roman\"] = true;\n t.Constantia = true;\n t[\"Cooper Black\"] = true;\n t.Corona = true;\n t.Ecotype = true;\n t.Egyptienne = true;\n t.Elephant = true;\n t.Excelsior = true;\n t.Fairfield = true;\n t[\"FF Scala\"] = true;\n t.Folkard = true;\n t.Footlight = true;\n t.FreeSerif = true;\n t[\"Friz Quadrata\"] = true;\n t.Garamond = true;\n t.Gentium = true;\n t.Georgia = true;\n t.Gloucester = true;\n t[\"Goudy Old Style\"] = true;\n t[\"Goudy Schoolbook\"] = true;\n t[\"Goudy Pro Font\"] = true;\n t.Granjon = true;\n t[\"Guardian Egyptian\"] = true;\n t.Heather = true;\n t.Hercules = true;\n t[\"High Tower Text\"] = true;\n t.Hiroshige = true;\n t[\"Hoefler Text\"] = true;\n t[\"Humana Serif\"] = true;\n t.Imprint = true;\n t[\"Ionic No. 5\"] = true;\n t.Janson = true;\n t.Joanna = true;\n t.Korinna = true;\n t.Lexicon = true;\n t[\"Liberation Serif\"] = true;\n t[\"Linux Libertine\"] = true;\n t.Literaturnaya = true;\n t.Lucida = true;\n t[\"Lucida Bright\"] = true;\n t.Melior = true;\n t.Memphis = true;\n t.Miller = true;\n t.Minion = true;\n t.Modern = true;\n t[\"Mona Lisa\"] = true;\n t[\"Mrs Eaves\"] = true;\n t[\"MS Serif\"] = true;\n t[\"Museo Slab\"] = true;\n t[\"New York\"] = true;\n t[\"Nimbus Roman\"] = true;\n t[\"NPS Rawlinson Roadway\"] = true;\n t.NuptialScript = true;\n t.Palatino = true;\n t.Perpetua = true;\n t.Plantin = true;\n t[\"Plantin Schoolbook\"] = true;\n t.Playbill = true;\n t[\"Poor Richard\"] = true;\n t[\"Rawlinson Roadway\"] = true;\n t.Renault = true;\n t.Requiem = true;\n t.Rockwell = true;\n t.Roman = true;\n t[\"Rotis Serif\"] = true;\n t.Sabon = true;\n t.Scala = true;\n t.Seagull = true;\n t.Sistina = true;\n t.Souvenir = true;\n t.STIX = true;\n t[\"Stone Informal\"] = true;\n t[\"Stone Serif\"] = true;\n t.Sylfaen = true;\n t.Times = true;\n t.Trajan = true;\n t[\"Trinité\"] = true;\n t[\"Trump Mediaeval\"] = true;\n t.Utopia = true;\n t[\"Vale Type\"] = true;\n t[\"Bitstream Vera\"] = true;\n t[\"Vera Serif\"] = true;\n t.Versailles = true;\n t.Wanted = true;\n t.Weiss = true;\n t[\"Wide Latin\"] = true;\n t.Windsor = true;\n t.XITS = true;\n});\nexports.getSerifFonts = getSerifFonts;\nconst getSymbolsFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.Dingbats = true;\n t.Symbol = true;\n t.ZapfDingbats = true;\n});\nexports.getSymbolsFonts = getSymbolsFonts;\nconst getGlyphMapForStandardFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n t[2] = 10;\n t[3] = 32;\n t[4] = 33;\n t[5] = 34;\n t[6] = 35;\n t[7] = 36;\n t[8] = 37;\n t[9] = 38;\n t[10] = 39;\n t[11] = 40;\n t[12] = 41;\n t[13] = 42;\n t[14] = 43;\n t[15] = 44;\n t[16] = 45;\n t[17] = 46;\n t[18] = 47;\n t[19] = 48;\n t[20] = 49;\n t[21] = 50;\n t[22] = 51;\n t[23] = 52;\n t[24] = 53;\n t[25] = 54;\n t[26] = 55;\n t[27] = 56;\n t[28] = 57;\n t[29] = 58;\n t[30] = 894;\n t[31] = 60;\n t[32] = 61;\n t[33] = 62;\n t[34] = 63;\n t[35] = 64;\n t[36] = 65;\n t[37] = 66;\n t[38] = 67;\n t[39] = 68;\n t[40] = 69;\n t[41] = 70;\n t[42] = 71;\n t[43] = 72;\n t[44] = 73;\n t[45] = 74;\n t[46] = 75;\n t[47] = 76;\n t[48] = 77;\n t[49] = 78;\n t[50] = 79;\n t[51] = 80;\n t[52] = 81;\n t[53] = 82;\n t[54] = 83;\n t[55] = 84;\n t[56] = 85;\n t[57] = 86;\n t[58] = 87;\n t[59] = 88;\n t[60] = 89;\n t[61] = 90;\n t[62] = 91;\n t[63] = 92;\n t[64] = 93;\n t[65] = 94;\n t[66] = 95;\n t[67] = 96;\n t[68] = 97;\n t[69] = 98;\n t[70] = 99;\n t[71] = 100;\n t[72] = 101;\n t[73] = 102;\n t[74] = 103;\n t[75] = 104;\n t[76] = 105;\n t[77] = 106;\n t[78] = 107;\n t[79] = 108;\n t[80] = 109;\n t[81] = 110;\n t[82] = 111;\n t[83] = 112;\n t[84] = 113;\n t[85] = 114;\n t[86] = 115;\n t[87] = 116;\n t[88] = 117;\n t[89] = 118;\n t[90] = 119;\n t[91] = 120;\n t[92] = 121;\n t[93] = 122;\n t[94] = 123;\n t[95] = 124;\n t[96] = 125;\n t[97] = 126;\n t[98] = 196;\n t[99] = 197;\n t[100] = 199;\n t[101] = 201;\n t[102] = 209;\n t[103] = 214;\n t[104] = 220;\n t[105] = 225;\n t[106] = 224;\n t[107] = 226;\n t[108] = 228;\n t[109] = 227;\n t[110] = 229;\n t[111] = 231;\n t[112] = 233;\n t[113] = 232;\n t[114] = 234;\n t[115] = 235;\n t[116] = 237;\n t[117] = 236;\n t[118] = 238;\n t[119] = 239;\n t[120] = 241;\n t[121] = 243;\n t[122] = 242;\n t[123] = 244;\n t[124] = 246;\n t[125] = 245;\n t[126] = 250;\n t[127] = 249;\n t[128] = 251;\n t[129] = 252;\n t[130] = 8224;\n t[131] = 176;\n t[132] = 162;\n t[133] = 163;\n t[134] = 167;\n t[135] = 8226;\n t[136] = 182;\n t[137] = 223;\n t[138] = 174;\n t[139] = 169;\n t[140] = 8482;\n t[141] = 180;\n t[142] = 168;\n t[143] = 8800;\n t[144] = 198;\n t[145] = 216;\n t[146] = 8734;\n t[147] = 177;\n t[148] = 8804;\n t[149] = 8805;\n t[150] = 165;\n t[151] = 181;\n t[152] = 8706;\n t[153] = 8721;\n t[154] = 8719;\n t[156] = 8747;\n t[157] = 170;\n t[158] = 186;\n t[159] = 8486;\n t[160] = 230;\n t[161] = 248;\n t[162] = 191;\n t[163] = 161;\n t[164] = 172;\n t[165] = 8730;\n t[166] = 402;\n t[167] = 8776;\n t[168] = 8710;\n t[169] = 171;\n t[170] = 187;\n t[171] = 8230;\n t[210] = 218;\n t[223] = 711;\n t[224] = 321;\n t[225] = 322;\n t[227] = 353;\n t[229] = 382;\n t[234] = 253;\n t[252] = 263;\n t[253] = 268;\n t[254] = 269;\n t[258] = 258;\n t[260] = 260;\n t[261] = 261;\n t[265] = 280;\n t[266] = 281;\n t[268] = 283;\n t[269] = 313;\n t[275] = 323;\n t[276] = 324;\n t[278] = 328;\n t[284] = 345;\n t[285] = 346;\n t[286] = 347;\n t[292] = 367;\n t[295] = 377;\n t[296] = 378;\n t[298] = 380;\n t[305] = 963;\n t[306] = 964;\n t[307] = 966;\n t[308] = 8215;\n t[309] = 8252;\n t[310] = 8319;\n t[311] = 8359;\n t[312] = 8592;\n t[313] = 8593;\n t[337] = 9552;\n t[493] = 1039;\n t[494] = 1040;\n t[705] = 1524;\n t[706] = 8362;\n t[710] = 64288;\n t[711] = 64298;\n t[759] = 1617;\n t[761] = 1776;\n t[763] = 1778;\n t[775] = 1652;\n t[777] = 1764;\n t[778] = 1780;\n t[779] = 1781;\n t[780] = 1782;\n t[782] = 771;\n t[783] = 64726;\n t[786] = 8363;\n t[788] = 8532;\n t[790] = 768;\n t[791] = 769;\n t[792] = 768;\n t[795] = 803;\n t[797] = 64336;\n t[798] = 64337;\n t[799] = 64342;\n t[800] = 64343;\n t[801] = 64344;\n t[802] = 64345;\n t[803] = 64362;\n t[804] = 64363;\n t[805] = 64364;\n t[2424] = 7821;\n t[2425] = 7822;\n t[2426] = 7823;\n t[2427] = 7824;\n t[2428] = 7825;\n t[2429] = 7826;\n t[2430] = 7827;\n t[2433] = 7682;\n t[2678] = 8045;\n t[2679] = 8046;\n t[2830] = 1552;\n t[2838] = 686;\n t[2840] = 751;\n t[2842] = 753;\n t[2843] = 754;\n t[2844] = 755;\n t[2846] = 757;\n t[2856] = 767;\n t[2857] = 848;\n t[2858] = 849;\n t[2862] = 853;\n t[2863] = 854;\n t[2864] = 855;\n t[2865] = 861;\n t[2866] = 862;\n t[2906] = 7460;\n t[2908] = 7462;\n t[2909] = 7463;\n t[2910] = 7464;\n t[2912] = 7466;\n t[2913] = 7467;\n t[2914] = 7468;\n t[2916] = 7470;\n t[2917] = 7471;\n t[2918] = 7472;\n t[2920] = 7474;\n t[2921] = 7475;\n t[2922] = 7476;\n t[2924] = 7478;\n t[2925] = 7479;\n t[2926] = 7480;\n t[2928] = 7482;\n t[2929] = 7483;\n t[2930] = 7484;\n t[2932] = 7486;\n t[2933] = 7487;\n t[2934] = 7488;\n t[2936] = 7490;\n t[2937] = 7491;\n t[2938] = 7492;\n t[2940] = 7494;\n t[2941] = 7495;\n t[2942] = 7496;\n t[2944] = 7498;\n t[2946] = 7500;\n t[2948] = 7502;\n t[2950] = 7504;\n t[2951] = 7505;\n t[2952] = 7506;\n t[2954] = 7508;\n t[2955] = 7509;\n t[2956] = 7510;\n t[2958] = 7512;\n t[2959] = 7513;\n t[2960] = 7514;\n t[2962] = 7516;\n t[2963] = 7517;\n t[2964] = 7518;\n t[2966] = 7520;\n t[2967] = 7521;\n t[2968] = 7522;\n t[2970] = 7524;\n t[2971] = 7525;\n t[2972] = 7526;\n t[2974] = 7528;\n t[2975] = 7529;\n t[2976] = 7530;\n t[2978] = 1537;\n t[2979] = 1538;\n t[2980] = 1539;\n t[2982] = 1549;\n t[2983] = 1551;\n t[2984] = 1552;\n t[2986] = 1554;\n t[2987] = 1555;\n t[2988] = 1556;\n t[2990] = 1623;\n t[2991] = 1624;\n t[2995] = 1775;\n t[2999] = 1791;\n t[3002] = 64290;\n t[3003] = 64291;\n t[3004] = 64292;\n t[3006] = 64294;\n t[3007] = 64295;\n t[3008] = 64296;\n t[3011] = 1900;\n t[3014] = 8223;\n t[3015] = 8244;\n t[3017] = 7532;\n t[3018] = 7533;\n t[3019] = 7534;\n t[3075] = 7590;\n t[3076] = 7591;\n t[3079] = 7594;\n t[3080] = 7595;\n t[3083] = 7598;\n t[3084] = 7599;\n t[3087] = 7602;\n t[3088] = 7603;\n t[3091] = 7606;\n t[3092] = 7607;\n t[3095] = 7610;\n t[3096] = 7611;\n t[3099] = 7614;\n t[3100] = 7615;\n t[3103] = 7618;\n t[3104] = 7619;\n t[3107] = 8337;\n t[3108] = 8338;\n t[3116] = 1884;\n t[3119] = 1885;\n t[3120] = 1885;\n t[3123] = 1886;\n t[3124] = 1886;\n t[3127] = 1887;\n t[3128] = 1887;\n t[3131] = 1888;\n t[3132] = 1888;\n t[3135] = 1889;\n t[3136] = 1889;\n t[3139] = 1890;\n t[3140] = 1890;\n t[3143] = 1891;\n t[3144] = 1891;\n t[3147] = 1892;\n t[3148] = 1892;\n t[3153] = 580;\n t[3154] = 581;\n t[3157] = 584;\n t[3158] = 585;\n t[3161] = 588;\n t[3162] = 589;\n t[3165] = 891;\n t[3166] = 892;\n t[3169] = 1274;\n t[3170] = 1275;\n t[3173] = 1278;\n t[3174] = 1279;\n t[3181] = 7622;\n t[3182] = 7623;\n t[3282] = 11799;\n t[3316] = 578;\n t[3379] = 42785;\n t[3393] = 1159;\n t[3416] = 8377;\n});\nexports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;\nconst getSupplementalGlyphMapForArialBlack = (0, _core_utils.getLookupTableFactory)(function (t) {\n t[227] = 322;\n t[264] = 261;\n t[291] = 346;\n});\nexports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;\nconst getSupplementalGlyphMapForCalibri = (0, _core_utils.getLookupTableFactory)(function (t) {\n t[1] = 32;\n t[4] = 65;\n t[17] = 66;\n t[18] = 67;\n t[24] = 68;\n t[28] = 69;\n t[38] = 70;\n t[39] = 71;\n t[44] = 72;\n t[47] = 73;\n t[58] = 74;\n t[60] = 75;\n t[62] = 76;\n t[68] = 77;\n t[69] = 78;\n t[75] = 79;\n t[87] = 80;\n t[89] = 81;\n t[90] = 82;\n t[94] = 83;\n t[100] = 84;\n t[104] = 85;\n t[115] = 86;\n t[116] = 87;\n t[121] = 88;\n t[122] = 89;\n t[127] = 90;\n t[258] = 97;\n t[268] = 261;\n t[271] = 98;\n t[272] = 99;\n t[273] = 263;\n t[282] = 100;\n t[286] = 101;\n t[295] = 281;\n t[296] = 102;\n t[336] = 103;\n t[346] = 104;\n t[349] = 105;\n t[361] = 106;\n t[364] = 107;\n t[367] = 108;\n t[371] = 322;\n t[373] = 109;\n t[374] = 110;\n t[381] = 111;\n t[383] = 243;\n t[393] = 112;\n t[395] = 113;\n t[396] = 114;\n t[400] = 115;\n t[401] = 347;\n t[410] = 116;\n t[437] = 117;\n t[448] = 118;\n t[449] = 119;\n t[454] = 120;\n t[455] = 121;\n t[460] = 122;\n t[463] = 380;\n t[853] = 44;\n t[855] = 58;\n t[856] = 46;\n t[876] = 47;\n t[878] = 45;\n t[882] = 45;\n t[894] = 40;\n t[895] = 41;\n t[896] = 91;\n t[897] = 93;\n t[923] = 64;\n t[1004] = 48;\n t[1005] = 49;\n t[1006] = 50;\n t[1007] = 51;\n t[1008] = 52;\n t[1009] = 53;\n t[1010] = 54;\n t[1011] = 55;\n t[1012] = 56;\n t[1013] = 57;\n t[1081] = 37;\n t[1085] = 43;\n t[1086] = 45;\n});\nexports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(8).getLookupTableFactory;\nvar getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00a9;\n t[63193] = 0x00a9;\n t[63720] = 0x00ae;\n t[63194] = 0x00ae;\n t[63722] = 0x2122;\n t[63195] = 0x2122;\n t[63729] = 0x23a7;\n t[63730] = 0x23a8;\n t[63731] = 0x23a9;\n t[63740] = 0x23ab;\n t[63741] = 0x23ac;\n t[63742] = 0x23ad;\n t[63726] = 0x23a1;\n t[63727] = 0x23a2;\n t[63728] = 0x23a3;\n t[63737] = 0x23a4;\n t[63738] = 0x23a5;\n t[63739] = 0x23a6;\n t[63723] = 0x239b;\n t[63724] = 0x239c;\n t[63725] = 0x239d;\n t[63734] = 0x239e;\n t[63735] = 0x239f;\n t[63736] = 0x23a0;\n});\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xfff0 && code <= 0xffff) {\n return 0;\n } else if (code >= 0xf600 && code <= 0xf8ff) {\n return getSpecialPUASymbols()[code] || code;\n } else if (code === 0x00ad) {\n return 0x002d;\n }\n return code;\n}\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n var unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n return unicode;\n }\n if (!name) {\n return -1;\n }\n if (name[0] === \"u\") {\n var nameLen = name.length, hexStr;\n if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n hexStr = name.substring(3);\n } else if (nameLen >= 5 && nameLen <= 7) {\n hexStr = name.substring(1);\n } else {\n return -1;\n }\n if (hexStr === hexStr.toUpperCase()) {\n unicode = parseInt(hexStr, 16);\n if (unicode >= 0) {\n return unicode;\n }\n }\n }\n return -1;\n}\nvar UnicodeRanges = [\n {\n begin: 0x0000,\n end: 0x007f\n },\n {\n begin: 0x0080,\n end: 0x00ff\n },\n {\n begin: 0x0100,\n end: 0x017f\n },\n {\n begin: 0x0180,\n end: 0x024f\n },\n {\n begin: 0x0250,\n end: 0x02af\n },\n {\n begin: 0x02b0,\n end: 0x02ff\n },\n {\n begin: 0x0300,\n end: 0x036f\n },\n {\n begin: 0x0370,\n end: 0x03ff\n },\n {\n begin: 0x2c80,\n end: 0x2cff\n },\n {\n begin: 0x0400,\n end: 0x04ff\n },\n {\n begin: 0x0530,\n end: 0x058f\n },\n {\n begin: 0x0590,\n end: 0x05ff\n },\n {\n begin: 0xa500,\n end: 0xa63f\n },\n {\n begin: 0x0600,\n end: 0x06ff\n },\n {\n begin: 0x07c0,\n end: 0x07ff\n },\n {\n begin: 0x0900,\n end: 0x097f\n },\n {\n begin: 0x0980,\n end: 0x09ff\n },\n {\n begin: 0x0a00,\n end: 0x0a7f\n },\n {\n begin: 0x0a80,\n end: 0x0aff\n },\n {\n begin: 0x0b00,\n end: 0x0b7f\n },\n {\n begin: 0x0b80,\n end: 0x0bff\n },\n {\n begin: 0x0c00,\n end: 0x0c7f\n },\n {\n begin: 0x0c80,\n end: 0x0cff\n },\n {\n begin: 0x0d00,\n end: 0x0d7f\n },\n {\n begin: 0x0e00,\n end: 0x0e7f\n },\n {\n begin: 0x0e80,\n end: 0x0eff\n },\n {\n begin: 0x10a0,\n end: 0x10ff\n },\n {\n begin: 0x1b00,\n end: 0x1b7f\n },\n {\n begin: 0x1100,\n end: 0x11ff\n },\n {\n begin: 0x1e00,\n end: 0x1eff\n },\n {\n begin: 0x1f00,\n end: 0x1fff\n },\n {\n begin: 0x2000,\n end: 0x206f\n },\n {\n begin: 0x2070,\n end: 0x209f\n },\n {\n begin: 0x20a0,\n end: 0x20cf\n },\n {\n begin: 0x20d0,\n end: 0x20ff\n },\n {\n begin: 0x2100,\n end: 0x214f\n },\n {\n begin: 0x2150,\n end: 0x218f\n },\n {\n begin: 0x2190,\n end: 0x21ff\n },\n {\n begin: 0x2200,\n end: 0x22ff\n },\n {\n begin: 0x2300,\n end: 0x23ff\n },\n {\n begin: 0x2400,\n end: 0x243f\n },\n {\n begin: 0x2440,\n end: 0x245f\n },\n {\n begin: 0x2460,\n end: 0x24ff\n },\n {\n begin: 0x2500,\n end: 0x257f\n },\n {\n begin: 0x2580,\n end: 0x259f\n },\n {\n begin: 0x25a0,\n end: 0x25ff\n },\n {\n begin: 0x2600,\n end: 0x26ff\n },\n {\n begin: 0x2700,\n end: 0x27bf\n },\n {\n begin: 0x3000,\n end: 0x303f\n },\n {\n begin: 0x3040,\n end: 0x309f\n },\n {\n begin: 0x30a0,\n end: 0x30ff\n },\n {\n begin: 0x3100,\n end: 0x312f\n },\n {\n begin: 0x3130,\n end: 0x318f\n },\n {\n begin: 0xa840,\n end: 0xa87f\n },\n {\n begin: 0x3200,\n end: 0x32ff\n },\n {\n begin: 0x3300,\n end: 0x33ff\n },\n {\n begin: 0xac00,\n end: 0xd7af\n },\n {\n begin: 0xd800,\n end: 0xdfff\n },\n {\n begin: 0x10900,\n end: 0x1091f\n },\n {\n begin: 0x4e00,\n end: 0x9fff\n },\n {\n begin: 0xe000,\n end: 0xf8ff\n },\n {\n begin: 0x31c0,\n end: 0x31ef\n },\n {\n begin: 0xfb00,\n end: 0xfb4f\n },\n {\n begin: 0xfb50,\n end: 0xfdff\n },\n {\n begin: 0xfe20,\n end: 0xfe2f\n },\n {\n begin: 0xfe10,\n end: 0xfe1f\n },\n {\n begin: 0xfe50,\n end: 0xfe6f\n },\n {\n begin: 0xfe70,\n end: 0xfeff\n },\n {\n begin: 0xff00,\n end: 0xffef\n },\n {\n begin: 0xfff0,\n end: 0xffff\n },\n {\n begin: 0x0f00,\n end: 0x0fff\n },\n {\n begin: 0x0700,\n end: 0x074f\n },\n {\n begin: 0x0780,\n end: 0x07bf\n },\n {\n begin: 0x0d80,\n end: 0x0dff\n },\n {\n begin: 0x1000,\n end: 0x109f\n },\n {\n begin: 0x1200,\n end: 0x137f\n },\n {\n begin: 0x13a0,\n end: 0x13ff\n },\n {\n begin: 0x1400,\n end: 0x167f\n },\n {\n begin: 0x1680,\n end: 0x169f\n },\n {\n begin: 0x16a0,\n end: 0x16ff\n },\n {\n begin: 0x1780,\n end: 0x17ff\n },\n {\n begin: 0x1800,\n end: 0x18af\n },\n {\n begin: 0x2800,\n end: 0x28ff\n },\n {\n begin: 0xa000,\n end: 0xa48f\n },\n {\n begin: 0x1700,\n end: 0x171f\n },\n {\n begin: 0x10300,\n end: 0x1032f\n },\n {\n begin: 0x10330,\n end: 0x1034f\n },\n {\n begin: 0x10400,\n end: 0x1044f\n },\n {\n begin: 0x1d000,\n end: 0x1d0ff\n },\n {\n begin: 0x1d400,\n end: 0x1d7ff\n },\n {\n begin: 0xff000,\n end: 0xffffd\n },\n {\n begin: 0xfe00,\n end: 0xfe0f\n },\n {\n begin: 0xe0000,\n end: 0xe007f\n },\n {\n begin: 0x1900,\n end: 0x194f\n },\n {\n begin: 0x1950,\n end: 0x197f\n },\n {\n begin: 0x1980,\n end: 0x19df\n },\n {\n begin: 0x1a00,\n end: 0x1a1f\n },\n {\n begin: 0x2c00,\n end: 0x2c5f\n },\n {\n begin: 0x2d30,\n end: 0x2d7f\n },\n {\n begin: 0x4dc0,\n end: 0x4dff\n },\n {\n begin: 0xa800,\n end: 0xa82f\n },\n {\n begin: 0x10000,\n end: 0x1007f\n },\n {\n begin: 0x10140,\n end: 0x1018f\n },\n {\n begin: 0x10380,\n end: 0x1039f\n },\n {\n begin: 0x103a0,\n end: 0x103df\n },\n {\n begin: 0x10450,\n end: 0x1047f\n },\n {\n begin: 0x10480,\n end: 0x104af\n },\n {\n begin: 0x10800,\n end: 0x1083f\n },\n {\n begin: 0x10a00,\n end: 0x10a5f\n },\n {\n begin: 0x1d300,\n end: 0x1d35f\n },\n {\n begin: 0x12000,\n end: 0x123ff\n },\n {\n begin: 0x1d360,\n end: 0x1d37f\n },\n {\n begin: 0x1b80,\n end: 0x1bbf\n },\n {\n begin: 0x1c00,\n end: 0x1c4f\n },\n {\n begin: 0x1c50,\n end: 0x1c7f\n },\n {\n begin: 0xa880,\n end: 0xa8df\n },\n {\n begin: 0xa900,\n end: 0xa92f\n },\n {\n begin: 0xa930,\n end: 0xa95f\n },\n {\n begin: 0xaa00,\n end: 0xaa5f\n },\n {\n begin: 0x10190,\n end: 0x101cf\n },\n {\n begin: 0x101d0,\n end: 0x101ff\n },\n {\n begin: 0x102a0,\n end: 0x102df\n },\n {\n begin: 0x1f030,\n end: 0x1f09f\n }\n];\nfunction getUnicodeRangeFor(value) {\n for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n var range = UnicodeRanges[i];\n if (value >= range.begin && value < range.end) {\n return i;\n }\n }\n return -1;\n}\nfunction isRTLRangeFor(value) {\n var range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n return false;\n}\nvar getNormalizedUnicodes = getLookupTableFactory(function (t) {\n t[\"\\u00A8\"] = \"\\u0020\\u0308\";\n t[\"\\u00AF\"] = \"\\u0020\\u0304\";\n t[\"\\u00B4\"] = \"\\u0020\\u0301\";\n t[\"\\u00B5\"] = \"\\u03BC\";\n t[\"\\u00B8\"] = \"\\u0020\\u0327\";\n t[\"\\u0132\"] = \"\\u0049\\u004A\";\n t[\"\\u0133\"] = \"\\u0069\\u006A\";\n t[\"\\u013F\"] = \"\\u004C\\u00B7\";\n t[\"\\u0140\"] = \"\\u006C\\u00B7\";\n t[\"\\u0149\"] = \"\\u02BC\\u006E\";\n t[\"\\u017F\"] = \"\\u0073\";\n t[\"\\u01C4\"] = \"\\u0044\\u017D\";\n t[\"\\u01C5\"] = \"\\u0044\\u017E\";\n t[\"\\u01C6\"] = \"\\u0064\\u017E\";\n t[\"\\u01C7\"] = \"\\u004C\\u004A\";\n t[\"\\u01C8\"] = \"\\u004C\\u006A\";\n t[\"\\u01C9\"] = \"\\u006C\\u006A\";\n t[\"\\u01CA\"] = \"\\u004E\\u004A\";\n t[\"\\u01CB\"] = \"\\u004E\\u006A\";\n t[\"\\u01CC\"] = \"\\u006E\\u006A\";\n t[\"\\u01F1\"] = \"\\u0044\\u005A\";\n t[\"\\u01F2\"] = \"\\u0044\\u007A\";\n t[\"\\u01F3\"] = \"\\u0064\\u007A\";\n t[\"\\u02D8\"] = \"\\u0020\\u0306\";\n t[\"\\u02D9\"] = \"\\u0020\\u0307\";\n t[\"\\u02DA\"] = \"\\u0020\\u030A\";\n t[\"\\u02DB\"] = \"\\u0020\\u0328\";\n t[\"\\u02DC\"] = \"\\u0020\\u0303\";\n t[\"\\u02DD\"] = \"\\u0020\\u030B\";\n t[\"\\u037A\"] = \"\\u0020\\u0345\";\n t[\"\\u0384\"] = \"\\u0020\\u0301\";\n t[\"\\u03D0\"] = \"\\u03B2\";\n t[\"\\u03D1\"] = \"\\u03B8\";\n t[\"\\u03D2\"] = \"\\u03A5\";\n t[\"\\u03D5\"] = \"\\u03C6\";\n t[\"\\u03D6\"] = \"\\u03C0\";\n t[\"\\u03F0\"] = \"\\u03BA\";\n t[\"\\u03F1\"] = \"\\u03C1\";\n t[\"\\u03F2\"] = \"\\u03C2\";\n t[\"\\u03F4\"] = \"\\u0398\";\n t[\"\\u03F5\"] = \"\\u03B5\";\n t[\"\\u03F9\"] = \"\\u03A3\";\n t[\"\\u0587\"] = \"\\u0565\\u0582\";\n t[\"\\u0675\"] = \"\\u0627\\u0674\";\n t[\"\\u0676\"] = \"\\u0648\\u0674\";\n t[\"\\u0677\"] = \"\\u06C7\\u0674\";\n t[\"\\u0678\"] = \"\\u064A\\u0674\";\n t[\"\\u0E33\"] = \"\\u0E4D\\u0E32\";\n t[\"\\u0EB3\"] = \"\\u0ECD\\u0EB2\";\n t[\"\\u0EDC\"] = \"\\u0EAB\\u0E99\";\n t[\"\\u0EDD\"] = \"\\u0EAB\\u0EA1\";\n t[\"\\u0F77\"] = \"\\u0FB2\\u0F81\";\n t[\"\\u0F79\"] = \"\\u0FB3\\u0F81\";\n t[\"\\u1E9A\"] = \"\\u0061\\u02BE\";\n t[\"\\u1FBD\"] = \"\\u0020\\u0313\";\n t[\"\\u1FBF\"] = \"\\u0020\\u0313\";\n t[\"\\u1FC0\"] = \"\\u0020\\u0342\";\n t[\"\\u1FFE\"] = \"\\u0020\\u0314\";\n t[\"\\u2002\"] = \"\\u0020\";\n t[\"\\u2003\"] = \"\\u0020\";\n t[\"\\u2004\"] = \"\\u0020\";\n t[\"\\u2005\"] = \"\\u0020\";\n t[\"\\u2006\"] = \"\\u0020\";\n t[\"\\u2008\"] = \"\\u0020\";\n t[\"\\u2009\"] = \"\\u0020\";\n t[\"\\u200A\"] = \"\\u0020\";\n t[\"\\u2017\"] = \"\\u0020\\u0333\";\n t[\"\\u2024\"] = \"\\u002E\";\n t[\"\\u2025\"] = \"\\u002E\\u002E\";\n t[\"\\u2026\"] = \"\\u002E\\u002E\\u002E\";\n t[\"\\u2033\"] = \"\\u2032\\u2032\";\n t[\"\\u2034\"] = \"\\u2032\\u2032\\u2032\";\n t[\"\\u2036\"] = \"\\u2035\\u2035\";\n t[\"\\u2037\"] = \"\\u2035\\u2035\\u2035\";\n t[\"\\u203C\"] = \"\\u0021\\u0021\";\n t[\"\\u203E\"] = \"\\u0020\\u0305\";\n t[\"\\u2047\"] = \"\\u003F\\u003F\";\n t[\"\\u2048\"] = \"\\u003F\\u0021\";\n t[\"\\u2049\"] = \"\\u0021\\u003F\";\n t[\"\\u2057\"] = \"\\u2032\\u2032\\u2032\\u2032\";\n t[\"\\u205F\"] = \"\\u0020\";\n t[\"\\u20A8\"] = \"\\u0052\\u0073\";\n t[\"\\u2100\"] = \"\\u0061\\u002F\\u0063\";\n t[\"\\u2101\"] = \"\\u0061\\u002F\\u0073\";\n t[\"\\u2103\"] = \"\\u00B0\\u0043\";\n t[\"\\u2105\"] = \"\\u0063\\u002F\\u006F\";\n t[\"\\u2106\"] = \"\\u0063\\u002F\\u0075\";\n t[\"\\u2107\"] = \"\\u0190\";\n t[\"\\u2109\"] = \"\\u00B0\\u0046\";\n t[\"\\u2116\"] = \"\\u004E\\u006F\";\n t[\"\\u2121\"] = \"\\u0054\\u0045\\u004C\";\n t[\"\\u2135\"] = \"\\u05D0\";\n t[\"\\u2136\"] = \"\\u05D1\";\n t[\"\\u2137\"] = \"\\u05D2\";\n t[\"\\u2138\"] = \"\\u05D3\";\n t[\"\\u213B\"] = \"\\u0046\\u0041\\u0058\";\n t[\"\\u2160\"] = \"\\u0049\";\n t[\"\\u2161\"] = \"\\u0049\\u0049\";\n t[\"\\u2162\"] = \"\\u0049\\u0049\\u0049\";\n t[\"\\u2163\"] = \"\\u0049\\u0056\";\n t[\"\\u2164\"] = \"\\u0056\";\n t[\"\\u2165\"] = \"\\u0056\\u0049\";\n t[\"\\u2166\"] = \"\\u0056\\u0049\\u0049\";\n t[\"\\u2167\"] = \"\\u0056\\u0049\\u0049\\u0049\";\n t[\"\\u2168\"] = \"\\u0049\\u0058\";\n t[\"\\u2169\"] = \"\\u0058\";\n t[\"\\u216A\"] = \"\\u0058\\u0049\";\n t[\"\\u216B\"] = \"\\u0058\\u0049\\u0049\";\n t[\"\\u216C\"] = \"\\u004C\";\n t[\"\\u216D\"] = \"\\u0043\";\n t[\"\\u216E\"] = \"\\u0044\";\n t[\"\\u216F\"] = \"\\u004D\";\n t[\"\\u2170\"] = \"\\u0069\";\n t[\"\\u2171\"] = \"\\u0069\\u0069\";\n t[\"\\u2172\"] = \"\\u0069\\u0069\\u0069\";\n t[\"\\u2173\"] = \"\\u0069\\u0076\";\n t[\"\\u2174\"] = \"\\u0076\";\n t[\"\\u2175\"] = \"\\u0076\\u0069\";\n t[\"\\u2176\"] = \"\\u0076\\u0069\\u0069\";\n t[\"\\u2177\"] = \"\\u0076\\u0069\\u0069\\u0069\";\n t[\"\\u2178\"] = \"\\u0069\\u0078\";\n t[\"\\u2179\"] = \"\\u0078\";\n t[\"\\u217A\"] = \"\\u0078\\u0069\";\n t[\"\\u217B\"] = \"\\u0078\\u0069\\u0069\";\n t[\"\\u217C\"] = \"\\u006C\";\n t[\"\\u217D\"] = \"\\u0063\";\n t[\"\\u217E\"] = \"\\u0064\";\n t[\"\\u217F\"] = \"\\u006D\";\n t[\"\\u222C\"] = \"\\u222B\\u222B\";\n t[\"\\u222D\"] = \"\\u222B\\u222B\\u222B\";\n t[\"\\u222F\"] = \"\\u222E\\u222E\";\n t[\"\\u2230\"] = \"\\u222E\\u222E\\u222E\";\n t[\"\\u2474\"] = \"\\u0028\\u0031\\u0029\";\n t[\"\\u2475\"] = \"\\u0028\\u0032\\u0029\";\n t[\"\\u2476\"] = \"\\u0028\\u0033\\u0029\";\n t[\"\\u2477\"] = \"\\u0028\\u0034\\u0029\";\n t[\"\\u2478\"] = \"\\u0028\\u0035\\u0029\";\n t[\"\\u2479\"] = \"\\u0028\\u0036\\u0029\";\n t[\"\\u247A\"] = \"\\u0028\\u0037\\u0029\";\n t[\"\\u247B\"] = \"\\u0028\\u0038\\u0029\";\n t[\"\\u247C\"] = \"\\u0028\\u0039\\u0029\";\n t[\"\\u247D\"] = \"\\u0028\\u0031\\u0030\\u0029\";\n t[\"\\u247E\"] = \"\\u0028\\u0031\\u0031\\u0029\";\n t[\"\\u247F\"] = \"\\u0028\\u0031\\u0032\\u0029\";\n t[\"\\u2480\"] = \"\\u0028\\u0031\\u0033\\u0029\";\n t[\"\\u2481\"] = \"\\u0028\\u0031\\u0034\\u0029\";\n t[\"\\u2482\"] = \"\\u0028\\u0031\\u0035\\u0029\";\n t[\"\\u2483\"] = \"\\u0028\\u0031\\u0036\\u0029\";\n t[\"\\u2484\"] = \"\\u0028\\u0031\\u0037\\u0029\";\n t[\"\\u2485\"] = \"\\u0028\\u0031\\u0038\\u0029\";\n t[\"\\u2486\"] = \"\\u0028\\u0031\\u0039\\u0029\";\n t[\"\\u2487\"] = \"\\u0028\\u0032\\u0030\\u0029\";\n t[\"\\u2488\"] = \"\\u0031\\u002E\";\n t[\"\\u2489\"] = \"\\u0032\\u002E\";\n t[\"\\u248A\"] = \"\\u0033\\u002E\";\n t[\"\\u248B\"] = \"\\u0034\\u002E\";\n t[\"\\u248C\"] = \"\\u0035\\u002E\";\n t[\"\\u248D\"] = \"\\u0036\\u002E\";\n t[\"\\u248E\"] = \"\\u0037\\u002E\";\n t[\"\\u248F\"] = \"\\u0038\\u002E\";\n t[\"\\u2490\"] = \"\\u0039\\u002E\";\n t[\"\\u2491\"] = \"\\u0031\\u0030\\u002E\";\n t[\"\\u2492\"] = \"\\u0031\\u0031\\u002E\";\n t[\"\\u2493\"] = \"\\u0031\\u0032\\u002E\";\n t[\"\\u2494\"] = \"\\u0031\\u0033\\u002E\";\n t[\"\\u2495\"] = \"\\u0031\\u0034\\u002E\";\n t[\"\\u2496\"] = \"\\u0031\\u0035\\u002E\";\n t[\"\\u2497\"] = \"\\u0031\\u0036\\u002E\";\n t[\"\\u2498\"] = \"\\u0031\\u0037\\u002E\";\n t[\"\\u2499\"] = \"\\u0031\\u0038\\u002E\";\n t[\"\\u249A\"] = \"\\u0031\\u0039\\u002E\";\n t[\"\\u249B\"] = \"\\u0032\\u0030\\u002E\";\n t[\"\\u249C\"] = \"\\u0028\\u0061\\u0029\";\n t[\"\\u249D\"] = \"\\u0028\\u0062\\u0029\";\n t[\"\\u249E\"] = \"\\u0028\\u0063\\u0029\";\n t[\"\\u249F\"] = \"\\u0028\\u0064\\u0029\";\n t[\"\\u24A0\"] = \"\\u0028\\u0065\\u0029\";\n t[\"\\u24A1\"] = \"\\u0028\\u0066\\u0029\";\n t[\"\\u24A2\"] = \"\\u0028\\u0067\\u0029\";\n t[\"\\u24A3\"] = \"\\u0028\\u0068\\u0029\";\n t[\"\\u24A4\"] = \"\\u0028\\u0069\\u0029\";\n t[\"\\u24A5\"] = \"\\u0028\\u006A\\u0029\";\n t[\"\\u24A6\"] = \"\\u0028\\u006B\\u0029\";\n t[\"\\u24A7\"] = \"\\u0028\\u006C\\u0029\";\n t[\"\\u24A8\"] = \"\\u0028\\u006D\\u0029\";\n t[\"\\u24A9\"] = \"\\u0028\\u006E\\u0029\";\n t[\"\\u24AA\"] = \"\\u0028\\u006F\\u0029\";\n t[\"\\u24AB\"] = \"\\u0028\\u0070\\u0029\";\n t[\"\\u24AC\"] = \"\\u0028\\u0071\\u0029\";\n t[\"\\u24AD\"] = \"\\u0028\\u0072\\u0029\";\n t[\"\\u24AE\"] = \"\\u0028\\u0073\\u0029\";\n t[\"\\u24AF\"] = \"\\u0028\\u0074\\u0029\";\n t[\"\\u24B0\"] = \"\\u0028\\u0075\\u0029\";\n t[\"\\u24B1\"] = \"\\u0028\\u0076\\u0029\";\n t[\"\\u24B2\"] = \"\\u0028\\u0077\\u0029\";\n t[\"\\u24B3\"] = \"\\u0028\\u0078\\u0029\";\n t[\"\\u24B4\"] = \"\\u0028\\u0079\\u0029\";\n t[\"\\u24B5\"] = \"\\u0028\\u007A\\u0029\";\n t[\"\\u2A0C\"] = \"\\u222B\\u222B\\u222B\\u222B\";\n t[\"\\u2A74\"] = \"\\u003A\\u003A\\u003D\";\n t[\"\\u2A75\"] = \"\\u003D\\u003D\";\n t[\"\\u2A76\"] = \"\\u003D\\u003D\\u003D\";\n t[\"\\u2E9F\"] = \"\\u6BCD\";\n t[\"\\u2EF3\"] = \"\\u9F9F\";\n t[\"\\u2F00\"] = \"\\u4E00\";\n t[\"\\u2F01\"] = \"\\u4E28\";\n t[\"\\u2F02\"] = \"\\u4E36\";\n t[\"\\u2F03\"] = \"\\u4E3F\";\n t[\"\\u2F04\"] = \"\\u4E59\";\n t[\"\\u2F05\"] = \"\\u4E85\";\n t[\"\\u2F06\"] = \"\\u4E8C\";\n t[\"\\u2F07\"] = \"\\u4EA0\";\n t[\"\\u2F08\"] = \"\\u4EBA\";\n t[\"\\u2F09\"] = \"\\u513F\";\n t[\"\\u2F0A\"] = \"\\u5165\";\n t[\"\\u2F0B\"] = \"\\u516B\";\n t[\"\\u2F0C\"] = \"\\u5182\";\n t[\"\\u2F0D\"] = \"\\u5196\";\n t[\"\\u2F0E\"] = \"\\u51AB\";\n t[\"\\u2F0F\"] = \"\\u51E0\";\n t[\"\\u2F10\"] = \"\\u51F5\";\n t[\"\\u2F11\"] = \"\\u5200\";\n t[\"\\u2F12\"] = \"\\u529B\";\n t[\"\\u2F13\"] = \"\\u52F9\";\n t[\"\\u2F14\"] = \"\\u5315\";\n t[\"\\u2F15\"] = \"\\u531A\";\n t[\"\\u2F16\"] = \"\\u5338\";\n t[\"\\u2F17\"] = \"\\u5341\";\n t[\"\\u2F18\"] = \"\\u535C\";\n t[\"\\u2F19\"] = \"\\u5369\";\n t[\"\\u2F1A\"] = \"\\u5382\";\n t[\"\\u2F1B\"] = \"\\u53B6\";\n t[\"\\u2F1C\"] = \"\\u53C8\";\n t[\"\\u2F1D\"] = \"\\u53E3\";\n t[\"\\u2F1E\"] = \"\\u56D7\";\n t[\"\\u2F1F\"] = \"\\u571F\";\n t[\"\\u2F20\"] = \"\\u58EB\";\n t[\"\\u2F21\"] = \"\\u5902\";\n t[\"\\u2F22\"] = \"\\u590A\";\n t[\"\\u2F23\"] = \"\\u5915\";\n t[\"\\u2F24\"] = \"\\u5927\";\n t[\"\\u2F25\"] = \"\\u5973\";\n t[\"\\u2F26\"] = \"\\u5B50\";\n t[\"\\u2F27\"] = \"\\u5B80\";\n t[\"\\u2F28\"] = \"\\u5BF8\";\n t[\"\\u2F29\"] = \"\\u5C0F\";\n t[\"\\u2F2A\"] = \"\\u5C22\";\n t[\"\\u2F2B\"] = \"\\u5C38\";\n t[\"\\u2F2C\"] = \"\\u5C6E\";\n t[\"\\u2F2D\"] = \"\\u5C71\";\n t[\"\\u2F2E\"] = \"\\u5DDB\";\n t[\"\\u2F2F\"] = \"\\u5DE5\";\n t[\"\\u2F30\"] = \"\\u5DF1\";\n t[\"\\u2F31\"] = \"\\u5DFE\";\n t[\"\\u2F32\"] = \"\\u5E72\";\n t[\"\\u2F33\"] = \"\\u5E7A\";\n t[\"\\u2F34\"] = \"\\u5E7F\";\n t[\"\\u2F35\"] = \"\\u5EF4\";\n t[\"\\u2F36\"] = \"\\u5EFE\";\n t[\"\\u2F37\"] = \"\\u5F0B\";\n t[\"\\u2F38\"] = \"\\u5F13\";\n t[\"\\u2F39\"] = \"\\u5F50\";\n t[\"\\u2F3A\"] = \"\\u5F61\";\n t[\"\\u2F3B\"] = \"\\u5F73\";\n t[\"\\u2F3C\"] = \"\\u5FC3\";\n t[\"\\u2F3D\"] = \"\\u6208\";\n t[\"\\u2F3E\"] = \"\\u6236\";\n t[\"\\u2F3F\"] = \"\\u624B\";\n t[\"\\u2F40\"] = \"\\u652F\";\n t[\"\\u2F41\"] = \"\\u6534\";\n t[\"\\u2F42\"] = \"\\u6587\";\n t[\"\\u2F43\"] = \"\\u6597\";\n t[\"\\u2F44\"] = \"\\u65A4\";\n t[\"\\u2F45\"] = \"\\u65B9\";\n t[\"\\u2F46\"] = \"\\u65E0\";\n t[\"\\u2F47\"] = \"\\u65E5\";\n t[\"\\u2F48\"] = \"\\u66F0\";\n t[\"\\u2F49\"] = \"\\u6708\";\n t[\"\\u2F4A\"] = \"\\u6728\";\n t[\"\\u2F4B\"] = \"\\u6B20\";\n t[\"\\u2F4C\"] = \"\\u6B62\";\n t[\"\\u2F4D\"] = \"\\u6B79\";\n t[\"\\u2F4E\"] = \"\\u6BB3\";\n t[\"\\u2F4F\"] = \"\\u6BCB\";\n t[\"\\u2F50\"] = \"\\u6BD4\";\n t[\"\\u2F51\"] = \"\\u6BDB\";\n t[\"\\u2F52\"] = \"\\u6C0F\";\n t[\"\\u2F53\"] = \"\\u6C14\";\n t[\"\\u2F54\"] = \"\\u6C34\";\n t[\"\\u2F55\"] = \"\\u706B\";\n t[\"\\u2F56\"] = \"\\u722A\";\n t[\"\\u2F57\"] = \"\\u7236\";\n t[\"\\u2F58\"] = \"\\u723B\";\n t[\"\\u2F59\"] = \"\\u723F\";\n t[\"\\u2F5A\"] = \"\\u7247\";\n t[\"\\u2F5B\"] = \"\\u7259\";\n t[\"\\u2F5C\"] = \"\\u725B\";\n t[\"\\u2F5D\"] = \"\\u72AC\";\n t[\"\\u2F5E\"] = \"\\u7384\";\n t[\"\\u2F5F\"] = \"\\u7389\";\n t[\"\\u2F60\"] = \"\\u74DC\";\n t[\"\\u2F61\"] = \"\\u74E6\";\n t[\"\\u2F62\"] = \"\\u7518\";\n t[\"\\u2F63\"] = \"\\u751F\";\n t[\"\\u2F64\"] = \"\\u7528\";\n t[\"\\u2F65\"] = \"\\u7530\";\n t[\"\\u2F66\"] = \"\\u758B\";\n t[\"\\u2F67\"] = \"\\u7592\";\n t[\"\\u2F68\"] = \"\\u7676\";\n t[\"\\u2F69\"] = \"\\u767D\";\n t[\"\\u2F6A\"] = \"\\u76AE\";\n t[\"\\u2F6B\"] = \"\\u76BF\";\n t[\"\\u2F6C\"] = \"\\u76EE\";\n t[\"\\u2F6D\"] = \"\\u77DB\";\n t[\"\\u2F6E\"] = \"\\u77E2\";\n t[\"\\u2F6F\"] = \"\\u77F3\";\n t[\"\\u2F70\"] = \"\\u793A\";\n t[\"\\u2F71\"] = \"\\u79B8\";\n t[\"\\u2F72\"] = \"\\u79BE\";\n t[\"\\u2F73\"] = \"\\u7A74\";\n t[\"\\u2F74\"] = \"\\u7ACB\";\n t[\"\\u2F75\"] = \"\\u7AF9\";\n t[\"\\u2F76\"] = \"\\u7C73\";\n t[\"\\u2F77\"] = \"\\u7CF8\";\n t[\"\\u2F78\"] = \"\\u7F36\";\n t[\"\\u2F79\"] = \"\\u7F51\";\n t[\"\\u2F7A\"] = \"\\u7F8A\";\n t[\"\\u2F7B\"] = \"\\u7FBD\";\n t[\"\\u2F7C\"] = \"\\u8001\";\n t[\"\\u2F7D\"] = \"\\u800C\";\n t[\"\\u2F7E\"] = \"\\u8012\";\n t[\"\\u2F7F\"] = \"\\u8033\";\n t[\"\\u2F80\"] = \"\\u807F\";\n t[\"\\u2F81\"] = \"\\u8089\";\n t[\"\\u2F82\"] = \"\\u81E3\";\n t[\"\\u2F83\"] = \"\\u81EA\";\n t[\"\\u2F84\"] = \"\\u81F3\";\n t[\"\\u2F85\"] = \"\\u81FC\";\n t[\"\\u2F86\"] = \"\\u820C\";\n t[\"\\u2F87\"] = \"\\u821B\";\n t[\"\\u2F88\"] = \"\\u821F\";\n t[\"\\u2F89\"] = \"\\u826E\";\n t[\"\\u2F8A\"] = \"\\u8272\";\n t[\"\\u2F8B\"] = \"\\u8278\";\n t[\"\\u2F8C\"] = \"\\u864D\";\n t[\"\\u2F8D\"] = \"\\u866B\";\n t[\"\\u2F8E\"] = \"\\u8840\";\n t[\"\\u2F8F\"] = \"\\u884C\";\n t[\"\\u2F90\"] = \"\\u8863\";\n t[\"\\u2F91\"] = \"\\u897E\";\n t[\"\\u2F92\"] = \"\\u898B\";\n t[\"\\u2F93\"] = \"\\u89D2\";\n t[\"\\u2F94\"] = \"\\u8A00\";\n t[\"\\u2F95\"] = \"\\u8C37\";\n t[\"\\u2F96\"] = \"\\u8C46\";\n t[\"\\u2F97\"] = \"\\u8C55\";\n t[\"\\u2F98\"] = \"\\u8C78\";\n t[\"\\u2F99\"] = \"\\u8C9D\";\n t[\"\\u2F9A\"] = \"\\u8D64\";\n t[\"\\u2F9B\"] = \"\\u8D70\";\n t[\"\\u2F9C\"] = \"\\u8DB3\";\n t[\"\\u2F9D\"] = \"\\u8EAB\";\n t[\"\\u2F9E\"] = \"\\u8ECA\";\n t[\"\\u2F9F\"] = \"\\u8F9B\";\n t[\"\\u2FA0\"] = \"\\u8FB0\";\n t[\"\\u2FA1\"] = \"\\u8FB5\";\n t[\"\\u2FA2\"] = \"\\u9091\";\n t[\"\\u2FA3\"] = \"\\u9149\";\n t[\"\\u2FA4\"] = \"\\u91C6\";\n t[\"\\u2FA5\"] = \"\\u91CC\";\n t[\"\\u2FA6\"] = \"\\u91D1\";\n t[\"\\u2FA7\"] = \"\\u9577\";\n t[\"\\u2FA8\"] = \"\\u9580\";\n t[\"\\u2FA9\"] = \"\\u961C\";\n t[\"\\u2FAA\"] = \"\\u96B6\";\n t[\"\\u2FAB\"] = \"\\u96B9\";\n t[\"\\u2FAC\"] = \"\\u96E8\";\n t[\"\\u2FAD\"] = \"\\u9751\";\n t[\"\\u2FAE\"] = \"\\u975E\";\n t[\"\\u2FAF\"] = \"\\u9762\";\n t[\"\\u2FB0\"] = \"\\u9769\";\n t[\"\\u2FB1\"] = \"\\u97CB\";\n t[\"\\u2FB2\"] = \"\\u97ED\";\n t[\"\\u2FB3\"] = \"\\u97F3\";\n t[\"\\u2FB4\"] = \"\\u9801\";\n t[\"\\u2FB5\"] = \"\\u98A8\";\n t[\"\\u2FB6\"] = \"\\u98DB\";\n t[\"\\u2FB7\"] = \"\\u98DF\";\n t[\"\\u2FB8\"] = \"\\u9996\";\n t[\"\\u2FB9\"] = \"\\u9999\";\n t[\"\\u2FBA\"] = \"\\u99AC\";\n t[\"\\u2FBB\"] = \"\\u9AA8\";\n t[\"\\u2FBC\"] = \"\\u9AD8\";\n t[\"\\u2FBD\"] = \"\\u9ADF\";\n t[\"\\u2FBE\"] = \"\\u9B25\";\n t[\"\\u2FBF\"] = \"\\u9B2F\";\n t[\"\\u2FC0\"] = \"\\u9B32\";\n t[\"\\u2FC1\"] = \"\\u9B3C\";\n t[\"\\u2FC2\"] = \"\\u9B5A\";\n t[\"\\u2FC3\"] = \"\\u9CE5\";\n t[\"\\u2FC4\"] = \"\\u9E75\";\n t[\"\\u2FC5\"] = \"\\u9E7F\";\n t[\"\\u2FC6\"] = \"\\u9EA5\";\n t[\"\\u2FC7\"] = \"\\u9EBB\";\n t[\"\\u2FC8\"] = \"\\u9EC3\";\n t[\"\\u2FC9\"] = \"\\u9ECD\";\n t[\"\\u2FCA\"] = \"\\u9ED1\";\n t[\"\\u2FCB\"] = \"\\u9EF9\";\n t[\"\\u2FCC\"] = \"\\u9EFD\";\n t[\"\\u2FCD\"] = \"\\u9F0E\";\n t[\"\\u2FCE\"] = \"\\u9F13\";\n t[\"\\u2FCF\"] = \"\\u9F20\";\n t[\"\\u2FD0\"] = \"\\u9F3B\";\n t[\"\\u2FD1\"] = \"\\u9F4A\";\n t[\"\\u2FD2\"] = \"\\u9F52\";\n t[\"\\u2FD3\"] = \"\\u9F8D\";\n t[\"\\u2FD4\"] = \"\\u9F9C\";\n t[\"\\u2FD5\"] = \"\\u9FA0\";\n t[\"\\u3036\"] = \"\\u3012\";\n t[\"\\u3038\"] = \"\\u5341\";\n t[\"\\u3039\"] = \"\\u5344\";\n t[\"\\u303A\"] = \"\\u5345\";\n t[\"\\u309B\"] = \"\\u0020\\u3099\";\n t[\"\\u309C\"] = \"\\u0020\\u309A\";\n t[\"\\u3131\"] = \"\\u1100\";\n t[\"\\u3132\"] = \"\\u1101\";\n t[\"\\u3133\"] = \"\\u11AA\";\n t[\"\\u3134\"] = \"\\u1102\";\n t[\"\\u3135\"] = \"\\u11AC\";\n t[\"\\u3136\"] = \"\\u11AD\";\n t[\"\\u3137\"] = \"\\u1103\";\n t[\"\\u3138\"] = \"\\u1104\";\n t[\"\\u3139\"] = \"\\u1105\";\n t[\"\\u313A\"] = \"\\u11B0\";\n t[\"\\u313B\"] = \"\\u11B1\";\n t[\"\\u313C\"] = \"\\u11B2\";\n t[\"\\u313D\"] = \"\\u11B3\";\n t[\"\\u313E\"] = \"\\u11B4\";\n t[\"\\u313F\"] = \"\\u11B5\";\n t[\"\\u3140\"] = \"\\u111A\";\n t[\"\\u3141\"] = \"\\u1106\";\n t[\"\\u3142\"] = \"\\u1107\";\n t[\"\\u3143\"] = \"\\u1108\";\n t[\"\\u3144\"] = \"\\u1121\";\n t[\"\\u3145\"] = \"\\u1109\";\n t[\"\\u3146\"] = \"\\u110A\";\n t[\"\\u3147\"] = \"\\u110B\";\n t[\"\\u3148\"] = \"\\u110C\";\n t[\"\\u3149\"] = \"\\u110D\";\n t[\"\\u314A\"] = \"\\u110E\";\n t[\"\\u314B\"] = \"\\u110F\";\n t[\"\\u314C\"] = \"\\u1110\";\n t[\"\\u314D\"] = \"\\u1111\";\n t[\"\\u314E\"] = \"\\u1112\";\n t[\"\\u314F\"] = \"\\u1161\";\n t[\"\\u3150\"] = \"\\u1162\";\n t[\"\\u3151\"] = \"\\u1163\";\n t[\"\\u3152\"] = \"\\u1164\";\n t[\"\\u3153\"] = \"\\u1165\";\n t[\"\\u3154\"] = \"\\u1166\";\n t[\"\\u3155\"] = \"\\u1167\";\n t[\"\\u3156\"] = \"\\u1168\";\n t[\"\\u3157\"] = \"\\u1169\";\n t[\"\\u3158\"] = \"\\u116A\";\n t[\"\\u3159\"] = \"\\u116B\";\n t[\"\\u315A\"] = \"\\u116C\";\n t[\"\\u315B\"] = \"\\u116D\";\n t[\"\\u315C\"] = \"\\u116E\";\n t[\"\\u315D\"] = \"\\u116F\";\n t[\"\\u315E\"] = \"\\u1170\";\n t[\"\\u315F\"] = \"\\u1171\";\n t[\"\\u3160\"] = \"\\u1172\";\n t[\"\\u3161\"] = \"\\u1173\";\n t[\"\\u3162\"] = \"\\u1174\";\n t[\"\\u3163\"] = \"\\u1175\";\n t[\"\\u3164\"] = \"\\u1160\";\n t[\"\\u3165\"] = \"\\u1114\";\n t[\"\\u3166\"] = \"\\u1115\";\n t[\"\\u3167\"] = \"\\u11C7\";\n t[\"\\u3168\"] = \"\\u11C8\";\n t[\"\\u3169\"] = \"\\u11CC\";\n t[\"\\u316A\"] = \"\\u11CE\";\n t[\"\\u316B\"] = \"\\u11D3\";\n t[\"\\u316C\"] = \"\\u11D7\";\n t[\"\\u316D\"] = \"\\u11D9\";\n t[\"\\u316E\"] = \"\\u111C\";\n t[\"\\u316F\"] = \"\\u11DD\";\n t[\"\\u3170\"] = \"\\u11DF\";\n t[\"\\u3171\"] = \"\\u111D\";\n t[\"\\u3172\"] = \"\\u111E\";\n t[\"\\u3173\"] = \"\\u1120\";\n t[\"\\u3174\"] = \"\\u1122\";\n t[\"\\u3175\"] = \"\\u1123\";\n t[\"\\u3176\"] = \"\\u1127\";\n t[\"\\u3177\"] = \"\\u1129\";\n t[\"\\u3178\"] = \"\\u112B\";\n t[\"\\u3179\"] = \"\\u112C\";\n t[\"\\u317A\"] = \"\\u112D\";\n t[\"\\u317B\"] = \"\\u112E\";\n t[\"\\u317C\"] = \"\\u112F\";\n t[\"\\u317D\"] = \"\\u1132\";\n t[\"\\u317E\"] = \"\\u1136\";\n t[\"\\u317F\"] = \"\\u1140\";\n t[\"\\u3180\"] = \"\\u1147\";\n t[\"\\u3181\"] = \"\\u114C\";\n t[\"\\u3182\"] = \"\\u11F1\";\n t[\"\\u3183\"] = \"\\u11F2\";\n t[\"\\u3184\"] = \"\\u1157\";\n t[\"\\u3185\"] = \"\\u1158\";\n t[\"\\u3186\"] = \"\\u1159\";\n t[\"\\u3187\"] = \"\\u1184\";\n t[\"\\u3188\"] = \"\\u1185\";\n t[\"\\u3189\"] = \"\\u1188\";\n t[\"\\u318A\"] = \"\\u1191\";\n t[\"\\u318B\"] = \"\\u1192\";\n t[\"\\u318C\"] = \"\\u1194\";\n t[\"\\u318D\"] = \"\\u119E\";\n t[\"\\u318E\"] = \"\\u11A1\";\n t[\"\\u3200\"] = \"\\u0028\\u1100\\u0029\";\n t[\"\\u3201\"] = \"\\u0028\\u1102\\u0029\";\n t[\"\\u3202\"] = \"\\u0028\\u1103\\u0029\";\n t[\"\\u3203\"] = \"\\u0028\\u1105\\u0029\";\n t[\"\\u3204\"] = \"\\u0028\\u1106\\u0029\";\n t[\"\\u3205\"] = \"\\u0028\\u1107\\u0029\";\n t[\"\\u3206\"] = \"\\u0028\\u1109\\u0029\";\n t[\"\\u3207\"] = \"\\u0028\\u110B\\u0029\";\n t[\"\\u3208\"] = \"\\u0028\\u110C\\u0029\";\n t[\"\\u3209\"] = \"\\u0028\\u110E\\u0029\";\n t[\"\\u320A\"] = \"\\u0028\\u110F\\u0029\";\n t[\"\\u320B\"] = \"\\u0028\\u1110\\u0029\";\n t[\"\\u320C\"] = \"\\u0028\\u1111\\u0029\";\n t[\"\\u320D\"] = \"\\u0028\\u1112\\u0029\";\n t[\"\\u320E\"] = \"\\u0028\\u1100\\u1161\\u0029\";\n t[\"\\u320F\"] = \"\\u0028\\u1102\\u1161\\u0029\";\n t[\"\\u3210\"] = \"\\u0028\\u1103\\u1161\\u0029\";\n t[\"\\u3211\"] = \"\\u0028\\u1105\\u1161\\u0029\";\n t[\"\\u3212\"] = \"\\u0028\\u1106\\u1161\\u0029\";\n t[\"\\u3213\"] = \"\\u0028\\u1107\\u1161\\u0029\";\n t[\"\\u3214\"] = \"\\u0028\\u1109\\u1161\\u0029\";\n t[\"\\u3215\"] = \"\\u0028\\u110B\\u1161\\u0029\";\n t[\"\\u3216\"] = \"\\u0028\\u110C\\u1161\\u0029\";\n t[\"\\u3217\"] = \"\\u0028\\u110E\\u1161\\u0029\";\n t[\"\\u3218\"] = \"\\u0028\\u110F\\u1161\\u0029\";\n t[\"\\u3219\"] = \"\\u0028\\u1110\\u1161\\u0029\";\n t[\"\\u321A\"] = \"\\u0028\\u1111\\u1161\\u0029\";\n t[\"\\u321B\"] = \"\\u0028\\u1112\\u1161\\u0029\";\n t[\"\\u321C\"] = \"\\u0028\\u110C\\u116E\\u0029\";\n t[\"\\u321D\"] = \"\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029\";\n t[\"\\u321E\"] = \"\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029\";\n t[\"\\u3220\"] = \"\\u0028\\u4E00\\u0029\";\n t[\"\\u3221\"] = \"\\u0028\\u4E8C\\u0029\";\n t[\"\\u3222\"] = \"\\u0028\\u4E09\\u0029\";\n t[\"\\u3223\"] = \"\\u0028\\u56DB\\u0029\";\n t[\"\\u3224\"] = \"\\u0028\\u4E94\\u0029\";\n t[\"\\u3225\"] = \"\\u0028\\u516D\\u0029\";\n t[\"\\u3226\"] = \"\\u0028\\u4E03\\u0029\";\n t[\"\\u3227\"] = \"\\u0028\\u516B\\u0029\";\n t[\"\\u3228\"] = \"\\u0028\\u4E5D\\u0029\";\n t[\"\\u3229\"] = \"\\u0028\\u5341\\u0029\";\n t[\"\\u322A\"] = \"\\u0028\\u6708\\u0029\";\n t[\"\\u322B\"] = \"\\u0028\\u706B\\u0029\";\n t[\"\\u322C\"] = \"\\u0028\\u6C34\\u0029\";\n t[\"\\u322D\"] = \"\\u0028\\u6728\\u0029\";\n t[\"\\u322E\"] = \"\\u0028\\u91D1\\u0029\";\n t[\"\\u322F\"] = \"\\u0028\\u571F\\u0029\";\n t[\"\\u3230\"] = \"\\u0028\\u65E5\\u0029\";\n t[\"\\u3231\"] = \"\\u0028\\u682A\\u0029\";\n t[\"\\u3232\"] = \"\\u0028\\u6709\\u0029\";\n t[\"\\u3233\"] = \"\\u0028\\u793E\\u0029\";\n t[\"\\u3234\"] = \"\\u0028\\u540D\\u0029\";\n t[\"\\u3235\"] = \"\\u0028\\u7279\\u0029\";\n t[\"\\u3236\"] = \"\\u0028\\u8CA1\\u0029\";\n t[\"\\u3237\"] = \"\\u0028\\u795D\\u0029\";\n t[\"\\u3238\"] = \"\\u0028\\u52B4\\u0029\";\n t[\"\\u3239\"] = \"\\u0028\\u4EE3\\u0029\";\n t[\"\\u323A\"] = \"\\u0028\\u547C\\u0029\";\n t[\"\\u323B\"] = \"\\u0028\\u5B66\\u0029\";\n t[\"\\u323C\"] = \"\\u0028\\u76E3\\u0029\";\n t[\"\\u323D\"] = \"\\u0028\\u4F01\\u0029\";\n t[\"\\u323E\"] = \"\\u0028\\u8CC7\\u0029\";\n t[\"\\u323F\"] = \"\\u0028\\u5354\\u0029\";\n t[\"\\u3240\"] = \"\\u0028\\u796D\\u0029\";\n t[\"\\u3241\"] = \"\\u0028\\u4F11\\u0029\";\n t[\"\\u3242\"] = \"\\u0028\\u81EA\\u0029\";\n t[\"\\u3243\"] = \"\\u0028\\u81F3\\u0029\";\n t[\"\\u32C0\"] = \"\\u0031\\u6708\";\n t[\"\\u32C1\"] = \"\\u0032\\u6708\";\n t[\"\\u32C2\"] = \"\\u0033\\u6708\";\n t[\"\\u32C3\"] = \"\\u0034\\u6708\";\n t[\"\\u32C4\"] = \"\\u0035\\u6708\";\n t[\"\\u32C5\"] = \"\\u0036\\u6708\";\n t[\"\\u32C6\"] = \"\\u0037\\u6708\";\n t[\"\\u32C7\"] = \"\\u0038\\u6708\";\n t[\"\\u32C8\"] = \"\\u0039\\u6708\";\n t[\"\\u32C9\"] = \"\\u0031\\u0030\\u6708\";\n t[\"\\u32CA\"] = \"\\u0031\\u0031\\u6708\";\n t[\"\\u32CB\"] = \"\\u0031\\u0032\\u6708\";\n t[\"\\u3358\"] = \"\\u0030\\u70B9\";\n t[\"\\u3359\"] = \"\\u0031\\u70B9\";\n t[\"\\u335A\"] = \"\\u0032\\u70B9\";\n t[\"\\u335B\"] = \"\\u0033\\u70B9\";\n t[\"\\u335C\"] = \"\\u0034\\u70B9\";\n t[\"\\u335D\"] = \"\\u0035\\u70B9\";\n t[\"\\u335E\"] = \"\\u0036\\u70B9\";\n t[\"\\u335F\"] = \"\\u0037\\u70B9\";\n t[\"\\u3360\"] = \"\\u0038\\u70B9\";\n t[\"\\u3361\"] = \"\\u0039\\u70B9\";\n t[\"\\u3362\"] = \"\\u0031\\u0030\\u70B9\";\n t[\"\\u3363\"] = \"\\u0031\\u0031\\u70B9\";\n t[\"\\u3364\"] = \"\\u0031\\u0032\\u70B9\";\n t[\"\\u3365\"] = \"\\u0031\\u0033\\u70B9\";\n t[\"\\u3366\"] = \"\\u0031\\u0034\\u70B9\";\n t[\"\\u3367\"] = \"\\u0031\\u0035\\u70B9\";\n t[\"\\u3368\"] = \"\\u0031\\u0036\\u70B9\";\n t[\"\\u3369\"] = \"\\u0031\\u0037\\u70B9\";\n t[\"\\u336A\"] = \"\\u0031\\u0038\\u70B9\";\n t[\"\\u336B\"] = \"\\u0031\\u0039\\u70B9\";\n t[\"\\u336C\"] = \"\\u0032\\u0030\\u70B9\";\n t[\"\\u336D\"] = \"\\u0032\\u0031\\u70B9\";\n t[\"\\u336E\"] = \"\\u0032\\u0032\\u70B9\";\n t[\"\\u336F\"] = \"\\u0032\\u0033\\u70B9\";\n t[\"\\u3370\"] = \"\\u0032\\u0034\\u70B9\";\n t[\"\\u33E0\"] = \"\\u0031\\u65E5\";\n t[\"\\u33E1\"] = \"\\u0032\\u65E5\";\n t[\"\\u33E2\"] = \"\\u0033\\u65E5\";\n t[\"\\u33E3\"] = \"\\u0034\\u65E5\";\n t[\"\\u33E4\"] = \"\\u0035\\u65E5\";\n t[\"\\u33E5\"] = \"\\u0036\\u65E5\";\n t[\"\\u33E6\"] = \"\\u0037\\u65E5\";\n t[\"\\u33E7\"] = \"\\u0038\\u65E5\";\n t[\"\\u33E8\"] = \"\\u0039\\u65E5\";\n t[\"\\u33E9\"] = \"\\u0031\\u0030\\u65E5\";\n t[\"\\u33EA\"] = \"\\u0031\\u0031\\u65E5\";\n t[\"\\u33EB\"] = \"\\u0031\\u0032\\u65E5\";\n t[\"\\u33EC\"] = \"\\u0031\\u0033\\u65E5\";\n t[\"\\u33ED\"] = \"\\u0031\\u0034\\u65E5\";\n t[\"\\u33EE\"] = \"\\u0031\\u0035\\u65E5\";\n t[\"\\u33EF\"] = \"\\u0031\\u0036\\u65E5\";\n t[\"\\u33F0\"] = \"\\u0031\\u0037\\u65E5\";\n t[\"\\u33F1\"] = \"\\u0031\\u0038\\u65E5\";\n t[\"\\u33F2\"] = \"\\u0031\\u0039\\u65E5\";\n t[\"\\u33F3\"] = \"\\u0032\\u0030\\u65E5\";\n t[\"\\u33F4\"] = \"\\u0032\\u0031\\u65E5\";\n t[\"\\u33F5\"] = \"\\u0032\\u0032\\u65E5\";\n t[\"\\u33F6\"] = \"\\u0032\\u0033\\u65E5\";\n t[\"\\u33F7\"] = \"\\u0032\\u0034\\u65E5\";\n t[\"\\u33F8\"] = \"\\u0032\\u0035\\u65E5\";\n t[\"\\u33F9\"] = \"\\u0032\\u0036\\u65E5\";\n t[\"\\u33FA\"] = \"\\u0032\\u0037\\u65E5\";\n t[\"\\u33FB\"] = \"\\u0032\\u0038\\u65E5\";\n t[\"\\u33FC\"] = \"\\u0032\\u0039\\u65E5\";\n t[\"\\u33FD\"] = \"\\u0033\\u0030\\u65E5\";\n t[\"\\u33FE\"] = \"\\u0033\\u0031\\u65E5\";\n t[\"\\uFB00\"] = \"\\u0066\\u0066\";\n t[\"\\uFB01\"] = \"\\u0066\\u0069\";\n t[\"\\uFB02\"] = \"\\u0066\\u006C\";\n t[\"\\uFB03\"] = \"\\u0066\\u0066\\u0069\";\n t[\"\\uFB04\"] = \"\\u0066\\u0066\\u006C\";\n t[\"\\uFB05\"] = \"\\u017F\\u0074\";\n t[\"\\uFB06\"] = \"\\u0073\\u0074\";\n t[\"\\uFB13\"] = \"\\u0574\\u0576\";\n t[\"\\uFB14\"] = \"\\u0574\\u0565\";\n t[\"\\uFB15\"] = \"\\u0574\\u056B\";\n t[\"\\uFB16\"] = \"\\u057E\\u0576\";\n t[\"\\uFB17\"] = \"\\u0574\\u056D\";\n t[\"\\uFB4F\"] = \"\\u05D0\\u05DC\";\n t[\"\\uFB50\"] = \"\\u0671\";\n t[\"\\uFB51\"] = \"\\u0671\";\n t[\"\\uFB52\"] = \"\\u067B\";\n t[\"\\uFB53\"] = \"\\u067B\";\n t[\"\\uFB54\"] = \"\\u067B\";\n t[\"\\uFB55\"] = \"\\u067B\";\n t[\"\\uFB56\"] = \"\\u067E\";\n t[\"\\uFB57\"] = \"\\u067E\";\n t[\"\\uFB58\"] = \"\\u067E\";\n t[\"\\uFB59\"] = \"\\u067E\";\n t[\"\\uFB5A\"] = \"\\u0680\";\n t[\"\\uFB5B\"] = \"\\u0680\";\n t[\"\\uFB5C\"] = \"\\u0680\";\n t[\"\\uFB5D\"] = \"\\u0680\";\n t[\"\\uFB5E\"] = \"\\u067A\";\n t[\"\\uFB5F\"] = \"\\u067A\";\n t[\"\\uFB60\"] = \"\\u067A\";\n t[\"\\uFB61\"] = \"\\u067A\";\n t[\"\\uFB62\"] = \"\\u067F\";\n t[\"\\uFB63\"] = \"\\u067F\";\n t[\"\\uFB64\"] = \"\\u067F\";\n t[\"\\uFB65\"] = \"\\u067F\";\n t[\"\\uFB66\"] = \"\\u0679\";\n t[\"\\uFB67\"] = \"\\u0679\";\n t[\"\\uFB68\"] = \"\\u0679\";\n t[\"\\uFB69\"] = \"\\u0679\";\n t[\"\\uFB6A\"] = \"\\u06A4\";\n t[\"\\uFB6B\"] = \"\\u06A4\";\n t[\"\\uFB6C\"] = \"\\u06A4\";\n t[\"\\uFB6D\"] = \"\\u06A4\";\n t[\"\\uFB6E\"] = \"\\u06A6\";\n t[\"\\uFB6F\"] = \"\\u06A6\";\n t[\"\\uFB70\"] = \"\\u06A6\";\n t[\"\\uFB71\"] = \"\\u06A6\";\n t[\"\\uFB72\"] = \"\\u0684\";\n t[\"\\uFB73\"] = \"\\u0684\";\n t[\"\\uFB74\"] = \"\\u0684\";\n t[\"\\uFB75\"] = \"\\u0684\";\n t[\"\\uFB76\"] = \"\\u0683\";\n t[\"\\uFB77\"] = \"\\u0683\";\n t[\"\\uFB78\"] = \"\\u0683\";\n t[\"\\uFB79\"] = \"\\u0683\";\n t[\"\\uFB7A\"] = \"\\u0686\";\n t[\"\\uFB7B\"] = \"\\u0686\";\n t[\"\\uFB7C\"] = \"\\u0686\";\n t[\"\\uFB7D\"] = \"\\u0686\";\n t[\"\\uFB7E\"] = \"\\u0687\";\n t[\"\\uFB7F\"] = \"\\u0687\";\n t[\"\\uFB80\"] = \"\\u0687\";\n t[\"\\uFB81\"] = \"\\u0687\";\n t[\"\\uFB82\"] = \"\\u068D\";\n t[\"\\uFB83\"] = \"\\u068D\";\n t[\"\\uFB84\"] = \"\\u068C\";\n t[\"\\uFB85\"] = \"\\u068C\";\n t[\"\\uFB86\"] = \"\\u068E\";\n t[\"\\uFB87\"] = \"\\u068E\";\n t[\"\\uFB88\"] = \"\\u0688\";\n t[\"\\uFB89\"] = \"\\u0688\";\n t[\"\\uFB8A\"] = \"\\u0698\";\n t[\"\\uFB8B\"] = \"\\u0698\";\n t[\"\\uFB8C\"] = \"\\u0691\";\n t[\"\\uFB8D\"] = \"\\u0691\";\n t[\"\\uFB8E\"] = \"\\u06A9\";\n t[\"\\uFB8F\"] = \"\\u06A9\";\n t[\"\\uFB90\"] = \"\\u06A9\";\n t[\"\\uFB91\"] = \"\\u06A9\";\n t[\"\\uFB92\"] = \"\\u06AF\";\n t[\"\\uFB93\"] = \"\\u06AF\";\n t[\"\\uFB94\"] = \"\\u06AF\";\n t[\"\\uFB95\"] = \"\\u06AF\";\n t[\"\\uFB96\"] = \"\\u06B3\";\n t[\"\\uFB97\"] = \"\\u06B3\";\n t[\"\\uFB98\"] = \"\\u06B3\";\n t[\"\\uFB99\"] = \"\\u06B3\";\n t[\"\\uFB9A\"] = \"\\u06B1\";\n t[\"\\uFB9B\"] = \"\\u06B1\";\n t[\"\\uFB9C\"] = \"\\u06B1\";\n t[\"\\uFB9D\"] = \"\\u06B1\";\n t[\"\\uFB9E\"] = \"\\u06BA\";\n t[\"\\uFB9F\"] = \"\\u06BA\";\n t[\"\\uFBA0\"] = \"\\u06BB\";\n t[\"\\uFBA1\"] = \"\\u06BB\";\n t[\"\\uFBA2\"] = \"\\u06BB\";\n t[\"\\uFBA3\"] = \"\\u06BB\";\n t[\"\\uFBA4\"] = \"\\u06C0\";\n t[\"\\uFBA5\"] = \"\\u06C0\";\n t[\"\\uFBA6\"] = \"\\u06C1\";\n t[\"\\uFBA7\"] = \"\\u06C1\";\n t[\"\\uFBA8\"] = \"\\u06C1\";\n t[\"\\uFBA9\"] = \"\\u06C1\";\n t[\"\\uFBAA\"] = \"\\u06BE\";\n t[\"\\uFBAB\"] = \"\\u06BE\";\n t[\"\\uFBAC\"] = \"\\u06BE\";\n t[\"\\uFBAD\"] = \"\\u06BE\";\n t[\"\\uFBAE\"] = \"\\u06D2\";\n t[\"\\uFBAF\"] = \"\\u06D2\";\n t[\"\\uFBB0\"] = \"\\u06D3\";\n t[\"\\uFBB1\"] = \"\\u06D3\";\n t[\"\\uFBD3\"] = \"\\u06AD\";\n t[\"\\uFBD4\"] = \"\\u06AD\";\n t[\"\\uFBD5\"] = \"\\u06AD\";\n t[\"\\uFBD6\"] = \"\\u06AD\";\n t[\"\\uFBD7\"] = \"\\u06C7\";\n t[\"\\uFBD8\"] = \"\\u06C7\";\n t[\"\\uFBD9\"] = \"\\u06C6\";\n t[\"\\uFBDA\"] = \"\\u06C6\";\n t[\"\\uFBDB\"] = \"\\u06C8\";\n t[\"\\uFBDC\"] = \"\\u06C8\";\n t[\"\\uFBDD\"] = \"\\u0677\";\n t[\"\\uFBDE\"] = \"\\u06CB\";\n t[\"\\uFBDF\"] = \"\\u06CB\";\n t[\"\\uFBE0\"] = \"\\u06C5\";\n t[\"\\uFBE1\"] = \"\\u06C5\";\n t[\"\\uFBE2\"] = \"\\u06C9\";\n t[\"\\uFBE3\"] = \"\\u06C9\";\n t[\"\\uFBE4\"] = \"\\u06D0\";\n t[\"\\uFBE5\"] = \"\\u06D0\";\n t[\"\\uFBE6\"] = \"\\u06D0\";\n t[\"\\uFBE7\"] = \"\\u06D0\";\n t[\"\\uFBE8\"] = \"\\u0649\";\n t[\"\\uFBE9\"] = \"\\u0649\";\n t[\"\\uFBEA\"] = \"\\u0626\\u0627\";\n t[\"\\uFBEB\"] = \"\\u0626\\u0627\";\n t[\"\\uFBEC\"] = \"\\u0626\\u06D5\";\n t[\"\\uFBED\"] = \"\\u0626\\u06D5\";\n t[\"\\uFBEE\"] = \"\\u0626\\u0648\";\n t[\"\\uFBEF\"] = \"\\u0626\\u0648\";\n t[\"\\uFBF0\"] = \"\\u0626\\u06C7\";\n t[\"\\uFBF1\"] = \"\\u0626\\u06C7\";\n t[\"\\uFBF2\"] = \"\\u0626\\u06C6\";\n t[\"\\uFBF3\"] = \"\\u0626\\u06C6\";\n t[\"\\uFBF4\"] = \"\\u0626\\u06C8\";\n t[\"\\uFBF5\"] = \"\\u0626\\u06C8\";\n t[\"\\uFBF6\"] = \"\\u0626\\u06D0\";\n t[\"\\uFBF7\"] = \"\\u0626\\u06D0\";\n t[\"\\uFBF8\"] = \"\\u0626\\u06D0\";\n t[\"\\uFBF9\"] = \"\\u0626\\u0649\";\n t[\"\\uFBFA\"] = \"\\u0626\\u0649\";\n t[\"\\uFBFB\"] = \"\\u0626\\u0649\";\n t[\"\\uFBFC\"] = \"\\u06CC\";\n t[\"\\uFBFD\"] = \"\\u06CC\";\n t[\"\\uFBFE\"] = \"\\u06CC\";\n t[\"\\uFBFF\"] = \"\\u06CC\";\n t[\"\\uFC00\"] = \"\\u0626\\u062C\";\n t[\"\\uFC01\"] = \"\\u0626\\u062D\";\n t[\"\\uFC02\"] = \"\\u0626\\u0645\";\n t[\"\\uFC03\"] = \"\\u0626\\u0649\";\n t[\"\\uFC04\"] = \"\\u0626\\u064A\";\n t[\"\\uFC05\"] = \"\\u0628\\u062C\";\n t[\"\\uFC06\"] = \"\\u0628\\u062D\";\n t[\"\\uFC07\"] = \"\\u0628\\u062E\";\n t[\"\\uFC08\"] = \"\\u0628\\u0645\";\n t[\"\\uFC09\"] = \"\\u0628\\u0649\";\n t[\"\\uFC0A\"] = \"\\u0628\\u064A\";\n t[\"\\uFC0B\"] = \"\\u062A\\u062C\";\n t[\"\\uFC0C\"] = \"\\u062A\\u062D\";\n t[\"\\uFC0D\"] = \"\\u062A\\u062E\";\n t[\"\\uFC0E\"] = \"\\u062A\\u0645\";\n t[\"\\uFC0F\"] = \"\\u062A\\u0649\";\n t[\"\\uFC10\"] = \"\\u062A\\u064A\";\n t[\"\\uFC11\"] = \"\\u062B\\u062C\";\n t[\"\\uFC12\"] = \"\\u062B\\u0645\";\n t[\"\\uFC13\"] = \"\\u062B\\u0649\";\n t[\"\\uFC14\"] = \"\\u062B\\u064A\";\n t[\"\\uFC15\"] = \"\\u062C\\u062D\";\n t[\"\\uFC16\"] = \"\\u062C\\u0645\";\n t[\"\\uFC17\"] = \"\\u062D\\u062C\";\n t[\"\\uFC18\"] = \"\\u062D\\u0645\";\n t[\"\\uFC19\"] = \"\\u062E\\u062C\";\n t[\"\\uFC1A\"] = \"\\u062E\\u062D\";\n t[\"\\uFC1B\"] = \"\\u062E\\u0645\";\n t[\"\\uFC1C\"] = \"\\u0633\\u062C\";\n t[\"\\uFC1D\"] = \"\\u0633\\u062D\";\n t[\"\\uFC1E\"] = \"\\u0633\\u062E\";\n t[\"\\uFC1F\"] = \"\\u0633\\u0645\";\n t[\"\\uFC20\"] = \"\\u0635\\u062D\";\n t[\"\\uFC21\"] = \"\\u0635\\u0645\";\n t[\"\\uFC22\"] = \"\\u0636\\u062C\";\n t[\"\\uFC23\"] = \"\\u0636\\u062D\";\n t[\"\\uFC24\"] = \"\\u0636\\u062E\";\n t[\"\\uFC25\"] = \"\\u0636\\u0645\";\n t[\"\\uFC26\"] = \"\\u0637\\u062D\";\n t[\"\\uFC27\"] = \"\\u0637\\u0645\";\n t[\"\\uFC28\"] = \"\\u0638\\u0645\";\n t[\"\\uFC29\"] = \"\\u0639\\u062C\";\n t[\"\\uFC2A\"] = \"\\u0639\\u0645\";\n t[\"\\uFC2B\"] = \"\\u063A\\u062C\";\n t[\"\\uFC2C\"] = \"\\u063A\\u0645\";\n t[\"\\uFC2D\"] = \"\\u0641\\u062C\";\n t[\"\\uFC2E\"] = \"\\u0641\\u062D\";\n t[\"\\uFC2F\"] = \"\\u0641\\u062E\";\n t[\"\\uFC30\"] = \"\\u0641\\u0645\";\n t[\"\\uFC31\"] = \"\\u0641\\u0649\";\n t[\"\\uFC32\"] = \"\\u0641\\u064A\";\n t[\"\\uFC33\"] = \"\\u0642\\u062D\";\n t[\"\\uFC34\"] = \"\\u0642\\u0645\";\n t[\"\\uFC35\"] = \"\\u0642\\u0649\";\n t[\"\\uFC36\"] = \"\\u0642\\u064A\";\n t[\"\\uFC37\"] = \"\\u0643\\u0627\";\n t[\"\\uFC38\"] = \"\\u0643\\u062C\";\n t[\"\\uFC39\"] = \"\\u0643\\u062D\";\n t[\"\\uFC3A\"] = \"\\u0643\\u062E\";\n t[\"\\uFC3B\"] = \"\\u0643\\u0644\";\n t[\"\\uFC3C\"] = \"\\u0643\\u0645\";\n t[\"\\uFC3D\"] = \"\\u0643\\u0649\";\n t[\"\\uFC3E\"] = \"\\u0643\\u064A\";\n t[\"\\uFC3F\"] = \"\\u0644\\u062C\";\n t[\"\\uFC40\"] = \"\\u0644\\u062D\";\n t[\"\\uFC41\"] = \"\\u0644\\u062E\";\n t[\"\\uFC42\"] = \"\\u0644\\u0645\";\n t[\"\\uFC43\"] = \"\\u0644\\u0649\";\n t[\"\\uFC44\"] = \"\\u0644\\u064A\";\n t[\"\\uFC45\"] = \"\\u0645\\u062C\";\n t[\"\\uFC46\"] = \"\\u0645\\u062D\";\n t[\"\\uFC47\"] = \"\\u0645\\u062E\";\n t[\"\\uFC48\"] = \"\\u0645\\u0645\";\n t[\"\\uFC49\"] = \"\\u0645\\u0649\";\n t[\"\\uFC4A\"] = \"\\u0645\\u064A\";\n t[\"\\uFC4B\"] = \"\\u0646\\u062C\";\n t[\"\\uFC4C\"] = \"\\u0646\\u062D\";\n t[\"\\uFC4D\"] = \"\\u0646\\u062E\";\n t[\"\\uFC4E\"] = \"\\u0646\\u0645\";\n t[\"\\uFC4F\"] = \"\\u0646\\u0649\";\n t[\"\\uFC50\"] = \"\\u0646\\u064A\";\n t[\"\\uFC51\"] = \"\\u0647\\u062C\";\n t[\"\\uFC52\"] = \"\\u0647\\u0645\";\n t[\"\\uFC53\"] = \"\\u0647\\u0649\";\n t[\"\\uFC54\"] = \"\\u0647\\u064A\";\n t[\"\\uFC55\"] = \"\\u064A\\u062C\";\n t[\"\\uFC56\"] = \"\\u064A\\u062D\";\n t[\"\\uFC57\"] = \"\\u064A\\u062E\";\n t[\"\\uFC58\"] = \"\\u064A\\u0645\";\n t[\"\\uFC59\"] = \"\\u064A\\u0649\";\n t[\"\\uFC5A\"] = \"\\u064A\\u064A\";\n t[\"\\uFC5B\"] = \"\\u0630\\u0670\";\n t[\"\\uFC5C\"] = \"\\u0631\\u0670\";\n t[\"\\uFC5D\"] = \"\\u0649\\u0670\";\n t[\"\\uFC5E\"] = \"\\u0020\\u064C\\u0651\";\n t[\"\\uFC5F\"] = \"\\u0020\\u064D\\u0651\";\n t[\"\\uFC60\"] = \"\\u0020\\u064E\\u0651\";\n t[\"\\uFC61\"] = \"\\u0020\\u064F\\u0651\";\n t[\"\\uFC62\"] = \"\\u0020\\u0650\\u0651\";\n t[\"\\uFC63\"] = \"\\u0020\\u0651\\u0670\";\n t[\"\\uFC64\"] = \"\\u0626\\u0631\";\n t[\"\\uFC65\"] = \"\\u0626\\u0632\";\n t[\"\\uFC66\"] = \"\\u0626\\u0645\";\n t[\"\\uFC67\"] = \"\\u0626\\u0646\";\n t[\"\\uFC68\"] = \"\\u0626\\u0649\";\n t[\"\\uFC69\"] = \"\\u0626\\u064A\";\n t[\"\\uFC6A\"] = \"\\u0628\\u0631\";\n t[\"\\uFC6B\"] = \"\\u0628\\u0632\";\n t[\"\\uFC6C\"] = \"\\u0628\\u0645\";\n t[\"\\uFC6D\"] = \"\\u0628\\u0646\";\n t[\"\\uFC6E\"] = \"\\u0628\\u0649\";\n t[\"\\uFC6F\"] = \"\\u0628\\u064A\";\n t[\"\\uFC70\"] = \"\\u062A\\u0631\";\n t[\"\\uFC71\"] = \"\\u062A\\u0632\";\n t[\"\\uFC72\"] = \"\\u062A\\u0645\";\n t[\"\\uFC73\"] = \"\\u062A\\u0646\";\n t[\"\\uFC74\"] = \"\\u062A\\u0649\";\n t[\"\\uFC75\"] = \"\\u062A\\u064A\";\n t[\"\\uFC76\"] = \"\\u062B\\u0631\";\n t[\"\\uFC77\"] = \"\\u062B\\u0632\";\n t[\"\\uFC78\"] = \"\\u062B\\u0645\";\n t[\"\\uFC79\"] = \"\\u062B\\u0646\";\n t[\"\\uFC7A\"] = \"\\u062B\\u0649\";\n t[\"\\uFC7B\"] = \"\\u062B\\u064A\";\n t[\"\\uFC7C\"] = \"\\u0641\\u0649\";\n t[\"\\uFC7D\"] = \"\\u0641\\u064A\";\n t[\"\\uFC7E\"] = \"\\u0642\\u0649\";\n t[\"\\uFC7F\"] = \"\\u0642\\u064A\";\n t[\"\\uFC80\"] = \"\\u0643\\u0627\";\n t[\"\\uFC81\"] = \"\\u0643\\u0644\";\n t[\"\\uFC82\"] = \"\\u0643\\u0645\";\n t[\"\\uFC83\"] = \"\\u0643\\u0649\";\n t[\"\\uFC84\"] = \"\\u0643\\u064A\";\n t[\"\\uFC85\"] = \"\\u0644\\u0645\";\n t[\"\\uFC86\"] = \"\\u0644\\u0649\";\n t[\"\\uFC87\"] = \"\\u0644\\u064A\";\n t[\"\\uFC88\"] = \"\\u0645\\u0627\";\n t[\"\\uFC89\"] = \"\\u0645\\u0645\";\n t[\"\\uFC8A\"] = \"\\u0646\\u0631\";\n t[\"\\uFC8B\"] = \"\\u0646\\u0632\";\n t[\"\\uFC8C\"] = \"\\u0646\\u0645\";\n t[\"\\uFC8D\"] = \"\\u0646\\u0646\";\n t[\"\\uFC8E\"] = \"\\u0646\\u0649\";\n t[\"\\uFC8F\"] = \"\\u0646\\u064A\";\n t[\"\\uFC90\"] = \"\\u0649\\u0670\";\n t[\"\\uFC91\"] = \"\\u064A\\u0631\";\n t[\"\\uFC92\"] = \"\\u064A\\u0632\";\n t[\"\\uFC93\"] = \"\\u064A\\u0645\";\n t[\"\\uFC94\"] = \"\\u064A\\u0646\";\n t[\"\\uFC95\"] = \"\\u064A\\u0649\";\n t[\"\\uFC96\"] = \"\\u064A\\u064A\";\n t[\"\\uFC97\"] = \"\\u0626\\u062C\";\n t[\"\\uFC98\"] = \"\\u0626\\u062D\";\n t[\"\\uFC99\"] = \"\\u0626\\u062E\";\n t[\"\\uFC9A\"] = \"\\u0626\\u0645\";\n t[\"\\uFC9B\"] = \"\\u0626\\u0647\";\n t[\"\\uFC9C\"] = \"\\u0628\\u062C\";\n t[\"\\uFC9D\"] = \"\\u0628\\u062D\";\n t[\"\\uFC9E\"] = \"\\u0628\\u062E\";\n t[\"\\uFC9F\"] = \"\\u0628\\u0645\";\n t[\"\\uFCA0\"] = \"\\u0628\\u0647\";\n t[\"\\uFCA1\"] = \"\\u062A\\u062C\";\n t[\"\\uFCA2\"] = \"\\u062A\\u062D\";\n t[\"\\uFCA3\"] = \"\\u062A\\u062E\";\n t[\"\\uFCA4\"] = \"\\u062A\\u0645\";\n t[\"\\uFCA5\"] = \"\\u062A\\u0647\";\n t[\"\\uFCA6\"] = \"\\u062B\\u0645\";\n t[\"\\uFCA7\"] = \"\\u062C\\u062D\";\n t[\"\\uFCA8\"] = \"\\u062C\\u0645\";\n t[\"\\uFCA9\"] = \"\\u062D\\u062C\";\n t[\"\\uFCAA\"] = \"\\u062D\\u0645\";\n t[\"\\uFCAB\"] = \"\\u062E\\u062C\";\n t[\"\\uFCAC\"] = \"\\u062E\\u0645\";\n t[\"\\uFCAD\"] = \"\\u0633\\u062C\";\n t[\"\\uFCAE\"] = \"\\u0633\\u062D\";\n t[\"\\uFCAF\"] = \"\\u0633\\u062E\";\n t[\"\\uFCB0\"] = \"\\u0633\\u0645\";\n t[\"\\uFCB1\"] = \"\\u0635\\u062D\";\n t[\"\\uFCB2\"] = \"\\u0635\\u062E\";\n t[\"\\uFCB3\"] = \"\\u0635\\u0645\";\n t[\"\\uFCB4\"] = \"\\u0636\\u062C\";\n t[\"\\uFCB5\"] = \"\\u0636\\u062D\";\n t[\"\\uFCB6\"] = \"\\u0636\\u062E\";\n t[\"\\uFCB7\"] = \"\\u0636\\u0645\";\n t[\"\\uFCB8\"] = \"\\u0637\\u062D\";\n t[\"\\uFCB9\"] = \"\\u0638\\u0645\";\n t[\"\\uFCBA\"] = \"\\u0639\\u062C\";\n t[\"\\uFCBB\"] = \"\\u0639\\u0645\";\n t[\"\\uFCBC\"] = \"\\u063A\\u062C\";\n t[\"\\uFCBD\"] = \"\\u063A\\u0645\";\n t[\"\\uFCBE\"] = \"\\u0641\\u062C\";\n t[\"\\uFCBF\"] = \"\\u0641\\u062D\";\n t[\"\\uFCC0\"] = \"\\u0641\\u062E\";\n t[\"\\uFCC1\"] = \"\\u0641\\u0645\";\n t[\"\\uFCC2\"] = \"\\u0642\\u062D\";\n t[\"\\uFCC3\"] = \"\\u0642\\u0645\";\n t[\"\\uFCC4\"] = \"\\u0643\\u062C\";\n t[\"\\uFCC5\"] = \"\\u0643\\u062D\";\n t[\"\\uFCC6\"] = \"\\u0643\\u062E\";\n t[\"\\uFCC7\"] = \"\\u0643\\u0644\";\n t[\"\\uFCC8\"] = \"\\u0643\\u0645\";\n t[\"\\uFCC9\"] = \"\\u0644\\u062C\";\n t[\"\\uFCCA\"] = \"\\u0644\\u062D\";\n t[\"\\uFCCB\"] = \"\\u0644\\u062E\";\n t[\"\\uFCCC\"] = \"\\u0644\\u0645\";\n t[\"\\uFCCD\"] = \"\\u0644\\u0647\";\n t[\"\\uFCCE\"] = \"\\u0645\\u062C\";\n t[\"\\uFCCF\"] = \"\\u0645\\u062D\";\n t[\"\\uFCD0\"] = \"\\u0645\\u062E\";\n t[\"\\uFCD1\"] = \"\\u0645\\u0645\";\n t[\"\\uFCD2\"] = \"\\u0646\\u062C\";\n t[\"\\uFCD3\"] = \"\\u0646\\u062D\";\n t[\"\\uFCD4\"] = \"\\u0646\\u062E\";\n t[\"\\uFCD5\"] = \"\\u0646\\u0645\";\n t[\"\\uFCD6\"] = \"\\u0646\\u0647\";\n t[\"\\uFCD7\"] = \"\\u0647\\u062C\";\n t[\"\\uFCD8\"] = \"\\u0647\\u0645\";\n t[\"\\uFCD9\"] = \"\\u0647\\u0670\";\n t[\"\\uFCDA\"] = \"\\u064A\\u062C\";\n t[\"\\uFCDB\"] = \"\\u064A\\u062D\";\n t[\"\\uFCDC\"] = \"\\u064A\\u062E\";\n t[\"\\uFCDD\"] = \"\\u064A\\u0645\";\n t[\"\\uFCDE\"] = \"\\u064A\\u0647\";\n t[\"\\uFCDF\"] = \"\\u0626\\u0645\";\n t[\"\\uFCE0\"] = \"\\u0626\\u0647\";\n t[\"\\uFCE1\"] = \"\\u0628\\u0645\";\n t[\"\\uFCE2\"] = \"\\u0628\\u0647\";\n t[\"\\uFCE3\"] = \"\\u062A\\u0645\";\n t[\"\\uFCE4\"] = \"\\u062A\\u0647\";\n t[\"\\uFCE5\"] = \"\\u062B\\u0645\";\n t[\"\\uFCE6\"] = \"\\u062B\\u0647\";\n t[\"\\uFCE7\"] = \"\\u0633\\u0645\";\n t[\"\\uFCE8\"] = \"\\u0633\\u0647\";\n t[\"\\uFCE9\"] = \"\\u0634\\u0645\";\n t[\"\\uFCEA\"] = \"\\u0634\\u0647\";\n t[\"\\uFCEB\"] = \"\\u0643\\u0644\";\n t[\"\\uFCEC\"] = \"\\u0643\\u0645\";\n t[\"\\uFCED\"] = \"\\u0644\\u0645\";\n t[\"\\uFCEE\"] = \"\\u0646\\u0645\";\n t[\"\\uFCEF\"] = \"\\u0646\\u0647\";\n t[\"\\uFCF0\"] = \"\\u064A\\u0645\";\n t[\"\\uFCF1\"] = \"\\u064A\\u0647\";\n t[\"\\uFCF2\"] = \"\\u0640\\u064E\\u0651\";\n t[\"\\uFCF3\"] = \"\\u0640\\u064F\\u0651\";\n t[\"\\uFCF4\"] = \"\\u0640\\u0650\\u0651\";\n t[\"\\uFCF5\"] = \"\\u0637\\u0649\";\n t[\"\\uFCF6\"] = \"\\u0637\\u064A\";\n t[\"\\uFCF7\"] = \"\\u0639\\u0649\";\n t[\"\\uFCF8\"] = \"\\u0639\\u064A\";\n t[\"\\uFCF9\"] = \"\\u063A\\u0649\";\n t[\"\\uFCFA\"] = \"\\u063A\\u064A\";\n t[\"\\uFCFB\"] = \"\\u0633\\u0649\";\n t[\"\\uFCFC\"] = \"\\u0633\\u064A\";\n t[\"\\uFCFD\"] = \"\\u0634\\u0649\";\n t[\"\\uFCFE\"] = \"\\u0634\\u064A\";\n t[\"\\uFCFF\"] = \"\\u062D\\u0649\";\n t[\"\\uFD00\"] = \"\\u062D\\u064A\";\n t[\"\\uFD01\"] = \"\\u062C\\u0649\";\n t[\"\\uFD02\"] = \"\\u062C\\u064A\";\n t[\"\\uFD03\"] = \"\\u062E\\u0649\";\n t[\"\\uFD04\"] = \"\\u062E\\u064A\";\n t[\"\\uFD05\"] = \"\\u0635\\u0649\";\n t[\"\\uFD06\"] = \"\\u0635\\u064A\";\n t[\"\\uFD07\"] = \"\\u0636\\u0649\";\n t[\"\\uFD08\"] = \"\\u0636\\u064A\";\n t[\"\\uFD09\"] = \"\\u0634\\u062C\";\n t[\"\\uFD0A\"] = \"\\u0634\\u062D\";\n t[\"\\uFD0B\"] = \"\\u0634\\u062E\";\n t[\"\\uFD0C\"] = \"\\u0634\\u0645\";\n t[\"\\uFD0D\"] = \"\\u0634\\u0631\";\n t[\"\\uFD0E\"] = \"\\u0633\\u0631\";\n t[\"\\uFD0F\"] = \"\\u0635\\u0631\";\n t[\"\\uFD10\"] = \"\\u0636\\u0631\";\n t[\"\\uFD11\"] = \"\\u0637\\u0649\";\n t[\"\\uFD12\"] = \"\\u0637\\u064A\";\n t[\"\\uFD13\"] = \"\\u0639\\u0649\";\n t[\"\\uFD14\"] = \"\\u0639\\u064A\";\n t[\"\\uFD15\"] = \"\\u063A\\u0649\";\n t[\"\\uFD16\"] = \"\\u063A\\u064A\";\n t[\"\\uFD17\"] = \"\\u0633\\u0649\";\n t[\"\\uFD18\"] = \"\\u0633\\u064A\";\n t[\"\\uFD19\"] = \"\\u0634\\u0649\";\n t[\"\\uFD1A\"] = \"\\u0634\\u064A\";\n t[\"\\uFD1B\"] = \"\\u062D\\u0649\";\n t[\"\\uFD1C\"] = \"\\u062D\\u064A\";\n t[\"\\uFD1D\"] = \"\\u062C\\u0649\";\n t[\"\\uFD1E\"] = \"\\u062C\\u064A\";\n t[\"\\uFD1F\"] = \"\\u062E\\u0649\";\n t[\"\\uFD20\"] = \"\\u062E\\u064A\";\n t[\"\\uFD21\"] = \"\\u0635\\u0649\";\n t[\"\\uFD22\"] = \"\\u0635\\u064A\";\n t[\"\\uFD23\"] = \"\\u0636\\u0649\";\n t[\"\\uFD24\"] = \"\\u0636\\u064A\";\n t[\"\\uFD25\"] = \"\\u0634\\u062C\";\n t[\"\\uFD26\"] = \"\\u0634\\u062D\";\n t[\"\\uFD27\"] = \"\\u0634\\u062E\";\n t[\"\\uFD28\"] = \"\\u0634\\u0645\";\n t[\"\\uFD29\"] = \"\\u0634\\u0631\";\n t[\"\\uFD2A\"] = \"\\u0633\\u0631\";\n t[\"\\uFD2B\"] = \"\\u0635\\u0631\";\n t[\"\\uFD2C\"] = \"\\u0636\\u0631\";\n t[\"\\uFD2D\"] = \"\\u0634\\u062C\";\n t[\"\\uFD2E\"] = \"\\u0634\\u062D\";\n t[\"\\uFD2F\"] = \"\\u0634\\u062E\";\n t[\"\\uFD30\"] = \"\\u0634\\u0645\";\n t[\"\\uFD31\"] = \"\\u0633\\u0647\";\n t[\"\\uFD32\"] = \"\\u0634\\u0647\";\n t[\"\\uFD33\"] = \"\\u0637\\u0645\";\n t[\"\\uFD34\"] = \"\\u0633\\u062C\";\n t[\"\\uFD35\"] = \"\\u0633\\u062D\";\n t[\"\\uFD36\"] = \"\\u0633\\u062E\";\n t[\"\\uFD37\"] = \"\\u0634\\u062C\";\n t[\"\\uFD38\"] = \"\\u0634\\u062D\";\n t[\"\\uFD39\"] = \"\\u0634\\u062E\";\n t[\"\\uFD3A\"] = \"\\u0637\\u0645\";\n t[\"\\uFD3B\"] = \"\\u0638\\u0645\";\n t[\"\\uFD3C\"] = \"\\u0627\\u064B\";\n t[\"\\uFD3D\"] = \"\\u0627\\u064B\";\n t[\"\\uFD50\"] = \"\\u062A\\u062C\\u0645\";\n t[\"\\uFD51\"] = \"\\u062A\\u062D\\u062C\";\n t[\"\\uFD52\"] = \"\\u062A\\u062D\\u062C\";\n t[\"\\uFD53\"] = \"\\u062A\\u062D\\u0645\";\n t[\"\\uFD54\"] = \"\\u062A\\u062E\\u0645\";\n t[\"\\uFD55\"] = \"\\u062A\\u0645\\u062C\";\n t[\"\\uFD56\"] = \"\\u062A\\u0645\\u062D\";\n t[\"\\uFD57\"] = \"\\u062A\\u0645\\u062E\";\n t[\"\\uFD58\"] = \"\\u062C\\u0645\\u062D\";\n t[\"\\uFD59\"] = \"\\u062C\\u0645\\u062D\";\n t[\"\\uFD5A\"] = \"\\u062D\\u0645\\u064A\";\n t[\"\\uFD5B\"] = \"\\u062D\\u0645\\u0649\";\n t[\"\\uFD5C\"] = \"\\u0633\\u062D\\u062C\";\n t[\"\\uFD5D\"] = \"\\u0633\\u062C\\u062D\";\n t[\"\\uFD5E\"] = \"\\u0633\\u062C\\u0649\";\n t[\"\\uFD5F\"] = \"\\u0633\\u0645\\u062D\";\n t[\"\\uFD60\"] = \"\\u0633\\u0645\\u062D\";\n t[\"\\uFD61\"] = \"\\u0633\\u0645\\u062C\";\n t[\"\\uFD62\"] = \"\\u0633\\u0645\\u0645\";\n t[\"\\uFD63\"] = \"\\u0633\\u0645\\u0645\";\n t[\"\\uFD64\"] = \"\\u0635\\u062D\\u062D\";\n t[\"\\uFD65\"] = \"\\u0635\\u062D\\u062D\";\n t[\"\\uFD66\"] = \"\\u0635\\u0645\\u0645\";\n t[\"\\uFD67\"] = \"\\u0634\\u062D\\u0645\";\n t[\"\\uFD68\"] = \"\\u0634\\u062D\\u0645\";\n t[\"\\uFD69\"] = \"\\u0634\\u062C\\u064A\";\n t[\"\\uFD6A\"] = \"\\u0634\\u0645\\u062E\";\n t[\"\\uFD6B\"] = \"\\u0634\\u0645\\u062E\";\n t[\"\\uFD6C\"] = \"\\u0634\\u0645\\u0645\";\n t[\"\\uFD6D\"] = \"\\u0634\\u0645\\u0645\";\n t[\"\\uFD6E\"] = \"\\u0636\\u062D\\u0649\";\n t[\"\\uFD6F\"] = \"\\u0636\\u062E\\u0645\";\n t[\"\\uFD70\"] = \"\\u0636\\u062E\\u0645\";\n t[\"\\uFD71\"] = \"\\u0637\\u0645\\u062D\";\n t[\"\\uFD72\"] = \"\\u0637\\u0645\\u062D\";\n t[\"\\uFD73\"] = \"\\u0637\\u0645\\u0645\";\n t[\"\\uFD74\"] = \"\\u0637\\u0645\\u064A\";\n t[\"\\uFD75\"] = \"\\u0639\\u062C\\u0645\";\n t[\"\\uFD76\"] = \"\\u0639\\u0645\\u0645\";\n t[\"\\uFD77\"] = \"\\u0639\\u0645\\u0645\";\n t[\"\\uFD78\"] = \"\\u0639\\u0645\\u0649\";\n t[\"\\uFD79\"] = \"\\u063A\\u0645\\u0645\";\n t[\"\\uFD7A\"] = \"\\u063A\\u0645\\u064A\";\n t[\"\\uFD7B\"] = \"\\u063A\\u0645\\u0649\";\n t[\"\\uFD7C\"] = \"\\u0641\\u062E\\u0645\";\n t[\"\\uFD7D\"] = \"\\u0641\\u062E\\u0645\";\n t[\"\\uFD7E\"] = \"\\u0642\\u0645\\u062D\";\n t[\"\\uFD7F\"] = \"\\u0642\\u0645\\u0645\";\n t[\"\\uFD80\"] = \"\\u0644\\u062D\\u0645\";\n t[\"\\uFD81\"] = \"\\u0644\\u062D\\u064A\";\n t[\"\\uFD82\"] = \"\\u0644\\u062D\\u0649\";\n t[\"\\uFD83\"] = \"\\u0644\\u062C\\u062C\";\n t[\"\\uFD84\"] = \"\\u0644\\u062C\\u062C\";\n t[\"\\uFD85\"] = \"\\u0644\\u062E\\u0645\";\n t[\"\\uFD86\"] = \"\\u0644\\u062E\\u0645\";\n t[\"\\uFD87\"] = \"\\u0644\\u0645\\u062D\";\n t[\"\\uFD88\"] = \"\\u0644\\u0645\\u062D\";\n t[\"\\uFD89\"] = \"\\u0645\\u062D\\u062C\";\n t[\"\\uFD8A\"] = \"\\u0645\\u062D\\u0645\";\n t[\"\\uFD8B\"] = \"\\u0645\\u062D\\u064A\";\n t[\"\\uFD8C\"] = \"\\u0645\\u062C\\u062D\";\n t[\"\\uFD8D\"] = \"\\u0645\\u062C\\u0645\";\n t[\"\\uFD8E\"] = \"\\u0645\\u062E\\u062C\";\n t[\"\\uFD8F\"] = \"\\u0645\\u062E\\u0645\";\n t[\"\\uFD92\"] = \"\\u0645\\u062C\\u062E\";\n t[\"\\uFD93\"] = \"\\u0647\\u0645\\u062C\";\n t[\"\\uFD94\"] = \"\\u0647\\u0645\\u0645\";\n t[\"\\uFD95\"] = \"\\u0646\\u062D\\u0645\";\n t[\"\\uFD96\"] = \"\\u0646\\u062D\\u0649\";\n t[\"\\uFD97\"] = \"\\u0646\\u062C\\u0645\";\n t[\"\\uFD98\"] = \"\\u0646\\u062C\\u0645\";\n t[\"\\uFD99\"] = \"\\u0646\\u062C\\u0649\";\n t[\"\\uFD9A\"] = \"\\u0646\\u0645\\u064A\";\n t[\"\\uFD9B\"] = \"\\u0646\\u0645\\u0649\";\n t[\"\\uFD9C\"] = \"\\u064A\\u0645\\u0645\";\n t[\"\\uFD9D\"] = \"\\u064A\\u0645\\u0645\";\n t[\"\\uFD9E\"] = \"\\u0628\\u062E\\u064A\";\n t[\"\\uFD9F\"] = \"\\u062A\\u062C\\u064A\";\n t[\"\\uFDA0\"] = \"\\u062A\\u062C\\u0649\";\n t[\"\\uFDA1\"] = \"\\u062A\\u062E\\u064A\";\n t[\"\\uFDA2\"] = \"\\u062A\\u062E\\u0649\";\n t[\"\\uFDA3\"] = \"\\u062A\\u0645\\u064A\";\n t[\"\\uFDA4\"] = \"\\u062A\\u0645\\u0649\";\n t[\"\\uFDA5\"] = \"\\u062C\\u0645\\u064A\";\n t[\"\\uFDA6\"] = \"\\u062C\\u062D\\u0649\";\n t[\"\\uFDA7\"] = \"\\u062C\\u0645\\u0649\";\n t[\"\\uFDA8\"] = \"\\u0633\\u062E\\u0649\";\n t[\"\\uFDA9\"] = \"\\u0635\\u062D\\u064A\";\n t[\"\\uFDAA\"] = \"\\u0634\\u062D\\u064A\";\n t[\"\\uFDAB\"] = \"\\u0636\\u062D\\u064A\";\n t[\"\\uFDAC\"] = \"\\u0644\\u062C\\u064A\";\n t[\"\\uFDAD\"] = \"\\u0644\\u0645\\u064A\";\n t[\"\\uFDAE\"] = \"\\u064A\\u062D\\u064A\";\n t[\"\\uFDAF\"] = \"\\u064A\\u062C\\u064A\";\n t[\"\\uFDB0\"] = \"\\u064A\\u0645\\u064A\";\n t[\"\\uFDB1\"] = \"\\u0645\\u0645\\u064A\";\n t[\"\\uFDB2\"] = \"\\u0642\\u0645\\u064A\";\n t[\"\\uFDB3\"] = \"\\u0646\\u062D\\u064A\";\n t[\"\\uFDB4\"] = \"\\u0642\\u0645\\u062D\";\n t[\"\\uFDB5\"] = \"\\u0644\\u062D\\u0645\";\n t[\"\\uFDB6\"] = \"\\u0639\\u0645\\u064A\";\n t[\"\\uFDB7\"] = \"\\u0643\\u0645\\u064A\";\n t[\"\\uFDB8\"] = \"\\u0646\\u062C\\u062D\";\n t[\"\\uFDB9\"] = \"\\u0645\\u062E\\u064A\";\n t[\"\\uFDBA\"] = \"\\u0644\\u062C\\u0645\";\n t[\"\\uFDBB\"] = \"\\u0643\\u0645\\u0645\";\n t[\"\\uFDBC\"] = \"\\u0644\\u062C\\u0645\";\n t[\"\\uFDBD\"] = \"\\u0646\\u062C\\u062D\";\n t[\"\\uFDBE\"] = \"\\u062C\\u062D\\u064A\";\n t[\"\\uFDBF\"] = \"\\u062D\\u062C\\u064A\";\n t[\"\\uFDC0\"] = \"\\u0645\\u062C\\u064A\";\n t[\"\\uFDC1\"] = \"\\u0641\\u0645\\u064A\";\n t[\"\\uFDC2\"] = \"\\u0628\\u062D\\u064A\";\n t[\"\\uFDC3\"] = \"\\u0643\\u0645\\u0645\";\n t[\"\\uFDC4\"] = \"\\u0639\\u062C\\u0645\";\n t[\"\\uFDC5\"] = \"\\u0635\\u0645\\u0645\";\n t[\"\\uFDC6\"] = \"\\u0633\\u062E\\u064A\";\n t[\"\\uFDC7\"] = \"\\u0646\\u062C\\u064A\";\n t[\"\\uFE49\"] = \"\\u203E\";\n t[\"\\uFE4A\"] = \"\\u203E\";\n t[\"\\uFE4B\"] = \"\\u203E\";\n t[\"\\uFE4C\"] = \"\\u203E\";\n t[\"\\uFE4D\"] = \"\\u005F\";\n t[\"\\uFE4E\"] = \"\\u005F\";\n t[\"\\uFE4F\"] = \"\\u005F\";\n t[\"\\uFE80\"] = \"\\u0621\";\n t[\"\\uFE81\"] = \"\\u0622\";\n t[\"\\uFE82\"] = \"\\u0622\";\n t[\"\\uFE83\"] = \"\\u0623\";\n t[\"\\uFE84\"] = \"\\u0623\";\n t[\"\\uFE85\"] = \"\\u0624\";\n t[\"\\uFE86\"] = \"\\u0624\";\n t[\"\\uFE87\"] = \"\\u0625\";\n t[\"\\uFE88\"] = \"\\u0625\";\n t[\"\\uFE89\"] = \"\\u0626\";\n t[\"\\uFE8A\"] = \"\\u0626\";\n t[\"\\uFE8B\"] = \"\\u0626\";\n t[\"\\uFE8C\"] = \"\\u0626\";\n t[\"\\uFE8D\"] = \"\\u0627\";\n t[\"\\uFE8E\"] = \"\\u0627\";\n t[\"\\uFE8F\"] = \"\\u0628\";\n t[\"\\uFE90\"] = \"\\u0628\";\n t[\"\\uFE91\"] = \"\\u0628\";\n t[\"\\uFE92\"] = \"\\u0628\";\n t[\"\\uFE93\"] = \"\\u0629\";\n t[\"\\uFE94\"] = \"\\u0629\";\n t[\"\\uFE95\"] = \"\\u062A\";\n t[\"\\uFE96\"] = \"\\u062A\";\n t[\"\\uFE97\"] = \"\\u062A\";\n t[\"\\uFE98\"] = \"\\u062A\";\n t[\"\\uFE99\"] = \"\\u062B\";\n t[\"\\uFE9A\"] = \"\\u062B\";\n t[\"\\uFE9B\"] = \"\\u062B\";\n t[\"\\uFE9C\"] = \"\\u062B\";\n t[\"\\uFE9D\"] = \"\\u062C\";\n t[\"\\uFE9E\"] = \"\\u062C\";\n t[\"\\uFE9F\"] = \"\\u062C\";\n t[\"\\uFEA0\"] = \"\\u062C\";\n t[\"\\uFEA1\"] = \"\\u062D\";\n t[\"\\uFEA2\"] = \"\\u062D\";\n t[\"\\uFEA3\"] = \"\\u062D\";\n t[\"\\uFEA4\"] = \"\\u062D\";\n t[\"\\uFEA5\"] = \"\\u062E\";\n t[\"\\uFEA6\"] = \"\\u062E\";\n t[\"\\uFEA7\"] = \"\\u062E\";\n t[\"\\uFEA8\"] = \"\\u062E\";\n t[\"\\uFEA9\"] = \"\\u062F\";\n t[\"\\uFEAA\"] = \"\\u062F\";\n t[\"\\uFEAB\"] = \"\\u0630\";\n t[\"\\uFEAC\"] = \"\\u0630\";\n t[\"\\uFEAD\"] = \"\\u0631\";\n t[\"\\uFEAE\"] = \"\\u0631\";\n t[\"\\uFEAF\"] = \"\\u0632\";\n t[\"\\uFEB0\"] = \"\\u0632\";\n t[\"\\uFEB1\"] = \"\\u0633\";\n t[\"\\uFEB2\"] = \"\\u0633\";\n t[\"\\uFEB3\"] = \"\\u0633\";\n t[\"\\uFEB4\"] = \"\\u0633\";\n t[\"\\uFEB5\"] = \"\\u0634\";\n t[\"\\uFEB6\"] = \"\\u0634\";\n t[\"\\uFEB7\"] = \"\\u0634\";\n t[\"\\uFEB8\"] = \"\\u0634\";\n t[\"\\uFEB9\"] = \"\\u0635\";\n t[\"\\uFEBA\"] = \"\\u0635\";\n t[\"\\uFEBB\"] = \"\\u0635\";\n t[\"\\uFEBC\"] = \"\\u0635\";\n t[\"\\uFEBD\"] = \"\\u0636\";\n t[\"\\uFEBE\"] = \"\\u0636\";\n t[\"\\uFEBF\"] = \"\\u0636\";\n t[\"\\uFEC0\"] = \"\\u0636\";\n t[\"\\uFEC1\"] = \"\\u0637\";\n t[\"\\uFEC2\"] = \"\\u0637\";\n t[\"\\uFEC3\"] = \"\\u0637\";\n t[\"\\uFEC4\"] = \"\\u0637\";\n t[\"\\uFEC5\"] = \"\\u0638\";\n t[\"\\uFEC6\"] = \"\\u0638\";\n t[\"\\uFEC7\"] = \"\\u0638\";\n t[\"\\uFEC8\"] = \"\\u0638\";\n t[\"\\uFEC9\"] = \"\\u0639\";\n t[\"\\uFECA\"] = \"\\u0639\";\n t[\"\\uFECB\"] = \"\\u0639\";\n t[\"\\uFECC\"] = \"\\u0639\";\n t[\"\\uFECD\"] = \"\\u063A\";\n t[\"\\uFECE\"] = \"\\u063A\";\n t[\"\\uFECF\"] = \"\\u063A\";\n t[\"\\uFED0\"] = \"\\u063A\";\n t[\"\\uFED1\"] = \"\\u0641\";\n t[\"\\uFED2\"] = \"\\u0641\";\n t[\"\\uFED3\"] = \"\\u0641\";\n t[\"\\uFED4\"] = \"\\u0641\";\n t[\"\\uFED5\"] = \"\\u0642\";\n t[\"\\uFED6\"] = \"\\u0642\";\n t[\"\\uFED7\"] = \"\\u0642\";\n t[\"\\uFED8\"] = \"\\u0642\";\n t[\"\\uFED9\"] = \"\\u0643\";\n t[\"\\uFEDA\"] = \"\\u0643\";\n t[\"\\uFEDB\"] = \"\\u0643\";\n t[\"\\uFEDC\"] = \"\\u0643\";\n t[\"\\uFEDD\"] = \"\\u0644\";\n t[\"\\uFEDE\"] = \"\\u0644\";\n t[\"\\uFEDF\"] = \"\\u0644\";\n t[\"\\uFEE0\"] = \"\\u0644\";\n t[\"\\uFEE1\"] = \"\\u0645\";\n t[\"\\uFEE2\"] = \"\\u0645\";\n t[\"\\uFEE3\"] = \"\\u0645\";\n t[\"\\uFEE4\"] = \"\\u0645\";\n t[\"\\uFEE5\"] = \"\\u0646\";\n t[\"\\uFEE6\"] = \"\\u0646\";\n t[\"\\uFEE7\"] = \"\\u0646\";\n t[\"\\uFEE8\"] = \"\\u0646\";\n t[\"\\uFEE9\"] = \"\\u0647\";\n t[\"\\uFEEA\"] = \"\\u0647\";\n t[\"\\uFEEB\"] = \"\\u0647\";\n t[\"\\uFEEC\"] = \"\\u0647\";\n t[\"\\uFEED\"] = \"\\u0648\";\n t[\"\\uFEEE\"] = \"\\u0648\";\n t[\"\\uFEEF\"] = \"\\u0649\";\n t[\"\\uFEF0\"] = \"\\u0649\";\n t[\"\\uFEF1\"] = \"\\u064A\";\n t[\"\\uFEF2\"] = \"\\u064A\";\n t[\"\\uFEF3\"] = \"\\u064A\";\n t[\"\\uFEF4\"] = \"\\u064A\";\n t[\"\\uFEF5\"] = \"\\u0644\\u0622\";\n t[\"\\uFEF6\"] = \"\\u0644\\u0622\";\n t[\"\\uFEF7\"] = \"\\u0644\\u0623\";\n t[\"\\uFEF8\"] = \"\\u0644\\u0623\";\n t[\"\\uFEF9\"] = \"\\u0644\\u0625\";\n t[\"\\uFEFA\"] = \"\\u0644\\u0625\";\n t[\"\\uFEFB\"] = \"\\u0644\\u0627\";\n t[\"\\uFEFC\"] = \"\\u0644\\u0627\";\n});\nfunction reverseIfRtl(chars) {\n var charsLength = chars.length;\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n return chars;\n }\n var s = \"\";\n for (var ii = charsLength - 1; ii >= 0; ii--) {\n s += chars[ii];\n }\n return s;\n}\nexports.mapSpecialUnicodeValues = mapSpecialUnicodeValues;\nexports.reverseIfRtl = reverseIfRtl;\nexports.getUnicodeRangeFor = getUnicodeRangeFor;\nexports.getNormalizedUnicodes = getNormalizedUnicodes;\nexports.getUnicodeForGlyph = getUnicodeForGlyph;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontRendererFactory = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(30);\n\nvar _glyphlist = __w_pdfjs_require__(33);\n\nvar _encodings = __w_pdfjs_require__(32);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar FontRendererFactory = function FontRendererFactoryClosure() {\n function getLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n }\n\n function getUshort(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n }\n\n function getSubroutineBias(subrs) {\n const numSubrs = subrs.length;\n let bias = 32768;\n\n if (numSubrs < 1240) {\n bias = 107;\n } else if (numSubrs < 33900) {\n bias = 1131;\n }\n\n return bias;\n }\n\n function parseCmap(data, start, end) {\n var offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) : getLong(data, start + 16);\n var format = getUshort(data, start + offset);\n var ranges, p, i;\n\n if (format === 4) {\n getUshort(data, start + offset + 2);\n var segCount = getUshort(data, start + offset + 6) >> 1;\n p = start + offset + 14;\n ranges = [];\n\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i] = {\n end: getUshort(data, p)\n };\n }\n\n p += 2;\n\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].start = getUshort(data, p);\n }\n\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].idDelta = getUshort(data, p);\n }\n\n for (i = 0; i < segCount; i++, p += 2) {\n var idOffset = getUshort(data, p);\n\n if (idOffset === 0) {\n continue;\n }\n\n ranges[i].ids = [];\n\n for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n ranges[i].ids[j] = getUshort(data, p + idOffset);\n idOffset += 2;\n }\n }\n\n return ranges;\n } else if (format === 12) {\n getLong(data, start + offset + 4);\n var groups = getLong(data, start + offset + 12);\n p = start + offset + 16;\n ranges = [];\n\n for (i = 0; i < groups; i++) {\n ranges.push({\n start: getLong(data, p),\n end: getLong(data, p + 4),\n idDelta: getLong(data, p + 8) - getLong(data, p)\n });\n p += 12;\n }\n\n return ranges;\n }\n\n throw new _util.FormatError(`unsupported cmap: ${format}`);\n }\n\n function parseCff(data, start, end, seacAnalysisEnabled) {\n var properties = {};\n var parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled);\n var cff = parser.parse();\n return {\n glyphs: cff.charStrings.objects,\n subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && cff.topDict.privateDict.subrsIndex.objects,\n gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n isCFFCIDFont: cff.isCIDFont,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray\n };\n }\n\n function parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n var itemSize, itemDecode;\n\n if (isGlyphLocationsLong) {\n itemSize = 4;\n\n itemDecode = function fontItemDecodeLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n };\n } else {\n itemSize = 2;\n\n itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n }\n\n var glyphs = [];\n var startOffset = itemDecode(loca, 0);\n\n for (var j = itemSize; j < loca.length; j += itemSize) {\n var endOffset = itemDecode(loca, j);\n glyphs.push(glyf.subarray(startOffset, endOffset));\n startOffset = endOffset;\n }\n\n return glyphs;\n }\n\n function lookupCmap(ranges, unicode) {\n var code = unicode.codePointAt(0),\n gid = 0;\n var l = 0,\n r = ranges.length - 1;\n\n while (l < r) {\n var c = l + r + 1 >> 1;\n\n if (code < ranges[c].start) {\n r = c - 1;\n } else {\n l = c;\n }\n }\n\n if (ranges[l].start <= code && code <= ranges[l].end) {\n gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xffff;\n }\n\n return {\n charCode: code,\n glyphId: gid\n };\n }\n\n function compileGlyf(code, cmds, font) {\n function moveTo(x, y) {\n cmds.push({\n cmd: \"moveTo\",\n args: [x, y]\n });\n }\n\n function lineTo(x, y) {\n cmds.push({\n cmd: \"lineTo\",\n args: [x, y]\n });\n }\n\n function quadraticCurveTo(xa, ya, x, y) {\n cmds.push({\n cmd: \"quadraticCurveTo\",\n args: [xa, ya, x, y]\n });\n }\n\n var i = 0;\n var numberOfContours = (code[i] << 24 | code[i + 1] << 16) >> 16;\n var flags;\n var x = 0,\n y = 0;\n i += 10;\n\n if (numberOfContours < 0) {\n do {\n flags = code[i] << 8 | code[i + 1];\n var glyphIndex = code[i + 2] << 8 | code[i + 3];\n i += 4;\n var arg1, arg2;\n\n if (flags & 0x01) {\n arg1 = (code[i] << 24 | code[i + 1] << 16) >> 16;\n arg2 = (code[i + 2] << 24 | code[i + 3] << 16) >> 16;\n i += 4;\n } else {\n arg1 = code[i++];\n arg2 = code[i++];\n }\n\n if (flags & 0x02) {\n x = arg1;\n y = arg2;\n } else {\n x = 0;\n y = 0;\n }\n\n var scaleX = 1,\n scaleY = 1,\n scale01 = 0,\n scale10 = 0;\n\n if (flags & 0x08) {\n scaleX = scaleY = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n i += 2;\n } else if (flags & 0x40) {\n scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n scaleY = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n i += 4;\n } else if (flags & 0x80) {\n scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n scale01 = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n scale10 = (code[i + 4] << 24 | code[i + 5] << 16) / 1073741824;\n scaleY = (code[i + 6] << 24 | code[i + 7] << 16) / 1073741824;\n i += 8;\n }\n\n var subglyph = font.glyphs[glyphIndex];\n\n if (subglyph) {\n cmds.push({\n cmd: \"save\"\n });\n cmds.push({\n cmd: \"transform\",\n args: [scaleX, scale01, scale10, scaleY, x, y]\n });\n compileGlyf(subglyph, cmds, font);\n cmds.push({\n cmd: \"restore\"\n });\n }\n } while (flags & 0x20);\n } else {\n var endPtsOfContours = [];\n var j, jj;\n\n for (j = 0; j < numberOfContours; j++) {\n endPtsOfContours.push(code[i] << 8 | code[i + 1]);\n i += 2;\n }\n\n var instructionLength = code[i] << 8 | code[i + 1];\n i += 2 + instructionLength;\n var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n var points = [];\n\n while (points.length < numberOfPoints) {\n flags = code[i++];\n var repeat = 1;\n\n if (flags & 0x08) {\n repeat += code[i++];\n }\n\n while (repeat-- > 0) {\n points.push({\n flags\n });\n }\n }\n\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x12) {\n case 0x00:\n x += (code[i] << 24 | code[i + 1] << 16) >> 16;\n i += 2;\n break;\n\n case 0x02:\n x -= code[i++];\n break;\n\n case 0x12:\n x += code[i++];\n break;\n }\n\n points[j].x = x;\n }\n\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x24) {\n case 0x00:\n y += (code[i] << 24 | code[i + 1] << 16) >> 16;\n i += 2;\n break;\n\n case 0x04:\n y -= code[i++];\n break;\n\n case 0x24:\n y += code[i++];\n break;\n }\n\n points[j].y = y;\n }\n\n var startPoint = 0;\n\n for (i = 0; i < numberOfContours; i++) {\n var endPoint = endPtsOfContours[i];\n var contour = points.slice(startPoint, endPoint + 1);\n\n if (contour[0].flags & 1) {\n contour.push(contour[0]);\n } else if (contour[contour.length - 1].flags & 1) {\n contour.unshift(contour[contour.length - 1]);\n } else {\n var p = {\n flags: 1,\n x: (contour[0].x + contour[contour.length - 1].x) / 2,\n y: (contour[0].y + contour[contour.length - 1].y) / 2\n };\n contour.unshift(p);\n contour.push(p);\n }\n\n moveTo(contour[0].x, contour[0].y);\n\n for (j = 1, jj = contour.length; j < jj; j++) {\n if (contour[j].flags & 1) {\n lineTo(contour[j].x, contour[j].y);\n } else if (contour[j + 1].flags & 1) {\n quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y);\n j++;\n } else {\n quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2);\n }\n }\n\n startPoint = endPoint + 1;\n }\n }\n }\n\n function compileCharString(charStringCode, cmds, font, glyphId) {\n function moveTo(x, y) {\n cmds.push({\n cmd: \"moveTo\",\n args: [x, y]\n });\n }\n\n function lineTo(x, y) {\n cmds.push({\n cmd: \"lineTo\",\n args: [x, y]\n });\n }\n\n function bezierCurveTo(x1, y1, x2, y2, x, y) {\n cmds.push({\n cmd: \"bezierCurveTo\",\n args: [x1, y1, x2, y2, x, y]\n });\n }\n\n var stack = [];\n var x = 0,\n y = 0;\n var stems = 0;\n\n function parse(code) {\n var i = 0;\n\n while (i < code.length) {\n var stackClean = false;\n var v = code[i++];\n var xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n\n switch (v) {\n case 1:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 3:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 4:\n y += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n\n case 5:\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n\n break;\n\n case 6:\n while (stack.length > 0) {\n x += stack.shift();\n lineTo(x, y);\n\n if (stack.length === 0) {\n break;\n }\n\n y += stack.shift();\n lineTo(x, y);\n }\n\n break;\n\n case 7:\n while (stack.length > 0) {\n y += stack.shift();\n lineTo(x, y);\n\n if (stack.length === 0) {\n break;\n }\n\n x += stack.shift();\n lineTo(x, y);\n }\n\n break;\n\n case 8:\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n break;\n\n case 10:\n n = stack.pop();\n subrCode = null;\n\n if (font.isCFFCIDFont) {\n const fdIndex = font.fdSelect.getFDIndex(glyphId);\n\n if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n const fontDict = font.fdArray[fdIndex];\n let subrs;\n\n if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n subrs = fontDict.privateDict.subrsIndex.objects;\n }\n\n if (subrs) {\n n += getSubroutineBias(subrs);\n subrCode = subrs[n];\n }\n } else {\n (0, _util.warn)(\"Invalid fd index for glyph index.\");\n }\n } else {\n subrCode = font.subrs[n + font.subrsBias];\n }\n\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n\n case 11:\n return;\n\n case 12:\n v = code[i++];\n\n switch (v) {\n case 34:\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y1 = y + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y, xb, y1, x, y1);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y, x, y);\n break;\n\n case 35:\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n stack.pop();\n break;\n\n case 36:\n xa = x + stack.shift();\n y1 = y + stack.shift();\n xb = xa + stack.shift();\n y2 = y1 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y2, x, y2);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y3 = y2 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y2, xb, y3, x, y);\n break;\n\n case 37:\n var x0 = x,\n y0 = y;\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb;\n\n if (Math.abs(x - x0) > Math.abs(y - y0)) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n\n default:\n throw new _util.FormatError(`unknown operator: 12 ${v}`);\n }\n\n break;\n\n case 14:\n if (stack.length >= 4) {\n var achar = stack.pop();\n var bchar = stack.pop();\n y = stack.pop();\n x = stack.pop();\n cmds.push({\n cmd: \"save\"\n });\n cmds.push({\n cmd: \"translate\",\n args: [x, y]\n });\n var cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n cmds.push({\n cmd: \"restore\"\n });\n cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n }\n\n return;\n\n case 18:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 19:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n\n case 20:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n\n case 21:\n y += stack.pop();\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n\n case 22:\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n\n case 23:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 24:\n while (stack.length > 2) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n break;\n\n case 25:\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n\n case 26:\n if (stack.length % 2) {\n x += stack.shift();\n }\n\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n break;\n\n case 27:\n if (stack.length % 2) {\n y += stack.shift();\n }\n\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb;\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n break;\n\n case 28:\n stack.push((code[i] << 24 | code[i + 1] << 16) >> 16);\n i += 2;\n break;\n\n case 29:\n n = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[n];\n\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n\n case 30:\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n\n if (stack.length === 0) {\n break;\n }\n\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n break;\n\n case 31:\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n\n if (stack.length === 0) {\n break;\n }\n\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n break;\n\n default:\n if (v < 32) {\n throw new _util.FormatError(`unknown operator: ${v}`);\n }\n\n if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n stack.push((v - 247) * 256 + code[i++] + 108);\n } else if (v < 255) {\n stack.push(-(v - 251) * 256 - code[i++] - 108);\n } else {\n stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536);\n i += 4;\n }\n\n break;\n }\n\n if (stackClean) {\n stack.length = 0;\n }\n }\n }\n\n parse(charStringCode);\n }\n\n const NOOP = [];\n\n class CompiledFont {\n constructor(fontMatrix) {\n if (this.constructor === CompiledFont) {\n (0, _util.unreachable)(\"Cannot initialize CompiledFont.\");\n }\n\n this.fontMatrix = fontMatrix;\n this.compiledGlyphs = Object.create(null);\n this.compiledCharCodeToGlyphId = Object.create(null);\n }\n\n getPathJs(unicode) {\n const cmap = lookupCmap(this.cmap, unicode);\n let fn = this.compiledGlyphs[cmap.glyphId];\n\n if (!fn) {\n fn = this.compileGlyph(this.glyphs[cmap.glyphId], cmap.glyphId);\n this.compiledGlyphs[cmap.glyphId] = fn;\n }\n\n if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) {\n this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId;\n }\n\n return fn;\n }\n\n compileGlyph(code, glyphId) {\n if (!code || code.length === 0 || code[0] === 14) {\n return NOOP;\n }\n\n let fontMatrix = this.fontMatrix;\n\n if (this.isCFFCIDFont) {\n const fdIndex = this.fdSelect.getFDIndex(glyphId);\n\n if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n const fontDict = this.fdArray[fdIndex];\n fontMatrix = fontDict.getByName(\"FontMatrix\") || _util.FONT_IDENTITY_MATRIX;\n } else {\n (0, _util.warn)(\"Invalid fd index for glyph index.\");\n }\n }\n\n const cmds = [];\n cmds.push({\n cmd: \"save\"\n });\n cmds.push({\n cmd: \"transform\",\n args: fontMatrix.slice()\n });\n cmds.push({\n cmd: \"scale\",\n args: [\"size\", \"-size\"]\n });\n this.compileGlyphImpl(code, cmds, glyphId);\n cmds.push({\n cmd: \"restore\"\n });\n return cmds;\n }\n\n compileGlyphImpl() {\n (0, _util.unreachable)(\"Children classes should implement this.\");\n }\n\n hasBuiltPath(unicode) {\n const cmap = lookupCmap(this.cmap, unicode);\n return this.compiledGlyphs[cmap.glyphId] !== undefined && this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined;\n }\n\n }\n\n class TrueTypeCompiled extends CompiledFont {\n constructor(glyphs, cmap, fontMatrix) {\n super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n this.glyphs = glyphs;\n this.cmap = cmap;\n }\n\n compileGlyphImpl(code, cmds) {\n compileGlyf(code, cmds, this);\n }\n\n }\n\n class Type2Compiled extends CompiledFont {\n constructor(cffInfo, cmap, fontMatrix, glyphNameMap) {\n super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n this.glyphs = cffInfo.glyphs;\n this.gsubrs = cffInfo.gsubrs || [];\n this.subrs = cffInfo.subrs || [];\n this.cmap = cmap;\n this.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)();\n this.gsubrsBias = getSubroutineBias(this.gsubrs);\n this.subrsBias = getSubroutineBias(this.subrs);\n this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n this.fdSelect = cffInfo.fdSelect;\n this.fdArray = cffInfo.fdArray;\n }\n\n compileGlyphImpl(code, cmds, glyphId) {\n compileCharString(code, cmds, this, glyphId);\n }\n\n }\n\n return {\n create: function FontRendererFactory_create(font, seacAnalysisEnabled) {\n var data = new Uint8Array(font.data);\n var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n var numTables = getUshort(data, 4);\n\n for (var i = 0, p = 12; i < numTables; i++, p += 16) {\n var tag = (0, _util.bytesToString)(data.subarray(p, p + 4));\n var offset = getLong(data, p + 8);\n var length = getLong(data, p + 12);\n\n switch (tag) {\n case \"cmap\":\n cmap = parseCmap(data, offset, offset + length);\n break;\n\n case \"glyf\":\n glyf = data.subarray(offset, offset + length);\n break;\n\n case \"loca\":\n loca = data.subarray(offset, offset + length);\n break;\n\n case \"head\":\n unitsPerEm = getUshort(data, offset + 18);\n indexToLocFormat = getUshort(data, offset + 50);\n break;\n\n case \"CFF \":\n cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n break;\n }\n }\n\n if (glyf) {\n var fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n }\n\n return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n }\n };\n}();\n\nexports.FontRendererFactory = FontRendererFactory;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Type1Parser = void 0;\n\nvar _encodings = __w_pdfjs_require__(32);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar HINTING_ENABLED = false;\n\nvar Type1CharString = function Type1CharStringClosure() {\n var COMMAND_MAP = {\n hstem: [1],\n vstem: [3],\n vmoveto: [4],\n rlineto: [5],\n hlineto: [6],\n vlineto: [7],\n rrcurveto: [8],\n callsubr: [10],\n flex: [12, 35],\n drop: [12, 18],\n endchar: [14],\n rmoveto: [21],\n hmoveto: [22],\n vhcurveto: [30],\n hvcurveto: [31]\n };\n\n function Type1CharString() {\n this.width = 0;\n this.lsb = 0;\n this.flexing = false;\n this.output = [];\n this.stack = [];\n }\n\n Type1CharString.prototype = {\n convert: function Type1CharString_convert(encoded, subrs, seacAnalysisEnabled) {\n var count = encoded.length;\n var error = false;\n var wx, sbx, subrNumber;\n\n for (var i = 0; i < count; i++) {\n var value = encoded[i];\n\n if (value < 32) {\n if (value === 12) {\n value = (value << 8) + encoded[++i];\n }\n\n switch (value) {\n case 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n\n case 3:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n\n case 4:\n if (this.flexing) {\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n\n var dy = this.stack.pop();\n this.stack.push(0, dy);\n break;\n }\n\n error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n break;\n\n case 5:\n error = this.executeCommand(2, COMMAND_MAP.rlineto);\n break;\n\n case 6:\n error = this.executeCommand(1, COMMAND_MAP.hlineto);\n break;\n\n case 7:\n error = this.executeCommand(1, COMMAND_MAP.vlineto);\n break;\n\n case 8:\n error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n break;\n\n case 9:\n this.stack = [];\n break;\n\n case 10:\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n\n subrNumber = this.stack.pop();\n\n if (!subrs[subrNumber]) {\n error = true;\n break;\n }\n\n error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n break;\n\n case 11:\n return error;\n\n case 13:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n\n wx = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx);\n error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n break;\n\n case 14:\n this.output.push(COMMAND_MAP.endchar[0]);\n break;\n\n case 21:\n if (this.flexing) {\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n break;\n\n case 22:\n if (this.flexing) {\n this.stack.push(0);\n break;\n }\n\n error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n break;\n\n case 30:\n error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n break;\n\n case 31:\n error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n break;\n\n case (12 << 8) + 0:\n this.stack = [];\n break;\n\n case (12 << 8) + 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n\n case (12 << 8) + 2:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n\n case (12 << 8) + 6:\n if (seacAnalysisEnabled) {\n this.seac = this.stack.splice(-4, 4);\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n\n break;\n\n case (12 << 8) + 7:\n if (this.stack.length < 4) {\n error = true;\n break;\n }\n\n this.stack.pop();\n wx = this.stack.pop();\n var sby = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx, sby);\n error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n break;\n\n case (12 << 8) + 12:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n\n var num2 = this.stack.pop();\n var num1 = this.stack.pop();\n this.stack.push(num1 / num2);\n break;\n\n case (12 << 8) + 16:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n\n subrNumber = this.stack.pop();\n var numArgs = this.stack.pop();\n\n if (subrNumber === 0 && numArgs === 3) {\n var flexArgs = this.stack.splice(this.stack.length - 17, 17);\n this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]);\n error = this.executeCommand(13, COMMAND_MAP.flex, true);\n this.flexing = false;\n this.stack.push(flexArgs[15], flexArgs[16]);\n } else if (subrNumber === 1 && numArgs === 0) {\n this.flexing = true;\n }\n\n break;\n\n case (12 << 8) + 17:\n break;\n\n case (12 << 8) + 33:\n this.stack = [];\n break;\n\n default:\n (0, _util.warn)('Unknown type 1 charstring command of \"' + value + '\"');\n break;\n }\n\n if (error) {\n break;\n }\n\n continue;\n } else if (value <= 246) {\n value = value - 139;\n } else if (value <= 250) {\n value = (value - 247) * 256 + encoded[++i] + 108;\n } else if (value <= 254) {\n value = -((value - 251) * 256) - encoded[++i] - 108;\n } else {\n value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n }\n\n this.stack.push(value);\n }\n\n return error;\n },\n\n executeCommand(howManyArgs, command, keepStack) {\n var stackLength = this.stack.length;\n\n if (howManyArgs > stackLength) {\n return true;\n }\n\n var start = stackLength - howManyArgs;\n\n for (var i = start; i < stackLength; i++) {\n var value = this.stack[i];\n\n if (Number.isInteger(value)) {\n this.output.push(28, value >> 8 & 0xff, value & 0xff);\n } else {\n value = 65536 * value | 0;\n this.output.push(255, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n }\n }\n\n this.output.push.apply(this.output, command);\n\n if (keepStack) {\n this.stack.splice(start, howManyArgs);\n } else {\n this.stack.length = 0;\n }\n\n return false;\n }\n\n };\n return Type1CharString;\n}();\n\nvar Type1Parser = function Type1ParserClosure() {\n var EEXEC_ENCRYPT_KEY = 55665;\n var CHAR_STRS_ENCRYPT_KEY = 4330;\n\n function isHexDigit(code) {\n return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102;\n }\n\n function decrypt(data, key, discardNumber) {\n if (discardNumber >= data.length) {\n return new Uint8Array(0);\n }\n\n var r = key | 0,\n c1 = 52845,\n c2 = 22719,\n i,\n j;\n\n for (i = 0; i < discardNumber; i++) {\n r = (data[i] + r) * c1 + c2 & (1 << 16) - 1;\n }\n\n var count = data.length - discardNumber;\n var decrypted = new Uint8Array(count);\n\n for (i = discardNumber, j = 0; j < count; i++, j++) {\n var value = data[i];\n decrypted[j] = value ^ r >> 8;\n r = (value + r) * c1 + c2 & (1 << 16) - 1;\n }\n\n return decrypted;\n }\n\n function decryptAscii(data, key, discardNumber) {\n var r = key | 0,\n c1 = 52845,\n c2 = 22719;\n var count = data.length,\n maybeLength = count >>> 1;\n var decrypted = new Uint8Array(maybeLength);\n var i, j;\n\n for (i = 0, j = 0; i < count; i++) {\n var digit1 = data[i];\n\n if (!isHexDigit(digit1)) {\n continue;\n }\n\n i++;\n var digit2;\n\n while (i < count && !isHexDigit(digit2 = data[i])) {\n i++;\n }\n\n if (i < count) {\n var value = parseInt(String.fromCharCode(digit1, digit2), 16);\n decrypted[j++] = value ^ r >> 8;\n r = (value + r) * c1 + c2 & (1 << 16) - 1;\n }\n }\n\n return decrypted.slice(discardNumber, j);\n }\n\n function isSpecial(c) {\n return c === 0x2f || c === 0x5b || c === 0x5d || c === 0x7b || c === 0x7d || c === 0x28 || c === 0x29;\n }\n\n function Type1Parser(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n var data = stream.getBytes();\n var isBinary = !((isHexDigit(data[0]) || (0, _core_utils.isWhiteSpace)(data[0])) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]) && isHexDigit(data[4]) && isHexDigit(data[5]) && isHexDigit(data[6]) && isHexDigit(data[7]));\n stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4));\n }\n\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n this.stream = stream;\n this.nextChar();\n }\n\n Type1Parser.prototype = {\n readNumberArray: function Type1Parser_readNumberArray() {\n this.getToken();\n var array = [];\n\n while (true) {\n var token = this.getToken();\n\n if (token === null || token === \"]\" || token === \"}\") {\n break;\n }\n\n array.push(parseFloat(token || 0));\n }\n\n return array;\n },\n readNumber: function Type1Parser_readNumber() {\n var token = this.getToken();\n return parseFloat(token || 0);\n },\n readInt: function Type1Parser_readInt() {\n var token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n },\n readBoolean: function Type1Parser_readBoolean() {\n var token = this.getToken();\n return token === \"true\" ? 1 : 0;\n },\n nextChar: function Type1_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n getToken: function Type1Parser_getToken() {\n var comment = false;\n var ch = this.currentChar;\n\n while (true) {\n if (ch === -1) {\n return null;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (!(0, _core_utils.isWhiteSpace)(ch)) {\n break;\n }\n\n ch = this.nextChar();\n }\n\n if (isSpecial(ch)) {\n this.nextChar();\n return String.fromCharCode(ch);\n }\n\n var token = \"\";\n\n do {\n token += String.fromCharCode(ch);\n ch = this.nextChar();\n } while (ch >= 0 && !(0, _core_utils.isWhiteSpace)(ch) && !isSpecial(ch));\n\n return token;\n },\n readCharStrings: function Type1Parser_readCharStrings(bytes, lenIV) {\n if (lenIV === -1) {\n return bytes;\n }\n\n return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n },\n extractFontProgram: function Type1Parser_extractFontProgram(properties) {\n var stream = this.stream;\n var subrs = [],\n charstrings = [];\n var privateData = Object.create(null);\n privateData.lenIV = 4;\n var program = {\n subrs: [],\n charstrings: [],\n properties: {\n privateData\n }\n };\n var token, length, data, lenIV, encoded;\n\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n\n token = this.getToken();\n\n switch (token) {\n case \"CharStrings\":\n this.getToken();\n this.getToken();\n this.getToken();\n this.getToken();\n\n while (true) {\n token = this.getToken();\n\n if (token === null || token === \"end\") {\n break;\n }\n\n if (token !== \"/\") {\n continue;\n }\n\n var glyph = this.getToken();\n length = this.readInt();\n this.getToken();\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken();\n\n if (token === \"noaccess\") {\n this.getToken();\n }\n\n charstrings.push({\n glyph,\n encoded\n });\n }\n\n break;\n\n case \"Subrs\":\n this.readInt();\n this.getToken();\n\n while (this.getToken() === \"dup\") {\n const index = this.readInt();\n length = this.readInt();\n this.getToken();\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken();\n\n if (token === \"noaccess\") {\n this.getToken();\n }\n\n subrs[index] = encoded;\n }\n\n break;\n\n case \"BlueValues\":\n case \"OtherBlues\":\n case \"FamilyBlues\":\n case \"FamilyOtherBlues\":\n var blueArray = this.readNumberArray();\n\n if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) {\n program.properties.privateData[token] = blueArray;\n }\n\n break;\n\n case \"StemSnapH\":\n case \"StemSnapV\":\n program.properties.privateData[token] = this.readNumberArray();\n break;\n\n case \"StdHW\":\n case \"StdVW\":\n program.properties.privateData[token] = this.readNumberArray()[0];\n break;\n\n case \"BlueShift\":\n case \"lenIV\":\n case \"BlueFuzz\":\n case \"BlueScale\":\n case \"LanguageGroup\":\n case \"ExpansionFactor\":\n program.properties.privateData[token] = this.readNumber();\n break;\n\n case \"ForceBold\":\n program.properties.privateData[token] = this.readBoolean();\n break;\n }\n }\n\n for (var i = 0; i < charstrings.length; i++) {\n glyph = charstrings[i].glyph;\n encoded = charstrings[i].encoded;\n var charString = new Type1CharString();\n var error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n var output = charString.output;\n\n if (error) {\n output = [14];\n }\n\n const charStringObject = {\n glyphName: glyph,\n charstring: output,\n width: charString.width,\n lsb: charString.lsb,\n seac: charString.seac\n };\n\n if (glyph === \".notdef\") {\n program.charstrings.unshift(charStringObject);\n } else {\n program.charstrings.push(charStringObject);\n }\n\n if (properties.builtInEncoding) {\n const index = properties.builtInEncoding.indexOf(glyph);\n\n if (index > -1 && properties.widths[index] === undefined && index >= properties.firstChar && index <= properties.lastChar) {\n properties.widths[index] = charString.width;\n }\n }\n }\n\n return program;\n },\n extractFontHeader: function Type1Parser_extractFontHeader(properties) {\n var token;\n\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n\n token = this.getToken();\n\n switch (token) {\n case \"FontMatrix\":\n var matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n\n case \"Encoding\":\n var encodingArg = this.getToken();\n var encoding;\n\n if (!/^\\d+$/.test(encodingArg)) {\n encoding = (0, _encodings.getEncoding)(encodingArg);\n } else {\n encoding = [];\n var size = parseInt(encodingArg, 10) | 0;\n this.getToken();\n\n for (var j = 0; j < size; j++) {\n token = this.getToken();\n\n while (token !== \"dup\" && token !== \"def\") {\n token = this.getToken();\n\n if (token === null) {\n return;\n }\n }\n\n if (token === \"def\") {\n break;\n }\n\n var index = this.readInt();\n this.getToken();\n var glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken();\n }\n }\n\n properties.builtInEncoding = encoding;\n break;\n\n case \"FontBBox\":\n var fontBBox = this.readNumberArray();\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n break;\n }\n }\n }\n };\n return Type1Parser;\n}();\n\nexports.Type1Parser = Type1Parser;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTilingPatternIR = getTilingPatternIR;\nexports.Pattern = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar ShadingType = {\n FUNCTION_BASED: 1,\n AXIAL: 2,\n RADIAL: 3,\n FREE_FORM_MESH: 4,\n LATTICE_FORM_MESH: 5,\n COONS_PATCH_MESH: 6,\n TENSOR_PATCH_MESH: 7\n};\n\nvar Pattern = function PatternClosure() {\n function Pattern() {\n (0, _util.unreachable)(\"should not call Pattern constructor\");\n }\n\n Pattern.prototype = {\n getPattern: function Pattern_getPattern(ctx) {\n (0, _util.unreachable)(`Should not call Pattern.getStyle: ${ctx}`);\n }\n };\n\n Pattern.parseShading = function (shading, matrix, xref, res, handler, pdfFunctionFactory) {\n var dict = (0, _primitives.isStream)(shading) ? shading.dict : shading;\n var type = dict.get(\"ShadingType\");\n\n try {\n switch (type) {\n case ShadingType.AXIAL:\n case ShadingType.RADIAL:\n return new Shadings.RadialAxial(dict, matrix, xref, res, pdfFunctionFactory);\n\n case ShadingType.FREE_FORM_MESH:\n case ShadingType.LATTICE_FORM_MESH:\n case ShadingType.COONS_PATCH_MESH:\n case ShadingType.TENSOR_PATCH_MESH:\n return new Shadings.Mesh(shading, matrix, xref, res, pdfFunctionFactory);\n\n default:\n throw new _util.FormatError(\"Unsupported ShadingType: \" + type);\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.shadingPattern\n });\n (0, _util.warn)(ex);\n return new Shadings.Dummy();\n }\n };\n\n return Pattern;\n}();\n\nexports.Pattern = Pattern;\nvar Shadings = {};\nShadings.SMALL_NUMBER = 1e-6;\n\nShadings.RadialAxial = function RadialAxialClosure() {\n function RadialAxial(dict, matrix, xref, res, pdfFunctionFactory) {\n this.matrix = matrix;\n this.coordsArr = dict.getArray(\"Coords\");\n this.shadingType = dict.get(\"ShadingType\");\n this.type = \"Pattern\";\n var cs = dict.get(\"ColorSpace\", \"CS\");\n cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n this.cs = cs;\n const bbox = dict.getArray(\"BBox\");\n\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = _util.Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n\n var t0 = 0.0,\n t1 = 1.0;\n\n if (dict.has(\"Domain\")) {\n var domainArr = dict.getArray(\"Domain\");\n t0 = domainArr[0];\n t1 = domainArr[1];\n }\n\n var extendStart = false,\n extendEnd = false;\n\n if (dict.has(\"Extend\")) {\n var extendArr = dict.getArray(\"Extend\");\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n\n if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) {\n var x1 = this.coordsArr[0];\n var y1 = this.coordsArr[1];\n var r1 = this.coordsArr[2];\n var x2 = this.coordsArr[3];\n var y2 = this.coordsArr[4];\n var r2 = this.coordsArr[5];\n var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n\n if (r1 <= r2 + distance && r2 <= r1 + distance) {\n (0, _util.warn)(\"Unsupported radial gradient.\");\n }\n }\n\n this.extendStart = extendStart;\n this.extendEnd = extendEnd;\n var fnObj = dict.get(\"Function\");\n var fn = pdfFunctionFactory.createFromArray(fnObj);\n const NUMBER_OF_SAMPLES = 10;\n const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n var colorStops = this.colorStops = [];\n\n if (t0 >= t1 || step <= 0) {\n (0, _util.info)(\"Bad shading domain.\");\n return;\n }\n\n var color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n var rgbColor;\n\n for (let i = 0; i <= NUMBER_OF_SAMPLES; i++) {\n ratio[0] = t0 + i * step;\n fn(ratio, 0, color, 0);\n rgbColor = cs.getRgb(color, 0);\n\n var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n\n colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);\n }\n\n var background = \"transparent\";\n\n if (dict.has(\"Background\")) {\n rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n background = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n }\n\n if (!extendStart) {\n colorStops.unshift([0, background]);\n colorStops[1][0] += Shadings.SMALL_NUMBER;\n }\n\n if (!extendEnd) {\n colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER;\n colorStops.push([1, background]);\n }\n\n this.colorStops = colorStops;\n }\n\n RadialAxial.prototype = {\n getIR: function RadialAxial_getIR() {\n var coordsArr = this.coordsArr;\n var shadingType = this.shadingType;\n var type, p0, p1, r0, r1;\n\n if (shadingType === ShadingType.AXIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[2], coordsArr[3]];\n r0 = null;\n r1 = null;\n type = \"axial\";\n } else if (shadingType === ShadingType.RADIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[3], coordsArr[4]];\n r0 = coordsArr[2];\n r1 = coordsArr[5];\n type = \"radial\";\n } else {\n (0, _util.unreachable)(`getPattern type unknown: ${shadingType}`);\n }\n\n var matrix = this.matrix;\n\n if (matrix) {\n p0 = _util.Util.applyTransform(p0, matrix);\n p1 = _util.Util.applyTransform(p1, matrix);\n\n if (shadingType === ShadingType.RADIAL) {\n var scale = _util.Util.singularValueDecompose2dScale(matrix);\n\n r0 *= scale[0];\n r1 *= scale[1];\n }\n }\n\n return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n }\n };\n return RadialAxial;\n}();\n\nShadings.Mesh = function MeshClosure() {\n function MeshStreamReader(stream, context) {\n this.stream = stream;\n this.context = context;\n this.buffer = 0;\n this.bufferLength = 0;\n var numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n var csNumComps = context.colorSpace.numComps;\n this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf;\n }\n\n MeshStreamReader.prototype = {\n get hasData() {\n if (this.stream.end) {\n return this.stream.pos < this.stream.end;\n }\n\n if (this.bufferLength > 0) {\n return true;\n }\n\n var nextByte = this.stream.getByte();\n\n if (nextByte < 0) {\n return false;\n }\n\n this.buffer = nextByte;\n this.bufferLength = 8;\n return true;\n },\n\n readBits: function MeshStreamReader_readBits(n) {\n var buffer = this.buffer;\n var bufferLength = this.bufferLength;\n\n if (n === 32) {\n if (bufferLength === 0) {\n return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0;\n }\n\n buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte();\n var nextByte = this.stream.getByte();\n this.buffer = nextByte & (1 << bufferLength) - 1;\n return (buffer << 8 - bufferLength | (nextByte & 0xff) >> bufferLength) >>> 0;\n }\n\n if (n === 8 && bufferLength === 0) {\n return this.stream.getByte();\n }\n\n while (bufferLength < n) {\n buffer = buffer << 8 | this.stream.getByte();\n bufferLength += 8;\n }\n\n bufferLength -= n;\n this.bufferLength = bufferLength;\n this.buffer = buffer & (1 << bufferLength) - 1;\n return buffer >> bufferLength;\n },\n align: function MeshStreamReader_align() {\n this.buffer = 0;\n this.bufferLength = 0;\n },\n readFlag: function MeshStreamReader_readFlag() {\n return this.readBits(this.context.bitsPerFlag);\n },\n readCoordinate: function MeshStreamReader_readCoordinate() {\n var bitsPerCoordinate = this.context.bitsPerCoordinate;\n var xi = this.readBits(bitsPerCoordinate);\n var yi = this.readBits(bitsPerCoordinate);\n var decode = this.context.decode;\n var scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10;\n return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]];\n },\n readComponents: function MeshStreamReader_readComponents() {\n var numComps = this.context.numComps;\n var bitsPerComponent = this.context.bitsPerComponent;\n var scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n var decode = this.context.decode;\n var components = this.tmpCompsBuf;\n\n for (var i = 0, j = 4; i < numComps; i++, j += 2) {\n var ci = this.readBits(bitsPerComponent);\n components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n }\n\n var color = this.tmpCsCompsBuf;\n\n if (this.context.colorFn) {\n this.context.colorFn(components, 0, color, 0);\n }\n\n return this.context.colorSpace.getRgb(color, 0);\n }\n };\n\n function decodeType4Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var operators = [];\n var ps = [];\n var verticesLeft = 0;\n\n while (reader.hasData) {\n var f = reader.readFlag();\n var coord = reader.readCoordinate();\n var color = reader.readComponents();\n\n if (verticesLeft === 0) {\n if (!(0 <= f && f <= 2)) {\n throw new _util.FormatError(\"Unknown type4 flag\");\n }\n\n switch (f) {\n case 0:\n verticesLeft = 3;\n break;\n\n case 1:\n ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n\n case 2:\n ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n }\n\n operators.push(f);\n }\n\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n verticesLeft--;\n reader.align();\n }\n\n mesh.figures.push({\n type: \"triangles\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps)\n });\n }\n\n function decodeType5Shading(mesh, reader, verticesPerRow) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = [];\n\n while (reader.hasData) {\n var coord = reader.readCoordinate();\n var color = reader.readComponents();\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n }\n\n mesh.figures.push({\n type: \"lattice\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n verticesPerRow\n });\n }\n\n var MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n var MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n var TRIANGLE_DENSITY = 20;\n\n var getB = function getBClosure() {\n function buildB(count) {\n var lut = [];\n\n for (var i = 0; i <= count; i++) {\n var t = i / count,\n t_ = 1 - t;\n lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, 3 * t * t * t_, t * t * t]));\n }\n\n return lut;\n }\n\n var cache = [];\n return function getB(count) {\n if (!cache[count]) {\n cache[count] = buildB(count);\n }\n\n return cache[count];\n };\n }();\n\n function buildFigureFromPatch(mesh, index) {\n var figure = mesh.figures[index];\n (0, _util.assert)(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n var coords = mesh.coords,\n colors = mesh.colors;\n var pi = figure.coords;\n var ci = figure.colors;\n var figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var splitXBy = Math.ceil((figureMaxX - figureMinX) * TRIANGLE_DENSITY / (mesh.bounds[2] - mesh.bounds[0]));\n splitXBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy));\n var splitYBy = Math.ceil((figureMaxY - figureMinY) * TRIANGLE_DENSITY / (mesh.bounds[3] - mesh.bounds[1]));\n splitYBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy));\n var verticesPerRow = splitXBy + 1;\n var figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n var figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n var k = 0;\n var cl = new Uint8Array(3),\n cr = new Uint8Array(3);\n var c0 = colors[ci[0]],\n c1 = colors[ci[1]],\n c2 = colors[ci[2]],\n c3 = colors[ci[3]];\n var bRow = getB(splitYBy),\n bCol = getB(splitXBy);\n\n for (var row = 0; row <= splitYBy; row++) {\n cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0;\n cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0;\n cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0;\n cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0;\n cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0;\n cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0;\n\n for (var col = 0; col <= splitXBy; col++, k++) {\n if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n continue;\n }\n\n var x = 0,\n y = 0;\n var q = 0;\n\n for (var i = 0; i <= 3; i++) {\n for (var j = 0; j <= 3; j++, q++) {\n var m = bRow[row][i] * bCol[col][j];\n x += coords[pi[q]][0] * m;\n y += coords[pi[q]][1] * m;\n }\n }\n\n figureCoords[k] = coords.length;\n coords.push([x, y]);\n figureColors[k] = colors.length;\n var newColor = new Uint8Array(3);\n newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0;\n newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0;\n newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0;\n colors.push(newColor);\n }\n }\n\n figureCoords[0] = pi[0];\n figureColors[0] = ci[0];\n figureCoords[splitXBy] = pi[3];\n figureColors[splitXBy] = ci[1];\n figureCoords[verticesPerRow * splitYBy] = pi[12];\n figureColors[verticesPerRow * splitYBy] = ci[2];\n figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n mesh.figures[index] = {\n type: \"lattice\",\n coords: figureCoords,\n colors: figureColors,\n verticesPerRow\n };\n }\n\n function decodeType6Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = new Int32Array(16);\n var cs = new Int32Array(4);\n\n while (reader.hasData) {\n var f = reader.readFlag();\n\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError(\"Unknown type6 flag\");\n }\n\n var i, ii;\n var pi = coords.length;\n\n for (i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n\n var ci = colors.length;\n\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n\n var tmp1, tmp2, tmp3, tmp4;\n\n switch (f) {\n case 0:\n ps[12] = pi + 3;\n ps[13] = pi + 4;\n ps[14] = pi + 5;\n ps[15] = pi + 6;\n ps[8] = pi + 2;\n ps[11] = pi + 7;\n ps[4] = pi + 1;\n ps[7] = pi + 8;\n ps[0] = pi;\n ps[1] = pi + 11;\n ps[2] = pi + 10;\n ps[3] = pi + 9;\n cs[2] = ci + 1;\n cs[3] = ci + 2;\n cs[0] = ci;\n cs[1] = ci + 3;\n break;\n\n case 1:\n tmp1 = ps[12];\n tmp2 = ps[13];\n tmp3 = ps[14];\n tmp4 = ps[15];\n ps[12] = tmp4;\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = tmp3;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[2];\n tmp2 = cs[3];\n cs[2] = tmp2;\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[7];\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1];\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 3:\n ps[12] = ps[0];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[1];\n ps[11] = pi + 3;\n ps[4] = ps[2];\n ps[7] = pi + 4;\n ps[0] = ps[3];\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n cs[2] = cs[0];\n cs[3] = ci;\n cs[0] = cs[1];\n cs[1] = ci + 1;\n break;\n }\n\n ps[5] = coords.length;\n coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]);\n ps[6] = coords.length;\n coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]);\n ps[9] = coords.length;\n coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]);\n ps[10] = coords.length;\n coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]);\n mesh.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps),\n colors: new Int32Array(cs)\n });\n }\n }\n\n function decodeType7Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = new Int32Array(16);\n var cs = new Int32Array(4);\n\n while (reader.hasData) {\n var f = reader.readFlag();\n\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError(\"Unknown type7 flag\");\n }\n\n var i, ii;\n var pi = coords.length;\n\n for (i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n\n var ci = colors.length;\n\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n\n var tmp1, tmp2, tmp3, tmp4;\n\n switch (f) {\n case 0:\n ps[12] = pi + 3;\n ps[13] = pi + 4;\n ps[14] = pi + 5;\n ps[15] = pi + 6;\n ps[8] = pi + 2;\n ps[9] = pi + 13;\n ps[10] = pi + 14;\n ps[11] = pi + 7;\n ps[4] = pi + 1;\n ps[5] = pi + 12;\n ps[6] = pi + 15;\n ps[7] = pi + 8;\n ps[0] = pi;\n ps[1] = pi + 11;\n ps[2] = pi + 10;\n ps[3] = pi + 9;\n cs[2] = ci + 1;\n cs[3] = ci + 2;\n cs[0] = ci;\n cs[1] = ci + 3;\n break;\n\n case 1:\n tmp1 = ps[12];\n tmp2 = ps[13];\n tmp3 = ps[14];\n tmp4 = ps[15];\n ps[12] = tmp4;\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = tmp3;\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[2];\n tmp2 = cs[3];\n cs[2] = tmp2;\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[7];\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1];\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 3:\n ps[12] = ps[0];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[1];\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = ps[2];\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = ps[3];\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n cs[2] = cs[0];\n cs[3] = ci;\n cs[0] = cs[1];\n cs[1] = ci + 1;\n break;\n }\n\n mesh.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps),\n colors: new Int32Array(cs)\n });\n }\n }\n\n function updateBounds(mesh) {\n var minX = mesh.coords[0][0],\n minY = mesh.coords[0][1],\n maxX = minX,\n maxY = minY;\n\n for (var i = 1, ii = mesh.coords.length; i < ii; i++) {\n var x = mesh.coords[i][0],\n y = mesh.coords[i][1];\n minX = minX > x ? x : minX;\n minY = minY > y ? y : minY;\n maxX = maxX < x ? x : maxX;\n maxY = maxY < y ? y : maxY;\n }\n\n mesh.bounds = [minX, minY, maxX, maxY];\n }\n\n function packData(mesh) {\n var i, ii, j, jj;\n var coords = mesh.coords;\n var coordsPacked = new Float32Array(coords.length * 2);\n\n for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n var xy = coords[i];\n coordsPacked[j++] = xy[0];\n coordsPacked[j++] = xy[1];\n }\n\n mesh.coords = coordsPacked;\n var colors = mesh.colors;\n var colorsPacked = new Uint8Array(colors.length * 3);\n\n for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n var c = colors[i];\n colorsPacked[j++] = c[0];\n colorsPacked[j++] = c[1];\n colorsPacked[j++] = c[2];\n }\n\n mesh.colors = colorsPacked;\n var figures = mesh.figures;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n\n for (j = 0, jj = ps.length; j < jj; j++) {\n ps[j] *= 2;\n cs[j] *= 3;\n }\n }\n }\n\n function Mesh(stream, matrix, xref, res, pdfFunctionFactory) {\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError(\"Mesh data is not a stream\");\n }\n\n var dict = stream.dict;\n this.matrix = matrix;\n this.shadingType = dict.get(\"ShadingType\");\n this.type = \"Pattern\";\n const bbox = dict.getArray(\"BBox\");\n\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = _util.Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n\n var cs = dict.get(\"ColorSpace\", \"CS\");\n cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n this.cs = cs;\n this.background = dict.has(\"Background\") ? cs.getRgb(dict.get(\"Background\"), 0) : null;\n var fnObj = dict.get(\"Function\");\n var fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n this.coords = [];\n this.colors = [];\n this.figures = [];\n var decodeContext = {\n bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n bitsPerComponent: dict.get(\"BitsPerComponent\"),\n bitsPerFlag: dict.get(\"BitsPerFlag\"),\n decode: dict.getArray(\"Decode\"),\n colorFn: fn,\n colorSpace: cs,\n numComps: fn ? 1 : cs.numComps\n };\n var reader = new MeshStreamReader(stream, decodeContext);\n var patchMesh = false;\n\n switch (this.shadingType) {\n case ShadingType.FREE_FORM_MESH:\n decodeType4Shading(this, reader);\n break;\n\n case ShadingType.LATTICE_FORM_MESH:\n var verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n\n if (verticesPerRow < 2) {\n throw new _util.FormatError(\"Invalid VerticesPerRow\");\n }\n\n decodeType5Shading(this, reader, verticesPerRow);\n break;\n\n case ShadingType.COONS_PATCH_MESH:\n decodeType6Shading(this, reader);\n patchMesh = true;\n break;\n\n case ShadingType.TENSOR_PATCH_MESH:\n decodeType7Shading(this, reader);\n patchMesh = true;\n break;\n\n default:\n (0, _util.unreachable)(\"Unsupported mesh type.\");\n break;\n }\n\n if (patchMesh) {\n updateBounds(this);\n\n for (var i = 0, ii = this.figures.length; i < ii; i++) {\n buildFigureFromPatch(this, i);\n }\n }\n\n updateBounds(this);\n packData(this);\n }\n\n Mesh.prototype = {\n getIR: function Mesh_getIR() {\n return [\"Mesh\", this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.matrix, this.bbox, this.background];\n }\n };\n return Mesh;\n}();\n\nShadings.Dummy = function DummyClosure() {\n function Dummy() {\n this.type = \"Pattern\";\n }\n\n Dummy.prototype = {\n getIR: function Dummy_getIR() {\n return [\"Dummy\"];\n }\n };\n return Dummy;\n}();\n\nfunction getTilingPatternIR(operatorList, dict, args) {\n const matrix = dict.getArray(\"Matrix\");\n\n const bbox = _util.Util.normalizeRect(dict.getArray(\"BBox\"));\n\n const xstep = dict.get(\"XStep\");\n const ystep = dict.get(\"YStep\");\n const paintType = dict.get(\"PaintType\");\n const tilingType = dict.get(\"TilingType\");\n\n if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n throw new _util.FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n }\n\n return [\"TilingPattern\", args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];\n}\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bidi = bidi;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar baseTypes = [\"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\", \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\", \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\", \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"];\nvar arabicTypes = [\"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\", \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"];\n\nfunction isOdd(i) {\n return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n for (var j = start, jj = arr.length; j < jj; ++j) {\n if (arr[j] !== value) {\n return j;\n }\n }\n\n return j;\n}\n\nfunction setValues(arr, start, end, value) {\n for (var j = start; j < end; ++j) {\n arr[j] = value;\n }\n}\n\nfunction reverseValues(arr, start, end) {\n for (var i = start, j = end - 1; i < j; ++i, --j) {\n var temp = arr[i];\n arr[i] = arr[j];\n arr[j] = temp;\n }\n}\n\nfunction createBidiText(str, isLTR, vertical = false) {\n let dir = \"ltr\";\n\n if (vertical) {\n dir = \"ttb\";\n } else if (!isLTR) {\n dir = \"rtl\";\n }\n\n return {\n str,\n dir\n };\n}\n\nvar chars = [];\nvar types = [];\n\nfunction bidi(str, startLevel, vertical) {\n var isLTR = true;\n var strLength = str.length;\n\n if (strLength === 0 || vertical) {\n return createBidiText(str, isLTR, vertical);\n }\n\n chars.length = strLength;\n types.length = strLength;\n var numBidi = 0;\n var i, ii;\n\n for (i = 0; i < strLength; ++i) {\n chars[i] = str.charAt(i);\n var charCode = str.charCodeAt(i);\n var charType = \"L\";\n\n if (charCode <= 0x00ff) {\n charType = baseTypes[charCode];\n } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n charType = \"R\";\n } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n charType = arabicTypes[charCode & 0xff];\n\n if (!charType) {\n (0, _util.warn)(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n }\n } else if (0x0700 <= charCode && charCode <= 0x08ac) {\n charType = \"AL\";\n }\n\n if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n numBidi++;\n }\n\n types[i] = charType;\n }\n\n if (numBidi === 0) {\n isLTR = true;\n return createBidiText(str, isLTR);\n }\n\n if (startLevel === -1) {\n if (numBidi / strLength < 0.3) {\n isLTR = true;\n startLevel = 0;\n } else {\n isLTR = false;\n startLevel = 1;\n }\n }\n\n var levels = [];\n\n for (i = 0; i < strLength; ++i) {\n levels[i] = startLevel;\n }\n\n var e = isOdd(startLevel) ? \"R\" : \"L\";\n var sor = e;\n var eor = sor;\n var lastType = sor;\n\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"NSM\") {\n types[i] = lastType;\n } else {\n lastType = types[i];\n }\n }\n\n lastType = sor;\n var t;\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (t === \"EN\") {\n types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n lastType = t;\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (t === \"AL\") {\n types[i] = \"R\";\n }\n }\n\n for (i = 1; i < strLength - 1; ++i) {\n if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n types[i] = \"EN\";\n }\n\n if (types[i] === \"CS\" && (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") && types[i + 1] === types[i - 1]) {\n types[i] = types[i - 1];\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"EN\") {\n var j;\n\n for (j = i - 1; j >= 0; --j) {\n if (types[j] !== \"ET\") {\n break;\n }\n\n types[j] = \"EN\";\n }\n\n for (j = i + 1; j < strLength; ++j) {\n if (types[j] !== \"ET\") {\n break;\n }\n\n types[j] = \"EN\";\n }\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n types[i] = \"ON\";\n }\n }\n\n lastType = sor;\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (t === \"EN\") {\n types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n } else if (t === \"R\" || t === \"L\") {\n lastType = t;\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n var end = findUnequal(types, i + 1, \"ON\");\n var before = sor;\n\n if (i > 0) {\n before = types[i - 1];\n }\n\n var after = eor;\n\n if (end + 1 < strLength) {\n after = types[end + 1];\n }\n\n if (before !== \"L\") {\n before = \"R\";\n }\n\n if (after !== \"L\") {\n after = \"R\";\n }\n\n if (before === after) {\n setValues(types, i, end, before);\n }\n\n i = end - 1;\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n types[i] = e;\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (isEven(levels[i])) {\n if (t === \"R\") {\n levels[i] += 1;\n } else if (t === \"AN\" || t === \"EN\") {\n levels[i] += 2;\n }\n } else {\n if (t === \"L\" || t === \"AN\" || t === \"EN\") {\n levels[i] += 1;\n }\n }\n }\n\n var highestLevel = -1;\n var lowestOddLevel = 99;\n var level;\n\n for (i = 0, ii = levels.length; i < ii; ++i) {\n level = levels[i];\n\n if (highestLevel < level) {\n highestLevel = level;\n }\n\n if (lowestOddLevel > level && isOdd(level)) {\n lowestOddLevel = level;\n }\n }\n\n for (level = highestLevel; level >= lowestOddLevel; --level) {\n var start = -1;\n\n for (i = 0, ii = levels.length; i < ii; ++i) {\n if (levels[i] < level) {\n if (start >= 0) {\n reverseValues(chars, start, i);\n start = -1;\n }\n } else if (start < 0) {\n start = i;\n }\n }\n\n if (start >= 0) {\n reverseValues(chars, start, levels.length);\n }\n }\n\n for (i = 0, ii = chars.length; i < ii; ++i) {\n var ch = chars[i];\n\n if (ch === \"<\" || ch === \">\") {\n chars[i] = \"\";\n }\n }\n\n return createBidiText(chars.join(\"\"), isLTR);\n}\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getMetrics = void 0;\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar getMetrics = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.Courier = 600;\n t[\"Courier-Bold\"] = 600;\n t[\"Courier-BoldOblique\"] = 600;\n t[\"Courier-Oblique\"] = 600;\n t.Helvetica = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n t[\"Helvetica-Bold\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n t[\"Helvetica-BoldOblique\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n t[\"Helvetica-Oblique\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n t.Symbol = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.universal = 713;\n t.numbersign = 500;\n t.existential = 549;\n t.percent = 833;\n t.ampersand = 778;\n t.suchthat = 439;\n t.parenleft = 333;\n t.parenright = 333;\n t.asteriskmath = 500;\n t.plus = 549;\n t.comma = 250;\n t.minus = 549;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 549;\n t.equal = 549;\n t.greater = 549;\n t.question = 444;\n t.congruent = 549;\n t.Alpha = 722;\n t.Beta = 667;\n t.Chi = 722;\n t.Delta = 612;\n t.Epsilon = 611;\n t.Phi = 763;\n t.Gamma = 603;\n t.Eta = 722;\n t.Iota = 333;\n t.theta1 = 631;\n t.Kappa = 722;\n t.Lambda = 686;\n t.Mu = 889;\n t.Nu = 722;\n t.Omicron = 722;\n t.Pi = 768;\n t.Theta = 741;\n t.Rho = 556;\n t.Sigma = 592;\n t.Tau = 611;\n t.Upsilon = 690;\n t.sigma1 = 439;\n t.Omega = 768;\n t.Xi = 645;\n t.Psi = 795;\n t.Zeta = 611;\n t.bracketleft = 333;\n t.therefore = 863;\n t.bracketright = 333;\n t.perpendicular = 658;\n t.underscore = 500;\n t.radicalex = 500;\n t.alpha = 631;\n t.beta = 549;\n t.chi = 549;\n t.delta = 494;\n t.epsilon = 439;\n t.phi = 521;\n t.gamma = 411;\n t.eta = 603;\n t.iota = 329;\n t.phi1 = 603;\n t.kappa = 549;\n t.lambda = 549;\n t.mu = 576;\n t.nu = 521;\n t.omicron = 549;\n t.pi = 549;\n t.theta = 521;\n t.rho = 549;\n t.sigma = 603;\n t.tau = 439;\n t.upsilon = 576;\n t.omega1 = 713;\n t.omega = 686;\n t.xi = 493;\n t.psi = 686;\n t.zeta = 494;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.similar = 549;\n t.Euro = 750;\n t.Upsilon1 = 620;\n t.minute = 247;\n t.lessequal = 549;\n t.fraction = 167;\n t.infinity = 713;\n t.florin = 500;\n t.club = 753;\n t.diamond = 753;\n t.heart = 753;\n t.spade = 753;\n t.arrowboth = 1042;\n t.arrowleft = 987;\n t.arrowup = 603;\n t.arrowright = 987;\n t.arrowdown = 603;\n t.degree = 400;\n t.plusminus = 549;\n t.second = 411;\n t.greaterequal = 549;\n t.multiply = 549;\n t.proportional = 713;\n t.partialdiff = 494;\n t.bullet = 460;\n t.divide = 549;\n t.notequal = 549;\n t.equivalence = 549;\n t.approxequal = 549;\n t.ellipsis = 1000;\n t.arrowvertex = 603;\n t.arrowhorizex = 1000;\n t.carriagereturn = 658;\n t.aleph = 823;\n t.Ifraktur = 686;\n t.Rfraktur = 795;\n t.weierstrass = 987;\n t.circlemultiply = 768;\n t.circleplus = 768;\n t.emptyset = 823;\n t.intersection = 768;\n t.union = 768;\n t.propersuperset = 713;\n t.reflexsuperset = 713;\n t.notsubset = 713;\n t.propersubset = 713;\n t.reflexsubset = 713;\n t.element = 713;\n t.notelement = 713;\n t.angle = 768;\n t.gradient = 713;\n t.registerserif = 790;\n t.copyrightserif = 790;\n t.trademarkserif = 890;\n t.product = 823;\n t.radical = 549;\n t.dotmath = 250;\n t.logicalnot = 713;\n t.logicaland = 603;\n t.logicalor = 603;\n t.arrowdblboth = 1042;\n t.arrowdblleft = 987;\n t.arrowdblup = 603;\n t.arrowdblright = 987;\n t.arrowdbldown = 603;\n t.lozenge = 494;\n t.angleleft = 329;\n t.registersans = 790;\n t.copyrightsans = 790;\n t.trademarksans = 786;\n t.summation = 713;\n t.parenlefttp = 384;\n t.parenleftex = 384;\n t.parenleftbt = 384;\n t.bracketlefttp = 384;\n t.bracketleftex = 384;\n t.bracketleftbt = 384;\n t.bracelefttp = 494;\n t.braceleftmid = 494;\n t.braceleftbt = 494;\n t.braceex = 494;\n t.angleright = 329;\n t.integral = 274;\n t.integraltp = 686;\n t.integralex = 686;\n t.integralbt = 686;\n t.parenrighttp = 384;\n t.parenrightex = 384;\n t.parenrightbt = 384;\n t.bracketrighttp = 384;\n t.bracketrightex = 384;\n t.bracketrightbt = 384;\n t.bracerighttp = 494;\n t.bracerightmid = 494;\n t.bracerightbt = 494;\n t.apple = 790;\n });\n t[\"Times-Roman\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 408;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 564;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 564;\n t.equal = 564;\n t.greater = 564;\n t.question = 444;\n t.at = 921;\n t.A = 722;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 556;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 389;\n t.K = 722;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 556;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 722;\n t.W = 944;\n t.X = 722;\n t.Y = 722;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 469;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 444;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 333;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.asciitilde = 541;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 180;\n t.quotedblleft = 444;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 453;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 444;\n t.quotedblright = 444;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 444;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 889;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 444;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 564;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 444;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 444;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 444;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 444;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 444;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 444;\n t.Amacron = 722;\n t.rcaron = 333;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 556;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 588;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 564;\n t.uacute = 500;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 444;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 722;\n t.Iacute = 333;\n t.plusminus = 564;\n t.brokenbar = 200;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 333;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 326;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 444;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 344;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 722;\n t.zdotaccent = 444;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 500;\n t.minus = 564;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 564;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n t[\"Times-Bold\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 1000;\n t.ampersand = 833;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 930;\n t.A = 722;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 778;\n t.L = 667;\n t.M = 944;\n t.N = 722;\n t.O = 778;\n t.P = 611;\n t.Q = 778;\n t.R = 722;\n t.S = 556;\n t.T = 667;\n t.U = 722;\n t.V = 722;\n t.W = 1000;\n t.X = 722;\n t.Y = 722;\n t.Z = 667;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 581;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 556;\n t.c = 444;\n t.d = 556;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 333;\n t.k = 556;\n t.l = 278;\n t.m = 833;\n t.n = 556;\n t.o = 500;\n t.p = 556;\n t.q = 556;\n t.r = 444;\n t.s = 389;\n t.t = 333;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 394;\n t.bar = 220;\n t.braceright = 394;\n t.asciitilde = 520;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 540;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 300;\n t.Lslash = 667;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 330;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 556;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 570;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 667;\n t.Cacute = 722;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 722;\n t.rcaron = 444;\n t.ccedilla = 444;\n t.Zdotaccent = 667;\n t.Thorn = 611;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 556;\n t.dcaron = 672;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 667;\n t.partialdiff = 494;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 778;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 444;\n t.omacron = 500;\n t.Zacute = 667;\n t.Zcaron = 667;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 416;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 300;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 394;\n t.Kcommaaccent = 778;\n t.Lacute = 667;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 667;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 444;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 667;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 444;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 556;\n t.minus = 570;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 333;\n t.logicalnot = 570;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n t[\"Times-BoldItalic\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 250;\n t.exclam = 389;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 832;\n t.A = 667;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 667;\n t.F = 667;\n t.G = 722;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 667;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 889;\n t.X = 667;\n t.Y = 611;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 570;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 556;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 556;\n t.v = 444;\n t.w = 667;\n t.x = 500;\n t.y = 444;\n t.z = 389;\n t.braceleft = 348;\n t.bar = 220;\n t.braceright = 348;\n t.asciitilde = 570;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 500;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 944;\n t.ordfeminine = 266;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 300;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 611;\n t.divide = 570;\n t.Yacute = 611;\n t.Acircumflex = 667;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 667;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 608;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 444;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 722;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 366;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 576;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 382;\n t.Kcommaaccent = 667;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 500;\n t.minus = 606;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 606;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n t[\"Times-Italic\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 420;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 675;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 675;\n t.equal = 675;\n t.greater = 675;\n t.question = 500;\n t.at = 920;\n t.A = 611;\n t.B = 611;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 611;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 444;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 667;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 611;\n t.S = 500;\n t.T = 556;\n t.U = 722;\n t.V = 611;\n t.W = 833;\n t.X = 611;\n t.Y = 556;\n t.Z = 556;\n t.bracketleft = 389;\n t.backslash = 278;\n t.bracketright = 389;\n t.asciicircum = 422;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 278;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 444;\n t.l = 278;\n t.m = 722;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 444;\n t.w = 667;\n t.x = 444;\n t.y = 444;\n t.z = 389;\n t.braceleft = 400;\n t.bar = 275;\n t.braceright = 400;\n t.asciitilde = 541;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 214;\n t.quotedblleft = 556;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 523;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 556;\n t.quotedblright = 556;\n t.guillemotright = 500;\n t.ellipsis = 889;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 889;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 556;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 667;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 556;\n t.divide = 675;\n t.Yacute = 556;\n t.Acircumflex = 611;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 667;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 556;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 611;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 500;\n t.Amacron = 611;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 556;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 611;\n t.Sacute = 500;\n t.dcaron = 544;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 611;\n t.Abreve = 611;\n t.multiply = 675;\n t.uacute = 500;\n t.Tcaron = 556;\n t.partialdiff = 476;\n t.ydieresis = 444;\n t.Nacute = 667;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 667;\n t.Iacute = 333;\n t.plusminus = 675;\n t.brokenbar = 275;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 556;\n t.Zcaron = 556;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 300;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 611;\n t.Adieresis = 611;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 500;\n t.lcaron = 300;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 500;\n t.Scommaaccent = 500;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 667;\n t.otilde = 500;\n t.Rcommaaccent = 611;\n t.Lcommaaccent = 556;\n t.Atilde = 611;\n t.Aogonek = 611;\n t.Aring = 611;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 444;\n t.minus = 675;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 675;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n t.ZapfDingbats = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 278;\n t.a1 = 974;\n t.a2 = 961;\n t.a202 = 974;\n t.a3 = 980;\n t.a4 = 719;\n t.a5 = 789;\n t.a119 = 790;\n t.a118 = 791;\n t.a117 = 690;\n t.a11 = 960;\n t.a12 = 939;\n t.a13 = 549;\n t.a14 = 855;\n t.a15 = 911;\n t.a16 = 933;\n t.a105 = 911;\n t.a17 = 945;\n t.a18 = 974;\n t.a19 = 755;\n t.a20 = 846;\n t.a21 = 762;\n t.a22 = 761;\n t.a23 = 571;\n t.a24 = 677;\n t.a25 = 763;\n t.a26 = 760;\n t.a27 = 759;\n t.a28 = 754;\n t.a6 = 494;\n t.a7 = 552;\n t.a8 = 537;\n t.a9 = 577;\n t.a10 = 692;\n t.a29 = 786;\n t.a30 = 788;\n t.a31 = 788;\n t.a32 = 790;\n t.a33 = 793;\n t.a34 = 794;\n t.a35 = 816;\n t.a36 = 823;\n t.a37 = 789;\n t.a38 = 841;\n t.a39 = 823;\n t.a40 = 833;\n t.a41 = 816;\n t.a42 = 831;\n t.a43 = 923;\n t.a44 = 744;\n t.a45 = 723;\n t.a46 = 749;\n t.a47 = 790;\n t.a48 = 792;\n t.a49 = 695;\n t.a50 = 776;\n t.a51 = 768;\n t.a52 = 792;\n t.a53 = 759;\n t.a54 = 707;\n t.a55 = 708;\n t.a56 = 682;\n t.a57 = 701;\n t.a58 = 826;\n t.a59 = 815;\n t.a60 = 789;\n t.a61 = 789;\n t.a62 = 707;\n t.a63 = 687;\n t.a64 = 696;\n t.a65 = 689;\n t.a66 = 786;\n t.a67 = 787;\n t.a68 = 713;\n t.a69 = 791;\n t.a70 = 785;\n t.a71 = 791;\n t.a72 = 873;\n t.a73 = 761;\n t.a74 = 762;\n t.a203 = 762;\n t.a75 = 759;\n t.a204 = 759;\n t.a76 = 892;\n t.a77 = 892;\n t.a78 = 788;\n t.a79 = 784;\n t.a81 = 438;\n t.a82 = 138;\n t.a83 = 277;\n t.a84 = 415;\n t.a97 = 392;\n t.a98 = 392;\n t.a99 = 668;\n t.a100 = 668;\n t.a89 = 390;\n t.a90 = 390;\n t.a93 = 317;\n t.a94 = 317;\n t.a91 = 276;\n t.a92 = 276;\n t.a205 = 509;\n t.a85 = 509;\n t.a206 = 410;\n t.a86 = 410;\n t.a87 = 234;\n t.a88 = 234;\n t.a95 = 334;\n t.a96 = 334;\n t.a101 = 732;\n t.a102 = 544;\n t.a103 = 544;\n t.a104 = 910;\n t.a106 = 667;\n t.a107 = 760;\n t.a108 = 760;\n t.a112 = 776;\n t.a111 = 595;\n t.a110 = 694;\n t.a109 = 626;\n t.a120 = 788;\n t.a121 = 788;\n t.a122 = 788;\n t.a123 = 788;\n t.a124 = 788;\n t.a125 = 788;\n t.a126 = 788;\n t.a127 = 788;\n t.a128 = 788;\n t.a129 = 788;\n t.a130 = 788;\n t.a131 = 788;\n t.a132 = 788;\n t.a133 = 788;\n t.a134 = 788;\n t.a135 = 788;\n t.a136 = 788;\n t.a137 = 788;\n t.a138 = 788;\n t.a139 = 788;\n t.a140 = 788;\n t.a141 = 788;\n t.a142 = 788;\n t.a143 = 788;\n t.a144 = 788;\n t.a145 = 788;\n t.a146 = 788;\n t.a147 = 788;\n t.a148 = 788;\n t.a149 = 788;\n t.a150 = 788;\n t.a151 = 788;\n t.a152 = 788;\n t.a153 = 788;\n t.a154 = 788;\n t.a155 = 788;\n t.a156 = 788;\n t.a157 = 788;\n t.a158 = 788;\n t.a159 = 788;\n t.a160 = 894;\n t.a161 = 838;\n t.a163 = 1016;\n t.a164 = 458;\n t.a196 = 748;\n t.a165 = 924;\n t.a192 = 748;\n t.a166 = 918;\n t.a167 = 927;\n t.a168 = 928;\n t.a169 = 928;\n t.a170 = 834;\n t.a171 = 873;\n t.a172 = 828;\n t.a173 = 924;\n t.a162 = 924;\n t.a174 = 917;\n t.a175 = 930;\n t.a176 = 931;\n t.a177 = 463;\n t.a178 = 883;\n t.a179 = 836;\n t.a193 = 836;\n t.a180 = 867;\n t.a199 = 867;\n t.a181 = 696;\n t.a200 = 696;\n t.a182 = 874;\n t.a201 = 874;\n t.a183 = 760;\n t.a184 = 946;\n t.a197 = 771;\n t.a185 = 865;\n t.a194 = 771;\n t.a198 = 888;\n t.a186 = 967;\n t.a195 = 888;\n t.a187 = 831;\n t.a188 = 873;\n t.a189 = 927;\n t.a190 = 970;\n t.a191 = 918;\n });\n});\nexports.getMetrics = getMetrics;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isPDFFunction = isPDFFunction;\nexports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunctionFactory = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _ps_parser = __w_pdfjs_require__(42);\n\nclass PDFFunctionFactory {\n constructor({\n xref,\n isEvalSupported = true\n }) {\n this.xref = xref;\n this.isEvalSupported = isEvalSupported !== false;\n }\n\n create(fn) {\n return PDFFunction.parse({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fn\n });\n }\n\n createFromArray(fnObj) {\n return PDFFunction.parseArray({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fnObj\n });\n }\n\n}\n\nexports.PDFFunctionFactory = PDFFunctionFactory;\n\nfunction toNumberArray(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n\n const length = arr.length;\n\n for (let i = 0; i < length; i++) {\n if (typeof arr[i] !== \"number\") {\n const result = new Array(length);\n\n for (let j = 0; j < length; j++) {\n result[j] = +arr[j];\n }\n\n return result;\n }\n }\n\n return arr;\n}\n\nvar PDFFunction = function PDFFunctionClosure() {\n const CONSTRUCT_SAMPLED = 0;\n const CONSTRUCT_INTERPOLATED = 2;\n const CONSTRUCT_STICHED = 3;\n const CONSTRUCT_POSTSCRIPT = 4;\n return {\n getSampleArray(size, outputSize, bps, stream) {\n var i, ii;\n var length = 1;\n\n for (i = 0, ii = size.length; i < ii; i++) {\n length *= size[i];\n }\n\n length *= outputSize;\n var array = new Array(length);\n var codeSize = 0;\n var codeBuf = 0;\n var sampleMul = 1.0 / (2.0 ** bps - 1);\n var strBytes = stream.getBytes((length * bps + 7) / 8);\n var strIdx = 0;\n\n for (i = 0; i < length; i++) {\n while (codeSize < bps) {\n codeBuf <<= 8;\n codeBuf |= strBytes[strIdx++];\n codeSize += 8;\n }\n\n codeSize -= bps;\n array[i] = (codeBuf >> codeSize) * sampleMul;\n codeBuf &= (1 << codeSize) - 1;\n }\n\n return array;\n },\n\n getIR({\n xref,\n isEvalSupported,\n fn\n }) {\n var dict = fn.dict;\n\n if (!dict) {\n dict = fn;\n }\n\n var types = [this.constructSampled, null, this.constructInterpolated, this.constructStiched, this.constructPostScript];\n var typeNum = dict.get(\"FunctionType\");\n var typeFn = types[typeNum];\n\n if (!typeFn) {\n throw new _util.FormatError(\"Unknown type of function\");\n }\n\n return typeFn.call(this, {\n xref,\n isEvalSupported,\n fn,\n dict\n });\n },\n\n fromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n var type = IR[0];\n\n switch (type) {\n case CONSTRUCT_SAMPLED:\n return this.constructSampledFromIR({\n xref,\n isEvalSupported,\n IR\n });\n\n case CONSTRUCT_INTERPOLATED:\n return this.constructInterpolatedFromIR({\n xref,\n isEvalSupported,\n IR\n });\n\n case CONSTRUCT_STICHED:\n return this.constructStichedFromIR({\n xref,\n isEvalSupported,\n IR\n });\n\n default:\n return this.constructPostScriptFromIR({\n xref,\n isEvalSupported,\n IR\n });\n }\n },\n\n parse({\n xref,\n isEvalSupported,\n fn\n }) {\n const IR = this.getIR({\n xref,\n isEvalSupported,\n fn\n });\n return this.fromIR({\n xref,\n isEvalSupported,\n IR\n });\n },\n\n parseArray({\n xref,\n isEvalSupported,\n fnObj\n }) {\n if (!Array.isArray(fnObj)) {\n return this.parse({\n xref,\n isEvalSupported,\n fn: fnObj\n });\n }\n\n var fnArray = [];\n\n for (var j = 0, jj = fnObj.length; j < jj; j++) {\n fnArray.push(this.parse({\n xref,\n isEvalSupported,\n fn: xref.fetchIfRef(fnObj[j])\n }));\n }\n\n return function (src, srcOffset, dest, destOffset) {\n for (var i = 0, ii = fnArray.length; i < ii; i++) {\n fnArray[i](src, srcOffset, dest, destOffset + i);\n }\n };\n },\n\n constructSampled({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n function toMultiArray(arr) {\n var inputLength = arr.length;\n var out = [];\n var index = 0;\n\n for (var i = 0; i < inputLength; i += 2) {\n out[index] = [arr[i], arr[i + 1]];\n ++index;\n }\n\n return out;\n }\n\n var domain = toNumberArray(dict.getArray(\"Domain\"));\n var range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain || !range) {\n throw new _util.FormatError(\"No domain or range\");\n }\n\n var inputSize = domain.length / 2;\n var outputSize = range.length / 2;\n domain = toMultiArray(domain);\n range = toMultiArray(range);\n var size = toNumberArray(dict.getArray(\"Size\"));\n var bps = dict.get(\"BitsPerSample\");\n var order = dict.get(\"Order\") || 1;\n\n if (order !== 1) {\n (0, _util.info)(\"No support for cubic spline interpolation: \" + order);\n }\n\n var encode = toNumberArray(dict.getArray(\"Encode\"));\n\n if (!encode) {\n encode = [];\n\n for (var i = 0; i < inputSize; ++i) {\n encode.push([0, size[i] - 1]);\n }\n } else {\n encode = toMultiArray(encode);\n }\n\n var decode = toNumberArray(dict.getArray(\"Decode\"));\n\n if (!decode) {\n decode = range;\n } else {\n decode = toMultiArray(decode);\n }\n\n var samples = this.getSampleArray(size, outputSize, bps, fn);\n return [CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, outputSize, 2 ** bps - 1, range];\n },\n\n constructSampledFromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n function interpolate(x, xmin, xmax, ymin, ymax) {\n return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n }\n\n return function constructSampledFromIRResult(src, srcOffset, dest, destOffset) {\n var m = IR[1];\n var domain = IR[2];\n var encode = IR[3];\n var decode = IR[4];\n var samples = IR[5];\n var size = IR[6];\n var n = IR[7];\n var range = IR[9];\n var cubeVertices = 1 << m;\n var cubeN = new Float64Array(cubeVertices);\n var cubeVertex = new Uint32Array(cubeVertices);\n var i, j;\n\n for (j = 0; j < cubeVertices; j++) {\n cubeN[j] = 1;\n }\n\n var k = n,\n pos = 1;\n\n for (i = 0; i < m; ++i) {\n var domain_2i = domain[i][0];\n var domain_2i_1 = domain[i][1];\n var xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1);\n var e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]);\n var size_i = size[i];\n e = Math.min(Math.max(e, 0), size_i - 1);\n var e0 = e < size_i - 1 ? Math.floor(e) : e - 1;\n var n0 = e0 + 1 - e;\n var n1 = e - e0;\n var offset0 = e0 * k;\n var offset1 = offset0 + k;\n\n for (j = 0; j < cubeVertices; j++) {\n if (j & pos) {\n cubeN[j] *= n1;\n cubeVertex[j] += offset1;\n } else {\n cubeN[j] *= n0;\n cubeVertex[j] += offset0;\n }\n }\n\n k *= size_i;\n pos <<= 1;\n }\n\n for (j = 0; j < n; ++j) {\n var rj = 0;\n\n for (i = 0; i < cubeVertices; i++) {\n rj += samples[cubeVertex[i] + j] * cubeN[i];\n }\n\n rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n }\n };\n },\n\n constructInterpolated({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n var c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n var c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n var n = dict.get(\"N\");\n var length = c0.length;\n var diff = [];\n\n for (var i = 0; i < length; ++i) {\n diff.push(c1[i] - c0[i]);\n }\n\n return [CONSTRUCT_INTERPOLATED, c0, diff, n];\n },\n\n constructInterpolatedFromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n var c0 = IR[1];\n var diff = IR[2];\n var n = IR[3];\n var length = diff.length;\n return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) {\n var x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n\n for (var j = 0; j < length; ++j) {\n dest[destOffset + j] = c0[j] + x * diff[j];\n }\n };\n },\n\n constructStiched({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n var domain = toNumberArray(dict.getArray(\"Domain\"));\n\n if (!domain) {\n throw new _util.FormatError(\"No domain\");\n }\n\n var inputSize = domain.length / 2;\n\n if (inputSize !== 1) {\n throw new _util.FormatError(\"Bad domain for stiched function\");\n }\n\n var fnRefs = dict.get(\"Functions\");\n var fns = [];\n\n for (var i = 0, ii = fnRefs.length; i < ii; ++i) {\n fns.push(this.parse({\n xref,\n isEvalSupported,\n fn: xref.fetchIfRef(fnRefs[i])\n }));\n }\n\n var bounds = toNumberArray(dict.getArray(\"Bounds\"));\n var encode = toNumberArray(dict.getArray(\"Encode\"));\n return [CONSTRUCT_STICHED, domain, bounds, encode, fns];\n },\n\n constructStichedFromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n var domain = IR[1];\n var bounds = IR[2];\n var encode = IR[3];\n var fns = IR[4];\n var tmpBuf = new Float32Array(1);\n return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) {\n var clip = function constructStichedFromIRClip(v, min, max) {\n if (v > max) {\n v = max;\n } else if (v < min) {\n v = min;\n }\n\n return v;\n };\n\n var v = clip(src[srcOffset], domain[0], domain[1]);\n\n for (var i = 0, ii = bounds.length; i < ii; ++i) {\n if (v < bounds[i]) {\n break;\n }\n }\n\n var dmin = domain[0];\n\n if (i > 0) {\n dmin = bounds[i - 1];\n }\n\n var dmax = domain[1];\n\n if (i < bounds.length) {\n dmax = bounds[i];\n }\n\n var rmin = encode[2 * i];\n var rmax = encode[2 * i + 1];\n tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);\n fns[i](tmpBuf, 0, dest, destOffset);\n };\n },\n\n constructPostScript({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n var domain = toNumberArray(dict.getArray(\"Domain\"));\n var range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain) {\n throw new _util.FormatError(\"No domain.\");\n }\n\n if (!range) {\n throw new _util.FormatError(\"No range.\");\n }\n\n var lexer = new _ps_parser.PostScriptLexer(fn);\n var parser = new _ps_parser.PostScriptParser(lexer);\n var code = parser.parse();\n return [CONSTRUCT_POSTSCRIPT, domain, range, code];\n },\n\n constructPostScriptFromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n var domain = IR[1];\n var range = IR[2];\n var code = IR[3];\n\n if (isEvalSupported && _util.IsEvalSupportedCached.value) {\n const compiled = new PostScriptCompiler().compile(code, domain, range);\n\n if (compiled) {\n return new Function(\"src\", \"srcOffset\", \"dest\", \"destOffset\", compiled);\n }\n }\n\n (0, _util.info)(\"Unable to compile PS function\");\n var numOutputs = range.length >> 1;\n var numInputs = domain.length >> 1;\n var evaluator = new PostScriptEvaluator(code);\n var cache = Object.create(null);\n var MAX_CACHE_SIZE = 2048 * 4;\n var cache_available = MAX_CACHE_SIZE;\n var tmpBuf = new Float32Array(numInputs);\n return function constructPostScriptFromIRResult(src, srcOffset, dest, destOffset) {\n var i, value;\n var key = \"\";\n var input = tmpBuf;\n\n for (i = 0; i < numInputs; i++) {\n value = src[srcOffset + i];\n input[i] = value;\n key += value + \"_\";\n }\n\n var cachedValue = cache[key];\n\n if (cachedValue !== undefined) {\n dest.set(cachedValue, destOffset);\n return;\n }\n\n var output = new Float32Array(numOutputs);\n var stack = evaluator.execute(input);\n var stackIndex = stack.length - numOutputs;\n\n for (i = 0; i < numOutputs; i++) {\n value = stack[stackIndex + i];\n var bound = range[i * 2];\n\n if (value < bound) {\n value = bound;\n } else {\n bound = range[i * 2 + 1];\n\n if (value > bound) {\n value = bound;\n }\n }\n\n output[i] = value;\n }\n\n if (cache_available > 0) {\n cache_available--;\n cache[key] = output;\n }\n\n dest.set(output, destOffset);\n };\n }\n\n };\n}();\n\nfunction isPDFFunction(v) {\n var fnDict;\n\n if (typeof v !== \"object\") {\n return false;\n } else if ((0, _primitives.isDict)(v)) {\n fnDict = v;\n } else if ((0, _primitives.isStream)(v)) {\n fnDict = v.dict;\n } else {\n return false;\n }\n\n return fnDict.has(\"FunctionType\");\n}\n\nvar PostScriptStack = function PostScriptStackClosure() {\n var MAX_STACK_SIZE = 100;\n\n function PostScriptStack(initialStack) {\n this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0);\n }\n\n PostScriptStack.prototype = {\n push: function PostScriptStack_push(value) {\n if (this.stack.length >= MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n\n this.stack.push(value);\n },\n pop: function PostScriptStack_pop() {\n if (this.stack.length <= 0) {\n throw new Error(\"PostScript function stack underflow.\");\n }\n\n return this.stack.pop();\n },\n copy: function PostScriptStack_copy(n) {\n if (this.stack.length + n >= MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n\n var stack = this.stack;\n\n for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n stack.push(stack[i]);\n }\n },\n index: function PostScriptStack_index(n) {\n this.push(this.stack[this.stack.length - n - 1]);\n },\n roll: function PostScriptStack_roll(n, p) {\n var stack = this.stack;\n var l = stack.length - n;\n var r = stack.length - 1,\n c = l + (p - Math.floor(p / n) * n),\n i,\n j,\n t;\n\n for (i = l, j = r; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n\n for (i = l, j = c - 1; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n\n for (i = c, j = r; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n }\n };\n return PostScriptStack;\n}();\n\nvar PostScriptEvaluator = function PostScriptEvaluatorClosure() {\n function PostScriptEvaluator(operators) {\n this.operators = operators;\n }\n\n PostScriptEvaluator.prototype = {\n execute: function PostScriptEvaluator_execute(initialStack) {\n var stack = new PostScriptStack(initialStack);\n var counter = 0;\n var operators = this.operators;\n var length = operators.length;\n var operator, a, b;\n\n while (counter < length) {\n operator = operators[counter++];\n\n if (typeof operator === \"number\") {\n stack.push(operator);\n continue;\n }\n\n switch (operator) {\n case \"jz\":\n b = stack.pop();\n a = stack.pop();\n\n if (!a) {\n counter = b;\n }\n\n break;\n\n case \"j\":\n a = stack.pop();\n counter = a;\n break;\n\n case \"abs\":\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n\n case \"add\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a + b);\n break;\n\n case \"and\":\n b = stack.pop();\n a = stack.pop();\n\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a && b);\n } else {\n stack.push(a & b);\n }\n\n break;\n\n case \"atan\":\n a = stack.pop();\n stack.push(Math.atan(a));\n break;\n\n case \"bitshift\":\n b = stack.pop();\n a = stack.pop();\n\n if (a > 0) {\n stack.push(a << b);\n } else {\n stack.push(a >> b);\n }\n\n break;\n\n case \"ceiling\":\n a = stack.pop();\n stack.push(Math.ceil(a));\n break;\n\n case \"copy\":\n a = stack.pop();\n stack.copy(a);\n break;\n\n case \"cos\":\n a = stack.pop();\n stack.push(Math.cos(a));\n break;\n\n case \"cvi\":\n a = stack.pop() | 0;\n stack.push(a);\n break;\n\n case \"cvr\":\n break;\n\n case \"div\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b);\n break;\n\n case \"dup\":\n stack.copy(1);\n break;\n\n case \"eq\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a === b);\n break;\n\n case \"exch\":\n stack.roll(2, 1);\n break;\n\n case \"exp\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a ** b);\n break;\n\n case \"false\":\n stack.push(false);\n break;\n\n case \"floor\":\n a = stack.pop();\n stack.push(Math.floor(a));\n break;\n\n case \"ge\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a >= b);\n break;\n\n case \"gt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a > b);\n break;\n\n case \"idiv\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b | 0);\n break;\n\n case \"index\":\n a = stack.pop();\n stack.index(a);\n break;\n\n case \"le\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a <= b);\n break;\n\n case \"ln\":\n a = stack.pop();\n stack.push(Math.log(a));\n break;\n\n case \"log\":\n a = stack.pop();\n stack.push(Math.log(a) / Math.LN10);\n break;\n\n case \"lt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a < b);\n break;\n\n case \"mod\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a % b);\n break;\n\n case \"mul\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a * b);\n break;\n\n case \"ne\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a !== b);\n break;\n\n case \"neg\":\n a = stack.pop();\n stack.push(-a);\n break;\n\n case \"not\":\n a = stack.pop();\n\n if ((0, _util.isBool)(a)) {\n stack.push(!a);\n } else {\n stack.push(~a);\n }\n\n break;\n\n case \"or\":\n b = stack.pop();\n a = stack.pop();\n\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a || b);\n } else {\n stack.push(a | b);\n }\n\n break;\n\n case \"pop\":\n stack.pop();\n break;\n\n case \"roll\":\n b = stack.pop();\n a = stack.pop();\n stack.roll(a, b);\n break;\n\n case \"round\":\n a = stack.pop();\n stack.push(Math.round(a));\n break;\n\n case \"sin\":\n a = stack.pop();\n stack.push(Math.sin(a));\n break;\n\n case \"sqrt\":\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n\n case \"sub\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a - b);\n break;\n\n case \"true\":\n stack.push(true);\n break;\n\n case \"truncate\":\n a = stack.pop();\n a = a < 0 ? Math.ceil(a) : Math.floor(a);\n stack.push(a);\n break;\n\n case \"xor\":\n b = stack.pop();\n a = stack.pop();\n\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a !== b);\n } else {\n stack.push(a ^ b);\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Unknown operator ${operator}`);\n }\n }\n\n return stack.stack;\n }\n };\n return PostScriptEvaluator;\n}();\n\nexports.PostScriptEvaluator = PostScriptEvaluator;\n\nvar PostScriptCompiler = function PostScriptCompilerClosure() {\n function AstNode(type) {\n this.type = type;\n }\n\n AstNode.prototype.visit = function (visitor) {\n (0, _util.unreachable)(\"abstract method\");\n };\n\n function AstArgument(index, min, max) {\n AstNode.call(this, \"args\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n AstArgument.prototype = Object.create(AstNode.prototype);\n\n AstArgument.prototype.visit = function (visitor) {\n visitor.visitArgument(this);\n };\n\n function AstLiteral(number) {\n AstNode.call(this, \"literal\");\n this.number = number;\n this.min = number;\n this.max = number;\n }\n\n AstLiteral.prototype = Object.create(AstNode.prototype);\n\n AstLiteral.prototype.visit = function (visitor) {\n visitor.visitLiteral(this);\n };\n\n function AstBinaryOperation(op, arg1, arg2, min, max) {\n AstNode.call(this, \"binary\");\n this.op = op;\n this.arg1 = arg1;\n this.arg2 = arg2;\n this.min = min;\n this.max = max;\n }\n\n AstBinaryOperation.prototype = Object.create(AstNode.prototype);\n\n AstBinaryOperation.prototype.visit = function (visitor) {\n visitor.visitBinaryOperation(this);\n };\n\n function AstMin(arg, max) {\n AstNode.call(this, \"max\");\n this.arg = arg;\n this.min = arg.min;\n this.max = max;\n }\n\n AstMin.prototype = Object.create(AstNode.prototype);\n\n AstMin.prototype.visit = function (visitor) {\n visitor.visitMin(this);\n };\n\n function AstVariable(index, min, max) {\n AstNode.call(this, \"var\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n AstVariable.prototype = Object.create(AstNode.prototype);\n\n AstVariable.prototype.visit = function (visitor) {\n visitor.visitVariable(this);\n };\n\n function AstVariableDefinition(variable, arg) {\n AstNode.call(this, \"definition\");\n this.variable = variable;\n this.arg = arg;\n }\n\n AstVariableDefinition.prototype = Object.create(AstNode.prototype);\n\n AstVariableDefinition.prototype.visit = function (visitor) {\n visitor.visitVariableDefinition(this);\n };\n\n function ExpressionBuilderVisitor() {\n this.parts = [];\n }\n\n ExpressionBuilderVisitor.prototype = {\n visitArgument(arg) {\n this.parts.push(\"Math.max(\", arg.min, \", Math.min(\", arg.max, \", src[srcOffset + \", arg.index, \"]))\");\n },\n\n visitVariable(variable) {\n this.parts.push(\"v\", variable.index);\n },\n\n visitLiteral(literal) {\n this.parts.push(literal.number);\n },\n\n visitBinaryOperation(operation) {\n this.parts.push(\"(\");\n operation.arg1.visit(this);\n this.parts.push(\" \", operation.op, \" \");\n operation.arg2.visit(this);\n this.parts.push(\")\");\n },\n\n visitVariableDefinition(definition) {\n this.parts.push(\"var \");\n definition.variable.visit(this);\n this.parts.push(\" = \");\n definition.arg.visit(this);\n this.parts.push(\";\");\n },\n\n visitMin(max) {\n this.parts.push(\"Math.min(\");\n max.arg.visit(this);\n this.parts.push(\", \", max.max, \")\");\n },\n\n toString() {\n return this.parts.join(\"\");\n }\n\n };\n\n function buildAddOperation(num1, num2) {\n if (num2.type === \"literal\" && num2.number === 0) {\n return num1;\n }\n\n if (num1.type === \"literal\" && num1.number === 0) {\n return num2;\n }\n\n if (num2.type === \"literal\" && num1.type === \"literal\") {\n return new AstLiteral(num1.number + num2.number);\n }\n\n return new AstBinaryOperation(\"+\", num1, num2, num1.min + num2.min, num1.max + num2.max);\n }\n\n function buildMulOperation(num1, num2) {\n if (num2.type === \"literal\") {\n if (num2.number === 0) {\n return new AstLiteral(0);\n } else if (num2.number === 1) {\n return num1;\n } else if (num1.type === \"literal\") {\n return new AstLiteral(num1.number * num2.number);\n }\n }\n\n if (num1.type === \"literal\") {\n if (num1.number === 0) {\n return new AstLiteral(0);\n } else if (num1.number === 1) {\n return num2;\n }\n }\n\n var min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n var max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n return new AstBinaryOperation(\"*\", num1, num2, min, max);\n }\n\n function buildSubOperation(num1, num2) {\n if (num2.type === \"literal\") {\n if (num2.number === 0) {\n return num1;\n } else if (num1.type === \"literal\") {\n return new AstLiteral(num1.number - num2.number);\n }\n }\n\n if (num2.type === \"binary\" && num2.op === \"-\" && num1.type === \"literal\" && num1.number === 1 && num2.arg1.type === \"literal\" && num2.arg1.number === 1) {\n return num2.arg2;\n }\n\n return new AstBinaryOperation(\"-\", num1, num2, num1.min - num2.max, num1.max - num2.min);\n }\n\n function buildMinOperation(num1, max) {\n if (num1.min >= max) {\n return new AstLiteral(max);\n } else if (num1.max <= max) {\n return num1;\n }\n\n return new AstMin(num1, max);\n }\n\n function PostScriptCompiler() {}\n\n PostScriptCompiler.prototype = {\n compile: function PostScriptCompiler_compile(code, domain, range) {\n var stack = [];\n var instructions = [];\n var inputSize = domain.length >> 1,\n outputSize = range.length >> 1;\n var lastRegister = 0;\n var n, j;\n var num1, num2, ast1, ast2, tmpVar, item;\n\n for (let i = 0; i < inputSize; i++) {\n stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n }\n\n for (let i = 0, ii = code.length; i < ii; i++) {\n item = code[i];\n\n if (typeof item === \"number\") {\n stack.push(new AstLiteral(item));\n continue;\n }\n\n switch (item) {\n case \"add\":\n if (stack.length < 2) {\n return null;\n }\n\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildAddOperation(num1, num2));\n break;\n\n case \"cvr\":\n if (stack.length < 1) {\n return null;\n }\n\n break;\n\n case \"mul\":\n if (stack.length < 2) {\n return null;\n }\n\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildMulOperation(num1, num2));\n break;\n\n case \"sub\":\n if (stack.length < 2) {\n return null;\n }\n\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildSubOperation(num1, num2));\n break;\n\n case \"exch\":\n if (stack.length < 2) {\n return null;\n }\n\n ast1 = stack.pop();\n ast2 = stack.pop();\n stack.push(ast1, ast2);\n break;\n\n case \"pop\":\n if (stack.length < 1) {\n return null;\n }\n\n stack.pop();\n break;\n\n case \"index\":\n if (stack.length < 1) {\n return null;\n }\n\n num1 = stack.pop();\n\n if (num1.type !== \"literal\") {\n return null;\n }\n\n n = num1.number;\n\n if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n return null;\n }\n\n ast1 = stack[stack.length - n - 1];\n\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n stack.push(ast1);\n break;\n }\n\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - n - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n\n case \"dup\":\n if (stack.length < 1) {\n return null;\n }\n\n if (typeof code[i + 1] === \"number\" && code[i + 2] === \"gt\" && code[i + 3] === i + 7 && code[i + 4] === \"jz\" && code[i + 5] === \"pop\" && code[i + 6] === code[i + 1]) {\n num1 = stack.pop();\n stack.push(buildMinOperation(num1, code[i + 1]));\n i += 6;\n break;\n }\n\n ast1 = stack[stack.length - 1];\n\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n stack.push(ast1);\n break;\n }\n\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n\n case \"roll\":\n if (stack.length < 2) {\n return null;\n }\n\n num2 = stack.pop();\n num1 = stack.pop();\n\n if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n return null;\n }\n\n j = num2.number;\n n = num1.number;\n\n if (n <= 0 || !Number.isInteger(n) || !Number.isInteger(j) || stack.length < n) {\n return null;\n }\n\n j = (j % n + n) % n;\n\n if (j === 0) {\n break;\n }\n\n Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j));\n break;\n\n default:\n return null;\n }\n }\n\n if (stack.length !== outputSize) {\n return null;\n }\n\n var result = [];\n instructions.forEach(function (instruction) {\n var statementBuilder = new ExpressionBuilderVisitor();\n instruction.visit(statementBuilder);\n result.push(statementBuilder.toString());\n });\n stack.forEach(function (expr, i) {\n var statementBuilder = new ExpressionBuilderVisitor();\n expr.visit(statementBuilder);\n var min = range[i * 2],\n max = range[i * 2 + 1];\n var out = [statementBuilder.toString()];\n\n if (min > expr.min) {\n out.unshift(\"Math.max(\", min, \", \");\n out.push(\")\");\n }\n\n if (max < expr.max) {\n out.unshift(\"Math.min(\", max, \", \");\n out.push(\")\");\n }\n\n out.unshift(\"dest[destOffset + \", i, \"] = \");\n out.push(\";\");\n result.push(out.join(\"\"));\n });\n return result.join(\"\\n\");\n }\n };\n return PostScriptCompiler;\n}();\n\nexports.PostScriptCompiler = PostScriptCompiler;\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PostScriptParser = exports.PostScriptLexer = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nclass PostScriptParser {\n constructor(lexer) {\n this.lexer = lexer;\n this.operators = [];\n this.token = null;\n this.prev = null;\n }\n\n nextToken() {\n this.prev = this.token;\n this.token = this.lexer.getToken();\n }\n\n accept(type) {\n if (this.token.type === type) {\n this.nextToken();\n return true;\n }\n\n return false;\n }\n\n expect(type) {\n if (this.accept(type)) {\n return true;\n }\n\n throw new _util.FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`);\n }\n\n parse() {\n this.nextToken();\n this.expect(PostScriptTokenTypes.LBRACE);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n return this.operators;\n }\n\n parseBlock() {\n while (true) {\n if (this.accept(PostScriptTokenTypes.NUMBER)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n this.parseCondition();\n } else {\n return;\n }\n }\n }\n\n parseCondition() {\n const conditionLocation = this.operators.length;\n this.operators.push(null, null);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n\n if (this.accept(PostScriptTokenTypes.IF)) {\n this.operators[conditionLocation] = this.operators.length;\n this.operators[conditionLocation + 1] = \"jz\";\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n const jumpLocation = this.operators.length;\n this.operators.push(null, null);\n const endOfTrue = this.operators.length;\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n this.expect(PostScriptTokenTypes.IFELSE);\n this.operators[jumpLocation] = this.operators.length;\n this.operators[jumpLocation + 1] = \"j\";\n this.operators[conditionLocation] = endOfTrue;\n this.operators[conditionLocation + 1] = \"jz\";\n } else {\n throw new _util.FormatError(\"PS Function: error parsing conditional.\");\n }\n }\n\n}\n\nexports.PostScriptParser = PostScriptParser;\nconst PostScriptTokenTypes = {\n LBRACE: 0,\n RBRACE: 1,\n NUMBER: 2,\n OPERATOR: 3,\n IF: 4,\n IFELSE: 5\n};\n\nconst PostScriptToken = function PostScriptTokenClosure() {\n const opCache = Object.create(null);\n\n class PostScriptToken {\n constructor(type, value) {\n this.type = type;\n this.value = value;\n }\n\n static getOperator(op) {\n const opValue = opCache[op];\n\n if (opValue) {\n return opValue;\n }\n\n return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);\n }\n\n static get LBRACE() {\n return (0, _util.shadow)(this, \"LBRACE\", new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\"));\n }\n\n static get RBRACE() {\n return (0, _util.shadow)(this, \"RBRACE\", new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\"));\n }\n\n static get IF() {\n return (0, _util.shadow)(this, \"IF\", new PostScriptToken(PostScriptTokenTypes.IF, \"IF\"));\n }\n\n static get IFELSE() {\n return (0, _util.shadow)(this, \"IFELSE\", new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\"));\n }\n\n }\n\n return PostScriptToken;\n}();\n\nclass PostScriptLexer {\n constructor(stream) {\n this.stream = stream;\n this.nextChar();\n this.strBuf = [];\n }\n\n nextChar() {\n return this.currentChar = this.stream.getByte();\n }\n\n getToken() {\n let comment = false;\n let ch = this.currentChar;\n\n while (true) {\n if (ch < 0) {\n return _primitives.EOF;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (!(0, _core_utils.isWhiteSpace)(ch)) {\n break;\n }\n\n ch = this.nextChar();\n }\n\n switch (ch | 0) {\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n case 0x38:\n case 0x39:\n case 0x2b:\n case 0x2d:\n case 0x2e:\n return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());\n\n case 0x7b:\n this.nextChar();\n return PostScriptToken.LBRACE;\n\n case 0x7d:\n this.nextChar();\n return PostScriptToken.RBRACE;\n }\n\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5a || ch >= 0x61 && ch <= 0x7a)) {\n strBuf.push(String.fromCharCode(ch));\n }\n\n const str = strBuf.join(\"\");\n\n switch (str.toLowerCase()) {\n case \"if\":\n return PostScriptToken.IF;\n\n case \"ifelse\":\n return PostScriptToken.IFELSE;\n\n default:\n return PostScriptToken.getOperator(str);\n }\n }\n\n getNumber() {\n let ch = this.currentChar;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= 0x30 && ch <= 0x39 || ch === 0x2d || ch === 0x2e) {\n strBuf.push(String.fromCharCode(ch));\n } else {\n break;\n }\n }\n\n const value = parseFloat(strBuf.join(\"\"));\n\n if (isNaN(value)) {\n throw new _util.FormatError(`Invalid floating point number: ${value}`);\n }\n\n return value;\n }\n\n}\n\nexports.PostScriptLexer = PostScriptLexer;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n\n update(input) {\n let data, length;\n\n if ((0, _util.isString)(input)) {\n data = new Uint8Array(input.length * 2);\n length = 0;\n\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input;\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n\n k1 = 0;\n\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n\n }\n\n this.h1 = h1;\n this.h2 = h2;\n }\n\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n const hex1 = (h1 >>> 0).toString(16),\n hex2 = (h2 >>> 0).toString(16);\n return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n }\n\n}\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _jpeg_stream = __w_pdfjs_require__(18);\n\nvar _jpx = __w_pdfjs_require__(21);\n\nvar PDFImage = function PDFImageClosure() {\n function decodeAndClamp(value, addend, coefficient, max) {\n value = addend + value * coefficient;\n\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n\n return value;\n }\n\n function resizeImageMask(src, bpc, w1, h1, w2, h2) {\n var length = w2 * h2;\n let dest;\n\n if (bpc <= 8) {\n dest = new Uint8Array(length);\n } else if (bpc <= 16) {\n dest = new Uint16Array(length);\n } else {\n dest = new Uint32Array(length);\n }\n\n var xRatio = w1 / w2;\n var yRatio = h1 / h2;\n var i,\n j,\n py,\n newIndex = 0,\n oldIndex;\n var xScaled = new Uint16Array(w2);\n var w1Scanline = w1;\n\n for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex];\n }\n }\n\n return dest;\n }\n\n function PDFImage({\n xref,\n res,\n image,\n isInline = false,\n smask = null,\n mask = null,\n isMask = false,\n pdfFunctionFactory\n }) {\n this.image = image;\n var dict = image.dict;\n const filter = dict.get(\"Filter\");\n\n if ((0, _primitives.isName)(filter)) {\n switch (filter.name) {\n case \"JPXDecode\":\n var jpxImage = new _jpx.JpxImage();\n jpxImage.parseImageProperties(image.stream);\n image.stream.reset();\n image.width = jpxImage.width;\n image.height = jpxImage.height;\n image.bitsPerComponent = jpxImage.bitsPerComponent;\n image.numComps = jpxImage.componentsCount;\n break;\n\n case \"JBIG2Decode\":\n image.bitsPerComponent = 1;\n image.numComps = 1;\n break;\n }\n }\n\n let width = dict.get(\"Width\", \"W\");\n let height = dict.get(\"Height\", \"H\");\n\n if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) {\n (0, _util.warn)(\"PDFImage - using the Width/Height of the image data, \" + \"rather than the image dictionary.\");\n width = image.width;\n height = image.height;\n }\n\n if (width < 1 || height < 1) {\n throw new _util.FormatError(`Invalid image width: ${width} or height: ${height}`);\n }\n\n this.width = width;\n this.height = height;\n this.interpolate = dict.get(\"Interpolate\", \"I\") || false;\n this.imageMask = dict.get(\"ImageMask\", \"IM\") || false;\n this.matte = dict.get(\"Matte\") || false;\n var bitsPerComponent = image.bitsPerComponent;\n\n if (!bitsPerComponent) {\n bitsPerComponent = dict.get(\"BitsPerComponent\", \"BPC\");\n\n if (!bitsPerComponent) {\n if (this.imageMask) {\n bitsPerComponent = 1;\n } else {\n throw new _util.FormatError(`Bits per component missing in image: ${this.imageMask}`);\n }\n }\n }\n\n this.bpc = bitsPerComponent;\n\n if (!this.imageMask) {\n var colorSpace = dict.get(\"ColorSpace\", \"CS\");\n\n if (!colorSpace) {\n (0, _util.info)(\"JPX images (which do not require color spaces)\");\n\n switch (image.numComps) {\n case 1:\n colorSpace = _primitives.Name.get(\"DeviceGray\");\n break;\n\n case 3:\n colorSpace = _primitives.Name.get(\"DeviceRGB\");\n break;\n\n case 4:\n colorSpace = _primitives.Name.get(\"DeviceCMYK\");\n break;\n\n default:\n throw new Error(`JPX images with ${image.numComps} ` + \"color components not supported.\");\n }\n }\n\n const resources = isInline ? res : null;\n this.colorSpace = _colorspace.ColorSpace.parse(colorSpace, xref, resources, pdfFunctionFactory);\n this.numComps = this.colorSpace.numComps;\n }\n\n this.decode = dict.getArray(\"Decode\", \"D\");\n this.needsDecode = false;\n\n if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) {\n this.needsDecode = true;\n var max = (1 << bitsPerComponent) - 1;\n this.decodeCoefficients = [];\n this.decodeAddends = [];\n const isIndexed = this.colorSpace && this.colorSpace.name === \"Indexed\";\n\n for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n var dmin = this.decode[i];\n var dmax = this.decode[i + 1];\n this.decodeCoefficients[j] = isIndexed ? (dmax - dmin) / max : dmax - dmin;\n this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n }\n }\n\n if (smask) {\n this.smask = new PDFImage({\n xref,\n res,\n image: smask,\n isInline,\n pdfFunctionFactory\n });\n } else if (mask) {\n if ((0, _primitives.isStream)(mask)) {\n var maskDict = mask.dict,\n imageMask = maskDict.get(\"ImageMask\", \"IM\");\n\n if (!imageMask) {\n (0, _util.warn)(\"Ignoring /Mask in image without /ImageMask.\");\n } else {\n this.mask = new PDFImage({\n xref,\n res,\n image: mask,\n isInline,\n isMask: true,\n pdfFunctionFactory\n });\n }\n } else {\n this.mask = mask;\n }\n }\n }\n\n PDFImage.buildImage = function ({\n xref,\n res,\n image,\n isInline = false,\n pdfFunctionFactory\n }) {\n const imageData = image;\n let smaskData = null;\n let maskData = null;\n const smask = image.dict.get(\"SMask\");\n const mask = image.dict.get(\"Mask\");\n\n if (smask) {\n smaskData = smask;\n } else if (mask) {\n if ((0, _primitives.isStream)(mask) || Array.isArray(mask)) {\n maskData = mask;\n } else {\n (0, _util.warn)(\"Unsupported mask format.\");\n }\n }\n\n return Promise.resolve(new PDFImage({\n xref,\n res,\n image: imageData,\n isInline,\n smask: smaskData,\n mask: maskData,\n pdfFunctionFactory\n }));\n };\n\n PDFImage.createMask = function ({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode\n }) {\n var computedLength = (width + 7 >> 3) * height;\n var actualLength = imgArray.byteLength;\n var haveFullData = computedLength === actualLength;\n var data, i;\n\n if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n data = imgArray;\n } else if (!inverseDecode) {\n data = new Uint8ClampedArray(actualLength);\n data.set(imgArray);\n } else {\n data = new Uint8ClampedArray(computedLength);\n data.set(imgArray);\n\n for (i = actualLength; i < computedLength; i++) {\n data[i] = 0xff;\n }\n }\n\n if (inverseDecode) {\n for (i = 0; i < actualLength; i++) {\n data[i] ^= 0xff;\n }\n }\n\n return {\n data,\n width,\n height\n };\n };\n\n PDFImage.prototype = {\n get drawWidth() {\n return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0);\n },\n\n get drawHeight() {\n return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0);\n },\n\n decodeBuffer(buffer) {\n var bpc = this.bpc;\n var numComps = this.numComps;\n var decodeAddends = this.decodeAddends;\n var decodeCoefficients = this.decodeCoefficients;\n var max = (1 << bpc) - 1;\n var i, ii;\n\n if (bpc === 1) {\n for (i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = +!buffer[i];\n }\n\n return;\n }\n\n var index = 0;\n\n for (i = 0, ii = this.width * this.height; i < ii; i++) {\n for (var j = 0; j < numComps; j++) {\n buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max);\n index++;\n }\n }\n },\n\n getComponents(buffer) {\n var bpc = this.bpc;\n\n if (bpc === 8) {\n return buffer;\n }\n\n var width = this.width;\n var height = this.height;\n var numComps = this.numComps;\n var length = width * height * numComps;\n var bufferPos = 0;\n let output;\n\n if (bpc <= 8) {\n output = new Uint8Array(length);\n } else if (bpc <= 16) {\n output = new Uint16Array(length);\n } else {\n output = new Uint32Array(length);\n }\n\n var rowComps = width * numComps;\n var max = (1 << bpc) - 1;\n var i = 0,\n ii,\n buf;\n\n if (bpc === 1) {\n var mask, loop1End, loop2End;\n\n for (var j = 0; j < height; j++) {\n loop1End = i + (rowComps & ~7);\n loop2End = i + rowComps;\n\n while (i < loop1End) {\n buf = buffer[bufferPos++];\n output[i] = buf >> 7 & 1;\n output[i + 1] = buf >> 6 & 1;\n output[i + 2] = buf >> 5 & 1;\n output[i + 3] = buf >> 4 & 1;\n output[i + 4] = buf >> 3 & 1;\n output[i + 5] = buf >> 2 & 1;\n output[i + 6] = buf >> 1 & 1;\n output[i + 7] = buf & 1;\n i += 8;\n }\n\n if (i < loop2End) {\n buf = buffer[bufferPos++];\n mask = 128;\n\n while (i < loop2End) {\n output[i++] = +!!(buf & mask);\n mask >>= 1;\n }\n }\n }\n } else {\n var bits = 0;\n buf = 0;\n\n for (i = 0, ii = length; i < ii; ++i) {\n if (i % rowComps === 0) {\n buf = 0;\n bits = 0;\n }\n\n while (bits < bpc) {\n buf = buf << 8 | buffer[bufferPos++];\n bits += 8;\n }\n\n var remainingBits = bits - bpc;\n let value = buf >> remainingBits;\n\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n\n output[i] = value;\n buf = buf & (1 << remainingBits) - 1;\n bits = remainingBits;\n }\n }\n\n return output;\n },\n\n fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n var smask = this.smask;\n var mask = this.mask;\n var alphaBuf, sw, sh, i, ii, j;\n\n if (smask) {\n sw = smask.width;\n sh = smask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n smask.fillGrayBuffer(alphaBuf);\n\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n }\n } else if (mask) {\n if (mask instanceof PDFImage) {\n sw = mask.width;\n sh = mask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n mask.numComps = 1;\n mask.fillGrayBuffer(alphaBuf);\n\n for (i = 0, ii = sw * sh; i < ii; ++i) {\n alphaBuf[i] = 255 - alphaBuf[i];\n }\n\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n }\n } else if (Array.isArray(mask)) {\n alphaBuf = new Uint8ClampedArray(width * height);\n var numComps = this.numComps;\n\n for (i = 0, ii = width * height; i < ii; ++i) {\n var opacity = 0;\n var imageOffset = i * numComps;\n\n for (j = 0; j < numComps; ++j) {\n var color = image[imageOffset + j];\n var maskOffset = j * 2;\n\n if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n opacity = 255;\n break;\n }\n }\n\n alphaBuf[i] = opacity;\n }\n } else {\n throw new _util.FormatError(\"Unknown mask format.\");\n }\n }\n\n if (alphaBuf) {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = alphaBuf[i];\n }\n } else {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = 255;\n }\n }\n },\n\n undoPreblend(buffer, width, height) {\n var matte = this.smask && this.smask.matte;\n\n if (!matte) {\n return;\n }\n\n var matteRgb = this.colorSpace.getRgb(matte, 0);\n var matteR = matteRgb[0];\n var matteG = matteRgb[1];\n var matteB = matteRgb[2];\n var length = width * height * 4;\n\n for (var i = 0; i < length; i += 4) {\n var alpha = buffer[i + 3];\n\n if (alpha === 0) {\n buffer[i] = 255;\n buffer[i + 1] = 255;\n buffer[i + 2] = 255;\n continue;\n }\n\n var k = 255 / alpha;\n buffer[i] = (buffer[i] - matteR) * k + matteR;\n buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n }\n },\n\n createImageData(forceRGBA = false) {\n var drawWidth = this.drawWidth;\n var drawHeight = this.drawHeight;\n var imgData = {\n width: drawWidth,\n height: drawHeight,\n kind: 0,\n data: null\n };\n var numComps = this.numComps;\n var originalWidth = this.width;\n var originalHeight = this.height;\n var bpc = this.bpc;\n var rowBytes = originalWidth * numComps * bpc + 7 >> 3;\n var imgArray;\n\n if (!forceRGBA) {\n var kind;\n\n if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n kind = _util.ImageKind.GRAYSCALE_1BPP;\n } else if (this.colorSpace.name === \"DeviceRGB\" && bpc === 8 && !this.needsDecode) {\n kind = _util.ImageKind.RGB_24BPP;\n }\n\n if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) {\n imgData.kind = kind;\n imgArray = this.getImageBytes(originalHeight * rowBytes);\n\n if (this.image instanceof _stream.DecodeStream) {\n imgData.data = imgArray;\n } else {\n var newArray = new Uint8ClampedArray(imgArray.length);\n newArray.set(imgArray);\n imgData.data = newArray;\n }\n\n if (this.needsDecode) {\n (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, \"PDFImage.createImageData: The image must be grayscale.\");\n var buffer = imgData.data;\n\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] ^= 0xff;\n }\n }\n\n return imgData;\n }\n\n if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) {\n let imageLength = originalHeight * rowBytes;\n\n switch (this.colorSpace.name) {\n case \"DeviceGray\":\n imageLength *= 3;\n\n case \"DeviceRGB\":\n case \"DeviceCMYK\":\n imgData.kind = _util.ImageKind.RGB_24BPP;\n imgData.data = this.getImageBytes(imageLength, drawWidth, drawHeight, true);\n return imgData;\n }\n }\n }\n\n imgArray = this.getImageBytes(originalHeight * rowBytes);\n var actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight;\n var comps = this.getComponents(imgArray);\n var alpha01, maybeUndoPreblend;\n\n if (!forceRGBA && !this.smask && !this.mask) {\n imgData.kind = _util.ImageKind.RGB_24BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n alpha01 = 0;\n maybeUndoPreblend = false;\n } else {\n imgData.kind = _util.ImageKind.RGBA_32BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n alpha01 = 1;\n maybeUndoPreblend = true;\n this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, comps);\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n\n this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01);\n\n if (maybeUndoPreblend) {\n this.undoPreblend(imgData.data, drawWidth, actualHeight);\n }\n\n return imgData;\n },\n\n fillGrayBuffer(buffer) {\n var numComps = this.numComps;\n\n if (numComps !== 1) {\n throw new _util.FormatError(`Reading gray scale from a color image: ${numComps}`);\n }\n\n var width = this.width;\n var height = this.height;\n var bpc = this.bpc;\n var rowBytes = width * numComps * bpc + 7 >> 3;\n var imgArray = this.getImageBytes(height * rowBytes);\n var comps = this.getComponents(imgArray);\n var i, length;\n\n if (bpc === 1) {\n length = width * height;\n\n if (this.needsDecode) {\n for (i = 0; i < length; ++i) {\n buffer[i] = comps[i] - 1 & 255;\n }\n } else {\n for (i = 0; i < length; ++i) {\n buffer[i] = -comps[i] & 255;\n }\n }\n\n return;\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n\n length = width * height;\n var scale = 255 / ((1 << bpc) - 1);\n\n for (i = 0; i < length; ++i) {\n buffer[i] = scale * comps[i];\n }\n },\n\n getImageBytes(length, drawWidth, drawHeight, forceRGB = false) {\n this.image.reset();\n this.image.drawWidth = drawWidth || this.width;\n this.image.drawHeight = drawHeight || this.height;\n this.image.forceRGB = !!forceRGB;\n return this.image.getBytes(length, true);\n }\n\n };\n return PDFImage;\n}();\n\nexports.PDFImage = PDFImage;\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\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 (typeof reason !== \"object\" || reason === null) {\n return reason;\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.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\n if (data.targetName !== this.sourceName) {\n return;\n }\n\n if (data.stream) {\n this._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\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\n return;\n }\n\n const action = this.actionHandler[data.action];\n\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\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(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\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 return;\n }\n\n if (data.streamId) {\n this._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n const ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n\n ah[actionName] = handler;\n }\n\n send(actionName, data, transfers) {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\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 return new ReadableStream({\n start: controller => {\n const startCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n\n this._postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = (0, _util.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 return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = (0, _util.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 cancelCapability.promise;\n }\n }, queueingStrategy);\n }\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 const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n self._postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\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 (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\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: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n\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(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].pullCall.resolve();\n } else {\n this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\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\n if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[streamId].sinkCapability.resolve();\n }\n\n this.streamSinks[streamId].desiredSize = data.desiredSize;\n const {\n onPull\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onPull && onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(this.streamControllers[streamId], \"enqueue should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(this.streamControllers[streamId], \"close should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].isClosed = true;\n this.streamControllers[streamId].controller.close();\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(this.streamControllers[streamId], \"error should have stream controller\");\n this.streamControllers[streamId].controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].cancelCall.resolve();\n } else {\n this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!this.streamSinks[streamId]) {\n break;\n }\n\n const {\n onCancel\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onCancel && onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[streamId].isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n async _deleteStreamController(streamId) {\n await Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) {\n return capability && capability.promise;\n }));\n delete this.streamControllers[streamId];\n }\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}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFWorkerStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass PDFWorkerStream {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFWorkerStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFWorkerStream = PDFWorkerStream;\n\nclass PDFWorkerStreamReader {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n this._contentLength = null;\n this._isRangeSupported = false;\n this._isStreamingSupported = false;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n\n this._reader = readableStream.getReader();\n this._headersReady = this._msgHandler.sendWithPromise(\"ReaderHeadersReady\").then(data => {\n this._isStreamingSupported = data.isStreamingSupported;\n this._isRangeSupported = data.isRangeSupported;\n this._contentLength = data.contentLength;\n });\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n async read() {\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n return {\n value: value.buffer,\n done: false\n };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n\n}\n\nclass PDFWorkerStreamRangeReader {\n constructor(begin, end, msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetRangeReader\", {\n begin,\n end\n });\n\n this._reader = readableStream.getReader();\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n return {\n value: value.buffer,\n done: false\n };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n\n}\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.worker.js.map","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MikepadLoader.vue?vue&type=style&index=0&id=eed01cc0&prod&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDFJSViewer.vue?vue&type=style&index=0&id=d38073b6&prod&lang=css&\"","export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!./pdfvuer.css?vue&type=style&index=1&prod&lang=css&\"","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(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\"] = root.pdfjsLib = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__w_pdfjs_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__w_pdfjs_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__w_pdfjs_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__w_pdfjs_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__w_pdfjs_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__w_pdfjs_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__w_pdfjs_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"addLinkAttributes\", {\n enumerable: true,\n get: function () {\n return _display_utils.addLinkAttributes;\n }\n});\nObject.defineProperty(exports, \"getFilenameFromUrl\", {\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n});\nObject.defineProperty(exports, \"LinkTarget\", {\n enumerable: true,\n get: function () {\n return _display_utils.LinkTarget;\n }\n});\nObject.defineProperty(exports, \"loadScript\", {\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n});\nObject.defineProperty(exports, \"PDFDateString\", {\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n});\nObject.defineProperty(exports, \"RenderingCancelledException\", {\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n});\nObject.defineProperty(exports, \"build\", {\n enumerable: true,\n get: function () {\n return _api.build;\n }\n});\nObject.defineProperty(exports, \"getDocument\", {\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n});\nObject.defineProperty(exports, \"LoopbackPort\", {\n enumerable: true,\n get: function () {\n return _api.LoopbackPort;\n }\n});\nObject.defineProperty(exports, \"PDFDataRangeTransport\", {\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n});\nObject.defineProperty(exports, \"PDFWorker\", {\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _api.version;\n }\n});\nObject.defineProperty(exports, \"CMapCompressionType\", {\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n});\nObject.defineProperty(exports, \"createObjectURL\", {\n enumerable: true,\n get: function () {\n return _util.createObjectURL;\n }\n});\nObject.defineProperty(exports, \"createPromiseCapability\", {\n enumerable: true,\n get: function () {\n return _util.createPromiseCapability;\n }\n});\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", {\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n});\nObject.defineProperty(exports, \"InvalidPDFException\", {\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n});\nObject.defineProperty(exports, \"MissingPDFException\", {\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n});\nObject.defineProperty(exports, \"OPS\", {\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n});\nObject.defineProperty(exports, \"PasswordResponses\", {\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n});\nObject.defineProperty(exports, \"PermissionFlag\", {\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n});\nObject.defineProperty(exports, \"removeNullCharacters\", {\n enumerable: true,\n get: function () {\n return _util.removeNullCharacters;\n }\n});\nObject.defineProperty(exports, \"shadow\", {\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n});\nObject.defineProperty(exports, \"UnexpectedResponseException\", {\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n});\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", {\n enumerable: true,\n get: function () {\n return _util.UNSUPPORTED_FEATURES;\n }\n});\nObject.defineProperty(exports, \"Util\", {\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n});\nObject.defineProperty(exports, \"VerbosityLevel\", {\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n});\nObject.defineProperty(exports, \"AnnotationLayer\", {\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n});\nObject.defineProperty(exports, \"apiCompatibilityParams\", {\n enumerable: true,\n get: function () {\n return _api_compatibility.apiCompatibilityParams;\n }\n});\nObject.defineProperty(exports, \"GlobalWorkerOptions\", {\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n});\nObject.defineProperty(exports, \"renderTextLayer\", {\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n});\nObject.defineProperty(exports, \"SVGGraphics\", {\n enumerable: true,\n get: function () {\n return _svg.SVGGraphics;\n }\n});\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _api = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _annotation_layer = __w_pdfjs_require__(16);\n\nvar _api_compatibility = __w_pdfjs_require__(7);\n\nvar _worker_options = __w_pdfjs_require__(10);\n\nvar _text_layer = __w_pdfjs_require__(17);\n\nvar _svg = __w_pdfjs_require__(18);\n\nconst pdfjsVersion = '2.5.207';\nconst pdfjsBuild = '0974d605';\n{\n const {\n isNodeJS\n } = __w_pdfjs_require__(4);\n\n if (isNodeJS) {\n const PDFNodeStream = __w_pdfjs_require__(19).PDFNodeStream;\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const PDFNetworkStream = __w_pdfjs_require__(22).PDFNetworkStream;\n\n let PDFFetchStream;\n\n if ((0, _display_utils.isFetchSupported)()) {\n PDFFetchStream = __w_pdfjs_require__(23).PDFFetchStream;\n }\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n if (PDFFetchStream && (0, _display_utils.isValidFetchUrl)(params.url)) {\n return new PDFFetchStream(params);\n }\n\n return new PDFNetworkStream(params);\n });\n }\n}\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addLinkAttributes = addLinkAttributes;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.isFetchSupported = isFetchSupported;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\nexports.deprecated = deprecated;\nexports.PDFDateString = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nexports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass DOMCanvasFactory {\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const canvas = 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 reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\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\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nclass DOMCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = false\n }) {\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n\n if (isFetchSupported() && isValidFetchUrl(url, document.baseURI)) {\n return fetch(url).then(async response => {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n\n let cMapData;\n\n if (this.isCompressed) {\n cMapData = new Uint8Array(await response.arrayBuffer());\n } else {\n cMapData = (0, _util.stringToBytes)(await response.text());\n }\n\n return {\n cMapData,\n compressionType\n };\n }).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}` + `CMap at: ${url}`);\n });\n }\n\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\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n let cMapData;\n\n if (this.isCompressed && request.response) {\n cMapData = new Uint8Array(request.response);\n } else if (!this.isCompressed && request.responseText) {\n cMapData = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (cMapData) {\n resolve({\n cMapData,\n compressionType\n });\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n }).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}` + `CMap at: ${url}`);\n });\n }\n\n}\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nclass DOMSVGFactory {\n create(width, height) {\n (0, _util.assert)(width > 0 && height > 0, \"Invalid SVG dimensions\");\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 return svg;\n }\n\n createElement(type) {\n (0, _util.assert)(typeof type === \"string\", \"Invalid SVG element type\");\n return document.createElementNS(SVG_NS, type);\n }\n\n}\n\nexports.DOMSVGFactory = DOMSVGFactory;\n\nclass PageViewport {\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 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\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n\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\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\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 convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n\n}\n\nexports.PageViewport = PageViewport;\n\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, type) {\n super(msg);\n this.type = type;\n }\n\n}\n\nexports.RenderingCancelledException = RenderingCancelledException;\nconst LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nexports.LinkTarget = LinkTarget;\n\nfunction addLinkAttributes(link, {\n url,\n target,\n rel,\n enabled = true\n} = {}) {\n (0, _util.assert)(url && typeof url === \"string\", 'addLinkAttributes: A valid \"url\" parameter must provided.');\n const urlNullRemoved = (0, _util.removeNullCharacters)(url);\n\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${urlNullRemoved}`;\n\n link.onclick = () => {\n return false;\n };\n }\n\n let targetStr = \"\";\n\n switch (target) {\n case LinkTarget.NONE:\n break;\n\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n\n link.target = targetStr;\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\nfunction getFilenameFromUrl(url) {\n const anchor = url.indexOf(\"#\");\n const query = url.indexOf(\"?\");\n const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\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 (0, _util.warn)(`Timer is already running for ${name}`);\n }\n\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n\n toString() {\n const outBuf = [];\n let longest = 0;\n\n for (const time of this.times) {\n const name = time.name;\n\n if (name.length > longest) {\n longest = name.length;\n }\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\n return outBuf.join(\"\");\n }\n\n}\n\nexports.StatTimer = StatTimer;\n\nfunction isFetchSupported() {\n return typeof fetch !== \"undefined\" && typeof Response !== \"undefined\" && \"body\" in Response.prototype && typeof ReadableStream !== \"undefined\";\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false;\n }\n}\n\nfunction loadScript(src) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = resolve;\n\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || !(0, _util.isString)(input)) {\n return null;\n }\n\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n }\n\n const matches = pdfDateStringRegex.exec(input);\n\n if (!matches) {\n return null;\n }\n\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n\n}\n\nexports.PDFDateString = PDFDateString;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isBool = isBool;\nexports.isEmptyObj = isEmptyObj;\nexports.isNum = isNum;\nexports.isString = isString;\nexports.isSameOrigin = isSameOrigin;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.removeNullCharacters = removeNullCharacters;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nexports.unreachable = unreachable;\nexports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0;\n\n__w_pdfjs_require__(3);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\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};\nexports.PermissionFlag = PermissionFlag;\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};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\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};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\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};\nexports.AnnotationFlag = AnnotationFlag;\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};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\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\"\n};\nexports.StreamType = StreamType;\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};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n 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};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\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};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\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\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\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\nfunction isSameOrigin(baseUrl, otherUrl) {\n let base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n\n try {\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\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\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = this.constructor.name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg);\n this.code = code;\n }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg);\n this.details = details;\n }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg);\n this.status = status;\n }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {}\n\nexports.AbortException = AbortException;\nconst NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n if (typeof str !== \"string\") {\n warn(\"The argument for removeNullCharacters must be a string.\");\n return str;\n }\n\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined, \"Invalid argument for bytesToString\");\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n const strBuf = [];\n\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\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\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n return arr.byteLength;\n}\n\nfunction arraysToBytes(arr) {\n const length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n let resultLength = 0;\n\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n let pos = 0;\n const data = new Uint8Array(resultLength);\n\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nconst IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n }\n\n};\nexports.IsLittleEndianCached = IsLittleEndianCached;\n\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\n\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n }\n\n};\nexports.IsEvalSupportedCached = IsEvalSupportedCached;\nconst rgbBuf = [\"rgb(\", 0, \",\", 0, \",\", 0, \")\"];\n\nclass Util {\n static makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join(\"\");\n }\n\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n\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 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 [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n\n static apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n }\n\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\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 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 return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n static normalizeRect(rect) {\n const r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n\n static intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\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 rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\n }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];\n\nfunction stringToPDFString(str) {\n const length = str.length,\n strBuf = [];\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i)));\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\n return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n for (const key in obj) {\n return false;\n }\n\n return true;\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\n return arr1.every(function (element, index) {\n return element === arr2[index];\n });\n}\n\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n }\n\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nconst createObjectURL = function createObjectURLClosure() {\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], {\n type: contentType\n });\n return URL.createObjectURL(blob);\n }\n\n let buffer = `data:${contentType};base64,`;\n\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\n return buffer;\n };\n}();\n\nexports.createObjectURL = createObjectURL;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _is_node = __w_pdfjs_require__(4);\n\n;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !process.versions.electron;\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _font_loader = __w_pdfjs_require__(6);\n\nvar _api_compatibility = __w_pdfjs_require__(7);\n\nvar _canvas = __w_pdfjs_require__(8);\n\nvar _worker_options = __w_pdfjs_require__(10);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(11);\n\nvar _metadata = __w_pdfjs_require__(12);\n\nvar _transport_stream = __w_pdfjs_require__(14);\n\nvar _webgl = __w_pdfjs_require__(15);\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nlet createPDFNetworkStream;\n\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n let source;\n\n if (typeof src === \"string\") {\n source = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n source = {\n range: src\n };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, \" + \"need either Uint8Array, string or a parameter object\");\n }\n\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n\n source = src;\n }\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 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 const pdfBytes = source[key];\n\n if (typeof pdfBytes === \"string\") {\n params[key] = (0, _util.stringToBytes)(pdfBytes);\n } else if (typeof pdfBytes === \"object\" && pdfBytes !== null && !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if ((0, _util.isArrayBuffer)(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error(\"Invalid PDF binary data: either typed array, \" + \"string or array-like object is expected in the \" + \"data property.\");\n }\n\n continue;\n }\n\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory;\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\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n const docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId);\n\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\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\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n const transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\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\n return worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n docId,\n apiVersion: '2.5.207',\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 }).then(function (workerId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n return workerId;\n });\n}\n\nconst PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {\n let nextDocumentId = 0;\n\n class PDFDocumentLoadingTask {\n constructor() {\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = \"d\" + nextDocumentId++;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n destroy() {\n this.destroyed = true;\n const transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n\n if (this._worker) {\n this._worker.destroy();\n\n this._worker = null;\n }\n });\n }\n\n }\n\n return PDFDocumentLoadingTask;\n}();\n\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.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 (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n\n}\n\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\n\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n get fingerprint() {\n return this._pdfInfo.fingerprint;\n }\n\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n getOpenActionDestination() {\n (0, _display_utils.deprecated)(\"getOpenActionDestination, use getOpenAction instead.\");\n return this.getOpenAction().then(function (openAction) {\n return openAction && openAction.dest ? openAction.dest : null;\n });\n }\n\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n getOutline() {\n return this._transport.getOutline();\n }\n\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n getData() {\n return this._transport.getData();\n }\n\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n getStats() {\n return this._transport.getStats();\n }\n\n cleanup() {\n return this._transport.startCleanup();\n }\n\n destroy() {\n return this.loadingTask.destroy();\n }\n\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n}\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n get ref() {\n return this._pageInfo.ref;\n }\n\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n get view() {\n return this._pageInfo.view;\n }\n\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n getAnnotations({\n intent = null\n } = {}) {\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent);\n this.annotationsIntent = intent;\n }\n\n return this.annotationsPromise;\n }\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 }) {\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const renderingIntent = intent === \"print\" ? \"print\" : \"display\";\n this.pendingCleanup = false;\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n const intentState = this.intentStates[renderingIntent];\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();\n const webGLContext = new _webgl.WebGLContext({\n enable: enableWebGL\n });\n\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.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\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true\n });\n }\n\n const complete = error => {\n const i = intentState.renderTasks.indexOf(internalRenderTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n if (this.cleanupAfterRender || renderingIntent === \"print\") {\n this.pendingCleanup = true;\n }\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\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\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\n intentState.renderTasks.push(internalRenderTask);\n const renderTask = internalRenderTask.task;\n intentState.displayReadyCapability.promise.then(transparency => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n\n getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n const i = intentState.renderTasks.indexOf(opListTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n const renderingIntent = \"oplist\";\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n const intentState = this.intentStates[renderingIntent];\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.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\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent\n });\n }\n\n return intentState.opListReadCapability.promise;\n }\n\n streamTextContent({\n normalizeWhitespace = false,\n disableCombineTextItems = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n\n size(textContent) {\n return textContent.items.length;\n }\n\n });\n }\n\n getTextContent(params = {}) {\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\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 _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this._pageIndex] = null;\n const waitOn = [];\n Object.keys(this.intentStates).forEach(intent => {\n const intentState = this.intentStates[intent];\n\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intent === \"oplist\") {\n return;\n }\n\n intentState.renderTasks.forEach(function (renderTask) {\n const renderCompleted = renderTask.capability.promise.catch(function () {});\n waitOn.push(renderCompleted);\n renderTask.cancel();\n });\n });\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup || Object.keys(this.intentStates).some(intent => {\n const intentState = this.intentStates[intent];\n return intentState.renderTasks.length !== 0 || !intentState.operatorList.lastChunk;\n })) {\n return false;\n }\n\n Object.keys(this.intentStates).forEach(intent => {\n delete this.intentStates[intent];\n });\n this.objs.clear();\n this.annotationsPromise = null;\n\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n\n this.pendingCleanup = false;\n return true;\n }\n\n _startRenderPage(transparency, intent) {\n const intentState = this.intentStates[intent];\n\n if (!intentState) {\n return;\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\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 _pumpOperatorList(args) {\n (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected \"intent\" argument.');\n\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", args);\n\n const reader = readableStream.getReader();\n const intentState = this.intentStates[args.intent];\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n\n if (this._transport.destroyed) {\n return;\n }\n\n this._renderPageChunk(value, intentState);\n\n pump();\n }, reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\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 _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n (0, _util.assert)(reason instanceof Error || typeof reason === \"object\" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected \"reason\" argument.');\n\n if (!intentState.streamReader) {\n return;\n }\n\n if (!force) {\n if (intentState.renderTasks.length !== 0) {\n return;\n }\n\n if (reason instanceof _display_utils.RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n\n intentState.streamReader.cancel(new _util.AbortException(reason && reason.message));\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n Object.keys(this.intentStates).some(intent => {\n if (this.intentStates[intent] === intentState) {\n delete this.intentStates[intent];\n return true;\n }\n\n return false;\n });\n this.cleanup();\n }\n\n get stats() {\n return this._stats;\n }\n\n}\n\nexports.PDFPageProxy = PDFPageProxy;\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 if (typeof value !== \"object\" || value === null) {\n return value;\n }\n\n if (cloned.has(value)) {\n return cloned.get(value);\n }\n\n let buffer, result;\n\n if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {\n const transferable = transfers && transfers.includes(buffer);\n\n if (transferable) {\n result = new value.constructor(buffer, value.byteOffset, value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n\n cloned.set(value, result);\n return result;\n }\n\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result);\n\n for (const i in value) {\n let desc,\n p = value;\n\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n\n if (typeof desc.value === \"undefined\") {\n continue;\n }\n\n if (typeof desc.value === \"function\") {\n if (value.hasOwnProperty && value.hasOwnProperty(i)) {\n throw new Error(`LoopbackPort.postMessage - cannot clone: ${value[i]}`);\n }\n\n continue;\n }\n\n result[i] = cloneValue(desc.value);\n }\n\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(listener => {\n listener.call(this, {\n data: obj\n });\n });\n\n return;\n }\n\n const cloned = new WeakMap();\n const e = {\n data: cloneValue(obj)\n };\n\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\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n\n}\n\nexports.LoopbackPort = LoopbackPort;\n\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 (_is_node.isNodeJS && typeof require === \"function\") {\n isWorkerDisabled = true;\n fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\" && \"currentScript\" in document) {\n const pdfjsFilePath = document.currentScript && document.currentScript.src;\n\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n\n function getWorkerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (typeof fallbackWorkerSrc !== \"undefined\") {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n return fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n let mainWorkerMessageHandler;\n\n try {\n mainWorkerMessageHandler = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler;\n } catch (ex) {}\n\n return mainWorkerMessageHandler || null;\n }\n\n function setupFakeWorkerGlobal() {\n if (fakeWorkerCapability) {\n return fakeWorkerCapability.promise;\n }\n\n fakeWorkerCapability = (0, _util.createPromiseCapability)();\n\n const loader = async function () {\n const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(getWorkerSrc());\n return worker.WorkerMessageHandler;\n }\n\n await (0, _display_utils.loadScript)(getWorkerSrc());\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n\n loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);\n return fakeWorkerCapability.promise;\n }\n\n function createCDNWrapper(url) {\n const wrapper = \"importScripts('\" + url + \"');\";\n return URL.createObjectURL(new Blob([wrapper]));\n }\n\n class PDFWorker {\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.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 this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n pdfWorkerPorts.set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\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 _message_handler.MessageHandler(\"main\", \"worker\", port);\n\n this._messageHandler.on(\"ready\", function () {});\n\n this._readyCapability.resolve();\n }\n\n _initialize() {\n if (typeof Worker !== \"undefined\" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {\n let workerSrc = getWorkerSrc();\n\n try {\n if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n if (!data.supportTransfers) {\n this.postMessageTransfers = false;\n }\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);\n\n try {\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n } catch (ex) {\n (0, _util.warn)(\"Cannot use postMessage transfers.\");\n testObj[0] = 0;\n messageHandler.send(\"test\", testObj);\n }\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n isWorkerDisabled = true;\n }\n\n setupFakeWorkerGlobal().then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n\n return;\n }\n\n const port = new LoopbackPort();\n this._port = port;\n const id = \"fake\" + nextFakeWorkerId++;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n\n destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n pdfWorkerPorts.delete(this._port);\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n\n static fromPort(params) {\n if (!params || !params.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n }\n\n static getWorkerSrc() {\n return getWorkerSrc();\n }\n\n }\n\n return PDFWorker;\n}();\n\nexports.PDFWorker = PDFWorker;\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 _font_loader.FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this)\n });\n this._params = params;\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n }\n\n const waitOn = [];\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 const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.fontLoader.clear();\n\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = (0, _util.createPromiseCapability)();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(this._lastProgress);\n }\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 return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n }\n\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n this._passwordCapability.resolve({\n password\n });\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(new _util.PasswordException(exception.message, exception.code));\n }\n\n return this._passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.length,\n total: data.length\n });\n }\n\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n\n const page = this.pageCache[data.pageIndex];\n\n page._startRenderPage(data.transparency, data.intent);\n });\n messageHandler.on(\"commonobj\", data => {\n if (this.destroyed) {\n return;\n }\n\n const [id, type, exportedData] = data;\n\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n const params = this._params;\n\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n\n if (params.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n }\n\n };\n }\n\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n\n this.commonObjs.resolve(id, font);\n });\n break;\n\n case \"FontPath\":\n case \"FontType3Res\":\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", data => {\n if (this.destroyed) {\n return undefined;\n }\n\n const [id, pageIndex, type, imageData] = data;\n const pageProxy = this.pageCache[pageIndex];\n\n if (pageProxy.objs.has(id)) {\n return undefined;\n }\n\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if (imageData && \"data\" in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n\n break;\n\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n\n return undefined;\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total\n });\n }\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"FetchBuiltInCMap\", (data, sink) => {\n if (this.destroyed) {\n sink.error(new Error(\"Worker was destroyed\"));\n return;\n }\n\n let fetched = false;\n\n sink.onPull = () => {\n if (fetched) {\n sink.close();\n return;\n }\n\n fetched = true;\n this.CMapReaderFactory.fetch(data).then(function (builtInCMap) {\n sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);\n }).catch(function (reason) {\n sink.error(reason);\n });\n };\n });\n }\n\n _onUnsupportedFeature({\n featureId\n }) {\n if (this.destroyed) {\n return;\n }\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 (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request\"));\n }\n\n const pageIndex = pageNumber - 1;\n\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\n }\n\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);\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.sendWithPromise(\"GetPageIndex\", {\n ref\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 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\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 getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n\n getMetadata() {\n return this.messageHandler.sendWithPromise(\"GetMetadata\", null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader ? this._fullReader.filename : null\n };\n });\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\n if (page) {\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${i + 1} is currently rendering.`);\n }\n }\n }\n\n this.commonObjs.clear();\n this.fontLoader.clear();\n });\n }\n\n get loadingParams() {\n const params = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n disableFontFace: params.disableFontFace\n });\n }\n\n}\n\nclass PDFObjects {\n constructor() {\n this._objs = Object.create(null);\n }\n\n _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n\n return this._objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null,\n resolved: false\n };\n }\n\n get(objId, callback = null) {\n if (callback) {\n this._ensureObj(objId).capability.promise.then(callback);\n\n return null;\n }\n\n const obj = this._objs[objId];\n\n if (!obj || !obj.resolved) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n\n return obj.data;\n }\n\n has(objId) {\n const obj = this._objs[objId];\n return obj ? obj.resolved : false;\n }\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\nclass RenderTask {\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n\n get promise() {\n return this._internalRenderTask.capability.promise;\n }\n\n cancel() {\n this._internalRenderTask.cancel();\n }\n\n}\n\nconst InternalRenderTask = function InternalRenderTaskClosure() {\n const canvasInRendering = new WeakSet();\n\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 this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n initializeGraphics(transparency = false) {\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (canvasInRendering.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n\n canvasInRendering.add(this._canvas);\n }\n\n if (this._pdfBug && globalThis.StepperManager && 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\n const {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel(error = null) {\n this.running = false;\n this.cancelled = true;\n\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, \"canvas\"));\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\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\n this._continue();\n }\n\n _continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\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\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n\n this.callback();\n }\n }\n }\n\n }\n\n return InternalRenderTask;\n}();\n\nconst version = '2.5.207';\nexports.version = version;\nconst build = '0974d605';\nexports.build = build;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontLoader = exports.FontFaceObject = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass BaseFontLoader {\n constructor({\n docId,\n onUnsupportedFeature\n }) {\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n document.documentElement.getElementsByTagName(\"head\")[0].appendChild(styleElement);\n }\n\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n this.nativeFontFaces.forEach(function (nativeFontFace) {\n document.fonts.delete(nativeFontFace);\n });\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n\n async bind(font) {\n if (font.attached || font.missingFile) {\n return;\n }\n\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative\n });\n\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n\n return;\n }\n\n const rule = font.createFontFaceRule();\n\n if (rule) {\n this.insertRule(rule);\n\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n\n this._prepareFontLoadEvent([rule], [font], request);\n });\n }\n }\n\n _queueLoadingCallback(callback) {\n (0, _util.unreachable)(\"Abstract method `_queueLoadingCallback`.\");\n }\n\n get isFontLoadingAPISupported() {\n const supported = typeof document !== \"undefined\" && !!document.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", supported);\n }\n\n get isSyncFontLoadingSupported() {\n (0, _util.unreachable)(\"Abstract method `isSyncFontLoadingSupported`.\");\n }\n\n get _loadTestFont() {\n (0, _util.unreachable)(\"Abstract method `_loadTestFont`.\");\n }\n\n _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)(\"Abstract method `_prepareFontLoadEvent`.\");\n }\n\n}\n\nlet FontLoader;\nexports.FontLoader = FontLoader;\n{\n exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader {\n constructor(docId) {\n super(docId);\n this.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n this.loadTestFontId = 0;\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n\n if (typeof navigator === \"undefined\") {\n supported = true;\n } else {\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if (m && m[1] >= 14) {\n supported = true;\n }\n }\n\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n\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 return atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n };\n\n return (0, _util.shadow)(this, \"_loadTestFont\", getLoadTestFont());\n }\n\n _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n\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\n let i, ii;\n const canvas = document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n\n function isFontReady(name, callback) {\n called++;\n\n if (called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const names = [];\n\n for (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].loadedName);\n }\n\n names.push(loadTestFontId);\n const div = 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 = document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n\n document.body.appendChild(div);\n isFontReady(loadTestFontId, function () {\n document.body.removeChild(div);\n request.complete();\n });\n }\n\n };\n}\n\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature = null,\n fontRegistry = null\n }) {\n this.compiledGlyphs = Object.create(null);\n\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\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\n const nativeFontFace = new FontFace(this.loadedName, this.data, {});\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n\n return nativeFontFace;\n }\n\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n const data = (0, _util.bytesToString)(new Uint8Array(this.data));\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\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\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath\n });\n }\n\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n if (this.isEvalSupported && _util.IsEvalSupportedCached.value) {\n let args,\n js = \"\";\n\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\n js += \"c.\" + current.cmd + \"(\" + args + \");\\n\";\n }\n\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", js);\n }\n\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\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n\n}\n\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.apiCompatibilityParams = void 0;\n\nvar _is_node = __w_pdfjs_require__(4);\n\nconst compatibilityParams = Object.create(null);\n{\n (function checkFontFace() {\n if (_is_node.isNodeJS) {\n compatibilityParams.disableFontFace = true;\n }\n })();\n}\nconst apiCompatibilityParams = Object.freeze(compatibilityParams);\nexports.apiCompatibilityParams = apiCompatibilityParams;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CanvasGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _pattern_helper = __w_pdfjs_require__(9);\n\nvar MIN_FONT_SIZE = 16;\nvar MAX_FONT_SIZE = 100;\nvar MAX_GROUP_SIZE = 4096;\nvar MIN_WIDTH_FACTOR = 0.65;\nvar COMPILE_TYPE3_GLYPHS = true;\nvar MAX_SIZE_TO_COMPILE = 1000;\nvar FULL_CHUNK_HEIGHT = 16;\n\nfunction addContextCurrentTransform(ctx) {\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 ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n Object.defineProperty(ctx, \"mozCurrentTransform\", {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n get: function getCurrentTransformInverse() {\n var m = this._transformMatrix;\n var a = m[0],\n b = m[1],\n c = m[2],\n d = m[3],\n e = m[4],\n f = m[5];\n var ad_bc = a * d - b * c;\n var bc_ad = b * c - a * d;\n return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];\n }\n });\n\n ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n\n this._transformStack.push(old);\n\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n var prev = this._transformStack.pop();\n\n if (prev) {\n this._transformMatrix = prev;\n\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n var 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 var 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 var m = this._transformMatrix;\n this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];\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 var cosValue = Math.cos(angle);\n var sinValue = Math.sin(angle);\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];\n\n this._originalRotate(angle);\n };\n }\n}\n\nvar CachedCanvases = function CachedCanvasesClosure() {\n function CachedCanvases(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {\n var canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\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\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n\n return canvasEntry;\n },\n\n clear() {\n for (var id in this.cache) {\n var canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n\n };\n return CachedCanvases;\n}();\n\nfunction compileType3Glyph(imgData) {\n var POINT_TO_PROCESS_LIMIT = 1000;\n var width = imgData.width,\n height = imgData.height;\n var i,\n j,\n j0,\n width1 = width + 1;\n var points = new Uint8Array(width1 * (height + 1));\n var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n var lineSize = width + 7 & ~7,\n data0 = imgData.data;\n var data = new Uint8Array(lineSize * height),\n pos = 0,\n ii;\n\n for (i = 0, ii = data0.length; i < ii; i++) {\n var mask = 128,\n elem = data0[i];\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n var count = 0;\n pos = 0;\n\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\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\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n\n var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n\n pos++;\n }\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\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\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\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n var coords = [p % width1, i];\n var type = points[p],\n p0 = p,\n pp;\n\n do {\n var step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n\n coords.push(p % width1);\n coords.push(p / width1 | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n\n outlines.push(coords);\n --i;\n }\n\n var drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n\n for (let k = 0, kk = outlines.length; k < kk; k++) {\n var o = outlines[k];\n c.moveTo(o[0], o[1]);\n\n for (let l = 2, ll = o.length; l < ll; l += 2) {\n c.lineTo(o[l], o[l + 1]);\n }\n }\n\n c.fill();\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nvar CanvasExtraState = function CanvasExtraStateClosure() {\n function CanvasExtraState() {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.resumeSMaskCtx = 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\nvar CanvasGraphics = function CanvasGraphicsClosure() {\n var EXECUTION_TIME = 15;\n var EXECUTION_STEPS = 10;\n\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) {\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 this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n\n this._cachedGetSinglePixelWidth = null;\n }\n\n function putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0,\n destPos;\n var src = imgData.data;\n var dest = chunkImgData.data;\n var i, j, thisChunkHeight, elemsInThisChunk;\n\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n var srcLength = src.byteLength;\n var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n var dest32DataLength = dest32.length;\n var fullSrcDiff = width + 7 >> 3;\n var white = 0xffffffff;\n var black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n var srcDiff = srcLength - srcPos;\n var k = 0;\n var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n var kEndUnrolled = kEnd & ~7;\n var mask = 0;\n var srcByte = 0;\n\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\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\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 === _util.ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\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 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 var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0;\n var src = imgData.data;\n var dest = chunkImgData.data;\n\n for (var i = 0; i < totalChunks; i++) {\n var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n var destPos = 3;\n\n for (var j = 0; j < thisChunkHeight; j++) {\n var mask = 0;\n\n for (var k = 0; k < width; k++) {\n if (!mask) {\n var elem = src[srcPos++];\n mask = 128;\n }\n\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n }\n\n function copyCtxState(sourceCtx, destCtx) {\n var properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\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\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n }\n\n function composeSMaskBackdrop(bytes, r0, g0, b0) {\n var length = bytes.length;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = bytes[i];\n\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 var 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 var length = maskData.length;\n var scale = 1 / 255;\n\n for (var i = 3; i < length; i += 4) {\n var 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 var length = maskData.length;\n\n for (var i = 3; i < length; i += 4) {\n var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n }\n\n function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {\n var hasBackdrop = !!backdrop;\n var r0 = hasBackdrop ? backdrop[0] : 0;\n var g0 = hasBackdrop ? backdrop[1] : 0;\n var b0 = hasBackdrop ? backdrop[2] : 0;\n var composeFn;\n\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n for (var row = 0; row < height; row += chunkSize) {\n var chunkHeight = Math.min(chunkSize, height - row);\n var maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n var layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n maskCtx.putImageData(layerData, 0, row);\n }\n }\n\n function composeSMask(ctx, smask, layerCtx, webGLContext) {\n var mask = smask.canvas;\n var maskCtx = smask.context;\n ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);\n var backdrop = smask.backdrop || null;\n\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\n genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);\n ctx.drawImage(mask, 0, 0);\n }\n\n var LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n var LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n var NORMAL_CLIP = {};\n var EO_CLIP = {};\n CanvasGraphics.prototype = {\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n var width = this.ctx.canvas.width;\n var height = this.ctx.canvas.height;\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 var transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n },\n\n executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var i = executionStartIdx || 0;\n var argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n var steps = 0;\n var commonObjs = this.commonObjs;\n var objs = this.objs;\n var 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 !== _util.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 (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n if (i === argsArrayLen) {\n return i;\n }\n\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n\n steps = 0;\n }\n }\n },\n endDrawing: function CanvasGraphics_endDrawing() {\n if (this.current.activeSMask !== null) {\n this.endSMaskGroup();\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);\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 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 var ctx = this.ctx;\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n },\n\n setRenderingIntent(intent) {},\n\n setFlatness(flatness) {},\n\n setGState: function CanvasGraphics_setGState(states) {\n for (var i = 0, ii = states.length; i < ii; i++) {\n var state = states[i];\n var key = state[0];\n var value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n\n case \"SMask\":\n if (this.current.activeSMask) {\n if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n\n this.current.activeSMask = value ? this.tempSMask : null;\n\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n\n this.tempSMask = null;\n break;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n var activeSMask = this.current.activeSMask;\n var drawnWidth = activeSMask.canvas.width;\n var drawnHeight = activeSMask.canvas.height;\n var cacheId = \"smaskGroupAt\" + this.groupLevel;\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var currentCtx = this.ctx;\n var currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\n var 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 activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n this.ctx.save();\n copyCtxState(groupCtx, this.ctx);\n this.current.resumeSMaskCtx = groupCtx;\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\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_endSMaskGroup() {\n var groupCtx = this.current.resumeSMaskCtx;\n var currentCtx = this.ctx;\n this.ctx = groupCtx;\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n endSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n },\n save: function CanvasGraphics_save() {\n this.ctx.save();\n var 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 if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n\n if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {\n this.endSMaskGroup();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n this.pendingClip = null;\n this._cachedGetSinglePixelWidth = 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 this._cachedGetSinglePixelWidth = null;\n },\n constructPath: function CanvasGraphics_constructPath(ops, args) {\n var ctx = this.ctx;\n var current = this.current;\n var x = current.x,\n y = current.y;\n\n for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n\n if (width === 0) {\n width = this.getSinglePixelWidth();\n }\n\n if (height === 0) {\n height = this.getSinglePixelWidth();\n }\n\n var xw = x + width;\n var yh = y + height;\n this.ctx.moveTo(x, y);\n this.ctx.lineTo(xw, y);\n this.ctx.lineTo(xw, yh);\n this.ctx.lineTo(x, yh);\n this.ctx.lineTo(x, y);\n this.ctx.closePath();\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.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\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\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 var ctx = this.ctx;\n var strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (strokeColor && strokeColor.hasOwnProperty(\"type\") && strokeColor.type === \"Pattern\") {\n ctx.save();\n const transform = ctx.mozCurrentTransform;\n\n const scale = _util.Util.singularValueDecompose2dScale(transform)[0];\n\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth * scale);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);\n ctx.stroke();\n }\n\n if (consumePath) {\n this.consumePath();\n }\n\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 var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n\n if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\n }\n\n ctx.fillStyle = fillColor.getPattern(ctx, this);\n needRestore = true;\n }\n\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n\n if (needRestore) {\n ctx.restore();\n }\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 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 clip: function CanvasGraphics_clip() {\n this.pendingClip = NORMAL_CLIP;\n },\n eoClip: function CanvasGraphics_eoClip() {\n this.pendingClip = EO_CLIP;\n },\n beginText: function CanvasGraphics_beginText() {\n this.current.textMatrix = _util.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 var paths = this.pendingTextPaths;\n var ctx = this.ctx;\n\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\n for (var i = 0; i < paths.length; i++) {\n var 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\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 var fontObj = this.commonObjs.get(fontRefName);\n var current = this.current;\n\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n\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;\n }\n\n var name = fontObj.loadedName || \"sans-serif\";\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n var italic = fontObj.italic ? \"italic\" : \"normal\";\n var typeface = `\"${name}\", ${fontObj.fallbackName}`;\n let browserFontSize = size;\n\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\n this.current.fontSizeScale = size / browserFontSize;\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 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) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var textRenderingMode = current.textRenderingMode;\n var fontSize = current.fontSize / current.fontSizeScale;\n var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n var addToPath;\n\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\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n var 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 const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n var data = ctx.getImageData(0, 0, 10, 10).data;\n var enabled = false;\n\n for (var i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n },\n\n showText: function CanvasGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return undefined;\n }\n\n var ctx = this.ctx;\n var fontSizeScale = current.fontSizeScale;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var glyphsLength = glyphs.length;\n var vertical = font.vertical;\n var spacingDir = vertical ? 1 : -1;\n var defaultVMetrics = font.defaultVMetrics;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n let patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\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 var lineWidth = current.lineWidth;\n var scale = current.textMatrixScale;\n\n if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;\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 var x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n var restoreNeeded = false;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var character = glyph.fontChar;\n var accent = glyph.accent;\n var scaledX, scaledY, scaledAccentX, scaledAccentY;\n var width = glyph.width;\n\n if (vertical) {\n var vmetric, vx, vy;\n vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n var characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n\n if (glyph.isInFont || font.missingFile) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n\n if (accent) {\n scaledAccentX = scaledX + accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n\n var charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n ctx.restore();\n },\n showType3Text: function CanvasGraphics_showType3Text(glyphs) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n var fontDirection = current.fontDirection;\n var spacingDir = font.vertical ? 1 : -1;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var textHScale = current.textHScale * fontDirection;\n var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var glyphsLength = glyphs.length;\n var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n var i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n\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 var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n\n ctx.restore();\n this.processingType3 = null;\n },\n setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},\n setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n },\n getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n var pattern;\n\n if (IR[0] === \"TilingPattern\") {\n var color = IR[1];\n var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n var canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);\n }\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 var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n },\n setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n },\n shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n var ctx = this.ctx;\n this.save();\n var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\n var inv = ctx.mozCurrentTransformInverse;\n\n if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n\n var bl = _util.Util.applyTransform([0, 0], inv);\n\n var br = _util.Util.applyTransform([0, height], inv);\n\n var ul = _util.Util.applyTransform([width, 0], inv);\n\n var ur = _util.Util.applyTransform([width, height], inv);\n\n var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.restore();\n },\n beginInlineImage: function CanvasGraphics_beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n },\n beginImageData: function CanvasGraphics_beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n },\n paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {\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 var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.clip();\n this.endPath();\n }\n },\n paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n beginGroup: function CanvasGraphics_beginGroup(group) {\n this.save();\n var currentCtx = this.ctx;\n\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n\n var currentTransform = currentCtx.mozCurrentTransform;\n\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n\n var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n var scaleX = 1,\n scaleY = 1;\n\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n var cacheId = \"groupAt\" + this.groupLevel;\n\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\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\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n this.current.activeSMask = null;\n },\n endGroup: function CanvasGraphics_endGroup(group) {\n this.groupLevel--;\n var groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n\n this.restore();\n },\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n },\n endAnnotations: function CanvasGraphics_endAnnotations() {\n this.restore();\n },\n beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {\n this.save();\n resetCtxToDefault(this.ctx);\n this.current = new CanvasExtraState();\n\n if (Array.isArray(rect) && rect.length === 4) {\n var width = rect[2] - rect[0];\n var 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 endAnnotation: function CanvasGraphics_endAnnotation() {\n this.restore();\n },\n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n var ctx = this.ctx;\n var width = img.width,\n height = img.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var 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({\n data: img.data,\n width,\n height\n });\n } else {\n glyph.compiled = null;\n }\n }\n\n if (glyph && glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n this.paintInlineImageXObject(maskCanvas.canvas);\n },\n paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) {\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, imgData);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n var ctx = this.ctx;\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n ctx.save();\n ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n\n for (var i = 0, ii = images.length; i < ii; i++) {\n var image = images[i];\n var width = image.width,\n height = image.height;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, image);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\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 paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n },\n paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var map = [];\n\n for (var 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\n this.paintInlineImageXObjectGroup(imgData, map);\n },\n paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {\n var width = imgData.width;\n var height = imgData.height;\n var ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n var currentTransform = ctx.mozCurrentTransformInverse;\n var a = currentTransform[0],\n b = currentTransform[1];\n var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n var c = currentTransform[2],\n d = currentTransform[3];\n var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n var imgToPaint, tmpCanvas;\n\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = tmpCanvas.canvas;\n }\n\n var paintWidth = width,\n paintHeight = height;\n var tmpCanvasId = \"prescale1\";\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n var newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n\n ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n var 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\n this.restore();\n },\n paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n var ctx = this.ctx;\n var w = imgData.width;\n var h = imgData.height;\n var tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n\n for (var i = 0, ii = map.length; i < ii; i++) {\n var entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n var 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\n ctx.restore();\n }\n },\n paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {\n this.ctx.fillRect(0, 0, 1, 1);\n },\n paintXObject: function CanvasGraphics_paintXObject() {\n (0, _util.warn)(\"Unsupported 'paintXObject' command.\");\n },\n markPoint: function CanvasGraphics_markPoint(tag) {},\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},\n endMarkedContent: function CanvasGraphics_endMarkedContent() {},\n beginCompat: function CanvasGraphics_beginCompat() {},\n endCompat: function CanvasGraphics_endCompat() {},\n consumePath: function CanvasGraphics_consumePath() {\n var ctx = this.ctx;\n\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n\n this.pendingClip = null;\n }\n\n ctx.beginPath();\n },\n\n getSinglePixelWidth(scale) {\n if (this._cachedGetSinglePixelWidth === null) {\n const inverse = this.ctx.mozCurrentTransformInverse;\n this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));\n }\n\n return this._cachedGetSinglePixelWidth;\n },\n\n getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n var transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n }\n };\n\n for (var op in _util.OPS) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n\n return CanvasGraphics;\n}();\n\nexports.CanvasGraphics = CanvasGraphics;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getShadingPatternFromIR = getShadingPatternFromIR;\nexports.TilingPattern = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar ShadingIRs = {};\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || typeof Path2D === \"undefined\") {\n return;\n }\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 var type = raw[1];\n var bbox = raw[2];\n var colorStops = raw[3];\n var p0 = raw[4];\n var p1 = raw[5];\n var r0 = raw[6];\n var r1 = raw[7];\n return {\n type: \"Pattern\",\n getPattern: function RadialAxial_getPattern(ctx) {\n applyBoundingBox(ctx, bbox);\n var grad;\n\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 (var i = 0, ii = colorStops.length; i < ii; ++i) {\n var c = colorStops[i];\n grad.addColorStop(c[0], c[1]);\n }\n\n return grad;\n }\n };\n }\n};\n\nvar createMeshCanvas = function createMeshCanvasClosure() {\n function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n var coords = context.coords,\n colors = context.colors;\n var bytes = data.data,\n rowSize = data.width * 4;\n var 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\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\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\n var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n if (y1 >= y3) {\n return;\n }\n\n var c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n var c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n var c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n var minY = Math.round(y1),\n maxY = Math.round(y3);\n var xa, car, cag, cab;\n var xb, cbr, cbg, cbb;\n\n for (var y = minY; y <= maxY; y++) {\n if (y < y2) {\n let k;\n\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\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\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\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\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\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 var x1_ = Math.round(Math.min(xa, xb));\n var x2_ = Math.round(Math.max(xa, xb));\n var j = rowSize * y + x1_ * 4;\n\n for (var x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\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 var ps = figure.coords;\n var cs = figure.colors;\n var i, ii;\n\n switch (figure.type) {\n case \"lattice\":\n var verticesPerRow = figure.verticesPerRow;\n var rows = Math.floor(ps.length / verticesPerRow) - 1;\n var cols = verticesPerRow - 1;\n\n for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n\n for (var j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n\n break;\n\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n\n break;\n\n default:\n throw new Error(\"illegal figure\");\n }\n }\n\n function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {\n var EXPECTED_SCALE = 1.1;\n var MAX_PATTERN_SIZE = 3000;\n var BORDER_SIZE = 2;\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var boundsWidth = Math.ceil(bounds[2]) - offsetX;\n var boundsHeight = Math.ceil(bounds[3]) - offsetY;\n var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var scaleX = boundsWidth / width;\n var scaleY = boundsHeight / height;\n var context = {\n coords,\n colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n var paddedWidth = width + BORDER_SIZE * 2;\n var paddedHeight = height + BORDER_SIZE * 2;\n var canvas, tmpCanvas, i, ii;\n\n if (webGLContext.isEnabled) {\n canvas = webGLContext.drawFigures({\n width,\n height,\n backgroundColor,\n figures,\n context\n });\n tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n } else {\n tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n var tmpCtx = tmpCanvas.context;\n var data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n var bytes = data.data;\n\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\n for (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\n }\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\n return createMeshCanvas;\n}();\n\nShadingIRs.Mesh = {\n fromIR: function Mesh_fromIR(raw) {\n var coords = raw[2];\n var colors = raw[3];\n var figures = raw[4];\n var bounds = raw[5];\n var matrix = raw[6];\n var bbox = raw[7];\n var background = raw[8];\n return {\n type: \"Pattern\",\n getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n applyBoundingBox(ctx, bbox);\n var scale;\n\n if (shadingFill) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (matrix) {\n var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);\n\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n\n if (matrix) {\n ctx.transform.apply(ctx, matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n };\n }\n};\nShadingIRs.Dummy = {\n fromIR: function Dummy_fromIR() {\n return {\n type: \"Pattern\",\n getPattern: function Dummy_fromIR_getPattern() {\n return \"hotpink\";\n }\n };\n }\n};\n\nfunction getShadingPatternFromIR(raw) {\n var shadingIR = ShadingIRs[raw[0]];\n\n if (!shadingIR) {\n throw new Error(`Unknown IR type: ${raw[0]}`);\n }\n\n return shadingIR.fromIR(raw);\n}\n\nvar TilingPattern = function TilingPatternClosure() {\n var PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n };\n var MAX_PATTERN_SIZE = 3000;\n\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.type = \"Pattern\";\n this.ctx = ctx;\n }\n\n TilingPattern.prototype = {\n createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {\n var operatorList = this.operatorList;\n var bbox = this.bbox;\n var xstep = this.xstep;\n var ystep = this.ystep;\n var paintType = this.paintType;\n var tilingType = this.tilingType;\n var color = this.color;\n var canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n var x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n var tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n graphics.transform(1, 0, 0, 1, -x0, -y0);\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n graphics.executeOperatorList(operatorList);\n this.ctx.transform(1, 0, 0, 1, x0, y0);\n this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);\n return tmpCanvas.canvas;\n },\n getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize);\n var size = Math.ceil(step * scale);\n\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n\n return {\n scale,\n size\n };\n },\n clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n if (Array.isArray(bbox) && bbox.length === 4) {\n var bboxWidth = x1 - x0;\n var bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n },\n setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n\n switch (paintType) {\n case PaintType.COLORED:\n var 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\n case PaintType.UNCOLORED:\n var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);\n\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n },\n getPattern: function TilingPattern_getPattern(ctx, owner) {\n ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n return ctx.createPattern(temporaryPatternCanvas, \"repeat\");\n }\n };\n return TilingPattern;\n}();\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? \"\" : GlobalWorkerOptions.workerSrc;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\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 (typeof reason !== \"object\" || reason === null) {\n return reason;\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.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\n if (data.targetName !== this.sourceName) {\n return;\n }\n\n if (data.stream) {\n this._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\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\n return;\n }\n\n const action = this.actionHandler[data.action];\n\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\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(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\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 return;\n }\n\n if (data.streamId) {\n this._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n const ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n\n ah[actionName] = handler;\n }\n\n send(actionName, data, transfers) {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\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 return new ReadableStream({\n start: controller => {\n const startCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n\n this._postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = (0, _util.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 return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = (0, _util.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 cancelCapability.promise;\n }\n }, queueingStrategy);\n }\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 const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n self._postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\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 (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\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: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n\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(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].pullCall.resolve();\n } else {\n this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\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\n if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[streamId].sinkCapability.resolve();\n }\n\n this.streamSinks[streamId].desiredSize = data.desiredSize;\n const {\n onPull\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onPull && onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(this.streamControllers[streamId], \"enqueue should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(this.streamControllers[streamId], \"close should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].isClosed = true;\n this.streamControllers[streamId].controller.close();\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(this.streamControllers[streamId], \"error should have stream controller\");\n this.streamControllers[streamId].controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].cancelCall.resolve();\n } else {\n this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!this.streamSinks[streamId]) {\n break;\n }\n\n const {\n onCancel\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onCancel && onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[streamId].isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n async _deleteStreamController(streamId) {\n await Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) {\n return capability && capability.promise;\n }));\n delete this.streamControllers[streamId];\n }\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}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Metadata = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _xml_parser = __w_pdfjs_require__(13);\n\nclass Metadata {\n constructor(data) {\n (0, _util.assert)(typeof data === \"string\", \"Metadata: input is not a string\");\n data = this._repair(data);\n const parser = new _xml_parser.SimpleXMLParser();\n const xmlDocument = parser.parseFromString(data);\n this._metadataMap = new Map();\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _repair(data) {\n return data.replace(/^[^<]+/, \"\").replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n const bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case \"amp\":\n return \"&\";\n\n case \"apos\":\n return \"'\";\n\n case \"gt\":\n return \">\";\n\n case \"lt\":\n return \"<\";\n\n case \"quot\":\n return '\"';\n }\n\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n let chars = \"\";\n\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n\n if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {\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 _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.firstChild;\n\n while (rdf && rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n const nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n\n if (!rdf || nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n const children = rdf.childNodes;\n\n for (let i = 0, ii = children.length; i < ii; i++) {\n const desc = children[i];\n\n if (desc.nodeName.toLowerCase() !== \"rdf:description\") {\n continue;\n }\n\n for (let j = 0, jj = desc.childNodes.length; j < jj; j++) {\n if (desc.childNodes[j].nodeName.toLowerCase() !== \"#text\") {\n const entry = desc.childNodes[j];\n const name = entry.nodeName.toLowerCase();\n\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n }\n\n get(name) {\n return this._metadataMap.has(name) ? this._metadataMap.get(name) : null;\n }\n\n getAll() {\n const obj = Object.create(null);\n\n for (const [key, value] of this._metadataMap) {\n obj[key] = value;\n }\n\n return obj;\n }\n\n has(name) {\n return this._metadataMap.has(name);\n }\n\n}\n\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleXMLParser = void 0;\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\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.fromCharCode(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCharCode(parseInt(entity.substring(1), 10));\n }\n\n switch (entity) {\n case \"lt\":\n return \"<\";\n\n case \"gt\":\n return \">\";\n\n case \"amp\":\n return \"&\";\n\n case \"quot\":\n return '\"';\n }\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 (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n ++pos;\n }\n\n const name = s.substring(start, pos);\n skipWs();\n\n while (pos < s.length && s[pos] !== \">\" && s[pos] !== \"/\" && s[pos] !== \"?\") {\n skipWs();\n let attrName = \"\",\n attrValue = \"\";\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n attrName += s[pos];\n ++pos;\n }\n\n skipWs();\n\n if (s[pos] !== \"=\") {\n return null;\n }\n\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n\n if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n return null;\n }\n\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n\n if (attrEndIndex < 0) {\n return null;\n }\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\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 (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n ++pos;\n }\n\n const name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n\n while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n ++pos;\n }\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\n while (i < s.length) {\n const ch = s[i];\n let j = i;\n\n if (ch === \"<\") {\n ++j;\n const ch2 = s[j];\n let q;\n\n switch (ch2) {\n case \"/\":\n ++j;\n q = s.indexOf(\">\", j);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n\n case \"?\":\n ++j;\n\n const pi = this._parseProcessingInstruction(s, j);\n\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n\n case \"!\":\n if (s.substring(j + 1, j + 3) === \"--\") {\n q = s.indexOf(\"-->\", j + 3);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\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\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\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\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n if (q2 > 0 && q > q2) {\n q = s.indexOf(\"]>\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n complexDoctype = true;\n }\n\n const doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n break;\n\n default:\n const content = this._parseContent(s, j);\n\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n let isClosed = false;\n\n if (s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\") {\n isClosed = true;\n } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== \">\") {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\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\n const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\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}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n Object.defineProperty(this, \"parentNode\", {\n value: null,\n writable: true\n });\n }\n\n get firstChild() {\n return this.childNodes && this.childNodes[0];\n }\n\n get nextSibling() {\n const childNodes = this.parentNode.childNodes;\n\n if (!childNodes) {\n return undefined;\n }\n\n const index = childNodes.indexOf(this);\n\n if (index === -1) {\n return undefined;\n }\n\n return childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || \"\";\n }\n\n return this.childNodes.map(function (child) {\n return child.textContent;\n }).join(\"\");\n }\n\n hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor() {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n }\n\n parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n const [documentElement] = this._currentFragment;\n\n if (!documentElement) {\n return undefined;\n }\n\n return {\n documentElement\n };\n }\n\n onResolveEntity(name) {\n switch (name) {\n case \"apos\":\n return \"'\";\n }\n\n return super.onResolveEntity(name);\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n\n const node = new SimpleDOMNode(\"#text\", text);\n\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode(\"#text\", text);\n\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n\n this._currentFragment.push(node);\n\n if (isEmpty) {\n return;\n }\n\n this._stack.push(this._currentFragment);\n\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\n if (!lastElement) {\n return;\n }\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}\n\nexports.SimpleXMLParser = SimpleXMLParser;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFDataTransportStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass PDFDataTransportStream {\n constructor(params, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n const initialData = params.initialData;\n\n if (initialData && initialData.length > 0) {\n const buffer = new Uint8Array(initialData).buffer;\n\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 this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\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\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\n rangeReader._enqueue(buffer);\n\n return true;\n });\n\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n\n _onProgress(evt) {\n if (evt.total === undefined) {\n const firstReader = this._rangeReaders[0];\n\n if (firstReader && firstReader.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n } else {\n const fullReader = this._fullRequestReader;\n\n if (fullReader && fullReader.onProgress) {\n fullReader.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n }\n\n _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n\n this._progressiveDone = true;\n }\n\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone);\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n this._rangeReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeReaders.slice(0);\n\n readers.forEach(function (rangeReader) {\n rangeReader.cancel(reason);\n });\n\n this._pdfDataRangeTransport.abort();\n }\n\n}\n\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\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\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\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\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n progressiveDone() {\n if (this._done) {\n return;\n }\n\n this._done = true;\n }\n\n}\n\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 this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n this._done = true;\n\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 {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._stream._removeRangeReader(this);\n }\n\n}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebGLContext = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass WebGLContext {\n constructor({\n enable = false\n }) {\n this._enabled = enable === true;\n }\n\n get isEnabled() {\n let enabled = this._enabled;\n\n if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n\n return (0, _util.shadow)(this, \"isEnabled\", enabled);\n }\n\n composeSMask({\n layer,\n mask,\n properties\n }) {\n return WebGLUtils.composeSMask(layer, mask, properties);\n }\n\n drawFigures({\n width,\n height,\n backgroundColor,\n figures,\n context\n }) {\n return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);\n }\n\n clear() {\n WebGLUtils.cleanup();\n }\n\n}\n\nexports.WebGLContext = WebGLContext;\n\nvar WebGLUtils = function WebGLUtilsClosure() {\n function loadShader(gl, code, shaderType) {\n var shader = gl.createShader(shaderType);\n gl.shaderSource(shader, code);\n gl.compileShader(shader);\n var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n\n if (!compiled) {\n var errorMsg = gl.getShaderInfoLog(shader);\n throw new Error(\"Error during shader compilation: \" + errorMsg);\n }\n\n return shader;\n }\n\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n\n function createProgram(gl, shaders) {\n var program = gl.createProgram();\n\n for (var i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n\n gl.linkProgram(program);\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n\n if (!linked) {\n var errorMsg = gl.getProgramInfoLog(program);\n throw new Error(\"Error during program linking: \" + errorMsg);\n }\n\n return program;\n }\n\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\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 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n return texture;\n }\n\n var currentGL, currentCanvas;\n\n function generateGL() {\n if (currentGL) {\n return;\n }\n\n currentCanvas = document.createElement(\"canvas\");\n currentGL = currentCanvas.getContext(\"webgl\", {\n premultipliedalpha: false\n });\n }\n\n var smaskVertexShaderCode = \"\\\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 var smaskFragmentShaderCode = \"\\\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 var smaskCache = null;\n\n function initSmaskGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var 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 var texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n var texLayerLocation = gl.getUniformLocation(program, \"u_image\");\n var texMaskLocation = gl.getUniformLocation(program, \"u_mask\");\n var texCoordBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n gl.uniform1i(texLayerLocation, 0);\n gl.uniform1i(texMaskLocation, 1);\n smaskCache = cache;\n }\n\n function composeSMask(layer, mask, properties) {\n var width = layer.width,\n height = layer.height;\n\n if (!smaskCache) {\n initSmaskGL();\n }\n\n var 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(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);\n } else {\n gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n }\n\n gl.uniform1i(cache.subtypeLocation, properties.subtype === \"Luminosity\" ? 1 : 0);\n var texture = createTexture(gl, layer, gl.TEXTURE0);\n var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\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 gl.drawArrays(gl.TRIANGLES, 0, 6);\n gl.flush();\n gl.deleteTexture(texture);\n gl.deleteTexture(maskTexture);\n gl.deleteBuffer(buffer);\n return canvas;\n }\n\n var figuresVertexShaderCode = \"\\\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 var figuresFragmentShaderCode = \"\\\n precision mediump float; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n gl_FragColor = v_color; \\\n } \";\n var figuresCache = null;\n\n function initFiguresGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var 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 figuresCache = cache;\n }\n\n function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\n }\n\n var cache = figuresCache,\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 var count = 0;\n var i, ii, rows;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n switch (figures[i].type) {\n case \"lattice\":\n rows = figures[i].coords.length / figures[i].verticesPerRow | 0;\n count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n break;\n\n case \"triangles\":\n count += figures[i].coords.length;\n break;\n }\n }\n\n var coords = new Float32Array(count * 2);\n var colors = new Uint8Array(count * 3);\n var coordsMap = context.coords,\n colorsMap = context.colors;\n var pIndex = 0,\n cIndex = 0;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n\n switch (figure.type) {\n case \"lattice\":\n var cols = figure.verticesPerRow;\n rows = ps.length / cols | 0;\n\n for (var row = 1; row < rows; row++) {\n var offset = row * cols + 1;\n\n for (var 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 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\n break;\n\n case \"triangles\":\n for (var 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\n break;\n }\n }\n\n if (backgroundColor) {\n gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n\n gl.clear(gl.COLOR_BUFFER_BIT);\n var 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 var 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(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);\n gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n gl.drawArrays(gl.TRIANGLES, 0, count);\n gl.flush();\n gl.deleteBuffer(coordsBuffer);\n gl.deleteBuffer(colorsBuffer);\n return canvas;\n }\n\n return {\n tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) {}\n\n return false;\n },\n\n composeSMask,\n drawFigures,\n\n cleanup() {\n if (smaskCache && smaskCache.canvas) {\n smaskCache.canvas.width = 0;\n smaskCache.canvas.height = 0;\n }\n\n if (figuresCache && figuresCache.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n\n smaskCache = null;\n figuresCache = null;\n }\n\n };\n}();\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnnotationLayer = void 0;\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n\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\n return new PushButtonWidgetAnnotationElement(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n\n return new WidgetAnnotationElement(parameters);\n\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n\n}\n\nclass AnnotationElement {\n constructor(parameters, isRenderable = false, ignoreBorder = false) {\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\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n }\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 container.setAttribute(\"data-annotation-id\", data.id);\n\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\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\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\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\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 _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n\n case _util.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.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);\n } else {\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 _createPopup(container, trigger, data) {\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 popup.style.left = container.style.width;\n container.appendChild(popup);\n }\n\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);\n super(parameters, isRenderable);\n }\n\n render() {\n this.container.className = \"linkAnnotation\";\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n\n if (data.url) {\n (0, _display_utils.addLinkAttributes)(link, {\n url: data.url,\n target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget,\n rel: linkService.externalLinkRel,\n enabled: linkService.externalLinkEnabled\n });\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else {\n this._bindLink(link, data.dest);\n }\n\n this.container.appendChild(link);\n return this.container;\n }\n\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = () => {\n if (destination) {\n this.linkService.navigateTo(destination);\n }\n\n return false;\n };\n\n if (destination) {\n link.className = \"internalLink\";\n }\n }\n\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n\n link.className = \"internalLink\";\n }\n\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable);\n }\n\n render() {\n this.container.className = \"textAnnotation\";\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 = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n return this.container;\n }\n\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, isRenderable);\n }\n\n render() {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n this.container.className = \"textWidgetAnnotation\";\n let element = null;\n\n if (this.renderInteractiveForms) {\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = this.data.fieldValue;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", this.data.fieldValue);\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 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 let font = null;\n\n if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {\n font = this.page.commonObjs.get(this.data.fontRefName);\n }\n\n this._setTextStyle(element, font);\n }\n\n if (this.data.textAlignment !== null) {\n element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n _setTextStyle(element, font) {\n const style = element.style;\n style.fontSize = `${this.data.fontSize}px`;\n style.direction = this.data.fontDirection < 0 ? \"rtl\" : \"ltr\";\n\n if (!font) {\n return;\n }\n\n let bold = \"normal\";\n\n if (font.black) {\n bold = \"900\";\n } else if (font.bold) {\n bold = \"bold\";\n }\n\n style.fontWeight = bold;\n style.fontStyle = font.italic ? \"italic\" : \"normal\";\n const fontFamily = font.loadedName ? `\"${font.loadedName}\", ` : \"\";\n const fallbackName = font.fallbackName || \"Helvetica, sans-serif\";\n style.fontFamily = fontFamily + fallbackName;\n }\n\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n const element = document.createElement(\"input\");\n element.disabled = this.data.readOnly;\n element.type = \"checkbox\";\n element.name = this.data.fieldName;\n\n if (this.data.fieldValue && this.data.fieldValue !== \"Off\") {\n element.setAttribute(\"checked\", true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n const element = document.createElement(\"input\");\n element.disabled = this.data.readOnly;\n element.type = \"radio\";\n element.name = this.data.fieldName;\n\n if (this.data.fieldValue === this.data.buttonValue) {\n element.setAttribute(\"checked\", true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n render() {\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n return container;\n }\n\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const selectElement = document.createElement(\"select\");\n selectElement.disabled = this.data.readOnly;\n selectElement.name = this.data.fieldName;\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (this.data.fieldValue.includes(option.displayValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n\n selectElement.appendChild(optionElement);\n }\n\n this.container.appendChild(selectElement);\n return this.container;\n }\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 const IGNORE_TYPES = [\"Line\", \"Square\", \"Circle\", \"PolyLine\", \"Polygon\", \"Ink\"];\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 parentElement = this.layer.querySelector(selector);\n\n if (!parentElement) {\n return this.container;\n }\n\n const popup = new PopupElement({\n container: this.container,\n trigger: parentElement,\n color: this.data.color,\n title: this.data.title,\n modificationDate: this.data.modificationDate,\n contents: this.data.contents\n });\n const parentLeft = parseFloat(parentElement.style.left);\n const parentWidth = parseFloat(parentElement.style.width);\n this.container.style.transformOrigin = `-${parentLeft + parentWidth}px -${parentElement.style.top}`;\n this.container.style.left = `${parentLeft + parentWidth}px`;\n this.container.appendChild(popup.render());\n return this.container;\n }\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 this.pinned = false;\n }\n\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.setAttribute(\"hidden\", true);\n const popup = document.createElement(\"div\");\n popup.className = \"popup\";\n const color = this.color;\n\n if (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.Util.makeCssRgb(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 const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\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\n popup.appendChild(contents);\n this.trigger.addEventListener(\"click\", this._toggle.bind(this));\n this.trigger.addEventListener(\"mouseover\", this._show.bind(this, false));\n this.trigger.addEventListener(\"mouseout\", this._hide.bind(this, false));\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n wrapper.appendChild(popup);\n return wrapper;\n }\n\n _formatContents(contents) {\n const p = document.createElement(\"p\");\n const lines = contents.split(/(?:\\r\\n?|\\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\n if (i < ii - 1) {\n p.appendChild(document.createElement(\"br\"));\n }\n }\n\n return p;\n }\n\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hasAttribute(\"hidden\")) {\n this.hideElement.removeAttribute(\"hidden\");\n this.container.style.zIndex += 1;\n }\n }\n\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\n }\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}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"lineAnnotation\";\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 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 line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n svg.appendChild(line);\n this.container.append(svg);\n\n this._createPopup(this.container, line, data);\n\n return this.container;\n }\n\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"squareAnnotation\";\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 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 square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"none\");\n svg.appendChild(square);\n this.container.append(svg);\n\n this._createPopup(this.container, square, data);\n\n return this.container;\n }\n\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"circleAnnotation\";\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 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 circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"none\");\n svg.appendChild(circle);\n this.container.append(svg);\n\n this._createPopup(this.container, circle, data);\n\n return this.container;\n }\n\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\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 let points = [];\n\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\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n svg.appendChild(polyline);\n this.container.append(svg);\n\n this._createPopup(this.container, polyline, data);\n\n return this.container;\n }\n\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\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 let points = [];\n\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\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n\n this._createPopup(this.container, polyline, data);\n\n svg.appendChild(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"highlightAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"underlineAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"squigglyAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"strikeoutAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, true);\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n this.content = content;\n\n if (this.linkService.eventBus) {\n this.linkService.eventBus.dispatch(\"fileattachmentannotation\", {\n source: this,\n id: (0, _util.stringToPDFString)(filename),\n filename,\n content\n });\n }\n }\n\n render() {\n this.container.className = \"fileAttachmentAnnotation\";\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(this.container, trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n\n _download() {\n if (!this.downloadManager) {\n (0, _util.warn)(\"Download cannot be started due to unavailable download manager\");\n return;\n }\n\n this.downloadManager.downloadData(this.content, this.filename, \"\");\n }\n\n}\n\nclass AnnotationLayer {\n static render(parameters) {\n const sortedAnnotations = [],\n popupAnnotations = [];\n\n for (const data of parameters.annotations) {\n if (!data) {\n continue;\n }\n\n if (data.annotationType === _util.AnnotationType.POPUP) {\n popupAnnotations.push(data);\n continue;\n }\n\n sortedAnnotations.push(data);\n }\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: parameters.renderInteractiveForms || false,\n svgFactory: new _display_utils.DOMSVGFactory()\n });\n\n if (element.isRenderable) {\n parameters.div.appendChild(element.render());\n }\n }\n }\n\n static update(parameters) {\n for (const data of parameters.annotations) {\n const element = parameters.div.querySelector(`[data-annotation-id=\"${data.id}\"]`);\n\n if (element) {\n element.style.transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n }\n }\n\n parameters.div.removeAttribute(\"hidden\");\n }\n\n}\n\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.renderTextLayer = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar renderTextLayer = function renderTextLayerClosure() {\n var MAX_TEXT_DIVS_TO_RENDER = 100000;\n var NonWhitespaceRegexp = /\\S/;\n\n function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n\n function appendText(task, geom, styles) {\n var textDiv = document.createElement(\"span\");\n var 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\n if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n return;\n }\n\n var tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);\n var fontAscent = fontHeight;\n\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\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\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 textDiv.textContent = geom.str;\n\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n\n let shouldScaleText = false;\n\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\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\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\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection) {\n var angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n var divHeight = fontHeight;\n var m, b;\n\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.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\n var textDivs = task._textDivs;\n var capability = task._capability;\n var textDivsLength = textDivs.length;\n\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 (var 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\n for (let i = 0; i < count; i++) {\n const t = ts[offset++];\n\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n\n return result;\n }\n\n function expand(task) {\n var bounds = task._bounds;\n var viewport = task._viewport;\n var expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n\n var divProperties = task._textDivProperties.get(div);\n\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\n task._textDivProperties.set(div, divProperties);\n\n continue;\n }\n\n var e = expanded[i],\n b = bounds[i];\n var m = b.m,\n c = m[0],\n s = m[1];\n var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n var ts = new Float64Array(64);\n points.forEach(function (p, j) {\n var t = _util.Util.applyTransform(p, m);\n\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 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 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 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 var 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\n task._textDivProperties.set(div, divProperties);\n }\n }\n\n function expandBounds(width, height, boxes) {\n var 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 var expanded = new Array(boxes.length);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n });\n boxes.map(function (box, i) {\n var 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 bounds.forEach(function (b) {\n var 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 bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n var fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n var horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n bounds.forEach(function (boundary) {\n var i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n var j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n var horizonPart, affectedBoundary;\n var q,\n k,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var xNew;\n\n if (affectedBoundary.x2 > boundary.x1) {\n xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = affectedBoundary.x2New;\n }\n\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n boundary.x1New = maxXNew;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n if (affectedBoundary.x2 > boundary.x1) {\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 affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n var changedHorizon = [],\n lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\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\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\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 for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n var used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n });\n horizon.forEach(function (horizonPart) {\n var affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\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._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!(globalThis.FontInspector && globalThis.FontInspector.enabled);\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 = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n\n this._capability.promise.finally(() => {\n if (this._layoutTextCtx) {\n this._layoutTextCtx.canvas.width = 0;\n this._layoutTextCtx.canvas.height = 0;\n this._layoutTextCtx = null;\n }\n }).catch(() => {});\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\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\"));\n\n this._reader = null;\n }\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\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\n appendText(this, items[i], styleCache);\n }\n },\n\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n\n if (textDivProperties.isWhitespace) {\n return;\n }\n\n let transform = \"\";\n\n if (textDivProperties.canvasWidth !== 0) {\n const {\n fontSize,\n fontFamily\n } = textDiv.style;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n const {\n width\n } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n if (width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = `scaleX(${textDivProperties.scale})`;\n }\n }\n\n if (textDivProperties.angle !== 0) {\n transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n }\n\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n\n textDiv.style.transform = transform;\n }\n\n this._textDivProperties.set(textDiv, textDivProperties);\n\n this._container.appendChild(textDiv);\n },\n\n _render: function TextLayer_render(timeout) {\n const capability = (0, _util.createPromiseCapability)();\n let styleCache = Object.create(null);\n const canvas = document.createElement(\"canvas\");\n canvas.mozOpaque = true;\n this._layoutTextCtx = canvas.getContext(\"2d\", {\n alpha: false\n });\n\n if (this._textContent) {\n const textItems = this._textContent.items;\n const textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n this._processItems(value.items, styleCache);\n\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\"' + \" parameters specified.\");\n }\n\n capability.promise.then(() => {\n styleCache = null;\n\n if (!timeout) {\n render(this);\n } else {\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n },\n expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n const transformBuf = [],\n paddingBuf = [];\n\n for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n const div = this._textDivs[i];\n\n const divProps = this._textDivProperties.get(div);\n\n if (divProps.isWhitespace) {\n continue;\n }\n\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\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\n if (divProps.paddingRight > 0) {\n paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(`${divProps.paddingBottom}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n div.style.padding = paddingBuf.join(\" \");\n\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 function renderTextLayer(renderParameters) {\n var 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\n task._render(renderParameters.timeout);\n\n return task;\n }\n\n return renderTextLayer;\n}();\n\nexports.renderTextLayer = renderTextLayer;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SVGGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nlet SVGGraphics = function () {\n throw new Error(\"Not implemented: SVGGraphics\");\n};\n\nexports.SVGGraphics = SVGGraphics;\n{\n const SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n };\n const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n const convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n\n for (let i = 0; i < 256; i++) {\n let c = i;\n\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\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n let crc = -1;\n\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\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\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 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 data.set(body, p);\n p += body.length;\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\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!_is_node.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n let input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = Buffer.from(literals);\n }\n\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\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;\n idat[pi++] = 0x9c;\n let pos = 0;\n\n while (len > maxBlockLength) {\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 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 const adler = adler32(literals, 0, literals.length);\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 _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error(\"invalid format\");\n }\n\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = 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 return (0, _util.createObjectURL)(data, \"image/png\", forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.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 this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\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\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({\n fnId: 92,\n fn: \"group\",\n items: []\n });\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\n return opTree;\n }\n\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const s = value.toFixed(10);\n let i = s.length - 1;\n\n if (s[i] !== \"0\") {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === \"0\");\n\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n }\n\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\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\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\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n }\n\n let clipCount = 0;\n let maskCount = 0;\n let shadingCount = 0;\n exports.SVGGraphics = SVGGraphics = class SVGGraphics {\n constructor(commonObjs, objs, forceDataSchema = false) {\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.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] !== _util.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\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.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n const svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.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\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\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 _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTreeElement.items);\n break;\n\n default:\n (0, _util.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 current.x = current.lineX = 0;\n current.y = current.lineY = 0;\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(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\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 = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.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 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(null, \"font-size\", `${pf(current.fontSize)}px`);\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\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 let x = 0;\n\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if ((0, _util.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\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 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\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n\n current.tspan.textContent += character;\n } else {}\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n }\n\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\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(null, \"font-size\", `${pf(current.fontSize)}px`);\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n let textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\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(\"addFontStyle: No font data available, \" + '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 = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` 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 (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\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\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\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\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\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.Util.makeCssRgb(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.Util.makeCssRgb(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\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.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 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\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n\n return this._makeShadingPattern(args);\n }\n\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.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 const tilingId = `shading${shadingCount++}`;\n\n const [tx0, ty0] = _util.Util.applyTransform([x0, y0], matrix);\n\n const [tx1, ty1] = _util.Util.applyTransform([x1, y1], matrix);\n\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\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 const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n\n if (paintType === 2) {\n const cssColor = _util.Util.makeCssRgb(...color);\n\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return `url(#${tilingId})`;\n }\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\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\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\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\n this.defs.appendChild(gradient);\n return `url(#${shadingId})`;\n\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n\n case \"Dummy\":\n return \"hotpink\";\n\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 _util.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(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n\n d = d.join(\" \");\n\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n\n endPath() {\n const current = this.current;\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\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 const clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n this.extraStack.forEach(function (prev) {\n prev.clipGroup = null;\n });\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n\n clip(type) {\n this.pendingClip = type;\n }\n\n closePath() {\n const current = this.current;\n\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\n setFlatness(flatness) {}\n\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value);\n break;\n\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n\n case \"ca\":\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n\n fill() {\n const current = this.current;\n\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\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\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(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n\n eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fill();\n }\n\n fillStroke() {\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\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 = this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\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 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(null, \"transform\", `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 current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\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 this.defs.appendChild(mask);\n\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(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\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 _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.appendChild(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.appendChild(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\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\n return this.current.clipGroup;\n }\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\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n\n };\n}\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFNodeStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(20);\n\n;\n\nconst fs = require(\"fs\");\n\nconst http = require(\"http\");\n\nconst https = require(\"https\");\n\nconst url = require(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n const parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n\n return parsedUrl;\n}\n\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n this._rangeRequestReaders.push(rangeReader);\n\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\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFNodeStream = PDFNodeStream;\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;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.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\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\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 = (0, _util.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\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\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 _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._headersCapability.resolve();\n\n this._setReadableStream(response);\n\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n\n this._headersCapability.reject(reason);\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n this._httpHeaders[property] = value;\n }\n\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n\n this._setReadableStream(response);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\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 _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n\n this._headersCapability.resolve();\n });\n }\n\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n\n}\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _content_disposition = __w_pdfjs_require__(21);\n\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n (0, _util.assert)(rangeChunkSize > 0, \"Range chunk size must be larger than zero\");\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n\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\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException(\"Unexpected server response (\" + status + ') while retrieving PDF \"' + url + '\".', status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n\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 tmp = rfc2231getparam(contentDisposition);\n\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\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 if (/^utf-?8$/i.test(encoding)) {\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\n }\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n const parts = [];\n\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n\n if (quot) {\n part = unescape(part);\n\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n\n parts.push(part);\n }\n\n return parts.join(\"\");\n }\n\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\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 }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return \"\";\n}\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFNetworkStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(20);\n\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n const array = (0, _util.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\n this.getXhr = args.getXhr || 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\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\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 xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\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\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\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\n if (!pendingRequest) {\n return;\n }\n\n const xhr = pendingRequest.xhr;\n\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 return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n const chunk = getArrayBuffer(xhr);\n\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 hasPendingRequests() {\n for (const xhrId in this.pendingRequests) {\n return true;\n }\n\n return false;\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 abortAllRequests() {\n for (const xhrId in this.pendingRequests) {\n this.abortRequest(xhrId | 0);\n }\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n\n}\n\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\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFNetworkStream = PDFNetworkStream;\n\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\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 = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.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\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (this._isRangeSupported) {\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\n requestCapability.resolve({\n value: args.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(args.chunk);\n }\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n _onError(status) {\n const url = this._url;\n const exception = (0, _network_utils.createResponseStatusError)(status, url);\n this._storedError = exception;\n\n this._headersReceivedCapability.reject(exception);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.reject(exception);\n });\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\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n\n}\n\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 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\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\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 {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n\n}\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFFetchStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(20);\n\n;\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController && 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\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n headers.append(property, value);\n }\n\n return headers;\n}\n\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 this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\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\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFFetchStream = PDFFetchStream;\n\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 = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._reader = response.body.getReader();\n\n this._headersCapability.resolve();\n\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\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 {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\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 = (0, _util.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\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._readCapability.resolve();\n\n this._reader = response.body.getReader();\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 {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.js.map","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Validate.vue?vue&type=style&index=0&id=95b82952&prod&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDFJSViewer.vue?vue&type=style&index=2&id=d38073b6&prod&lang=css&scoped=true&\"","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(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/web/pdf_viewer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/web/pdf_viewer\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/web/pdf_viewer\"] = root.pdfjsViewer = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__w_pdfjs_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__w_pdfjs_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__w_pdfjs_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__w_pdfjs_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__w_pdfjs_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__w_pdfjs_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__w_pdfjs_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"AnnotationLayerBuilder\", {\n enumerable: true,\n get: function () {\n return _annotation_layer_builder.AnnotationLayerBuilder;\n }\n});\nObject.defineProperty(exports, \"DefaultAnnotationLayerFactory\", {\n enumerable: true,\n get: function () {\n return _annotation_layer_builder.DefaultAnnotationLayerFactory;\n }\n});\nObject.defineProperty(exports, \"DefaultTextLayerFactory\", {\n enumerable: true,\n get: function () {\n return _text_layer_builder.DefaultTextLayerFactory;\n }\n});\nObject.defineProperty(exports, \"TextLayerBuilder\", {\n enumerable: true,\n get: function () {\n return _text_layer_builder.TextLayerBuilder;\n }\n});\nObject.defineProperty(exports, \"EventBus\", {\n enumerable: true,\n get: function () {\n return _ui_utils.EventBus;\n }\n});\nObject.defineProperty(exports, \"NullL10n\", {\n enumerable: true,\n get: function () {\n return _ui_utils.NullL10n;\n }\n});\nObject.defineProperty(exports, \"ProgressBar\", {\n enumerable: true,\n get: function () {\n return _ui_utils.ProgressBar;\n }\n});\nObject.defineProperty(exports, \"PDFLinkService\", {\n enumerable: true,\n get: function () {\n return _pdf_link_service.PDFLinkService;\n }\n});\nObject.defineProperty(exports, \"SimpleLinkService\", {\n enumerable: true,\n get: function () {\n return _pdf_link_service.SimpleLinkService;\n }\n});\nObject.defineProperty(exports, \"DownloadManager\", {\n enumerable: true,\n get: function () {\n return _download_manager.DownloadManager;\n }\n});\nObject.defineProperty(exports, \"GenericL10n\", {\n enumerable: true,\n get: function () {\n return _genericl10n.GenericL10n;\n }\n});\nObject.defineProperty(exports, \"PDFFindController\", {\n enumerable: true,\n get: function () {\n return _pdf_find_controller.PDFFindController;\n }\n});\nObject.defineProperty(exports, \"PDFHistory\", {\n enumerable: true,\n get: function () {\n return _pdf_history.PDFHistory;\n }\n});\nObject.defineProperty(exports, \"PDFPageView\", {\n enumerable: true,\n get: function () {\n return _pdf_page_view.PDFPageView;\n }\n});\nObject.defineProperty(exports, \"PDFSinglePageViewer\", {\n enumerable: true,\n get: function () {\n return _pdf_single_page_viewer.PDFSinglePageViewer;\n }\n});\nObject.defineProperty(exports, \"PDFViewer\", {\n enumerable: true,\n get: function () {\n return _pdf_viewer.PDFViewer;\n }\n});\n\nvar _annotation_layer_builder = __w_pdfjs_require__(1);\n\nvar _text_layer_builder = __w_pdfjs_require__(5);\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_link_service = __w_pdfjs_require__(4);\n\nvar _download_manager = __w_pdfjs_require__(6);\n\nvar _genericl10n = __w_pdfjs_require__(8);\n\nvar _pdf_find_controller = __w_pdfjs_require__(10);\n\nvar _pdf_history = __w_pdfjs_require__(12);\n\nvar _pdf_page_view = __w_pdfjs_require__(13);\n\nvar _pdf_single_page_viewer = __w_pdfjs_require__(15);\n\nvar _pdf_viewer = __w_pdfjs_require__(17);\n\nconst pdfjsVersion = '2.5.207';\nconst pdfjsBuild = '0974d605';\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DefaultAnnotationLayerFactory = exports.AnnotationLayerBuilder = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_link_service = __w_pdfjs_require__(4);\n\nclass AnnotationLayerBuilder {\n constructor({\n pageDiv,\n pdfPage,\n linkService,\n downloadManager,\n imageResourcesPath = \"\",\n renderInteractiveForms = false,\n l10n = _ui_utils.NullL10n\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.linkService = linkService;\n this.downloadManager = downloadManager;\n this.imageResourcesPath = imageResourcesPath;\n this.renderInteractiveForms = renderInteractiveForms;\n this.l10n = l10n;\n this.div = null;\n this._cancelled = false;\n }\n\n render(viewport, intent = \"display\") {\n this.pdfPage.getAnnotations({\n intent\n }).then(annotations => {\n if (this._cancelled) {\n return;\n }\n\n const parameters = {\n viewport: viewport.clone({\n dontFlip: true\n }),\n div: this.div,\n annotations,\n page: this.pdfPage,\n imageResourcesPath: this.imageResourcesPath,\n renderInteractiveForms: this.renderInteractiveForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager\n };\n\n if (this.div) {\n _pdfjsLib.AnnotationLayer.update(parameters);\n } else {\n if (annotations.length === 0) {\n return;\n }\n\n this.div = document.createElement(\"div\");\n this.div.className = \"annotationLayer\";\n this.pageDiv.appendChild(this.div);\n parameters.div = this.div;\n\n _pdfjsLib.AnnotationLayer.render(parameters);\n\n this.l10n.translate(this.div);\n }\n });\n }\n\n cancel() {\n this._cancelled = true;\n }\n\n hide() {\n if (!this.div) {\n return;\n }\n\n this.div.setAttribute(\"hidden\", \"true\");\n }\n\n}\n\nexports.AnnotationLayerBuilder = AnnotationLayerBuilder;\n\nclass DefaultAnnotationLayerFactory {\n createAnnotationLayerBuilder(pageDiv, pdfPage, imageResourcesPath = \"\", renderInteractiveForms = false, l10n = _ui_utils.NullL10n) {\n return new AnnotationLayerBuilder({\n pageDiv,\n pdfPage,\n imageResourcesPath,\n renderInteractiveForms,\n linkService: new _pdf_link_service.SimpleLinkService(),\n l10n\n });\n }\n\n}\n\nexports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nlet pdfjsLib;\n\nif (typeof window !== \"undefined\" && window[\"pdfjs-dist/build/pdf\"]) {\n pdfjsLib = window[\"pdfjs-dist/build/pdf\"];\n} else {\n pdfjsLib = require(\"../build/pdf.js\");\n}\n\nmodule.exports = pdfjsLib;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isValidRotation = isValidRotation;\nexports.isValidScrollMode = isValidScrollMode;\nexports.isValidSpreadMode = isValidSpreadMode;\nexports.isPortraitOrientation = isPortraitOrientation;\nexports.clamp = clamp;\nexports.getPDFFileNameFromURL = getPDFFileNameFromURL;\nexports.noContextMenuHandler = noContextMenuHandler;\nexports.parseQueryString = parseQueryString;\nexports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;\nexports.getVisibleElements = getVisibleElements;\nexports.roundToDivide = roundToDivide;\nexports.getPageSizeInches = getPageSizeInches;\nexports.approximateFraction = approximateFraction;\nexports.getOutputScale = getOutputScale;\nexports.scrollIntoView = scrollIntoView;\nexports.watchScroll = watchScroll;\nexports.binarySearchFirstItem = binarySearchFirstItem;\nexports.normalizeWheelEventDelta = normalizeWheelEventDelta;\nexports.waitOnEventOrTimeout = waitOnEventOrTimeout;\nexports.moveToEndOfArray = moveToEndOfArray;\nexports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = exports.AutoPrintRegExp = void 0;\nconst CSS_UNITS = 96.0 / 72.0;\nexports.CSS_UNITS = CSS_UNITS;\nconst DEFAULT_SCALE_VALUE = \"auto\";\nexports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;\nconst DEFAULT_SCALE = 1.0;\nexports.DEFAULT_SCALE = DEFAULT_SCALE;\nconst MIN_SCALE = 0.1;\nexports.MIN_SCALE = MIN_SCALE;\nconst MAX_SCALE = 10.0;\nexports.MAX_SCALE = MAX_SCALE;\nconst UNKNOWN_SCALE = 0;\nexports.UNKNOWN_SCALE = UNKNOWN_SCALE;\nconst MAX_AUTO_SCALE = 1.25;\nexports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;\nconst SCROLLBAR_PADDING = 40;\nexports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;\nconst VERTICAL_PADDING = 5;\nexports.VERTICAL_PADDING = VERTICAL_PADDING;\nconst PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3\n};\nexports.PresentationModeState = PresentationModeState;\nconst RendererType = {\n CANVAS: \"canvas\",\n SVG: \"svg\"\n};\nexports.RendererType = RendererType;\nconst TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_ENHANCE: 2\n};\nexports.TextLayerMode = TextLayerMode;\nconst ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0,\n HORIZONTAL: 1,\n WRAPPED: 2\n};\nexports.ScrollMode = ScrollMode;\nconst SpreadMode = {\n UNKNOWN: -1,\n NONE: 0,\n ODD: 1,\n EVEN: 2\n};\nexports.SpreadMode = SpreadMode;\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\nexports.AutoPrintRegExp = AutoPrintRegExp;\n\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n\n return text.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\n\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n\n async getDirection() {\n return \"ltr\";\n },\n\n async get(property, args, fallback) {\n return formatL10nValue(fallback, args);\n },\n\n async translate(element) {}\n\n};\nexports.NullL10n = NullL10n;\n\nfunction getOutputScale(ctx) {\n const devicePixelRatio = window.devicePixelRatio || 1;\n const backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;\n const pixelRatio = devicePixelRatio / backingStoreRatio;\n return {\n sx: pixelRatio,\n sy: pixelRatio,\n scaled: pixelRatio !== 1\n };\n}\n\nfunction scrollIntoView(element, spot, skipOverflowHiddenElements = false) {\n let parent = element.offsetParent;\n\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n\n let offsetY = element.offsetTop + element.clientTop;\n let offsetX = element.offsetLeft + element.clientLeft;\n\n while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === \"hidden\") {\n if (parent.dataset._scaleY) {\n offsetY /= parent.dataset._scaleY;\n offsetX /= parent.dataset._scaleX;\n }\n\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n\n if (!parent) {\n return;\n }\n }\n\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n\n parent.scrollTop = offsetY;\n}\n\nfunction watchScroll(viewAreaElement, callback) {\n const debounceScroll = function (evt) {\n if (rAF) {\n return;\n }\n\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n const currentX = viewAreaElement.scrollLeft;\n const lastX = state.lastX;\n\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n\n state.lastX = currentX;\n const currentY = viewAreaElement.scrollTop;\n const lastY = state.lastY;\n\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n\n state.lastY = currentY;\n callback(state);\n });\n };\n\n const state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll\n };\n let rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, true);\n return state;\n}\n\nfunction parseQueryString(query) {\n const parts = query.split(\"&\");\n const params = Object.create(null);\n\n for (let i = 0, ii = parts.length; i < ii; ++i) {\n const param = parts[i].split(\"=\");\n const key = param[0].toLowerCase();\n const value = param.length > 1 ? param[1] : null;\n params[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n\n return params;\n}\n\nfunction binarySearchFirstItem(items, condition) {\n let minIndex = 0;\n let maxIndex = items.length - 1;\n\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n const currentIndex = minIndex + maxIndex >> 1;\n const currentItem = items[currentIndex];\n\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n\n return minIndex;\n}\n\nfunction approximateFraction(x) {\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n\n const xinv = 1 / x;\n const limit = 8;\n\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n\n const x_ = x > 1 ? xinv : x;\n let a = 0,\n b = 1,\n c = 1,\n d = 1;\n\n while (true) {\n const p = a + c,\n q = b + d;\n\n if (q > limit) {\n break;\n }\n\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n\n let result;\n\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n\n return result;\n}\n\nfunction roundToDivide(x, div) {\n const r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\n\nfunction getPageSizeInches({\n view,\n userUnit,\n rotate\n}) {\n const [x1, y1, x2, y2] = view;\n const changeOrientation = rotate % 180 !== 0;\n const width = (x2 - x1) / 72 * userUnit;\n const height = (y2 - y1) / 72 * userUnit;\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height\n };\n}\n\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n if (index < 2) {\n return index;\n }\n\n let elt = views[index].div;\n let pageTop = elt.offsetTop + elt.clientTop;\n\n if (pageTop >= top) {\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n\n for (let i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n break;\n }\n\n index = i;\n }\n\n return index;\n}\n\nfunction getVisibleElements(scrollEl, views, sortByVisibility = false, horizontal = false) {\n const top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n const left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n\n function isElementBottomAfterViewTop(view) {\n const element = view.div;\n const elementBottom = element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n\n function isElementRightAfterViewLeft(view) {\n const element = view.div;\n const elementRight = element.offsetLeft + element.clientLeft + element.clientWidth;\n return elementRight > left;\n }\n\n const visible = [],\n numViews = views.length;\n let firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop);\n\n if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n }\n\n let lastEdge = horizontal ? right : -1;\n\n for (let i = firstVisibleElementInd; i < numViews; i++) {\n const view = views[i],\n element = view.div;\n const currentWidth = element.offsetLeft + element.clientLeft;\n const currentHeight = element.offsetTop + element.clientTop;\n const viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n const viewRight = currentWidth + viewWidth;\n const viewBottom = currentHeight + viewHeight;\n\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n\n if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {\n continue;\n }\n\n const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n const percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0;\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view,\n percent\n });\n }\n\n const first = visible[0],\n last = visible[visible.length - 1];\n\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n const pc = a.percent - b.percent;\n\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n\n return a.id - b.id;\n });\n }\n\n return {\n first,\n last,\n views: visible\n };\n}\n\nfunction noContextMenuHandler(evt) {\n evt.preventDefault();\n}\n\nfunction isDataSchema(url) {\n let i = 0;\n const ii = url.length;\n\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction getPDFFileNameFromURL(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n\n if (isDataSchema(url)) {\n console.warn(\"getPDFFileNameFromURL: \" + 'ignoring \"data:\" URL for performance reasons.');\n return defaultFilename;\n }\n\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^\\/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^\\/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n\n return suggestedFilename || defaultFilename;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n let delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY);\n const angle = Math.atan2(evt.deltaY, evt.deltaX);\n\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n delta = -delta;\n }\n\n const MOUSE_DOM_DELTA_PIXEL_MODE = 0;\n const MOUSE_DOM_DELTA_LINE_MODE = 1;\n const MOUSE_PIXELS_PER_LINE = 30;\n const MOUSE_LINES_PER_PAGE = 30;\n\n if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n\n return delta;\n}\n\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isValidScrollMode(mode) {\n return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;\n}\n\nfunction isValidSpreadMode(mode) {\n return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;\n}\n\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\n\nconst WaitOnType = {\n EVENT: \"event\",\n TIMEOUT: \"timeout\"\n};\nexports.WaitOnType = WaitOnType;\n\nfunction waitOnEventOrTimeout({\n target,\n name,\n delay = 0\n}) {\n return new Promise(function (resolve, reject) {\n if (typeof target !== \"object\" || !(name && typeof name === \"string\") || !(Number.isInteger(delay) && delay >= 0)) {\n throw new Error(\"waitOnEventOrTimeout - invalid parameters.\");\n }\n\n function handler(type) {\n if (target instanceof EventBus) {\n target._off(name, eventHandler);\n } else {\n target.removeEventListener(name, eventHandler);\n }\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n resolve(type);\n }\n\n const eventHandler = handler.bind(null, WaitOnType.EVENT);\n\n if (target instanceof EventBus) {\n target._on(name, eventHandler);\n } else {\n target.addEventListener(name, eventHandler);\n }\n\n const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);\n const timeout = setTimeout(timeoutHandler, delay);\n });\n}\n\nconst animationStarted = new Promise(function (resolve) {\n window.requestAnimationFrame(resolve);\n});\nexports.animationStarted = animationStarted;\n\nfunction dispatchDOMEvent(eventName, args = null) {\n throw new Error(\"Not implemented: dispatchDOMEvent\");\n}\n\nclass EventBus {\n constructor(options) {\n this._listeners = Object.create(null);\n }\n\n on(eventName, listener) {\n this._on(eventName, listener, {\n external: true\n });\n }\n\n off(eventName, listener) {\n this._off(eventName, listener, {\n external: true\n });\n }\n\n dispatch(eventName) {\n const eventListeners = this._listeners[eventName];\n\n if (!eventListeners || eventListeners.length === 0) {\n return;\n }\n\n const args = Array.prototype.slice.call(arguments, 1);\n let externalListeners;\n eventListeners.slice(0).forEach(function ({\n listener,\n external\n }) {\n if (external) {\n if (!externalListeners) {\n externalListeners = [];\n }\n\n externalListeners.push(listener);\n return;\n }\n\n listener.apply(null, args);\n });\n\n if (externalListeners) {\n externalListeners.forEach(function (listener) {\n listener.apply(null, args);\n });\n externalListeners = null;\n }\n }\n\n _on(eventName, listener, options = null) {\n let eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n this._listeners[eventName] = eventListeners = [];\n }\n\n eventListeners.push({\n listener,\n external: (options && options.external) === true\n });\n }\n\n _off(eventName, listener, options = null) {\n const eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n return;\n }\n\n for (let i = 0, ii = eventListeners.length; i < ii; i++) {\n if (eventListeners[i].listener === listener) {\n eventListeners.splice(i, 1);\n return;\n }\n }\n }\n\n}\n\nexports.EventBus = EventBus;\n\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\nclass ProgressBar {\n constructor(id, {\n height,\n width,\n units\n } = {}) {\n this.visible = true;\n this.div = document.querySelector(id + \" .progress\");\n this.bar = this.div.parentNode;\n this.height = height || 100;\n this.width = width || 100;\n this.units = units || \"%\";\n this.div.style.height = this.height + this.units;\n this.percent = 0;\n }\n\n _updateBar() {\n if (this._indeterminate) {\n this.div.classList.add(\"indeterminate\");\n this.div.style.width = this.width + this.units;\n return;\n }\n\n this.div.classList.remove(\"indeterminate\");\n const progressSize = this.width * this._percent / 100;\n this.div.style.width = progressSize + this.units;\n }\n\n get percent() {\n return this._percent;\n }\n\n set percent(val) {\n this._indeterminate = isNaN(val);\n this._percent = clamp(val, 0, 100);\n\n this._updateBar();\n }\n\n setWidth(viewer) {\n if (!viewer) {\n return;\n }\n\n const container = viewer.parentNode;\n const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n\n if (scrollbarWidth > 0) {\n this.bar.style.width = `calc(100% - ${scrollbarWidth}px)`;\n }\n }\n\n hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n this.bar.classList.add(\"hidden\");\n document.body.classList.remove(\"loadingInProgress\");\n }\n\n show() {\n if (this.visible) {\n return;\n }\n\n this.visible = true;\n document.body.classList.add(\"loadingInProgress\");\n this.bar.classList.remove(\"hidden\");\n }\n\n}\n\nexports.ProgressBar = ProgressBar;\n\nfunction moveToEndOfArray(arr, condition) {\n const moved = [],\n len = arr.length;\n let write = 0;\n\n for (let read = 0; read < len; ++read) {\n if (condition(arr[read])) {\n moved.push(arr[read]);\n } else {\n arr[write] = arr[read];\n ++write;\n }\n }\n\n for (let read = 0; write < len; ++read, ++write) {\n arr[write] = moved[read];\n }\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleLinkService = exports.PDFLinkService = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nclass PDFLinkService {\n constructor({\n eventBus,\n externalLinkTarget = null,\n externalLinkRel = null,\n externalLinkEnabled = true,\n ignoreDestinationZoom = false\n } = {}) {\n this.eventBus = eventBus;\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this.externalLinkEnabled = externalLinkEnabled;\n this._ignoreDestinationZoom = ignoreDestinationZoom;\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n this._pagesRefCache = null;\n }\n\n setDocument(pdfDocument, baseUrl = null) {\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n this._pagesRefCache = Object.create(null);\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n\n get page() {\n return this.pdfViewer.currentPageNumber;\n }\n\n set page(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n\n get rotation() {\n return this.pdfViewer.pagesRotation;\n }\n\n set rotation(value) {\n this.pdfViewer.pagesRotation = value;\n }\n\n navigateTo(dest) {\n const goToDestination = ({\n namedDest,\n explicitDest\n }) => {\n const destRef = explicitDest[0];\n let pageNumber;\n\n if (destRef instanceof Object) {\n pageNumber = this._cachedPageNumber(destRef);\n\n if (pageNumber === null) {\n this.pdfDocument.getPageIndex(destRef).then(pageIndex => {\n this.cachePageRef(pageIndex + 1, destRef);\n goToDestination({\n namedDest,\n explicitDest\n });\n }).catch(() => {\n console.error(`PDFLinkService.navigateTo: \"${destRef}\" is not ` + `a valid page reference, for dest=\"${dest}\".`);\n });\n return;\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n } else {\n console.error(`PDFLinkService.navigateTo: \"${destRef}\" is not ` + `a valid destination reference, for dest=\"${dest}\".`);\n return;\n }\n\n if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(`PDFLinkService.navigateTo: \"${pageNumber}\" is not ` + `a valid page number, for dest=\"${dest}\".`);\n return;\n }\n\n if (this.pdfHistory) {\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.push({\n namedDest,\n explicitDest,\n pageNumber\n });\n }\n\n this.pdfViewer.scrollPageIntoView({\n pageNumber,\n destArray: explicitDest,\n ignoreDestinationZoom: this._ignoreDestinationZoom\n });\n };\n\n new Promise((resolve, reject) => {\n if (typeof dest === \"string\") {\n this.pdfDocument.getDestination(dest).then(destArray => {\n resolve({\n namedDest: dest,\n explicitDest: destArray\n });\n });\n return;\n }\n\n resolve({\n namedDest: \"\",\n explicitDest: dest\n });\n }).then(data => {\n if (!Array.isArray(data.explicitDest)) {\n console.error(`PDFLinkService.navigateTo: \"${data.explicitDest}\" is` + ` not a valid destination array, for dest=\"${dest}\".`);\n return;\n }\n\n goToDestination(data);\n });\n }\n\n getDestinationHash(dest) {\n if (typeof dest === \"string\") {\n return this.getAnchorUrl(\"#\" + escape(dest));\n }\n\n if (Array.isArray(dest)) {\n const str = JSON.stringify(dest);\n return this.getAnchorUrl(\"#\" + escape(str));\n }\n\n return this.getAnchorUrl(\"\");\n }\n\n getAnchorUrl(anchor) {\n return (this.baseUrl || \"\") + anchor;\n }\n\n setHash(hash) {\n let pageNumber, dest;\n\n if (hash.includes(\"=\")) {\n const params = (0, _ui_utils.parseQueryString)(hash);\n\n if (\"search\" in params) {\n this.eventBus.dispatch(\"findfromurlhash\", {\n source: this,\n query: params.search.replace(/\"/g, \"\"),\n phraseSearch: params.phrase === \"true\"\n });\n }\n\n if (\"page\" in params) {\n pageNumber = params.page | 0 || 1;\n }\n\n if (\"zoom\" in params) {\n const zoomArgs = params.zoom.split(\",\");\n const zoomArg = zoomArgs[0];\n const zoomArgNumber = parseFloat(zoomArg);\n\n if (!zoomArg.includes(\"Fit\")) {\n dest = [null, {\n name: \"XYZ\"\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];\n } else {\n if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n dest = [null, {\n name: zoomArg\n }];\n } else if (zoomArg === \"FitH\" || zoomArg === \"FitBH\" || zoomArg === \"FitV\" || zoomArg === \"FitBV\") {\n dest = [null, {\n name: zoomArg\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];\n } else if (zoomArg === \"FitR\") {\n if (zoomArgs.length !== 5) {\n console.error('PDFLinkService.setHash: Not enough parameters for \"FitR\".');\n } else {\n dest = [null, {\n name: zoomArg\n }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];\n }\n } else {\n console.error(`PDFLinkService.setHash: \"${zoomArg}\" is not ` + \"a valid zoom value.\");\n }\n }\n }\n\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true\n });\n } else if (pageNumber) {\n this.page = pageNumber;\n }\n\n if (\"pagemode\" in params) {\n this.eventBus.dispatch(\"pagemode\", {\n source: this,\n mode: params.pagemode\n });\n }\n\n if (\"nameddest\" in params) {\n this.navigateTo(params.nameddest);\n }\n } else {\n dest = unescape(hash);\n\n try {\n dest = JSON.parse(dest);\n\n if (!Array.isArray(dest)) {\n dest = dest.toString();\n }\n } catch (ex) {}\n\n if (typeof dest === \"string\" || isValidExplicitDestination(dest)) {\n this.navigateTo(dest);\n return;\n }\n\n console.error(`PDFLinkService.setHash: \"${unescape(hash)}\" is not ` + \"a valid destination.\");\n }\n }\n\n executeNamedAction(action) {\n switch (action) {\n case \"GoBack\":\n if (this.pdfHistory) {\n this.pdfHistory.back();\n }\n\n break;\n\n case \"GoForward\":\n if (this.pdfHistory) {\n this.pdfHistory.forward();\n }\n\n break;\n\n case \"NextPage\":\n if (this.page < this.pagesCount) {\n this.page++;\n }\n\n break;\n\n case \"PrevPage\":\n if (this.page > 1) {\n this.page--;\n }\n\n break;\n\n case \"LastPage\":\n this.page = this.pagesCount;\n break;\n\n case \"FirstPage\":\n this.page = 1;\n break;\n\n default:\n break;\n }\n\n this.eventBus.dispatch(\"namedaction\", {\n source: this,\n action\n });\n }\n\n cachePageRef(pageNum, pageRef) {\n if (!pageRef) {\n return;\n }\n\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n this._pagesRefCache[refStr] = pageNum;\n }\n\n _cachedPageNumber(pageRef) {\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n return this._pagesRefCache && this._pagesRefCache[refStr] || null;\n }\n\n isPageVisible(pageNumber) {\n return this.pdfViewer.isPageVisible(pageNumber);\n }\n\n}\n\nexports.PDFLinkService = PDFLinkService;\n\nfunction isValidExplicitDestination(dest) {\n if (!Array.isArray(dest)) {\n return false;\n }\n\n const destLength = dest.length;\n\n if (destLength < 2) {\n return false;\n }\n\n const page = dest[0];\n\n if (!(typeof page === \"object\" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) {\n return false;\n }\n\n const zoom = dest[1];\n\n if (!(typeof zoom === \"object\" && typeof zoom.name === \"string\")) {\n return false;\n }\n\n let allowNull = true;\n\n switch (zoom.name) {\n case \"XYZ\":\n if (destLength !== 5) {\n return false;\n }\n\n break;\n\n case \"Fit\":\n case \"FitB\":\n return destLength === 2;\n\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (destLength !== 3) {\n return false;\n }\n\n break;\n\n case \"FitR\":\n if (destLength !== 6) {\n return false;\n }\n\n allowNull = false;\n break;\n\n default:\n return false;\n }\n\n for (let i = 2; i < destLength; i++) {\n const param = dest[i];\n\n if (!(typeof param === \"number\" || allowNull && param === null)) {\n return false;\n }\n }\n\n return true;\n}\n\nclass SimpleLinkService {\n constructor() {\n this.externalLinkTarget = null;\n this.externalLinkRel = null;\n this.externalLinkEnabled = true;\n this._ignoreDestinationZoom = false;\n }\n\n get pagesCount() {\n return 0;\n }\n\n get page() {\n return 0;\n }\n\n set page(value) {}\n\n get rotation() {\n return 0;\n }\n\n set rotation(value) {}\n\n navigateTo(dest) {}\n\n getDestinationHash(dest) {\n return \"#\";\n }\n\n getAnchorUrl(hash) {\n return \"#\";\n }\n\n setHash(hash) {}\n\n executeNamedAction(action) {}\n\n cachePageRef(pageNum, pageRef) {}\n\n isPageVisible(pageNumber) {\n return true;\n }\n\n}\n\nexports.SimpleLinkService = SimpleLinkService;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DefaultTextLayerFactory = exports.TextLayerBuilder = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nconst EXPAND_DIVS_TIMEOUT = 300;\n\nclass TextLayerBuilder {\n constructor({\n textLayerDiv,\n eventBus,\n pageIndex,\n viewport,\n findController = null,\n enhanceTextSelection = false\n }) {\n this.textLayerDiv = textLayerDiv;\n this.eventBus = eventBus;\n this.textContent = null;\n this.textContentItemsStr = [];\n this.textContentStream = null;\n this.renderingDone = false;\n this.pageIdx = pageIndex;\n this.pageNumber = this.pageIdx + 1;\n this.matches = [];\n this.viewport = viewport;\n this.textDivs = [];\n this.findController = findController;\n this.textLayerRenderTask = null;\n this.enhanceTextSelection = enhanceTextSelection;\n this._onUpdateTextLayerMatches = null;\n\n this._bindMouse();\n }\n\n _finishRendering() {\n this.renderingDone = true;\n\n if (!this.enhanceTextSelection) {\n const endOfContent = document.createElement(\"div\");\n endOfContent.className = \"endOfContent\";\n this.textLayerDiv.appendChild(endOfContent);\n }\n\n this.eventBus.dispatch(\"textlayerrendered\", {\n source: this,\n pageNumber: this.pageNumber,\n numTextDivs: this.textDivs.length\n });\n }\n\n render(timeout = 0) {\n if (!(this.textContent || this.textContentStream) || this.renderingDone) {\n return;\n }\n\n this.cancel();\n this.textDivs = [];\n const textLayerFrag = document.createDocumentFragment();\n this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({\n textContent: this.textContent,\n textContentStream: this.textContentStream,\n container: textLayerFrag,\n viewport: this.viewport,\n textDivs: this.textDivs,\n textContentItemsStr: this.textContentItemsStr,\n timeout,\n enhanceTextSelection: this.enhanceTextSelection\n });\n this.textLayerRenderTask.promise.then(() => {\n this.textLayerDiv.appendChild(textLayerFrag);\n\n this._finishRendering();\n\n this._updateMatches();\n }, function (reason) {});\n\n if (!this._onUpdateTextLayerMatches) {\n this._onUpdateTextLayerMatches = evt => {\n if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) {\n this._updateMatches();\n }\n };\n\n this.eventBus._on(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n }\n }\n\n cancel() {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.cancel();\n this.textLayerRenderTask = null;\n }\n\n if (this._onUpdateTextLayerMatches) {\n this.eventBus._off(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n\n this._onUpdateTextLayerMatches = null;\n }\n }\n\n setTextContentStream(readableStream) {\n this.cancel();\n this.textContentStream = readableStream;\n }\n\n setTextContent(textContent) {\n this.cancel();\n this.textContent = textContent;\n }\n\n _convertMatches(matches, matchesLength) {\n if (!matches) {\n return [];\n }\n\n const {\n findController,\n textContentItemsStr\n } = this;\n let i = 0,\n iIndex = 0;\n const end = textContentItemsStr.length - 1;\n const queryLen = findController.state.query.length;\n const result = [];\n\n for (let m = 0, mm = matches.length; m < mm; m++) {\n let matchIdx = matches[m];\n\n while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n\n if (i === textContentItemsStr.length) {\n console.error(\"Could not find a matching mapping\");\n }\n\n const match = {\n begin: {\n divIdx: i,\n offset: matchIdx - iIndex\n }\n };\n\n if (matchesLength) {\n matchIdx += matchesLength[m];\n } else {\n matchIdx += queryLen;\n }\n\n while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n\n match.end = {\n divIdx: i,\n offset: matchIdx - iIndex\n };\n result.push(match);\n }\n\n return result;\n }\n\n _renderMatches(matches) {\n if (matches.length === 0) {\n return;\n }\n\n const {\n findController,\n pageIdx,\n textContentItemsStr,\n textDivs\n } = this;\n const isSelectedPage = pageIdx === findController.selected.pageIdx;\n const selectedMatchIdx = findController.selected.matchIdx;\n const highlightAll = findController.state.highlightAll;\n let prevEnd = null;\n const infinity = {\n divIdx: -1,\n offset: undefined\n };\n\n function beginText(begin, className) {\n const divIdx = begin.divIdx;\n textDivs[divIdx].textContent = \"\";\n appendTextToDiv(divIdx, 0, begin.offset, className);\n }\n\n function appendTextToDiv(divIdx, fromOffset, toOffset, className) {\n const div = textDivs[divIdx];\n const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);\n const node = document.createTextNode(content);\n\n if (className) {\n const span = document.createElement(\"span\");\n span.className = className;\n span.appendChild(node);\n div.appendChild(span);\n return;\n }\n\n div.appendChild(node);\n }\n\n let i0 = selectedMatchIdx,\n i1 = i0 + 1;\n\n if (highlightAll) {\n i0 = 0;\n i1 = matches.length;\n } else if (!isSelectedPage) {\n return;\n }\n\n for (let i = i0; i < i1; i++) {\n const match = matches[i];\n const begin = match.begin;\n const end = match.end;\n const isSelected = isSelectedPage && i === selectedMatchIdx;\n const highlightSuffix = isSelected ? \" selected\" : \"\";\n\n if (isSelected) {\n findController.scrollMatchIntoView({\n element: textDivs[begin.divIdx],\n pageIndex: pageIdx,\n matchIndex: selectedMatchIdx\n });\n }\n\n if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {\n if (prevEnd !== null) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n\n beginText(begin);\n } else {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);\n }\n\n if (begin.divIdx === end.divIdx) {\n appendTextToDiv(begin.divIdx, begin.offset, end.offset, \"highlight\" + highlightSuffix);\n } else {\n appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, \"highlight begin\" + highlightSuffix);\n\n for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {\n textDivs[n0].className = \"highlight middle\" + highlightSuffix;\n }\n\n beginText(end, \"highlight end\" + highlightSuffix);\n }\n\n prevEnd = end;\n }\n\n if (prevEnd) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n }\n\n _updateMatches() {\n if (!this.renderingDone) {\n return;\n }\n\n const {\n findController,\n matches,\n pageIdx,\n textContentItemsStr,\n textDivs\n } = this;\n let clearedUntilDivIdx = -1;\n\n for (let i = 0, ii = matches.length; i < ii; i++) {\n const match = matches[i];\n const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);\n\n for (let n = begin, end = match.end.divIdx; n <= end; n++) {\n const div = textDivs[n];\n div.textContent = textContentItemsStr[n];\n div.className = \"\";\n }\n\n clearedUntilDivIdx = match.end.divIdx + 1;\n }\n\n if (!findController || !findController.highlightMatches) {\n return;\n }\n\n const pageMatches = findController.pageMatches[pageIdx] || null;\n const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;\n this.matches = this._convertMatches(pageMatches, pageMatchesLength);\n\n this._renderMatches(this.matches);\n }\n\n _bindMouse() {\n const div = this.textLayerDiv;\n let expandDivsTimer = null;\n div.addEventListener(\"mousedown\", evt => {\n if (this.enhanceTextSelection && this.textLayerRenderTask) {\n this.textLayerRenderTask.expandTextDivs(true);\n\n if (expandDivsTimer) {\n clearTimeout(expandDivsTimer);\n expandDivsTimer = null;\n }\n\n return;\n }\n\n const end = div.querySelector(\".endOfContent\");\n\n if (!end) {\n return;\n }\n\n let adjustTop = evt.target !== div;\n adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue(\"-moz-user-select\") !== \"none\";\n\n if (adjustTop) {\n const divBounds = div.getBoundingClientRect();\n const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);\n end.style.top = (r * 100).toFixed(2) + \"%\";\n }\n\n end.classList.add(\"active\");\n });\n div.addEventListener(\"mouseup\", () => {\n if (this.enhanceTextSelection && this.textLayerRenderTask) {\n expandDivsTimer = setTimeout(() => {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.expandTextDivs(false);\n }\n\n expandDivsTimer = null;\n }, EXPAND_DIVS_TIMEOUT);\n return;\n }\n\n const end = div.querySelector(\".endOfContent\");\n\n if (!end) {\n return;\n }\n\n end.style.top = \"\";\n end.classList.remove(\"active\");\n });\n }\n\n}\n\nexports.TextLayerBuilder = TextLayerBuilder;\n\nclass DefaultTextLayerFactory {\n createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) {\n return new TextLayerBuilder({\n textLayerDiv,\n pageIndex,\n viewport,\n enhanceTextSelection,\n eventBus\n });\n }\n\n}\n\nexports.DefaultTextLayerFactory = DefaultTextLayerFactory;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DownloadManager = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _viewer_compatibility = __w_pdfjs_require__(7);\n\n;\nconst DISABLE_CREATE_OBJECT_URL = _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL || false;\n\nfunction download(blobUrl, filename) {\n const a = document.createElement(\"a\");\n\n if (!a.click) {\n throw new Error('DownloadManager: \"a.click()\" is not supported.');\n }\n\n a.href = blobUrl;\n a.target = \"_parent\";\n\n if (\"download\" in a) {\n a.download = filename;\n }\n\n (document.body || document.documentElement).appendChild(a);\n a.click();\n a.remove();\n}\n\nclass DownloadManager {\n constructor({\n disableCreateObjectURL = DISABLE_CREATE_OBJECT_URL\n }) {\n this.disableCreateObjectURL = disableCreateObjectURL;\n }\n\n downloadUrl(url, filename) {\n if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, \"http://example.com\")) {\n return;\n }\n\n download(url + \"#pdfjs.action=download\", filename);\n }\n\n downloadData(data, filename, contentType) {\n if (navigator.msSaveBlob) {\n navigator.msSaveBlob(new Blob([data], {\n type: contentType\n }), filename);\n return;\n }\n\n const blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, this.disableCreateObjectURL);\n download(blobUrl, filename);\n }\n\n download(blob, url, filename) {\n if (navigator.msSaveBlob) {\n if (!navigator.msSaveBlob(blob, filename)) {\n this.downloadUrl(url, filename);\n }\n\n return;\n }\n\n if (this.disableCreateObjectURL) {\n this.downloadUrl(url, filename);\n return;\n }\n\n const blobUrl = URL.createObjectURL(blob);\n download(blobUrl, filename);\n }\n\n}\n\nexports.DownloadManager = DownloadManager;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.viewerCompatibilityParams = void 0;\nconst compatibilityParams = Object.create(null);\n{\n const userAgent = typeof navigator !== \"undefined\" && navigator.userAgent || \"\";\n const platform = typeof navigator !== \"undefined\" && navigator.platform || \"\";\n const maxTouchPoints = typeof navigator !== \"undefined\" && navigator.maxTouchPoints || 1;\n const isAndroid = /Android/.test(userAgent);\n const isIE = /Trident/.test(userAgent);\n const isIOS = /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === \"MacIntel\" && maxTouchPoints > 1;\n const isIOSChrome = /CriOS/.test(userAgent);\n\n (function checkOnBlobSupport() {\n if (isIE || isIOSChrome) {\n compatibilityParams.disableCreateObjectURL = true;\n }\n })();\n\n (function checkCanvasSizeLimitation() {\n if (isIOS || isAndroid) {\n compatibilityParams.maxCanvasPixels = 5242880;\n }\n })();\n}\nconst viewerCompatibilityParams = Object.freeze(compatibilityParams);\nexports.viewerCompatibilityParams = viewerCompatibilityParams;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GenericL10n = void 0;\n\n__w_pdfjs_require__(9);\n\nconst webL10n = document.webL10n;\n\nclass GenericL10n {\n constructor(lang) {\n this._lang = lang;\n this._ready = new Promise((resolve, reject) => {\n webL10n.setLanguage(lang, () => {\n resolve(webL10n);\n });\n });\n }\n\n async getLanguage() {\n const l10n = await this._ready;\n return l10n.getLanguage();\n }\n\n async getDirection() {\n const l10n = await this._ready;\n return l10n.getDirection();\n }\n\n async get(property, args, fallback) {\n const l10n = await this._ready;\n return l10n.get(property, args, fallback);\n }\n\n async translate(element) {\n const l10n = await this._ready;\n return l10n.translate(element);\n }\n\n}\n\nexports.GenericL10n = GenericL10n;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\ndocument.webL10n = function (window, document, undefined) {\n var gL10nData = {};\n var gTextData = '';\n var gTextProp = 'textContent';\n var gLanguage = '';\n var gMacros = {};\n var gReadyState = 'loading';\n var gAsyncResourceLoading = true;\n\n function getL10nResourceLinks() {\n return document.querySelectorAll('link[type=\"application/l10n\"]');\n }\n\n function getL10nDictionary() {\n var script = document.querySelector('script[type=\"application/l10n\"]');\n return script ? JSON.parse(script.innerHTML) : null;\n }\n\n function getTranslatableChildren(element) {\n return element ? element.querySelectorAll('*[data-l10n-id]') : [];\n }\n\n function getL10nAttributes(element) {\n if (!element) return {};\n var l10nId = element.getAttribute('data-l10n-id');\n var l10nArgs = element.getAttribute('data-l10n-args');\n var args = {};\n\n if (l10nArgs) {\n try {\n args = JSON.parse(l10nArgs);\n } catch (e) {\n console.warn('could not parse arguments for #' + l10nId);\n }\n }\n\n return {\n id: l10nId,\n args: args\n };\n }\n\n function xhrLoadText(url, onSuccess, onFailure) {\n onSuccess = onSuccess || function _onSuccess(data) {};\n\n onFailure = onFailure || function _onFailure() {};\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, gAsyncResourceLoading);\n\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType('text/plain; charset=utf-8');\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n if (xhr.status == 200 || xhr.status === 0) {\n onSuccess(xhr.responseText);\n } else {\n onFailure();\n }\n }\n };\n\n xhr.onerror = onFailure;\n xhr.ontimeout = onFailure;\n\n try {\n xhr.send(null);\n } catch (e) {\n onFailure();\n }\n }\n\n function parseResource(href, lang, successCallback, failureCallback) {\n var baseURL = href.replace(/[^\\/]*$/, '') || './';\n\n function evalString(text) {\n if (text.lastIndexOf('\\\\') < 0) return text;\n return text.replace(/\\\\\\\\/g, '\\\\').replace(/\\\\n/g, '\\n').replace(/\\\\r/g, '\\r').replace(/\\\\t/g, '\\t').replace(/\\\\b/g, '\\b').replace(/\\\\f/g, '\\f').replace(/\\\\{/g, '{').replace(/\\\\}/g, '}').replace(/\\\\\"/g, '\"').replace(/\\\\'/g, \"'\");\n }\n\n function parseProperties(text, parsedPropertiesCallback) {\n var dictionary = {};\n var reBlank = /^\\s*|\\s*$/;\n var reComment = /^\\s*#|^\\s*$/;\n var reSection = /^\\s*\\[(.*)\\]\\s*$/;\n var reImport = /^\\s*@import\\s+url\\((.*)\\)\\s*$/i;\n var reSplit = /^([^=\\s]*)\\s*=\\s*(.+)$/;\n\n function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) {\n var entries = rawText.replace(reBlank, '').split(/[\\r\\n]+/);\n var currentLang = '*';\n var genericLang = lang.split('-', 1)[0];\n var skipLang = false;\n var match = '';\n\n function nextEntry() {\n while (true) {\n if (!entries.length) {\n parsedRawLinesCallback();\n return;\n }\n\n var line = entries.shift();\n if (reComment.test(line)) continue;\n\n if (extendedSyntax) {\n match = reSection.exec(line);\n\n if (match) {\n currentLang = match[1].toLowerCase();\n skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang;\n continue;\n } else if (skipLang) {\n continue;\n }\n\n match = reImport.exec(line);\n\n if (match) {\n loadImport(baseURL + match[1], nextEntry);\n return;\n }\n }\n\n var tmp = line.match(reSplit);\n\n if (tmp && tmp.length == 3) {\n dictionary[tmp[1]] = evalString(tmp[2]);\n }\n }\n }\n\n nextEntry();\n }\n\n function loadImport(url, callback) {\n xhrLoadText(url, function (content) {\n parseRawLines(content, false, callback);\n }, function () {\n console.warn(url + ' not found.');\n callback();\n });\n }\n\n parseRawLines(text, true, function () {\n parsedPropertiesCallback(dictionary);\n });\n }\n\n xhrLoadText(href, function (response) {\n gTextData += response;\n parseProperties(response, function (data) {\n for (var key in data) {\n var id,\n prop,\n index = key.lastIndexOf('.');\n\n if (index > 0) {\n id = key.substring(0, index);\n prop = key.substring(index + 1);\n } else {\n id = key;\n prop = gTextProp;\n }\n\n if (!gL10nData[id]) {\n gL10nData[id] = {};\n }\n\n gL10nData[id][prop] = data[key];\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n }, failureCallback);\n }\n\n function loadLocale(lang, callback) {\n if (lang) {\n lang = lang.toLowerCase();\n }\n\n callback = callback || function _callback() {};\n\n clear();\n gLanguage = lang;\n var langLinks = getL10nResourceLinks();\n var langCount = langLinks.length;\n\n if (langCount === 0) {\n var dict = getL10nDictionary();\n\n if (dict && dict.locales && dict.default_locale) {\n console.log('using the embedded JSON directory, early way out');\n gL10nData = dict.locales[lang];\n\n if (!gL10nData) {\n var defaultLocale = dict.default_locale.toLowerCase();\n\n for (var anyCaseLang in dict.locales) {\n anyCaseLang = anyCaseLang.toLowerCase();\n\n if (anyCaseLang === lang) {\n gL10nData = dict.locales[lang];\n break;\n } else if (anyCaseLang === defaultLocale) {\n gL10nData = dict.locales[defaultLocale];\n }\n }\n }\n\n callback();\n } else {\n console.log('no resource to load, early way out');\n }\n\n gReadyState = 'complete';\n return;\n }\n\n var onResourceLoaded = null;\n var gResourceCount = 0;\n\n onResourceLoaded = function () {\n gResourceCount++;\n\n if (gResourceCount >= langCount) {\n callback();\n gReadyState = 'complete';\n }\n };\n\n function L10nResourceLink(link) {\n var href = link.href;\n\n this.load = function (lang, callback) {\n parseResource(href, lang, callback, function () {\n console.warn(href + ' not found.');\n console.warn('\"' + lang + '\" resource not found');\n gLanguage = '';\n callback();\n });\n };\n }\n\n for (var i = 0; i < langCount; i++) {\n var resource = new L10nResourceLink(langLinks[i]);\n resource.load(lang, onResourceLoaded);\n }\n }\n\n function clear() {\n gL10nData = {};\n gTextData = '';\n gLanguage = '';\n }\n\n function getPluralRules(lang) {\n var locales2rules = {\n 'af': 3,\n 'ak': 4,\n 'am': 4,\n 'ar': 1,\n 'asa': 3,\n 'az': 0,\n 'be': 11,\n 'bem': 3,\n 'bez': 3,\n 'bg': 3,\n 'bh': 4,\n 'bm': 0,\n 'bn': 3,\n 'bo': 0,\n 'br': 20,\n 'brx': 3,\n 'bs': 11,\n 'ca': 3,\n 'cgg': 3,\n 'chr': 3,\n 'cs': 12,\n 'cy': 17,\n 'da': 3,\n 'de': 3,\n 'dv': 3,\n 'dz': 0,\n 'ee': 3,\n 'el': 3,\n 'en': 3,\n 'eo': 3,\n 'es': 3,\n 'et': 3,\n 'eu': 3,\n 'fa': 0,\n 'ff': 5,\n 'fi': 3,\n 'fil': 4,\n 'fo': 3,\n 'fr': 5,\n 'fur': 3,\n 'fy': 3,\n 'ga': 8,\n 'gd': 24,\n 'gl': 3,\n 'gsw': 3,\n 'gu': 3,\n 'guw': 4,\n 'gv': 23,\n 'ha': 3,\n 'haw': 3,\n 'he': 2,\n 'hi': 4,\n 'hr': 11,\n 'hu': 0,\n 'id': 0,\n 'ig': 0,\n 'ii': 0,\n 'is': 3,\n 'it': 3,\n 'iu': 7,\n 'ja': 0,\n 'jmc': 3,\n 'jv': 0,\n 'ka': 0,\n 'kab': 5,\n 'kaj': 3,\n 'kcg': 3,\n 'kde': 0,\n 'kea': 0,\n 'kk': 3,\n 'kl': 3,\n 'km': 0,\n 'kn': 0,\n 'ko': 0,\n 'ksb': 3,\n 'ksh': 21,\n 'ku': 3,\n 'kw': 7,\n 'lag': 18,\n 'lb': 3,\n 'lg': 3,\n 'ln': 4,\n 'lo': 0,\n 'lt': 10,\n 'lv': 6,\n 'mas': 3,\n 'mg': 4,\n 'mk': 16,\n 'ml': 3,\n 'mn': 3,\n 'mo': 9,\n 'mr': 3,\n 'ms': 0,\n 'mt': 15,\n 'my': 0,\n 'nah': 3,\n 'naq': 7,\n 'nb': 3,\n 'nd': 3,\n 'ne': 3,\n 'nl': 3,\n 'nn': 3,\n 'no': 3,\n 'nr': 3,\n 'nso': 4,\n 'ny': 3,\n 'nyn': 3,\n 'om': 3,\n 'or': 3,\n 'pa': 3,\n 'pap': 3,\n 'pl': 13,\n 'ps': 3,\n 'pt': 3,\n 'rm': 3,\n 'ro': 9,\n 'rof': 3,\n 'ru': 11,\n 'rwk': 3,\n 'sah': 0,\n 'saq': 3,\n 'se': 7,\n 'seh': 3,\n 'ses': 0,\n 'sg': 0,\n 'sh': 11,\n 'shi': 19,\n 'sk': 12,\n 'sl': 14,\n 'sma': 7,\n 'smi': 7,\n 'smj': 7,\n 'smn': 7,\n 'sms': 7,\n 'sn': 3,\n 'so': 3,\n 'sq': 3,\n 'sr': 11,\n 'ss': 3,\n 'ssy': 3,\n 'st': 3,\n 'sv': 3,\n 'sw': 3,\n 'syr': 3,\n 'ta': 3,\n 'te': 3,\n 'teo': 3,\n 'th': 0,\n 'ti': 4,\n 'tig': 3,\n 'tk': 3,\n 'tl': 4,\n 'tn': 3,\n 'to': 0,\n 'tr': 0,\n 'ts': 3,\n 'tzm': 22,\n 'uk': 11,\n 'ur': 3,\n 've': 3,\n 'vi': 0,\n 'vun': 3,\n 'wa': 4,\n 'wae': 3,\n 'wo': 0,\n 'xh': 3,\n 'xog': 3,\n 'yo': 0,\n 'zh': 0,\n 'zu': 3\n };\n\n function isIn(n, list) {\n return list.indexOf(n) !== -1;\n }\n\n function isBetween(n, start, end) {\n return start <= n && n <= end;\n }\n\n var pluralRules = {\n '0': function (n) {\n return 'other';\n },\n '1': function (n) {\n if (isBetween(n % 100, 3, 10)) return 'few';\n if (n === 0) return 'zero';\n if (isBetween(n % 100, 11, 99)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '2': function (n) {\n if (n !== 0 && n % 10 === 0) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '3': function (n) {\n if (n == 1) return 'one';\n return 'other';\n },\n '4': function (n) {\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '5': function (n) {\n if (isBetween(n, 0, 2) && n != 2) return 'one';\n return 'other';\n },\n '6': function (n) {\n if (n === 0) return 'zero';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '7': function (n) {\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '8': function (n) {\n if (isBetween(n, 3, 6)) return 'few';\n if (isBetween(n, 7, 10)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '9': function (n) {\n if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '10': function (n) {\n if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few';\n if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one';\n return 'other';\n },\n '11': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '12': function (n) {\n if (isBetween(n, 2, 4)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '13': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '14': function (n) {\n if (isBetween(n % 100, 3, 4)) return 'few';\n if (n % 100 == 2) return 'two';\n if (n % 100 == 1) return 'one';\n return 'other';\n },\n '15': function (n) {\n if (n === 0 || isBetween(n % 100, 2, 10)) return 'few';\n if (isBetween(n % 100, 11, 19)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '16': function (n) {\n if (n % 10 == 1 && n != 11) return 'one';\n return 'other';\n },\n '17': function (n) {\n if (n == 3) return 'few';\n if (n === 0) return 'zero';\n if (n == 6) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '18': function (n) {\n if (n === 0) return 'zero';\n if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one';\n return 'other';\n },\n '19': function (n) {\n if (isBetween(n, 2, 10)) return 'few';\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '20': function (n) {\n if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few';\n if (n % 1000000 === 0 && n !== 0) return 'many';\n if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two';\n if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one';\n return 'other';\n },\n '21': function (n) {\n if (n === 0) return 'zero';\n if (n == 1) return 'one';\n return 'other';\n },\n '22': function (n) {\n if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one';\n return 'other';\n },\n '23': function (n) {\n if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one';\n return 'other';\n },\n '24': function (n) {\n if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few';\n if (isIn(n, [2, 12])) return 'two';\n if (isIn(n, [1, 11])) return 'one';\n return 'other';\n }\n };\n var index = locales2rules[lang.replace(/-.*$/, '')];\n\n if (!(index in pluralRules)) {\n console.warn('plural form unknown for [' + lang + ']');\n return function () {\n return 'other';\n };\n }\n\n return pluralRules[index];\n }\n\n gMacros.plural = function (str, param, key, prop) {\n var n = parseFloat(param);\n if (isNaN(n)) return str;\n if (prop != gTextProp) return str;\n\n if (!gMacros._pluralRules) {\n gMacros._pluralRules = getPluralRules(gLanguage);\n }\n\n var index = '[' + gMacros._pluralRules(n) + ']';\n\n if (n === 0 && key + '[zero]' in gL10nData) {\n str = gL10nData[key + '[zero]'][prop];\n } else if (n == 1 && key + '[one]' in gL10nData) {\n str = gL10nData[key + '[one]'][prop];\n } else if (n == 2 && key + '[two]' in gL10nData) {\n str = gL10nData[key + '[two]'][prop];\n } else if (key + index in gL10nData) {\n str = gL10nData[key + index][prop];\n } else if (key + '[other]' in gL10nData) {\n str = gL10nData[key + '[other]'][prop];\n }\n\n return str;\n };\n\n function getL10nData(key, args, fallback) {\n var data = gL10nData[key];\n\n if (!data) {\n console.warn('#' + key + ' is undefined.');\n\n if (!fallback) {\n return null;\n }\n\n data = fallback;\n }\n\n var rv = {};\n\n for (var prop in data) {\n var str = data[prop];\n str = substIndexes(str, args, key, prop);\n str = substArguments(str, args, key);\n rv[prop] = str;\n }\n\n return rv;\n }\n\n function substIndexes(str, args, key, prop) {\n var reIndex = /\\{\\[\\s*([a-zA-Z]+)\\(([a-zA-Z]+)\\)\\s*\\]\\}/;\n var reMatch = reIndex.exec(str);\n if (!reMatch || !reMatch.length) return str;\n var macroName = reMatch[1];\n var paramName = reMatch[2];\n var param;\n\n if (args && paramName in args) {\n param = args[paramName];\n } else if (paramName in gL10nData) {\n param = gL10nData[paramName];\n }\n\n if (macroName in gMacros) {\n var macro = gMacros[macroName];\n str = macro(str, param, key, prop);\n }\n\n return str;\n }\n\n function substArguments(str, args, key) {\n var reArgs = /\\{\\{\\s*(.+?)\\s*\\}\\}/g;\n return str.replace(reArgs, function (matched_text, arg) {\n if (args && arg in args) {\n return args[arg];\n }\n\n if (arg in gL10nData) {\n return gL10nData[arg];\n }\n\n console.log('argument {{' + arg + '}} for #' + key + ' is undefined.');\n return matched_text;\n });\n }\n\n function translateElement(element) {\n var l10n = getL10nAttributes(element);\n if (!l10n.id) return;\n var data = getL10nData(l10n.id, l10n.args);\n\n if (!data) {\n console.warn('#' + l10n.id + ' is undefined.');\n return;\n }\n\n if (data[gTextProp]) {\n if (getChildElementCount(element) === 0) {\n element[gTextProp] = data[gTextProp];\n } else {\n var children = element.childNodes;\n var found = false;\n\n for (var i = 0, l = children.length; i < l; i++) {\n if (children[i].nodeType === 3 && /\\S/.test(children[i].nodeValue)) {\n if (found) {\n children[i].nodeValue = '';\n } else {\n children[i].nodeValue = data[gTextProp];\n found = true;\n }\n }\n }\n\n if (!found) {\n var textNode = document.createTextNode(data[gTextProp]);\n element.insertBefore(textNode, element.firstChild);\n }\n }\n\n delete data[gTextProp];\n }\n\n for (var k in data) {\n element[k] = data[k];\n }\n }\n\n function getChildElementCount(element) {\n if (element.children) {\n return element.children.length;\n }\n\n if (typeof element.childElementCount !== 'undefined') {\n return element.childElementCount;\n }\n\n var count = 0;\n\n for (var i = 0; i < element.childNodes.length; i++) {\n count += element.nodeType === 1 ? 1 : 0;\n }\n\n return count;\n }\n\n function translateFragment(element) {\n element = element || document.documentElement;\n var children = getTranslatableChildren(element);\n var elementCount = children.length;\n\n for (var i = 0; i < elementCount; i++) {\n translateElement(children[i]);\n }\n\n translateElement(element);\n }\n\n return {\n get: function (key, args, fallbackString) {\n var index = key.lastIndexOf('.');\n var prop = gTextProp;\n\n if (index > 0) {\n prop = key.substring(index + 1);\n key = key.substring(0, index);\n }\n\n var fallback;\n\n if (fallbackString) {\n fallback = {};\n fallback[prop] = fallbackString;\n }\n\n var data = getL10nData(key, args, fallback);\n\n if (data && prop in data) {\n return data[prop];\n }\n\n return '{{' + key + '}}';\n },\n getData: function () {\n return gL10nData;\n },\n getText: function () {\n return gTextData;\n },\n getLanguage: function () {\n return gLanguage;\n },\n setLanguage: function (lang, callback) {\n loadLocale(lang, function () {\n if (callback) callback();\n });\n },\n getDirection: function () {\n var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];\n var shortCode = gLanguage.split('-', 1)[0];\n return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr';\n },\n translate: translateFragment,\n getReadyState: function () {\n return gReadyState;\n },\n ready: function (callback) {\n if (!callback) {\n return;\n } else if (gReadyState == 'complete' || gReadyState == 'interactive') {\n window.setTimeout(function () {\n callback();\n });\n } else if (document.addEventListener) {\n document.addEventListener('localized', function once() {\n document.removeEventListener('localized', once);\n callback();\n });\n }\n }\n };\n}(window, document);\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFFindController = exports.FindState = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_find_utils = __w_pdfjs_require__(11);\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nconst FindState = {\n FOUND: 0,\n NOT_FOUND: 1,\n WRAPPED: 2,\n PENDING: 3\n};\nexports.FindState = FindState;\nconst FIND_TIMEOUT = 250;\nconst MATCH_SCROLL_OFFSET_TOP = -50;\nconst MATCH_SCROLL_OFFSET_LEFT = -400;\nconst CHARACTERS_TO_NORMALIZE = {\n \"\\u2018\": \"'\",\n \"\\u2019\": \"'\",\n \"\\u201A\": \"'\",\n \"\\u201B\": \"'\",\n \"\\u201C\": '\"',\n \"\\u201D\": '\"',\n \"\\u201E\": '\"',\n \"\\u201F\": '\"',\n \"\\u00BC\": \"1/4\",\n \"\\u00BD\": \"1/2\",\n \"\\u00BE\": \"3/4\"\n};\nlet normalizationRegex = null;\n\nfunction normalize(text) {\n if (!normalizationRegex) {\n const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(\"\");\n normalizationRegex = new RegExp(`[${replace}]`, \"g\");\n }\n\n return text.replace(normalizationRegex, function (ch) {\n return CHARACTERS_TO_NORMALIZE[ch];\n });\n}\n\nclass PDFFindController {\n constructor({\n linkService,\n eventBus\n }) {\n this._linkService = linkService;\n this._eventBus = eventBus;\n\n this._reset();\n\n eventBus._on(\"findbarclose\", this._onFindBarClose.bind(this));\n }\n\n get highlightMatches() {\n return this._highlightMatches;\n }\n\n get pageMatches() {\n return this._pageMatches;\n }\n\n get pageMatchesLength() {\n return this._pageMatchesLength;\n }\n\n get selected() {\n return this._selected;\n }\n\n get state() {\n return this._state;\n }\n\n setDocument(pdfDocument) {\n if (this._pdfDocument) {\n this._reset();\n }\n\n if (!pdfDocument) {\n return;\n }\n\n this._pdfDocument = pdfDocument;\n\n this._firstPageCapability.resolve();\n }\n\n executeCommand(cmd, state) {\n if (!state) {\n return;\n }\n\n const pdfDocument = this._pdfDocument;\n\n if (this._state === null || this._shouldDirtyMatch(cmd, state)) {\n this._dirtyMatch = true;\n }\n\n this._state = state;\n\n if (cmd !== \"findhighlightallchange\") {\n this._updateUIState(FindState.PENDING);\n }\n\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n\n this._extractText();\n\n const findbarClosed = !this._highlightMatches;\n const pendingTimeout = !!this._findTimeout;\n\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n\n if (cmd === \"find\") {\n this._findTimeout = setTimeout(() => {\n this._nextMatch();\n\n this._findTimeout = null;\n }, FIND_TIMEOUT);\n } else if (this._dirtyMatch) {\n this._nextMatch();\n } else if (cmd === \"findagain\") {\n this._nextMatch();\n\n if (findbarClosed && this._state.highlightAll) {\n this._updateAllPages();\n }\n } else if (cmd === \"findhighlightallchange\") {\n if (pendingTimeout) {\n this._nextMatch();\n } else {\n this._highlightMatches = true;\n }\n\n this._updateAllPages();\n } else {\n this._nextMatch();\n }\n });\n }\n\n scrollMatchIntoView({\n element = null,\n pageIndex = -1,\n matchIndex = -1\n }) {\n if (!this._scrollMatches || !element) {\n return;\n } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) {\n return;\n } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) {\n return;\n }\n\n this._scrollMatches = false;\n const spot = {\n top: MATCH_SCROLL_OFFSET_TOP,\n left: MATCH_SCROLL_OFFSET_LEFT\n };\n (0, _ui_utils.scrollIntoView)(element, spot, true);\n }\n\n _reset() {\n this._highlightMatches = false;\n this._scrollMatches = false;\n this._pdfDocument = null;\n this._pageMatches = [];\n this._pageMatchesLength = [];\n this._state = null;\n this._selected = {\n pageIdx: -1,\n matchIdx: -1\n };\n this._offset = {\n pageIdx: null,\n matchIdx: null,\n wrapped: false\n };\n this._extractTextPromises = [];\n this._pageContents = [];\n this._matchesCountTotal = 0;\n this._pagesToSearch = null;\n this._pendingFindMatches = Object.create(null);\n this._resumePageIdx = null;\n this._dirtyMatch = false;\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)();\n }\n\n get _query() {\n if (this._state.query !== this._rawQuery) {\n this._rawQuery = this._state.query;\n this._normalizedQuery = normalize(this._state.query);\n }\n\n return this._normalizedQuery;\n }\n\n _shouldDirtyMatch(cmd, state) {\n if (state.query !== this._state.query) {\n return true;\n }\n\n switch (cmd) {\n case \"findagain\":\n const pageNumber = this._selected.pageIdx + 1;\n const linkService = this._linkService;\n\n if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) {\n return true;\n }\n\n return false;\n\n case \"findhighlightallchange\":\n return false;\n }\n\n return true;\n }\n\n _prepareMatches(matchesWithLength, matches, matchesLength) {\n function isSubTerm(currentIndex) {\n const currentElem = matchesWithLength[currentIndex];\n const nextElem = matchesWithLength[currentIndex + 1];\n\n if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) {\n currentElem.skipped = true;\n return true;\n }\n\n for (let i = currentIndex - 1; i >= 0; i--) {\n const prevElem = matchesWithLength[i];\n\n if (prevElem.skipped) {\n continue;\n }\n\n if (prevElem.match + prevElem.matchLength < currentElem.match) {\n break;\n }\n\n if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) {\n currentElem.skipped = true;\n return true;\n }\n }\n\n return false;\n }\n\n matchesWithLength.sort(function (a, b) {\n return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match;\n });\n\n for (let i = 0, len = matchesWithLength.length; i < len; i++) {\n if (isSubTerm(i)) {\n continue;\n }\n\n matches.push(matchesWithLength[i].match);\n matchesLength.push(matchesWithLength[i].matchLength);\n }\n }\n\n _isEntireWord(content, startIdx, length) {\n if (startIdx > 0) {\n const first = content.charCodeAt(startIdx);\n const limit = content.charCodeAt(startIdx - 1);\n\n if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n\n const endIdx = startIdx + length - 1;\n\n if (endIdx < content.length - 1) {\n const last = content.charCodeAt(endIdx);\n const limit = content.charCodeAt(endIdx + 1);\n\n if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n\n return true;\n }\n\n _calculatePhraseMatch(query, pageIndex, pageContent, entireWord) {\n const matches = [];\n const queryLen = query.length;\n let matchIdx = -queryLen;\n\n while (true) {\n matchIdx = pageContent.indexOf(query, matchIdx + queryLen);\n\n if (matchIdx === -1) {\n break;\n }\n\n if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) {\n continue;\n }\n\n matches.push(matchIdx);\n }\n\n this._pageMatches[pageIndex] = matches;\n }\n\n _calculateWordMatch(query, pageIndex, pageContent, entireWord) {\n const matchesWithLength = [];\n const queryArray = query.match(/\\S+/g);\n\n for (let i = 0, len = queryArray.length; i < len; i++) {\n const subquery = queryArray[i];\n const subqueryLen = subquery.length;\n let matchIdx = -subqueryLen;\n\n while (true) {\n matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen);\n\n if (matchIdx === -1) {\n break;\n }\n\n if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) {\n continue;\n }\n\n matchesWithLength.push({\n match: matchIdx,\n matchLength: subqueryLen,\n skipped: false\n });\n }\n }\n\n this._pageMatchesLength[pageIndex] = [];\n this._pageMatches[pageIndex] = [];\n\n this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]);\n }\n\n _calculateMatch(pageIndex) {\n let pageContent = this._pageContents[pageIndex];\n let query = this._query;\n const {\n caseSensitive,\n entireWord,\n phraseSearch\n } = this._state;\n\n if (query.length === 0) {\n return;\n }\n\n if (!caseSensitive) {\n pageContent = pageContent.toLowerCase();\n query = query.toLowerCase();\n }\n\n if (phraseSearch) {\n this._calculatePhraseMatch(query, pageIndex, pageContent, entireWord);\n } else {\n this._calculateWordMatch(query, pageIndex, pageContent, entireWord);\n }\n\n if (this._state.highlightAll) {\n this._updatePage(pageIndex);\n }\n\n if (this._resumePageIdx === pageIndex) {\n this._resumePageIdx = null;\n\n this._nextPageMatch();\n }\n\n const pageMatchesCount = this._pageMatches[pageIndex].length;\n\n if (pageMatchesCount > 0) {\n this._matchesCountTotal += pageMatchesCount;\n\n this._updateUIResultsCount();\n }\n }\n\n _extractText() {\n if (this._extractTextPromises.length > 0) {\n return;\n }\n\n let promise = Promise.resolve();\n\n for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) {\n const extractTextCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._extractTextPromises[i] = extractTextCapability.promise;\n promise = promise.then(() => {\n return this._pdfDocument.getPage(i + 1).then(pdfPage => {\n return pdfPage.getTextContent({\n normalizeWhitespace: true\n });\n }).then(textContent => {\n const textItems = textContent.items;\n const strBuf = [];\n\n for (let j = 0, jj = textItems.length; j < jj; j++) {\n strBuf.push(textItems[j].str);\n }\n\n this._pageContents[i] = normalize(strBuf.join(\"\"));\n extractTextCapability.resolve(i);\n }, reason => {\n console.error(`Unable to get text content for page ${i + 1}`, reason);\n this._pageContents[i] = \"\";\n extractTextCapability.resolve(i);\n });\n });\n }\n }\n\n _updatePage(index) {\n if (this._scrollMatches && this._selected.pageIdx === index) {\n this._linkService.page = index + 1;\n }\n\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: index\n });\n }\n\n _updateAllPages() {\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: -1\n });\n }\n\n _nextMatch() {\n const previous = this._state.findPrevious;\n const currentPageIndex = this._linkService.page - 1;\n const numPages = this._linkService.pagesCount;\n this._highlightMatches = true;\n\n if (this._dirtyMatch) {\n this._dirtyMatch = false;\n this._selected.pageIdx = this._selected.matchIdx = -1;\n this._offset.pageIdx = currentPageIndex;\n this._offset.matchIdx = null;\n this._offset.wrapped = false;\n this._resumePageIdx = null;\n this._pageMatches.length = 0;\n this._pageMatchesLength.length = 0;\n this._matchesCountTotal = 0;\n\n this._updateAllPages();\n\n for (let i = 0; i < numPages; i++) {\n if (this._pendingFindMatches[i] === true) {\n continue;\n }\n\n this._pendingFindMatches[i] = true;\n\n this._extractTextPromises[i].then(pageIdx => {\n delete this._pendingFindMatches[pageIdx];\n\n this._calculateMatch(pageIdx);\n });\n }\n }\n\n if (this._query === \"\") {\n this._updateUIState(FindState.FOUND);\n\n return;\n }\n\n if (this._resumePageIdx) {\n return;\n }\n\n const offset = this._offset;\n this._pagesToSearch = numPages;\n\n if (offset.matchIdx !== null) {\n const numPageMatches = this._pageMatches[offset.pageIdx].length;\n\n if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) {\n offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1;\n\n this._updateMatch(true);\n\n return;\n }\n\n this._advanceOffsetPage(previous);\n }\n\n this._nextPageMatch();\n }\n\n _matchesReady(matches) {\n const offset = this._offset;\n const numMatches = matches.length;\n const previous = this._state.findPrevious;\n\n if (numMatches) {\n offset.matchIdx = previous ? numMatches - 1 : 0;\n\n this._updateMatch(true);\n\n return true;\n }\n\n this._advanceOffsetPage(previous);\n\n if (offset.wrapped) {\n offset.matchIdx = null;\n\n if (this._pagesToSearch < 0) {\n this._updateMatch(false);\n\n return true;\n }\n }\n\n return false;\n }\n\n _nextPageMatch() {\n if (this._resumePageIdx !== null) {\n console.error(\"There can only be one pending page.\");\n }\n\n let matches = null;\n\n do {\n const pageIdx = this._offset.pageIdx;\n matches = this._pageMatches[pageIdx];\n\n if (!matches) {\n this._resumePageIdx = pageIdx;\n break;\n }\n } while (!this._matchesReady(matches));\n }\n\n _advanceOffsetPage(previous) {\n const offset = this._offset;\n const numPages = this._linkService.pagesCount;\n offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1;\n offset.matchIdx = null;\n this._pagesToSearch--;\n\n if (offset.pageIdx >= numPages || offset.pageIdx < 0) {\n offset.pageIdx = previous ? numPages - 1 : 0;\n offset.wrapped = true;\n }\n }\n\n _updateMatch(found = false) {\n let state = FindState.NOT_FOUND;\n const wrapped = this._offset.wrapped;\n this._offset.wrapped = false;\n\n if (found) {\n const previousPage = this._selected.pageIdx;\n this._selected.pageIdx = this._offset.pageIdx;\n this._selected.matchIdx = this._offset.matchIdx;\n state = wrapped ? FindState.WRAPPED : FindState.FOUND;\n\n if (previousPage !== -1 && previousPage !== this._selected.pageIdx) {\n this._updatePage(previousPage);\n }\n }\n\n this._updateUIState(state, this._state.findPrevious);\n\n if (this._selected.pageIdx !== -1) {\n this._scrollMatches = true;\n\n this._updatePage(this._selected.pageIdx);\n }\n }\n\n _onFindBarClose(evt) {\n const pdfDocument = this._pdfDocument;\n\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n\n if (this._resumePageIdx) {\n this._resumePageIdx = null;\n this._dirtyMatch = true;\n }\n\n this._updateUIState(FindState.FOUND);\n\n this._highlightMatches = false;\n\n this._updateAllPages();\n });\n }\n\n _requestMatchesCount() {\n const {\n pageIdx,\n matchIdx\n } = this._selected;\n let current = 0,\n total = this._matchesCountTotal;\n\n if (matchIdx !== -1) {\n for (let i = 0; i < pageIdx; i++) {\n current += this._pageMatches[i] && this._pageMatches[i].length || 0;\n }\n\n current += matchIdx + 1;\n }\n\n if (current < 1 || current > total) {\n current = total = 0;\n }\n\n return {\n current,\n total\n };\n }\n\n _updateUIResultsCount() {\n this._eventBus.dispatch(\"updatefindmatchescount\", {\n source: this,\n matchesCount: this._requestMatchesCount()\n });\n }\n\n _updateUIState(state, previous) {\n this._eventBus.dispatch(\"updatefindcontrolstate\", {\n source: this,\n state,\n previous,\n matchesCount: this._requestMatchesCount()\n });\n }\n\n}\n\nexports.PDFFindController = PDFFindController;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCharacterType = getCharacterType;\nexports.CharacterType = void 0;\nconst CharacterType = {\n SPACE: 0,\n ALPHA_LETTER: 1,\n PUNCT: 2,\n HAN_LETTER: 3,\n KATAKANA_LETTER: 4,\n HIRAGANA_LETTER: 5,\n HALFWIDTH_KATAKANA_LETTER: 6,\n THAI_LETTER: 7\n};\nexports.CharacterType = CharacterType;\n\nfunction isAlphabeticalScript(charCode) {\n return charCode < 0x2e80;\n}\n\nfunction isAscii(charCode) {\n return (charCode & 0xff80) === 0;\n}\n\nfunction isAsciiAlpha(charCode) {\n return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a;\n}\n\nfunction isAsciiDigit(charCode) {\n return charCode >= 0x30 && charCode <= 0x39;\n}\n\nfunction isAsciiSpace(charCode) {\n return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a;\n}\n\nfunction isHan(charCode) {\n return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff;\n}\n\nfunction isKatakana(charCode) {\n return charCode >= 0x30a0 && charCode <= 0x30ff;\n}\n\nfunction isHiragana(charCode) {\n return charCode >= 0x3040 && charCode <= 0x309f;\n}\n\nfunction isHalfwidthKatakana(charCode) {\n return charCode >= 0xff60 && charCode <= 0xff9f;\n}\n\nfunction isThai(charCode) {\n return (charCode & 0xff80) === 0x0e00;\n}\n\nfunction getCharacterType(charCode) {\n if (isAlphabeticalScript(charCode)) {\n if (isAscii(charCode)) {\n if (isAsciiSpace(charCode)) {\n return CharacterType.SPACE;\n } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) {\n return CharacterType.ALPHA_LETTER;\n }\n\n return CharacterType.PUNCT;\n } else if (isThai(charCode)) {\n return CharacterType.THAI_LETTER;\n } else if (charCode === 0xa0) {\n return CharacterType.SPACE;\n }\n\n return CharacterType.ALPHA_LETTER;\n }\n\n if (isHan(charCode)) {\n return CharacterType.HAN_LETTER;\n } else if (isKatakana(charCode)) {\n return CharacterType.KATAKANA_LETTER;\n } else if (isHiragana(charCode)) {\n return CharacterType.HIRAGANA_LETTER;\n } else if (isHalfwidthKatakana(charCode)) {\n return CharacterType.HALFWIDTH_KATAKANA_LETTER;\n }\n\n return CharacterType.ALPHA_LETTER;\n}\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isDestHashesEqual = isDestHashesEqual;\nexports.isDestArraysEqual = isDestArraysEqual;\nexports.PDFHistory = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nconst HASH_CHANGE_TIMEOUT = 1000;\nconst POSITION_UPDATED_THRESHOLD = 50;\nconst UPDATE_VIEWAREA_TIMEOUT = 1000;\n\nfunction getCurrentHash() {\n return document.location.hash;\n}\n\nclass PDFHistory {\n constructor({\n linkService,\n eventBus\n }) {\n this.linkService = linkService;\n this.eventBus = eventBus;\n this._initialized = false;\n this._fingerprint = \"\";\n this.reset();\n this._boundEvents = null;\n this._isViewerInPresentationMode = false;\n\n this.eventBus._on(\"presentationmodechanged\", evt => {\n this._isViewerInPresentationMode = evt.active || evt.switchInProgress;\n });\n\n this.eventBus._on(\"pagesinit\", () => {\n this._isPagesLoaded = false;\n\n const onPagesLoaded = evt => {\n this.eventBus._off(\"pagesloaded\", onPagesLoaded);\n\n this._isPagesLoaded = !!evt.pagesCount;\n };\n\n this.eventBus._on(\"pagesloaded\", onPagesLoaded);\n });\n }\n\n initialize({\n fingerprint,\n resetHistory = false,\n updateUrl = false\n }) {\n if (!fingerprint || typeof fingerprint !== \"string\") {\n console.error('PDFHistory.initialize: The \"fingerprint\" must be a non-empty string.');\n return;\n }\n\n if (this._initialized) {\n this.reset();\n }\n\n const reInitialized = this._fingerprint !== \"\" && this._fingerprint !== fingerprint;\n this._fingerprint = fingerprint;\n this._updateUrl = updateUrl === true;\n this._initialized = true;\n\n this._bindEvents();\n\n const state = window.history.state;\n this._popStateInProgress = false;\n this._blockHashChange = 0;\n this._currentHash = getCurrentHash();\n this._numPositionUpdates = 0;\n this._uid = this._maxUid = 0;\n this._destination = null;\n this._position = null;\n\n if (!this._isValidState(state, true) || resetHistory) {\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash(true);\n\n if (!hash || reInitialized || resetHistory) {\n this._pushOrReplaceState(null, true);\n\n return;\n }\n\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n\n return;\n }\n\n const destination = state.destination;\n\n this._updateInternalState(destination, state.uid, true);\n\n if (this._uid > this._maxUid) {\n this._maxUid = this._uid;\n }\n\n if (destination.rotation !== undefined) {\n this._initialRotation = destination.rotation;\n }\n\n if (destination.dest) {\n this._initialBookmark = JSON.stringify(destination.dest);\n this._destination.page = null;\n } else if (destination.hash) {\n this._initialBookmark = destination.hash;\n } else if (destination.page) {\n this._initialBookmark = `page=${destination.page}`;\n }\n }\n\n reset() {\n if (this._initialized) {\n this._pageHide();\n\n this._initialized = false;\n\n this._unbindEvents();\n }\n\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n this._initialBookmark = null;\n this._initialRotation = null;\n }\n\n push({\n namedDest = null,\n explicitDest,\n pageNumber\n }) {\n if (!this._initialized) {\n return;\n }\n\n if (namedDest && typeof namedDest !== \"string\") {\n console.error(\"PDFHistory.push: \" + `\"${namedDest}\" is not a valid namedDest parameter.`);\n return;\n } else if (!Array.isArray(explicitDest)) {\n console.error(\"PDFHistory.push: \" + `\"${explicitDest}\" is not a valid explicitDest parameter.`);\n return;\n } else if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.linkService.pagesCount)) {\n if (pageNumber !== null || this._destination) {\n console.error(\"PDFHistory.push: \" + `\"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n }\n\n const hash = namedDest || JSON.stringify(explicitDest);\n\n if (!hash) {\n return;\n }\n\n let forceReplace = false;\n\n if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) {\n if (this._destination.page) {\n return;\n }\n\n forceReplace = true;\n }\n\n if (this._popStateInProgress && !forceReplace) {\n return;\n }\n\n this._pushOrReplaceState({\n dest: explicitDest,\n hash,\n page: pageNumber,\n rotation: this.linkService.rotation\n }, forceReplace);\n\n if (!this._popStateInProgress) {\n this._popStateInProgress = true;\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n }\n\n pushCurrentPosition() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n this._tryPushCurrentPosition();\n }\n\n back() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n const state = window.history.state;\n\n if (this._isValidState(state) && state.uid > 0) {\n window.history.back();\n }\n }\n\n forward() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n const state = window.history.state;\n\n if (this._isValidState(state) && state.uid < this._maxUid) {\n window.history.forward();\n }\n }\n\n get popStateInProgress() {\n return this._initialized && (this._popStateInProgress || this._blockHashChange > 0);\n }\n\n get initialBookmark() {\n return this._initialized ? this._initialBookmark : null;\n }\n\n get initialRotation() {\n return this._initialized ? this._initialRotation : null;\n }\n\n _pushOrReplaceState(destination, forceReplace = false) {\n const shouldReplace = forceReplace || !this._destination;\n const newState = {\n fingerprint: this._fingerprint,\n uid: shouldReplace ? this._uid : this._uid + 1,\n destination\n };\n\n this._updateInternalState(destination, newState.uid);\n\n let newUrl;\n\n if (this._updateUrl && destination && destination.hash) {\n const baseUrl = document.location.href.split(\"#\")[0];\n\n if (!baseUrl.startsWith(\"file://\")) {\n newUrl = `${baseUrl}#${destination.hash}`;\n }\n }\n\n if (shouldReplace) {\n window.history.replaceState(newState, \"\", newUrl);\n } else {\n this._maxUid = this._uid;\n window.history.pushState(newState, \"\", newUrl);\n }\n }\n\n _tryPushCurrentPosition(temporary = false) {\n if (!this._position) {\n return;\n }\n\n let position = this._position;\n\n if (temporary) {\n position = Object.assign(Object.create(null), this._position);\n position.temporary = true;\n }\n\n if (!this._destination) {\n this._pushOrReplaceState(position);\n\n return;\n }\n\n if (this._destination.temporary) {\n this._pushOrReplaceState(position, true);\n\n return;\n }\n\n if (this._destination.hash === position.hash) {\n return;\n }\n\n if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) {\n return;\n }\n\n let forceReplace = false;\n\n if (this._destination.page >= position.first && this._destination.page <= position.page) {\n if (this._destination.dest || !this._destination.first) {\n return;\n }\n\n forceReplace = true;\n }\n\n this._pushOrReplaceState(position, forceReplace);\n }\n\n _isValidState(state, checkReload = false) {\n if (!state) {\n return false;\n }\n\n if (state.fingerprint !== this._fingerprint) {\n if (checkReload) {\n if (typeof state.fingerprint !== \"string\" || state.fingerprint.length !== this._fingerprint.length) {\n return false;\n }\n\n const [perfEntry] = performance.getEntriesByType(\"navigation\");\n\n if (!perfEntry || perfEntry.type !== \"reload\") {\n return false;\n }\n } else {\n return false;\n }\n }\n\n if (!Number.isInteger(state.uid) || state.uid < 0) {\n return false;\n }\n\n if (state.destination === null || typeof state.destination !== \"object\") {\n return false;\n }\n\n return true;\n }\n\n _updateInternalState(destination, uid, removeTemporary = false) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n if (removeTemporary && destination && destination.temporary) {\n delete destination.temporary;\n }\n\n this._destination = destination;\n this._uid = uid;\n this._numPositionUpdates = 0;\n }\n\n _parseCurrentHash(checkNameddest = false) {\n const hash = unescape(getCurrentHash()).substring(1);\n const params = (0, _ui_utils.parseQueryString)(hash);\n const nameddest = params.nameddest || \"\";\n let page = params.page | 0;\n\n if (!(Number.isInteger(page) && page > 0 && page <= this.linkService.pagesCount) || checkNameddest && nameddest.length > 0) {\n page = null;\n }\n\n return {\n hash,\n page,\n rotation: this.linkService.rotation\n };\n }\n\n _updateViewarea({\n location\n }) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n this._position = {\n hash: this._isViewerInPresentationMode ? `page=${location.pageNumber}` : location.pdfOpenParams.substring(1),\n page: this.linkService.page,\n first: location.pageNumber,\n rotation: location.rotation\n };\n\n if (this._popStateInProgress) {\n return;\n }\n\n if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) {\n this._numPositionUpdates++;\n }\n\n if (UPDATE_VIEWAREA_TIMEOUT > 0) {\n this._updateViewareaTimeout = setTimeout(() => {\n if (!this._popStateInProgress) {\n this._tryPushCurrentPosition(true);\n }\n\n this._updateViewareaTimeout = null;\n }, UPDATE_VIEWAREA_TIMEOUT);\n }\n }\n\n _popState({\n state\n }) {\n const newHash = getCurrentHash(),\n hashChanged = this._currentHash !== newHash;\n this._currentHash = newHash;\n\n if (!state) {\n this._uid++;\n\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash();\n\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n\n return;\n }\n\n if (!this._isValidState(state)) {\n return;\n }\n\n this._popStateInProgress = true;\n\n if (hashChanged) {\n this._blockHashChange++;\n (0, _ui_utils.waitOnEventOrTimeout)({\n target: window,\n name: \"hashchange\",\n delay: HASH_CHANGE_TIMEOUT\n }).then(() => {\n this._blockHashChange--;\n });\n }\n\n const destination = state.destination;\n\n this._updateInternalState(destination, state.uid, true);\n\n if (this._uid > this._maxUid) {\n this._maxUid = this._uid;\n }\n\n if ((0, _ui_utils.isValidRotation)(destination.rotation)) {\n this.linkService.rotation = destination.rotation;\n }\n\n if (destination.dest) {\n this.linkService.navigateTo(destination.dest);\n } else if (destination.hash) {\n this.linkService.setHash(destination.hash);\n } else if (destination.page) {\n this.linkService.page = destination.page;\n }\n\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n\n _pageHide() {\n if (!this._destination || this._destination.temporary) {\n this._tryPushCurrentPosition();\n }\n }\n\n _bindEvents() {\n if (this._boundEvents) {\n return;\n }\n\n this._boundEvents = {\n updateViewarea: this._updateViewarea.bind(this),\n popState: this._popState.bind(this),\n pageHide: this._pageHide.bind(this)\n };\n\n this.eventBus._on(\"updateviewarea\", this._boundEvents.updateViewarea);\n\n window.addEventListener(\"popstate\", this._boundEvents.popState);\n window.addEventListener(\"pagehide\", this._boundEvents.pageHide);\n }\n\n _unbindEvents() {\n if (!this._boundEvents) {\n return;\n }\n\n this.eventBus._off(\"updateviewarea\", this._boundEvents.updateViewarea);\n\n window.removeEventListener(\"popstate\", this._boundEvents.popState);\n window.removeEventListener(\"pagehide\", this._boundEvents.pageHide);\n this._boundEvents = null;\n }\n\n}\n\nexports.PDFHistory = PDFHistory;\n\nfunction isDestHashesEqual(destHash, pushHash) {\n if (typeof destHash !== \"string\" || typeof pushHash !== \"string\") {\n return false;\n }\n\n if (destHash === pushHash) {\n return true;\n }\n\n const {\n nameddest\n } = (0, _ui_utils.parseQueryString)(destHash);\n\n if (nameddest === pushHash) {\n return true;\n }\n\n return false;\n}\n\nfunction isDestArraysEqual(firstDest, secondDest) {\n function isEntryEqual(first, second) {\n if (typeof first !== typeof second) {\n return false;\n }\n\n if (Array.isArray(first) || Array.isArray(second)) {\n return false;\n }\n\n if (first !== null && typeof first === \"object\" && second !== null) {\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n for (const key in first) {\n if (!isEntryEqual(first[key], second[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return first === second || Number.isNaN(first) && Number.isNaN(second);\n }\n\n if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) {\n return false;\n }\n\n if (firstDest.length !== secondDest.length) {\n return false;\n }\n\n for (let i = 0, ii = firstDest.length; i < ii; i++) {\n if (!isEntryEqual(firstDest[i], secondDest[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFPageView = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_rendering_queue = __w_pdfjs_require__(14);\n\nvar _viewer_compatibility = __w_pdfjs_require__(7);\n\nconst MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216;\n\nclass PDFPageView {\n constructor(options) {\n const container = options.container;\n const defaultViewport = options.defaultViewport;\n this.id = options.id;\n this.renderingId = \"page\" + this.id;\n this.pdfPage = null;\n this.pageLabel = null;\n this.rotation = 0;\n this.scale = options.scale || _ui_utils.DEFAULT_SCALE;\n this.viewport = defaultViewport;\n this.pdfPageRotate = defaultViewport.rotation;\n this.hasRestrictedScaling = false;\n this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.renderInteractiveForms = options.renderInteractiveForms || false;\n this.useOnlyCssZoom = options.useOnlyCssZoom || false;\n this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS;\n this.eventBus = options.eventBus;\n this.renderingQueue = options.renderingQueue;\n this.textLayerFactory = options.textLayerFactory;\n this.annotationLayerFactory = options.annotationLayerFactory;\n this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;\n this.enableWebGL = options.enableWebGL || false;\n this.l10n = options.l10n || _ui_utils.NullL10n;\n this.paintTask = null;\n this.paintedViewportMap = new WeakMap();\n this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;\n this.resume = null;\n this.error = null;\n this.annotationLayer = null;\n this.textLayer = null;\n this.zoomLayer = null;\n const div = document.createElement(\"div\");\n div.className = \"page\";\n div.style.width = Math.floor(this.viewport.width) + \"px\";\n div.style.height = Math.floor(this.viewport.height) + \"px\";\n div.setAttribute(\"data-page-number\", this.id);\n this.div = div;\n container.appendChild(div);\n }\n\n setPdfPage(pdfPage) {\n this.pdfPage = pdfPage;\n this.pdfPageRotate = pdfPage.rotate;\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = pdfPage.getViewport({\n scale: this.scale * _ui_utils.CSS_UNITS,\n rotation: totalRotation\n });\n this.stats = pdfPage.stats;\n this.reset();\n }\n\n destroy() {\n this.reset();\n\n if (this.pdfPage) {\n this.pdfPage.cleanup();\n }\n }\n\n _resetZoomLayer(removeFromDOM = false) {\n if (!this.zoomLayer) {\n return;\n }\n\n const zoomLayerCanvas = this.zoomLayer.firstChild;\n this.paintedViewportMap.delete(zoomLayerCanvas);\n zoomLayerCanvas.width = 0;\n zoomLayerCanvas.height = 0;\n\n if (removeFromDOM) {\n this.zoomLayer.remove();\n }\n\n this.zoomLayer = null;\n }\n\n reset(keepZoomLayer = false, keepAnnotations = false) {\n this.cancelRendering(keepAnnotations);\n this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;\n const div = this.div;\n div.style.width = Math.floor(this.viewport.width) + \"px\";\n div.style.height = Math.floor(this.viewport.height) + \"px\";\n const childNodes = div.childNodes;\n const currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null;\n const currentAnnotationNode = keepAnnotations && this.annotationLayer && this.annotationLayer.div || null;\n\n for (let i = childNodes.length - 1; i >= 0; i--) {\n const node = childNodes[i];\n\n if (currentZoomLayerNode === node || currentAnnotationNode === node) {\n continue;\n }\n\n div.removeChild(node);\n }\n\n div.removeAttribute(\"data-loaded\");\n\n if (currentAnnotationNode) {\n this.annotationLayer.hide();\n } else if (this.annotationLayer) {\n this.annotationLayer.cancel();\n this.annotationLayer = null;\n }\n\n if (!currentZoomLayerNode) {\n if (this.canvas) {\n this.paintedViewportMap.delete(this.canvas);\n this.canvas.width = 0;\n this.canvas.height = 0;\n delete this.canvas;\n }\n\n this._resetZoomLayer();\n }\n\n if (this.svg) {\n this.paintedViewportMap.delete(this.svg);\n delete this.svg;\n }\n\n this.loadingIconDiv = document.createElement(\"div\");\n this.loadingIconDiv.className = \"loadingIcon\";\n div.appendChild(this.loadingIconDiv);\n }\n\n update(scale, rotation) {\n this.scale = scale || this.scale;\n\n if (typeof rotation !== \"undefined\") {\n this.rotation = rotation;\n }\n\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = this.viewport.clone({\n scale: this.scale * _ui_utils.CSS_UNITS,\n rotation: totalRotation\n });\n\n if (this.svg) {\n this.cssTransform(this.svg, true);\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: true,\n timestamp: performance.now()\n });\n return;\n }\n\n let isScalingRestricted = false;\n\n if (this.canvas && this.maxCanvasPixels > 0) {\n const outputScale = this.outputScale;\n\n if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) {\n isScalingRestricted = true;\n }\n }\n\n if (this.canvas) {\n if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) {\n this.cssTransform(this.canvas, true);\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: true,\n timestamp: performance.now()\n });\n return;\n }\n\n if (!this.zoomLayer && !this.canvas.hasAttribute(\"hidden\")) {\n this.zoomLayer = this.canvas.parentNode;\n this.zoomLayer.style.position = \"absolute\";\n }\n }\n\n if (this.zoomLayer) {\n this.cssTransform(this.zoomLayer.firstChild);\n }\n\n this.reset(true, true);\n }\n\n cancelRendering(keepAnnotations = false) {\n if (this.paintTask) {\n this.paintTask.cancel();\n this.paintTask = null;\n }\n\n this.resume = null;\n\n if (this.textLayer) {\n this.textLayer.cancel();\n this.textLayer = null;\n }\n\n if (!keepAnnotations && this.annotationLayer) {\n this.annotationLayer.cancel();\n this.annotationLayer = null;\n }\n }\n\n cssTransform(target, redrawAnnotations = false) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n const div = this.div;\n target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + \"px\";\n target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + \"px\";\n const relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation;\n const absRotation = Math.abs(relativeRotation);\n let scaleX = 1,\n scaleY = 1;\n\n if (absRotation === 90 || absRotation === 270) {\n scaleX = height / width;\n scaleY = width / height;\n }\n\n const cssTransform = \"rotate(\" + relativeRotation + \"deg) \" + \"scale(\" + scaleX + \",\" + scaleY + \")\";\n target.style.transform = cssTransform;\n\n if (this.textLayer) {\n const textLayerViewport = this.textLayer.viewport;\n const textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation;\n const textAbsRotation = Math.abs(textRelativeRotation);\n let scale = width / textLayerViewport.width;\n\n if (textAbsRotation === 90 || textAbsRotation === 270) {\n scale = width / textLayerViewport.height;\n }\n\n const textLayerDiv = this.textLayer.textLayerDiv;\n let transX, transY;\n\n switch (textAbsRotation) {\n case 0:\n transX = transY = 0;\n break;\n\n case 90:\n transX = 0;\n transY = \"-\" + textLayerDiv.style.height;\n break;\n\n case 180:\n transX = \"-\" + textLayerDiv.style.width;\n transY = \"-\" + textLayerDiv.style.height;\n break;\n\n case 270:\n transX = \"-\" + textLayerDiv.style.width;\n transY = 0;\n break;\n\n default:\n console.error(\"Bad rotation value.\");\n break;\n }\n\n textLayerDiv.style.transform = \"rotate(\" + textAbsRotation + \"deg) \" + \"scale(\" + scale + \", \" + scale + \") \" + \"translate(\" + transX + \", \" + transY + \")\";\n textLayerDiv.style.transformOrigin = \"0% 0%\";\n }\n\n if (redrawAnnotations && this.annotationLayer) {\n this.annotationLayer.render(this.viewport, \"display\");\n }\n }\n\n get width() {\n return this.viewport.width;\n }\n\n get height() {\n return this.viewport.height;\n }\n\n getPagePoint(x, y) {\n return this.viewport.convertToPdfPoint(x, y);\n }\n\n draw() {\n if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) {\n console.error(\"Must be in new state before drawing\");\n this.reset();\n }\n\n const {\n div,\n pdfPage\n } = this;\n\n if (!pdfPage) {\n this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n\n if (this.loadingIconDiv) {\n div.removeChild(this.loadingIconDiv);\n delete this.loadingIconDiv;\n }\n\n return Promise.reject(new Error(\"pdfPage is not loaded\"));\n }\n\n this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;\n const canvasWrapper = document.createElement(\"div\");\n canvasWrapper.style.width = div.style.width;\n canvasWrapper.style.height = div.style.height;\n canvasWrapper.classList.add(\"canvasWrapper\");\n\n if (this.annotationLayer && this.annotationLayer.div) {\n div.insertBefore(canvasWrapper, this.annotationLayer.div);\n } else {\n div.appendChild(canvasWrapper);\n }\n\n let textLayer = null;\n\n if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) {\n const textLayerDiv = document.createElement(\"div\");\n textLayerDiv.className = \"textLayer\";\n textLayerDiv.style.width = canvasWrapper.style.width;\n textLayerDiv.style.height = canvasWrapper.style.height;\n\n if (this.annotationLayer && this.annotationLayer.div) {\n div.insertBefore(textLayerDiv, this.annotationLayer.div);\n } else {\n div.appendChild(textLayerDiv);\n }\n\n textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE, this.eventBus);\n }\n\n this.textLayer = textLayer;\n let renderContinueCallback = null;\n\n if (this.renderingQueue) {\n renderContinueCallback = cont => {\n if (!this.renderingQueue.isHighestPriority(this)) {\n this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED;\n\n this.resume = () => {\n this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;\n cont();\n };\n\n return;\n }\n\n cont();\n };\n }\n\n const finishPaintTask = async error => {\n if (paintTask === this.paintTask) {\n this.paintTask = null;\n }\n\n if (error instanceof _pdfjsLib.RenderingCancelledException) {\n this.error = null;\n return;\n }\n\n this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n\n if (this.loadingIconDiv) {\n div.removeChild(this.loadingIconDiv);\n delete this.loadingIconDiv;\n }\n\n this._resetZoomLayer(true);\n\n this.error = error;\n this.stats = pdfPage.stats;\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: false,\n timestamp: performance.now()\n });\n\n if (error) {\n throw error;\n }\n };\n\n const paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper);\n paintTask.onRenderContinue = renderContinueCallback;\n this.paintTask = paintTask;\n const resultPromise = paintTask.promise.then(function () {\n return finishPaintTask(null).then(function () {\n if (textLayer) {\n const readableStream = pdfPage.streamTextContent({\n normalizeWhitespace: true\n });\n textLayer.setTextContentStream(readableStream);\n textLayer.render();\n }\n });\n }, function (reason) {\n return finishPaintTask(reason);\n });\n\n if (this.annotationLayerFactory) {\n if (!this.annotationLayer) {\n this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, this.imageResourcesPath, this.renderInteractiveForms, this.l10n);\n }\n\n this.annotationLayer.render(this.viewport, \"display\");\n }\n\n div.setAttribute(\"data-loaded\", true);\n this.eventBus.dispatch(\"pagerender\", {\n source: this,\n pageNumber: this.id\n });\n return resultPromise;\n }\n\n paintOnCanvas(canvasWrapper) {\n const renderCapability = (0, _pdfjsLib.createPromiseCapability)();\n const result = {\n promise: renderCapability.promise,\n\n onRenderContinue(cont) {\n cont();\n },\n\n cancel() {\n renderTask.cancel();\n }\n\n };\n const viewport = this.viewport;\n const canvas = document.createElement(\"canvas\");\n this.l10n.get(\"page_canvas\", {\n page: this.id\n }, \"Page {{page}}\").then(msg => {\n canvas.setAttribute(\"aria-label\", msg);\n });\n canvas.setAttribute(\"hidden\", \"hidden\");\n let isCanvasHidden = true;\n\n const showCanvas = function () {\n if (isCanvasHidden) {\n canvas.removeAttribute(\"hidden\");\n isCanvasHidden = false;\n }\n };\n\n canvasWrapper.appendChild(canvas);\n this.canvas = canvas;\n canvas.mozOpaque = true;\n const ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n const outputScale = (0, _ui_utils.getOutputScale)(ctx);\n this.outputScale = outputScale;\n\n if (this.useOnlyCssZoom) {\n const actualSizeViewport = viewport.clone({\n scale: _ui_utils.CSS_UNITS\n });\n outputScale.sx *= actualSizeViewport.width / viewport.width;\n outputScale.sy *= actualSizeViewport.height / viewport.height;\n outputScale.scaled = true;\n }\n\n if (this.maxCanvasPixels > 0) {\n const pixelsInViewport = viewport.width * viewport.height;\n const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport);\n\n if (outputScale.sx > maxScale || outputScale.sy > maxScale) {\n outputScale.sx = maxScale;\n outputScale.sy = maxScale;\n outputScale.scaled = true;\n this.hasRestrictedScaling = true;\n } else {\n this.hasRestrictedScaling = false;\n }\n }\n\n const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx);\n const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy);\n canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]);\n canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]);\n canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + \"px\";\n canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + \"px\";\n this.paintedViewportMap.set(canvas, viewport);\n const transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0];\n const renderContext = {\n canvasContext: ctx,\n transform,\n viewport: this.viewport,\n enableWebGL: this.enableWebGL,\n renderInteractiveForms: this.renderInteractiveForms\n };\n const renderTask = this.pdfPage.render(renderContext);\n\n renderTask.onContinue = function (cont) {\n showCanvas();\n\n if (result.onRenderContinue) {\n result.onRenderContinue(cont);\n } else {\n cont();\n }\n };\n\n renderTask.promise.then(function () {\n showCanvas();\n renderCapability.resolve(undefined);\n }, function (error) {\n showCanvas();\n renderCapability.reject(error);\n });\n return result;\n }\n\n paintOnSvg(wrapper) {\n let cancelled = false;\n\n const ensureNotCancelled = () => {\n if (cancelled) {\n throw new _pdfjsLib.RenderingCancelledException(`Rendering cancelled, page ${this.id}`, \"svg\");\n }\n };\n\n const pdfPage = this.pdfPage;\n const actualSizeViewport = this.viewport.clone({\n scale: _ui_utils.CSS_UNITS\n });\n const promise = pdfPage.getOperatorList().then(opList => {\n ensureNotCancelled();\n const svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs);\n return svgGfx.getSVG(opList, actualSizeViewport).then(svg => {\n ensureNotCancelled();\n this.svg = svg;\n this.paintedViewportMap.set(svg, actualSizeViewport);\n svg.style.width = wrapper.style.width;\n svg.style.height = wrapper.style.height;\n this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n wrapper.appendChild(svg);\n });\n });\n return {\n promise,\n\n onRenderContinue(cont) {\n cont();\n },\n\n cancel() {\n cancelled = true;\n }\n\n };\n }\n\n setPageLabel(label) {\n this.pageLabel = typeof label === \"string\" ? label : null;\n\n if (this.pageLabel !== null) {\n this.div.setAttribute(\"data-page-label\", this.pageLabel);\n } else {\n this.div.removeAttribute(\"data-page-label\");\n }\n }\n\n}\n\nexports.PDFPageView = PDFPageView;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFRenderingQueue = exports.RenderingStates = void 0;\nconst CLEANUP_TIMEOUT = 30000;\nconst RenderingStates = {\n INITIAL: 0,\n RUNNING: 1,\n PAUSED: 2,\n FINISHED: 3\n};\nexports.RenderingStates = RenderingStates;\n\nclass PDFRenderingQueue {\n constructor() {\n this.pdfViewer = null;\n this.pdfThumbnailViewer = null;\n this.onIdle = null;\n this.highestPriorityPage = null;\n this.idleTimeout = null;\n this.printing = false;\n this.isThumbnailViewEnabled = false;\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setThumbnailViewer(pdfThumbnailViewer) {\n this.pdfThumbnailViewer = pdfThumbnailViewer;\n }\n\n isHighestPriority(view) {\n return this.highestPriorityPage === view.renderingId;\n }\n\n renderHighestPriority(currentlyVisiblePages) {\n if (this.idleTimeout) {\n clearTimeout(this.idleTimeout);\n this.idleTimeout = null;\n }\n\n if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {\n return;\n }\n\n if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) {\n if (this.pdfThumbnailViewer.forceRendering()) {\n return;\n }\n }\n\n if (this.printing) {\n return;\n }\n\n if (this.onIdle) {\n this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);\n }\n }\n\n getHighestPriority(visible, views, scrolledDown) {\n const visibleViews = visible.views;\n const numVisible = visibleViews.length;\n\n if (numVisible === 0) {\n return null;\n }\n\n for (let i = 0; i < numVisible; ++i) {\n const view = visibleViews[i].view;\n\n if (!this.isViewFinished(view)) {\n return view;\n }\n }\n\n if (scrolledDown) {\n const nextPageIndex = visible.last.id;\n\n if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) {\n return views[nextPageIndex];\n }\n } else {\n const previousPageIndex = visible.first.id - 2;\n\n if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) {\n return views[previousPageIndex];\n }\n }\n\n return null;\n }\n\n isViewFinished(view) {\n return view.renderingState === RenderingStates.FINISHED;\n }\n\n renderView(view) {\n switch (view.renderingState) {\n case RenderingStates.FINISHED:\n return false;\n\n case RenderingStates.PAUSED:\n this.highestPriorityPage = view.renderingId;\n view.resume();\n break;\n\n case RenderingStates.RUNNING:\n this.highestPriorityPage = view.renderingId;\n break;\n\n case RenderingStates.INITIAL:\n this.highestPriorityPage = view.renderingId;\n view.draw().finally(() => {\n this.renderHighestPriority();\n }).catch(reason => {\n console.error(`renderView: \"${reason}\"`);\n });\n break;\n }\n\n return true;\n }\n\n}\n\nexports.PDFRenderingQueue = PDFRenderingQueue;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFSinglePageViewer = void 0;\n\nvar _base_viewer = __w_pdfjs_require__(16);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nclass PDFSinglePageViewer extends _base_viewer.BaseViewer {\n constructor(options) {\n super(options);\n\n this.eventBus._on(\"pagesinit\", evt => {\n this._ensurePageViewVisible();\n });\n }\n\n get _viewerElement() {\n return (0, _pdfjsLib.shadow)(this, \"_viewerElement\", this._shadowViewer);\n }\n\n _resetView() {\n super._resetView();\n\n this._previousPageNumber = 1;\n this._shadowViewer = document.createDocumentFragment();\n this._updateScrollDown = null;\n }\n\n _ensurePageViewVisible() {\n const pageView = this._pages[this._currentPageNumber - 1];\n const previousPageView = this._pages[this._previousPageNumber - 1];\n const viewerNodes = this.viewer.childNodes;\n\n switch (viewerNodes.length) {\n case 0:\n this.viewer.appendChild(pageView.div);\n break;\n\n case 1:\n if (viewerNodes[0] !== previousPageView.div) {\n throw new Error(\"_ensurePageViewVisible: Unexpected previously visible page.\");\n }\n\n if (pageView === previousPageView) {\n break;\n }\n\n this._shadowViewer.appendChild(previousPageView.div);\n\n this.viewer.appendChild(pageView.div);\n this.container.scrollTop = 0;\n break;\n\n default:\n throw new Error(\"_ensurePageViewVisible: Only one page should be visible at a time.\");\n }\n\n this._previousPageNumber = this._currentPageNumber;\n }\n\n _scrollUpdate() {\n if (this._updateScrollDown) {\n this._updateScrollDown();\n }\n\n super._scrollUpdate();\n }\n\n _scrollIntoView({\n pageDiv,\n pageSpot = null,\n pageNumber = null\n }) {\n if (pageNumber) {\n this._setCurrentPageNumber(pageNumber);\n }\n\n const scrolledDown = this._currentPageNumber >= this._previousPageNumber;\n\n this._ensurePageViewVisible();\n\n this.update();\n\n super._scrollIntoView({\n pageDiv,\n pageSpot,\n pageNumber\n });\n\n this._updateScrollDown = () => {\n this.scroll.down = scrolledDown;\n this._updateScrollDown = null;\n };\n }\n\n _getVisiblePages() {\n return this._getCurrentVisiblePage();\n }\n\n _updateHelper(visiblePages) {}\n\n get _isScrollModeHorizontal() {\n return (0, _pdfjsLib.shadow)(this, \"_isScrollModeHorizontal\", false);\n }\n\n _updateScrollMode() {}\n\n _updateSpreadMode() {}\n\n}\n\nexports.PDFSinglePageViewer = PDFSinglePageViewer;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BaseViewer = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_rendering_queue = __w_pdfjs_require__(14);\n\nvar _annotation_layer_builder = __w_pdfjs_require__(1);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_page_view = __w_pdfjs_require__(13);\n\nvar _pdf_link_service = __w_pdfjs_require__(4);\n\nvar _text_layer_builder = __w_pdfjs_require__(5);\n\nconst DEFAULT_CACHE_SIZE = 10;\n\nfunction PDFPageViewBuffer(size) {\n const data = [];\n\n this.push = function (view) {\n const i = data.indexOf(view);\n\n if (i >= 0) {\n data.splice(i, 1);\n }\n\n data.push(view);\n\n if (data.length > size) {\n data.shift().destroy();\n }\n };\n\n this.resize = function (newSize, pagesToKeep) {\n size = newSize;\n\n if (pagesToKeep) {\n const pageIdsToKeep = new Set();\n\n for (let i = 0, iMax = pagesToKeep.length; i < iMax; ++i) {\n pageIdsToKeep.add(pagesToKeep[i].id);\n }\n\n (0, _ui_utils.moveToEndOfArray)(data, function (page) {\n return pageIdsToKeep.has(page.id);\n });\n }\n\n while (data.length > size) {\n data.shift().destroy();\n }\n };\n}\n\nfunction isSameScale(oldScale, newScale) {\n if (newScale === oldScale) {\n return true;\n }\n\n if (Math.abs(newScale - oldScale) < 1e-15) {\n return true;\n }\n\n return false;\n}\n\nclass BaseViewer {\n constructor(options) {\n if (this.constructor === BaseViewer) {\n throw new Error(\"Cannot initialize BaseViewer.\");\n }\n\n this._name = this.constructor.name;\n this.container = options.container;\n this.viewer = options.viewer || options.container.firstElementChild;\n this.eventBus = options.eventBus;\n this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService();\n this.downloadManager = options.downloadManager || null;\n this.findController = options.findController || null;\n this.removePageBorders = options.removePageBorders || false;\n this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.renderInteractiveForms = options.renderInteractiveForms || false;\n this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;\n this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;\n this.enableWebGL = options.enableWebGL || false;\n this.useOnlyCssZoom = options.useOnlyCssZoom || false;\n this.maxCanvasPixels = options.maxCanvasPixels;\n this.l10n = options.l10n || _ui_utils.NullL10n;\n this.defaultRenderingQueue = !options.renderingQueue;\n\n if (this.defaultRenderingQueue) {\n this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue();\n this.renderingQueue.setViewer(this);\n } else {\n this.renderingQueue = options.renderingQueue;\n }\n\n this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this));\n this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN;\n this._onBeforeDraw = this._onAfterDraw = null;\n\n this._resetView();\n\n if (this.removePageBorders) {\n this.viewer.classList.add(\"removePageBorders\");\n }\n\n Promise.resolve().then(() => {\n this.eventBus.dispatch(\"baseviewerinit\", {\n source: this\n });\n });\n }\n\n get pagesCount() {\n return this._pages.length;\n }\n\n getPageView(index) {\n return this._pages[index];\n }\n\n get pageViewsReady() {\n if (!this._pagesCapability.settled) {\n return false;\n }\n\n return this._pages.every(function (pageView) {\n return pageView && pageView.pdfPage;\n });\n }\n\n get currentPageNumber() {\n return this._currentPageNumber;\n }\n\n set currentPageNumber(val) {\n if (!Number.isInteger(val)) {\n throw new Error(\"Invalid page number.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n if (!this._setCurrentPageNumber(val, true)) {\n console.error(`${this._name}.currentPageNumber: \"${val}\" is not a valid page.`);\n }\n }\n\n _setCurrentPageNumber(val, resetCurrentPageView = false) {\n if (this._currentPageNumber === val) {\n if (resetCurrentPageView) {\n this._resetCurrentPageView();\n }\n\n return true;\n }\n\n if (!(0 < val && val <= this.pagesCount)) {\n return false;\n }\n\n this._currentPageNumber = val;\n this.eventBus.dispatch(\"pagechanging\", {\n source: this,\n pageNumber: val,\n pageLabel: this._pageLabels && this._pageLabels[val - 1]\n });\n\n if (resetCurrentPageView) {\n this._resetCurrentPageView();\n }\n\n return true;\n }\n\n get currentPageLabel() {\n return this._pageLabels && this._pageLabels[this._currentPageNumber - 1];\n }\n\n set currentPageLabel(val) {\n if (!this.pdfDocument) {\n return;\n }\n\n let page = val | 0;\n\n if (this._pageLabels) {\n const i = this._pageLabels.indexOf(val);\n\n if (i >= 0) {\n page = i + 1;\n }\n }\n\n if (!this._setCurrentPageNumber(page, true)) {\n console.error(`${this._name}.currentPageLabel: \"${val}\" is not a valid page.`);\n }\n }\n\n get currentScale() {\n return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE;\n }\n\n set currentScale(val) {\n if (isNaN(val)) {\n throw new Error(\"Invalid numeric scale.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n this._setScale(val, false);\n }\n\n get currentScaleValue() {\n return this._currentScaleValue;\n }\n\n set currentScaleValue(val) {\n if (!this.pdfDocument) {\n return;\n }\n\n this._setScale(val, false);\n }\n\n get pagesRotation() {\n return this._pagesRotation;\n }\n\n set pagesRotation(rotation) {\n if (!(0, _ui_utils.isValidRotation)(rotation)) {\n throw new Error(\"Invalid pages rotation angle.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n if (this._pagesRotation === rotation) {\n return;\n }\n\n this._pagesRotation = rotation;\n const pageNumber = this._currentPageNumber;\n\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n const pageView = this._pages[i];\n pageView.update(pageView.scale, rotation);\n }\n\n if (this._currentScaleValue) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this.eventBus.dispatch(\"rotationchanging\", {\n source: this,\n pagesRotation: rotation,\n pageNumber\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n\n get firstPagePromise() {\n return this.pdfDocument ? this._firstPageCapability.promise : null;\n }\n\n get onePageRendered() {\n return this.pdfDocument ? this._onePageRenderedCapability.promise : null;\n }\n\n get pagesPromise() {\n return this.pdfDocument ? this._pagesCapability.promise : null;\n }\n\n get _viewerElement() {\n throw new Error(\"Not implemented: _viewerElement\");\n }\n\n _onePageRenderedOrForceFetch() {\n if (!this.container.offsetParent || this._getVisiblePages().views.length === 0) {\n return Promise.resolve();\n }\n\n return this._onePageRenderedCapability.promise;\n }\n\n setDocument(pdfDocument) {\n if (this.pdfDocument) {\n this._cancelRendering();\n\n this._resetView();\n\n if (this.findController) {\n this.findController.setDocument(null);\n }\n }\n\n this.pdfDocument = pdfDocument;\n\n if (!pdfDocument) {\n return;\n }\n\n const pagesCount = pdfDocument.numPages;\n const firstPagePromise = pdfDocument.getPage(1);\n\n this._pagesCapability.promise.then(() => {\n this.eventBus.dispatch(\"pagesloaded\", {\n source: this,\n pagesCount\n });\n });\n\n this._onBeforeDraw = evt => {\n const pageView = this._pages[evt.pageNumber - 1];\n\n if (!pageView) {\n return;\n }\n\n this._buffer.push(pageView);\n };\n\n this.eventBus._on(\"pagerender\", this._onBeforeDraw);\n\n this._onAfterDraw = evt => {\n if (evt.cssTransform || this._onePageRenderedCapability.settled) {\n return;\n }\n\n this._onePageRenderedCapability.resolve();\n\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n\n this._onAfterDraw = null;\n };\n\n this.eventBus._on(\"pagerendered\", this._onAfterDraw);\n\n firstPagePromise.then(firstPdfPage => {\n this._firstPageCapability.resolve(firstPdfPage);\n\n const scale = this.currentScale;\n const viewport = firstPdfPage.getViewport({\n scale: scale * _ui_utils.CSS_UNITS\n });\n const textLayerFactory = this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE ? this : null;\n\n for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) {\n const pageView = new _pdf_page_view.PDFPageView({\n container: this._viewerElement,\n eventBus: this.eventBus,\n id: pageNum,\n scale,\n defaultViewport: viewport.clone(),\n renderingQueue: this.renderingQueue,\n textLayerFactory,\n textLayerMode: this.textLayerMode,\n annotationLayerFactory: this,\n imageResourcesPath: this.imageResourcesPath,\n renderInteractiveForms: this.renderInteractiveForms,\n renderer: this.renderer,\n enableWebGL: this.enableWebGL,\n useOnlyCssZoom: this.useOnlyCssZoom,\n maxCanvasPixels: this.maxCanvasPixels,\n l10n: this.l10n\n });\n\n this._pages.push(pageView);\n }\n\n const firstPageView = this._pages[0];\n\n if (firstPageView) {\n firstPageView.setPdfPage(firstPdfPage);\n this.linkService.cachePageRef(1, firstPdfPage.ref);\n }\n\n if (this._spreadMode !== _ui_utils.SpreadMode.NONE) {\n this._updateSpreadMode();\n }\n\n this._onePageRenderedOrForceFetch().then(() => {\n if (this.findController) {\n this.findController.setDocument(pdfDocument);\n }\n\n if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > 7500) {\n this._pagesCapability.resolve();\n\n return;\n }\n\n let getPagesLeft = pagesCount - 1;\n\n if (getPagesLeft <= 0) {\n this._pagesCapability.resolve();\n\n return;\n }\n\n for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) {\n pdfDocument.getPage(pageNum).then(pdfPage => {\n const pageView = this._pages[pageNum - 1];\n\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n\n this.linkService.cachePageRef(pageNum, pdfPage.ref);\n\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n }, reason => {\n console.error(`Unable to get page ${pageNum} to initialize viewer`, reason);\n\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n });\n }\n });\n\n this.eventBus.dispatch(\"pagesinit\", {\n source: this\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }).catch(reason => {\n console.error(\"Unable to initialize viewer\", reason);\n });\n }\n\n setPageLabels(labels) {\n if (!this.pdfDocument) {\n return;\n }\n\n if (!labels) {\n this._pageLabels = null;\n } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {\n this._pageLabels = null;\n console.error(`${this._name}.setPageLabels: Invalid page labels.`);\n } else {\n this._pageLabels = labels;\n }\n\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n const pageView = this._pages[i];\n const label = this._pageLabels && this._pageLabels[i];\n pageView.setPageLabel(label);\n }\n }\n\n _resetView() {\n this._pages = [];\n this._currentPageNumber = 1;\n this._currentScale = _ui_utils.UNKNOWN_SCALE;\n this._currentScaleValue = null;\n this._pageLabels = null;\n this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE);\n this._location = null;\n this._pagesRotation = 0;\n this._pagesRequests = new WeakMap();\n this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._scrollMode = _ui_utils.ScrollMode.VERTICAL;\n this._spreadMode = _ui_utils.SpreadMode.NONE;\n\n if (this._onBeforeDraw) {\n this.eventBus._off(\"pagerender\", this._onBeforeDraw);\n\n this._onBeforeDraw = null;\n }\n\n if (this._onAfterDraw) {\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n\n this._onAfterDraw = null;\n }\n\n this.viewer.textContent = \"\";\n\n this._updateScrollMode();\n }\n\n _scrollUpdate() {\n if (this.pagesCount === 0) {\n return;\n }\n\n this.update();\n }\n\n _scrollIntoView({\n pageDiv,\n pageSpot = null,\n pageNumber = null\n }) {\n (0, _ui_utils.scrollIntoView)(pageDiv, pageSpot);\n }\n\n _setScaleUpdatePages(newScale, newValue, noScroll = false, preset = false) {\n this._currentScaleValue = newValue.toString();\n\n if (isSameScale(this._currentScale, newScale)) {\n if (preset) {\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: newValue\n });\n }\n\n return;\n }\n\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n this._pages[i].update(newScale);\n }\n\n this._currentScale = newScale;\n\n if (!noScroll) {\n let page = this._currentPageNumber,\n dest;\n\n if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) {\n page = this._location.pageNumber;\n dest = [null, {\n name: \"XYZ\"\n }, this._location.left, this._location.top, null];\n }\n\n this.scrollPageIntoView({\n pageNumber: page,\n destArray: dest,\n allowNegativeOffset: true\n });\n }\n\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: preset ? newValue : undefined\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n\n _setScale(value, noScroll = false) {\n let scale = parseFloat(value);\n\n if (scale > 0) {\n this._setScaleUpdatePages(scale, value, noScroll, false);\n } else {\n const currentPage = this._pages[this._currentPageNumber - 1];\n\n if (!currentPage) {\n return;\n }\n\n const noPadding = this.isInPresentationMode || this.removePageBorders;\n let hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING;\n let vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING;\n\n if (!noPadding && this._isScrollModeHorizontal) {\n [hPadding, vPadding] = [vPadding, hPadding];\n }\n\n const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale;\n const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;\n\n switch (value) {\n case \"page-actual\":\n scale = 1;\n break;\n\n case \"page-width\":\n scale = pageWidthScale;\n break;\n\n case \"page-height\":\n scale = pageHeightScale;\n break;\n\n case \"page-fit\":\n scale = Math.min(pageWidthScale, pageHeightScale);\n break;\n\n case \"auto\":\n const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale);\n scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale);\n break;\n\n default:\n console.error(`${this._name}._setScale: \"${value}\" is an unknown zoom value.`);\n return;\n }\n\n this._setScaleUpdatePages(scale, value, noScroll, true);\n }\n }\n\n _resetCurrentPageView() {\n if (this.isInPresentationMode) {\n this._setScale(this._currentScaleValue, true);\n }\n\n const pageView = this._pages[this._currentPageNumber - 1];\n\n this._scrollIntoView({\n pageDiv: pageView.div\n });\n }\n\n scrollPageIntoView({\n pageNumber,\n destArray = null,\n allowNegativeOffset = false,\n ignoreDestinationZoom = false\n }) {\n if (!this.pdfDocument) {\n return;\n }\n\n const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1];\n\n if (!pageView) {\n console.error(`${this._name}.scrollPageIntoView: ` + `\"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n\n if (this.isInPresentationMode || !destArray) {\n this._setCurrentPageNumber(pageNumber, true);\n\n return;\n }\n\n let x = 0,\n y = 0;\n let width = 0,\n height = 0,\n widthScale,\n heightScale;\n const changeOrientation = pageView.rotation % 180 !== 0;\n const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS;\n const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS;\n let scale = 0;\n\n switch (destArray[1].name) {\n case \"XYZ\":\n x = destArray[2];\n y = destArray[3];\n scale = destArray[4];\n x = x !== null ? x : 0;\n y = y !== null ? y : pageHeight;\n break;\n\n case \"Fit\":\n case \"FitB\":\n scale = \"page-fit\";\n break;\n\n case \"FitH\":\n case \"FitBH\":\n y = destArray[2];\n scale = \"page-width\";\n\n if (y === null && this._location) {\n x = this._location.left;\n y = this._location.top;\n }\n\n break;\n\n case \"FitV\":\n case \"FitBV\":\n x = destArray[2];\n width = pageWidth;\n height = pageHeight;\n scale = \"page-height\";\n break;\n\n case \"FitR\":\n x = destArray[2];\n y = destArray[3];\n width = destArray[4] - x;\n height = destArray[5] - y;\n const hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING;\n const vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING;\n widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS;\n heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS;\n scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));\n break;\n\n default:\n console.error(`${this._name}.scrollPageIntoView: ` + `\"${destArray[1].name}\" is not a valid destination type.`);\n return;\n }\n\n if (!ignoreDestinationZoom) {\n if (scale && scale !== this._currentScale) {\n this.currentScaleValue = scale;\n } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) {\n this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;\n }\n }\n\n if (scale === \"page-fit\" && !destArray[4]) {\n this._scrollIntoView({\n pageDiv: pageView.div,\n pageNumber\n });\n\n return;\n }\n\n const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)];\n let left = Math.min(boundingRect[0][0], boundingRect[1][0]);\n let top = Math.min(boundingRect[0][1], boundingRect[1][1]);\n\n if (!allowNegativeOffset) {\n left = Math.max(left, 0);\n top = Math.max(top, 0);\n }\n\n this._scrollIntoView({\n pageDiv: pageView.div,\n pageSpot: {\n left,\n top\n },\n pageNumber\n });\n }\n\n _updateLocation(firstPage) {\n const currentScale = this._currentScale;\n const currentScaleValue = this._currentScaleValue;\n const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue;\n const pageNumber = firstPage.id;\n let pdfOpenParams = \"#page=\" + pageNumber;\n pdfOpenParams += \"&zoom=\" + normalizedScaleValue;\n const currentPageView = this._pages[pageNumber - 1];\n const container = this.container;\n const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y);\n const intLeft = Math.round(topLeft[0]);\n const intTop = Math.round(topLeft[1]);\n pdfOpenParams += \",\" + intLeft + \",\" + intTop;\n this._location = {\n pageNumber,\n scale: normalizedScaleValue,\n top: intTop,\n left: intLeft,\n rotation: this._pagesRotation,\n pdfOpenParams\n };\n }\n\n _updateHelper(visiblePages) {\n throw new Error(\"Not implemented: _updateHelper\");\n }\n\n update() {\n const visible = this._getVisiblePages();\n\n const visiblePages = visible.views,\n numVisiblePages = visiblePages.length;\n\n if (numVisiblePages === 0) {\n return;\n }\n\n const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);\n\n this._buffer.resize(newCacheSize, visiblePages);\n\n this.renderingQueue.renderHighestPriority(visible);\n\n this._updateHelper(visiblePages);\n\n this._updateLocation(visible.first);\n\n this.eventBus.dispatch(\"updateviewarea\", {\n source: this,\n location: this._location\n });\n }\n\n containsElement(element) {\n return this.container.contains(element);\n }\n\n focus() {\n this.container.focus();\n }\n\n get _isScrollModeHorizontal() {\n return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL;\n }\n\n get isInPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN;\n }\n\n get isChangingPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING;\n }\n\n get isHorizontalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth;\n }\n\n get isVerticalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight;\n }\n\n _getCurrentVisiblePage() {\n if (!this.pagesCount) {\n return {\n views: []\n };\n }\n\n const pageView = this._pages[this._currentPageNumber - 1];\n const element = pageView.div;\n const view = {\n id: pageView.id,\n x: element.offsetLeft + element.clientLeft,\n y: element.offsetTop + element.clientTop,\n view: pageView\n };\n return {\n first: view,\n last: view,\n views: [view]\n };\n }\n\n _getVisiblePages() {\n return (0, _ui_utils.getVisibleElements)(this.container, this._pages, true, this._isScrollModeHorizontal);\n }\n\n isPageVisible(pageNumber) {\n if (!this.pdfDocument) {\n return false;\n }\n\n if (pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(`${this._name}.isPageVisible: \"${pageNumber}\" is out of bounds.`);\n return false;\n }\n\n return this._getVisiblePages().views.some(function (view) {\n return view.id === pageNumber;\n });\n }\n\n cleanup() {\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) {\n this._pages[i].reset();\n }\n }\n }\n\n _cancelRendering() {\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n if (this._pages[i]) {\n this._pages[i].cancelRendering();\n }\n }\n }\n\n _ensurePdfPageLoaded(pageView) {\n if (pageView.pdfPage) {\n return Promise.resolve(pageView.pdfPage);\n }\n\n if (this._pagesRequests.has(pageView)) {\n return this._pagesRequests.get(pageView);\n }\n\n const promise = this.pdfDocument.getPage(pageView.id).then(pdfPage => {\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n\n this._pagesRequests.delete(pageView);\n\n return pdfPage;\n }).catch(reason => {\n console.error(\"Unable to get page for page view\", reason);\n\n this._pagesRequests.delete(pageView);\n });\n\n this._pagesRequests.set(pageView, promise);\n\n return promise;\n }\n\n forceRendering(currentlyVisiblePages) {\n const visiblePages = currentlyVisiblePages || this._getVisiblePages();\n\n const scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down;\n const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead);\n\n if (pageView) {\n this._ensurePdfPageLoaded(pageView).then(() => {\n this.renderingQueue.renderView(pageView);\n });\n\n return true;\n }\n\n return false;\n }\n\n createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) {\n return new _text_layer_builder.TextLayerBuilder({\n textLayerDiv,\n eventBus,\n pageIndex,\n viewport,\n findController: this.isInPresentationMode ? null : this.findController,\n enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection\n });\n }\n\n createAnnotationLayerBuilder(pageDiv, pdfPage, imageResourcesPath = \"\", renderInteractiveForms = false, l10n = _ui_utils.NullL10n) {\n return new _annotation_layer_builder.AnnotationLayerBuilder({\n pageDiv,\n pdfPage,\n imageResourcesPath,\n renderInteractiveForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager,\n l10n\n });\n }\n\n get hasEqualPageSizes() {\n const firstPageView = this._pages[0];\n\n for (let i = 1, ii = this._pages.length; i < ii; ++i) {\n const pageView = this._pages[i];\n\n if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) {\n return false;\n }\n }\n\n return true;\n }\n\n getPagesOverview() {\n const pagesOverview = this._pages.map(function (pageView) {\n const viewport = pageView.pdfPage.getViewport({\n scale: 1\n });\n return {\n width: viewport.width,\n height: viewport.height,\n rotation: viewport.rotation\n };\n });\n\n if (!this.enablePrintAutoRotate) {\n return pagesOverview;\n }\n\n const isFirstPagePortrait = (0, _ui_utils.isPortraitOrientation)(pagesOverview[0]);\n return pagesOverview.map(function (size) {\n if (isFirstPagePortrait === (0, _ui_utils.isPortraitOrientation)(size)) {\n return size;\n }\n\n return {\n width: size.height,\n height: size.width,\n rotation: (size.rotation + 90) % 360\n };\n });\n }\n\n get scrollMode() {\n return this._scrollMode;\n }\n\n set scrollMode(mode) {\n if (this._scrollMode === mode) {\n return;\n }\n\n if (!(0, _ui_utils.isValidScrollMode)(mode)) {\n throw new Error(`Invalid scroll mode: ${mode}`);\n }\n\n this._scrollMode = mode;\n this.eventBus.dispatch(\"scrollmodechanged\", {\n source: this,\n mode\n });\n\n this._updateScrollMode(this._currentPageNumber);\n }\n\n _updateScrollMode(pageNumber = null) {\n const scrollMode = this._scrollMode,\n viewer = this.viewer;\n viewer.classList.toggle(\"scrollHorizontal\", scrollMode === _ui_utils.ScrollMode.HORIZONTAL);\n viewer.classList.toggle(\"scrollWrapped\", scrollMode === _ui_utils.ScrollMode.WRAPPED);\n\n if (!this.pdfDocument || !pageNumber) {\n return;\n }\n\n if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this._setCurrentPageNumber(pageNumber, true);\n\n this.update();\n }\n\n get spreadMode() {\n return this._spreadMode;\n }\n\n set spreadMode(mode) {\n if (this._spreadMode === mode) {\n return;\n }\n\n if (!(0, _ui_utils.isValidSpreadMode)(mode)) {\n throw new Error(`Invalid spread mode: ${mode}`);\n }\n\n this._spreadMode = mode;\n this.eventBus.dispatch(\"spreadmodechanged\", {\n source: this,\n mode\n });\n\n this._updateSpreadMode(this._currentPageNumber);\n }\n\n _updateSpreadMode(pageNumber = null) {\n if (!this.pdfDocument) {\n return;\n }\n\n const viewer = this.viewer,\n pages = this._pages;\n viewer.textContent = \"\";\n\n if (this._spreadMode === _ui_utils.SpreadMode.NONE) {\n for (let i = 0, iMax = pages.length; i < iMax; ++i) {\n viewer.appendChild(pages[i].div);\n }\n } else {\n const parity = this._spreadMode - 1;\n let spread = null;\n\n for (let i = 0, iMax = pages.length; i < iMax; ++i) {\n if (spread === null) {\n spread = document.createElement(\"div\");\n spread.className = \"spread\";\n viewer.appendChild(spread);\n } else if (i % 2 === parity) {\n spread = spread.cloneNode(false);\n viewer.appendChild(spread);\n }\n\n spread.appendChild(pages[i].div);\n }\n }\n\n if (!pageNumber) {\n return;\n }\n\n this._setCurrentPageNumber(pageNumber, true);\n\n this.update();\n }\n\n}\n\nexports.BaseViewer = BaseViewer;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFViewer = void 0;\n\nvar _base_viewer = __w_pdfjs_require__(16);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nclass PDFViewer extends _base_viewer.BaseViewer {\n get _viewerElement() {\n return (0, _pdfjsLib.shadow)(this, \"_viewerElement\", this.viewer);\n }\n\n _scrollIntoView({\n pageDiv,\n pageSpot = null,\n pageNumber = null\n }) {\n if (!pageSpot && !this.isInPresentationMode) {\n const left = pageDiv.offsetLeft + pageDiv.clientLeft;\n const right = left + pageDiv.clientWidth;\n const {\n scrollLeft,\n clientWidth\n } = this.container;\n\n if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) {\n pageSpot = {\n left: 0,\n top: 0\n };\n }\n }\n\n super._scrollIntoView({\n pageDiv,\n pageSpot,\n pageNumber\n });\n }\n\n _getVisiblePages() {\n if (this.isInPresentationMode) {\n return this._getCurrentVisiblePage();\n }\n\n return super._getVisiblePages();\n }\n\n _updateHelper(visiblePages) {\n if (this.isInPresentationMode) {\n return;\n }\n\n let currentId = this._currentPageNumber;\n let stillFullyVisible = false;\n\n for (const page of visiblePages) {\n if (page.percent < 100) {\n break;\n }\n\n if (page.id === currentId) {\n stillFullyVisible = true;\n break;\n }\n }\n\n if (!stillFullyVisible) {\n currentId = visiblePages[0].id;\n }\n\n this._setCurrentPageNumber(currentId);\n }\n\n}\n\nexports.PDFViewer = PDFViewer;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf_viewer.js.map"],"sourceRoot":""}