{"version":3,"sources":["webpack:///./src/components/www/builder/viewer/bottom-options.vue?3aa0","webpack:///./src/components/builder/components/other-components-component.vue?5d51","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./src/components/www/builder/viewer/viewer-component.vue?9c18","webpack:///./src/views/builder/step-2-builder.vue","webpack:///./src/components/builder/components/personal-data-component.vue","webpack:///./src/components/builder/form-wrapper.vue","webpack:///./src/components/builder/form-wrapper.vue?4f79","webpack:///./src/components/builder/components/personal-data-component.vue?d229","webpack:///./src/components/builder/form-item-dragable-wrapper.vue","webpack:///./src/components/builder/components/profile-component.vue","webpack:///./src/components/builder/builder-components.mixin.js","webpack:///./src/components/builder/components/profile-component.vue?6bd3","webpack:///./src/components/builder/components/studies-component.vue","webpack:///./src/components/builder/components/_base-header-component.vue","webpack:///./src/components/builder/components/_base-header-component.vue?8abc","webpack:///./src/components/builder/components/studies-component.vue?a873","webpack:///./src/components/builder/components/experiences-component.vue","webpack:///./src/components/builder/components/experiences-component.vue?3467","webpack:///./src/components/builder/components/courses-component.vue","webpack:///./src/components/builder/components/courses-component.vue?faa4","webpack:///./src/components/builder/components/languages-component.vue","webpack:///./src/components/builder/components/languages-component.vue?6aae","webpack:///./src/components/builder/components/competences-component.vue","webpack:///./src/components/builder/components/competences-component.vue?3749","webpack:///./src/components/builder/components/hobbies-component.vue","webpack:///./src/components/builder/components/hobbies-component.vue?e169","webpack:///./src/components/builder/components/references-component.vue","webpack:///./src/components/builder/components/references-component.vue?2b7e","webpack:///./src/components/builder/form-item-dragable-wrapper.vue?b4f0","webpack:///./src/components/builder/components/customs-section-component-wrapper.vue","webpack:///./src/components/builder/components/customs-item-component.vue","webpack:///./src/components/builder/components/customs-item-component.vue?2469","webpack:///./src/components/builder/components/customs-section-component-wrapper.vue?5822","webpack:///./src/components/builder/components/other-components-component.vue","webpack:///./src/components/builder/components/other-components-component.vue?09ad","webpack:///./src/components/www/builder/viewer/viewer-component.vue","webpack:///./src/components/www/builder/viewer/bottom-options.vue","webpack:///./src/components/www/builder/viewer/bottom-options.vue?ad75","webpack:///./src/components/www/builder/viewer/canvas-pdf.vue","webpack:///./src/components/www/builder/viewer/canvas-pdf.vue?4075","webpack:///./src/components/www/builder/viewer/viewer-component.vue?c46b","webpack:///./src/components/builder/button-switcher-view-mobile.vue","webpack:///./src/components/builder/button-switcher-view-mobile.vue?2b76","webpack:///./src/views/builder/step-2-builder.vue?f693","webpack:///./src/components/builder/components/customs-item-component.vue?2dda","webpack:///./src/components/builder/components/personal-data-component.vue?bd63","webpack:///./node_modules/core-js/modules/es.number.epsilon.js","webpack:///./src/components/builder/form-item-dragable-wrapper.vue?9157","webpack:///./node_modules/core-js/modules/es.string.replace-all.js","webpack:///./src/components/builder/components/experiences-component.vue?1dee","webpack:///./src/components/builder/components/_base-header-component.vue?a97b","webpack:///./src/components/builder/components/references-component.vue?d032","webpack:///./src/views/builder/step-2-builder.vue?a850","webpack:///./node_modules/pdfjs-distsm/build/pdf.worker.js","webpack:///./src/components/builder/button-switcher-view-mobile.vue?b457","webpack:///./node_modules/pdfjs-distsm/build/pdf.js","webpack:///./src/components/builder/components/competences-component.vue?e3f6","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///./src/components/builder/components/courses-component.vue?bb5c","webpack:///./node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack:///./src/components/builder/components/customs-section-component-wrapper.vue?94c8","webpack:///./src/components/builder/components/studies-component.vue?3591","webpack:///./src/components/builder/components/languages-component.vue?cc91","webpack:///./src/components/builder/components/hobbies-component.vue?aa07","webpack:///./src/components/builder/form-wrapper.vue?da3b","webpack:///./node_modules/pdfjs-distsm/build/pdf.worker.entry.js"],"names":["apply","call","uncurryThis","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","toLength","toString","getMethod","arraySlice","callRegExpExec","regexpExec","stickyHelpers","fails","UNSUPPORTED_Y","MAX_UINT32","min","Math","$push","push","exec","stringSlice","slice","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","re","originalExec","this","arguments","result","split","length","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","string","lim","undefined","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","RegExp","source","index","O","splitter","rx","S","res","done","value","C","unicodeMatching","p","q","A","e","z","i","$store","dragOptions","forceShowViewer","name","__exports__","inject","components","FormWrapper","data","computed","formObject","get","state","DataCvBuilderStore","personal_data","set","commit","languageTemplate","template_conf","lang","watch","deep","handler","$ObserserFormSync","setup","showMoreOptions","showHideMoreOptions","listDraggables","itemSelected","form","updateDescription","emits","props","item","type","Object","default","position","Number","itemIdSelected","String","showForm","created","propItem","getitemIdSelected","propTitle","section_title","propDates","section_date_from","section_date_until","inmediate","updateItem","section_position","_id","methods","setViewer","$emit","section_description","replaceAll","mixins","update","where","id","required","Boolean","BaseHeaderComponent","section_center","section_city","section_date_actual","deleteThis","delete","section_work_bussines_name","section_university","selectedOption","options","section_language_level","text","section_competence_level","section_reference_contact","section_reference_phone","section_reference_email","models","studiesComponent","profileComponent","experienceComponent","coursesComponent","languagesComponent","competencesComponent","hobbieComponent","referencesComponent","serviceFactory","componentName","draggable","firstIntentDecline","firstIntentDraggables","animation","disbled","swapThreshold","fallbackOnBody","fallbackClass","ghostClass","chosenClass","dragClass","headersTitleAndIcon","title","icon","textButtonMore","mounted","syncModels","listDataORM","addItemToList","getModel","insert","setIdViewSelected","keys","dispatch","deleteAll","query","first","create","orderBy","titleSection","buttonMore","console","log","customComponentDataForm","listCustomItemsComponents","customItemComponent","firstIntentSectionDecline","firstIntentItemsDecline","customSectionID","getCustomModel","getCustomItems","results","syncModel","custom","syncCustomItems","createCustomItem","section_custom_rel","v","pushComponent","customComponent","listComponents","customSection","CustomModel","getters","disabledButtons","disableProfileComponent","includes","disableStudiesComponent","disableExperienceComponent","disableCoursesComponent","disableLanguagesComponent","disableCompetencesComponent","disableHobbieComponent","disableReferencesComponent","templateColors","option_colors","colorsSelected","colorSelectedForm","default_colors","fontSelected","fontSelectedForm","changeSelectedColor","groupColors","changeSelectedFont","font","changeTemplate","$router","params","curriculum_id","canvasDimensions","store","surface1","surface2","pageShowing","pdfCodedBase64","actualPage","readFile","draw","dataBase64","pdf","atob","promise","then","numPages","getPage","pagePdf","error","viewport","getViewport","scale","canvas_width","width","context","getContext","height","canvas_height","renderContext","canvasContext","renderInteractiveForms","render","createPngFromSurface","resizedCanvas","document","createElement","resizedContext","drawImage","myResizedData","toDataURL","BottomOptions","CanvasPdf","viewInfo","viewRootPdf","viewPdf","viewOptions","router","dimensionPdf","isSync","pages","totalPages","dimensionPdfComputed","resize","window","addEventListener","removeEventListener","hoja_h","clientHeight","hoja_w","clientWidth","calcularHeight","calcularWith","setCanvas","dimensions","round","EPSILON","style","enableButtonPrev","enableButtonNext","downloadPdf","downloadCurriculum","curriculum","downloadFile","pdf_base64","catch","response","message","hide","scrollPosition","handleScroll","beforeUnmount","body","getBoundingClientRect","top","PersonalDataComponent","FormItemDragableWrapper","OtherComponentsComponent","CustomsSectionComponentWrapper","ViewerComponent","ButtonSwitcherViewMobile","group","mql","matchMedia","isMobile","setComponentIsMobile","listSections2","orderItems","map","NewlistSections","l","viewDrawerComponent","event","matches","$","target","stat","pow","global","isCallable","regExpFlags","getSubstitution","wellKnownSymbol","IS_PURE","REPLACE","RegExpPrototype","prototype","TypeError","getFlags","indexOf","replace","max","stringIndexOf","searchValue","fromIndex","proto","replaceValue","IS_REG_EXP","replacer","searchString","functionalReplace","searchLength","advanceBy","replacement","endOfLastMatch","root","factory","module","exports","modules","installedModules","__w_pdfjs_require__","moduleId","m","c","d","getter","o","defineProperty","enumerable","r","Symbol","toStringTag","t","mode","__esModule","ns","key","bind","n","object","property","hasOwnProperty","s","_worker","WorkerMessageHandler","WorkerTask","_util","_primitives","_pdf_manager","_writer","_is_node","_message_handler","_worker_stream","_core_utils","terminated","_capability","createPromiseCapability","resolve","Error","port","testMessageProcessed","on","Uint8Array","send","supportTransfers","postMessageTransfers","setVerbosityLevel","verbosity","createDocumentHandler","docParams","pdfManager","cancelXHRs","WorkerTasks","getVerbosityLevel","apiVersion","workerVersion","enumerableProperties","join","ReadableStream","Promise","allSettled","docId","docBaseUrl","workerHandlerName","MessageHandler","ensureNotTerminated","startWorkerTask","task","finishWorkerTask","finish","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","arrayByteLength","total","read","cancelAllRequests","setupDoc","onSuccess","doc","pdfInfo","onFailure","PasswordException","code","sendWithPromise","updatePassword","pdfManagerReady","InvalidPDFException","MissingPDFException","UnexpectedResponseException","UnknownErrorException","XRefParseException","requestLoadedStream","onLoadedStream","maxImageSize","disableFontFace","ignoreErrors","isEvalSupported","fontExtraProperties","terminate","AbortException","stream","bytes","byteLength","pageIndex","page","ensure","rotate","ref","userUnit","view","pageRef","Ref","num","gen","ensureCatalog","ensureXRef","intent","getAnnotationsData","annotationStorage","filename","promises","pdfDocument","save","refs","newRefs","filter","x","reduce","a","b","concat","xref","newXrefInfo","trailer","_info","xrefInfo","forEach","isString","stringToPDFString","rootRef","getRaw","encrypt","newRef","getNewRef","infoRef","info","fileIds","startXRef","resetNewRef","incrementalUpdate","sink","start","VerbosityLevel","INFOS","Date","now","getOperatorList","operatorListInfo","close","featureId","UNSUPPORTED_FEATURES","errorOperatorList","onPull","desiredSize","onCancel","extractTextContent","normalizeWhitespace","combineTextItems","fontFallback","cleanup","waitOn","cleanupPromise","clearPrimitiveCaches","finished","destroy","isMessagePort","maybePort","postMessage","isNodeJS","self","initializeFromPort","assert","bytesToString","escapeString","getModificationDate","isArrayBuffer","isArrayEqual","isBool","isNum","isSameOrigin","createValidAbsoluteUrl","removeNullCharacters","shadow","string32","stringToBytes","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","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","smask","shadingPattern","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorFontToUnicode","errorFontLoadNative","errorFontGetPath","errorMarkedContent","NEED_PASSWORD","INCORRECT_PASSWORD","level","isInteger","msg","cond","baseUrl","otherUrl","base","URL","origin","other","_isValidProtocol","url","protocol","absoluteUrl","obj","prop","configurable","writable","constructor","super","details","status","NullCharactersRegExp","str","MAX_ARGUMENT_COUNT","fromCharCode","strBuf","chunkEnd","chunk","subarray","charCodeAt","arr","resultLength","pos","itemLength","isLittleEndian","buffer8","view32","Uint32Array","buffer","Function","rgbBuf","g","m1","m2","xt","yt","p1","applyTransform","p2","p3","p4","transpose","second","sqrt","sx","sy","rect","rect1","rect2","compare","orderedX","sort","orderedY","normalizeRect","PDFStringTranslateTable","charAt","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","every","element","date","getUTCFullYear","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","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","getKeys","getRawValues","values","has","callback","empty","merge","dictArray","mergeSubDicts","mergedDict","dict","entries","size","properties","Map","subDict","clear","refCache","refValue","_set","Set","add","aliasRef","v1","v2","getBytes","_chunked_stream","_document","_stream","BasePdfManager","_docId","_password","_docBaseUrl","href","args","catalog","manuallyTriggered","begin","end","Stream","PDFDocument","_loadedStreamPromise","pdfNetworkStream","streamManager","ChunkedStreamManager","getStream","MissingDataException","requestRange","requestAllChunks","onReceiveData","abort","ChunkedStream","chunkSize","manager","_loadedChunks","numChunks","ceil","progressiveDataLength","lastSuccessfulEnsureByteChunk","chunks","numChunksLoaded","beginChunk","floor","endChunk","curChunk","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","requestIds","groupedChunksToRequest","groupChunks","groupedChunk","sendRequest","getBeginChunk","getEndChunk","ranges","range","groupedChunks","prevChunk","isProgressive","onReceiveProgressiveData","loadedRequests","nextEmptyChunk","lastChunk","err","getLookupTableFactory","getInheritableProperty","toRomanNumerals","log2","readInt8","readUint16","readUint32","isWhiteSpace","XRefEntryException","initializer","lookup","getArray","stopWhenFound","LOOP_LIMIT","loopCount","ROMAN_NUMBER_MAP","number","lowerCase","romanBuf","romanStr","toLowerCase","offset","ch","Page","_obj","_annotation","_crypto","_parser","_operator_list","_evaluator","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","isAnnotationRenderable","annotation","viewable","printable","pageDict","globalIdFactory","fontCache","builtInCMapCache","globalImageCache","resourcesPromise","idCounters","_localIdFactory","_getInheritableProperty","box","_getBoundingBox","mediaBox","cropBox","intersect","content","streams","fetchIfRef","StreamsSequenceStream","NullStream","partialEvaluator","PartialEvaluator","idFactory","_parsedAnnotations","annotations","newRefsPromises","objectLoader","ObjectLoader","resources","load","contentStreamPromise","loadResources","dataPromises","pageListPromise","contentStream","opList","OperatorList","transparency","hasBlendModes","operatorList","pageOpList","flush","totalLength","opListPromises","opLists","addOp","addOpList","getTextContent","annotationsData","parsedAnnotations","annotationPromises","annotationRef","AnnotationFactory","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","PDF_HEADER_VERSION_REGEXP","find","signature","backwards","signatureLength","scanBytes","peekBytes","scanLength","signatureEnd","j","arg","XRef","_pagePromises","_version","_globalIdFactory","parse","Catalog","version","linearization","Linearization","reset","step","startXRefLength","found","skip","parseInt","isNaN","moveStart","MAX_PDF_VERSION_LENGTH","substring","setStartXRef","fields","recursionDepth","RECURSION_LIMIT","field","_hasOnlyDocumentSignatures","isSignature","isInvisible","formInfo","hasAcroForm","hasXfa","acroForm","xfa","isEmpty","hasFields","sigFlags","hasOnlyDocumentSignatures","DocumentInfoValidators","Title","Author","Subject","Keywords","Creator","Producer","CreationDate","ModDate","Trapped","test","docInfo","PDFFormatVersion","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","collection","infoDict","customValue","Custom","hash","idArray","calculateMD5","getByteRange","fingerprintBuf","hex","objectNumberFirst","pageKidsCountCache","put","getPageDict","pageFirst","_getLinearizationPage","FileSpec","_colorspace","_image_utils","fetchDestination","dest","_catDict","getCatalogObj","GlobalImageCache","streamRef","encryptMetadata","metadata","subtype","pagesObj","_readDocumentOutline","items","queue","parent","processed","blackColor","shift","outlineDict","parseDestDictionary","destDict","resultObj","color","count","rgbColor","ColorSpace","singletons","rgb","getRgb","outlineItem","unsafeUrl","newWindow","bold","italic","permissions","_readPermissions","config","defaultConfig","groupsData","groups","groupRefs","groupRef","_readOptionalContentConfig","contentGroupRefs","parseOnOff","onParsed","parseOrder","nestedLevels","order","parsedOrderRefs","nestedOrder","parseNestedOrder","hiddenGroups","MAX_NESTED_LEVELS","nestedName","creator","baseState","off","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","translatedFonts","translatedFont","loadedName","fallback","translated","nodesToVisit","visitedNodes","currentPageIndex","next","currentNode","pop","kids","last","pagesBeforeRef","kidRef","parentRef","node","getAsync","kidPromises","kid","addDefaultProtocolToUrl","startsWith","tryConvertUrlEncoding","actionType","actionName","urlDict","remoteDest","JSON","stringify","namedAction","jsAction","URL_OPEN_METHODS","regex","jsUrl","xrefstms","_cacheMap","stats","streamTypes","fontTypes","_newRefNum","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","contentRef","fileObj","mayHaveChildren","addChildren","rawValue","refSet","_walk","nodesToRevisit","pendingRequests","getBaseStreams","baseStreams","foundMissingData","requestRanges","remove","_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","followingBytes","knownCommands","nextObj","peekObj","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","_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","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","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","component","col","blocksPerLine","decodeScan","frame","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","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","sofScanLines","componentIds","componentId","componentsCount","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","nextFileMarker","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","src","srcPosition","dataPosition","imgRowSize","tileRowSize","JpxError","SubbandsGainLog2","LL","LH","HL","HH","failOnCorruptedImage","calculateComponentDimensions","siz","x0","XOsiz","XRsiz","x1","Xsiz","y0","YOsiz","YRsiz","y1","Ysiz","calculateTileGrids","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","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","lowAdd","highAdd","copyTo","assign","rotr","maj","sigma","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","t1","mode384","tmp3","tmp1","NullCipher","AESBaseCipher","_s","_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","encryptString","strLen","pad","padEnd","crypto","getRandomValues","random","buf","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","localColorSpaceCache","parsedColorSpace","csName","csRef","localColorSpace","getByRef","getByName","cs","pdfFunctionFactory","_parse","_cache","cachedColorSpace","getCached","gray","cmyk","PatternCS","colorSpaces","resourcesCS","baseCS","whitePoint","blackPoint","CalGrayCS","matrix","CalRGBCS","alt","altCS","hiVal","IndexedCS","tintFn","AlternateCS","LabCS","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","tmpBuf","baseNumComps","usesZeroToOneRange","baseBuf","scaled","tinted","getOutputLength","highVal","outputDelta","lookupPos","convertToRgb","srcScale","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","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","LocalGStateCache","LocalFunctionCache","LocalColorSpaceCache","LocalImageCache","BaseLocalCache","onlyRefs","_nameRefMap","_imageMap","_imageCache","_refCache","pageIndexSet","NUM_PAGES_THRESHOLD","MAX_IMAGES_TO_CACHE","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","_decodeFormValue","alternativeText","defaultAppearance","fieldResources","fieldFlags","readOnly","hasFieldFlag","unshift","loopDict","formValue","_hasText","_getAppearance","AP","originalTransform","newTransform","bufferOriginal","writeDict","bufferNew","isPassword","defaultPadding","hPadding","totalHeight","fontInfo","_getFontData","fontName","fontSize","_computeFontSize","descent","vPadding","abs","alignment","textAlignment","comb","_getCombAppearance","multiLine","_getMultilineAppearance","renderedText","_renderText","initialState","em","charsToGlyphs","capHeight","fontRegex","search","glyphs","glyph","toFixed","maximumLength","combWidth","renderedComb","_splitLine","padding","whitespace","lastSpacePos","startChunk","charWidth","checkedAppearance","uncheckedAppearance","checkBox","radioButton","pushButton","_processCheckBox","_processRadioButton","_processPushButton","savedAppearance","_saveCheckbox","_saveRadioButton","exportValue","buttonValue","parentBuffer","parentTransform","customAppearance","normalAppearance","exportValues","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","lastProcessed","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","curr","iFirstTransform","iFirstPIIXO","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","firstTransformArg1","firstTransformArg2","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","writeValue","writeStream","writeArray","numberToString","roundedValue","writeInt","writeString","computeMD5","filesize","time","md5Buffer","md5BufferLen","originalData","refForXrefTable","baseOffset","xrefTableData","indexes","maxOffset","md5","offsetSize","sizes","structSize","tableLength","bufferLen","footer","objOffset","_cmap","_fonts","_encodings","_unicode","_standard_fonts","_pattern","_function","_bidi","_glyphlist","_metrics","_murmurhash","_image","DefaultPartialEvaluatorOptions","freeze","PatternType","TILING","SHADING","deferred","normalizeBlendMode","parsingArray","maybeBM","TimeSlotManager","checked","CHECK_TIME_EVERY","endTime","TIME_SLOT_DURATION_MS","parsingType3Font","_fetchBuiltInCMapBound","fetchBuiltInCMap","PDFFunctionFactory","newOptions","newEvaluator","nodes","graphicStates","graphicState","bm","xObjects","xObject","xResources","readableStream","sendWithStream","getReader","pump","compressionType","xobj","optionalContent","parseMarkedContentProps","groupOptions","isolated","knockout","groupSubtype","colorSpace","parseColorSpace","backdrop","cacheGlobally","image","isInline","localImageCache","imageRef","bitStrideLength","imgArray","PDFImage","createMask","imageIsFromDecodeStream","inverseDecode","softMask","SMALL_IMAGE_DIMENSIONS","imageObj","_pdfFunctionFactory","createImageData","getDocId","shouldCache","buildImage","_sendImgData","addPageIndex","setData","stateManager","smaskContent","smaskOptions","transferObj","isPDFFunction","transferFn","transferMap","buildFormXObject","clone","tr","transferArray","transferMaps","numFns","numEffectfulFns","patternDict","tilingOpList","patternResources","getTilingPatternIR","tilingPatternIR","addDependencies","fontArgs","fontRef","loadFont","isType3Font","loadType3Data","type3Dependencies","TranslatedFont","ErrorFont","extraProperties","chars","isAddToPathSet","textRenderingMode","fillColorSpace","buildFontPaths","gState","localGStateCache","gStateRef","isSimpleGState","gStateObj","gStateKeys","handleSetFont","handleSMask","handleTransferFunction","errorFont","fontRes","fallbackFontDict","fontCapability","preEvaluatedFont","preEvaluateFont","descriptor","fontID","translatedPromise","fontRefIsRef","fontAliases","aliasFontRef","putAlias","createFontId","translateFont","fontType","xrefFontStats","fontFile3","getFontType","parsingText","opArgs","parseAsync","patternName","typeNum","handleTilingType","shading","Pattern","parseShading","getIR","contentProperties","optionalContentType","optionalContentGroups","groupIds","ocg","expression","policy","EvalState","xobjs","StateManager","preprocessor","EvaluatorPreprocessor","timeSlotManager","closePendingRestoreOPS","argument","savedStatesDepth","promiseBody","stop","operation","localImage","resolveXObject","rejectXObject","globalImage","buildPaintImageXObject","ensureStateFont","handleText","combinedGlyphs","arrLength","arrItem","strokeColorSpace","handleColorN","shadingRes","patternIR","localGStateObj","resolveGState","rejectGState","extGState","buildPath","seenStyles","TextState","WhitespaceRegexp","textContent","styles","textContentItem","vertical","lastAdvanceWidth","lastAdvanceHeight","textAdvanceScale","spaceWidth","fakeSpaceMin","Infinity","fakeMultiSpaceMin","fakeMultiSpaceMax","textRunBreakAllowed","SPACE_FACTOR","MULTI_SPACE_FACTOR","MULTI_SPACE_FACTOR_MAX","emptyXObjectCache","emptyGStateCache","textState","ensureTextContentItem","fontFamily","fallbackName","ascent","tsm","textHScale","textRise","fontMatrix","glyphHeight","trm","ctm","textMatrix","textLineMatrix","scaleLineX","scaleCtmX","isMonospace","replaceWhitespace","runBidiTransform","textChunk","bidiResult","bidi","dir","buildTextContentItem","glyphWidth","vmetric","glyphUnicode","NormalizedUnicodes","getNormalizedUnicodes","reverseIfRtl","charSpacing","isSpace","wordSpacing","addFakeSpaces","tx","ty","w0","translateTextMatrix","fakeSpaces","flushTextContentItem","enqueueChunk","advance","fontNameArg","fontSizeArg","leading","isSameTextLine","translateTextLineMatrix","carriageReturn","calcTextLineMatrixAdvance","setTextLineMatrix","breakTextRun","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","gStateFont","baseDict","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","defaultVMetrics","widths","glyphsWidths","defaultWidth","glyphsVMetrics","vmetrics","parseFloat","baseFontName","metrics","getBaseFontMetrics","buildCharCodeToWidth","firstWidth","FixedPitch","fontNameWoStyle","getSerifFonts","monospace","stdFontMap","getStdFontMap","lookupName","Metrics","getMetrics","isSerifFont","glyphWidths","widthsByGlyphName","uint8array","df","MurmurHash3_64","diffLength","diffBuf","diffEntry","hexdigest","maxCharIndex","Serif","getSymbolsFonts","extractDataStructures","newProperties","Font","baseFont","fontNameStr","baseFontStr","cMapPromise","fontFile","length1","length2","length3","fixedPitch","xHeight","italicAngle","cidEncoding","extractWidths","fontChar","renderer","hasBuiltPath","getPathJs","accent","_extraProperties","type3Loaded","sent","exportData","glyphCacheValues","type3Options","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcOperatorList","glyphStream","dummyOperatorList","stateStack","old","txDiff","tyDiff","denominator","getOPMap","numArgs","variableArgs","J","ri","gs","Q","cm","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","opMap","nonProcessedArgs","_numInvalidPathOPS","opSpec","argsLength","MAX_INVALID_PATH_OPS","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","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","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","post","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","locaEntries","missingGlyphs","writeOffset","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","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","offsetStart","offsetEnd","Type","cffDict","pair","setByKey","callDepth","stackSize","validationCommand","subrNumber","parseCharString","hasVStems","firstStackClearing","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","parentDict","privateOffset","emptyPrivateDictionary","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","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","types","opcodes","valueLength","layout","createTables","glyphIndex","CFFOffsetTracker","location","offset1","offset2","offset3","offset4","compileHeader","compileNameIndex","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","setEntryLocation","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeInteger","encodeFloat","EncodeFloatRegExp","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","offsetTracker","encodeNumber","isTracking","track","writeByteArray","numGlyphsLessNotDef","charsetIndex","numCharsets","warned","getSID","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","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","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","asb","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","PostScriptCompiler","PostScriptEvaluator","_ps_parser","_localFunctionCache","cachedFunction","parsedFunction","PDFFunction","parseArray","fnRef","localFunction","toNumberArray","CONSTRUCT_SAMPLED","CONSTRUCT_INTERPOLATED","CONSTRUCT_STICHED","CONSTRUCT_POSTSCRIPT","outputSize","bps","sampleMul","strBytes","strIdx","constructSampled","constructInterpolated","constructStiched","constructPostScript","typeFn","IR","constructSampledFromIR","constructInterpolatedFromIR","constructStichedFromIR","constructPostScriptFromIR","fromIR","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","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","temp","createBidiText","isLTR","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","Courier","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","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","_processStreamMessage","cbSourceName","cbTargetName","_createStreamSink","ah","_postMessage","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","isClosed","pull","pullCapability","cancel","cancelCapability","isCancelled","lastDesiredSize","sinkCapability","success","_deleteStreamController","_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","BaseCMapReaderFactory","DOMCanvasFactory","BaseCanvasFactory","DEFAULT_LINK_REL","PageViewport","SVG_NS","canvasAndContext","canvas","ownerDocument","globalThis","isCompressed","_fetchData","baseURI","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","lastIndexOf","started","times","outBuf","longest","duration","Response","script","onload","onerror","documentElement","appendChild","pdfDateStringRegex","year","month","day","hour","universalTimeRelation","offsetHour","offsetMinute","UTC","PDFPageProxy","PDFDocumentProxy","_font_loader","_node_utils","_annotation_storage","_canvas","_metadata","_optional_content_config","_transport_stream","_webgl","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DefaultCanvasFactory","NodeCanvasFactory","DefaultCMapReaderFactory","NodeCMapReaderFactory","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","AnnotationStorage","pageNumber","getPageIndex","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getOutline","getOptionalContentConfig","getPermissions","getMetadata","downloadInfoCapability","getStats","startCleanup","loadingTask","loadingParams","saveDocument","_pageIndex","_pageInfo","_ownerDocument","_stats","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","_intentStates","annotationsPromise","annotationsIntent","getAnnotations","enableWebGL","imageLayer","canvasFactory","optionalContentConfigPromise","renderingIntent","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","webGLContext","WebGLContext","enable","displayReadyCapability","_pumpOperatorList","complete","renderTasks","internalRenderTask","_tryCleanup","_abortOperatorList","timeEnd","InternalRenderTask","useRequestAnimationFrame","renderTask","optionalContentConfig","initializeGraphics","operatorListChanged","opListReadCapability","opListTask","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","highWaterMark","streamTextContent","pageCache","force","completed","resetStats","operatorListChunk","streamReader","_renderPageChunk","setTimeout","curIntentState","defer","_listeners","_defer","_deferred","cloneValue","cloned","transferable","byteOffset","desc","getOwnPropertyDescriptor","getPrototypeOf","WeakMap","PDFWorkerClosure","pdfWorkerPorts","isWorkerDisabled","fallbackWorkerSrc","nextFakeWorkerId","fakeWorkerCapability","pdfjsFilePath","currentScript","getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","mainWorkerMessageHandler","pdfjsWorker","setupFakeWorkerGlobal","loader","eval","createCDNWrapper","wrapper","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","Worker","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","workerHandler","fontLoader","FontLoader","_onUnsupportedFeature","_params","cMapUrl","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","_destroy","evt","readyReason","headersCapability","fullReader","_numPages","exception","_startRenderPage","exportedData","exportedError","fontRegistry","FontInspector","fontAdded","FontFaceObject","finally","pageProxy","MAX_IMAGE_SIZE_TO_STORE","fetched","resetModified","OptionalContentConfig","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","spliceString","chunk1","chunk2","called","isFontReady","fillText","getImageData","_loadTestFont","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","btoa","div","visibility","span","removeChild","translatedData","FontFace","registerFont","Canvas","createCanvas","_storage","_modified","onSetModified","onResetModified","_setModified","fromEntries","compatibilityParams","_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","contentVisible","markedContentStack","cachedCanvases","_cachedGetSinglePixelWidth","putBinaryImageData","ImageData","putImageData","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","srcLength","dest32","dest32DataLength","fullSrcDiff","white","srcDiff","kEnd","kEndUnrolled","srcByte","hasTransferMaps","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","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","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","skewX","skewY","imgToPaint","tmpCanvas","widthScale","heightScale","HTMLElement","tmpCtx","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getCanvasPosition","appendImage","visible","isVisible","isContentVisible","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","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","OptionalContentGroup","_order","_groups","from","_queuedChunks","_progressiveDone","_pdfDataRangeTransport","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","addProgressiveDoneListener","_onProgressiveDone","transportReady","_enqueue","some","_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","linkService","downloadManager","imageResourcesPath","svgFactory","container","_createContainer","transformOrigin","borderWidth","horizontalRadius","verticalRadius","borderRadius","borderBottomStyle","borderColor","trigger","popupElement","PopupElement","hideWrapper","popup","className","externalLinkTarget","externalLinkRel","externalLinkEnabled","_bindNamedAction","_bindLink","destination","getDestinationHash","navigateTo","getAnchorUrl","executeNamedAction","dataset","l10nId","l10nArgs","_createPopup","TEXT_ALIGNMENT","storage","getOrCreateValue","setValue","disabled","maxLength","fieldWidth","classList","letterSpacing","verticalAlign","display","_setTextStyle","textAlign","direction","fontWeight","fontStyle","radio","getElementsByName","getAttribute","selectElement","multiple","optionElement","selectedIndex","IGNORE_TYPES","selector","parentElement","querySelector","parentLeft","parentWidth","pinned","BACKGROUND_ENLIGHT","hideElement","dateObject","toDateObject","toLocaleDateString","toLocaleTimeString","_formatContents","_toggle","_show","_hide","createTextNode","pin","hasAttribute","removeAttribute","zIndex","unpin","append","square","containerClassName","svgElementName","coordinate","polyline","inkList","eventBus","_download","downloadData","sortedAnnotations","popupAnnotations","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","isAllWhitespace","appendText","geom","textDiv","textDivProperties","canvasWidth","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","expand","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","SVG_DEFAULTS","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","adler32","deflateSync","literals","deflateSyncUncompressed","Buffer","maxBlockLength","deflateBlocks","idat","adler","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","activeClipUrl","clipGroup","maskId","opListToTree","opTree","opListElement","pf","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","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","_source","_manager","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","_onRangeRequestReaderClosed","_onHeadersReceived","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","getRequestXhr","abortRequest","lengthComputable","isPendingRequest","_requestId","_close","createFetchOptions","abortController","signal","credentials","redirect","createHeaders","Headers","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","ownKeys","enumerableOnly","getOwnPropertySymbols","sym","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","defineProperties","_typeof","iterator","_extends","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","minLen","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","el","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","nodeType","closest","includeCTX","_throttleTimeout","R_SPACE","toggleClass","css","defaultView","getComputedStyle","currentStyle","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","tagName","list","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","innerHeight","innerWidth","containerRect","elMatrix","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","includeDragEl","currentChild","Sortable","ghost","dragged","lastChild","lastElementChild","previousElementSibling","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","indexOfObject","includeSelf","gotSelf","scrollWidth","scrollHeight","elemCSS","overflowX","overflowY","isRectEqual","throttle","ms","_this","cancelThrottle","scrollBy","Polymer","jQuery","Zepto","dom","setRect","unsetRect","expando","getTime","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animate","animationResetTimer","currentRect","translateX","translateY","animatingX","animatingY","forRepaintDummy","repaint","easing","animated","offsetWidth","plugins","initializeByDefault","PluginManager","mount","plugin","pluginName","pluginEvent","eventName","sortable","eventCanceled","eventNameGlobal","initializePlugins","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","pullMode","lastPutMode","allEventProperties","_excluded","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_dragElInRowColumn","dragRect","targetRect","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","ret","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","sameGroup","otherGroup","originalGroup","checkPull","checkPut","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","handle","invertSwap","invertedSwapThreshold","removeCloneOnHide","ignore","preventOnFilter","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_globalDragOver","dropEffect","_onMove","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_ghostIsFirst","spacer","_ghostIsLast","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_generateId","_saveInputCheckedState","inputs","idx","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","button","isContentEditable","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","getSelection","removeAllRanges","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","inserted","ghostMatrix","relativeScrollOffset","dx","cssMatrix","_hideClone","cloneId","insertBefore","_loopId","setInterval","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","elLastChild","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","dragIndex","nextElementSibling","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","handleEvent","useAnimation","querySelectorAll","utils","is","nextTick","cancelNextTick","detectDirection","_len","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","AutoScrollPlugin","AutoScroll","scroll","forceAutoScrollFallback","scrollSensitivity","scrollSpeed","bubbleScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","_ref2","dragOverBubble","clearPointerElemChangedInterval","clearAutoScrolls","nulling","autoScroll","ogElemScroller","newElem","pid","lastSwapEl","isFallback","scrollCustomFn","sens","speed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","scrollOffsetY","scrollOffsetX","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","swap","prevSwapEl","_ref3","swapNodes","swapItem","n2","isEqualNode","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","_this2","removeMultiDragElements","dragOver","_ref8","_ref9","insertMultiDragElements","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","shiftKey","multiDragIndex","nullingGlobal","destroyGlobal","select","deselect","_this3","oldIndicies","newIndicies","clones","clonesInserted","elementsInserted","__WEBPACK_EXTERNAL_MODULE__8bbf__","__WEBPACK_EXTERNAL_MODULE_a352__","__webpack_require__","TO_STRING_TAG","aFunction","that","toIndexedObject","nativeGetOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","it","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","$reduce","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","1","forced","callbackfn","classof","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","$forEach","getBuiltIn","ITERATOR","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","V8_VERSION","SPECIES","METHOD_NAME","foo","toInteger","integer","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","noTargetGet","sham","internalObjectKeys","enumBugKeys","hiddenKeys","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","unsafe","notARegExp","correctIsRegExpLogic","nativeStartsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","v8","Iterators","definePropertyModule","objectKeys","Properties","isObject","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getInternalState","getterFor","iterated","point","UNSCOPABLES","ArrayPrototype","MATCH","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","argumentsLength","mapfn","iteratorMethod","$entries","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","nativeReplace","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","regexp","fullUnicode","matchStr","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","tailPos","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","flattenIntoArray","arraySpeciesCreate","flatMap","sourceLen","CONVERT_TO_STRING","codeAt","originalArray","NATIVE_WEAK_MAP","objectHas","sharedKey","enforce","TYPE","wmget","wmhas","wmset","STATE","inspectSource","enforceInternalState","TEMPLATE","simple","TO_ENTRIES","addToUnscopables","wrappedWellKnownSymbolModule","NAME","activeXDocument","html","documentCreateElement","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","NullProtoObject","ActiveXObject","createIteratorConstructor","setPrototypeOf","setToStringTag","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","propertyKey","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","getCurrentScript","pageSource","inlineScriptSourceRegExp","inlineScriptSource","ieStackRegExp","ffStackRegExp","stackDetails","scriptLocation","currentLocation","scripts","outerHTML","innerHTML","functionToString","postfix","regexpFlags","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","charsAdded","strCopy","feature","detection","normalize","POLYFILL","NATIVE","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","returnMethod","nativeDefineProperty","Attributes","RE","original","depth","mapper","thisArg","targetIndex","sourceIndex","mapFn","ACCESSORS","0","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","shared","uid","defineWellKnownSymbol","SYMBOL","TO_PRIMITIVE","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","isSymbol","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","setter","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","valueOf","checkCorrectnessOfIteration","INCORRECT_ITERATION","iterable","dotAll","thrower","argument0","argument1","PrototypeOfArrayIteratorPrototype","arrayIterator","TO_STRING_TAG_SUPPORT","FunctionPrototype","FunctionPrototypeToString","nameRE","createWellKnownSymbol","withoutSetter","nativeKeys","FAILS_ON_PRIMITIVES","IndexedObject","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","boundFunction","findIndex","PREFERRED_STRING","SHARED","$findIndex","FIND_INDEX","SKIPS_HOLES","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","$includes","EXISTS","namespace","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","__proto__","TAG","IS_RIGHT","memo","REPLACE_SUPPORTS_NAMED_GROUPS","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","forceStringMethod","stringMethod","regexMethod","$map","__webpack_exports__","getConsole","ArrayIteratorMethods","ArrayValues","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","CORRECT_PROTOTYPE_GETTER","ARRAY_ITERATOR","Arguments","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","_arrayWithHoles","_iterableToArrayLimit","_arr","_n","_d","_e","_i","_nonIterableRest","_slicedToArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","removeNode","insertNodeAt","fatherNode","refNode","hit","camelize","manageAndEmit","emit","manage","eventHandlerNames","events","isReadOnly","tags","isHtmlTag","isTransition","isHtmlAttribute","project","getComponentAttributes","$attrs","_ref3$componentData","componentData","createSortableOption","callBackBuilder","getValidSortableEntries","eventType","eventBuilder","_ref13","_ref14","_classCallCheck","instance","Constructor","_defineProperties","_createClass","protoProps","staticProps","getHtmlElementFromNode","addContext","domElement","__draggable_context","componentStructure_ComponentStructure","ComponentStructure","_ref2$nodes","defaultNodes","realList","externalComponent","rootTransition","transition","_isRootComponent","domIndex","domChildren","firstDomListElement","indexFirstDomListElement","external_commonjs_vue_commonjs2_vue_root_Vue_","getSlot","slots","slotValue","computeNodes","$slots","getKey","normalizedList","_map2","getRootInformation","computeComponentStructure","_emit","evtName","evtData","_manage","originalElement","_manageAndEmit","delegateCallBack","draggingElement","modelValue","itemKey","move","draggableComponent","inheritAttrs","componentStructure","_this4","$el","updated","sortableOptions","targetDomElement","_sortable","__draggable_component__","newOptionValue","getUnderlyingVm","getUnderlyingPotencialDraggableComponent","htmElement","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","getVmIndexFromDomIndex","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","_this$context","removed","onDragUpdate","computeFutureIndex","relatedContext","currentDomIndex","draggedInList","onDragMove","futureIndex","draggedContext","sendEvent","onDragEnd","vuedraggable","nativeSlice","fin","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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AAS,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,O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AAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGD,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGD,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,IAC/wEQ,EAAc,CAAC,EAAE,GAAI,GAAI,CAAC,GAAIZ,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,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,EAA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C,GAAI,EACJsxC,EAAG,GACF,CACDtxC,GAAI,EACJsxC,EAAG,GACF,CACDtxC,GAAI,EACJsxC,EAAG,GACF,CACDtxC,GAAI,EACJsxC,EAAG,IACD,CAAC,CACHtxC,GAAI,EACJsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,GAAI,EACJsxC,GAAI,GACH,CACDtxC,GAAI,EACJsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,GAAI,EACJsxC,EAAG,GACF,CACDtxC,GAAI,EACJsxC,EAAG,GACF,CACDtxC,GAAI,EACJsxC,EAAG,IACD,CAAC,CACHtxC,GAAI,EACJsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,GAAI,EACJsxC,GAAI,GACH,CACDtxC,GAAI,EACJsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,GAAI,EACJsxC,EAAG,GACF,CACDtxC,GAAI,EACJsxC,EAAG,IACD,CAAC,CACHtxC,GAAI,EACJsxC,GAAI,GACH,CACDtxC,GAAI,EACJsxC,GAAI,GACH,CACDtxC,GAAI,EACJsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,GAAI,EACJsxC,EAAG,GACF,CACDtxC,GAAI,EACJsxC,EAAG,GACF,CACDtxC,GAAI,EACJsxC,EAAG,GACF,CACDtxC,GAAI,EACJsxC,EAAG,KAEDC,EAAsB,CAAC,CACzBC,OAAQ,CAAC,CACPxxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,EAAG,EACHsxC,GAAI,GACH,CACDtxC,GAAI,EACJsxC,EAAG,IAELG,UAAW,CAAC,CACV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,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,G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M,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,KACphD3Y,KAAKmqF,OAAS,IAAIxxE,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,IAA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GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,QAAS,KAAM,KAAM,OAAQ,KAAM,KAAM,KAAM,OAAQ,OAAQ,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,GAAI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,GAAI,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,IAGxt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AM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,IACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,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,MA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N,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,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,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,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO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AAY,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,K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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,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MA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","file":"js/path_creator.175416da.js","sourcesContent":["export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./bottom-options.vue?vue&type=style&index=0&id=6a46b455&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./other-components-component.vue?vue&type=style&index=0&id=438d3faa&lang=scss&scoped=true\"","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./viewer-component.vue?vue&type=style&index=0&id=303a0332&lang=scss&scoped=true\"","\n.wrapper-editor\n .form-editor\n XyzTransition(appear, xyz=\"left-1 fade delay-1\")\n .pre-wrapper(v-if=\"!$store.getters['DataCvBuilderStore/getIsLoading']\")\n PersonalDataComponent\n draggable(\n v-if=\"listSections2.length > 0\",\n v-model=\"listSections2\",\n v-bind=\"dragOptions\",\n tag=\"transition-group\",\n handle=\".move-icon\",\n item-key=\"_id\"\n )\n template(#item=\"{ element, index }\")\n CustomsSectionComponentWrapper(\n v-if=\"/custom/gm.exec(element._id)\",\n :componentName=\"element._id\",\n :position=\"index\"\n )\n FormItemDragableWrapper(\n :componentName=\"element._id\",\n :position=\"index\",\n v-else\n )\n OtherComponentsComponent.mb-8\n ViewerComponent(v-if=\"viewDrawerComponent\" v-on:closeViewer=\"forceShowViewer = false\")\n\nButtonSwitcherViewMobile(v-if=\"!viewDrawerComponent\" v-on:openViewer=\"forceShowViewer = true\")\n\n\n","\nFormWrapper\n .flex.justify-center.mb-6\n FormsBaseLanguageTemplateSelector(v-model=\"languageTemplate\")\n FormsBaseHeader\n .header-nav\n BaseCustomIcon.icon(nameIcon=\"mdiInformationOutline\", :size=\"26\")\n span.leading-none.pl-2 Información personal\n .form\n .flex.gap-4\n .flex.flex-col\n FormsBaseProfileImage(v-model=\"formObject.profile_image\")\n .grid.flex-grow\n .info-personal-grid\n BaseInputText(label=\"Nombre:\", v-model=\"formObject.profile_name\")\n BaseInputText(\n label=\"Apellidos:\",\n v-model=\"formObject.profile_post_name\"\n )\n .info-personal-grid.desktop.mt-4\n BaseInputText(label=\"Telefono:\", v-model=\"formObject.profile_phone\")\n BaseInputText(\n label=\"Correo electrónico:\",\n v-model=\"formObject.profile_email\"\n )\n .info-personal-grid.mobile.mt-4\n BaseInputText(label=\"Telefono:\", v-model=\"formObject.profile_phone\")\n BaseInputText(\n label=\"Correo electrónico:\",\n v-model=\"formObject.profile_email\"\n )\n .box-extra-info(:class=\"{ expanded: showMoreOptions }\")\n .grid.grid-cols-6.flex-grow.gap-4\n .section-block-direction\n BaseInputText(\n label=\"Dirección:\",\n v-model=\"formObject.address_direction\"\n )\n .section-block-postal-code\n BaseInputText(\n label=\"Código postal:\",\n v-model=\"formObject.address_postal_code\"\n )\n .col-span-3\n BaseInputText(\n label=\"Ciudad/Pueblo:\",\n v-model=\"formObject.address_city\"\n )\n .col-span-3\n BaseInputText(label=\"PaÃs:\", v-model=\"formObject.address_country\")\n .col-span-6\n BaseInputText(\n label=\"Profesión:\",\n v-model=\"formObject.profile_profession\"\n )\n .section-block-3\n BaseInputText(\n label=\"Fecha de nacimiento\",\n v-model=\"formObject.profile_birth_date\"\n )\n .section-block-3\n BaseInputText(\n label=\"Lugar de nacimiento\",\n v-model=\"formObject.profile_birth_location\"\n )\n .section-block-3\n BaseInputText(\n label=\"Nacionalidad\",\n v-model=\"formObject.profile_nationality\"\n )\n .section-block-3\n baseInputSelect(\n :listOptions=\"[{ text: 'No mostrar', id: 0 }, { text: 'Hombre', id: 1 }, { text: 'Mujer', id: 2 },]\",\n v-model=\"$store.state.DataCvBuilderStore.personal_data.profile_genre\",\n position=\"bottom\",\n label=\"Género:\"\n )\n .section-block-3\n BaseInputText(\n label=\"Permiso de conducir\",\n v-model=\"formObject.profile_vehicle_permision\"\n )\n .section-block-3\n BaseInputText(\n label=\"Estado civil\",\n v-model=\"formObject.profile_civil_state\"\n )\n .section-block-3\n BaseInputText(label=\"Página web\", v-model=\"formObject.profile_web\")\n .section-block-3\n BaseInputText(\n label=\"Linkedin\",\n v-model=\"formObject.profile_linkedin\"\n )\n .section-block-3\n BaseInputText(\n label=\"Instagram\",\n v-model=\"formObject.profile_instagram\"\n )\n .mt-4\n .button-show-more(@click=\"showHideMoreOptions\")\n .transform-gpu.transition.transition-transform.ease-in-out.duration-500(\n :class=\"{ '-rotate-180': showMoreOptions }\"\n )\n BaseCustomIcon.icon(nameIcon=\"mdiChevronDown\", :size=\"33\")\n span Información adicional\n\n\n\n\n\n","\n.form-wrapper\n slot\n\n\n\n\n\n","import { render } from \"./form-wrapper.vue?vue&type=template&id=2f899da4&scoped=true&lang=pug\"\nimport script from \"./form-wrapper.vue?vue&type=script&lang=js\"\nexport * from \"./form-wrapper.vue?vue&type=script&lang=js\"\n\nimport \"./form-wrapper.vue?vue&type=style&index=0&id=2f899da4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2f899da4\"]])\n\nexport default __exports__","import { render } from \"./personal-data-component.vue?vue&type=template&id=f5478838&scoped=true&lang=pug\"\nimport script from \"./personal-data-component.vue?vue&type=script&lang=js\"\nexport * from \"./personal-data-component.vue?vue&type=script&lang=js\"\n\nimport \"./personal-data-component.vue?vue&type=style&index=0&id=f5478838&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f5478838\"]])\n\nexport default __exports__","\nFormWrapper\n FormsBaseHeader \n .header-nav\n .flex.items-end\n BaseCustomIcon.icon(:nameIcon=\"titleSection.icon\", :size=\"26\")\n span.leading-none.pl-2 {{ titleSection.title }}\n .group-options\n BaseCustomIcon.delete-button.icon(\n nameIcon=\"mdiClose\",\n :size=\"26\",\n @click=\"deleteThis\"\n )\n BaseCustomIcon.move-icon.icon(nameIcon=\"mdiDotsGrid\", :size=\"26\")\n\n .form\n draggable(\n v-model=\"listDraggables\",\n v-bind=\"dragOptions\",\n tag=\"transition-group\",\n handle=\".drag-icon\",\n item-key=\"_id\",\n :group=\"componentName\"\n )\n template(#item=\"{ element, index }\")\n component(\n v-bind:is=\"componentName\",\n :item=\"element\",\n :position=\"index\",\n :itemIdSelected=\"itemSelected\",\n v-on:setItemSelected=\"setIdViewSelected\"\n )\n template(#footer, v-if=\"!!buttonMore\")\n FormsBaseAddMoreButton.mt-2(key=\"footer\", @click=\"addItemToList\")\n BaseCustomIcon.icon(nameIcon=\"mdiPlusCircleOutline\", :size=\"20\")\n span.pl-2 {{ buttonMore }}\n\n\n\n\n\n","\n.py-4.px-2\n FormsBaseTextArea(\n :content=\"form.section_description\",\n v-on:update=\"updateDescription\"\n )\n\n\n\n\n\n\n","export default {\n emits: ['setItemSelected'],\n props: {\n item: {\n type: Object,\n default: null\n },\n position: {\n type: Number,\n default: 0\n },\n itemIdSelected: {\n type: String,\n default: null\n }\n },\n data: () => ({\n showForm: false\n }),\n created() {\n this.form = { ...this.item };\n },\n computed: {\n propItem() {\n return this.item;\n },\n getitemIdSelected() {\n return this.itemIdSelected;\n },\n propTitle() {\n return this.item.section_title || 'Not defined';\n },\n propDates() {\n return `${this.item.section_date_from || '--'} - ${this.item.section_date_until || ' --'}`;\n }\n },\n watch: {\n form: {\n deep: true,\n inmediate: true,\n handler() {\n this.updateItem();\n }\n },\n position: {\n inmediate: true,\n async handler() {\n this.form.section_position = this.position;\n }\n },\n getitemIdSelected: {\n inmediate: true,\n deep: true,\n async handler() {\n if (this.getitemIdSelected == this.propItem._id) this.showForm = true;\n else this.showForm = false;\n }\n }\n },\n methods: {\n setViewer() {\n if (!this.showForm) this.$emit('setItemSelected', this.propItem._id);\n else this.$emit('setItemSelected', null);\n },\n updateDescription(value) {\n this.form.section_description = value.replaceAll('\"', \"'\");\n }\n }\n};\n","import { render } from \"./profile-component.vue?vue&type=template&id=4c42845e&lang=pug\"\nimport script from \"./profile-component.vue?vue&type=script&lang=js\"\nexport * from \"./profile-component.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n.info-study\n BaseHeaderComponent(\n :propTitle=\"propTitle\",\n :propDates=\"propDates\",\n :showForm=\"showForm\",\n v-on:deleteThis=\"deleteThis\",\n v-on:setViewer=\"setViewer\"\n )\n .box-form(:class=\"{ expanded: showForm }\")\n .grid-cols-mixed\n BaseInputText(label=\"Estudios:\", v-model=\"form.section_title\")\n .grid-cols-mixed\n BaseInputText(label=\"Ubicación:\", v-model=\"form.section_city\")\n .grid-cols-full\n BaseInputText(label=\"Institución/Centro:\", v-model=\"form.section_center\")\n .grid-cols-mixed\n BaseInputText(label=\"Fecha de inicio:\", v-model=\"form.section_date_from\")\n .grid-cols-mixed\n BaseInputText(\n label=\"Fecha de finalización:\",\n v-model=\"form.section_date_until\"\n )\n .grid-cols-full\n FormsBaseTextArea(\n :content=\"form.section_description\",\n v-on:update=\"updateDescription\"\n )\n\n\n\n\n\n","\n\n.flex.justify-between.items-center\n .group-title\n .text-header {{ propTitle }}\n .subtext-header {{ propDates }}\n .group-options\n BaseCustomIcon.icon.delete(\n nameIcon=\"mdiClose\",\n :size=\"26\",\n @click=\"$emit('deleteThis')\"\n )\n BaseCustomIcon.icon.edit(\n nameIcon=\"mdiCircleEditOutline\",\n :size=\"26\",\n @click=\"$emit('setViewer')\",\n :class=\"{ active: showForm }\"\n )\n BaseCustomIcon.icon.drag-icon(nameIcon=\"mdiDotsGrid\", :size=\"26\")\n\n\n\n\n\n","import { render } from \"./_base-header-component.vue?vue&type=template&id=ba9f9e72&scoped=true&lang=pug\"\nimport script from \"./_base-header-component.vue?vue&type=script&lang=js\"\nexport * from \"./_base-header-component.vue?vue&type=script&lang=js\"\n\nimport \"./_base-header-component.vue?vue&type=style&index=0&id=ba9f9e72&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ba9f9e72\"]])\n\nexport default __exports__","import { render } from \"./studies-component.vue?vue&type=template&id=7edabd49&scoped=true&lang=pug\"\nimport script from \"./studies-component.vue?vue&type=script&lang=js\"\nexport * from \"./studies-component.vue?vue&type=script&lang=js\"\n\nimport \"./studies-component.vue?vue&type=style&index=0&id=7edabd49&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7edabd49\"]])\n\nexport default __exports__","\n.info-study\n BaseHeaderComponent(\n :propTitle=\"propTitle\",\n :propDates=\"propDates\",\n :showForm=\"showForm\",\n v-on:deleteThis=\"deleteThis\",\n v-on:setViewer=\"setViewer\"\n )\n .box-form(:class=\"{ expanded: showForm }\")\n .grid-cols-mixed \n BaseInputText(label=\"Posición laboral:\", v-model=\"form.section_title\")\n .grid-cols-mixed \n BaseInputText(label=\"Ubicación:\", v-model=\"form.section_city\")\n .grid-cols-full\n BaseInputText(\n label=\"Empresa:\",\n v-model=\"form.section_work_bussines_name\"\n )\n .grid-cols-mixed \n BaseInputText(label=\"Fecha de inicio:\", v-model=\"form.section_date_from\")\n .grid-cols-mixed \n BaseInputText(\n label=\"Fecha de finalización:\",\n v-model=\"form.section_date_until\"\n )\n .grid-cols-full\n FormsBaseTextArea(\n :content=\"form.section_description\",\n v-on:update=\"updateDescription\"\n )\n\n\n\n\n","import { render } from \"./experiences-component.vue?vue&type=template&id=53341692&scoped=true&lang=pug\"\nimport script from \"./experiences-component.vue?vue&type=script&lang=js\"\nexport * from \"./experiences-component.vue?vue&type=script&lang=js\"\n\nimport \"./experiences-component.vue?vue&type=style&index=0&id=53341692&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-53341692\"]])\n\nexport default __exports__","\n.info-study\n BaseHeaderComponent(\n :propTitle=\"propTitle\",\n :propDates=\"propDates\",\n :showForm=\"showForm\",\n v-on:deleteThis=\"deleteThis\",\n v-on:setViewer=\"setViewer\"\n )\n\n .box-form(:class=\"{ expanded: showForm }\")\n .grid-cols-mixed\n BaseInputText(label=\"Curso:\", v-model=\"form.section_title\")\n .grid-cols-mixed\n BaseInputText(\n label=\"Institución/Centro:\",\n v-model=\"form.section_university\"\n )\n .grid-cols-mixed\n BaseInputText(label=\"Fecha de inicio:\", v-model=\"form.section_date_from\")\n .grid-cols-mixed\n BaseInputText(\n label=\"Fecha de finalización:\",\n v-model=\"form.section_date_until\"\n )\n .grid-cols-full\n FormsBaseTextArea(\n :content=\"form.section_description\",\n v-on:update=\"updateDescription\"\n )\n\n\n\n\n\n","import { render } from \"./courses-component.vue?vue&type=template&id=40348a4f&scoped=true&lang=pug\"\nimport script from \"./courses-component.vue?vue&type=script&lang=js\"\nexport * from \"./courses-component.vue?vue&type=script&lang=js\"\n\nimport \"./courses-component.vue?vue&type=style&index=0&id=40348a4f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-40348a4f\"]])\n\nexport default __exports__","\n.info-study\n BaseHeaderComponent(\n :propTitle=\"propTitle\",\n :propDates=\"selectedOption.text\",\n :showForm=\"showForm\",\n v-on:deleteThis=\"deleteThis\",\n v-on:setViewer=\"setViewer\"\n )\n\n .box-form(:class=\"{ expanded: showForm }\")\n .grid-cols-mixed\n BaseInputText(label=\"Idioma:\", v-model=\"form.section_title\")\n .grid-cols-mixed\n baseInputSelect(\n :listOptions=\"options\",\n v-model=\"selectedOption\",\n position=\"bottom\",\n label=\"Nivel:\"\n )\n\n\n\n\n\n","import { render } from \"./languages-component.vue?vue&type=template&id=7de868e0&scoped=true&lang=pug\"\nimport script from \"./languages-component.vue?vue&type=script&lang=js\"\nexport * from \"./languages-component.vue?vue&type=script&lang=js\"\n\nimport \"./languages-component.vue?vue&type=style&index=0&id=7de868e0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7de868e0\"]])\n\nexport default __exports__","\n.info-study\n BaseHeaderComponent(\n :propTitle=\"propTitle\",\n :propDates=\"selectedOption.text\",\n :showForm=\"showForm\",\n v-on:deleteThis=\"deleteThis\",\n v-on:setViewer=\"setViewer\"\n )\n\n .box-form(:class=\"{ expanded: showForm }\")\n .grid-cols-mixed\n BaseInputText(label=\"Competencia:\", v-model=\"form.section_title\")\n .grid-cols-mixed\n baseInputSelect(\n :listOptions=\"options\",\n v-model=\"selectedOption\",\n position=\"bottom\",\n label=\"Nivel:\"\n )\n\n\n\n\n\n","import { render } from \"./competences-component.vue?vue&type=template&id=12d8a74c&scoped=true&lang=pug\"\nimport script from \"./competences-component.vue?vue&type=script&lang=js\"\nexport * from \"./competences-component.vue?vue&type=script&lang=js\"\n\nimport \"./competences-component.vue?vue&type=style&index=0&id=12d8a74c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-12d8a74c\"]])\n\nexport default __exports__","\n.py-4.px-2\n FormsBaseTextArea(\n :content=\"form.section_description\",\n v-on:update=\"updateDescription\"\n )\n\n\n\n\n\n","import { render } from \"./hobbies-component.vue?vue&type=template&id=0b95e18c&scoped=true&lang=pug\"\nimport script from \"./hobbies-component.vue?vue&type=script&lang=js\"\nexport * from \"./hobbies-component.vue?vue&type=script&lang=js\"\n\nimport \"./hobbies-component.vue?vue&type=style&index=0&id=0b95e18c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0b95e18c\"]])\n\nexport default __exports__","\n.info-study\n BaseHeaderComponent(\n :propTitle=\"propTitle\",\n :propDates=\"form.section_reference_contact\",\n :showForm=\"showForm\",\n v-on:deleteThis=\"deleteThis\",\n v-on:setViewer=\"setViewer\"\n )\n .box-form(:class=\"{ expanded: showForm }\")\n .grid-cols-mixed\n BaseInputText(\n label=\"Persona de contacto:\",\n v-model=\"form.section_reference_contact\"\n )\n .grid-cols-mixed\n BaseInputText(label=\"Empresa:\", v-model=\"form.section_title\")\n .grid-cols-mixed\n BaseInputText(label=\"Telefono\", v-model=\"form.section_reference_phone\")\n .grid-cols-mixed\n BaseInputText(\n label=\"Correo electronico\",\n v-model=\"form.section_reference_email\"\n )\n\n\n\n\n","import { render } from \"./references-component.vue?vue&type=template&id=7ce25ca3&scoped=true&lang=pug\"\nimport script from \"./references-component.vue?vue&type=script&lang=js\"\nexport * from \"./references-component.vue?vue&type=script&lang=js\"\n\nimport \"./references-component.vue?vue&type=style&index=0&id=7ce25ca3&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7ce25ca3\"]])\n\nexport default __exports__","import { render } from \"./form-item-dragable-wrapper.vue?vue&type=template&id=4b2d1672&scoped=true&lang=pug\"\nimport script from \"./form-item-dragable-wrapper.vue?vue&type=script&lang=js\"\nexport * from \"./form-item-dragable-wrapper.vue?vue&type=script&lang=js\"\n\nimport \"./form-item-dragable-wrapper.vue?vue&type=style&index=0&id=4b2d1672&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b2d1672\"]])\n\nexport default __exports__","\nFormWrapper\n FormsBaseHeader \n .header-nav\n .header-title\n BaseCustomIcon.icon(nameIcon=\"mdiCommaBoxOutline\", :size=\"26\")\n input.input-title(v-model=\"customComponentDataForm.section_title\")\n .group-options\n BaseCustomIcon.delete-button.icon(\n nameIcon=\"mdiClose\",\n :size=\"26\",\n @click=\"deleteThis\"\n )\n BaseCustomIcon.move-icon.icon(nameIcon=\"mdiDotsGrid\", :size=\"26\")\n .form\n draggable(\n v-model=\"listCustomItemsComponents\",\n v-bind=\"dragOptions\",\n tag=\"transition-group\",\n handle=\".drag-icon\",\n item-key=\"_id\",\n :group=\"componentName\"\n )\n template(#item=\"{ element, index }\")\n customItemComponent(\n :item=\"element\",\n :position=\"index\",\n :itemIdSelected=\"itemSelected\",\n v-on:setItemSelected=\"setIdViewSelected\"\n )\n template(#footer)\n FormsBaseAddMoreButton.mt-2(key=\"footer\", @click=\"createCustomItem\")\n BaseCustomIcon.icon(nameIcon=\"mdiPlusCircleOutline\", :size=\"20\")\n span.pl-2 Añadir personalizado\n\n\n\n\n\n","\n.info-study\n BaseHeaderComponent(\n :propTitle=\"propTitle\",\n propDates=\"\",\n :showForm=\"showForm\",\n v-on:deleteThis=\"deleteThis\",\n v-on:setViewer=\"setViewer\"\n )\n .box-form(:class=\"{ expanded: showForm }\")\n .col-span-2\n BaseInputText(label=\"TÃtulo:\", v-model=\"form.section_title\")\n .col-span-2\n FormsBaseTextArea(\n :content=\"form.section_description\",\n v-on:update=\"updateDescription\"\n )\n\n\n\n\n","import { render } from \"./customs-item-component.vue?vue&type=template&id=34e3b932&scoped=true&lang=pug\"\nimport script from \"./customs-item-component.vue?vue&type=script&lang=js\"\nexport * from \"./customs-item-component.vue?vue&type=script&lang=js\"\n\nimport \"./customs-item-component.vue?vue&type=style&index=0&id=34e3b932&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-34e3b932\"]])\n\nexport default __exports__","import { render } from \"./customs-section-component-wrapper.vue?vue&type=template&id=121caa0a&scoped=true&lang=pug\"\nimport script from \"./customs-section-component-wrapper.vue?vue&type=script&lang=js\"\nexport * from \"./customs-section-component-wrapper.vue?vue&type=script&lang=js\"\n\nimport \"./customs-section-component-wrapper.vue?vue&type=style&index=0&id=121caa0a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-121caa0a\"]])\n\nexport default __exports__","\nFormWrapper\n FormsBaseHeader \n .flex.justify-between.items-end\n .flex.items-end\n BaseCustomIcon.icon(nameIcon=\"mdiPuzzleOutline\", :size=\"26\")\n span.leading-none.pl-2 Otros modulos\n .grid-other-modules\n .box-button(\n @click=\"disabledButtons.disableProfileComponent || pushComponent('profileComponent')\",\n :class=\"{ disabled: disabledButtons.disableProfileComponent }\"\n )\n BaseCustomIcon.box-button-icon(nameIcon=\"mdiAccountOutline\", :size=\"26\")\n .text-button Perfil\n .box-button(\n @click=\"disabledButtons.disableStudiesComponent || pushComponent('studiesComponent')\",\n :class=\"{ disabled: disabledButtons.disableStudiesComponent }\"\n )\n BaseCustomIcon.box-button-icon(nameIcon=\"mdiSchoolOutline\", :size=\"26\")\n .text-button Educación\n .box-button(\n @click=\"disabledButtons.disableExperienceComponent || pushComponent('experienceComponent')\",\n :class=\"{ disabled: disabledButtons.disableExperienceComponent }\"\n )\n BaseCustomIcon.box-button-icon(nameIcon=\"mdiChartArc\", :size=\"26\")\n .text-button Exp. Laboral\n .box-button(\n @click=\"disabledButtons.disableCoursesComponent || pushComponent('coursesComponent')\",\n :class=\"{ disabled: disabledButtons.disableCoursesComponent }\"\n )\n BaseCustomIcon.box-button-icon(\n nameIcon=\"mdiTextBoxPlusOutline\",\n :size=\"26\"\n )\n .text-button Cursos\n .box-button(\n @click=\"disabledButtons.disableCompetencesComponent || pushComponent('competencesComponent')\",\n :class=\"{ disabled: disabledButtons.disableCompetencesComponent }\"\n )\n BaseCustomIcon.box-button-icon(nameIcon=\"mdiTrophyOutline\", :size=\"26\")\n .text-button Competencias\n .box-button(\n @click=\"disabledButtons.disableLanguagesComponent || pushComponent('languagesComponent')\",\n :class=\"{ disabled: disabledButtons.disableLanguagesComponent }\"\n )\n BaseCustomIcon.box-button-icon(nameIcon=\"mdiTranslate\", :size=\"26\")\n .text-button Idiomas\n .box-button(\n @click=\"disabledButtons.disableHobbieComponent || pushComponent('hobbieComponent')\",\n :class=\"{ disabled: disabledButtons.disableHobbieComponent }\"\n )\n BaseCustomIcon.box-button-icon(nameIcon=\"mdiSoccer\", :size=\"26\")\n .text-button Hobbies\n .box-button(\n @click=\"disabledButtons.disableReferencesComponent || pushComponent('referencesComponent')\",\n :class=\"{ disabled: disabledButtons.disableReferencesComponent }\"\n )\n BaseCustomIcon.box-button-icon(\n nameIcon=\"mdiCommentCheckOutline\",\n :size=\"26\"\n )\n .text-button Referencias\n .box-button(@click=\"customComponent\")\n BaseCustomIcon.box-button-icon(nameIcon=\"mdiCommaBoxOutline\", :size=\"26\")\n .text-button Personalizado\n\n\n\n\n\n\n\n","import { render } from \"./other-components-component.vue?vue&type=template&id=438d3faa&scoped=true&lang=pug\"\nimport script from \"./other-components-component.vue?vue&type=script&lang=js\"\nexport * from \"./other-components-component.vue?vue&type=script&lang=js\"\n\nimport \"./other-components-component.vue?vue&type=style&index=0&id=438d3faa&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-438d3faa\"]])\n\nexport default __exports__","\n.viewer\n .w-full.h-full.flex.flex-col.max-w-5xl\n .viewer-info(ref=\"viewInfo\")\n\n .flex.justify-between.items-end\n XyzTransition(xyz=\"fade\")\n .group-sync(v-if=\"isSync\")\n BaseCustomIcon.icon.iconSync(nameIcon=\"mdiRefresh\", :size=\"16\")\n .txt Guardando\n .group-sync(v-else)\n BaseCustomIcon.icon.iconSuccess(nameIcon=\"mdiCheck\", :size=\"16\")\n .txt Guardado\n .button-back-editor(@click=\"$emit('closeViewer')\")\n BaseCustomIcon(nameIcon=\"mdiChevronLeft\")\n .txt Editor\n .button-download(@click=\"downloadPdf\", :class=\"{ disabled: isSync }\")\n BaseCustomIcon(nameIcon=\"mdiDownload\")\n .txt Descargar\n\n .viewer-pdf(ref=\"viewRootPdf\")\n .pdf(ref=\"viewPdf\")\n CanvasPdf(:canvasDimensions=\"dimensionPdfComputed\")\n XyzTransition(xyz=\"fade\")\n .loader(v-if=\"$store.getters['DataCvViewerStore/isLoading']\")\n .background\n .box-spinner\n BaseCustomIcon.animate-spin(nameIcon=\"mdiCogOutline\", :size=\"24\")\n .pagination\n .box-pagination\n BaseCustomIcon.icon(\n nameIcon=\"mdiChevronLeft\",\n :size=\"28\",\n :class=\"{ disabled: !enableButtonPrev }\",\n @click=\"enableButtonPrev && $store.dispatch('DataCvViewerStore/prevPage')\"\n )\n .pages.text-xs {{ `${pages.actualPage}-${pages.totalPages}` }}\n BaseCustomIcon.icon(\n nameIcon=\"mdiChevronRight\",\n :size=\"28\",\n :class=\"{ disabled: !enableButtonNext }\",\n @click=\"enableButtonNext && $store.dispatch('DataCvViewerStore/nextPage')\"\n )\n .viewer-options(ref=\"viewOptions\")\n BottomOptions\n\n\n\n\n\n","\n.bottomOption(v-if=\"templateColors\")\n .button-wrapper(@click=\"changeTemplate\")\n .button Cambiar plantilla\n formsBaseSelectColor(\n :options_colors=\"templateColors\",\n :color_selected=\"colorsSelected\",\n v-on:selectedColor=\"changeSelectedColor\"\n )\n formsBaseSelectorFont(\n :font_selected=\"fontSelected\",\n v-on:selectedFont=\"changeSelectedFont\"\n )\n\n\n\n\n\n","import { render } from \"./bottom-options.vue?vue&type=template&id=6a46b455&scoped=true&lang=pug\"\nimport script from \"./bottom-options.vue?vue&type=script&lang=js\"\nexport * from \"./bottom-options.vue?vue&type=script&lang=js\"\n\nimport \"./bottom-options.vue?vue&type=style&index=0&id=6a46b455&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6a46b455\"]])\n\nexport default __exports__","\n.h-full\n canvas(ref=\"surface1\", oncontextmenu=\"return false\")\n\n\n\n\n\n","import { render } from \"./canvas-pdf.vue?vue&type=template&id=0ccfca60&lang=pug\"\nimport script from \"./canvas-pdf.vue?vue&type=script&lang=js\"\nexport * from \"./canvas-pdf.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./viewer-component.vue?vue&type=template&id=303a0332&scoped=true&lang=pug\"\nimport script from \"./viewer-component.vue?vue&type=script&lang=js\"\nexport * from \"./viewer-component.vue?vue&type=script&lang=js\"\n\nimport \"./viewer-component.vue?vue&type=style&index=0&id=303a0332&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-303a0332\"]])\n\nexport default __exports__","\n.wrapper-action-button(@click=\"$emit('openViewer')\")\n .action-button(:class=\"{ 'hide': hide }\") \n .text Vér y Descargar\n BaseCustomIcon(nameIcon=\"mdiFileAccountOutline\").ml-2\n\n\n\n\n\n","import { render } from \"./button-switcher-view-mobile.vue?vue&type=template&id=435f9e90&scoped=true&lang=pug\"\nimport script from \"./button-switcher-view-mobile.vue?vue&type=script&lang=js\"\nexport * from \"./button-switcher-view-mobile.vue?vue&type=script&lang=js\"\n\nimport \"./button-switcher-view-mobile.vue?vue&type=style&index=0&id=435f9e90&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-435f9e90\"]])\n\nexport default __exports__","import { render } from \"./step-2-builder.vue?vue&type=template&id=18a46e39&scoped=true&lang=pug\"\nimport script from \"./step-2-builder.vue?vue&type=script&lang=js\"\nexport * from \"./step-2-builder.vue?vue&type=script&lang=js\"\n\nimport \"./step-2-builder.vue?vue&type=style&index=0&id=18a46e39&lang=scss&scoped=true\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-18a46e39\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./customs-item-component.vue?vue&type=style&index=0&id=34e3b932&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./personal-data-component.vue?vue&type=style&index=0&id=f5478838&lang=scss&scoped=true\"","var $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.es/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true }, {\n EPSILON: Math.pow(2, -52)\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./form-item-dragable-wrapper.vue?vue&type=style&index=0&id=4b2d1672&lang=scss&scoped=true\"","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpFlags = require('../internals/regexp-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\nvar getFlags = uncurryThis(regExpFlags);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (searchValue != null) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible('flags' in RegExpPrototype\n ? searchValue.flags\n : getFlags(searchValue)\n ));\n if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./experiences-component.vue?vue&type=style&index=0&id=53341692&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./_base-header-component.vue?vue&type=style&index=0&id=ba9f9e72&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./references-component.vue?vue&type=style&index=0&id=7ce25ca3&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./step-2-builder.vue?vue&type=style&index=0&id=18a46e39&lang=scss&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/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.6.347';\nconst pdfjsBuild = '3be9c65f';\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 _writer = __w_pdfjs_require__(27);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(46);\n\nvar _worker_stream = __w_pdfjs_require__(47);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nclass WorkerTask {\n constructor(name) {\n this.name = name;\n this.terminated = false;\n this._capability = (0, _util.createPromiseCapability)();\n }\n\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\nexports.WorkerTask = WorkerTask;\n\nclass WorkerMessageHandler {\n static 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 static 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.6.347';\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 (reason) {\n ensureNotTerminated();\n\n if (!(reason instanceof _core_utils.XRefParseException)) {\n onFailure(reason);\n return;\n }\n\n pdfManager.requestLoadedStream();\n pdfManager.onLoadedStream().then(function () {\n ensureNotTerminated();\n loadDocument(true).then(onSuccess, onFailure);\n });\n });\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({\n ref\n }) {\n const pageRef = _primitives.Ref.get(ref.num, ref.gen);\n\n return pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\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(\"GetOptionalContentConfig\", function (data) {\n return pdfManager.ensureCatalog(\"optionalContentConfig\");\n });\n handler.on(\"GetPermissions\", function (data) {\n return pdfManager.ensureCatalog(\"permissions\");\n });\n handler.on(\"GetMetadata\", function 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.ensureXRef(\"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(\"SaveDocument\", function ({\n numPages,\n annotationStorage,\n filename\n }) {\n pdfManager.requestLoadedStream();\n const promises = [pdfManager.onLoadedStream()];\n const document = pdfManager.pdfDocument;\n\n for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n promises.push(pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`Save: page ${pageIndex}`);\n return page.save(handler, task, annotationStorage);\n }));\n }\n\n return Promise.all(promises).then(([stream, ...refs]) => {\n let newRefs = [];\n\n for (const ref of refs) {\n newRefs = ref.filter(x => x !== null).reduce((a, b) => a.concat(b), newRefs);\n }\n\n if (newRefs.length === 0) {\n return stream.bytes;\n }\n\n const xref = document.xref;\n let newXrefInfo = Object.create(null);\n\n if (xref.trailer) {\n const _info = Object.create(null);\n\n const xrefInfo = xref.trailer.get(\"Info\") || null;\n\n if (xrefInfo) {\n xrefInfo.forEach((key, value) => {\n if ((0, _util.isString)(key) && (0, _util.isString)(value)) {\n _info[key] = (0, _util.stringToPDFString)(value);\n }\n });\n }\n\n newXrefInfo = {\n rootRef: xref.trailer.getRaw(\"Root\") || null,\n encrypt: xref.trailer.getRaw(\"Encrypt\") || null,\n newRef: xref.getNewRef(),\n infoRef: xref.trailer.getRaw(\"Info\") || null,\n info: _info,\n fileIds: xref.trailer.getRaw(\"ID\") || null,\n startXRef: document.startXRef,\n filename\n };\n }\n\n xref.resetNewRef();\n return (0, _writer.incrementalUpdate)(stream.bytes, newXrefInfo, newRefs);\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 annotationStorage: data.annotationStorage\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 static 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}\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.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isBool = isBool;\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 errorMarkedContent: \"errorMarkedContent\"\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 escapeString(str) {\n return str.replace(/([\\(\\)\\\\])/g, \"\\\\$1\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n return arr1.every(function (element, index) {\n return element === arr2[index];\n });\n}\n\nfunction getModificationDate(date = new Date(Date.now())) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), (date.getUTCDate() + 1).toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\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 && process.type && process.type !== \"browser\");\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 size() {\n return Object.keys(this._map).length;\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 getRawValues: function Dict_getRawValues() {\n return Object.values(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 ({\n xref,\n dictArray,\n mergeSubDicts = false\n }) {\n const mergedDict = new Dict(xref);\n\n if (!mergeSubDicts) {\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n\n for (const [key, value] of Object.entries(dict._map)) {\n if (mergedDict._map[key] === undefined) {\n mergedDict._map[key] = value;\n }\n }\n }\n\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n }\n\n const properties = new Map();\n\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n\n for (const [key, value] of Object.entries(dict._map)) {\n let property = properties.get(key);\n\n if (property === undefined) {\n property = [];\n properties.set(key, property);\n }\n\n property.push(value);\n }\n }\n\n for (const [name, values] of properties) {\n if (values.length === 1 || !(values[0] instanceof Dict)) {\n mergedDict._map[name] = values[0];\n continue;\n }\n\n const subDict = new Dict(xref);\n\n for (const dict of values) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n\n for (const [key, value] of Object.entries(dict._map)) {\n if (subDict._map[key] === undefined) {\n subDict._map[key] = value;\n }\n }\n }\n\n if (subDict.size > 0) {\n mergedDict._map[name] = subDict;\n }\n }\n\n properties.clear();\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\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\nclass RefSet {\n constructor() {\n this._set = new Set();\n }\n\n has(ref) {\n return this._set.has(ref.toString());\n }\n\n put(ref) {\n this._set.add(ref.toString());\n }\n\n remove(ref) {\n this._set.delete(ref.toString());\n }\n\n}\n\nexports.RefSet = RefSet;\n\nclass RefSetCache {\n constructor() {\n this._map = new Map();\n }\n\n get size() {\n return this._map.size;\n }\n\n get(ref) {\n return this._map.get(ref.toString());\n }\n\n has(ref) {\n return this._map.has(ref.toString());\n }\n\n put(ref, obj) {\n this._map.set(ref.toString(), obj);\n }\n\n putAlias(ref, aliasRef) {\n this._map.set(ref.toString(), this.get(aliasRef));\n }\n\n forEach(callback) {\n for (const value of this._map.values()) {\n callback(value);\n }\n }\n\n clear() {\n this._map.clear();\n }\n\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 = new Set();\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.has(chunk)) {\n chunks.push(chunk);\n }\n }\n\n return chunks;\n }\n\n getBaseStreams() {\n return [this];\n }\n\n get numChunksLoaded() {\n return this._loadedChunks.size;\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 this._loadedChunks.add(curChunk);\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 this._loadedChunks.add(curChunk);\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.has(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.has(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.has(chunk)) {\n return chunk;\n }\n }\n\n return null;\n }\n\n hasChunk(chunk) {\n return this._loadedChunks.has(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.has(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 = new Map();\n this._requestsByChunk = new Map();\n this._promisesByRequest = new Map();\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 = new Set();\n\n this._chunksNeededByRequest.set(requestId, chunksNeeded);\n\n for (const chunk of chunks) {\n if (!this.stream.hasChunk(chunk)) {\n chunksNeeded.add(chunk);\n }\n }\n\n if (chunksNeeded.size === 0) {\n return Promise.resolve();\n }\n\n const capability = (0, _util.createPromiseCapability)();\n\n this._promisesByRequest.set(requestId, capability);\n\n const chunksToRequest = [];\n\n for (const chunk of chunksNeeded) {\n let requestIds = this._requestsByChunk.get(chunk);\n\n if (!requestIds) {\n requestIds = [];\n\n this._requestsByChunk.set(chunk, requestIds);\n\n chunksToRequest.push(chunk);\n }\n\n requestIds.push(requestId);\n }\n\n if (chunksToRequest.length > 0) {\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\n return capability.promise.catch(reason => {\n if (this.aborted) {\n return;\n }\n\n throw reason;\n });\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.get(curChunk);\n\n if (!requestIds) {\n continue;\n }\n\n this._requestsByChunk.delete(curChunk);\n\n for (const requestId of requestIds) {\n const chunksNeeded = this._chunksNeededByRequest.get(requestId);\n\n if (chunksNeeded.has(curChunk)) {\n chunksNeeded.delete(curChunk);\n }\n\n if (chunksNeeded.size > 0) {\n continue;\n }\n\n loadedRequests.push(requestId);\n }\n }\n\n if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {\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.get(requestId);\n\n this._promisesByRequest.delete(requestId);\n\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 capability of this._promisesByRequest.values()) {\n capability.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__(28);\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 globalIdFactory,\n fontCache,\n builtInCMapCache,\n globalImageCache\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.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n const idCounters = {\n obj: 0\n };\n this._localIdFactory = class extends globalIdFactory {\n static createObjId() {\n return `p${pageIndex}_${++idCounters.obj}`;\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({\n xref: this.xref,\n dictArray: value\n });\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 save(handler, task, annotationStorage) {\n const partialEvaluator = new _evaluator.PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions\n });\n return this._parsedAnnotations.then(function (annotations) {\n const newRefsPromises = [];\n\n for (const annotation of annotations) {\n if (!isAnnotationRenderable(annotation, \"print\")) {\n continue;\n }\n\n newRefsPromises.push(annotation.save(partialEvaluator, task, annotationStorage).catch(function (reason) {\n (0, _util.warn)(\"save - ignoring annotation data during \" + `\"${task.name}\" task: \"${reason}\".`);\n return null;\n }));\n }\n\n return Promise.all(newRefsPromises);\n });\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 annotationStorage\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._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions\n });\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n const pageListPromise = dataPromises.then(([contentStream]) => {\n const opList = new _operator_list.OperatorList(intent, sink);\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, annotationStorage).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._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions\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._localIdFactory).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._pagePromises = [];\n this._version = null;\n const idCounters = {\n font: 0\n };\n this._globalIdFactory = class {\n static getDocId() {\n return `g_${pdfManager.docId}`;\n }\n\n static createFontId() {\n return `f${++idCounters.font}`;\n }\n\n static createObjId() {\n (0, _util.unreachable)(\"Abstract method `createObjId` called.\");\n }\n\n };\n }\n\n parse(recoveryMode) {\n this.xref.parse(recoveryMode);\n this.catalog = new _obj.Catalog(this.pdfManager, this.xref);\n\n if (this.catalog.version) {\n this._version = this.catalog.version;\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._version) {\n this._version = version.substring(5);\n }\n }\n\n parseStartXRef() {\n this.xref.setStartXRef(this.startXRef);\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 _hasOnlyDocumentSignatures(fields, recursionDepth = 0) {\n const RECURSION_LIMIT = 10;\n return fields.every(field => {\n field = this.xref.fetchIfRef(field);\n\n if (field.has(\"Kids\")) {\n if (++recursionDepth > RECURSION_LIMIT) {\n (0, _util.warn)(\"_hasOnlyDocumentSignatures: maximum recursion depth reached\");\n return false;\n }\n\n return this._hasOnlyDocumentSignatures(field.get(\"Kids\"), recursionDepth);\n }\n\n const isSignature = (0, _primitives.isName)(field.get(\"FT\"), \"Sig\");\n const rectangle = field.get(\"Rect\");\n const isInvisible = Array.isArray(rectangle) && rectangle.every(value => value === 0);\n return isSignature && isInvisible;\n });\n }\n\n get formInfo() {\n const formInfo = {\n hasAcroForm: false,\n hasXfa: false\n };\n const acroForm = this.catalog.acroForm;\n\n if (!acroForm) {\n return (0, _util.shadow)(this, \"formInfo\", formInfo);\n }\n\n try {\n const xfa = acroForm.get(\"XFA\");\n const hasXfa = Array.isArray(xfa) && xfa.length > 0 || (0, _primitives.isStream)(xfa) && !xfa.isEmpty;\n formInfo.hasXfa = hasXfa;\n const fields = acroForm.get(\"Fields\");\n const hasFields = Array.isArray(fields) && fields.length > 0;\n const sigFlags = acroForm.get(\"SigFlags\");\n\n const hasOnlyDocumentSignatures = !!(sigFlags & 0x1) && this._hasOnlyDocumentSignatures(fields);\n\n formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures;\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.info)(\"Cannot fetch form information.\");\n }\n\n return (0, _util.shadow)(this, \"formInfo\", formInfo);\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._version;\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.formInfo.hasAcroForm,\n IsXFAPresent: this.formInfo.hasXfa,\n IsCollectionPresent: !!this.catalog.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 globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n globalImageCache: catalog.globalImageCache\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 version() {\n const version = this._catDict.get(\"Version\");\n\n if (!(0, _primitives.isName)(version)) {\n return (0, _util.shadow)(this, \"version\", null);\n }\n\n return (0, _util.shadow)(this, \"version\", version.name);\n }\n\n get collection() {\n let collection = null;\n\n try {\n const obj = this._catDict.get(\"Collection\");\n\n if ((0, _primitives.isDict)(obj) && obj.size > 0) {\n collection = obj;\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.info)(\"Cannot fetch Collection entry; assuming no collection is present.\");\n }\n\n return (0, _util.shadow)(this, \"collection\", collection);\n }\n\n get acroForm() {\n let acroForm = null;\n\n try {\n const obj = this._catDict.get(\"AcroForm\");\n\n if ((0, _primitives.isDict)(obj) && obj.size > 0) {\n acroForm = obj;\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 forms are present.\");\n }\n\n return (0, _util.shadow)(this, \"acroForm\", acroForm);\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 optionalContentConfig() {\n let config = null;\n\n try {\n const properties = this._catDict.get(\"OCProperties\");\n\n if (!properties) {\n return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n }\n\n const defaultConfig = properties.get(\"D\");\n\n if (!defaultConfig) {\n return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n }\n\n const groupsData = properties.get(\"OCGs\");\n\n if (!Array.isArray(groupsData)) {\n return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n }\n\n const groups = [];\n const groupRefs = [];\n\n for (const groupRef of groupsData) {\n if (!(0, _primitives.isRef)(groupRef)) {\n continue;\n }\n\n groupRefs.push(groupRef);\n const group = this.xref.fetchIfRef(groupRef);\n groups.push({\n id: groupRef.toString(),\n name: (0, _util.isString)(group.get(\"Name\")) ? (0, _util.stringToPDFString)(group.get(\"Name\")) : null,\n intent: (0, _util.isString)(group.get(\"Intent\")) ? (0, _util.stringToPDFString)(group.get(\"Intent\")) : null\n });\n }\n\n config = this._readOptionalContentConfig(defaultConfig, groupRefs);\n config.groups = groups;\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`Unable to read optional content config: ${ex}`);\n }\n\n return (0, _util.shadow)(this, \"optionalContentConfig\", config);\n }\n\n _readOptionalContentConfig(config, contentGroupRefs) {\n function parseOnOff(refs) {\n const onParsed = [];\n\n if (Array.isArray(refs)) {\n for (const value of refs) {\n if (!(0, _primitives.isRef)(value)) {\n continue;\n }\n\n if (contentGroupRefs.includes(value)) {\n onParsed.push(value.toString());\n }\n }\n }\n\n return onParsed;\n }\n\n function parseOrder(refs, nestedLevels = 0) {\n if (!Array.isArray(refs)) {\n return null;\n }\n\n const order = [];\n\n for (const value of refs) {\n if ((0, _primitives.isRef)(value) && contentGroupRefs.includes(value)) {\n parsedOrderRefs.put(value);\n order.push(value.toString());\n continue;\n }\n\n const nestedOrder = parseNestedOrder(value, nestedLevels);\n\n if (nestedOrder) {\n order.push(nestedOrder);\n }\n }\n\n if (nestedLevels > 0) {\n return order;\n }\n\n const hiddenGroups = [];\n\n for (const groupRef of contentGroupRefs) {\n if (parsedOrderRefs.has(groupRef)) {\n continue;\n }\n\n hiddenGroups.push(groupRef.toString());\n }\n\n if (hiddenGroups.length) {\n order.push({\n name: null,\n order: hiddenGroups\n });\n }\n\n return order;\n }\n\n function parseNestedOrder(ref, nestedLevels) {\n if (++nestedLevels > MAX_NESTED_LEVELS) {\n (0, _util.warn)(\"parseNestedOrder - reached MAX_NESTED_LEVELS.\");\n return null;\n }\n\n const value = xref.fetchIfRef(ref);\n\n if (!Array.isArray(value)) {\n return null;\n }\n\n const nestedName = xref.fetchIfRef(value[0]);\n\n if (typeof nestedName !== \"string\") {\n return null;\n }\n\n const nestedOrder = parseOrder(value.slice(1), nestedLevels);\n\n if (!nestedOrder || !nestedOrder.length) {\n return null;\n }\n\n return {\n name: (0, _util.stringToPDFString)(nestedName),\n order: nestedOrder\n };\n }\n\n const xref = this.xref,\n parsedOrderRefs = new _primitives.RefSet(),\n MAX_NESTED_LEVELS = 10;\n return {\n name: (0, _util.isString)(config.get(\"Name\")) ? (0, _util.stringToPDFString)(config.get(\"Name\")) : null,\n creator: (0, _util.isString)(config.get(\"Creator\")) ? (0, _util.stringToPDFString)(config.get(\"Creator\")) : null,\n baseState: (0, _primitives.isName)(config.get(\"BaseState\")) ? config.get(\"BaseState\").name : null,\n on: parseOnOff(config.get(\"ON\")),\n off: parseOnOff(config.get(\"OFF\")),\n order: parseOrder(config.get(\"Order\")),\n groups: null\n };\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\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\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\n const obj = this._catDict.get(\"ViewerPreferences\");\n\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\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\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\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 this._newRefNum = null;\n }\n\n XRef.prototype = {\n getNewRef: function XRef_getNewRef() {\n if (this._newRefNum === null) {\n this._newRefNum = this.entries.length;\n }\n\n return _primitives.Ref.get(this._newRefNum++, 0);\n },\n resetNewRef: function XRef_resetNewRef() {\n this._newRefNum = null;\n },\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) {\n node = node.getRawValues();\n } else if ((0, _primitives.isStream)(node)) {\n node = node.dict.getRawValues();\n } else if (!Array.isArray(node)) {\n return;\n }\n\n for (const rawValue of node) {\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\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 NUL = 0x0;\n const lexer = this.lexer,\n startPos = stream.pos,\n n = 10;\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 continue;\n }\n\n if (lexer.knownCommands) {\n const nextObj = lexer.peekObj();\n\n if (nextObj instanceof _primitives.Cmd && !lexer.knownCommands[nextObj.cmd]) {\n state = 0;\n }\n } else {\n (0, _util.warn)(\"findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.\");\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 peekObj() {\n const streamPos = this.stream.pos,\n currentChar = this.currentChar,\n beginInlineImagePos = this.beginInlineImagePos;\n let nextObj;\n\n try {\n nextObj = this.getObj();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`peekObj: ${ex}`);\n }\n\n this.stream.pos = streamPos;\n this.currentChar = currentChar;\n this.beginInlineImagePos = beginInlineImagePos;\n return nextObj;\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 * (frame.precision === 8 ? 8 : 0);\n\n if (maybeScanLines > 0 && Math.round(frame.scanLines / maybeScanLines) >= 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 const index = data[offset++];\n var componentIndex = frame.componentIds[index];\n component = frame.components[componentIndex];\n component.index = index;\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 index: component.index,\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn\n });\n }\n\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 } else if (this.components[0].index === 0x52 && this.components[1].index === 0x47 && this.components[2].index === 0x42) {\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 ARCFourCipher.prototype.encrypt = 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 encrypt: function NullCipher_encrypt(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 encryptString: function CipherTransform_encryptString(s) {\n const cipher = new this.StringCipherConstructor();\n\n if (cipher instanceof AESBaseCipher) {\n const strLen = s.length;\n const pad = 16 - strLen % 16;\n\n if (pad !== 16) {\n s = s.padEnd(16 * Math.ceil(strLen / 16), String.fromCharCode(pad));\n }\n\n const iv = new Uint8Array(16);\n\n if (typeof crypto !== \"undefined\") {\n crypto.getRandomValues(iv);\n } else {\n for (let i = 0; i < 16; i++) {\n iv[i] = Math.floor(256 * Math.random());\n }\n }\n\n let data = (0, _util.stringToBytes)(s);\n data = cipher.encrypt(data, iv);\n const buf = new Uint8Array(16 + data.length);\n buf.set(iv);\n buf.set(data, 16);\n return (0, _util.bytesToString)(buf);\n }\n\n let data = (0, _util.stringToBytes)(s);\n data = cipher.encrypt(data);\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\nvar _core_utils = __w_pdfjs_require__(8);\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 _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) {\n if (!localColorSpaceCache) {\n throw new Error('ColorSpace._cache - expected \"localColorSpaceCache\" argument.');\n }\n\n if (!parsedColorSpace) {\n throw new Error('ColorSpace._cache - expected \"parsedColorSpace\" argument.');\n }\n\n let csName, csRef;\n\n if (cacheKey instanceof _primitives.Ref) {\n csRef = cacheKey;\n cacheKey = xref.fetch(cacheKey);\n }\n\n if (cacheKey instanceof _primitives.Name) {\n csName = cacheKey.name;\n }\n\n if (csName || csRef) {\n localColorSpaceCache.set(csName, csRef, parsedColorSpace);\n }\n }\n\n static getCached(cacheKey, xref, localColorSpaceCache) {\n if (!localColorSpaceCache) {\n throw new Error('ColorSpace.getCached - expected \"localColorSpaceCache\" argument.');\n }\n\n if (cacheKey instanceof _primitives.Ref) {\n const localColorSpace = localColorSpaceCache.getByRef(cacheKey);\n\n if (localColorSpace) {\n return localColorSpace;\n }\n\n try {\n cacheKey = xref.fetch(cacheKey);\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n }\n }\n\n if (cacheKey instanceof _primitives.Name) {\n const localColorSpace = localColorSpaceCache.getByName(cacheKey.name);\n\n if (localColorSpace) {\n return localColorSpace;\n }\n }\n\n return null;\n }\n\n static async parseAsync({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache\n }) {\n const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory);\n\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n static parse({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache\n }) {\n const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache);\n\n if (cachedColorSpace) {\n return cachedColorSpace;\n }\n\n const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory);\n\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n static _parse(cs, xref, resources = 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 this.singletons.gray;\n\n case \"DeviceRGB\":\n case \"RGB\":\n return this.singletons.rgb;\n\n case \"DeviceCMYK\":\n case \"CMYK\":\n return this.singletons.cmyk;\n\n case \"Pattern\":\n return new PatternCS(null);\n\n default:\n if ((0, _primitives.isDict)(resources)) {\n const colorSpaces = resources.get(\"ColorSpace\");\n\n if ((0, _primitives.isDict)(colorSpaces)) {\n const resourcesCS = colorSpaces.get(cs.name);\n\n if (resourcesCS) {\n if ((0, _primitives.isName)(resourcesCS)) {\n return this._parse(resourcesCS, xref, resources, pdfFunctionFactory);\n }\n\n cs = resourcesCS;\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 params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n switch (mode) {\n case \"DeviceGray\":\n case \"G\":\n return this.singletons.gray;\n\n case \"DeviceRGB\":\n case \"RGB\":\n return this.singletons.rgb;\n\n case \"DeviceCMYK\":\n case \"CMYK\":\n return this.singletons.cmyk;\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 new 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 new 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 const alt = dict.get(\"Alternate\");\n\n if (alt) {\n const altCS = this._parse(alt, xref, resources, pdfFunctionFactory);\n\n if (altCS.numComps === numComps) {\n return altCS;\n }\n\n (0, _util.warn)(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n }\n\n if (numComps === 1) {\n return this.singletons.gray;\n } else if (numComps === 3) {\n return this.singletons.rgb;\n } else if (numComps === 4) {\n return this.singletons.cmyk;\n }\n\n break;\n\n case \"Pattern\":\n baseCS = cs[1] || null;\n\n if (baseCS) {\n baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory);\n }\n\n return new PatternCS(baseCS);\n\n case \"Indexed\":\n case \"I\":\n baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);\n const hiVal = xref.fetchIfRef(cs[2]) + 1;\n const lookup = xref.fetchIfRef(cs[3]);\n return new IndexedCS(baseCS, 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 baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory);\n const tintFn = pdfFunctionFactory.create(cs[3]);\n return new AlternateCS(numComps, baseCS, 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 new LabCS(whitePoint, blackPoint, range);\n\n default:\n throw new _util.FormatError(`Unimplemented ColorSpace object: ${mode}`);\n }\n }\n\n throw new _util.FormatError(`Unrecognized ColorSpace 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 length = base.numComps * highVal;\n this.lookup = new Uint8Array(length);\n\n if ((0, _primitives.isStream)(lookup)) {\n const bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if (typeof lookup === \"string\") {\n for (let i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n }\n } else {\n throw new _util.FormatError(`IndexedCS - 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 if (color >= 0.99554525) {\n return 1;\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 === 1 ? 1 : A ** cs.GR;\n const BGG = B === 1 ? 1 : B ** cs.GG;\n const CGB = C === 1 ? 1 : 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.LocalGStateCache = exports.LocalFunctionCache = exports.LocalColorSpaceCache = exports.LocalImageCache = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nclass BaseLocalCache {\n constructor(options) {\n if (this.constructor === BaseLocalCache) {\n (0, _util.unreachable)(\"Cannot initialize BaseLocalCache.\");\n }\n\n if (!options || !options.onlyRefs) {\n this._nameRefMap = new Map();\n this._imageMap = new Map();\n }\n\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, data) {\n (0, _util.unreachable)(\"Abstract method `set` called.\");\n }\n\n}\n\nclass LocalImageCache extends BaseLocalCache {\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 LocalColorSpaceCache extends BaseLocalCache {\n set(name = null, ref = null, data) {\n if (!name && !ref) {\n throw new Error('LocalColorSpaceCache.set - expected \"name\" and/or \"ref\" argument.');\n }\n\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n\n if (name) {\n this._nameRefMap.set(name, ref);\n }\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.LocalColorSpaceCache = LocalColorSpaceCache;\n\nclass LocalFunctionCache extends BaseLocalCache {\n constructor(options) {\n super({\n onlyRefs: true\n });\n }\n\n getByName(name) {\n (0, _util.unreachable)(\"Should not call `getByName` method.\");\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalFunctionCache.set - expected \"ref\" argument.');\n }\n\n if (this._imageCache.has(ref)) {\n return;\n }\n\n this._imageCache.put(ref, data);\n }\n\n}\n\nexports.LocalFunctionCache = LocalFunctionCache;\n\nclass LocalGStateCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (!name) {\n throw new Error('LocalGStateCache.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.LocalGStateCache = LocalGStateCache;\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 const pageIndexSet = this._refCache.get(ref);\n\n if (!pageIndexSet) {\n return null;\n }\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\nvar _writer = __w_pdfjs_require__(27);\n\nclass AnnotationFactory {\n static create(xref, ref, pdfManager, idFactory) {\n return pdfManager.ensureCatalog(\"acroForm\").then(acroForm => {\n return pdfManager.ensure(this, \"_create\", [xref, ref, pdfManager, idFactory, acroForm]);\n });\n }\n\n static _create(xref, ref, pdfManager, idFactory, acroForm) {\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 ref,\n dict,\n subtype,\n id,\n pdfManager,\n acroForm: acroForm instanceof _primitives.Dict ? acroForm : _primitives.Dict.empty\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, annotationStorage) {\n if (!this.appearance) {\n return Promise.resolve(new _operator_list.OperatorList());\n }\n\n const appearance = this.appearance;\n const data = this.data;\n const appearanceDict = 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: appearance,\n task,\n resources,\n operatorList: opList\n }).then(() => {\n opList.addOp(_util.OPS.endAnnotation, []);\n appearance.reset();\n return opList;\n });\n });\n }\n\n async save(evaluator, task, annotationStorage) {\n return null;\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 this.ref = params.ref;\n data.annotationType = _util.AnnotationType.WIDGET;\n data.fieldName = this._constructFieldName(dict);\n const fieldValue = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"V\",\n getArray: true\n });\n data.fieldValue = this._decodeFormValue(fieldValue);\n data.alternativeText = (0, _util.stringToPDFString)(dict.get(\"TU\") || \"\");\n data.defaultAppearance = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"DA\"\n }) || params.acroForm.get(\"DA\") || \"\";\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 }) || params.acroForm.get(\"DR\") || _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 _decodeFormValue(formValue) {\n if (Array.isArray(formValue)) {\n return formValue.filter(item => (0, _util.isString)(item)).map(item => (0, _util.stringToPDFString)(item));\n } else if ((0, _primitives.isName)(formValue)) {\n return (0, _util.stringToPDFString)(formValue.name);\n } else if ((0, _util.isString)(formValue)) {\n return (0, _util.stringToPDFString)(formValue);\n }\n\n return null;\n }\n\n hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n\n getOperatorList(evaluator, task, renderForms, annotationStorage) {\n if (renderForms) {\n return Promise.resolve(new _operator_list.OperatorList());\n }\n\n if (!this._hasText) {\n return super.getOperatorList(evaluator, task, renderForms, annotationStorage);\n }\n\n return this._getAppearance(evaluator, task, annotationStorage).then(content => {\n if (this.appearance && content === null) {\n return super.getOperatorList(evaluator, task, renderForms, annotationStorage);\n }\n\n const operatorList = new _operator_list.OperatorList();\n\n if (!this.data.defaultAppearance || content === null) {\n return operatorList;\n }\n\n const matrix = [1, 0, 0, 1, 0, 0];\n const bbox = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]];\n const transform = getTransformMatrix(this.data.rect, bbox, matrix);\n operatorList.addOp(_util.OPS.beginAnnotation, [this.data.rect, transform, matrix]);\n const stream = new _stream.StringStream(content);\n return evaluator.getOperatorList({\n stream,\n task,\n resources: this.fieldResources,\n operatorList\n }).then(function () {\n operatorList.addOp(_util.OPS.endAnnotation, []);\n return operatorList;\n });\n });\n }\n\n async save(evaluator, task, annotationStorage) {\n if (this.data.fieldValue === annotationStorage[this.data.id]) {\n return null;\n }\n\n let appearance = await this._getAppearance(evaluator, task, annotationStorage);\n\n if (appearance === null) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n\n if (!(0, _primitives.isDict)(dict)) {\n return null;\n }\n\n const bbox = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]];\n const newRef = evaluator.xref.getNewRef();\n const AP = new _primitives.Dict(evaluator.xref);\n AP.set(\"N\", newRef);\n const value = annotationStorage[this.data.id];\n const encrypt = evaluator.xref.encrypt;\n let originalTransform = null;\n let newTransform = null;\n\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n newTransform = encrypt.createCipherTransform(newRef.num, newRef.gen);\n appearance = newTransform.encryptString(appearance);\n }\n\n dict.set(\"V\", value);\n dict.set(\"AP\", AP);\n dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n const appearanceDict = new _primitives.Dict(evaluator.xref);\n appearanceDict.set(\"Length\", appearance.length);\n appearanceDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n appearanceDict.set(\"Resources\", this.fieldResources);\n appearanceDict.set(\"BBox\", bbox);\n const bufferOriginal = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n (0, _writer.writeDict)(dict, bufferOriginal, originalTransform);\n bufferOriginal.push(\"\\nendobj\\n\");\n const bufferNew = [`${newRef.num} ${newRef.gen} obj\\n`];\n (0, _writer.writeDict)(appearanceDict, bufferNew, newTransform);\n bufferNew.push(\" stream\\n\");\n bufferNew.push(appearance);\n bufferNew.push(\"\\nendstream\\nendobj\\n\");\n return [{\n ref: this.ref,\n data: bufferOriginal.join(\"\")\n }, {\n ref: newRef,\n data: bufferNew.join(\"\")\n }];\n }\n\n async _getAppearance(evaluator, task, annotationStorage) {\n const isPassword = this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD);\n\n if (!annotationStorage || isPassword) {\n return null;\n }\n\n const value = annotationStorage[this.data.id];\n\n if (value === \"\") {\n return \"\";\n }\n\n const defaultPadding = 2;\n const hPadding = defaultPadding;\n const totalHeight = this.data.rect[3] - this.data.rect[1];\n const totalWidth = this.data.rect[2] - this.data.rect[0];\n const fontInfo = await this._getFontData(evaluator, task);\n const [font, fontName] = fontInfo;\n let fontSize = fontInfo[2];\n fontSize = this._computeFontSize(font, fontName, fontSize, totalHeight);\n let descent = font.descent;\n\n if (isNaN(descent)) {\n descent = 0;\n }\n\n const vPadding = defaultPadding + Math.abs(descent) * fontSize;\n const defaultAppearance = this.data.defaultAppearance;\n const alignment = this.data.textAlignment;\n\n if (this.data.comb) {\n return this._getCombAppearance(defaultAppearance, value, totalWidth, hPadding, vPadding);\n }\n\n if (this.data.multiLine) {\n return this._getMultilineAppearance(defaultAppearance, value, font, fontSize, totalWidth, totalHeight, alignment, hPadding, vPadding);\n }\n\n if (alignment === 0 || alignment > 2) {\n return \"/Tx BMC q BT \" + defaultAppearance + ` 1 0 0 1 ${hPadding} ${vPadding} Tm (${(0, _util.escapeString)(value)}) Tj` + \" ET Q EMC\";\n }\n\n const renderedText = this._renderText(value, font, fontSize, totalWidth, alignment, hPadding, vPadding);\n\n return \"/Tx BMC q BT \" + defaultAppearance + ` 1 0 0 1 0 0 Tm ${renderedText}` + \" ET Q EMC\";\n }\n\n async _getFontData(evaluator, task) {\n const operatorList = new _operator_list.OperatorList();\n const initialState = {\n fontSize: 0,\n font: null,\n fontName: null,\n\n clone() {\n return this;\n }\n\n };\n await evaluator.getOperatorList({\n stream: new _stream.StringStream(this.data.defaultAppearance),\n task,\n resources: this.fieldResources,\n operatorList,\n initialState\n });\n return [initialState.font, initialState.fontName, initialState.fontSize];\n }\n\n _computeFontSize(font, fontName, fontSize, height) {\n if (fontSize === null || fontSize === 0) {\n const em = font.charsToGlyphs(\"M\", true)[0].width / 1000;\n const capHeight = 0.7 * em;\n fontSize = Math.max(1, Math.floor(height / (1.5 * capHeight)));\n let fontRegex = new RegExp(`/${fontName}\\\\s+[0-9\\.]+\\\\s+Tf`);\n\n if (this.data.defaultAppearance.search(fontRegex) === -1) {\n fontRegex = new RegExp(`/${fontName}\\\\s+Tf`);\n }\n\n this.data.defaultAppearance = this.data.defaultAppearance.replace(fontRegex, `/${fontName} ${fontSize} Tf`);\n }\n\n return fontSize;\n }\n\n _renderText(text, font, fontSize, totalWidth, alignment, hPadding, vPadding) {\n const glyphs = font.charsToGlyphs(text);\n const scale = fontSize / 1000;\n let width = 0;\n\n for (const glyph of glyphs) {\n width += glyph.width * scale;\n }\n\n let shift;\n\n if (alignment === 1) {\n shift = (totalWidth - width) / 2;\n } else if (alignment === 2) {\n shift = totalWidth - width - hPadding;\n } else {\n shift = hPadding;\n }\n\n shift = shift.toFixed(2);\n vPadding = vPadding.toFixed(2);\n return `${shift} ${vPadding} Td (${(0, _util.escapeString)(text)}) Tj`;\n }\n\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n this._hasText = true;\n const dict = params.dict;\n\n if (!(0, _util.isString)(this.data.fieldValue)) {\n this.data.fieldValue = \"\";\n }\n\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 _getCombAppearance(defaultAppearance, text, width, hPadding, vPadding) {\n const combWidth = (width / this.data.maxLen).toFixed(2);\n const buf = [];\n\n for (const character of text) {\n buf.push(`(${(0, _util.escapeString)(character)}) Tj`);\n }\n\n const renderedComb = buf.join(` ${combWidth} 0 Td `);\n return \"/Tx BMC q BT \" + defaultAppearance + ` 1 0 0 1 ${hPadding} ${vPadding} Tm ${renderedComb}` + \" ET Q EMC\";\n }\n\n _getMultilineAppearance(defaultAppearance, text, font, fontSize, width, height, alignment, hPadding, vPadding) {\n const lines = text.split(/\\r\\n|\\r|\\n/);\n const buf = [];\n const totalWidth = width - 2 * hPadding;\n\n for (const line of lines) {\n const chunks = this._splitLine(line, font, fontSize, totalWidth);\n\n for (const chunk of chunks) {\n const padding = buf.length === 0 ? hPadding : 0;\n buf.push(this._renderText(chunk, font, fontSize, width, alignment, padding, -fontSize));\n }\n }\n\n const renderedText = buf.join(\"\\n\");\n return \"/Tx BMC q BT \" + defaultAppearance + ` 1 0 0 1 0 ${height} Tm ${renderedText}` + \" ET Q EMC\";\n }\n\n _splitLine(line, font, fontSize, width) {\n if (line.length <= 1) {\n return [line];\n }\n\n const scale = fontSize / 1000;\n const whitespace = font.charsToGlyphs(\" \", true)[0].width * scale;\n const chunks = [];\n let lastSpacePos = -1,\n startChunk = 0,\n currentWidth = 0;\n\n for (let i = 0, ii = line.length; i < ii; i++) {\n const character = line.charAt(i);\n\n if (character === \" \") {\n if (currentWidth + whitespace > width) {\n chunks.push(line.substring(startChunk, i));\n startChunk = i;\n currentWidth = whitespace;\n lastSpacePos = -1;\n } else {\n currentWidth += whitespace;\n lastSpacePos = i;\n }\n } else {\n const charWidth = font.charsToGlyphs(character, false)[0].width * scale;\n\n if (currentWidth + charWidth > width) {\n if (lastSpacePos !== -1) {\n chunks.push(line.substring(startChunk, lastSpacePos + 1));\n startChunk = i = lastSpacePos + 1;\n lastSpacePos = -1;\n currentWidth = 0;\n } else {\n chunks.push(line.substring(startChunk, i));\n startChunk = i;\n currentWidth = charWidth;\n }\n } else {\n currentWidth += charWidth;\n }\n }\n }\n\n if (startChunk < line.length) {\n chunks.push(line.substring(startChunk, line.length));\n }\n\n return chunks;\n }\n\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n this.checkedAppearance = null;\n this.uncheckedAppearance = null;\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 getOperatorList(evaluator, task, renderForms, annotationStorage) {\n if (this.data.pushButton) {\n return super.getOperatorList(evaluator, task, false, annotationStorage);\n }\n\n if (annotationStorage) {\n const value = annotationStorage[this.data.id] || false;\n let appearance;\n\n if (value) {\n appearance = this.checkedAppearance;\n } else {\n appearance = this.uncheckedAppearance;\n }\n\n if (appearance) {\n const savedAppearance = this.appearance;\n this.appearance = appearance;\n const operatorList = super.getOperatorList(evaluator, task, renderForms, annotationStorage);\n this.appearance = savedAppearance;\n return operatorList;\n }\n\n return Promise.resolve(new _operator_list.OperatorList());\n }\n\n return super.getOperatorList(evaluator, task, renderForms, annotationStorage);\n }\n\n async save(evaluator, task, annotationStorage) {\n if (this.data.checkBox) {\n return this._saveCheckbox(evaluator, task, annotationStorage);\n }\n\n if (this.data.radioButton) {\n return this._saveRadioButton(evaluator, task, annotationStorage);\n }\n\n return super.save(evaluator, task, annotationStorage);\n }\n\n async _saveCheckbox(evaluator, task, annotationStorage) {\n const defaultValue = this.data.fieldValue && this.data.fieldValue !== \"Off\";\n const value = annotationStorage[this.data.id];\n\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n\n if (!(0, _primitives.isDict)(dict)) {\n return null;\n }\n\n const name = _primitives.Name.get(value ? this.data.exportValue : \"Off\");\n\n dict.set(\"V\", name);\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n const encrypt = evaluator.xref.encrypt;\n let originalTransform = null;\n\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n (0, _writer.writeDict)(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n return [{\n ref: this.ref,\n data: buffer.join(\"\")\n }];\n }\n\n async _saveRadioButton(evaluator, task, annotationStorage) {\n const defaultValue = this.data.fieldValue === this.data.buttonValue;\n const value = annotationStorage[this.data.id];\n\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n\n if (!(0, _primitives.isDict)(dict)) {\n return null;\n }\n\n const name = _primitives.Name.get(value ? this.data.buttonValue : \"Off\");\n\n let parentBuffer = null;\n const encrypt = evaluator.xref.encrypt;\n\n if (value) {\n if ((0, _primitives.isRef)(this.parent)) {\n const parent = evaluator.xref.fetch(this.parent);\n let parentTransform = null;\n\n if (encrypt) {\n parentTransform = encrypt.createCipherTransform(this.parent.num, this.parent.gen);\n }\n\n parent.set(\"V\", name);\n parentBuffer = [`${this.parent.num} ${this.parent.gen} obj\\n`];\n (0, _writer.writeDict)(parent, parentBuffer, parentTransform);\n parentBuffer.push(\"\\nendobj\\n\");\n } else if ((0, _primitives.isDict)(this.parent)) {\n this.parent.set(\"V\", name);\n }\n }\n\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n let originalTransform = null;\n\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n (0, _writer.writeDict)(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n const newRefs = [{\n ref: this.ref,\n data: buffer.join(\"\")\n }];\n\n if (parentBuffer !== null) {\n newRefs.push({\n ref: this.parent,\n data: parentBuffer.join(\"\")\n });\n }\n\n return newRefs;\n }\n\n _processCheckBox(params) {\n const customAppearance = params.dict.get(\"AP\");\n\n if (!(0, _primitives.isDict)(customAppearance)) {\n return;\n }\n\n const normalAppearance = customAppearance.get(\"N\");\n\n if (!(0, _primitives.isDict)(normalAppearance)) {\n return;\n }\n\n const exportValues = normalAppearance.getKeys();\n\n if (!exportValues.includes(\"Off\")) {\n exportValues.push(\"Off\");\n }\n\n if (exportValues.length !== 2) {\n return;\n }\n\n this.data.exportValue = exportValues[0] === \"Off\" ? exportValues[1] : exportValues[0];\n this.checkedAppearance = normalAppearance.get(this.data.exportValue);\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\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.parent = params.dict.getRaw(\"Parent\");\n this.data.fieldValue = this._decodeFormValue(fieldParentValue);\n }\n }\n\n const appearanceStates = params.dict.get(\"AP\");\n\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n\n const normalAppearance = appearanceStates.get(\"N\");\n\n if (!(0, _primitives.isDict)(normalAppearance)) {\n return;\n }\n\n for (const key of normalAppearance.getKeys()) {\n if (key !== \"Off\") {\n this.data.buttonValue = key;\n break;\n }\n }\n\n this.checkedAppearance = normalAppearance.get(this.data.buttonValue);\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\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: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[0]) : option),\n displayValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[1]) : option)\n };\n }\n }\n\n if ((0, _util.isString)(this.data.fieldValue)) {\n this.data.fieldValue = [this.data.fieldValue];\n } else if (!this.data.fieldValue) {\n this.data.fieldValue = [];\n }\n\n this.data.combo = this.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);\n this.data.multiSelect = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);\n this._hasText = true;\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 const firstTransformArg0 = argsArray[iFirstTransform][0],\n firstTransformArg1 = argsArray[iFirstTransform][1],\n firstTransformArg2 = argsArray[iFirstTransform][2],\n firstTransformArg3 = argsArray[iFirstTransform][3];\n\n if (firstTransformArg1 === firstTransformArg2) {\n isSameImage = true;\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] !== firstTransformArg1 || transformArgs[2] !== firstTransformArg2 || transformArgs[3] !== firstTransformArg3) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n\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, firstTransformArg1, firstTransformArg2, 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) {\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 = new Set();\n this._totalLength = 0;\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 (this.dependencies.has(dependency)) {\n return;\n }\n\n this.dependencies.add(dependency);\n this.addOp(_util.OPS.dependency, [dependency]);\n },\n\n addDependencies(dependencies) {\n for (const dependency of dependencies) {\n this.addDependency(dependency);\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 for (const dependency of opList.dependencies) {\n this.dependencies.add(dependency);\n }\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.clear();\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.writeDict = writeDict;\nexports.incrementalUpdate = incrementalUpdate;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _crypto = __w_pdfjs_require__(22);\n\nfunction writeDict(dict, buffer, transform) {\n buffer.push(\"<<\");\n\n for (const key of dict.getKeys()) {\n buffer.push(` /${key} `);\n writeValue(dict.getRaw(key), buffer, transform);\n }\n\n buffer.push(\">>\");\n}\n\nfunction writeStream(stream, buffer, transform) {\n writeDict(stream.dict, buffer, transform);\n buffer.push(\" stream\\n\");\n let string = (0, _util.bytesToString)(stream.getBytes());\n\n if (transform !== null) {\n string = transform.encryptString(string);\n }\n\n buffer.push(string);\n buffer.push(\"\\nendstream\\n\");\n}\n\nfunction writeArray(array, buffer, transform) {\n buffer.push(\"[\");\n let first = true;\n\n for (const val of array) {\n if (!first) {\n buffer.push(\" \");\n } else {\n first = false;\n }\n\n writeValue(val, buffer, transform);\n }\n\n buffer.push(\"]\");\n}\n\nfunction numberToString(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const roundedValue = Math.round(value * 100);\n\n if (roundedValue % 100 === 0) {\n return (roundedValue / 100).toString();\n }\n\n if (roundedValue % 10 === 0) {\n return value.toFixed(1);\n }\n\n return value.toFixed(2);\n}\n\nfunction writeValue(value, buffer, transform) {\n if ((0, _primitives.isName)(value)) {\n buffer.push(`/${value.name}`);\n } else if ((0, _primitives.isRef)(value)) {\n buffer.push(`${value.num} ${value.gen} R`);\n } else if (Array.isArray(value)) {\n writeArray(value, buffer, transform);\n } else if (typeof value === \"string\") {\n if (transform !== null) {\n value = transform.encryptString(value);\n }\n\n buffer.push(`(${(0, _util.escapeString)(value)})`);\n } else if (typeof value === \"number\") {\n buffer.push(numberToString(value));\n } else if ((0, _primitives.isDict)(value)) {\n writeDict(value, buffer, transform);\n } else if ((0, _primitives.isStream)(value)) {\n writeStream(value, buffer, transform);\n }\n}\n\nfunction writeInt(number, size, offset, buffer) {\n for (let i = size + offset - 1; i > offset - 1; i--) {\n buffer[i] = number & 0xff;\n number >>= 8;\n }\n\n return offset + size;\n}\n\nfunction writeString(string, offset, buffer) {\n for (let i = 0, len = string.length; i < len; i++) {\n buffer[offset + i] = string.charCodeAt(i) & 0xff;\n }\n}\n\nfunction computeMD5(filesize, xrefInfo) {\n const time = Math.floor(Date.now() / 1000);\n const filename = xrefInfo.filename || \"\";\n const md5Buffer = [time.toString(), filename, filesize.toString()];\n let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0);\n\n for (const value of Object.values(xrefInfo.info)) {\n md5Buffer.push(value);\n md5BufferLen += value.length;\n }\n\n const array = new Uint8Array(md5BufferLen);\n let offset = 0;\n\n for (const str of md5Buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n\n return (0, _util.bytesToString)((0, _crypto.calculateMD5)(array));\n}\n\nfunction incrementalUpdate(originalData, xrefInfo, newRefs) {\n const newXref = new _primitives.Dict(null);\n const refForXrefTable = xrefInfo.newRef;\n let buffer, baseOffset;\n const lastByte = originalData[originalData.length - 1];\n\n if (lastByte === 0x0a || lastByte === 0x0d) {\n buffer = [];\n baseOffset = originalData.length;\n } else {\n buffer = [\"\\n\"];\n baseOffset = originalData.length + 1;\n }\n\n newXref.set(\"Size\", refForXrefTable.num + 1);\n newXref.set(\"Prev\", xrefInfo.startXRef);\n newXref.set(\"Type\", _primitives.Name.get(\"XRef\"));\n\n if (xrefInfo.rootRef !== null) {\n newXref.set(\"Root\", xrefInfo.rootRef);\n }\n\n if (xrefInfo.infoRef !== null) {\n newXref.set(\"Info\", xrefInfo.infoRef);\n }\n\n if (xrefInfo.encrypt !== null) {\n newXref.set(\"Encrypt\", xrefInfo.encrypt);\n }\n\n newRefs.push({\n ref: refForXrefTable,\n data: \"\"\n });\n newRefs = newRefs.sort((a, b) => {\n return a.ref.num - b.ref.num;\n });\n const xrefTableData = [[0, 1, 0xffff]];\n const indexes = [0, 1];\n let maxOffset = 0;\n\n for (const {\n ref,\n data\n } of newRefs) {\n maxOffset = Math.max(maxOffset, baseOffset);\n xrefTableData.push([1, baseOffset, Math.min(ref.gen, 0xffff)]);\n baseOffset += data.length;\n indexes.push(ref.num);\n indexes.push(1);\n buffer.push(data);\n }\n\n newXref.set(\"Index\", indexes);\n\n if (xrefInfo.fileIds.length !== 0) {\n const md5 = computeMD5(baseOffset, xrefInfo);\n newXref.set(\"ID\", [xrefInfo.fileIds[0], md5]);\n }\n\n const offsetSize = Math.ceil(Math.log2(maxOffset) / 8);\n const sizes = [1, offsetSize, 2];\n const structSize = sizes[0] + sizes[1] + sizes[2];\n const tableLength = structSize * xrefTableData.length;\n newXref.set(\"W\", sizes);\n newXref.set(\"Length\", tableLength);\n buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\\n`);\n writeDict(newXref, buffer, null);\n buffer.push(\" stream\\n\");\n const bufferLen = buffer.reduce((a, str) => a + str.length, 0);\n const footer = `\\nendstream\\nendobj\\nstartxref\\n${baseOffset}\\n%%EOF\\n`;\n const array = new Uint8Array(originalData.length + bufferLen + tableLength + footer.length);\n array.set(originalData);\n let offset = originalData.length;\n\n for (const str of buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n\n for (const [type, objOffset, gen] of xrefTableData) {\n offset = writeInt(type, sizes[0], offset, array);\n offset = writeInt(objOffset, sizes[1], offset, array);\n offset = writeInt(gen, sizes[2], offset, array);\n }\n\n writeString(footer, offset, array);\n return array;\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.PartialEvaluator = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cmap = __w_pdfjs_require__(29);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _fonts = __w_pdfjs_require__(30);\n\nvar _encodings = __w_pdfjs_require__(33);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _unicode = __w_pdfjs_require__(36);\n\nvar _standard_fonts = __w_pdfjs_require__(35);\n\nvar _pattern = __w_pdfjs_require__(39);\n\nvar _function = __w_pdfjs_require__(40);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _image_utils = __w_pdfjs_require__(24);\n\nvar _bidi = __w_pdfjs_require__(42);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _glyphlist = __w_pdfjs_require__(34);\n\nvar _metrics = __w_pdfjs_require__(43);\n\nvar _murmurhash = __w_pdfjs_require__(44);\n\nvar _operator_list = __w_pdfjs_require__(26);\n\nvar _image = __w_pdfjs_require__(45);\n\nconst DefaultPartialEvaluatorOptions = Object.freeze({\n maxImageSize: -1,\n disableFontFace: false,\n ignoreErrors: false,\n isEvalSupported: true,\n fontExtraProperties: false\n});\nconst PatternType = {\n TILING: 1,\n SHADING: 2\n};\nconst deferred = Promise.resolve();\n\nfunction 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\nclass TimeSlotManager {\n static get TIME_SLOT_DURATION_MS() {\n return (0, _util.shadow)(this, \"TIME_SLOT_DURATION_MS\", 20);\n }\n\n static get CHECK_TIME_EVERY() {\n return (0, _util.shadow)(this, \"CHECK_TIME_EVERY\", 100);\n }\n\n constructor() {\n this.reset();\n }\n\n check() {\n if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) {\n return false;\n }\n\n this.checked = 0;\n return this.endTime <= Date.now();\n }\n\n reset() {\n this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n\n}\n\nclass PartialEvaluator {\n constructor({\n xref,\n handler,\n pageIndex,\n idFactory,\n fontCache,\n builtInCMapCache,\n globalImageCache,\n options = null\n }) {\n this.xref = xref;\n this.handler = handler;\n this.pageIndex = pageIndex;\n this.idFactory = idFactory;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.globalImageCache = globalImageCache;\n this.options = options || DefaultPartialEvaluatorOptions;\n this.parsingType3Font = false;\n this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);\n }\n\n get _pdfFunctionFactory() {\n const pdfFunctionFactory = new _function.PDFFunctionFactory({\n xref: this.xref,\n isEvalSupported: this.options.isEvalSupported\n });\n return (0, _util.shadow)(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n }\n\n clone(newOptions = DefaultPartialEvaluatorOptions) {\n var newEvaluator = Object.create(this);\n newEvaluator.options = newOptions;\n return newEvaluator;\n }\n\n hasBlendModes(resources) {\n if (!(resources instanceof _primitives.Dict)) {\n return false;\n }\n\n const processed = new _primitives.RefSet();\n\n if (resources.objId) {\n processed.put(resources.objId);\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 for (let graphicState of graphicStates.getRawValues()) {\n if (graphicState instanceof _primitives.Ref) {\n if (processed.has(graphicState)) {\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 processed.put(graphicState);\n (0, _util.info)(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n continue;\n }\n }\n\n if (!(graphicState instanceof _primitives.Dict)) {\n continue;\n }\n\n if (graphicState.objId) {\n processed.put(graphicState.objId);\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 (const element of bm) {\n if (element instanceof _primitives.Name && element.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 for (let xObject of xObjects.getRawValues()) {\n if (xObject instanceof _primitives.Ref) {\n if (processed.has(xObject)) {\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 processed.put(xObject);\n (0, _util.info)(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n continue;\n }\n }\n\n if (!(0, _primitives.isStream)(xObject)) {\n continue;\n }\n\n if (xObject.dict.objId) {\n processed.put(xObject.dict.objId);\n }\n\n var xResources = xObject.dict.get(\"Resources\");\n\n if (!(xResources instanceof _primitives.Dict)) {\n continue;\n }\n\n if (xResources.objId && processed.has(xResources.objId)) {\n continue;\n }\n\n nodes.push(xResources);\n\n if (xResources.objId) {\n processed.put(xResources.objId);\n }\n }\n }\n\n return false;\n }\n\n async fetchBuiltInCMap(name) {\n const cachedData = this.builtInCMapCache.get(name);\n\n if (cachedData) {\n return cachedData;\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 async buildFormXObject(resources, xobj, smask, operatorList, task, initialState, localColorSpaceCache) {\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 let optionalContent = null;\n\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(dict.get(\"OC\"), resources);\n operatorList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\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 const cs = group.getRaw(\"CS\");\n\n const cachedColorSpace = _colorspace.ColorSpace.getCached(cs, this.xref, localColorSpaceCache);\n\n if (cachedColorSpace) {\n colorSpace = cachedColorSpace;\n } else {\n colorSpace = await this.parseColorSpace({\n cs,\n resources,\n localColorSpaceCache\n });\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 if (optionalContent) {\n operatorList.addOp(_util.OPS.endMarkedContent, []);\n }\n });\n }\n\n _sendImgData(objId, imgData, cacheGlobally = false) {\n const transfers = imgData ? [imgData.data.buffer] : null;\n\n if (this.parsingType3Font || cacheGlobally) {\n return this.handler.send(\"commonobj\", [objId, \"Image\", imgData], transfers);\n }\n\n return this.handler.send(\"obj\", [objId, this.pageIndex, \"Image\", imgData], transfers);\n }\n\n async buildPaintImageXObject({\n resources,\n image,\n isInline = false,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache\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 localColorSpaceCache\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()}_type3_${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 _image.PDFImage.buildImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache\n }).then(imageObj => {\n imgData = imageObj.createImageData(false);\n return this._sendImgData(objId, imgData, cacheGlobally);\n }).catch(reason => {\n (0, _util.warn)(`Unable to decode image \"${objId}\": \"${reason}\".`);\n return this._sendImgData(objId, null, cacheGlobally);\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(smask, resources, operatorList, task, stateManager, localColorSpaceCache) {\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\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(), localColorSpaceCache);\n }\n\n handleTransferFunction(tr) {\n let transferArray;\n\n if (Array.isArray(tr)) {\n transferArray = tr;\n } else if ((0, _function.isPDFFunction)(tr)) {\n transferArray = [tr];\n } else {\n return null;\n }\n\n const transferMaps = [];\n let numFns = 0,\n numEffectfulFns = 0;\n\n for (const entry of transferArray) {\n const transferObj = this.xref.fetchIfRef(entry);\n numFns++;\n\n if ((0, _primitives.isName)(transferObj, \"Identity\")) {\n transferMaps.push(null);\n continue;\n } else if (!(0, _function.isPDFFunction)(transferObj)) {\n return null;\n }\n\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n\n const transferMap = new Uint8Array(256),\n tmp = new Float32Array(1);\n\n for (let j = 0; j < 256; j++) {\n tmp[0] = j / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[j] = tmp[0] * 255 | 0;\n }\n\n transferMaps.push(transferMap);\n numEffectfulFns++;\n }\n\n if (!(numFns === 1 || numFns === 4)) {\n return null;\n }\n\n if (numEffectfulFns === 0) {\n return null;\n }\n\n return transferMaps;\n }\n\n handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) {\n const tilingOpList = new _operator_list.OperatorList();\n\n const patternResources = _primitives.Dict.merge({\n xref: this.xref,\n dictArray: [patternDict.get(\"Resources\"), resources]\n });\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(resources, fontArgs, fontRef, operatorList, task, state) {\n var fontName,\n fontSize = 0;\n\n if (fontArgs) {\n fontArgs = fontArgs.slice();\n fontName = fontArgs[0].name;\n fontSize = fontArgs[1];\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, task).then(function () {\n operatorList.addDependencies(translated.type3Dependencies);\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 state.fontSize = fontSize;\n state.fontName = fontName;\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 async setGState({\n resources,\n gState,\n operatorList,\n cacheKey,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache\n }) {\n const gStateRef = gState.objId;\n let isSimpleGState = true;\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 isSimpleGState = false;\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 isSimpleGState = false;\n promise = promise.then(() => {\n return this.handleSMask(value, resources, operatorList, task, stateManager, localColorSpaceCache);\n });\n gStateObj.push([key, true]);\n } else {\n (0, _util.warn)(\"Unsupported SMask type\");\n }\n\n break;\n\n case \"TR\":\n const transferMaps = this.handleTransferFunction(value);\n gStateObj.push([key, transferMaps]);\n break;\n\n case \"OP\":\n case \"op\":\n case \"OPM\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n case \"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 if (isSimpleGState) {\n localGStateCache.set(cacheKey, gStateRef, gStateObj);\n }\n });\n }\n\n 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.fallbackFontDict;\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 = `f${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: this.idFactory.createFontId()\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.createFontId();\n }\n\n this.fontCache.put(`id_${fontID}`, fontCapability.promise);\n }\n\n (0, _util.assert)(fontID && fontID.startsWith(\"f\"), 'The \"fontID\" must be (correctly) defined.');\n font.loadedName = `${this.idFactory.getDocId()}_${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 localColorSpaceCache\n }) {\n return _colorspace.ColorSpace.parseAsync({\n cs,\n xref: this.xref,\n resources,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache\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, localColorSpaceCache) {\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 === PatternType.TILING) {\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 === PatternType.SHADING) {\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, localColorSpaceCache);\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 async parseMarkedContentProps(contentProperties, resources) {\n let optionalContent;\n\n if ((0, _primitives.isName)(contentProperties)) {\n const properties = resources.get(\"Properties\");\n optionalContent = properties.get(contentProperties.name);\n } else if ((0, _primitives.isDict)(contentProperties)) {\n optionalContent = contentProperties;\n } else {\n throw new _util.FormatError(\"Optional content properties malformed.\");\n }\n\n const optionalContentType = optionalContent.get(\"Type\").name;\n\n if (optionalContentType === \"OCG\") {\n return {\n type: optionalContentType,\n id: optionalContent.objId\n };\n } else if (optionalContentType === \"OCMD\") {\n const optionalContentGroups = optionalContent.get(\"OCGs\");\n\n if (Array.isArray(optionalContentGroups) || (0, _primitives.isDict)(optionalContentGroups)) {\n const groupIds = [];\n\n if (Array.isArray(optionalContentGroups)) {\n optionalContent.get(\"OCGs\").forEach(ocg => {\n groupIds.push(ocg.toString());\n });\n } else {\n groupIds.push(optionalContentGroups.objId);\n }\n\n let expression = null;\n\n if (optionalContent.get(\"VE\")) {\n expression = true;\n }\n\n return {\n type: optionalContentType,\n ids: groupIds,\n policy: (0, _primitives.isName)(optionalContent.get(\"P\")) ? optionalContent.get(\"P\").name : null,\n expression\n };\n } else if ((0, _primitives.isRef)(optionalContentGroups)) {\n return {\n type: optionalContentType,\n id: optionalContentGroups.toString()\n };\n }\n }\n\n return null;\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 const localColorSpaceCache = new _image_utils.LocalColorSpaceCache();\n const localGStateCache = new _image_utils.LocalGStateCache();\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 name;\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 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 (!(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(), localColorSpaceCache).then(function () {\n stateManager.restore();\n resolveXObject();\n }, rejectXObject);\n return;\n } else if (type.name === \"Image\") {\n self.buildPaintImageXObject({\n resources,\n image: xobj,\n operatorList,\n cacheKey: name,\n localImageCache,\n localColorSpaceCache\n }).then(resolveXObject, rejectXObject);\n return;\n } else if (type.name === \"PS\") {\n (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 localColorSpaceCache\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 {\n const cachedColorSpace = _colorspace.ColorSpace.getCached(args[0], xref, localColorSpaceCache);\n\n if (cachedColorSpace) {\n stateManager.state.fillColorSpace = cachedColorSpace;\n continue;\n }\n\n next(self.parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache\n }).then(function (colorSpace) {\n if (colorSpace) {\n stateManager.state.fillColorSpace = colorSpace;\n }\n }));\n return;\n }\n\n case _util.OPS.setStrokeColorSpace:\n {\n const cachedColorSpace = _colorspace.ColorSpace.getCached(args[0], xref, localColorSpaceCache);\n\n if (cachedColorSpace) {\n stateManager.state.strokeColorSpace = cachedColorSpace;\n continue;\n }\n\n next(self.parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache\n }).then(function (colorSpace) {\n if (colorSpace) {\n stateManager.state.strokeColorSpace = colorSpace;\n }\n }));\n return;\n }\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, localColorSpaceCache));\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, localColorSpaceCache));\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, localColorSpaceCache);\n\n var patternIR = shadingFill.getIR();\n args = [patternIR];\n fn = _util.OPS.shadingFill;\n break;\n\n case _util.OPS.setGState:\n name = args[0].name;\n\n if (name) {\n const localGStateObj = localGStateCache.getByName(name);\n\n if (localGStateObj) {\n if (localGStateObj.length > 0) {\n operatorList.addOp(_util.OPS.setGState, [localGStateObj]);\n }\n\n args = null;\n continue;\n }\n }\n\n next(new Promise(function (resolveGState, rejectGState) {\n if (!name) {\n throw new _util.FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n\n if (!(extGState instanceof _primitives.Dict)) {\n throw new _util.FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n\n if (!(gState instanceof _primitives.Dict)) {\n throw new _util.FormatError(\"GState should be a dictionary.\");\n }\n\n self.setGState({\n resources,\n gState,\n operatorList,\n cacheKey: name,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache\n }).then(resolveGState, rejectGState);\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.errorExtGState\n });\n (0, _util.warn)(`getOperatorList - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\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.beginCompat:\n case _util.OPS.endCompat:\n continue;\n\n case _util.OPS.beginMarkedContentProps:\n if (!(0, _primitives.isName)(args[0])) {\n (0, _util.warn)(`Expected name for beginMarkedContentProps arg0=${args[0]}`);\n continue;\n }\n\n if (args[0].name === \"OC\") {\n next(self.parseMarkedContentProps(args[1], resources).then(data => {\n operatorList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", data]);\n }).catch(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.errorMarkedContent\n });\n (0, _util.warn)(`getOperatorList - ignoring beginMarkedContentProps: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\n return;\n }\n\n args = [args[0].name];\n break;\n\n case _util.OPS.beginMarkedContent:\n case _util.OPS.endMarkedContent:\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 const emptyGStateCache = new _image_utils.LocalGStateCache();\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 (!(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 name = args[0].name;\n\n if (name && emptyGStateCache.getByName(name)) {\n break;\n }\n\n next(new Promise(function (resolveGState, rejectGState) {\n if (!name) {\n throw new _util.FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n\n if (!(extGState instanceof _primitives.Dict)) {\n throw new _util.FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n\n if (!(gState instanceof _primitives.Dict)) {\n throw new _util.FormatError(\"GState should be a dictionary.\");\n }\n\n const gStateFont = gState.get(\"Font\");\n\n if (!gStateFont) {\n emptyGStateCache.set(name, gState.objId, true);\n resolveGState();\n return;\n }\n\n flushTextContentItem();\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n handleSetFont(null, gStateFont[0]).then(resolveGState, rejectGState);\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (self.options.ignoreErrors) {\n (0, _util.warn)(`getTextContent - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\n return;\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(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._fetchBuiltInCMapBound,\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(toUnicode) {\n var cmapObj = toUnicode;\n\n if ((0, _primitives.isName)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\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._fetchBuiltInCMapBound,\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(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\n isSerifFont(baseFontName) {\n var fontNameWoStyle = baseFontName.split(\"-\")[0];\n return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1;\n }\n\n 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\n buildCharCodeToWidth(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\n 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 for (const entry of encoding.getRawValues()) {\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\n 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._fetchBuiltInCMapBound,\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 static buildFontPaths(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 static get fallbackFontDict() {\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 (0, _util.shadow)(this, \"fallbackFontDict\", dict);\n }\n\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.type3Dependencies = font.isType3Font ? new Set() : 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, task) {\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n\n if (!this.font.isType3Font) {\n throw new Error(\"Must be a Type3 font.\");\n }\n\n var type3Options = Object.create(evaluator.options);\n type3Options.ignoreErrors = false;\n var type3Evaluator = evaluator.clone(type3Options);\n type3Evaluator.parsingType3Font = true;\n const translatedFont = this.font,\n type3Dependencies = this.type3Dependencies;\n var loadCharProcsPromise = Promise.resolve();\n var charProcs = this.dict.get(\"CharProcs\");\n var fontResources = this.dict.get(\"Resources\") || resources;\n var charProcOperatorList = Object.create(null);\n\n for (const key of charProcs.getKeys()) {\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\n for (const dependency of operatorList.dependencies) {\n type3Dependencies.add(dependency);\n }\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\nclass StateManager {\n constructor(initialState) {\n this.state = initialState;\n this.stateStack = [];\n }\n\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\nclass TextState {\n constructor() {\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 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\n setTextLineMatrix(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\n 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\n translateTextLineMatrix(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\n 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\n calcRenderMatrix(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\n carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n }\n\n 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}\n\nclass EvalState {\n constructor() {\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 clone() {\n return Object.create(this);\n }\n\n}\n\nclass EvaluatorPreprocessor {\n static get opMap() {\n const 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 return (0, _util.shadow)(this, \"opMap\", getOPMap());\n }\n\n static get MAX_INVALID_PATH_OPS() {\n return (0, _util.shadow)(this, \"MAX_INVALID_PATH_OPS\", 20);\n }\n\n constructor(stream, xref, stateManager) {\n this.parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream, EvaluatorPreprocessor.opMap),\n xref\n });\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n this._numInvalidPathOPS = 0;\n }\n\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n }\n\n 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 = EvaluatorPreprocessor.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 > EvaluatorPreprocessor.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\n 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}\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.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/* 30 */\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__(31);\n\nvar _glyphlist = __w_pdfjs_require__(34);\n\nvar _encodings = __w_pdfjs_require__(33);\n\nvar _standard_fonts = __w_pdfjs_require__(35);\n\nvar _unicode = __w_pdfjs_require__(36);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _font_renderer = __w_pdfjs_require__(37);\n\nvar _cmap = __w_pdfjs_require__(29);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _type1_parser = __w_pdfjs_require__(38);\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 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 || encodingId === 1 || encodingId === 3)) {\n useTable = true;\n } else if (platformId === 1 && encodingId === 0) {\n useTable = true;\n } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) {\n useTable = true;\n\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 i, j;\n const locaEntries = [];\n\n for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) {\n let offset = itemDecode(locaData, j);\n\n if (offset > oldGlyfDataLength) {\n offset = oldGlyfDataLength;\n }\n\n locaEntries.push({\n index: i,\n offset,\n endOffset: 0\n });\n }\n\n locaEntries.sort((a, b) => {\n return a.offset - b.offset;\n });\n\n for (i = 0; i < numGlyphs; i++) {\n locaEntries[i].endOffset = locaEntries[i + 1].offset;\n }\n\n locaEntries.sort((a, b) => {\n return a.index - b.index;\n });\n var missingGlyphs = Object.create(null);\n var writeOffset = 0;\n itemEncode(locaData, 0, writeOffset);\n\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n var glyphProfile = sanitizeGlyph(oldGlyfData, locaEntries[i].offset, locaEntries[i].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 }\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 let baseEncoding = [];\n\n if (properties.hasEncoding && (properties.baseEncodingName === \"MacRomanEncoding\" || properties.baseEncodingName === \"WinAnsiEncoding\")) {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n }\n\n if (properties.hasEncoding && !this.isSymbolicFont && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0)) {\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 for (let i = 0; i < cmapMappingsLength; ++i) {\n if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n continue;\n }\n\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n break;\n }\n }\n } else if (cmapPlatformId === 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 if (properties.glyphNames && baseEncoding.length) {\n for (let i = 0; i < 256; ++i) {\n if (charCodeToGlyphId[i] === undefined && baseEncoding[i]) {\n glyphName = baseEncoding[i];\n const glyphId = properties.glyphNames.indexOf(glyphName);\n\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[i] = glyphId;\n }\n }\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/* 31 */\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__(32);\n\nvar _encodings = __w_pdfjs_require__(33);\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 class CFFParser {\n constructor(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n\n 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\n 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\n 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\n 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\n 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\n 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\n 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\n 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(parentDict) {\n var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n }\n\n 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\n 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\n 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\n 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 }\n\n return CFFParser;\n}();\n\nexports.CFFParser = CFFParser;\n\nclass CFF {\n constructor() {\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 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\n 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}\n\nexports.CFF = CFF;\n\nclass CFFHeader {\n constructor(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n\n}\n\nexports.CFFHeader = CFFHeader;\n\nclass CFFStrings {\n constructor() {\n this.strings = [];\n }\n\n 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\n 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\n add(value) {\n this.strings.push(value);\n }\n\n get count() {\n return this.strings.length;\n }\n\n}\n\nexports.CFFStrings = CFFStrings;\n\nclass CFFIndex {\n constructor() {\n this.objects = [];\n this.length = 0;\n }\n\n add(data) {\n this.length += data.length;\n this.objects.push(data);\n }\n\n set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n }\n\n get(index) {\n return this.objects[index];\n }\n\n get count() {\n return this.objects.length;\n }\n\n}\n\nexports.CFFIndex = CFFIndex;\n\nclass CFFDict {\n constructor(tables, strings) {\n this.keyToNameMap = tables.keyToNameMap;\n this.nameToKeyMap = tables.nameToKeyMap;\n this.defaults = tables.defaults;\n this.types = tables.types;\n this.opcodes = tables.opcodes;\n this.order = tables.order;\n this.strings = strings;\n this.values = Object.create(null);\n }\n\n 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\n 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\n hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n }\n\n 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\n removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n\n static 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}\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 class CFFTopDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n\n super(tables, strings);\n this.privateDict = null;\n }\n\n }\n\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 class CFFPrivateDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n\n super(tables, strings);\n this.subrsIndex = null;\n }\n\n }\n\n return CFFPrivateDict;\n}();\n\nexports.CFFPrivateDict = CFFPrivateDict;\nvar CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2\n};\n\nclass CFFCharset {\n constructor(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n\n}\n\nexports.CFFCharset = CFFCharset;\n\nclass CFFEncoding {\n constructor(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n\n}\n\nclass CFFFDSelect {\n constructor(format, fdSelect) {\n this.format = format;\n this.fdSelect = fdSelect;\n }\n\n getFDIndex(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n\n return this.fdSelect[glyphIndex];\n }\n\n}\n\nexports.CFFFDSelect = CFFFDSelect;\n\nclass CFFOffsetTracker {\n constructor() {\n this.offsets = Object.create(null);\n }\n\n isTracking(key) {\n return key in this.offsets;\n }\n\n 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\n offset(value) {\n for (var key in this.offsets) {\n this.offsets[key] += value;\n }\n }\n\n 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}\n\nclass CFFCompiler {\n constructor(cff) {\n this.cff = cff;\n }\n\n 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\n encodeNumber(value) {\n if (Number.isInteger(value)) {\n return this.encodeInteger(value);\n }\n\n return this.encodeFloat(value);\n }\n\n static get EncodeFloatRegExp() {\n return (0, _util.shadow)(this, \"EncodeFloatRegExp\", /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/);\n }\n\n encodeFloat(num) {\n var value = num.toString();\n var m = CFFCompiler.EncodeFloatRegExp.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\n 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\n compileHeader(header) {\n return [header.major, header.minor, header.hdrSize, header.offSize];\n }\n\n 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\n 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\n 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\n 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\n 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\n compileGlobalSubrIndex() {\n var globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n }\n\n 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\n 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\n compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n }\n\n 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\n 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\n compileIndex(index, 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}\n\nexports.CFFCompiler = CFFCompiler;\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.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/* 33 */\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/* 34 */\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/* 35 */\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/* 36 */\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/* 37 */\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__(31);\n\nvar _glyphlist = __w_pdfjs_require__(34);\n\nvar _encodings = __w_pdfjs_require__(33);\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/* 38 */\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__(33);\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 const asb = this.stack[this.stack.length - 5];\n this.seac = this.stack.splice(-4, 4);\n this.seac[0] += this.lsb - asb;\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n\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/* 39 */\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, localColorSpaceCache) {\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, localColorSpaceCache);\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, localColorSpaceCache);\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, resources, pdfFunctionFactory, localColorSpaceCache) {\n this.matrix = matrix;\n this.coordsArr = dict.getArray(\"Coords\");\n this.shadingType = dict.get(\"ShadingType\");\n this.type = \"Pattern\";\n\n const cs = _colorspace.ColorSpace.parse({\n cs: dict.getRaw(\"ColorSpace\") || dict.getRaw(\"CS\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache\n });\n\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.getRaw(\"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, resources, pdfFunctionFactory, localColorSpaceCache) {\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 const cs = _colorspace.ColorSpace.parse({\n cs: dict.getRaw(\"ColorSpace\") || dict.getRaw(\"CS\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache\n });\n\n this.cs = cs;\n this.background = dict.has(\"Background\") ? cs.getRgb(dict.get(\"Background\"), 0) : null;\n var fnObj = dict.getRaw(\"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/* 40 */\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 _primitives = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _ps_parser = __w_pdfjs_require__(41);\n\nvar _image_utils = __w_pdfjs_require__(24);\n\nclass PDFFunctionFactory {\n constructor({\n xref,\n isEvalSupported = true\n }) {\n this.xref = xref;\n this.isEvalSupported = isEvalSupported !== false;\n this._localFunctionCache = null;\n }\n\n create(fn) {\n const cachedFunction = this.getCached(fn);\n\n if (cachedFunction) {\n return cachedFunction;\n }\n\n const parsedFunction = PDFFunction.parse({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fn: fn instanceof _primitives.Ref ? this.xref.fetch(fn) : fn\n });\n\n this._cache(fn, parsedFunction);\n\n return parsedFunction;\n }\n\n createFromArray(fnObj) {\n const cachedFunction = this.getCached(fnObj);\n\n if (cachedFunction) {\n return cachedFunction;\n }\n\n const parsedFunction = PDFFunction.parseArray({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fnObj: fnObj instanceof _primitives.Ref ? this.xref.fetch(fnObj) : fnObj\n });\n\n this._cache(fnObj, parsedFunction);\n\n return parsedFunction;\n }\n\n getCached(cacheKey) {\n let fnRef;\n\n if (cacheKey instanceof _primitives.Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof _primitives.Dict) {\n fnRef = cacheKey.objId;\n } else if ((0, _primitives.isStream)(cacheKey)) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n\n if (fnRef) {\n if (!this._localFunctionCache) {\n this._localFunctionCache = new _image_utils.LocalFunctionCache();\n }\n\n const localFunction = this._localFunctionCache.getByRef(fnRef);\n\n if (localFunction) {\n return localFunction;\n }\n }\n\n return null;\n }\n\n _cache(cacheKey, parsedFunction) {\n if (!parsedFunction) {\n throw new Error('PDFFunctionFactory._cache - expected \"parsedFunction\" argument.');\n }\n\n let fnRef;\n\n if (cacheKey instanceof _primitives.Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof _primitives.Dict) {\n fnRef = cacheKey.objId;\n } else if ((0, _primitives.isStream)(cacheKey)) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n\n if (fnRef) {\n if (!this._localFunctionCache) {\n this._localFunctionCache = new _image_utils.LocalFunctionCache();\n }\n\n this._localFunctionCache.set(null, fnRef, parsedFunction);\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/* 41 */\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/* 42 */\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/* 43 */\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/* 44 */\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/* 45 */\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\nfunction 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\nfunction 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\nclass PDFImage {\n constructor({\n xref,\n res,\n image,\n isInline = false,\n smask = null,\n mask = null,\n isMask = false,\n pdfFunctionFactory,\n localColorSpaceCache\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 let colorSpace = dict.getRaw(\"ColorSpace\") || dict.getRaw(\"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 this.colorSpace = _colorspace.ColorSpace.parse({\n cs: colorSpace,\n xref,\n resources: isInline ? res : null,\n pdfFunctionFactory,\n localColorSpaceCache\n });\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 localColorSpaceCache\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 localColorSpaceCache\n });\n }\n } else {\n this.mask = mask;\n }\n }\n }\n\n static async buildImage({\n xref,\n res,\n image,\n isInline = false,\n pdfFunctionFactory,\n localColorSpaceCache\n }) {\n const imageData = image;\n let smaskData = null;\n let maskData = null;\n const smask = image.dict.get(\"SMask\");\n const mask = image.dict.get(\"Mask\");\n\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 new PDFImage({\n xref,\n res,\n image: imageData,\n isInline,\n smask: smaskData,\n mask: maskData,\n pdfFunctionFactory,\n localColorSpaceCache\n });\n }\n\n static createMask({\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 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\nexports.PDFImage = PDFImage;\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.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/* 47 */\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--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./button-switcher-view-mobile.vue?vue&type=style&index=0&id=435f9e90&lang=scss&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/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__(19);\n\nvar _api_compatibility = __w_pdfjs_require__(9);\n\nvar _worker_options = __w_pdfjs_require__(12);\n\nvar _text_layer = __w_pdfjs_require__(20);\n\nvar _svg = __w_pdfjs_require__(21);\n\nconst pdfjsVersion = '2.6.347';\nconst pdfjsBuild = '3be9c65f';\n{\n const {\n isNodeJS\n } = __w_pdfjs_require__(4);\n\n if (isNodeJS) {\n const PDFNodeStream = __w_pdfjs_require__(22).PDFNodeStream;\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const PDFNetworkStream = __w_pdfjs_require__(25).PDFNetworkStream;\n\n let PDFFetchStream;\n\n if ((0, _display_utils.isFetchSupported)()) {\n PDFFetchStream = __w_pdfjs_require__(26).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.BaseCMapReaderFactory = exports.DOMCanvasFactory = exports.BaseCanvasFactory = 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 BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n\n create(width, height) {\n (0, _util.unreachable)(\"Abstract method `create` called.\");\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\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.BaseCanvasFactory = BaseCanvasFactory;\n\nclass DOMCanvasFactory extends BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const canvas = this._document.createElement(\"canvas\");\n\n const context = canvas.getContext(\"2d\");\n canvas.width = width;\n canvas.height = height;\n return {\n canvas,\n context\n };\n }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = false\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\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 return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n\n}\n\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\n\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\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 });\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 });\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.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isBool = isBool;\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 errorMarkedContent: \"errorMarkedContent\"\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 escapeString(str) {\n return str.replace(/([\\(\\)\\\\])/g, \"\\\\$1\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n return arr1.every(function (element, index) {\n return element === arr2[index];\n });\n}\n\nfunction getModificationDate(date = new Date(Date.now())) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), (date.getUTCDate() + 1).toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\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 && process.type && process.type !== \"browser\");\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 _node_utils = __w_pdfjs_require__(7);\n\nvar _annotation_storage = __w_pdfjs_require__(8);\n\nvar _api_compatibility = __w_pdfjs_require__(9);\n\nvar _canvas = __w_pdfjs_require__(10);\n\nvar _worker_options = __w_pdfjs_require__(12);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(13);\n\nvar _metadata = __w_pdfjs_require__(14);\n\nvar _optional_content_config = __w_pdfjs_require__(16);\n\nvar _transport_stream = __w_pdfjs_require__(17);\n\nvar _webgl = __w_pdfjs_require__(18);\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nconst DefaultCanvasFactory = _is_node.isNodeJS ? _node_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory;\nconst DefaultCMapReaderFactory = _is_node.isNodeJS ? _node_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory;\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 || DefaultCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n\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.ownerDocument === \"undefined\") {\n params.ownerDocument = globalThis.document;\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.6.347',\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 annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\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 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 getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\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 saveDocument(annotationStorage) {\n return this._transport.saveDocument(annotationStorage);\n }\n\n}\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new _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 = new Map();\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 annotationStorage = null,\n optionalContentConfigPromise = null\n }) {\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const renderingIntent = intent === \"print\" ? \"print\" : \"display\";\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(renderingIntent);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(renderingIntent, intentState);\n }\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({\n ownerDocument: this._ownerDocument\n });\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 annotationStorage: annotationStorage && annotationStorage.getAll() || null\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 Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\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 let intentState = this._intentStates.get(renderingIntent);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(renderingIntent, intentState);\n }\n\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\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\n for (const [intent, intentState] of this._intentStates) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intent === \"oplist\") {\n continue;\n }\n\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\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) {\n return false;\n }\n\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.length !== 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\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.get(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\n const intentState = this._intentStates.get(args.intent);\n\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 for (const [intent, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(intent);\n\n break;\n }\n }\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 ownerDocument: params.ownerDocument\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 sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\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 sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\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 if (!(reason instanceof Error)) {\n const msg = \"DocException - expected a valid Error.\";\n (0, _util.warn)(msg);\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 \"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.ownerDocument, 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 saveDocument(annotationStorage) {\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n numPages: this._numPages,\n annotationStorage: annotationStorage && annotationStorage.getAll() || null,\n filename: this._fullReader ? this._fullReader.filename : null\n }).finally(() => {\n if (annotationStorage) {\n annotationStorage.resetModified();\n }\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 getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\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 get completed() {\n return this.capability.promise.catch(function () {});\n }\n\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\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, optionalContentConfig);\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.6.347';\nexports.version = version;\nconst build = '3be9c65f';\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 ownerDocument = globalThis.document\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._document = ownerDocument;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n\n this._document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = this._document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n\n this._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(nativeFontFace => {\n this._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 this._document !== \"undefined\" && !!this._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(params) {\n super(params);\n this.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n this.loadTestFontId = 0;\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n\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\n const canvas = this._document.createElement(\"canvas\");\n\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\n const div = this._document.createElement(\"div\");\n\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n\n for (i = 0, ii = names.length; i < ii; ++i) {\n const span = this._document.createElement(\"span\");\n\n span.textContent = \"Hi\";\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n\n this._document.body.appendChild(div);\n\n isFontReady(loadTestFontId, () => {\n this._document.body.removeChild(div);\n\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.NodeCMapReaderFactory = exports.NodeCanvasFactory = void 0;\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _util = __w_pdfjs_require__(2);\n\nlet NodeCanvasFactory = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: NodeCanvasFactory\");\n }\n\n};\nexports.NodeCanvasFactory = NodeCanvasFactory;\nlet NodeCMapReaderFactory = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: NodeCMapReaderFactory\");\n }\n\n};\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\n\nif (_is_node.isNodeJS) {\n exports.NodeCanvasFactory = NodeCanvasFactory = class extends _display_utils.BaseCanvasFactory {\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const Canvas = require(\"canvas\");\n\n const canvas = Canvas.createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n\n };\n exports.NodeCMapReaderFactory = NodeCMapReaderFactory = class extends _display_utils.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n\n resolve({\n cMapData: new Uint8Array(data),\n compressionType\n });\n });\n });\n }\n\n };\n}\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.AnnotationStorage = void 0;\n\nclass AnnotationStorage {\n constructor() {\n this._storage = new Map();\n this._modified = false;\n this.onSetModified = null;\n this.onResetModified = null;\n }\n\n getOrCreateValue(key, defaultValue) {\n if (this._storage.has(key)) {\n return this._storage.get(key);\n }\n\n this._storage.set(key, defaultValue);\n\n return defaultValue;\n }\n\n setValue(key, value) {\n if (this._storage.get(key) !== value) {\n this._setModified();\n }\n\n this._storage.set(key, value);\n }\n\n getAll() {\n if (this._storage.size === 0) {\n return null;\n }\n\n return Object.fromEntries(this._storage);\n }\n\n get size() {\n return this._storage.size;\n }\n\n _setModified() {\n if (!this._modified) {\n this._modified = true;\n\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n\n resetModified() {\n if (this._modified) {\n this._modified = false;\n\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n\n}\n\nexports.AnnotationStorage = AnnotationStorage;\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.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/* 10 */\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__(11);\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 this.transferMaps = null;\n }\n\n CanvasExtraState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n };\n return CanvasExtraState;\n}();\n\nvar CanvasGraphics = function CanvasGraphicsClosure() {\n var EXECUTION_TIME = 15;\n var EXECUTION_STEPS = 10;\n\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer, optionalContentConfig) {\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.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\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, transferMaps = null) {\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 let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n\n if (transferMaps) {\n switch (transferMaps.length) {\n case 1:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[0];\n transferMapBlue = transferMaps[0];\n transferMapGray = transferMaps[0];\n break;\n\n case 4:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[1];\n transferMapBlue = transferMaps[2];\n transferMapGray = transferMaps[3];\n break;\n }\n }\n\n 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 if (transferMapGray) {\n if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n [white, black] = [black, white];\n }\n }\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n var srcDiff = srcLength - srcPos;\n let 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 const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\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\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\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 if (hasTransferMaps) {\n for (let k = 0; k < destPos; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n }\n\n function putBinaryImageMask(ctx, imgData) {\n 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 case \"TR\":\n this.current.transferMaps = value;\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 && ctx.lineWidth < this.getSinglePixelWidth()) {\n width = this.getSinglePixelWidth();\n }\n\n if (height === 0 && ctx.lineWidth < this.getSinglePixelWidth()) {\n height = this.getSinglePixelWidth();\n }\n\n var xw = x + width;\n var yh = y + height;\n ctx.moveTo(x, y);\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n ctx.lineTo(x, y);\n 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 (this.contentVisible) {\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\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.contentVisible) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n\n if (needRestore) {\n ctx.restore();\n }\n\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 (this.contentVisible && (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 + fontSize * accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - fontSize * 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 if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n\n 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 if (!this.contentVisible) {\n return;\n }\n\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 if (!this.contentVisible) {\n return;\n }\n\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n 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 if (!this.contentVisible) {\n return;\n }\n\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n beginGroup: function CanvasGraphics_beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\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 if (!this.contentVisible) {\n return;\n }\n\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 if (!this.contentVisible) {\n return;\n }\n\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\n paintImageMaskXObjectRepeat(imgData, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\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, skewX, skewY, 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\n paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n\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 if (!this.contentVisible) {\n return;\n }\n\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 if (!this.contentVisible) {\n return;\n }\n\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 if (!this.contentVisible) {\n return;\n }\n\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, this.current.transferMaps);\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 if (!this.contentVisible) {\n return;\n }\n\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, this.current.transferMaps);\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 if (!this.contentVisible) {\n return;\n }\n\n this.ctx.fillRect(0, 0, 1, 1);\n },\n markPoint: function CanvasGraphics_markPoint(tag) {},\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n },\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n\n this.contentVisible = this.isContentVisible();\n },\n endMarkedContent: function CanvasGraphics_endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n },\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 isContentVisible: function CanvasGraphics_isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n\n return true;\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/* 11 */\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/* 12 */\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/* 13 */\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/* 14 */\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__(15);\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 += \"\" + (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 return Object.fromEntries(this._metadataMap);\n }\n\n has(name) {\n return this._metadataMap.has(name);\n }\n\n}\n\nexports.Metadata = Metadata;\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.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/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OptionalContentConfig = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass OptionalContentGroup {\n constructor(name, intent) {\n this.visible = true;\n this.name = name;\n this.intent = intent;\n }\n\n}\n\nclass OptionalContentConfig {\n constructor(data) {\n this.name = null;\n this.creator = null;\n this._order = null;\n this._groups = new Map();\n\n if (data === null) {\n return;\n }\n\n this.name = data.name;\n this.creator = data.creator;\n this._order = data.order;\n\n for (const group of data.groups) {\n this._groups.set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n\n if (data.baseState === \"OFF\") {\n for (const group of this._groups) {\n group.visible = false;\n }\n }\n\n for (const on of data.on) {\n this._groups.get(on).visible = true;\n }\n\n for (const off of data.off) {\n this._groups.get(off).visible = false;\n }\n }\n\n isVisible(group) {\n if (group.type === \"OCG\") {\n if (!this._groups.has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n\n return this._groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n (0, _util.warn)(\"Visibility expression not supported yet.\");\n }\n\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this._groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this._groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this._groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this._groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n }\n\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n\n setVisibility(id, visible = true) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n\n this._groups.get(id).visible = !!visible;\n }\n\n getOrder() {\n if (!this._groups.size) {\n return null;\n }\n\n if (this._order) {\n return this._order.slice();\n }\n\n return Array.from(this._groups.keys());\n }\n\n getGroups() {\n if (!this._groups.size) {\n return null;\n }\n\n return Object.fromEntries(this._groups);\n }\n\n getGroup(id) {\n return this._groups.get(id) || null;\n }\n\n}\n\nexports.OptionalContentConfig = OptionalContentConfig;\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.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/* 18 */\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/* 19 */\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\nvar _annotation_storage = __w_pdfjs_require__(8);\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 this.annotationStorage = parameters.annotationStorage;\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 const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.className = \"textWidgetAnnotation\";\n let element = null;\n\n if (this.renderInteractiveForms) {\n const textContent = storage.getOrCreateValue(id, this.data.fieldValue);\n\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n }\n\n element.addEventListener(\"input\", function (event) {\n storage.setValue(id, event.target.value);\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 const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n const value = storage.getOrCreateValue(id, data.fieldValue && data.fieldValue !== \"Off\");\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n const element = document.createElement(\"input\");\n element.disabled = data.readOnly;\n element.type = \"checkbox\";\n element.name = this.data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.addEventListener(\"change\", function (event) {\n storage.setValue(id, event.target.checked);\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 storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n const value = storage.getOrCreateValue(id, data.fieldValue === data.buttonValue);\n const element = document.createElement(\"input\");\n element.disabled = data.readOnly;\n element.type = \"radio\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.addEventListener(\"change\", function (event) {\n const name = event.target.name;\n\n for (const radio of document.getElementsByName(name)) {\n if (radio !== event.target) {\n storage.setValue(radio.parentNode.getAttribute(\"data-annotation-id\"), false);\n }\n }\n\n storage.setValue(id, event.target.checked);\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 storage = this.annotationStorage;\n const id = this.data.id;\n storage.getOrCreateValue(id, this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null);\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.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n\n selectElement.appendChild(optionElement);\n }\n\n selectElement.addEventListener(\"input\", function (event) {\n const options = event.target.options;\n const value = options[options.selectedIndex].value;\n storage.setValue(id, value);\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: typeof parameters.renderInteractiveForms === \"boolean\" ? parameters.renderInteractiveForms : true,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage()\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/* 20 */\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._document = container.ownerDocument;\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\n const canvas = this._document.createElement(\"canvas\");\n\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/* 21 */\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 = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : 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/* 22 */\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__(23);\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/* 23 */\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__(24);\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/* 24 */\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/* 25 */\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__(23);\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 getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n\n}\n\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/* 26 */\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__(23);\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 }).catch(reason => {\n if (reason && reason.name === \"AbortError\") {\n return;\n }\n\n throw reason;\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--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./competences-component.vue?vue&type=style&index=0&id=12d8a74c&lang=scss&scoped=true\"","/**!\n * Sortable 1.14.0\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar version = \"1.14.0\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !! /*@__PURE__*/navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\n * Returns the \"bounding client rect\" of given element\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\n * @param {[HTMLElement]} container The parent the element will be placed in\n * @return {Object} The boundingClientRect of el, with specified adjustments\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\n * Checks if a side of an element is scrolled past a side of its parents\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\n * and non-draggable elements\n * @param {HTMLElement} el The parent element\n * @param {Number} childNum The index of the child\n * @param {Object} options Parent Sortable's options\n * @return {HTMLElement} The child at index childNum, or null if not found\n */\n\n\nfunction getChild(el, childNum, options, includeDragEl) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\n * @param {HTMLElement} el Parent element\n * @param {selector} selector Any other elements that should be ignored\n * @return {HTMLElement} The last child, ignoring ghostEl\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\n * Returns the index of an element within its parent for a selected set of\n * elements\n * @param {HTMLElement} el\n * @param {selector} selector\n * @return {number}\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\n * The value is returned in real pixels.\n * @param {HTMLElement} el\n * @return {Array} Offsets in the format of [left, top]\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\n * Returns the index of the object within the given array\n * @param {Array} arr Array that may or may not hold the object\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\n * @return {Number} The index of the object in the array, or -1\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n this.forRepaintDummy = repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.forEach(function (p) {\n if (p.pluginName === plugin.pluginName) {\n throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n }\n });\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar _excluded = [\"evt\"];\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, _excluded);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread2({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n var threshold = sortable[expando].options.emptyInsertThreshold;\n if (!threshold || lastChild(sortable)) return;\n var rect = getRect(sortable),\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && !Safari,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n } // Safari ignores further event handling after mousedown\n\n\n if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread2({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // Insert to end of list\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // if there is a last element, it is the target\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n // Insert to start of list\n var firstChild = getChild(el, 0, options, true);\n\n if (firstChild === dragEl) {\n return completed(false);\n }\n\n target = firstChild;\n targetRect = getRect(target);\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n capture();\n el.insertBefore(dragEl, firstChild);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order, useAnimation) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n useAnimation && this.captureAnimationState();\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n useAnimation && this.animateAll();\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsFirst(evt, vertical, sortable) {\n var rect = getRect(getChild(sortable.el, 0, sortable.options, true));\n var spacer = 10;\n return vertical ? evt.clientX < rect.left - spacer || evt.clientY < rect.top && evt.clientX < rect.right : evt.clientY < rect.top - spacer || evt.clientY < rect.bottom && evt.clientX < rect.left;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n forceAutoScrollFallback: false,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n folding = false; // Do not \"unfold\" after around dragEl if reverted\n\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\n * Selects the provided multi-drag item\n * @param {HTMLElement} el The element to be selected\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\n * Deselects the provided multi-drag item\n * @param {HTMLElement} el The element to be deselected\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\n * Insert multi-drag clones\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\n * @param {HTMLElement} rootEl\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./courses-component.vue?vue&type=style&index=0&id=40348a4f&lang=scss&scoped=true\"","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"), require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([, \"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"vue\"), require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Vue\"], root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__, __WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_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, __webpack_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__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_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__webpack_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__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_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__webpack_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) __webpack_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__webpack_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__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"00ee\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ \"0366\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(\"1c0b\");\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"057f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar nativeGetOwnPropertyNames = __webpack_require__(\"241c\").f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n\n\n/***/ }),\n\n/***/ \"06cf\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar propertyIsEnumerableModule = __webpack_require__(\"d1e7\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar has = __webpack_require__(\"5135\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"0cfb\");\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ \"0cfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar fails = __webpack_require__(\"d039\");\nvar createElement = __webpack_require__(\"cc12\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"13d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $reduce = __webpack_require__(\"d58f\").left;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"14c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"c6b6\");\nvar regexpExec = __webpack_require__(\"9263\");\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n\n\n/***/ }),\n\n/***/ \"159b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar DOMIterables = __webpack_require__(\"fdbc\");\nvar forEach = __webpack_require__(\"17c2\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n\n\n/***/ }),\n\n/***/ \"17c2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(\"b727\").forEach;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n\n\n/***/ }),\n\n/***/ \"1be4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ \"1c0b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"1c7e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n\n/***/ \"1d80\":\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"1dde\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar V8_VERSION = __webpack_require__(\"2d00\");\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n\n\n/***/ }),\n\n/***/ \"23cb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ \"23e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar copyConstructorProperties = __webpack_require__(\"e893\");\nvar isForced = __webpack_require__(\"94ca\");\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n\n/***/ \"241c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(\"ca84\");\nvar enumBugKeys = __webpack_require__(\"7839\");\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ \"25f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar redefine = __webpack_require__(\"6eeb\");\nvar anObject = __webpack_require__(\"825a\");\nvar fails = __webpack_require__(\"d039\");\nvar flags = __webpack_require__(\"ad6d\");\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ \"2ca0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\nvar toLength = __webpack_require__(\"50c4\");\nvar notARegExp = __webpack_require__(\"5a34\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar correctIsRegExpLogic = __webpack_require__(\"ab13\");\nvar IS_PURE = __webpack_require__(\"c430\");\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar userAgent = __webpack_require__(\"342f\");\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n\n/***/ \"342f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ \"35a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"f5df\");\nvar Iterators = __webpack_require__(\"3f8c\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ \"37e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar anObject = __webpack_require__(\"825a\");\nvar objectKeys = __webpack_require__(\"df75\");\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"3bbe\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"3ca3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(\"6547\").charAt;\nvar InternalStateModule = __webpack_require__(\"69f3\");\nvar defineIterator = __webpack_require__(\"7dd0\");\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ \"3f8c\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"4160\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar forEach = __webpack_require__(\"17c2\");\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n\n\n/***/ }),\n\n/***/ \"428f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\n\nmodule.exports = global;\n\n\n/***/ }),\n\n/***/ \"44ad\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar classof = __webpack_require__(\"c6b6\");\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n\n/***/ \"44d2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar create = __webpack_require__(\"7c73\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"44e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar classof = __webpack_require__(\"c6b6\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"4930\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n\n\n/***/ }),\n\n/***/ \"4d64\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toAbsoluteIndex = __webpack_require__(\"23cb\");\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"4de4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $filter = __webpack_require__(\"b727\").filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(\"1dde\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"4df4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(\"0366\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar callWithSafeIterationClosing = __webpack_require__(\"9bdd\");\nvar isArrayIteratorMethod = __webpack_require__(\"e95a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar createProperty = __webpack_require__(\"8418\");\nvar getIteratorMethod = __webpack_require__(\"35a1\");\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"4fad\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(\"23e7\");\nvar $entries = __webpack_require__(\"6f53\").entries;\n\n// `Object.entries` method\n// https://tc39.github.io/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n\n\n/***/ }),\n\n/***/ \"50c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"5135\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"5319\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(\"d784\");\nvar anObject = __webpack_require__(\"825a\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar advanceStringIndex = __webpack_require__(\"8aa5\");\nvar regExpExec = __webpack_require__(\"14c3\");\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"5692\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(\"c430\");\nvar store = __webpack_require__(\"c6cd\");\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"56ef\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\nvar getOwnPropertyNamesModule = __webpack_require__(\"241c\");\nvar getOwnPropertySymbolsModule = __webpack_require__(\"7418\");\nvar anObject = __webpack_require__(\"825a\");\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ \"5a34\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isRegExp = __webpack_require__(\"44e7\");\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"5c6c\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"5db7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar flattenIntoArray = __webpack_require__(\"a2bf\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar toLength = __webpack_require__(\"50c4\");\nvar aFunction = __webpack_require__(\"1c0b\");\nvar arraySpeciesCreate = __webpack_require__(\"65f0\");\n\n// `Array.prototype.flatMap` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A;\n aFunction(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n\n\n/***/ }),\n\n/***/ \"6547\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ \"65f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar isArray = __webpack_require__(\"e8b5\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n\n/***/ \"69f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(\"7f9a\");\nvar global = __webpack_require__(\"da84\");\nvar isObject = __webpack_require__(\"861d\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar objectHas = __webpack_require__(\"5135\");\nvar sharedKey = __webpack_require__(\"f772\");\nvar hiddenKeys = __webpack_require__(\"d012\");\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ \"6eeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar has = __webpack_require__(\"5135\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar inspectSource = __webpack_require__(\"8925\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n\n/***/ \"6f53\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar objectKeys = __webpack_require__(\"df75\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar propertyIsEnumerable = __webpack_require__(\"d1e7\").f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"73d9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = __webpack_require__(\"44d2\");\n\naddToUnscopables('flatMap');\n\n\n/***/ }),\n\n/***/ \"7418\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"746f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(\"428f\");\nvar has = __webpack_require__(\"5135\");\nvar wrappedWellKnownSymbolModule = __webpack_require__(\"e538\");\nvar defineProperty = __webpack_require__(\"9bf2\").f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n\n\n/***/ }),\n\n/***/ \"7839\":\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n\n/***/ \"7b0b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ \"7c73\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"825a\");\nvar defineProperties = __webpack_require__(\"37e8\");\nvar enumBugKeys = __webpack_require__(\"7839\");\nvar hiddenKeys = __webpack_require__(\"d012\");\nvar html = __webpack_require__(\"1be4\");\nvar documentCreateElement = __webpack_require__(\"cc12\");\nvar sharedKey = __webpack_require__(\"f772\");\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"7dd0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar createIteratorConstructor = __webpack_require__(\"9ed3\");\nvar getPrototypeOf = __webpack_require__(\"e163\");\nvar setPrototypeOf = __webpack_require__(\"d2bb\");\nvar setToStringTag = __webpack_require__(\"d44e\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar IS_PURE = __webpack_require__(\"c430\");\nvar Iterators = __webpack_require__(\"3f8c\");\nvar IteratorsCore = __webpack_require__(\"ae93\");\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"7f9a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar inspectSource = __webpack_require__(\"8925\");\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ \"825a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"83ab\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ \"8418\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ \"861d\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"8875\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*