{"version":3,"sources":["webpack:///./node_modules/pdfjs-dist/build/pdf.worker.js","webpack:///./node_modules/pdfjs-dist/build/pdf.js","webpack:///./node_modules/pdfjs-dist/webpack.js"],"names":["module","exports","Worker","root","factory","this","modules","installedModules","__w_pdfjs_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_display_utils","addLinkAttributes","getFilenameFromUrl","LinkTarget","loadScript","PDFDateString","RenderingCancelledException","_api","build","getDocument","LoopbackPort","PDFDataRangeTransport","PDFWorker","version","_util","CMapCompressionType","createObjectURL","createPromiseCapability","createValidAbsoluteUrl","InvalidPDFException","MissingPDFException","OPS","PasswordResponses","PermissionFlag","removeNullCharacters","shadow","UnexpectedResponseException","UNSUPPORTED_FEATURES","Util","VerbosityLevel","_annotation_layer","AnnotationLayer","_api_compatibility","apiCompatibilityParams","_worker_options","GlobalWorkerOptions","_text_layer","renderTextLayer","_svg","SVGGraphics","isNodeJS","PDFNodeStream","setPDFNetworkStreamFactory","params","PDFNetworkStream","PDFFetchStream","isFetchSupported","isValidFetchUrl","url","deprecated","StatTimer","DOMSVGFactory","DOMCMapReaderFactory","BaseCMapReaderFactory","DOMCanvasFactory","BaseCanvasFactory","DEFAULT_LINK_REL","PageViewport","SVG_NS","constructor","unreachable","width","height","canvasAndContext","canvas","Error","context","ownerDocument","globalThis","document","super","_document","createElement","getContext","baseUrl","isCompressed","compressionType","BINARY","NONE","_fetchData","catch","reason","baseURI","fetch","then","async","response","ok","statusText","cMapData","Uint8Array","arrayBuffer","stringToBytes","text","Promise","resolve","reject","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","status","responseText","send","assert","svg","createElementNS","setAttribute","type","viewBox","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","Math","abs","transform","slice","x","y","applyTransform","rect","topLeft","bottomRight","applyInverseTransform","BaseException","msg","SELF","BLANK","PARENT","TOP","link","target","rel","enabled","urlNullRemoved","href","title","onclick","targetStr","anchor","indexOf","query","end","min","length","substring","lastIndexOf","started","times","warn","Date","now","push","start","outBuf","longest","time","duration","padEnd","join","Response","ReadableStream","protocol","URL","ex","src","script","onload","onerror","head","documentElement","appendChild","details","console","log","pdfDateStringRegex","input","isString","RegExp","matches","exec","year","parseInt","month","day","hour","minute","second","universalTimeRelation","offsetHour","offsetMinute","UTC","arrayByteLength","arraysToBytes","bytesToString","escapeString","getModificationDate","getVerbosityLevel","info","isArrayBuffer","isArrayEqual","isBool","isNum","isSameOrigin","setVerbosityLevel","string32","stringToPDFString","stringToUTF8String","utf8StringToString","IsEvalSupportedCached","IsLittleEndianCached","FormatError","UnknownErrorException","TextRenderingMode","StreamType","PasswordException","AbortException","ImageKind","FontType","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","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","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","INFOS","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontGetPath","errorMarkedContent","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","level","Number","isInteger","cond","otherUrl","base","origin","e","other","_isValidProtocol","absoluteUrl","obj","prop","configurable","writable","message","code","NullCharactersRegExp","str","replace","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","chunk","subarray","charCodeAt","arr","byteLength","resultLength","pos","data","item","itemLength","set","isLittleEndian","buffer8","view32","Uint32Array","buffer","isEvalSupported","Function","rgbBuf","g","b","m1","m2","xt","yt","p1","p2","p3","p4","max","v","transpose","a","first","sqrt","sx","sy","rect1","rect2","compare","orderedX","sort","orderedY","result","normalizeRect","PDFStringTranslateTable","charAt","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","every","element","index","date","getUTCFullYear","toString","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","capability","isSettled","promise","digits","contentType","forceDataSchema","blob","Blob","ii","b1","b2","b3","d1","d2","d3","d4","process","versions","nw","electron","PDFPageProxy","PDFDocumentProxy","_font_loader","_node_utils","_annotation_storage","_canvas","_is_node","_message_handler","_metadata","_optional_content_config","_transport_stream","_webgl","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DefaultCanvasFactory","NodeCanvasFactory","DefaultCMapReaderFactory","NodeCMapReaderFactory","createPDFNetworkStream","pdfNetworkStreamFactory","task","PDFDocumentLoadingTask","source","range","rangeTransport","worker","window","pdfBytes","isNaN","location","rangeChunkSize","CMapReaderFactory","ignoreErrors","stopAtErrors","fontExtraProperties","pdfBug","maxImageSize","disableFontFace","disableRange","disableStream","disableAutoFetch","workerParams","port","workerPort","fromPort","_worker","docId","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","httpHeaders","withCredentials","all","workerId","messageHandler","MessageHandler","postMessageTransfers","transport","WorkerTransport","_transport","_capability","pdfDataRangeTransport","sendWithPromise","apiVersion","password","docBaseUrl","nextDocumentId","onPassword","onProgress","onUnsupportedFeature","transportDestroyed","destroy","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","listener","begin","loaded","total","pdfInfo","_pdfInfo","AnnotationStorage","numPages","fingerprint","pageNumber","getPage","ref","getPageIndex","getDestinations","id","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getData","downloadInfoCapability","getStats","startCleanup","loadingTask","loadingParams","annotationStorage","saveDocument","pageIndex","pageInfo","_pageIndex","_pageInfo","_ownerDocument","_stats","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","_intentStates","Map","rotate","userUnit","view","intent","annotationsPromise","annotationsIntent","getAnnotations","canvasContext","viewport","enableWebGL","renderInteractiveForms","imageLayer","canvasFactory","background","optionalContentConfigPromise","renderingIntent","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","webGLContext","WebGLContext","enable","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","_pumpOperatorList","getAll","complete","error","renderTasks","internalRenderTask","splice","_tryCleanup","_abortOperatorList","timeEnd","InternalRenderTask","callback","useRequestAnimationFrame","renderTask","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","opListReadCapability","opListTask","normalizeWhitespace","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","combineTextItems","highWaterMark","textContent","items","readableStream","streamTextContent","pump","reader","read","done","assign","styles","getReader","pageCache","waitOn","force","completed","cancel","clear","resetStats","values","operatorListChunk","args","streamReader","_renderPageChunk","setTimeout","curIntentState","delete","cleanup","defer","_listeners","_defer","_deferred","transfers","cloneValue","cloned","has","transferable","includes","byteOffset","Array","isArray","desc","getOwnPropertyDescriptor","getPrototypeOf","forEach","WeakMap","PDFWorkerClosure","pdfWorkerPorts","isWorkerDisabled","fallbackWorkerSrc","nextFakeWorkerId","fakeWorkerCapability","pdfjsFilePath","currentScript","getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","mainWorkerMessageHandler","pdfjsWorker","WorkerMessageHandler","setupFakeWorkerGlobal","loader","eval","createCDNWrapper","wrapper","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","on","terminateEarly","removeEventListener","onWorkerError","terminate","_setupFakeWorker","addEventListener","supportTransfers","sendTest","testObj","workerHandler","setup","fontLoader","FontLoader","_onUnsupportedFeature","_params","cMapUrl","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","page","_destroy","terminated","cancelAllRequests","sink","getFullReader","evt","onPull","close","enqueue","onCancel","ready","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","exception","updatePassword","_startRenderPage","exportedData","exportedError","fontRegistry","FontInspector","fontAdded","FontFaceObject","finally","imageData","pageProxy","MAX_IMAGE_SIZE_TO_STORE","fetched","builtInCMap","featureId","filename","resetModified","results","OptionalContentConfig","metadata","Metadata","contentDispositionFilename","cleanupSuccessful","_objs","objId","resolved","_ensureObj","RenderTask","_internalRenderTask","onContinue","canvasInRendering","WeakSet","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","add","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","BaseFontLoader","nativeFontFaces","styleElement","nativeFontFace","fonts","rule","getElementsByTagName","styleSheet","sheet","insertRule","cssRules","remove","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","supported","rules","fontsToLoad","loadingContext","requests","nextRequestId","loadTestFontId","navigator","userAgent","completeRequest","otherRequest","shift","getLoadTestFont","atob","int32","offset","spliceString","insert","chunk1","chunk2","ctx","called","isFontReady","fillText","getImageData","_loadTestFont","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","btoa","names","loadedName","div","style","visibility","position","top","left","span","fontFamily","body","removeChild","translatedData","compiledGlyphs","FontFace","registerFont","mimetype","character","cmds","current","size","js","cmd","Canvas","createCanvas","fs","readFile","_storage","_modified","onSetModified","onResetModified","defaultValue","_setModified","fromEntries","compatibilityParams","freeze","_pattern_helper","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","addContextCurrentTransform","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","translate","_originalTransform","_originalSetTransform","setTransform","_transformMatrix","_transformStack","f","ad_bc","bc_ad","old","prev","pop","angle","cosValue","cos","sinValue","sin","CachedCanvases","cache","getCanvas","trackTransform","canvasEntry","reset","compileType3Glyph","imgData","j","j0","POINT_TO_PROCESS_LIMIT","width1","points","POINT_TYPES","lineSize","data0","mask","elem","count","sum","steps","Int32Array","outlines","pp","coords","p0","step","drawOutline","beginPath","k","kk","ll","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","resumeSMaskCtx","transferMaps","clone","setCurrentPoint","EXECUTION_TIME","EXECUTION_STEPS","canvasCtx","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","contentVisible","markedContentStack","cachedCanvases","_cachedGetSinglePixelWidth","putBinaryImageData","ImageData","putImageData","destPos","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","dest","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","kind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","srcByte","hasTransferMaps","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","properties","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","subtype","backdrop","composeFn","hasBackdrop","PIXELS_TO_PROCESS","chunkSize","ceil","row","chunkHeight","composeSMask","scaleX","scaleY","isEnabled","composed","layer","drawImage","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","op","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","endTime","breakIt","depObjId","objsPool","startsWith","endSMaskGroup","endLayout","limit","dashArray","dashPhase","flatness","states","state","suspendSMaskGroup","beginSMaskGroup","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","startTransformInverse","mozCurrentTransformInverse","deltaTransform","clearRect","resumeSMaskGroup","ops","getSinglePixelWidth","xw","yh","bezierCurveTo","consumePath","singularValueDecompose2dScale","getPattern","isPatternFill","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","rise","patternTransform","fillStrokeMode","isAddToPathSet","getPathGenerator","strokeText","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","glyph","scaledX","scaledY","scaledAccentX","scaledAccentY","vmetric","vx","vy","charWidth","restoreNeeded","isSpace","fontChar","accent","remeasure","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","isInFont","paintChar","spacingLength","isTextInvisible","charProcOperatorList","operatorListId","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","color","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","getShadingPatternFromIR","arguments","makeCssRgb","patternIR","inv","bl","br","ul","ur","x0","y0","x1","y1","matrix","bbox","group","isolated","knockout","bounds","getAxialAlignedBoundingBox","canvasBounds","intersect","floor","imageSmoothingEnabled","mozImageSmoothingEnabled","img","compiled","maskCanvas","skewX","skewY","positions","images","image","map","w","h","imgToPaint","tmpCanvas","widthScale","heightScale","HTMLElement","tmpCtx","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getCanvasPosition","appendImage","entry","tag","visible","isVisible","isContentVisible","inverse","ShadingIRs","applyBoundingBox","Path2D","region","RadialAxial","fromIR","raw","colorStops","r1","grad","createLinearGradient","createRadialGradient","addColorStop","createMeshCanvas","drawTriangle","c1","c2","c3","tmp","colors","rowSize","x2","y2","x3","y3","xa","car","cag","cab","xb","cbr","cbg","cbb","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","round","maxY","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","combinesScale","figures","backgroundColor","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","drawFigures","shadingIR","Mesh","owner","matrixScale","temporaryPatternCanvas","createPattern","Dummy","PaintType","COLORED","UNCOLORED","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","combinedScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","clipBbox","realOutputSize","maxSize","bboxWidth","bboxHeight","cssColor","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","event","stream","_processStreamMessage","action","cbSourceName","cbTargetName","postMessage","_createStreamSink","actionName","handler","ah","_postMessage","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","self","streamSink","isCancelled","lastDesiredSize","sinkCapability","success","_deleteStreamController","allSettled","_xml_parser","_repair","parser","SimpleXMLParser","xmlDocument","parseFromString","_metadataMap","_parse","codes","chars","rdf","nodeName","toLowerCase","firstChild","nextSibling","hasChildNodes","children","childNodes","jj","trim","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","ch","isWhitespaceString","XMLParserBase","entity","onResolveEntity","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","_resolveEntities","parsed","attrStart","ch2","onError","onEndElement","pi","_parseProcessingInstruction","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","content","_parseContent","onBeginElement","onText","isEmpty","SimpleDOMNode","nodeValue","parentNode","child","_currentFragment","_stack","_errorCode","parseXml","node","lastElement","OptionalContentGroup","creator","_order","_groups","order","groups","baseState","off","expression","policy","ids","from","keys","_queuedChunks","_progressiveDone","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","addProgressiveDoneListener","_onProgressiveDone","transportReady","_enqueue","found","some","_begin","_loaded","firstReader","queuedChunks","PDFDataTransportStreamReader","_progressiveDataLength","PDFDataTransportStreamRangeReader","requestDataRange","readers","abort","_stream","_done","_filename","_requests","_headersReady","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","program","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","Float32Array","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","flush","deleteTexture","deleteBuffer","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","scaleLocation","offsetLocation","colorLocation","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","AnnotationElementFactory","parameters","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","linkService","downloadManager","imageResourcesPath","svgFactory","container","_createContainer","transformOrigin","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","trigger","popupElement","PopupElement","modificationDate","contents","hideWrapper","popup","render","className","newWindow","externalLinkTarget","externalLinkRel","externalLinkEnabled","_bindNamedAction","_bindLink","destination","getDestinationHash","navigateTo","getAnchorUrl","executeNamedAction","hasPopup","alt","dataset","l10nId","l10nArgs","JSON","stringify","_createPopup","hasAppearance","fieldValue","TEXT_ALIGNMENT","storage","getOrCreateValue","multiLine","setValue","disabled","readOnly","fieldName","maxLen","maxLength","comb","fieldWidth","combWidth","classList","letterSpacing","verticalAlign","display","_setTextStyle","textAlignment","textAlign","direction","fontWeight","fontStyle","checked","buttonValue","radio","getElementsByName","getAttribute","selectElement","combo","options","multiSelect","multiple","option","optionElement","displayValue","exportValue","selectedIndex","IGNORE_TYPES","parentType","selector","parentId","parentElement","querySelector","parentLeft","parseFloat","parentWidth","pinned","BACKGROUND_ENLIGHT","hideElement","dateObject","toDateObject","toLocaleDateString","toLocaleTimeString","_formatContents","_toggle","_show","_hide","lines","split","line","createTextNode","pin","hasAttribute","removeAttribute","zIndex","unpin","lineCoordinates","append","square","circle","containerClassName","svgElementName","coordinate","vertices","polyline","inkList","inkLists","file","eventBus","dispatch","_download","downloadData","sortedAnnotations","popupAnnotations","annotations","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","isAllWhitespace","test","appendText","geom","textDiv","textDivProperties","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_textDivProperties","tx","_viewport","atan2","fontName","PI","fontHeight","fontAscent","ascent","descent","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textContentStream","_layoutText","_enhanceTextSelection","angleCos","angleSin","divWidth","divHeight","_bounds","right","bottom","_canceled","textDivs","textDivsLength","_renderingDone","findPositiveMin","ts","expand","expanded","expandBounds","divProperties","Float64Array","boxScale","boxes","box","x1New","x2New","expandBoundsLTR","fakeBoundary","Infinity","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","unshift","used","concat","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_reader","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","renderParameters","_render","timeout","styleCache","len","mozOpaque","textItems","textStyles","_processItems","expandTextDivs","expandDivs","transformBuf","paddingBuf","divProps","padding","SVG_DEFAULTS","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","adler32","deflateSync","literals","deflateSyncUncompressed","Buffer","output","maxBlockLength","deflateBlocks","idat","adler","encode","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","opListToTree","opList","opTree","opListElement","fn","pf","toFixed","pm","acos","clipCount","maskCount","shadingCount","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","svgElement","loadDependencies","convertOpList","operatorIdMapping","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","defs","addFontStyle","_makeColorN_Pattern","inverseTransform","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","shadingId","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","colorStop","stop","getAttributeNS","clipId","clipPath","clipElement","cloneNode","setStrokeAlpha","setFillAlpha","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","_network_utils","http","https","fileUriRegex","parseUrl","sourceUrl","parsedUrl","parse","host","isHttp","isFsUrl","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_storedError","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","BaseRangeReader","createRequestOptions","headers","auth","hostname","method","handleResponse","statusCode","_setReadableStream","getResponseHeader","allowRangeRequests","suggestedLength","validateRangeRequestCapabilities","extractFilenameFromHeader","_request","_httpHeaders","Range","lstat","stat","createReadStream","createResponseStatusError","validateResponseStatus","_content_disposition","returnValues","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","encoding","decoder","TextDecoder","fatal","decode","err","contentDispositionStr","match","iter","quot","part","parts","quotindex","extvalue","encodingend","langvalue","charset","hex","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getArrayBuffer","xhr","array","NetworkManager","getXhr","currXhrId","pendingRequests","listeners","xhrId","pendingRequest","setRequestHeader","expectedStatus","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","ok_response_on_range_request","rangeHeader","_source","_manager","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","_onRangeRequestReaderClosed","manager","_onHeadersReceived","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","getRequestXhr","abortRequest","lengthComputable","isPendingRequest","_requestId","requestRange","_close","createFetchOptions","abortController","signal","credentials","redirect","createHeaders","Headers","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","pdfjs","PdfjsWorker"],"mappings":"0KAAAA,EAAOC,QAAU,WACf,OAAO,IAAIC,OAAO,IAA0B,gC,uFCD9C,0BAsBA,SAA2CC,EAAMC,GAE/CJ,OAAOC,QAAUG,KAFnB,CASGC,GAAM,WACT,OAAgB,SAAUC,GAEhB,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUR,QAGnC,IAAID,EAASO,EAAiBE,GAAY,CACzCC,EAAGD,EACHE,GAAG,EACHV,QAAS,IAUV,OANAK,EAAQG,GAAUG,KAAKZ,EAAOC,QAASD,EAAQA,EAAOC,QAASO,GAG/DR,EAAOW,GAAI,EAGJX,EAAOC,QA0Df,OArDAO,EAAoBK,EAAIP,EAGxBE,EAAoBM,EAAIP,EAGxBC,EAAoBO,EAAI,SAASd,EAASe,EAAMC,GAC3CT,EAAoBU,EAAEjB,EAASe,IAClCG,OAAOC,eAAenB,EAASe,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhET,EAAoBe,EAAI,SAAStB,GACX,qBAAXuB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAenB,EAASuB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAenB,EAAS,aAAc,CAAEyB,OAAO,KAQvDlB,EAAoBmB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQlB,EAAoBkB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAvB,EAAoBe,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOlB,EAAoBO,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRtB,EAAoB0B,EAAI,SAASlC,GAChC,IAAIiB,EAASjB,GAAUA,EAAO6B,WAC7B,WAAwB,OAAO7B,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAQ,EAAoBO,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRT,EAAoBU,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG5B,EAAoB+B,EAAI,GAIjB/B,EAAoBA,EAAoBgC,EAAI,GAnF7C,CAsFN,CAEJ,SAAUxC,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETP,OAAOC,eAAenB,EAAS,oBAAqB,CAClDoB,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeC,qBAG1BvB,OAAOC,eAAenB,EAAS,qBAAsB,CACnDoB,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeE,sBAG1BxB,OAAOC,eAAenB,EAAS,aAAc,CAC3CoB,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeG,cAG1BzB,OAAOC,eAAenB,EAAS,aAAc,CAC3CoB,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeI,cAG1B1B,OAAOC,eAAenB,EAAS,gBAAiB,CAC9CoB,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeK,iBAG1B3B,OAAOC,eAAenB,EAAS,8BAA+B,CAC5DoB,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeM,+BAG1B5B,OAAOC,eAAenB,EAAS,QAAS,CACtCoB,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKC,SAGhB9B,OAAOC,eAAenB,EAAS,cAAe,CAC5CoB,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKE,eAGhB/B,OAAOC,eAAenB,EAAS,eAAgB,CAC7CoB,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKG,gBAGhBhC,OAAOC,eAAenB,EAAS,wBAAyB,CACtDoB,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKI,yBAGhBjC,OAAOC,eAAenB,EAAS,YAAa,CAC1CoB,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKK,aAGhBlC,OAAOC,eAAenB,EAAS,UAAW,CACxCoB,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKM,WAGhBnC,OAAOC,eAAenB,EAAS,sBAAuB,CACpDoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMC,uBAGjBrC,OAAOC,eAAenB,EAAS,kBAAmB,CAChDoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAME,mBAGjBtC,OAAOC,eAAenB,EAAS,0BAA2B,CACxDoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMG,2BAGjBvC,OAAOC,eAAenB,EAAS,yBAA0B,CACvDoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMI,0BAGjBxC,OAAOC,eAAenB,EAAS,sBAAuB,CACpDoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMK,uBAGjBzC,OAAOC,eAAenB,EAAS,sBAAuB,CACpDoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMM,uBAGjB1C,OAAOC,eAAenB,EAAS,MAAO,CACpCoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMO,OAGjB3C,OAAOC,eAAenB,EAAS,oBAAqB,CAClDoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMQ,qBAGjB5C,OAAOC,eAAenB,EAAS,iBAAkB,CAC/CoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMS,kBAGjB7C,OAAOC,eAAenB,EAAS,uBAAwB,CACrDoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMU,wBAGjB9C,OAAOC,eAAenB,EAAS,SAAU,CACvCoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMW,UAGjB/C,OAAOC,eAAenB,EAAS,8BAA+B,CAC5DoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMY,+BAGjBhD,OAAOC,eAAenB,EAAS,uBAAwB,CACrDoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMa,wBAGjBjD,OAAOC,eAAenB,EAAS,OAAQ,CACrCoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMc,QAGjBlD,OAAOC,eAAenB,EAAS,iBAAkB,CAC/CoB,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMe,kBAGjBnD,OAAOC,eAAenB,EAAS,kBAAmB,CAChDoB,YAAY,EACZC,IAAK,WACH,OAAOiD,EAAkBC,mBAG7BrD,OAAOC,eAAenB,EAAS,yBAA0B,CACvDoB,YAAY,EACZC,IAAK,WACH,OAAOmD,EAAmBC,0BAG9BvD,OAAOC,eAAenB,EAAS,sBAAuB,CACpDoB,YAAY,EACZC,IAAK,WACH,OAAOqD,EAAgBC,uBAG3BzD,OAAOC,eAAenB,EAAS,kBAAmB,CAChDoB,YAAY,EACZC,IAAK,WACH,OAAOuD,EAAYC,mBAGvB3D,OAAOC,eAAenB,EAAS,cAAe,CAC5CoB,YAAY,EACZC,IAAK,WACH,OAAOyD,EAAKC,eAIhB,IAAIvC,EAAiBjC,EAAoB,GAErCwC,EAAOxC,EAAoB,GAE3B+C,EAAQ/C,EAAoB,GAE5B+D,EAAoB/D,EAAoB,IAExCiE,EAAqBjE,EAAoB,GAEzCmE,EAAkBnE,EAAoB,IAEtCqE,EAAcrE,EAAoB,IAElCuE,EAAOvE,EAAoB,IAI/B,CACE,MAAM,SACJyE,GACEzE,EAAoB,GAExB,GAAIyE,EAAU,CACZ,MAAMC,EAAgB1E,EAAoB,IAAI0E,eAE9C,EAAIlC,EAAKmC,4BAA4BC,GAC5B,IAAIF,EAAcE,QAEtB,CACL,MAAMC,EAAmB7E,EAAoB,IAAI6E,iBAEjD,IAAIC,GAEA,EAAI7C,EAAe8C,sBACrBD,EAAiB9E,EAAoB,IAAI8E,iBAG3C,EAAItC,EAAKmC,4BAA4BC,GAC/BE,IAAkB,EAAI7C,EAAe+C,iBAAiBJ,EAAOK,KACxD,IAAIH,EAAeF,GAGrB,IAAIC,EAAiBD,OAO5B,SAAUpF,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQyC,kBAAoBA,EAC5BzC,EAAQ0C,mBAAqBA,EAC7B1C,EAAQsF,iBAAmBA,EAC3BtF,EAAQuF,gBAAkBA,EAC1BvF,EAAQ4C,WAAaA,EACrB5C,EAAQyF,WAAaA,EACrBzF,EAAQ6C,cAAgB7C,EAAQ0F,UAAY1F,EAAQ2F,cAAgB3F,EAAQ4F,qBAAuB5F,EAAQ6F,sBAAwB7F,EAAQ8F,iBAAmB9F,EAAQ+F,kBAAoB/F,EAAQgG,iBAAmBhG,EAAQ2C,WAAa3C,EAAQ8C,4BAA8B9C,EAAQiG,kBAAe,EAEvS,IAAI3C,EAAQ/C,EAAoB,GAEhC,MAAMyF,EAAmB,+BACzBhG,EAAQgG,iBAAmBA,EAC3B,MAAME,EAAS,6BAEf,MAAMH,EACJ,cACM3F,KAAK+F,cAAgBJ,IACvB,EAAIzC,EAAM8C,aAAa,wCAI3B,OAAOC,EAAOC,IACZ,EAAIhD,EAAM8C,aAAa,oCAGzB,MAAMG,EAAkBF,EAAOC,GAC7B,IAAKC,EAAiBC,OACpB,MAAM,IAAIC,MAAM,2BAGlB,GAAIJ,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAIG,MAAM,uBAGlBF,EAAiBC,OAAOH,MAAQA,EAChCE,EAAiBC,OAAOF,OAASA,EAGnC,QAAQC,GACN,IAAKA,EAAiBC,OACpB,MAAM,IAAIC,MAAM,2BAGlBF,EAAiBC,OAAOH,MAAQ,EAChCE,EAAiBC,OAAOF,OAAS,EACjCC,EAAiBC,OAAS,KAC1BD,EAAiBG,QAAU,MAK/B1G,EAAQ+F,kBAAoBA,EAE5B,MAAMD,UAAyBC,EAC7B,aAAY,cACVY,EAAgBC,WAAWC,UACzB,IACFC,QACA1G,KAAK2G,UAAYJ,EAGnB,OAAON,EAAOC,GACZ,GAAID,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAIG,MAAM,uBAGlB,MAAMD,EAASpG,KAAK2G,UAAUC,cAAc,UAEtCN,EAAUF,EAAOS,WAAW,MAGlC,OAFAT,EAAOH,MAAQA,EACfG,EAAOF,OAASA,EACT,CACLE,SACAE,YAMN1G,EAAQ8F,iBAAmBA,EAE3B,MAAMD,EACJ,aAAY,QACVqB,EAAU,KAAI,aACdC,GAAe,IAEX/G,KAAK+F,cAAgBN,IACvB,EAAIvC,EAAM8C,aAAa,4CAGzBhG,KAAK8G,QAAUA,EACf9G,KAAK+G,aAAeA,EAGtB,aAAY,KACVpG,IAEA,IAAKX,KAAK8G,QACR,MAAM,IAAIT,MAAM,2HAGlB,IAAK1F,EACH,MAAM,IAAI0F,MAAM,gCAGlB,MAAMjB,EAAMpF,KAAK8G,QAAUnG,GAAQX,KAAK+G,aAAe,SAAW,IAC5DC,EAAkBhH,KAAK+G,aAAe7D,EAAMC,oBAAoB8D,OAAS/D,EAAMC,oBAAoB+D,KACzG,OAAOlH,KAAKmH,WAAW/B,EAAK4B,GAAiBI,MAAMC,IACjD,MAAM,IAAIhB,MAAM,kBAAkBrG,KAAK+G,aAAe,UAAY,cAAc3B,OAIpF,WAAWA,EAAK4B,IACd,EAAI9D,EAAM8C,aAAa,yCAK3BpG,EAAQ6F,sBAAwBA,EAEhC,MAAMD,UAA6BC,EACjC,WAAWL,EAAK4B,GACd,OAAI9B,KAAsBC,EAAgBC,EAAKqB,SAASa,SAC/CC,MAAMnC,GAAKoC,KAAKC,UACrB,IAAKC,EAASC,GACZ,MAAM,IAAItB,MAAMqB,EAASE,YAG3B,IAAIC,EAQJ,OALEA,EADE7H,KAAK+G,aACI,IAAIe,iBAAiBJ,EAASK,gBAE9B,EAAI7E,EAAM8E,qBAAqBN,EAASO,QAG9C,CACLJ,WACAb,qBAKC,IAAIkB,QAAQ,CAACC,EAASC,KAC3B,MAAMC,EAAU,IAAIC,eACpBD,EAAQE,KAAK,MAAOnD,GAAK,GAErBpF,KAAK+G,eACPsB,EAAQG,aAAe,eAGzBH,EAAQI,mBAAqB,KAC3B,GAAIJ,EAAQK,aAAeJ,eAAeK,KAA1C,CAIA,GAAuB,MAAnBN,EAAQO,QAAqC,IAAnBP,EAAQO,OAAc,CAClD,IAAIf,EAQJ,GANI7H,KAAK+G,cAAgBsB,EAAQX,SAC/BG,EAAW,IAAIC,WAAWO,EAAQX,WACxB1H,KAAK+G,cAAgBsB,EAAQQ,eACvChB,GAAW,EAAI3E,EAAM8E,eAAeK,EAAQQ,eAG1ChB,EAKF,YAJAM,EAAQ,CACNN,WACAb,oBAMNoB,EAAO,IAAI/B,MAAMgC,EAAQT,eAG3BS,EAAQS,KAAK,SAMnBlJ,EAAQ4F,qBAAuBA,EAE/B,MAAMD,EACJ,OAAOU,EAAOC,IACZ,EAAIhD,EAAM6F,QAAQ9C,EAAQ,GAAKC,EAAS,EAAG,0BAC3C,MAAM8C,EAAMvC,SAASwC,gBAAgBnD,EAAQ,WAM7C,OALAkD,EAAIE,aAAa,UAAW,OAC5BF,EAAIE,aAAa,QAASjD,EAAQ,MAClC+C,EAAIE,aAAa,SAAUhD,EAAS,MACpC8C,EAAIE,aAAa,sBAAuB,QACxCF,EAAIE,aAAa,UAAW,OAASjD,EAAQ,IAAMC,GAC5C8C,EAGT,cAAcG,GAEZ,OADA,EAAIjG,EAAM6F,QAAwB,kBAATI,EAAmB,4BACrC1C,SAASwC,gBAAgBnD,EAAQqD,IAK5CvJ,EAAQ2F,cAAgBA,EAExB,MAAMM,EACJ,aAAY,QACVuD,EAAO,MACPC,EAAK,SACLC,EAAQ,QACRC,EAAU,EAAC,QACXC,EAAU,EAAC,SACXC,GAAW,IAEXzJ,KAAKoJ,QAAUA,EACfpJ,KAAKqJ,MAAQA,EACbrJ,KAAKsJ,SAAWA,EAChBtJ,KAAKuJ,QAAUA,EACfvJ,KAAKwJ,QAAUA,EACf,MAAME,GAAWN,EAAQ,GAAKA,EAAQ,IAAM,EACtCO,GAAWP,EAAQ,GAAKA,EAAQ,IAAM,EAC5C,IAAIQ,EAASC,EAASC,EAASC,EA0C3BC,EAAeC,EACfhE,EAAOC,EAvCX,OAHAoD,GAAsB,IACtBA,EAAWA,EAAW,EAAIA,EAAW,IAAMA,EAEnCA,GACN,KAAK,IACHM,GAAW,EACXC,EAAU,EACVC,EAAU,EACVC,EAAU,EACV,MAEF,KAAK,GACHH,EAAU,EACVC,EAAU,EACVC,EAAU,EACVC,EAAU,EACV,MAEF,KAAK,IACHH,EAAU,EACVC,GAAW,EACXC,GAAW,EACXC,EAAU,EACV,MAEF,KAAK,EACHH,EAAU,EACVC,EAAU,EACVC,EAAU,EACVC,GAAW,EACX,MAEF,QACE,MAAM,IAAI1D,MAAM,qEAGhBoD,IACFK,GAAWA,EACXC,GAAWA,GAMG,IAAZH,GACFI,EAAgBE,KAAKC,IAAIR,EAAUP,EAAQ,IAAMC,EAAQE,EACzDU,EAAgBC,KAAKC,IAAIT,EAAUN,EAAQ,IAAMC,EAAQG,EACzDvD,EAAQiE,KAAKC,IAAIf,EAAQ,GAAKA,EAAQ,IAAMC,EAC5CnD,EAASgE,KAAKC,IAAIf,EAAQ,GAAKA,EAAQ,IAAMC,IAE7CW,EAAgBE,KAAKC,IAAIT,EAAUN,EAAQ,IAAMC,EAAQE,EACzDU,EAAgBC,KAAKC,IAAIR,EAAUP,EAAQ,IAAMC,EAAQG,EACzDvD,EAAQiE,KAAKC,IAAIf,EAAQ,GAAKA,EAAQ,IAAMC,EAC5CnD,EAASgE,KAAKC,IAAIf,EAAQ,GAAKA,EAAQ,IAAMC,GAG/CrJ,KAAKoK,UAAY,CAACR,EAAUP,EAAOQ,EAAUR,EAAOS,EAAUT,EAAOU,EAAUV,EAAOW,EAAgBJ,EAAUP,EAAQK,EAAUI,EAAUT,EAAQM,EAASM,EAAgBJ,EAAUR,EAAQK,EAAUK,EAAUV,EAAQM,GAC3N3J,KAAKiG,MAAQA,EACbjG,KAAKkG,OAASA,EAGhB,OAAM,MACJmD,EAAQrJ,KAAKqJ,MAAK,SAClBC,EAAWtJ,KAAKsJ,SAAQ,QACxBC,EAAUvJ,KAAKuJ,QAAO,QACtBC,EAAUxJ,KAAKwJ,QAAO,SACtBC,GAAW,GACT,IACF,OAAO,IAAI5D,EAAa,CACtBuD,QAASpJ,KAAKoJ,QAAQiB,QACtBhB,QACAC,WACAC,UACAC,UACAC,aAIJ,uBAAuBa,EAAGC,GACxB,OAAOrH,EAAMc,KAAKwG,eAAe,CAACF,EAAGC,GAAIvK,KAAKoK,WAGhD,2BAA2BK,GACzB,MAAMC,EAAUxH,EAAMc,KAAKwG,eAAe,CAACC,EAAK,GAAIA,EAAK,IAAKzK,KAAKoK,WAE7DO,EAAczH,EAAMc,KAAKwG,eAAe,CAACC,EAAK,GAAIA,EAAK,IAAKzK,KAAKoK,WAEvE,MAAO,CAACM,EAAQ,GAAIA,EAAQ,GAAIC,EAAY,GAAIA,EAAY,IAG9D,kBAAkBL,EAAGC,GACnB,OAAOrH,EAAMc,KAAK4G,sBAAsB,CAACN,EAAGC,GAAIvK,KAAKoK,YAKzDxK,EAAQiG,aAAeA,EAEvB,MAAMnD,UAAoCQ,EAAM2H,cAC9C,YAAYC,EAAK3B,GACfzC,MAAMoE,GACN9K,KAAKmJ,KAAOA,GAKhBvJ,EAAQ8C,4BAA8BA,EACtC,MAAMH,EAAa,CACjB2E,KAAM,EACN6D,KAAM,EACNC,MAAO,EACPC,OAAQ,EACRC,IAAK,GAIP,SAAS7I,EAAkB8I,GAAM,IAC/B/F,EAAG,OACHgG,EAAM,IACNC,EAAG,QACHC,GAAU,GACR,KACF,EAAIpI,EAAM6F,QAAQ3D,GAAsB,kBAARA,EAAkB,6DAClD,MAAMmG,GAAiB,EAAIrI,EAAMU,sBAAsBwB,GAEnDkG,EACFH,EAAKK,KAAOL,EAAKM,MAAQF,GAEzBJ,EAAKK,KAAO,GACZL,EAAKM,MAAQ,aAAaF,EAE1BJ,EAAKO,QAAU,KACN,GAIX,IAAIC,EAAY,GAEhB,OAAQP,GACN,KAAK7I,EAAW2E,KACd,MAEF,KAAK3E,EAAWwI,KACdY,EAAY,QACZ,MAEF,KAAKpJ,EAAWyI,MACdW,EAAY,SACZ,MAEF,KAAKpJ,EAAW0I,OACdU,EAAY,UACZ,MAEF,KAAKpJ,EAAW2I,IACdS,EAAY,OACZ,MAGJR,EAAKC,OAASO,EACdR,EAAKE,IAAqB,kBAARA,EAAmBA,EAAMzF,EAG7C,SAAStD,EAAmB8C,GAC1B,MAAMwG,EAASxG,EAAIyG,QAAQ,KACrBC,EAAQ1G,EAAIyG,QAAQ,KACpBE,EAAM7B,KAAK8B,IAAIJ,EAAS,EAAIA,EAASxG,EAAI6G,OAAQH,EAAQ,EAAIA,EAAQ1G,EAAI6G,QAC/E,OAAO7G,EAAI8G,UAAU9G,EAAI+G,YAAY,IAAKJ,GAAO,EAAGA,GArDtDnM,EAAQ2C,WAAaA,EAwDrB,MAAM+C,EACJ,cACEtF,KAAKoM,QAAUtL,OAAOY,OAAO,MAC7B1B,KAAKqM,MAAQ,GAGf,KAAK1L,GACCA,KAAQX,KAAKoM,UACf,EAAIlJ,EAAMoJ,MAAM,gCAAgC3L,GAGlDX,KAAKoM,QAAQzL,GAAQ4L,KAAKC,MAG5B,QAAQ7L,GACAA,KAAQX,KAAKoM,UACjB,EAAIlJ,EAAMoJ,MAAM,kCAAkC3L,GAGpDX,KAAKqM,MAAMI,KAAK,CACd9L,OACA+L,MAAO1M,KAAKoM,QAAQzL,GACpBoL,IAAKQ,KAAKC,eAELxM,KAAKoM,QAAQzL,GAGtB,WACE,MAAMgM,EAAS,GACf,IAAIC,EAAU,EAEd,IAAK,MAAMC,KAAQ7M,KAAKqM,MAAO,CAC7B,MAAM1L,EAAOkM,EAAKlM,KAEdA,EAAKsL,OAASW,IAChBA,EAAUjM,EAAKsL,QAInB,IAAK,MAAMY,KAAQ7M,KAAKqM,MAAO,CAC7B,MAAMS,EAAWD,EAAKd,IAAMc,EAAKH,MACjCC,EAAOF,KAAK,GAAGI,EAAKlM,KAAKoM,OAAOH,MAAYE,SAG9C,OAAOH,EAAOK,KAAK,KAOvB,SAAS9H,IACP,MAAwB,qBAAVqC,OAA6C,qBAAb0F,UAA4B,SAAUA,SAASjL,WAAuC,qBAAnBkL,eAGnH,SAAS/H,EAAgBC,EAAK0B,GAC5B,IACE,MAAM,SACJqG,GACErG,EAAU,IAAIsG,IAAIhI,EAAK0B,GAAW,IAAIsG,IAAIhI,GAC9C,MAAoB,UAAb+H,GAAqC,WAAbA,EAC/B,MAAOE,GACP,OAAO,GAIX,SAAS7K,EAAW8K,GAClB,OAAO,IAAIpF,QAAQ,CAACC,EAASC,KAC3B,MAAMmF,EAAS9G,SAASG,cAAc,UACtC2G,EAAOD,IAAMA,EACbC,EAAOC,OAASrF,EAEhBoF,EAAOE,QAAU,WACfrF,EAAO,IAAI/B,MAAM,0BAA0BkH,EAAOD,QAGnD7G,SAASiH,MAAQjH,SAASkH,iBAAiBC,YAAYL,KAI5D,SAASlI,EAAWwI,GAClBC,QAAQC,IAAI,yBAA2BF,GAGzC,IAAIG,EAnCJpO,EAAQ0F,UAAYA,EAqCpB,MAAM7C,EACJ,oBAAoBwL,GAClB,IAAKA,KAAU,EAAI/K,EAAMgL,UAAUD,GACjC,OAAO,KAGJD,IACHA,EAAqB,IAAIG,OAAO,6FAGlC,MAAMC,EAAUJ,EAAmBK,KAAKJ,GAExC,IAAKG,EACH,OAAO,KAGT,MAAME,EAAOC,SAASH,EAAQ,GAAI,IAClC,IAAII,EAAQD,SAASH,EAAQ,GAAI,IACjCI,EAAQA,GAAS,GAAKA,GAAS,GAAKA,EAAQ,EAAI,EAChD,IAAIC,EAAMF,SAASH,EAAQ,GAAI,IAC/BK,EAAMA,GAAO,GAAKA,GAAO,GAAKA,EAAM,EACpC,IAAIC,EAAOH,SAASH,EAAQ,GAAI,IAChCM,EAAOA,GAAQ,GAAKA,GAAQ,GAAKA,EAAO,EACxC,IAAIC,EAASJ,SAASH,EAAQ,GAAI,IAClCO,EAASA,GAAU,GAAKA,GAAU,GAAKA,EAAS,EAChD,IAAIC,EAASL,SAASH,EAAQ,GAAI,IAClCQ,EAASA,GAAU,GAAKA,GAAU,GAAKA,EAAS,EAChD,MAAMC,EAAwBT,EAAQ,IAAM,IAC5C,IAAIU,EAAaP,SAASH,EAAQ,GAAI,IACtCU,EAAaA,GAAc,GAAKA,GAAc,GAAKA,EAAa,EAChE,IAAIC,EAAeR,SAASH,EAAQ,GAAI,KAAO,EAW/C,OAVAW,EAAeA,GAAgB,GAAKA,GAAgB,GAAKA,EAAe,EAE1C,MAA1BF,GACFH,GAAQI,EACRH,GAAUI,GACyB,MAA1BF,IACTH,GAAQI,EACRH,GAAUI,GAGL,IAAIxC,KAAKA,KAAKyC,IAAIV,EAAME,EAAOC,EAAKC,EAAMC,EAAQC,KAK7DhP,EAAQ6C,cAAgBA,GAIlB,SAAU9C,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQqP,gBAAkBA,EAC1BrP,EAAQsP,cAAgBA,EACxBtP,EAAQmJ,OAASA,EACjBnJ,EAAQuP,cAAgBA,EACxBvP,EAAQyD,wBAA0BA,GAClCzD,EAAQwP,aAAeA,GACvBxP,EAAQyP,oBAAsBA,GAC9BzP,EAAQ0P,kBAAoBA,EAC5B1P,EAAQ2P,KAAOA,EACf3P,EAAQ4P,cAAgBA,GACxB5P,EAAQ6P,aAAeA,GACvB7P,EAAQ8P,OAASA,GACjB9P,EAAQ+P,MAAQA,GAChB/P,EAAQsO,SAAWA,GACnBtO,EAAQgQ,aAAeA,EACvBhQ,EAAQ0D,uBAAyBA,EACjC1D,EAAQgE,qBAAuBA,EAC/BhE,EAAQiQ,kBAAoBA,EAC5BjQ,EAAQiE,OAASA,EACjBjE,EAAQkQ,SAAWA,EACnBlQ,EAAQoI,cAAgBA,EACxBpI,EAAQmQ,kBAAoBA,GAC5BnQ,EAAQoQ,mBAAqBA,GAC7BpQ,EAAQqQ,mBAAqBA,GAC7BrQ,EAAQ0M,KAAOA,EACf1M,EAAQoG,YAAcA,EACtBpG,EAAQsQ,sBAAwBtQ,EAAQuQ,qBAAuBvQ,EAAQwD,gBAAkBxD,EAAQwQ,YAAcxQ,EAAQoE,KAAOpE,EAAQyQ,sBAAwBzQ,EAAQkE,4BAA8BlE,EAAQ0Q,kBAAoB1Q,EAAQ2Q,WAAa3Q,EAAQ+D,eAAiB/D,EAAQ8D,kBAAoB9D,EAAQ4Q,kBAAoB5Q,EAAQ4D,oBAAsB5D,EAAQ2D,oBAAsB3D,EAAQ6Q,eAAiB7Q,EAAQuD,oBAAsBvD,EAAQ8Q,UAAY9Q,EAAQ+Q,SAAW/Q,EAAQgR,eAAiBhR,EAAQiR,yBAA2BjR,EAAQkR,sBAAwBlR,EAAQmR,oBAAsBnR,EAAQoR,sBAAwBpR,EAAQqR,eAAiBrR,EAAQsR,oBAAsBtR,EAAQuR,0BAA4BvR,EAAQmE,qBAAuBnE,EAAQqE,eAAiBrE,EAAQ6D,IAAM7D,EAAQwR,gBAAkBxR,EAAQyR,qBAAuBzR,EAAQiL,mBAAgB,EAE52B1K,EAAoB,GAEpB,MAAMiR,EAAkB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACxCxR,EAAQwR,gBAAkBA,EAC1B,MAAMC,EAAuB,CAAC,KAAO,EAAG,EAAG,KAAO,EAAG,GACrDzR,EAAQyR,qBAAuBA,EAC/B,MAAM1N,EAAiB,CACrB2N,MAAO,EACPC,gBAAiB,EACjBC,KAAM,GACNC,mBAAoB,GACpBC,uBAAwB,IACxBC,uBAAwB,IACxBC,SAAU,KACVC,mBAAoB,MAEtBjS,EAAQ+D,eAAiBA,EACzB,MAAM2M,EAAoB,CACxBwB,KAAM,EACNC,OAAQ,EACRC,YAAa,EACbC,UAAW,EACXC,iBAAkB,EAClBC,mBAAoB,EACpBC,wBAAyB,EACzBC,YAAa,EACbC,iBAAkB,EAClBC,iBAAkB,GAEpB3S,EAAQ0Q,kBAAoBA,EAC5B,MAAMI,EAAY,CAChB8B,eAAgB,EAChBC,UAAW,EACXC,WAAY,GAEd9S,EAAQ8Q,UAAYA,EACpB,MAAME,EAAiB,CACrB+B,KAAM,EACNC,KAAM,EACNC,SAAU,EACVC,KAAM,EACNC,OAAQ,EACRC,OAAQ,EACRC,QAAS,EACTC,SAAU,EACVC,UAAW,EACXC,UAAW,GACXC,SAAU,GACVC,UAAW,GACXC,MAAO,GACPC,MAAO,GACPC,IAAK,GACLC,MAAO,GACPC,eAAgB,GAChBC,MAAO,GACPC,MAAO,GACPC,OAAQ,GACRC,OAAQ,GACRC,YAAa,GACbC,QAAS,GACTC,UAAW,GACXC,OAAQ,GACRC,OAAQ,IAEVxU,EAAQgR,eAAiBA,EACzB,MAAMC,EAA2B,CAC/BwD,OAAQ,SACRC,OAAQ,UAEV1U,EAAQiR,yBAA2BA,EACnC,MAAMG,EAAwB,CAC5BqD,OAAQ,SACRE,SAAU,YAEZ3U,EAAQoR,sBAAwBA,EAChC,MAAMF,EAAwB,CAC5B0D,SAAU,WACVC,SAAU,WACVC,UAAW,YACXC,UAAW,YACXzN,KAAM,QAERtH,EAAQkR,sBAAwBA,EAChC,MAAMC,EAAsB,CAC1B6D,MAAO,QACPC,MAAO,KAETjV,EAAQmR,oBAAsBA,EAC9B,MAAME,EAAiB,CACrBgB,UAAW,EACX6C,OAAQ,EACRxD,MAAO,EACPyD,OAAQ,EACRC,SAAU,GACVC,OAAQ,GACRC,SAAU,GACVC,OAAQ,IACRC,aAAc,IACdC,eAAgB,KAElBzV,EAAQqR,eAAiBA,EACzB,MAAMC,EAAsB,CAC1BgE,SAAU,EACVI,SAAU,EACVC,SAAU,EACVC,UAAW,KACXC,SAAU,KACVC,cAAe,MACfC,MAAO,MACPC,WAAY,MACZC,MAAO,OACPC,KAAM,OACNC,KAAM,OACNC,WAAY,QACZC,YAAa,QACbC,gBAAiB,QACjBC,YAAa,QACbC,KAAM,SACNC,SAAU,SACVC,eAAgB,SAChBC,kBAAmB,UAErB3W,EAAQsR,oBAAsBA,EAC9B,MAAMC,EAA4B,CAChCqF,MAAO,EACPC,OAAQ,EACRC,QAAS,EACTC,MAAO,EACPvD,UAAW,GAEbxT,EAAQuR,0BAA4BA,EACpC,MAAMZ,EAAa,CACjBqG,QAAS,UACTC,MAAO,QACPC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,OACNC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OAEPzX,EAAQ2Q,WAAaA,EACrB,MAAMI,EAAW,CACfiG,QAAS,UACTU,MAAO,QACPC,OAAQ,SACRC,aAAc,eACdC,cAAe,gBACfC,SAAU,WACVC,aAAc,eACdC,MAAO,QACPC,SAAU,WACVC,MAAO,QACPC,QAAS,WAEXnY,EAAQ+Q,SAAWA,EACnB,MAAM1M,EAAiB,CACrB+T,OAAQ,EACRC,SAAU,EACVC,MAAO,GAETtY,EAAQqE,eAAiBA,EACzB,MAAMd,EAAsB,CAC1B+D,KAAM,EACND,OAAQ,EACRkR,OAAQ,GAEVvY,EAAQuD,oBAAsBA,EAC9B,MAAMM,EAAM,CACV2U,WAAY,EACZC,aAAc,EACdC,WAAY,EACZC,YAAa,EACbC,cAAe,EACfC,QAAS,EACTC,mBAAoB,EACpBC,YAAa,EACbC,UAAW,EACXC,KAAM,GACNC,QAAS,GACT1O,UAAW,GACX2O,OAAQ,GACRC,OAAQ,GACRC,QAAS,GACTC,SAAU,GACVC,SAAU,GACVC,UAAW,GACXC,UAAW,GACXC,OAAQ,GACRC,YAAa,GACbC,KAAM,GACNC,OAAQ,GACRC,WAAY,GACZC,aAAc,GACdC,gBAAiB,GACjBC,kBAAmB,GACnBC,QAAS,GACTC,KAAM,GACNC,OAAQ,GACRC,UAAW,GACXC,QAAS,GACTC,eAAgB,GAChBC,eAAgB,GAChBC,UAAW,GACXC,WAAY,GACZC,QAAS,GACTC,qBAAsB,GACtBC,YAAa,GACbC,SAAU,GACVC,mBAAoB,GACpBC,cAAe,GACfC,SAAU,GACVC,SAAU,GACVC,eAAgB,GAChBC,iBAAkB,GAClBC,2BAA4B,GAC5BC,aAAc,GACdC,sBAAuB,GACvBC,oBAAqB,GACrBC,kBAAmB,GACnBC,eAAgB,GAChBC,gBAAiB,GACjBC,aAAc,GACdC,cAAe,GACfC,cAAe,GACfC,YAAa,GACbC,kBAAmB,GACnBC,gBAAiB,GACjBC,mBAAoB,GACpBC,iBAAkB,GAClBC,YAAa,GACbC,iBAAkB,GAClBC,eAAgB,GAChBC,eAAgB,GAChBC,aAAc,GACdC,UAAW,GACXC,eAAgB,GAChBC,mBAAoB,GACpBC,wBAAyB,GACzBC,iBAAkB,GAClBC,YAAa,GACbC,UAAW,GACXC,sBAAuB,GACvBC,oBAAqB,GACrBC,WAAY,GACZC,SAAU,GACVC,iBAAkB,GAClBC,eAAgB,GAChBC,gBAAiB,GACjBC,cAAe,GACfC,iBAAkB,GAClBC,sBAAuB,GACvBC,2BAA4B,GAC5BC,kBAAmB,GACnBC,wBAAyB,GACzBC,6BAA8B,GAC9BC,wBAAyB,GACzBC,4BAA6B,GAC7BC,yBAA0B,GAC1BC,cAAe,IAEjBje,EAAQ6D,IAAMA,EACd,MAAMM,EAAuB,CAC3B+Z,QAAS,UACTC,MAAO,QACPC,WAAY,aACZC,MAAO,QACPC,eAAgB,iBAChBC,KAAM,OACNC,mBAAoB,qBACpBC,eAAgB,iBAChBC,aAAc,eACdC,mBAAoB,qBACpBC,eAAgB,iBAChBC,iBAAkB,mBAClBC,mBAAoB,qBACpBC,gBAAiB,kBACjBC,kBAAmB,oBACnBC,mBAAoB,qBACpBC,oBAAqB,sBACrBC,iBAAkB,mBAClBC,mBAAoB,sBAEtBpf,EAAQmE,qBAAuBA,EAC/B,MAAML,EAAoB,CACxBub,cAAe,EACfC,mBAAoB,GAEtBtf,EAAQ8D,kBAAoBA,EAC5B,IAAIyb,EAAYlb,EAAegU,SAE/B,SAASpI,EAAkBuP,GACrBC,OAAOC,UAAUF,KACnBD,EAAYC,GAIhB,SAAS9P,IACP,OAAO6P,EAGT,SAAS5P,EAAKzE,GACRqU,GAAalb,EAAeiU,OAC9BpK,QAAQC,IAAI,SAASjD,GAIzB,SAASwB,EAAKxB,GACRqU,GAAalb,EAAegU,UAC9BnK,QAAQC,IAAI,YAAYjD,GAI5B,SAAS9E,EAAY8E,GACnB,MAAM,IAAIzE,MAAMyE,GAGlB,SAAS/B,EAAOwW,EAAMzU,GACfyU,GACHvZ,EAAY8E,GAIhB,SAAS8E,EAAa9I,EAAS0Y,GAC7B,IAAIC,EAEJ,IAGE,GAFAA,EAAO,IAAIrS,IAAItG,IAEV2Y,EAAKC,QAA0B,SAAhBD,EAAKC,OACvB,OAAO,EAET,MAAOC,GACP,OAAO,EAGT,MAAMC,EAAQ,IAAIxS,IAAIoS,EAAUC,GAChC,OAAOA,EAAKC,SAAWE,EAAMF,OAG/B,SAASG,EAAiBza,GACxB,IAAKA,EACH,OAAO,EAGT,OAAQA,EAAI+H,UACV,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,OACH,OAAO,EAET,QACE,OAAO,GAIb,SAAS7J,EAAuB8B,EAAK0B,GACnC,IAAK1B,EACH,OAAO,KAGT,IACE,MAAM0a,EAAchZ,EAAU,IAAIsG,IAAIhI,EAAK0B,GAAW,IAAIsG,IAAIhI,GAE9D,GAAIya,EAAiBC,GACnB,OAAOA,EAET,MAAOzS,IAET,OAAO,KAGT,SAASxJ,EAAOkc,EAAKC,EAAM3e,GAOzB,OANAP,OAAOC,eAAegf,EAAKC,EAAM,CAC/B3e,QACAL,YAAY,EACZif,cAAc,EACdC,UAAU,IAEL7e,EAGT,MAAMwJ,EAAgB,WACpB,SAASA,EAAcsV,GACjBngB,KAAK+F,cAAgB8E,GACvB7E,EAAY,oCAGdhG,KAAKmgB,QAAUA,EACfngB,KAAKW,KAAOX,KAAK+F,YAAYpF,KAK/B,OAFAkK,EAAc7I,UAAY,IAAIqE,MAC9BwE,EAAc9E,YAAc8E,EACrBA,EAZa,GAetBjL,EAAQiL,cAAgBA,EAExB,MAAM2F,UAA0B3F,EAC9B,YAAYC,EAAKsV,GACf1Z,MAAMoE,GACN9K,KAAKogB,KAAOA,GAKhBxgB,EAAQ4Q,kBAAoBA,EAE5B,MAAMH,UAA8BxF,EAClC,YAAYC,EAAK+C,GACfnH,MAAMoE,GACN9K,KAAK6N,QAAUA,GAKnBjO,EAAQyQ,sBAAwBA,EAEhC,MAAM9M,UAA4BsH,GAElCjL,EAAQ2D,oBAAsBA,EAE9B,MAAMC,UAA4BqH,GAElCjL,EAAQ4D,oBAAsBA,EAE9B,MAAMM,UAAoC+G,EACxC,YAAYC,EAAKlC,GACflC,MAAMoE,GACN9K,KAAK4I,OAASA,GAKlBhJ,EAAQkE,4BAA8BA,EAEtC,MAAMsM,UAAoBvF,GAE1BjL,EAAQwQ,YAAcA,EAEtB,MAAMK,UAAuB5F,GAE7BjL,EAAQ6Q,eAAiBA,EACzB,MAAM4P,EAAuB,QAE7B,SAASzc,EAAqB0c,GAC5B,MAAmB,kBAARA,GACThU,EAAK,2DACEgU,GAGFA,EAAIC,QAAQF,EAAsB,IAG3C,SAASlR,EAAcqR,GACrBzX,EAAiB,OAAVyX,GAAmC,kBAAVA,QAAuCC,IAAjBD,EAAMvU,OAAsB,sCAClF,MAAMA,EAASuU,EAAMvU,OACfyU,EAAqB,KAE3B,GAAIzU,EAASyU,EACX,OAAOC,OAAOC,aAAaC,MAAM,KAAML,GAGzC,MAAMM,EAAS,GAEf,IAAK,IAAIzgB,EAAI,EAAGA,EAAI4L,EAAQ5L,GAAKqgB,EAAoB,CACnD,MAAMK,EAAW7W,KAAK8B,IAAI3L,EAAIqgB,EAAoBzU,GAC5C+U,EAAQR,EAAMS,SAAS5gB,EAAG0gB,GAChCD,EAAOrU,KAAKkU,OAAOC,aAAaC,MAAM,KAAMG,IAG9C,OAAOF,EAAO9T,KAAK,IAGrB,SAAShF,EAAcsY,GACrBvX,EAAsB,kBAARuX,EAAkB,sCAChC,MAAMrU,EAASqU,EAAIrU,OACbuU,EAAQ,IAAI1Y,WAAWmE,GAE7B,IAAK,IAAI5L,EAAI,EAAGA,EAAI4L,IAAU5L,EAC5BmgB,EAAMngB,GAAyB,IAApBigB,EAAIY,WAAW7gB,GAG5B,OAAOmgB,EAGT,SAASvR,EAAgBkS,GACvB,YAAmBV,IAAfU,EAAIlV,OACCkV,EAAIlV,QAGblD,OAA0B0X,IAAnBU,EAAIC,WAA0B,uCAC9BD,EAAIC,YAGb,SAASlS,EAAciS,GACrB,MAAMlV,EAASkV,EAAIlV,OAEnB,GAAe,IAAXA,GAAgBkV,EAAI,aAAcrZ,WACpC,OAAOqZ,EAAI,GAGb,IAAIE,EAAe,EAEnB,IAAK,IAAIhhB,EAAI,EAAGA,EAAI4L,EAAQ5L,IAC1BghB,GAAgBpS,EAAgBkS,EAAI9gB,IAGtC,IAAIihB,EAAM,EACV,MAAMC,EAAO,IAAIzZ,WAAWuZ,GAE5B,IAAK,IAAIhhB,EAAI,EAAGA,EAAI4L,EAAQ5L,IAAK,CAC/B,IAAImhB,EAAOL,EAAI9gB,GAETmhB,aAAgB1Z,aAElB0Z,EADkB,kBAATA,EACFxZ,EAAcwZ,GAEd,IAAI1Z,WAAW0Z,IAI1B,MAAMC,EAAaD,EAAKJ,WACxBG,EAAKG,IAAIF,EAAMF,GACfA,GAAOG,EAGT,OAAOF,EAGT,SAASzR,EAASzO,GAChB,OAAOsf,OAAOC,aAAavf,GAAS,GAAK,IAAMA,GAAS,GAAK,IAAMA,GAAS,EAAI,IAAc,IAARA,GAGxF,SAASsgB,IACP,MAAMC,EAAU,IAAI9Z,WAAW,GAC/B8Z,EAAQ,GAAK,EACb,MAAMC,EAAS,IAAIC,YAAYF,EAAQG,OAAQ,EAAG,GAClD,OAAqB,IAAdF,EAAO,GAGhB,MAAM1R,EAAuB,CAC3B,YACE,OAAOtM,EAAO7D,KAAM,QAAS2hB,OAMjC,SAASK,IACP,IAEE,OADA,IAAIC,SAAS,KACN,EACP,MAAOtC,GACP,OAAO,GAPX/f,EAAQuQ,qBAAuBA,EAW/B,MAAMD,EAAwB,CAC5B,YACE,OAAOrM,EAAO7D,KAAM,QAASgiB,OAIjCpiB,EAAQsQ,sBAAwBA,EAChC,MAAMgS,EAAS,CAAC,OAAQ,EAAG,IAAK,EAAG,IAAK,EAAG,KAE3C,MAAMle,GACJ,kBAAkB9C,EAAGihB,EAAGC,GAItB,OAHAF,EAAO,GAAKhhB,EACZghB,EAAO,GAAKC,EACZD,EAAO,GAAKE,EACLF,EAAOlV,KAAK,IAGrB,iBAAiBqV,EAAIC,GACnB,MAAO,CAACD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAIA,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,IAGhN,sBAAsBngB,EAAG1B,GACvB,MAAM+hB,EAAKrgB,EAAE,GAAK1B,EAAE,GAAK0B,EAAE,GAAK1B,EAAE,GAAKA,EAAE,GACnCgiB,EAAKtgB,EAAE,GAAK1B,EAAE,GAAK0B,EAAE,GAAK1B,EAAE,GAAKA,EAAE,GACzC,MAAO,CAAC+hB,EAAIC,GAGd,6BAA6BtgB,EAAG1B,GAC9B,MAAME,EAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAC3B+hB,GAAMrgB,EAAE,GAAK1B,EAAE,GAAK0B,EAAE,GAAK1B,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,EAC/D8hB,IAAOtgB,EAAE,GAAK1B,EAAE,GAAK0B,EAAE,GAAK1B,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,EACtE,MAAO,CAAC6hB,EAAIC,GAGd,kCAAkCthB,EAAGV,GACnC,MAAMiiB,EAAKze,GAAKwG,eAAetJ,EAAGV,GAC5BkiB,EAAK1e,GAAKwG,eAAetJ,EAAEmJ,MAAM,EAAG,GAAI7J,GACxCmiB,EAAK3e,GAAKwG,eAAe,CAACtJ,EAAE,GAAIA,EAAE,IAAKV,GACvCoiB,EAAK5e,GAAKwG,eAAe,CAACtJ,EAAE,GAAIA,EAAE,IAAKV,GAC7C,MAAO,CAAC0J,KAAK8B,IAAIyW,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IAAK1Y,KAAK8B,IAAIyW,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IAAK1Y,KAAK2Y,IAAIJ,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IAAK1Y,KAAK2Y,IAAIJ,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,KAG7J,wBAAwBpiB,GACtB,MAAME,EAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GACjC,MAAO,CAACA,EAAE,GAAKE,GAAIF,EAAE,GAAKE,GAAIF,EAAE,GAAKE,EAAGF,EAAE,GAAKE,GAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,GAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,GAGnH,wBAAwBF,EAAGsiB,GACzB,MAAO,CAACtiB,EAAE,GAAKsiB,EAAE,GAAKtiB,EAAE,GAAKsiB,EAAE,GAAKtiB,EAAE,GAAKsiB,EAAE,GAAItiB,EAAE,GAAKsiB,EAAE,GAAKtiB,EAAE,GAAKsiB,EAAE,GAAKtiB,EAAE,GAAKsiB,EAAE,GAAItiB,EAAE,GAAKsiB,EAAE,GAAKtiB,EAAE,GAAKsiB,EAAE,GAAKtiB,EAAE,GAAKsiB,EAAE,IAGjI,qCAAqCtiB,GACnC,MAAMuiB,EAAY,CAACviB,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACjCwiB,EAAIxiB,EAAE,GAAKuiB,EAAU,GAAKviB,EAAE,GAAKuiB,EAAU,GAC3CX,EAAI5hB,EAAE,GAAKuiB,EAAU,GAAKviB,EAAE,GAAKuiB,EAAU,GAC3CtiB,EAAID,EAAE,GAAKuiB,EAAU,GAAKviB,EAAE,GAAKuiB,EAAU,GAC3CriB,EAAIF,EAAE,GAAKuiB,EAAU,GAAKviB,EAAE,GAAKuiB,EAAU,GAC3CE,GAASD,EAAItiB,GAAK,EAClBkO,EAAS1E,KAAKgZ,MAAMF,EAAItiB,IAAMsiB,EAAItiB,GAAK,GAAKsiB,EAAItiB,EAAID,EAAI2hB,IAAM,EAC9De,EAAKF,EAAQrU,GAAU,EACvBwU,EAAKH,EAAQrU,GAAU,EAC7B,MAAO,CAAC1E,KAAKgZ,KAAKC,GAAKjZ,KAAKgZ,KAAKE,IAGnC,qBAAqB3Y,GACnB,MAAMvJ,EAAIuJ,EAAKJ,MAAM,GAYrB,OAVII,EAAK,GAAKA,EAAK,KACjBvJ,EAAE,GAAKuJ,EAAK,GACZvJ,EAAE,GAAKuJ,EAAK,IAGVA,EAAK,GAAKA,EAAK,KACjBvJ,EAAE,GAAKuJ,EAAK,GACZvJ,EAAE,GAAKuJ,EAAK,IAGPvJ,EAGT,iBAAiBmiB,EAAOC,GACtB,SAASC,EAAQP,EAAGZ,GAClB,OAAOY,EAAIZ,EAGb,MAAMoB,EAAW,CAACH,EAAM,GAAIA,EAAM,GAAIC,EAAM,GAAIA,EAAM,IAAIG,KAAKF,GACzDG,EAAW,CAACL,EAAM,GAAIA,EAAM,GAAIC,EAAM,GAAIA,EAAM,IAAIG,KAAKF,GACzDI,EAAS,GAIf,OAHAN,EAAQrf,GAAK4f,cAAcP,GAC3BC,EAAQtf,GAAK4f,cAAcN,GAEvBE,EAAS,KAAOH,EAAM,IAAMG,EAAS,KAAOF,EAAM,IAAME,EAAS,KAAOF,EAAM,IAAME,EAAS,KAAOH,EAAM,IAC5GM,EAAO,GAAKH,EAAS,GACrBG,EAAO,GAAKH,EAAS,GAKnBE,EAAS,KAAOL,EAAM,IAAMK,EAAS,KAAOJ,EAAM,IAAMI,EAAS,KAAOJ,EAAM,IAAMI,EAAS,KAAOL,EAAM,IAC5GM,EAAO,GAAKD,EAAS,GACrBC,EAAO,GAAKD,EAAS,GAKhBC,GAHE,MAPA,MAeb/jB,EAAQoE,KAAOA,GACf,MAAM6f,GAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,IAAO,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,EAAG,MAEjrB,SAAS9T,GAAkBuQ,GACzB,MAAMrU,EAASqU,EAAIrU,OACb6U,EAAS,GAEf,GAAe,MAAXR,EAAI,IAA4B,MAAXA,EAAI,GAC3B,IAAK,IAAIjgB,EAAI,EAAGA,EAAI4L,EAAQ5L,GAAK,EAC/BygB,EAAOrU,KAAKkU,OAAOC,aAAaN,EAAIY,WAAW7gB,IAAM,EAAIigB,EAAIY,WAAW7gB,EAAI,UAEzE,GAAe,MAAXigB,EAAI,IAA4B,MAAXA,EAAI,GAClC,IAAK,IAAIjgB,EAAI,EAAGA,EAAI4L,EAAQ5L,GAAK,EAC/BygB,EAAOrU,KAAKkU,OAAOC,aAAaN,EAAIY,WAAW7gB,EAAI,IAAM,EAAIigB,EAAIY,WAAW7gB,UAG9E,IAAK,IAAIA,EAAI,EAAGA,EAAI4L,IAAU5L,EAAG,CAC/B,MAAM+f,EAAOyD,GAAwBvD,EAAIY,WAAW7gB,IACpDygB,EAAOrU,KAAK2T,EAAOO,OAAOC,aAAaR,GAAQE,EAAIwD,OAAOzjB,IAI9D,OAAOygB,EAAO9T,KAAK,IAGrB,SAASoC,GAAakR,GACpB,OAAOA,EAAIC,QAAQ,cAAe,QAGpC,SAASvQ,GAAmBsQ,GAC1B,OAAOyD,mBAAmBC,OAAO1D,IAGnC,SAASrQ,GAAmBqQ,GAC1B,OAAO2D,SAASC,mBAAmB5D,IAGrC,SAAS5Q,GAAOoT,GACd,MAAoB,mBAANA,EAGhB,SAASnT,GAAMmT,GACb,MAAoB,kBAANA,EAGhB,SAAS5U,GAAS4U,GAChB,MAAoB,kBAANA,EAGhB,SAAStT,GAAcsT,GACrB,MAAoB,kBAANA,GAAwB,OAANA,QAA+BrC,IAAjBqC,EAAE1B,WAGlD,SAAS3R,GAAa0U,EAAMC,GAC1B,OAAID,EAAKlY,SAAWmY,EAAKnY,QAIlBkY,EAAKE,OAAM,SAAUC,EAASC,GACnC,OAAOD,IAAYF,EAAKG,MAI5B,SAASlV,GAAoBmV,EAAO,IAAIjY,KAAKA,KAAKC,QAChD,MAAMuV,EAAS,CAACyC,EAAKC,iBAAiBC,YAAaF,EAAKG,cAAgB,GAAGD,WAAWE,SAAS,EAAG,MAAOJ,EAAKK,aAAe,GAAGH,WAAWE,SAAS,EAAG,KAAMJ,EAAKM,cAAcJ,WAAWE,SAAS,EAAG,KAAMJ,EAAKO,gBAAgBL,WAAWE,SAAS,EAAG,KAAMJ,EAAKQ,gBAAgBN,WAAWE,SAAS,EAAG,MAC3S,OAAO7C,EAAO/U,KAAK,IAGrB,SAAS3J,KACP,MAAM4hB,EAAankB,OAAOY,OAAO,MACjC,IAAIwjB,GAAY,EAkBhB,OAjBApkB,OAAOC,eAAekkB,EAAY,UAAW,CAC3C,MACE,OAAOC,KAIXD,EAAWE,QAAU,IAAIjd,SAAQ,SAAUC,EAASC,GAClD6c,EAAW9c,QAAU,SAAUoZ,GAC7B2D,GAAY,EACZ/c,EAAQoZ,IAGV0D,EAAW7c,OAAS,SAAUf,GAC5B6d,GAAY,EACZ9c,EAAOf,OAGJ4d,EAGT,MAAM7hB,GAAkB,WACtB,MAAMgiB,EAAS,oEACf,OAAO,SAAyB7D,EAAM8D,EAAaC,GAAkB,GACnE,IAAKA,GAAmBlY,IAAIhK,gBAAiB,CAC3C,MAAMmiB,EAAO,IAAIC,KAAK,CAACjE,GAAO,CAC5BpY,KAAMkc,IAER,OAAOjY,IAAIhK,gBAAgBmiB,GAG7B,IAAIxD,EAAS,QAAQsD,YAErB,IAAK,IAAIhlB,EAAI,EAAGolB,EAAKlE,EAAKtV,OAAQ5L,EAAIolB,EAAIplB,GAAK,EAAG,CAChD,MAAMqlB,EAAe,IAAVnE,EAAKlhB,GACVslB,EAAmB,IAAdpE,EAAKlhB,EAAI,GACdulB,EAAmB,IAAdrE,EAAKlhB,EAAI,GACdwlB,EAAKH,GAAM,EACXI,GAAW,EAALJ,IAAW,EAAIC,GAAM,EAC3BI,EAAK1lB,EAAI,EAAIolB,GAAW,GAALE,IAAa,EAAIC,GAAM,EAAI,GAC9CI,EAAK3lB,EAAI,EAAIolB,EAAU,GAALG,EAAY,GACpC7D,GAAUqD,EAAOS,GAAMT,EAAOU,GAAMV,EAAOW,GAAMX,EAAOY,GAG1D,OAAOjE,GAvBa,GA2BxBniB,EAAQwD,gBAAkBA,IAIpB,SAAUzD,EAAQC,EAASO,GAEjC,aAGeA,EAAoB,IAM7B,SAAUR,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQgF,cAAW,EACnB,MAAMA,EAA8B,kBAAZqhB,SAAwBA,QAAU,KAAO,qBAAuBA,QAAQC,SAASC,MAAQF,QAAQC,SAASE,UAAYH,QAAQ9c,MAAyB,YAAjB8c,QAAQ9c,MACtKvJ,EAAQgF,SAAWA,GAIb,SAAUjF,OAAQC,QAASO,qBAEjC,aAGAW,OAAOC,eAAenB,QAAS,aAAc,CAC3CyB,OAAO,IAETzB,QAAQiD,YAAcA,YACtBjD,QAAQkF,2BAA6BA,2BACrClF,QAAQgD,MAAQhD,QAAQqD,QAAUrD,QAAQymB,aAAezmB,QAAQ0mB,iBAAmB1mB,QAAQoD,UAAYpD,QAAQmD,sBAAwBnD,QAAQkD,kBAAe,EAE/J,IAAII,MAAQ/C,oBAAoB,GAE5BiC,eAAiBjC,oBAAoB,GAErComB,aAAepmB,oBAAoB,GAEnCqmB,YAAcrmB,oBAAoB,GAElCsmB,oBAAsBtmB,oBAAoB,GAE1CiE,mBAAqBjE,oBAAoB,GAEzCumB,QAAUvmB,oBAAoB,IAE9BmE,gBAAkBnE,oBAAoB,IAEtCwmB,SAAWxmB,oBAAoB,GAE/BymB,iBAAmBzmB,oBAAoB,IAEvC0mB,UAAY1mB,oBAAoB,IAEhC2mB,yBAA2B3mB,oBAAoB,IAE/C4mB,kBAAoB5mB,oBAAoB,IAExC6mB,OAAS7mB,oBAAoB,IAEjC,MAAM8mB,yBAA2B,MAC3BC,4BAA8B,IAC9BC,qBAAuBR,SAAS/hB,SAAW4hB,YAAYY,kBAAoBhlB,eAAesD,iBAC1F2hB,yBAA2BV,SAAS/hB,SAAW4hB,YAAYc,sBAAwBllB,eAAeoD,qBACxG,IAAI+hB,uBAEJ,SAASziB,2BAA2B0iB,GAClCD,uBAAyBC,EAG3B,SAAS3kB,YAAYyK,GACnB,MAAMma,EAAO,IAAIC,uBACjB,IAAIC,EAEJ,GAAmB,kBAARra,EACTqa,EAAS,CACPviB,IAAKkI,QAEF,IAAI,EAAIpK,MAAMsM,eAAelC,GAClCqa,EAAS,CACPpG,KAAMjU,QAEH,GAAIA,aAAevK,sBACxB4kB,EAAS,CACPC,MAAOta,OAEJ,CACL,GAAmB,kBAARA,EACT,MAAM,IAAIjH,MAAM,0FAGlB,IAAKiH,EAAIlI,MAAQkI,EAAIiU,OAASjU,EAAIsa,MAChC,MAAM,IAAIvhB,MAAM,+DAGlBshB,EAASra,EAGX,MAAMvI,EAASjE,OAAOY,OAAO,MAC7B,IAAImmB,EAAiB,KACjBC,EAAS,KAEb,IAAK,MAAMnmB,KAAOgmB,EAChB,GAAY,QAARhmB,GAAmC,qBAAXomB,OAGrB,GAAY,UAARpmB,EAGJ,GAAY,WAARA,EAGJ,GAAY,SAARA,GAAoBgmB,EAAOhmB,aAAgBmG,WAgBtD/C,EAAOpD,GAAOgmB,EAAOhmB,OAhBd,CACL,MAAMqmB,EAAWL,EAAOhmB,GAExB,GAAwB,kBAAbqmB,EACTjjB,EAAOpD,IAAO,EAAIuB,MAAM8E,eAAeggB,QAClC,GAAwB,kBAAbA,GAAsC,OAAbA,GAAsBC,MAAMD,EAAS/b,QAEzE,MAAI,EAAI/I,MAAMsM,eAAewY,GAGlC,MAAM,IAAI3hB,MAAM,8GAFhBtB,EAAOpD,GAAO,IAAImG,WAAWkgB,QAF7BjjB,EAAOpD,GAAO,IAAImG,WAAWkgB,QAR/BF,EAASH,EAAOhmB,QAHhBkmB,EAAiBF,EAAOhmB,QAHxBoD,EAAOpD,GAAO,IAAIyL,IAAIua,EAAOhmB,GAAMomB,OAAOG,UAAU1c,KA+DxD,GApCAzG,EAAOojB,eAAiBpjB,EAAOojB,gBAAkBlB,yBACjDliB,EAAOqjB,kBAAoBrjB,EAAOqjB,mBAAqBf,yBACvDtiB,EAAOsjB,cAAuC,IAAxBtjB,EAAOujB,aAC7BvjB,EAAOwjB,qBAAqD,IAA/BxjB,EAAOwjB,oBACpCxjB,EAAOyjB,QAA2B,IAAlBzjB,EAAOyjB,OAElBnJ,OAAOC,UAAUva,EAAO0jB,gBAC3B1jB,EAAO0jB,cAAgB,GAGa,mBAA3B1jB,EAAOid,kBAChBjd,EAAOid,iBAAkB,GAGW,mBAA3Bjd,EAAO2jB,kBAChB3jB,EAAO2jB,gBAAkBtkB,mBAAmBC,uBAAuBqkB,kBAAmB,GAGpD,qBAAzB3jB,EAAOwB,gBAChBxB,EAAOwB,cAAgBC,WAAWC,UAGD,mBAAxB1B,EAAO4jB,eAChB5jB,EAAO4jB,cAAe,GAGY,mBAAzB5jB,EAAO6jB,gBAChB7jB,EAAO6jB,eAAgB,GAGc,mBAA5B7jB,EAAO8jB,mBAChB9jB,EAAO8jB,kBAAmB,IAG5B,EAAI3lB,MAAM2M,mBAAmB9K,EAAOoa,YAE/B2I,EAAQ,CACX,MAAMgB,EAAe,CACnB3J,UAAWpa,EAAOoa,UAClB4J,KAAMzkB,gBAAgBC,oBAAoBykB,YAE5ClB,EAASgB,EAAaC,KAAO/lB,UAAUimB,SAASH,GAAgB,IAAI9lB,UAAU8lB,GAC9ErB,EAAKyB,QAAUpB,EAGjB,MAAMqB,EAAQ1B,EAAK0B,MA6CnB,OA5CArB,EAAO3C,QAAQ3d,MAAK,WAClB,GAAIigB,EAAK2B,UACP,MAAM,IAAI/iB,MAAM,mBAGlB,MAAMgjB,EAAkBC,eAAexB,EAAQ/iB,EAAQ8iB,EAAgBsB,GAEjEI,EAAuB,IAAIrhB,SAAQ,SAAUC,GACjD,IAAIqhB,EAEA3B,EACF2B,EAAgB,IAAIzC,kBAAkB0C,uBAAuB,CAC3Dxd,OAAQlH,EAAOkH,OACfyd,YAAa3kB,EAAO2kB,YACpBC,gBAAiB5kB,EAAO4kB,gBACxBhB,aAAc5jB,EAAO4jB,aACrBC,cAAe7jB,EAAO6jB,eACrBf,GACO9iB,EAAOwc,OACjBiI,EAAgBjC,uBAAuB,CACrCniB,IAAKL,EAAOK,IACZ6G,OAAQlH,EAAOkH,OACf2d,YAAa7kB,EAAO6kB,YACpBC,gBAAiB9kB,EAAO8kB,gBACxB1B,eAAgBpjB,EAAOojB,eACvBQ,aAAc5jB,EAAO4jB,aACrBC,cAAe7jB,EAAO6jB,iBAI1BzgB,EAAQqhB,MAEV,OAAOthB,QAAQ4hB,IAAI,CAACT,EAAiBE,IAAuB/hB,MAAK,UAAWuiB,EAAUP,IACpF,GAAI/B,EAAK2B,UACP,MAAM,IAAI/iB,MAAM,mBAGlB,MAAM2jB,EAAiB,IAAIpD,iBAAiBqD,eAAed,EAAOY,EAAUjC,EAAOiB,MACnFiB,EAAeE,qBAAuBpC,EAAOoC,qBAC7C,MAAMC,EAAY,IAAIC,gBAAgBJ,EAAgBvC,EAAM+B,EAAezkB,GAC3E0iB,EAAK4C,WAAaF,EAClBH,EAAelhB,KAAK,QAAS,YAE9B1B,MAAMqgB,EAAK6C,YAAYliB,QACnBqf,EAGT,SAAS6B,eAAexB,EAAQH,EAAQ4C,EAAuBpB,GAC7D,OAAIrB,EAAOsB,UACFlhB,QAAQE,OAAO,IAAI/B,MAAM,0BAG9BkkB,IACF5C,EAAO1b,OAASse,EAAsBte,OACtC0b,EAAO+B,YAAca,EAAsBb,YAC3C/B,EAAOgC,gBAAkBY,EAAsBZ,iBAG1C7B,EAAOkC,eAAeQ,gBAAgB,gBAAiB,CAC5DrB,QACAsB,WAAY,UACZ9C,OAAQ,CACNpG,KAAMoG,EAAOpG,KACbnc,IAAKuiB,EAAOviB,IACZslB,SAAU/C,EAAO+C,SACjB7B,iBAAkBlB,EAAOkB,iBACzBV,eAAgBR,EAAOQ,eACvBlc,OAAQ0b,EAAO1b,QAEjBwc,aAAcd,EAAOc,aACrBC,gBAAiBf,EAAOe,gBACxBwB,qBAAsBpC,EAAOoC,qBAC7BS,WAAYhD,EAAOgD,WACnBtC,aAAcV,EAAOU,aACrBrG,gBAAiB2F,EAAO3F,gBACxBuG,oBAAqBZ,EAAOY,sBAC3B/gB,MAAK,SAAUuiB,GAChB,GAAIjC,EAAOsB,UACT,MAAM,IAAI/iB,MAAM,wBAGlB,OAAO0jB,MAIX,MAAMrC,uBAAyB,WAC7B,IAAIkD,EAAiB,EAErB,MAAMlD,EACJ,cACE1nB,KAAKsqB,aAAc,EAAIpnB,MAAMG,2BAC7BrD,KAAKqqB,WAAa,KAClBrqB,KAAKkpB,QAAU,KACflpB,KAAKmpB,MAAQ,IAAMyB,IACnB5qB,KAAKopB,WAAY,EACjBppB,KAAK6qB,WAAa,KAClB7qB,KAAK8qB,WAAa,KAClB9qB,KAAK+qB,qBAAuB,KAG9B,cACE,OAAO/qB,KAAKsqB,YAAYnF,QAG1B,UACEnlB,KAAKopB,WAAY,EACjB,MAAM4B,EAAsBhrB,KAAKqqB,WAAiCrqB,KAAKqqB,WAAWY,UAApC/iB,QAAQC,UACtD,OAAO6iB,EAAmBxjB,KAAK,KAC7BxH,KAAKqqB,WAAa,KAEdrqB,KAAKkpB,UACPlpB,KAAKkpB,QAAQ+B,UAEbjrB,KAAKkpB,QAAU,SAOvB,OAAOxB,EAnCsB,GAsC/B,MAAM3kB,sBACJ,YAAYkJ,EAAQyd,EAAaC,GAAkB,GACjD3pB,KAAKiM,OAASA,EACdjM,KAAK0pB,YAAcA,EACnB1pB,KAAK2pB,gBAAkBA,EACvB3pB,KAAKkrB,gBAAkB,GACvBlrB,KAAKmrB,mBAAqB,GAC1BnrB,KAAKorB,0BAA4B,GACjCprB,KAAKqrB,0BAA4B,GACjCrrB,KAAKsrB,kBAAmB,EAAIpoB,MAAMG,2BAGpC,iBAAiBkoB,GACfvrB,KAAKkrB,gBAAgBze,KAAK8e,GAG5B,oBAAoBA,GAClBvrB,KAAKmrB,mBAAmB1e,KAAK8e,GAG/B,2BAA2BA,GACzBvrB,KAAKorB,0BAA0B3e,KAAK8e,GAGtC,2BAA2BA,GACzBvrB,KAAKqrB,0BAA0B5e,KAAK8e,GAGtC,YAAYC,EAAOxK,GACjB,IAAK,MAAMuK,KAAYvrB,KAAKkrB,gBAC1BK,EAASC,EAAOxK,GAIpB,eAAeyK,EAAQC,GACrB1rB,KAAKsrB,iBAAiBnG,QAAQ3d,KAAK,KACjC,IAAK,MAAM+jB,KAAYvrB,KAAKmrB,mBAC1BI,EAASE,EAAQC,KAKvB,sBAAsB1K,GACpBhhB,KAAKsrB,iBAAiBnG,QAAQ3d,KAAK,KACjC,IAAK,MAAM+jB,KAAYvrB,KAAKorB,0BAC1BG,EAASvK,KAKf,wBACEhhB,KAAKsrB,iBAAiBnG,QAAQ3d,KAAK,KACjC,IAAK,MAAM+jB,KAAYvrB,KAAKqrB,0BAC1BE,MAKN,iBACEvrB,KAAKsrB,iBAAiBnjB,UAGxB,iBAAiBqjB,EAAOzf,IACtB,EAAI7I,MAAM8C,aAAa,0DAGzB,UAIFpG,QAAQmD,sBAAwBA,sBAEhC,MAAMujB,iBACJ,YAAYqF,EAASxB,GACnBnqB,KAAK4rB,SAAWD,EAChB3rB,KAAKqqB,WAAaF,EAGpB,wBACE,OAAO,EAAIjnB,MAAMW,QAAQ7D,KAAM,oBAAqB,IAAIymB,oBAAoBoF,mBAG9E,eACE,OAAO7rB,KAAK4rB,SAASE,SAGvB,kBACE,OAAO9rB,KAAK4rB,SAASG,YAGvB,QAAQC,GACN,OAAOhsB,KAAKqqB,WAAW4B,QAAQD,GAGjC,aAAaE,GACX,OAAOlsB,KAAKqqB,WAAW8B,aAAaD,GAGtC,kBACE,OAAOlsB,KAAKqqB,WAAW+B,kBAGzB,eAAeC,GACb,OAAOrsB,KAAKqqB,WAAWiC,eAAeD,GAGxC,gBACE,OAAOrsB,KAAKqqB,WAAWkC,gBAGzB,gBACE,OAAOvsB,KAAKqqB,WAAWmC,gBAGzB,cACE,OAAOxsB,KAAKqqB,WAAWoC,cAGzB,uBACE,OAAOzsB,KAAKqqB,WAAWqC,uBAGzB,gBACE,OAAO1sB,KAAKqqB,WAAWsC,gBAGzB,iBACE,OAAO3sB,KAAKqqB,WAAWuC,iBAGzB,gBACE,OAAO5sB,KAAKqqB,WAAWwC,gBAGzB,aACE,OAAO7sB,KAAKqqB,WAAWyC,aAGzB,2BACE,OAAO9sB,KAAKqqB,WAAW0C,2BAGzB,iBACE,OAAO/sB,KAAKqqB,WAAW2C,iBAGzB,cACE,OAAOhtB,KAAKqqB,WAAW4C,cAGzB,UACE,OAAOjtB,KAAKqqB,WAAW6C,UAGzB,kBACE,OAAOltB,KAAKqqB,WAAW8C,uBAAuBhI,QAGhD,WACE,OAAOnlB,KAAKqqB,WAAW+C,WAGzB,UACE,OAAOptB,KAAKqqB,WAAWgD,eAGzB,UACE,OAAOrtB,KAAKstB,YAAYrC,UAG1B,oBACE,OAAOjrB,KAAKqqB,WAAWkD,cAGzB,kBACE,OAAOvtB,KAAKqqB,WAAWiD,YAGzB,aAAaE,GACX,OAAOxtB,KAAKqqB,WAAWoD,aAAaD,IAKxC5tB,QAAQ0mB,iBAAmBA,iBAE3B,MAAMD,aACJ,YAAYqH,EAAWC,EAAUxD,EAAW5jB,EAAeiiB,GAAS,GAClExoB,KAAK4tB,WAAaF,EAClB1tB,KAAK6tB,UAAYF,EACjB3tB,KAAK8tB,eAAiBvnB,EACtBvG,KAAKqqB,WAAaF,EAClBnqB,KAAK+tB,OAASvF,EAAS,IAAIpmB,eAAekD,UAAc,KACxDtF,KAAKguB,QAAUxF,EACfxoB,KAAKiuB,WAAa9D,EAAU8D,WAC5BjuB,KAAKkuB,KAAO,IAAIC,WAChBnuB,KAAKouB,oBAAqB,EAC1BpuB,KAAKquB,gBAAiB,EACtBruB,KAAKsuB,cAAgB,IAAIC,IACzBvuB,KAAKopB,WAAY,EAGnB,iBACE,OAAOppB,KAAK4tB,WAAa,EAG3B,aACE,OAAO5tB,KAAK6tB,UAAUW,OAGxB,UACE,OAAOxuB,KAAK6tB,UAAU3B,IAGxB,eACE,OAAOlsB,KAAK6tB,UAAUY,SAGxB,WACE,OAAOzuB,KAAK6tB,UAAUa,KAGxB,aAAY,MACVrlB,EAAK,SACLC,EAAWtJ,KAAKwuB,OAAM,QACtBjlB,EAAU,EAAC,QACXC,EAAU,EAAC,SACXC,GAAW,GACT,IACF,OAAO,IAAIrH,eAAeyD,aAAa,CACrCuD,QAASpJ,KAAK0uB,KACdrlB,QACAC,WACAC,UACAC,UACAC,aAIJ,gBAAe,OACbklB,EAAS,MACP,IAMF,OALK3uB,KAAK4uB,oBAAsB5uB,KAAK6uB,oBAAsBF,IACzD3uB,KAAK4uB,mBAAqB5uB,KAAKqqB,WAAWyE,eAAe9uB,KAAK4tB,WAAYe,GAC1E3uB,KAAK6uB,kBAAoBF,GAGpB3uB,KAAK4uB,mBAGd,QAAO,cACLG,EAAa,SACbC,EAAQ,OACRL,EAAS,UAAS,YAClBM,GAAc,EAAK,uBACnBC,GAAyB,EAAK,UAC9B9kB,EAAY,KAAI,WAChB+kB,EAAa,KAAI,cACjBC,EAAgB,KAAI,WACpBC,EAAa,KAAI,kBACjB7B,EAAoB,KAAI,6BACxB8B,EAA+B,OAE3BtvB,KAAK+tB,QACP/tB,KAAK+tB,OAAOlhB,KAAK,WAGnB,MAAM0iB,EAA6B,UAAXZ,EAAqB,QAAU,UACvD3uB,KAAKquB,gBAAiB,EAEjBiB,IACHA,EAA+BtvB,KAAKqqB,WAAW0C,4BAGjD,IAAIyC,EAAcxvB,KAAKsuB,cAAcrtB,IAAIsuB,GAEpCC,IACHA,EAAc1uB,OAAOY,OAAO,MAE5B1B,KAAKsuB,cAAc5M,IAAI6N,EAAiBC,IAGtCA,EAAYC,4BACdC,aAAaF,EAAYC,2BACzBD,EAAYC,0BAA4B,MAG1C,MAAME,EAAwBP,GAAiB,IAAIjI,qBAAqB,CACtE5gB,cAAevG,KAAK8tB,iBAEhB8B,EAAe,IAAI5I,OAAO6I,aAAa,CAC3CC,OAAQb,IAGLO,EAAYO,yBACfP,EAAYO,wBAAyB,EAAI7sB,MAAMG,2BAC/CmsB,EAAYQ,aAAe,CACzBC,QAAS,GACTC,UAAW,GACXC,WAAW,GAGTnwB,KAAK+tB,QACP/tB,KAAK+tB,OAAOlhB,KAAK,gBAGnB7M,KAAKowB,kBAAkB,CACrB1C,UAAW1tB,KAAK4tB,WAChBe,OAAQY,EACRL,wBAAmD,IAA3BA,EACxB1B,kBAAmBA,GAAqBA,EAAkB6C,UAAY,QAI1E,MAAMC,EAAWC,IACf,MAAMlwB,EAAImvB,EAAYgB,YAAY3kB,QAAQ4kB,GAEtCpwB,GAAK,GACPmvB,EAAYgB,YAAYE,OAAOrwB,EAAG,IAGhCL,KAAKouB,oBAA0C,UAApBmB,KAC7BvvB,KAAKquB,gBAAiB,GAGxBruB,KAAK2wB,cAEDJ,GACFE,EAAmBxL,WAAW7c,OAAOmoB,GAErCvwB,KAAK4wB,mBAAmB,CACtBpB,cACAnoB,OAAQkpB,KAGVE,EAAmBxL,WAAW9c,UAG5BnI,KAAK+tB,SACP/tB,KAAK+tB,OAAO8C,QAAQ,aAEpB7wB,KAAK+tB,OAAO8C,QAAQ,aAIlBJ,EAAqB,IAAIK,mBAAmB,CAChDC,SAAUT,EACVvrB,OAAQ,CACNgqB,gBACAC,WACA5kB,YACA+kB,aACAE,cAEFnB,KAAMluB,KAAKkuB,KACXD,WAAYjuB,KAAKiuB,WACjB+B,aAAcR,EAAYQ,aAC1BtC,UAAW1tB,KAAK4tB,WAChBwB,cAAeO,EACfC,eACAoB,yBAA8C,UAApBzB,EAC1B/G,OAAQxoB,KAAKguB,UAGVwB,EAAYgB,cACfhB,EAAYgB,YAAc,IAG5BhB,EAAYgB,YAAY/jB,KAAKgkB,GAC7B,MAAMQ,EAAaR,EAAmBhJ,KAiBtC,OAhBAvf,QAAQ4hB,IAAI,CAAC0F,EAAYO,uBAAuB5K,QAASmK,IAA+B9nB,KAAK,EAAE0pB,EAAcC,MACvGnxB,KAAKquB,eACPiC,KAIEtwB,KAAK+tB,QACP/tB,KAAK+tB,OAAOlhB,KAAK,aAGnB4jB,EAAmBW,mBAAmB,CACpCF,eACAC,0BAEFV,EAAmBY,yBAClBjqB,MAAMkpB,GACFW,EAGT,kBACE,SAASI,IACP,GAAI7B,EAAYQ,aAAaG,UAAW,CACtCX,EAAY8B,qBAAqBnpB,QAAQqnB,EAAYQ,cACrD,MAAM3vB,EAAImvB,EAAYgB,YAAY3kB,QAAQ0lB,GAEtClxB,GAAK,GACPmvB,EAAYgB,YAAYE,OAAOrwB,EAAG,IAKxC,MAAMkvB,EAAkB,SAExB,IAQIgC,EARA/B,EAAcxvB,KAAKsuB,cAAcrtB,IAAIsuB,GAgCzC,OA9BKC,IACHA,EAAc1uB,OAAOY,OAAO,MAE5B1B,KAAKsuB,cAAc5M,IAAI6N,EAAiBC,IAKrCA,EAAY8B,uBACfC,EAAazwB,OAAOY,OAAO,MAC3B6vB,EAAWF,oBAAsBA,EACjC7B,EAAY8B,sBAAuB,EAAIpuB,MAAMG,2BAC7CmsB,EAAYgB,YAAc,GAC1BhB,EAAYgB,YAAY/jB,KAAK8kB,GAC7B/B,EAAYQ,aAAe,CACzBC,QAAS,GACTC,UAAW,GACXC,WAAW,GAGTnwB,KAAK+tB,QACP/tB,KAAK+tB,OAAOlhB,KAAK,gBAGnB7M,KAAKowB,kBAAkB,CACrB1C,UAAW1tB,KAAK4tB,WAChBe,OAAQY,KAILC,EAAY8B,qBAAqBnM,QAG1C,mBAAkB,oBAChBqM,GAAsB,EAAK,wBAC3BC,GAA0B,GACxB,IACF,MAAMC,EAA0B,IAChC,OAAO1xB,KAAKqqB,WAAWL,eAAe2H,eAAe,iBAAkB,CACrEjE,UAAW1tB,KAAK4tB,WAChB4D,qBAA6C,IAAxBA,EACrBI,kBAA8C,IAA5BH,GACjB,CACDI,cAAeH,EAEf,KAAKI,GACH,OAAOA,EAAYC,MAAM9lB,UAM/B,eAAelH,EAAS,IACtB,MAAMitB,EAAiBhyB,KAAKiyB,kBAAkBltB,GAC9C,OAAO,IAAImD,SAAQ,SAAUC,EAASC,GACpC,SAAS8pB,IACPC,EAAOC,OAAO5qB,MAAK,UAAU,MAC3BnG,EAAK,KACLgxB,IAEIA,EACFlqB,EAAQ2pB,IAIVhxB,OAAOwxB,OAAOR,EAAYS,OAAQlxB,EAAMkxB,QACxCT,EAAYC,MAAMtlB,QAAQpL,EAAM0wB,OAChCG,OACC9pB,GAGL,MAAM+pB,EAASH,EAAeQ,YACxBV,EAAc,CAClBC,MAAO,GACPQ,OAAQzxB,OAAOY,OAAO,OAExBwwB,OAIJ,WACElyB,KAAKopB,WAAY,EACjBppB,KAAKqqB,WAAWoI,UAAUzyB,KAAK4tB,YAAc,KAC7C,MAAM8E,EAAS,GAEf,IAAK,MAAO/D,EAAQa,KAAgBxvB,KAAKsuB,cAOvC,GANAtuB,KAAK4wB,mBAAmB,CACtBpB,cACAnoB,OAAQ,IAAIhB,MAAM,uBAClBssB,OAAO,IAGM,WAAXhE,EAIJ,IAAK,MAAM8B,KAAsBjB,EAAYgB,YAC3CkC,EAAOjmB,KAAKgkB,EAAmBmC,WAC/BnC,EAAmBoC,SAOvB,OAHA7yB,KAAKkuB,KAAK4E,QACV9yB,KAAK4uB,mBAAqB,KAC1B5uB,KAAKquB,gBAAiB,EACfnmB,QAAQ4hB,IAAI4I,GAGrB,QAAQK,GAAa,GAEnB,OADA/yB,KAAKquB,gBAAiB,EACfruB,KAAK2wB,YAAYoC,GAG1B,YAAYA,GAAa,GACvB,IAAK/yB,KAAKquB,eACR,OAAO,EAGT,IAAK,MAAM,YACTmC,EAAW,aACXR,KACGhwB,KAAKsuB,cAAc0E,SACtB,GAA2B,IAAvBxC,EAAYvkB,SAAiB+jB,EAAaG,UAC5C,OAAO,EAcX,OAVAnwB,KAAKsuB,cAAcwE,QAEnB9yB,KAAKkuB,KAAK4E,QACV9yB,KAAK4uB,mBAAqB,KAEtBmE,GAAc/yB,KAAK+tB,SACrB/tB,KAAK+tB,OAAS,IAAI3rB,eAAekD,WAGnCtF,KAAKquB,gBAAiB,GACf,EAGT,iBAAiB6C,EAAcvC,GAC7B,MAAMa,EAAcxvB,KAAKsuB,cAAcrtB,IAAI0tB,GAEtCa,IAIDxvB,KAAK+tB,QACP/tB,KAAK+tB,OAAO8C,QAAQ,gBAGlBrB,EAAYO,wBACdP,EAAYO,uBAAuB5nB,QAAQ+oB,IAI/C,iBAAiB+B,EAAmBzD,GAClC,IAAK,IAAInvB,EAAI,EAAGolB,EAAKwN,EAAkBhnB,OAAQ5L,EAAIolB,EAAIplB,IACrDmvB,EAAYQ,aAAaC,QAAQxjB,KAAKwmB,EAAkBhD,QAAQ5vB,IAChEmvB,EAAYQ,aAAaE,UAAUzjB,KAAKwmB,EAAkB/C,UAAU7vB,IAGtEmvB,EAAYQ,aAAaG,UAAY8C,EAAkB9C,UAEvD,IAAK,IAAI9vB,EAAI,EAAGA,EAAImvB,EAAYgB,YAAYvkB,OAAQ5L,IAClDmvB,EAAYgB,YAAYnwB,GAAGgxB,sBAGzB4B,EAAkB9C,WACpBnwB,KAAK2wB,cAIT,kBAAkBuC,IAChB,EAAIhwB,MAAM6F,QAAQmqB,EAAKvE,OAAQ,+DAE/B,MAAMqD,EAAiBhyB,KAAKqqB,WAAWL,eAAe2H,eAAe,kBAAmBuB,GAElFf,EAASH,EAAeQ,YAExBhD,EAAcxvB,KAAKsuB,cAAcrtB,IAAIiyB,EAAKvE,QAEhDa,EAAY2D,aAAehB,EAE3B,MAAMD,EAAO,KACXC,EAAOC,OAAO5qB,KAAK,EACjBnG,QACAgxB,WAEIA,EACF7C,EAAY2D,aAAe,KAIzBnzB,KAAKqqB,WAAWjB,YAIpBppB,KAAKozB,iBAAiB/xB,EAAOmuB,GAE7B0C,MACC7qB,IAGD,GAFAmoB,EAAY2D,aAAe,MAEvBnzB,KAAKqqB,WAAWjB,UAApB,CAIA,GAAIoG,EAAYQ,aAAc,CAC5BR,EAAYQ,aAAaG,WAAY,EAErC,IAAK,IAAI9vB,EAAI,EAAGA,EAAImvB,EAAYgB,YAAYvkB,OAAQ5L,IAClDmvB,EAAYgB,YAAYnwB,GAAGgxB,sBAG7BrxB,KAAK2wB,cAGP,GAAInB,EAAYO,uBACdP,EAAYO,uBAAuB3nB,OAAOf,OACrC,KAAImoB,EAAY8B,qBAGrB,MAAMjqB,EAFNmoB,EAAY8B,qBAAqBlpB,OAAOf,QAO9C6qB,IAGF,oBAAmB,YACjB1C,EAAW,OACXnoB,EAAM,MACNsrB,GAAQ,IAIR,IAFA,EAAIzvB,MAAM6F,QAAQ1B,aAAkBhB,OAA2B,kBAAXgB,GAAkC,OAAXA,EAAiB,gEAEvFmoB,EAAY2D,aAAjB,CAIA,IAAKR,EAAO,CACV,GAAuC,IAAnCnD,EAAYgB,YAAYvkB,OAC1B,OAGF,GAAI5E,aAAkBjF,eAAeM,4BAUnC,YATA8sB,EAAYC,0BAA4B4D,WAAW,KACjDrzB,KAAK4wB,mBAAmB,CACtBpB,cACAnoB,SACAsrB,OAAO,IAGTnD,EAAYC,0BAA4B,MACvCvI,8BAQP,GAHAsI,EAAY2D,aAAaN,OAAO,IAAI3vB,MAAMuN,eAAepJ,GAAUA,EAAO8Y,UAC1EqP,EAAY2D,aAAe,MAEvBnzB,KAAKqqB,WAAWjB,UAApB,CAIA,IAAK,MAAOuF,EAAQ2E,KAAmBtzB,KAAKsuB,cAC1C,GAAIgF,IAAmB9D,EAAa,CAClCxvB,KAAKsuB,cAAciF,OAAO5E,GAE1B,MAIJ3uB,KAAKwzB,YAGP,YACE,OAAOxzB,KAAK+tB,QAKhBnuB,QAAQymB,aAAeA,aAEvB,MAAMvjB,aACJ,YAAY2wB,GAAQ,GAClBzzB,KAAK0zB,WAAa,GAClB1zB,KAAK2zB,OAASF,EACdzzB,KAAK4zB,UAAY1rB,QAAQC,aAAQsY,GAGnC,YAAYV,EAAK8T,GACf,SAASC,EAAWzyB,GAClB,GAAqB,kBAAVA,GAAgC,OAAVA,EAC/B,OAAOA,EAGT,GAAI0yB,EAAOC,IAAI3yB,GACb,OAAO0yB,EAAO9yB,IAAII,GAGpB,IAAI0gB,EAAQ4B,EAEZ,IAAK5B,EAAS1gB,EAAM0gB,UAAW,EAAI7e,MAAMsM,eAAeuS,GAAS,CAC/D,MAAMkS,EAAeJ,GAAaA,EAAUK,SAASnS,GASrD,OANE4B,EADEsQ,EACO,IAAI5yB,EAAM0E,YAAYgc,EAAQ1gB,EAAM8yB,WAAY9yB,EAAM+f,YAEtD,IAAI/f,EAAM0E,YAAY1E,GAGjC0yB,EAAOrS,IAAIrgB,EAAOsiB,GACXA,EAGTA,EAASyQ,MAAMC,QAAQhzB,GAAS,GAAK,GACrC0yB,EAAOrS,IAAIrgB,EAAOsiB,GAElB,IAAK,MAAMtjB,KAAKgB,EAAO,CACrB,IAAIizB,EACApyB,EAAIb,EAER,QAASizB,EAAOxzB,OAAOyzB,yBAAyBryB,EAAG7B,IACjD6B,EAAIpB,OAAO0zB,eAAetyB,GAG5B,GAA0B,qBAAfoyB,EAAKjzB,MAIhB,GAA0B,oBAAfizB,EAAKjzB,MAQhBsiB,EAAOtjB,GAAKyzB,EAAWQ,EAAKjzB,YAP1B,GAAIA,EAAMY,gBAAkBZ,EAAMY,eAAe5B,GAC/C,MAAM,IAAIgG,MAAM,4CAA4ChF,EAAMhB,IASxE,OAAOsjB,EAGT,IAAK3jB,KAAK2zB,OAOR,YANA3zB,KAAK0zB,WAAWe,QAAQlJ,IACtBA,EAAShrB,KAAKP,KAAM,CAClBuhB,KAAMxB,MAOZ,MAAMgU,EAAS,IAAIW,QACb/U,EAAI,CACR4B,KAAMuS,EAAW/T,IAGnB/f,KAAK4zB,UAAUpsB,KAAK,KAClBxH,KAAK0zB,WAAWe,QAAQlJ,IACtBA,EAAShrB,KAAKP,KAAM2f,OAK1B,iBAAiBhf,EAAM4qB,GACrBvrB,KAAK0zB,WAAWjnB,KAAK8e,GAGvB,oBAAoB5qB,EAAM4qB,GACxB,MAAMlrB,EAAIL,KAAK0zB,WAAW7nB,QAAQ0f,GAElCvrB,KAAK0zB,WAAWhD,OAAOrwB,EAAG,GAG5B,YACEL,KAAK0zB,WAAWznB,OAAS,GAK7BrM,QAAQkD,aAAeA,aAEvB,MAAME,UAAY,SAAS2xB,mBACzB,MAAMC,eAAiB,IAAIF,QAC3B,IAAIG,kBAAmB,EACnBC,kBACAC,iBAAmB,EACnBC,qBAEJ,GAAIrO,SAAS/hB,SACXiwB,kBAAmB,EACnBC,kBAAoB,uBACf,GAAwB,kBAAbruB,UAAyB,kBAAmBA,SAAU,CACtE,MAAMwuB,EAAgBxuB,SAASyuB,eAAiBzuB,SAASyuB,cAAc5nB,IAEnE2nB,IACFH,kBAAoBG,EAAc1U,QAAQ,4BAA6B,gBAI3E,SAAS4U,eACP,GAAI7wB,gBAAgBC,oBAAoB6wB,UACtC,OAAO9wB,gBAAgBC,oBAAoB6wB,UAG7C,GAAiC,qBAAtBN,kBAKT,OAJKnO,SAAS/hB,WACZ,EAAIxC,eAAeiD,YAAY,iDAG1ByvB,kBAGT,MAAM,IAAIzuB,MAAM,iDAGlB,SAASgvB,oCACP,IAAIC,EAEJ,IACEA,EAA2B9uB,WAAW+uB,aAAe/uB,WAAW+uB,YAAYC,qBAC5E,MAAOnoB,IAET,OAAOioB,GAA4B,KAGrC,SAASG,wBACP,GAAIT,qBACF,OAAOA,qBAAqB7P,QAG9B6P,sBAAuB,EAAI9xB,MAAMG,2BAEjC,MAAMqyB,OAASjuB,iBACb,MAAM6tB,yBAA2BD,oCAEjC,GAAIC,yBACF,OAAOA,yBAGT,GAAI3O,SAAS/hB,SAA2C,CACtD,MAAMkjB,OAAS6N,KAAK,UAALA,CAAgBR,gBAC/B,OAAOrN,OAAO0N,qBAIhB,aADM,EAAIpzB,eAAeI,YAAY2yB,gBAC9BpN,OAAOwN,YAAYC,sBAI5B,OADAE,SAASluB,KAAKwtB,qBAAqB7sB,QAAS6sB,qBAAqB5sB,QAC1D4sB,qBAAqB7P,QAG9B,SAASyQ,iBAAiBxwB,GACxB,MAAMywB,EAAU,kBAAoBzwB,EAAM,MAC1C,OAAOgI,IAAIhK,gBAAgB,IAAIoiB,KAAK,CAACqQ,KAGvC,MAAM7yB,UACJ,aAAY,KACVrC,EAAO,KAAI,KACXooB,EAAO,KAAI,UACX5J,GAAY,EAAIjc,MAAMoM,sBACpB,IACF,GAAIyZ,GAAQ6L,eAAeZ,IAAIjL,GAC7B,MAAM,IAAI1iB,MAAM,+CAYlB,GATArG,KAAKW,KAAOA,EACZX,KAAKopB,WAAY,EACjBppB,KAAKkqB,sBAAuB,EAC5BlqB,KAAKmf,UAAYA,EACjBnf,KAAKsrB,kBAAmB,EAAIpoB,MAAMG,2BAClCrD,KAAK81B,MAAQ,KACb91B,KAAK+1B,WAAa,KAClB/1B,KAAKg2B,gBAAkB,KAEnBjN,EAKF,OAJA6L,eAAelT,IAAIqH,EAAM/oB,WAEzBA,KAAKi2B,oBAAoBlN,GAK3B/oB,KAAKk2B,cAGP,cACE,OAAOl2B,KAAKsrB,iBAAiBnG,QAG/B,WACE,OAAOnlB,KAAK81B,MAGd,qBACE,OAAO91B,KAAKg2B,gBAGd,oBAAoBjN,GAClB/oB,KAAK81B,MAAQ/M,EACb/oB,KAAKg2B,gBAAkB,IAAIpP,iBAAiBqD,eAAe,OAAQ,SAAUlB,GAE7E/oB,KAAKg2B,gBAAgBG,GAAG,SAAS,eAEjCn2B,KAAKsrB,iBAAiBnjB,UAGxB,cACE,GAAsB,qBAAXtI,SAA2Bg1B,mBAAqBQ,oCAAqC,CAC9F,IAAID,EAAYD,eAEhB,KACO,EAAIjyB,MAAM0M,cAAcmY,OAAOG,SAAS1c,KAAM4pB,KACjDA,EAAYQ,iBAAiB,IAAIxoB,IAAIgoB,EAAWrN,OAAOG,UAAU1c,OAGnE,MAAMsc,EAAS,IAAIjoB,OAAOu1B,GACpBpL,EAAiB,IAAIpD,iBAAiBqD,eAAe,OAAQ,SAAUnC,GAEvEsO,EAAiB,KACrBtO,EAAOuO,oBAAoB,QAASC,GACpCtM,EAAeiB,UACfnD,EAAOyO,YAEHv2B,KAAKopB,UACPppB,KAAKsrB,iBAAiBljB,OAAO,IAAI/B,MAAM,yBAEvCrG,KAAKw2B,oBAIHF,EAAgB,KACft2B,KAAK+1B,YACRK,KAIJtO,EAAO2O,iBAAiB,QAASH,GACjCtM,EAAemM,GAAG,OAAQ5U,IACxBuG,EAAOuO,oBAAoB,QAASC,GAEhCt2B,KAAKopB,UACPgN,IAIE7U,GACFvhB,KAAKg2B,gBAAkBhM,EACvBhqB,KAAK81B,MAAQhO,EACb9nB,KAAK+1B,WAAajO,EAEbvG,EAAKmV,mBACR12B,KAAKkqB,sBAAuB,GAG9BlqB,KAAKsrB,iBAAiBnjB,UAEtB6hB,EAAelhB,KAAK,YAAa,CAC/BqW,UAAWnf,KAAKmf,cAGlBnf,KAAKw2B,mBAELxM,EAAeiB,UACfnD,EAAOyO,eAGXvM,EAAemM,GAAG,QAAS5U,IAGzB,GAFAuG,EAAOuO,oBAAoB,QAASC,GAEhCt2B,KAAKopB,UACPgN,SAIF,IACEO,IACA,MAAOhX,GACP3f,KAAKw2B,sBAIT,MAAMG,EAAW,KACf,MAAMC,EAAU,IAAI9uB,WAAW,CAAC9H,KAAKkqB,qBAAuB,IAAM,IAElE,IACEF,EAAelhB,KAAK,OAAQ8tB,EAAS,CAACA,EAAQ7U,SAC9C,MAAO1U,IACP,EAAInK,MAAMoJ,MAAM,qCAChBsqB,EAAQ,GAAK,EACb5M,EAAelhB,KAAK,OAAQ8tB,KAKhC,YADAD,IAEA,MAAOhX,IACP,EAAIzc,MAAMqM,MAAM,kCAIpBvP,KAAKw2B,mBAGP,mBACO3B,oBACH,EAAI3xB,MAAMoJ,MAAM,2BAChBuoB,kBAAmB,GAGrBY,wBAAwBjuB,KAAKguB,IAC3B,GAAIx1B,KAAKopB,UAGP,YAFAppB,KAAKsrB,iBAAiBljB,OAAO,IAAI/B,MAAM,yBAKzC,MAAM0iB,EAAO,IAAIjmB,aACjB9C,KAAK81B,MAAQ/M,EACb,MAAMsD,EAAK,OAAS0I,mBACd8B,EAAgB,IAAIjQ,iBAAiBqD,eAAeoC,EAAK,UAAWA,EAAItD,GAC9EyM,EAAqBsB,MAAMD,EAAe9N,GAC1C,MAAMiB,EAAiB,IAAIpD,iBAAiBqD,eAAeoC,EAAIA,EAAK,UAAWtD,GAC/E/oB,KAAKg2B,gBAAkBhM,EAEvBhqB,KAAKsrB,iBAAiBnjB,UAEtB6hB,EAAelhB,KAAK,YAAa,CAC/BqW,UAAWnf,KAAKmf,cAEjB/X,MAAMC,IACPrH,KAAKsrB,iBAAiBljB,OAAO,IAAI/B,MAAM,mCAAmCgB,EAAO8Y,gBAIrF,UACEngB,KAAKopB,WAAY,EAEbppB,KAAK+1B,aACP/1B,KAAK+1B,WAAWQ,YAEhBv2B,KAAK+1B,WAAa,MAGpBnB,eAAerB,OAAOvzB,KAAK81B,OAC3B91B,KAAK81B,MAAQ,KAET91B,KAAKg2B,kBACPh2B,KAAKg2B,gBAAgB/K,UAErBjrB,KAAKg2B,gBAAkB,MAI3B,gBAAgBjxB,GACd,IAAKA,IAAWA,EAAOgkB,KACrB,MAAM,IAAI1iB,MAAM,kDAGlB,OAAIuuB,eAAeZ,IAAIjvB,EAAOgkB,MACrB6L,eAAe3zB,IAAI8D,EAAOgkB,MAG5B,IAAI/lB,UAAU+B,GAGvB,sBACE,OAAOowB,gBAKX,OAAOnyB,UApSS,GAuSlBpD,QAAQoD,UAAYA,UAEpB,MAAMonB,gBACJ,YAAYJ,EAAgBsD,EAAa9D,EAAezkB,GACtD/E,KAAKgqB,eAAiBA,EACtBhqB,KAAKstB,YAAcA,EACnBttB,KAAKiuB,WAAa,IAAIE,WACtBnuB,KAAK+2B,WAAa,IAAIxQ,aAAayQ,WAAW,CAC5C7N,MAAOmE,EAAYnE,MACnB4B,qBAAsB/qB,KAAKi3B,sBAAsBr1B,KAAK5B,MACtDuG,cAAexB,EAAOwB,gBAExBvG,KAAKk3B,QAAUnyB,EACf/E,KAAKooB,kBAAoB,IAAIrjB,EAAOqjB,kBAAkB,CACpDthB,QAAS/B,EAAOoyB,QAChBpwB,aAAchC,EAAOqyB,aAEvBp3B,KAAKopB,WAAY,EACjBppB,KAAKq3B,kBAAoB,KACzBr3B,KAAKs3B,oBAAsB,KAC3Bt3B,KAAKu3B,eAAiB/N,EACtBxpB,KAAKw3B,YAAc,KACnBx3B,KAAKy3B,cAAgB,KACrBz3B,KAAKyyB,UAAY,GACjBzyB,KAAK03B,aAAe,GACpB13B,KAAKmtB,wBAAyB,EAAIjqB,MAAMG,2BACxCrD,KAAK23B,sBAGP,UACE,GAAI33B,KAAKq3B,kBACP,OAAOr3B,KAAKq3B,kBAAkBlS,QAGhCnlB,KAAKopB,WAAY,EACjBppB,KAAKq3B,mBAAoB,EAAIn0B,MAAMG,2BAE/BrD,KAAKs3B,qBACPt3B,KAAKs3B,oBAAoBlvB,OAAO,IAAI/B,MAAM,oDAG5C,MAAMqsB,EAAS,GACf1yB,KAAKyyB,UAAUgC,SAAQ,SAAUmD,GAC3BA,GACFlF,EAAOjmB,KAAKmrB,EAAKC,eAGrB73B,KAAKyyB,UAAUxmB,OAAS,EACxBjM,KAAK03B,aAAazrB,OAAS,EAC3B,MAAM6rB,EAAa93B,KAAKgqB,eAAeQ,gBAAgB,YAAa,MAgBpE,OAfAkI,EAAOjmB,KAAKqrB,GACZ5vB,QAAQ4hB,IAAI4I,GAAQlrB,KAAK,KACvBxH,KAAK+2B,WAAWjE,QAEZ9yB,KAAKu3B,gBACPv3B,KAAKu3B,eAAeQ,kBAAkB,IAAI70B,MAAMuN,eAAe,2BAG7DzQ,KAAKgqB,iBACPhqB,KAAKgqB,eAAeiB,UACpBjrB,KAAKgqB,eAAiB,MAGxBhqB,KAAKq3B,kBAAkBlvB,WACtBnI,KAAKq3B,kBAAkBjvB,QACnBpI,KAAKq3B,kBAAkBlS,QAGhC,sBACE,MAAM,eACJ6E,EAAc,YACdsD,GACEttB,KACJgqB,EAAemM,GAAG,YAAa,CAAC5U,EAAMyW,MACpC,EAAI90B,MAAM6F,QAAQ/I,KAAKu3B,eAAgB,mDACvCv3B,KAAKw3B,YAAcx3B,KAAKu3B,eAAeU,gBAEvCj4B,KAAKw3B,YAAY1M,WAAaoN,IAC5Bl4B,KAAKy3B,cAAgB,CACnBhM,OAAQyM,EAAIzM,OACZC,MAAOwM,EAAIxM,QAIfsM,EAAKG,OAAS,KACZn4B,KAAKw3B,YAAYpF,OAAO5qB,MAAK,UAAU,MACrCnG,EAAK,KACLgxB,IAEIA,EACF2F,EAAKI,UAIP,EAAIl1B,MAAM6F,SAAQ,EAAI7F,MAAMsM,eAAenO,GAAQ,wCACnD22B,EAAKK,QAAQ,IAAIvwB,WAAWzG,GAAQ,EAAG,CAACA,QACvC+F,MAAMC,IACP2wB,EAAKzH,MAAMlpB,MAIf2wB,EAAKM,SAAWjxB,IACdrH,KAAKw3B,YAAY3E,OAAOxrB,GAExB2wB,EAAKO,MAAMnxB,MAAMoxB,IACf,IAAIx4B,KAAKopB,UAIT,MAAMoP,OAIZxO,EAAemM,GAAG,qBAAsB5U,IACtC,MAAMkX,GAAoB,EAAIv1B,MAAMG,2BAC9Bq1B,EAAa14B,KAAKw3B,YAuBxB,OAtBAkB,EAAWC,aAAanxB,KAAK,KACtBkxB,EAAWE,sBAAyBF,EAAWG,mBAC9C74B,KAAKy3B,eAAiBnK,EAAYxC,YACpCwC,EAAYxC,WAAW9qB,KAAKy3B,eAG9BiB,EAAW5N,WAAaoN,IAClB5K,EAAYxC,YACdwC,EAAYxC,WAAW,CACrBW,OAAQyM,EAAIzM,OACZC,MAAOwM,EAAIxM,UAMnB+M,EAAkBtwB,QAAQ,CACxBywB,qBAAsBF,EAAWE,qBACjCC,iBAAkBH,EAAWG,iBAC7BC,cAAeJ,EAAWI,iBAE3BL,EAAkBrwB,QACdqwB,EAAkBtT,UAE3B6E,EAAemM,GAAG,iBAAkB,CAAC5U,EAAMyW,MACzC,EAAI90B,MAAM6F,QAAQ/I,KAAKu3B,eAAgB,wDAEvC,MAAMwB,EAAc/4B,KAAKu3B,eAAeyB,eAAezX,EAAKiK,MAAOjK,EAAKxV,KAEnEgtB,GAKLf,EAAKG,OAAS,KACZY,EAAY3G,OAAO5qB,MAAK,UAAU,MAChCnG,EAAK,KACLgxB,IAEIA,EACF2F,EAAKI,UAIP,EAAIl1B,MAAM6F,SAAQ,EAAI7F,MAAMsM,eAAenO,GAAQ,6CACnD22B,EAAKK,QAAQ,IAAIvwB,WAAWzG,GAAQ,EAAG,CAACA,QACvC+F,MAAMC,IACP2wB,EAAKzH,MAAMlpB,MAIf2wB,EAAKM,SAAWjxB,IACd0xB,EAAYlG,OAAOxrB,GACnB2wB,EAAKO,MAAMnxB,MAAMoxB,IACf,IAAIx4B,KAAKopB,UAIT,MAAMoP,MA5BRR,EAAKI,UAgCTpO,EAAemM,GAAG,SAAU,EAC1BxK,cAEA3rB,KAAKi5B,UAAYtN,EAAQG,SAEzBwB,EAAYhD,YAAYniB,QAAQ,IAAIme,iBAAiBqF,EAAS3rB,SAEhEgqB,EAAemM,GAAG,gBAAgB,SAAU9oB,GAC1C,IAAIhG,EAEJ,OAAQgG,EAAG1M,MACT,IAAK,oBACH0G,EAAS,IAAInE,MAAMsN,kBAAkBnD,EAAG8S,QAAS9S,EAAG+S,MACpD,MAEF,IAAK,sBACH/Y,EAAS,IAAInE,MAAMK,oBAAoB8J,EAAG8S,SAC1C,MAEF,IAAK,sBACH9Y,EAAS,IAAInE,MAAMM,oBAAoB6J,EAAG8S,SAC1C,MAEF,IAAK,8BACH9Y,EAAS,IAAInE,MAAMY,4BAA4BuJ,EAAG8S,QAAS9S,EAAGzE,QAC9D,MAEF,IAAK,wBACHvB,EAAS,IAAInE,MAAMmN,sBAAsBhD,EAAG8S,QAAS9S,EAAGQ,SACxD,MAGJ,KAAMxG,aAAkBhB,OAAQ,CAC9B,MAAMyE,EAAM,0CACZ,EAAI5H,MAAMoJ,MAAMxB,GAGlBwiB,EAAYhD,YAAYliB,OAAOf,MAEjC2iB,EAAemM,GAAG,kBAAmB+C,IAGnC,GAFAl5B,KAAKs3B,qBAAsB,EAAIp0B,MAAMG,2BAEjCiqB,EAAYzC,WAAY,CAC1B,MAAMsO,EAAiBzO,IACrB1qB,KAAKs3B,oBAAoBnvB,QAAQ,CAC/BuiB,cAIJ,IACE4C,EAAYzC,WAAWsO,EAAgBD,EAAU9Y,MACjD,MAAO/S,GACPrN,KAAKs3B,oBAAoBlvB,OAAOiF,SAGlCrN,KAAKs3B,oBAAoBlvB,OAAO,IAAIlF,MAAMsN,kBAAkB0oB,EAAU/Y,QAAS+Y,EAAU9Y,OAG3F,OAAOpgB,KAAKs3B,oBAAoBnS,UAElC6E,EAAemM,GAAG,aAAc5U,IAC1B+L,EAAYxC,YACdwC,EAAYxC,WAAW,CACrBW,OAAQlK,EAAKtV,OACbyf,MAAOnK,EAAKtV,SAIhBjM,KAAKmtB,uBAAuBhlB,QAAQoZ,KAEtCyI,EAAemM,GAAG,kBAAmB5U,IACnC,GAAIvhB,KAAKopB,UACP,OAGF,MAAMwO,EAAO53B,KAAKyyB,UAAUlR,EAAKmM,WAEjCkK,EAAKwB,iBAAiB7X,EAAK2P,aAAc3P,EAAKoN,UAEhD3E,EAAemM,GAAG,YAAa5U,IAC7B,GAAIvhB,KAAKopB,UACP,OAGF,MAAOiD,EAAIljB,EAAMkwB,GAAgB9X,EAEjC,IAAIvhB,KAAKiuB,WAAW+F,IAAI3H,GAIxB,OAAQljB,GACN,IAAK,OACH,MAAMpE,EAAS/E,KAAKk3B,QAEpB,GAAI,UAAWmC,EAAc,CAC3B,MAAMC,EAAgBD,EAAa9I,OACnC,EAAIrtB,MAAMoJ,MAAM,8BAA8BgtB,GAC9Ct5B,KAAKiuB,WAAW9lB,QAAQkkB,EAAIiN,GAC5B,MAGF,IAAIC,EAAe,KAEfx0B,EAAOyjB,QAAUhiB,WAAWgzB,eAAiBhzB,WAAWgzB,cAAcluB,UACxEiuB,EAAe,CACb,aAAapb,EAAM/Y,GACjBoB,WAAWgzB,cAAcC,UAAUtb,EAAM/Y,MAM/C,MAAM+Y,EAAO,IAAIoI,aAAamT,eAAeL,EAAc,CACzDrX,gBAAiBjd,EAAOid,gBACxB0G,gBAAiB3jB,EAAO2jB,gBACxBL,aAActjB,EAAOsjB,aACrB0C,qBAAsB/qB,KAAKi3B,sBAAsBr1B,KAAK5B,MACtDu5B,iBAEFv5B,KAAK+2B,WAAWn1B,KAAKuc,GAAM/W,MAAMC,GACxB2iB,EAAeQ,gBAAgB,eAAgB,CACpD6B,QAEDsN,QAAQ,MACJ50B,EAAOwjB,qBAAuBpK,EAAKoD,OACtCpD,EAAKoD,KAAO,MAGdvhB,KAAKiuB,WAAW9lB,QAAQkkB,EAAIlO,KAE9B,MAEF,IAAK,WACL,IAAK,QACHne,KAAKiuB,WAAW9lB,QAAQkkB,EAAIgN,GAC5B,MAEF,QACE,MAAM,IAAIhzB,MAAM,kCAAkC8C,MAGxD6gB,EAAemM,GAAG,MAAO5U,IACvB,GAAIvhB,KAAKopB,UACP,OAGF,MAAOiD,EAAIqB,EAAWvkB,EAAMywB,GAAarY,EACnCsY,EAAY75B,KAAKyyB,UAAU/E,GAEjC,IAAImM,EAAU3L,KAAK8F,IAAI3H,GAIvB,OAAQljB,GACN,IAAK,QACH0wB,EAAU3L,KAAK/lB,QAAQkkB,EAAIuN,GAC3B,MAAME,EAA0B,IAE5BF,GAAa,SAAUA,GAAaA,EAAUrY,KAAKtV,OAAS6tB,IAC9DD,EAAUzL,oBAAqB,GAGjC,MAEF,QACE,MAAM,IAAI/nB,MAAM,2BAA2B8C,MAKjD6gB,EAAemM,GAAG,cAAe5U,IAC3BvhB,KAAKopB,WAILkE,EAAYxC,YACdwC,EAAYxC,WAAW,CACrBW,OAAQlK,EAAKkK,OACbC,MAAOnK,EAAKmK,UAIlB1B,EAAemM,GAAG,qBAAsBn2B,KAAKi3B,sBAAsBr1B,KAAK5B,OACxEgqB,EAAemM,GAAG,mBAAoB,CAAC5U,EAAMyW,KAC3C,GAAIh4B,KAAKopB,UAEP,YADA4O,EAAKzH,MAAM,IAAIlqB,MAAM,yBAIvB,IAAI0zB,GAAU,EAEd/B,EAAKG,OAAS,KACR4B,EACF/B,EAAKI,SAIP2B,GAAU,EACV/5B,KAAKooB,kBAAkB7gB,MAAMga,GAAM/Z,MAAK,SAAUwyB,GAChDhC,EAAKK,QAAQ2B,EAAa,EAAG,CAACA,EAAYnyB,SAASka,YAClD3a,OAAM,SAAUC,GACjB2wB,EAAKzH,MAAMlpB,UAMnB,uBAAsB,UACpB4yB,IAEIj6B,KAAKopB,WAILppB,KAAKstB,YAAYvC,sBACnB/qB,KAAKstB,YAAYvC,qBAAqBkP,GAI1C,UACE,OAAOj6B,KAAKgqB,eAAeQ,gBAAgB,UAAW,MAGxD,QAAQwB,GACN,IAAK3M,OAAOC,UAAU0M,IAAeA,GAAc,GAAKA,EAAahsB,KAAKi5B,UACxE,OAAO/wB,QAAQE,OAAO,IAAI/B,MAAM,yBAGlC,MAAMqnB,EAAY1B,EAAa,EAE/B,GAAI0B,KAAa1tB,KAAK03B,aACpB,OAAO13B,KAAK03B,aAAahK,GAG3B,MAAMvI,EAAUnlB,KAAKgqB,eAAeQ,gBAAgB,UAAW,CAC7DkD,cACClmB,KAAKmmB,IACN,GAAI3tB,KAAKopB,UACP,MAAM,IAAI/iB,MAAM,uBAGlB,MAAMuxB,EAAO,IAAIvR,aAAaqH,EAAWC,EAAU3tB,KAAMA,KAAKk3B,QAAQ3wB,cAAevG,KAAKk3B,QAAQ1O,QAElG,OADAxoB,KAAKyyB,UAAU/E,GAAakK,EACrBA,IAGT,OADA53B,KAAK03B,aAAahK,GAAavI,EACxBA,EAGT,aAAa+G,GACX,OAAOlsB,KAAKgqB,eAAeQ,gBAAgB,eAAgB,CACzD0B,QACC9kB,OAAM,SAAUC,GACjB,OAAOa,QAAQE,OAAO,IAAI/B,MAAMgB,OAIpC,eAAeqmB,EAAWiB,GACxB,OAAO3uB,KAAKgqB,eAAeQ,gBAAgB,iBAAkB,CAC3DkD,YACAiB,WAIJ,aAAanB,GACX,OAAOxtB,KAAKgqB,eAAeQ,gBAAgB,eAAgB,CACzDsB,SAAU9rB,KAAKi5B,UACfzL,kBAAmBA,GAAqBA,EAAkB6C,UAAY,KACtE6J,SAAUl6B,KAAKw3B,YAAcx3B,KAAKw3B,YAAY0C,SAAW,OACxDP,QAAQ,KACLnM,GACFA,EAAkB2M,kBAKxB,kBACE,OAAOn6B,KAAKgqB,eAAeQ,gBAAgB,kBAAmB,MAGhE,eAAe6B,GACb,MAAkB,kBAAPA,EACFnkB,QAAQE,OAAO,IAAI/B,MAAM,iCAG3BrG,KAAKgqB,eAAeQ,gBAAgB,iBAAkB,CAC3D6B,OAIJ,gBACE,OAAOrsB,KAAKgqB,eAAeQ,gBAAgB,gBAAiB,MAG9D,gBACE,OAAOxqB,KAAKgqB,eAAeQ,gBAAgB,gBAAiB,MAG9D,cACE,OAAOxqB,KAAKgqB,eAAeQ,gBAAgB,cAAe,MAG5D,uBACE,OAAOxqB,KAAKgqB,eAAeQ,gBAAgB,uBAAwB,MAGrE,gBACE,OAAOxqB,KAAKgqB,eAAeQ,gBAAgB,gBAAiB,MAG9D,iBACE,OAAOxqB,KAAKgqB,eAAeQ,gBAAgB,iBAAkB,MAG/D,gBACE,OAAOxqB,KAAKgqB,eAAeQ,gBAAgB,gBAAiB,MAG9D,aACE,OAAOxqB,KAAKgqB,eAAeQ,gBAAgB,aAAc,MAG3D,2BACE,OAAOxqB,KAAKgqB,eAAeQ,gBAAgB,2BAA4B,MAAMhjB,KAAK4yB,GACzE,IAAItT,yBAAyBuT,sBAAsBD,IAI9D,iBACE,OAAOp6B,KAAKgqB,eAAeQ,gBAAgB,iBAAkB,MAG/D,cACE,OAAOxqB,KAAKgqB,eAAeQ,gBAAgB,cAAe,MAAMhjB,KAAK4yB,IAC5D,CACL7qB,KAAM6qB,EAAQ,GACdE,SAAUF,EAAQ,GAAK,IAAIvT,UAAU0T,SAASH,EAAQ,IAAM,KAC5DI,2BAA4Bx6B,KAAKw3B,YAAcx3B,KAAKw3B,YAAY0C,SAAW,QAKjF,WACE,OAAOl6B,KAAKgqB,eAAeQ,gBAAgB,WAAY,MAGzD,eACE,OAAOxqB,KAAKgqB,eAAeQ,gBAAgB,UAAW,MAAMhjB,KAAK,KAC/D,IAAK,IAAInH,EAAI,EAAGolB,EAAKzlB,KAAKyyB,UAAUxmB,OAAQ5L,EAAIolB,EAAIplB,IAAK,CACvD,MAAMu3B,EAAO53B,KAAKyyB,UAAUpyB,GAE5B,GAAIu3B,EAAM,CACR,MAAM6C,EAAoB7C,EAAKpE,UAE/B,IAAKiH,EACH,MAAM,IAAIp0B,MAAM,sBAAsBhG,EAAI,8BAKhDL,KAAKiuB,WAAW6E,QAChB9yB,KAAK+2B,WAAWjE,UAIpB,oBACE,MAAM/tB,EAAS/E,KAAKk3B,QACpB,OAAO,EAAIh0B,MAAMW,QAAQ7D,KAAM,gBAAiB,CAC9C6oB,iBAAkB9jB,EAAO8jB,iBACzBH,gBAAiB3jB,EAAO2jB,mBAM9B,MAAMyF,WACJ,cACEnuB,KAAK06B,MAAQ55B,OAAOY,OAAO,MAG7B,WAAWi5B,GACT,OAAI36B,KAAK06B,MAAMC,GACN36B,KAAK06B,MAAMC,GAGb36B,KAAK06B,MAAMC,GAAS,CACzB1V,YAAY,EAAI/hB,MAAMG,2BACtBke,KAAM,KACNqZ,UAAU,GAId,IAAID,EAAO5J,EAAW,MACpB,GAAIA,EAGF,OAFA/wB,KAAK66B,WAAWF,GAAO1V,WAAWE,QAAQ3d,KAAKupB,GAExC,KAGT,MAAMhR,EAAM/f,KAAK06B,MAAMC,GAEvB,IAAK5a,IAAQA,EAAI6a,SACf,MAAM,IAAIv0B,MAAM,6CAA6Cs0B,MAG/D,OAAO5a,EAAIwB,KAGb,IAAIoZ,GACF,MAAM5a,EAAM/f,KAAK06B,MAAMC,GACvB,QAAO5a,GAAMA,EAAI6a,SAGnB,QAAQD,EAAOpZ,GACb,MAAMxB,EAAM/f,KAAK66B,WAAWF,GAE5B5a,EAAI6a,UAAW,EACf7a,EAAIwB,KAAOA,EACXxB,EAAIkF,WAAW9c,QAAQoZ,GAGzB,QACEvhB,KAAK06B,MAAQ55B,OAAOY,OAAO,OAK/B,MAAMo5B,WACJ,YAAYrK,GACVzwB,KAAK+6B,oBAAsBtK,EAC3BzwB,KAAKg7B,WAAa,KAGpB,cACE,OAAOh7B,KAAK+6B,oBAAoB9V,WAAWE,QAG7C,SACEnlB,KAAK+6B,oBAAoBlI,UAK7B,MAAM/B,mBAAqB,WACzB,MAAMmK,EAAoB,IAAIC,QAE9B,MAAMpK,EACJ,aAAY,SACVC,EAAQ,OACRhsB,EAAM,KACNmpB,EAAI,WACJD,EAAU,aACV+B,EAAY,UACZtC,EAAS,cACT0B,EAAa,aACbQ,EAAY,yBACZoB,GAA2B,EAAK,OAChCxI,GAAS,IAETxoB,KAAK+wB,SAAWA,EAChB/wB,KAAK+E,OAASA,EACd/E,KAAKkuB,KAAOA,EACZluB,KAAKiuB,WAAaA,EAClBjuB,KAAKm7B,gBAAkB,KACvBn7B,KAAKgwB,aAAeA,EACpBhwB,KAAK4tB,WAAaF,EAClB1tB,KAAKovB,cAAgBA,EACrBpvB,KAAK4vB,aAAeA,EACpB5vB,KAAKguB,QAAUxF,EACfxoB,KAAKo7B,SAAU,EACfp7B,KAAKq7B,sBAAwB,KAC7Br7B,KAAKs7B,eAAgB,EACrBt7B,KAAKu7B,2BAAyD,IAA7BvK,GAAuD,qBAAXjJ,OAC7E/nB,KAAKw7B,WAAY,EACjBx7B,KAAKilB,YAAa,EAAI/hB,MAAMG,2BAC5BrD,KAAKynB,KAAO,IAAIqT,WAAW96B,MAC3BA,KAAKy7B,eAAiBz7B,KAAK07B,UAAU95B,KAAK5B,MAC1CA,KAAK27B,mBAAqB37B,KAAK47B,cAAch6B,KAAK5B,MAClDA,KAAK67B,WAAa77B,KAAK87B,MAAMl6B,KAAK5B,MAClCA,KAAK0mB,QAAU3hB,EAAOgqB,cAAc3oB,OAGtC,gBACE,OAAOpG,KAAKilB,WAAWE,QAAQ/d,OAAM,eAGvC,oBAAmB,aACjB8pB,GAAe,EAAK,sBACpBC,IAEA,GAAInxB,KAAKw7B,UACP,OAGF,GAAIx7B,KAAK0mB,QAAS,CAChB,GAAIuU,EAAkBjH,IAAIh0B,KAAK0mB,SAC7B,MAAM,IAAIrgB,MAAM,mJAGlB40B,EAAkBc,IAAI/7B,KAAK0mB,SAGzB1mB,KAAKguB,SAAWxnB,WAAWw1B,gBAAkBx1B,WAAWw1B,eAAe1wB,UACzEtL,KAAKi8B,QAAUz1B,WAAWw1B,eAAet6B,OAAO1B,KAAK4tB,YACrD5tB,KAAKi8B,QAAQC,KAAKl8B,KAAKgwB,cACvBhwB,KAAKi8B,QAAQE,eAAiBn8B,KAAKi8B,QAAQG,qBAG7C,MAAM,cACJrN,EAAa,SACbC,EAAQ,UACR5kB,EAAS,WACT+kB,EAAU,WACVE,GACErvB,KAAK+E,OACT/E,KAAKq8B,IAAM,IAAI3V,QAAQ4V,eAAevN,EAAe/uB,KAAKiuB,WAAYjuB,KAAKkuB,KAAMluB,KAAKovB,cAAepvB,KAAK4vB,aAAcT,EAAYgC,GACpInxB,KAAKq8B,IAAIE,aAAa,CACpBnyB,YACA4kB,WACAkC,eACA7B,eAEFrvB,KAAKm7B,gBAAkB,EACvBn7B,KAAKs7B,eAAgB,EAEjBt7B,KAAKq7B,uBACPr7B,KAAKq7B,wBAIT,OAAO9K,EAAQ,MACbvwB,KAAKo7B,SAAU,EACfp7B,KAAKw7B,WAAY,EAEbx7B,KAAKq8B,KACPr8B,KAAKq8B,IAAIG,aAGPx8B,KAAK0mB,SACPuU,EAAkB1H,OAAOvzB,KAAK0mB,SAGhC1mB,KAAK+wB,SAASR,GAAS,IAAInuB,eAAeM,4BAA4B,8BAA6B1C,KAAK4tB,WAAa,GAAK,WAG5H,sBACO5tB,KAAKs7B,eAQNt7B,KAAKi8B,SACPj8B,KAAKi8B,QAAQQ,mBAAmBz8B,KAAKgwB,cAGnChwB,KAAKo7B,SAITp7B,KAAK07B,aAfE17B,KAAKq7B,wBACRr7B,KAAKq7B,sBAAwBr7B,KAAKy7B,gBAiBxC,YACEz7B,KAAKo7B,SAAU,EAEXp7B,KAAKw7B,YAILx7B,KAAKynB,KAAKuT,WACZh7B,KAAKynB,KAAKuT,WAAWh7B,KAAK27B,oBAE1B37B,KAAK47B,iBAIT,gBACM57B,KAAKu7B,0BACPxT,OAAO2U,sBAAsB,KAC3B18B,KAAK67B,aAAaz0B,MAAMpH,KAAK6yB,OAAOjxB,KAAK5B,SAG3CkI,QAAQC,UAAUX,KAAKxH,KAAK67B,YAAYz0B,MAAMpH,KAAK6yB,OAAOjxB,KAAK5B,OAInE,cACMA,KAAKw7B,YAITx7B,KAAKm7B,gBAAkBn7B,KAAKq8B,IAAIM,oBAAoB38B,KAAKgwB,aAAchwB,KAAKm7B,gBAAiBn7B,KAAKy7B,eAAgBz7B,KAAKi8B,SAEnHj8B,KAAKm7B,kBAAoBn7B,KAAKgwB,aAAaE,UAAUjkB,SACvDjM,KAAKo7B,SAAU,EAEXp7B,KAAKgwB,aAAaG,YACpBnwB,KAAKq8B,IAAIG,aAELx8B,KAAK0mB,SACPuU,EAAkB1H,OAAOvzB,KAAK0mB,SAGhC1mB,KAAK+wB,eAOb,OAAOD,EA1KkB,GA6KrB7tB,QAAU,UAChBrD,QAAQqD,QAAUA,QAClB,MAAML,MAAQ,WACdhD,QAAQgD,MAAQA,OAIV,SAAUjD,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQo3B,WAAap3B,EAAQ85B,oBAAiB,EAE9C,IAAIx2B,EAAQ/C,EAAoB,GAEhC,MAAMy8B,EACJ,aAAY,MACVzT,EAAK,qBACL4B,EAAoB,cACpBxkB,EAAgBC,WAAWC,WAEvBzG,KAAK+F,cAAgB62B,IACvB,EAAI15B,EAAM8C,aAAa,qCAGzBhG,KAAKmpB,MAAQA,EACbnpB,KAAKi3B,sBAAwBlM,EAC7B/qB,KAAK2G,UAAYJ,EACjBvG,KAAK68B,gBAAkB,GACvB78B,KAAK88B,aAAe,KAGtB,kBAAkBC,GAChB/8B,KAAK68B,gBAAgBpwB,KAAKswB,GAE1B/8B,KAAK2G,UAAUq2B,MAAMjB,IAAIgB,GAG3B,WAAWE,GACT,IAAIH,EAAe98B,KAAK88B,aAEnBA,IACHA,EAAe98B,KAAK88B,aAAe98B,KAAK2G,UAAUC,cAAc,SAChEk2B,EAAazQ,GAAK,wBAAwBrsB,KAAKmpB,MAE/CnpB,KAAK2G,UAAUgH,gBAAgBuvB,qBAAqB,QAAQ,GAAGtvB,YAAYkvB,IAG7E,MAAMK,EAAaL,EAAaM,MAChCD,EAAWE,WAAWJ,EAAME,EAAWG,SAASrxB,QAGlD,QACEjM,KAAK68B,gBAAgBpI,QAAQsI,IAC3B/8B,KAAK2G,UAAUq2B,MAAMzJ,OAAOwJ,KAE9B/8B,KAAK68B,gBAAgB5wB,OAAS,EAE1BjM,KAAK88B,eACP98B,KAAK88B,aAAaS,SAClBv9B,KAAK88B,aAAe,MAIxB,WAAW3e,GACT,GAAIA,EAAKqf,UAAYrf,EAAKsf,YACxB,OAKF,GAFAtf,EAAKqf,UAAW,EAEZx9B,KAAK09B,0BAA2B,CAClC,MAAMX,EAAiB5e,EAAKwf,uBAE5B,GAAIZ,EAAgB,CAClB/8B,KAAK49B,kBAAkBb,GAEvB,UACQA,EAAetR,OACrB,MAAOpe,GAOP,MANArN,KAAKi3B,sBAAsB,CACzBgD,UAAW/2B,EAAMa,qBAAqB+a,uBAGxC,EAAI5b,EAAMoJ,MAAM,wBAAwBywB,EAAec,aAAaxwB,OACpE8Q,EAAKuK,iBAAkB,EACjBrb,GAIV,OAGF,MAAM4vB,EAAO9e,EAAK2f,qBAElB,GAAIb,EAAM,CAGR,GAFAj9B,KAAKq9B,WAAWJ,GAEZj9B,KAAK+9B,2BACP,aAGI,IAAI71B,QAAQC,IAChB,MAAME,EAAUrI,KAAKg+B,sBAAsB71B,GAE3CnI,KAAKi+B,sBAAsB,CAAChB,GAAO,CAAC9e,GAAO9V,MAKjD,sBAAsB0oB,IACpB,EAAI7tB,EAAM8C,aAAa,4CAGzB,gCACE,MAAMk4B,EAAsC,qBAAnBl+B,KAAK2G,aAA+B3G,KAAK2G,UAAUq2B,MAC5E,OAAO,EAAI95B,EAAMW,QAAQ7D,KAAM,4BAA6Bk+B,GAG9D,kCACE,EAAIh7B,EAAM8C,aAAa,iDAGzB,qBACE,EAAI9C,EAAM8C,aAAa,oCAGzB,sBAAsBm4B,EAAOC,EAAa/1B,IACxC,EAAInF,EAAM8C,aAAa,6CAK3B,IAAIgxB,EACJp3B,EAAQo3B,WAAaA,EAEnBp3B,EAAQo3B,WAAaA,EAAa,cAAgC4F,EAChE,YAAY73B,GACV2B,MAAM3B,GACN/E,KAAKq+B,eAAiB,CACpBC,SAAU,GACVC,cAAe,GAEjBv+B,KAAKw+B,eAAiB,EAGxB,iCACE,IAAIN,GAAY,EAEhB,GAAyB,qBAAdO,UACTP,GAAY,MACP,CACL,MAAM19B,EAAI,mCAAmC6N,KAAKowB,UAAUC,WAExDl+B,GAAKA,EAAE,IAAM,KACf09B,GAAY,GAIhB,OAAO,EAAIh7B,EAAMW,QAAQ7D,KAAM,6BAA8Bk+B,GAG/D,sBAAsBnN,GACpB,SAAS4N,KACP,EAAIz7B,EAAM6F,SAASV,EAAQgqB,KAAM,6CACjChqB,EAAQgqB,MAAO,EAEf,MAAO/rB,EAAQg4B,SAASryB,OAAS,GAAK3F,EAAQg4B,SAAS,GAAGjM,KAAM,CAC9D,MAAMuM,EAAet4B,EAAQg4B,SAASO,QACtCxL,WAAWuL,EAAa7N,SAAU,IAItC,MAAMzqB,EAAUtG,KAAKq+B,eACfh2B,EAAU,CACdgkB,GAAI,sBAAsB/lB,EAAQi4B,gBAClClM,MAAM,EACN/B,SAAUqO,EACV5N,YAGF,OADAzqB,EAAQg4B,SAAS7xB,KAAKpE,GACfA,EAGT,oBACE,MAAMy2B,EAAkB,WACtB,OAAOC,KAAK,69CAGd,OAAO,EAAI77B,EAAMW,QAAQ7D,KAAM,gBAAiB8+B,KAGlD,sBAAsBX,EAAOnB,EAAO30B,GAClC,SAAS22B,EAAMzd,EAAM0d,GACnB,OAAO1d,EAAKL,WAAW+d,IAAW,GAAK1d,EAAKL,WAAW+d,EAAS,IAAM,GAAK1d,EAAKL,WAAW+d,EAAS,IAAM,EAAkC,IAA9B1d,EAAKL,WAAW+d,EAAS,GAGzI,SAASC,EAAa/8B,EAAG88B,EAAQ1B,EAAQ4B,GACvC,MAAMC,EAASj9B,EAAE+J,UAAU,EAAG+yB,GACxBI,EAASl9B,EAAE+J,UAAU+yB,EAAS1B,GACpC,OAAO6B,EAASD,EAASE,EAG3B,IAAIh/B,EAAGolB,EAEP,MAAMrf,EAASpG,KAAK2G,UAAUC,cAAc,UAE5CR,EAAOH,MAAQ,EACfG,EAAOF,OAAS,EAChB,MAAMo5B,EAAMl5B,EAAOS,WAAW,MAC9B,IAAI04B,EAAS,EAEb,SAASC,EAAY7+B,EAAMowB,GAGzB,GAFAwO,IAEIA,EAAS,GAGX,OAFA,EAAIr8B,EAAMoJ,MAAM,qCAChBykB,IAIFuO,EAAInhB,KAAO,QAAUxd,EACrB2+B,EAAIG,SAAS,IAAK,EAAG,IACrB,MAAM7F,EAAY0F,EAAII,aAAa,EAAG,EAAG,EAAG,GAExC9F,EAAUrY,KAAK,GAAK,EACtBwP,IAIFsC,WAAWmM,EAAY59B,KAAK,KAAMjB,EAAMowB,IAG1C,MAAMyN,EAAiB,KAAKjyB,KAAKC,QAAQxM,KAAKw+B,mBAC9C,IAAIjd,EAAOvhB,KAAK2/B,cAChB,MAAMC,EAAiB,IACvBre,EAAO2d,EAAa3d,EAAMqe,EAAgBpB,EAAevyB,OAAQuyB,GACjE,MAAMqB,EAAsB,GACtBC,EAAa,WACnB,IAAIC,EAAWf,EAAMzd,EAAMse,GAE3B,IAAKx/B,EAAI,EAAGolB,EAAK+Y,EAAevyB,OAAS,EAAG5L,EAAIolB,EAAIplB,GAAK,EACvD0/B,EAAWA,EAAWD,EAAad,EAAMR,EAAgBn+B,GAAK,EAG5DA,EAAIm+B,EAAevyB,SACrB8zB,EAAWA,EAAWD,EAAad,EAAMR,EAAiB,MAAOn+B,GAAK,GAGxEkhB,EAAO2d,EAAa3d,EAAMse,EAAqB,GAAG,EAAI38B,EAAM4M,UAAUiwB,IACtE,MAAM36B,EAAM,iCAAiC46B,KAAKze,OAC5C0b,EAAO,4BAA4BuB,UAAuBp5B,KAChEpF,KAAKq9B,WAAWJ,GAChB,MAAMgD,EAAQ,GAEd,IAAK5/B,EAAI,EAAGolB,EAAKuX,EAAM/wB,OAAQ5L,EAAIolB,EAAIplB,IACrC4/B,EAAMxzB,KAAKuwB,EAAM38B,GAAG6/B,YAGtBD,EAAMxzB,KAAK+xB,GAEX,MAAM2B,EAAMngC,KAAK2G,UAAUC,cAAc,OAOzC,IALAu5B,EAAIC,MAAMC,WAAa,SACvBF,EAAIC,MAAMn6B,MAAQk6B,EAAIC,MAAMl6B,OAAS,OACrCi6B,EAAIC,MAAME,SAAW,WACrBH,EAAIC,MAAMG,IAAMJ,EAAIC,MAAMI,KAAO,MAE5BngC,EAAI,EAAGolB,EAAKwa,EAAMh0B,OAAQ5L,EAAIolB,IAAMplB,EAAG,CAC1C,MAAMogC,EAAOzgC,KAAK2G,UAAUC,cAAc,QAE1C65B,EAAK3O,YAAc,KACnB2O,EAAKL,MAAMM,WAAaT,EAAM5/B,GAC9B8/B,EAAIvyB,YAAY6yB,GAGlBzgC,KAAK2G,UAAUg6B,KAAK/yB,YAAYuyB,GAEhCX,EAAYhB,EAAgB,KAC1Bx+B,KAAK2G,UAAUg6B,KAAKC,YAAYT,GAEhC93B,EAAQioB,eAOhB,MAAMoJ,EACJ,YAAYmH,GAAgB,gBAC1B7e,GAAkB,EAAI,gBACtB0G,GAAkB,EAAK,aACvBL,GAAe,EAAK,qBACpB0C,EAAuB,KAAI,aAC3BwO,EAAe,OAEfv5B,KAAK8gC,eAAiBhgC,OAAOY,OAAO,MAEpC,IAAK,MAAMrB,KAAKwgC,EACd7gC,KAAKK,GAAKwgC,EAAexgC,GAG3BL,KAAKgiB,iBAAsC,IAApBA,EACvBhiB,KAAK0oB,iBAAsC,IAApBA,EACvB1oB,KAAKqoB,cAAgC,IAAjBA,EACpBroB,KAAKi3B,sBAAwBlM,EAC7B/qB,KAAKu5B,aAAeA,EAGtB,uBACE,IAAKv5B,KAAKuhB,MAAQvhB,KAAK0oB,gBACrB,OAAO,KAGT,MAAMqU,EAAiB,IAAIgE,SAAS/gC,KAAKkgC,WAAYlgC,KAAKuhB,KAAM,IAMhE,OAJIvhB,KAAKu5B,cACPv5B,KAAKu5B,aAAayH,aAAahhC,MAG1B+8B,EAGT,qBACE,IAAK/8B,KAAKuhB,MAAQvhB,KAAK0oB,gBACrB,OAAO,KAGT,MAAMnH,GAAO,EAAIre,EAAMiM,eAAe,IAAIrH,WAAW9H,KAAKuhB,OACpDnc,EAAM,YAAYpF,KAAKihC,mBAAmBjB,KAAKze,OAC/C0b,EAAO,4BAA4Bj9B,KAAKkgC,mBAAmB96B,KAMjE,OAJIpF,KAAKu5B,cACPv5B,KAAKu5B,aAAayH,aAAahhC,KAAMoF,GAGhC63B,EAGT,iBAAiB/O,EAAMgT,GACrB,QAAuCzgB,IAAnCzgB,KAAK8gC,eAAeI,GACtB,OAAOlhC,KAAK8gC,eAAeI,GAG7B,IAAIC,EAAMC,EAEV,IACED,EAAOjT,EAAKjtB,IAAIjB,KAAKkgC,WAAa,SAAWgB,GAC7C,MAAO7zB,GACP,IAAKrN,KAAKqoB,aACR,MAAMhb,EAUR,OAPIrN,KAAKi3B,uBACPj3B,KAAKi3B,sBAAsB,CACzBgD,UAAW/2B,EAAMa,qBAAqBgb,oBAI1C,EAAI7b,EAAMoJ,MAAM,2CAA2Ce,OACpDrN,KAAK8gC,eAAeI,GAAa,SAAUzgC,EAAG4gC,KAGvD,GAAIrhC,KAAKgiB,iBAAmB9e,EAAMgN,sBAAsB7O,MAAO,CAC7D,IAAI6xB,EACAoO,EAAK,GAET,IAAK,IAAIjhC,EAAI,EAAGolB,EAAK0b,EAAKl1B,OAAQ5L,EAAIolB,EAAIplB,IACxC+gC,EAAUD,EAAK9gC,GAGb6yB,OADmBzS,IAAjB2gB,EAAQlO,KACHkO,EAAQlO,KAAKlmB,KAAK,KAElB,GAGTs0B,GAAM,KAAOF,EAAQG,IAAM,IAAMrO,EAAO,OAG1C,OAAOlzB,KAAK8gC,eAAeI,GAAa,IAAIjf,SAAS,IAAK,OAAQqf,GAGpE,OAAOthC,KAAK8gC,eAAeI,GAAa,SAAUzgC,EAAG4gC,GACnD,IAAK,IAAIhhC,EAAI,EAAGolB,EAAK0b,EAAKl1B,OAAQ5L,EAAIolB,EAAIplB,IACxC+gC,EAAUD,EAAK9gC,GAEK,UAAhB+gC,EAAQG,MACVH,EAAQlO,KAAO,CAACmO,GAAOA,IAGzB5gC,EAAE2gC,EAAQG,KAAK1gB,MAAMpgB,EAAG2gC,EAAQlO,QAOxCtzB,EAAQ85B,eAAiBA,GAInB,SAAU/5B,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQ0nB,sBAAwB1nB,EAAQwnB,uBAAoB,EAE5D,IAAIhlB,EAAiBjC,EAAoB,GAErCwmB,EAAWxmB,EAAoB,GAE/B+C,EAAQ/C,EAAoB,GAEhC,IAAIinB,EAAoB,MACtB,eACE,EAAIlkB,EAAM8C,aAAa,wCAI3BpG,EAAQwnB,kBAAoBA,EAC5B,IAAIE,EAAwB,MAC1B,eACE,EAAIpkB,EAAM8C,aAAa,4CAI3BpG,EAAQ0nB,sBAAwBA,EAE5BX,EAAS/hB,WACXhF,EAAQwnB,kBAAoBA,EAAoB,cAAchlB,EAAeuD,kBAC3E,OAAOM,EAAOC,GACZ,GAAID,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAIG,MAAM,uBAGlB,MAAMm7B,EAAS,oBAAQ,GAEjBp7B,EAASo7B,EAAOC,aAAax7B,EAAOC,GAC1C,MAAO,CACLE,SACAE,QAASF,EAAOS,WAAW,SAKjCjH,EAAQ0nB,sBAAwBA,EAAwB,cAAcllB,EAAeqD,sBACnF,WAAWL,EAAK4B,GACd,OAAO,IAAIkB,QAAQ,CAACC,EAASC,KAC3B,MAAMs5B,EAAK,oBAAQ,GAEnBA,EAAGC,SAASv8B,EAAK,CAACmrB,EAAOhP,MACnBgP,GAAUhP,EAKdpZ,EAAQ,CACNN,SAAU,IAAIC,WAAWyZ,GACzBva,oBANAoB,EAAO,IAAI/B,MAAMkqB,YAiBvB,SAAU5wB,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQisB,uBAAoB,EAE5B,MAAMA,EACJ,cACE7rB,KAAK4hC,SAAW,IAAIrT,IACpBvuB,KAAK6hC,WAAY,EACjB7hC,KAAK8hC,cAAgB,KACrB9hC,KAAK+hC,gBAAkB,KAGzB,iBAAiBpgC,EAAKqgC,GACpB,OAAIhiC,KAAK4hC,SAAS5N,IAAIryB,GACb3B,KAAK4hC,SAAS3gC,IAAIU,IAG3B3B,KAAK4hC,SAASlgB,IAAI/f,EAAKqgC,GAEhBA,GAGT,SAASrgC,EAAKN,GACRrB,KAAK4hC,SAAS3gC,IAAIU,KAASN,GAC7BrB,KAAKiiC,eAGPjiC,KAAK4hC,SAASlgB,IAAI/f,EAAKN,GAGzB,SACE,OAA2B,IAAvBrB,KAAK4hC,SAASP,KACT,KAGFvgC,OAAOohC,YAAYliC,KAAK4hC,UAGjC,WACE,OAAO5hC,KAAK4hC,SAASP,KAGvB,eACOrhC,KAAK6hC,YACR7hC,KAAK6hC,WAAY,EAEiB,oBAAvB7hC,KAAK8hC,eACd9hC,KAAK8hC,iBAKX,gBACM9hC,KAAK6hC,YACP7hC,KAAK6hC,WAAY,EAEmB,oBAAzB7hC,KAAK+hC,iBACd/hC,KAAK+hC,oBAObniC,EAAQisB,kBAAoBA,GAItB,SAAUlsB,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQyE,4BAAyB,EAEjC,IAAIsiB,EAAWxmB,EAAoB,GAEnC,MAAMgiC,EAAsBrhC,OAAOY,OAAO,OAExC,WACMilB,EAAS/hB,WACXu9B,EAAoBzZ,iBAAkB,IAF1C,GAMF,MAAMrkB,EAAyBvD,OAAOshC,OAAOD,GAC7CviC,EAAQyE,uBAAyBA,GAI3B,SAAU1E,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQ08B,oBAAiB,EAEzB,IAAIp5B,EAAQ/C,EAAoB,GAE5BkiC,EAAkBliC,EAAoB,IAEtCmiC,EAAgB,GAChBC,EAAgB,IAChBC,EAAiB,KACjBC,EAAmB,IACnBC,GAAuB,EACvBC,EAAsB,IACtBC,EAAoB,GAExB,SAASC,EAA2BvD,GAC7BA,EAAIwD,sBACPxD,EAAIyD,cAAgBzD,EAAIzmB,KACxBymB,EAAI0D,iBAAmB1D,EAAIxmB,QAC3BwmB,EAAI2D,gBAAkB3D,EAAI9Q,OAC1B8Q,EAAI4D,eAAiB5D,EAAIj2B,MACzBi2B,EAAI6D,mBAAqB7D,EAAI8D,UAC7B9D,EAAI+D,mBAAqB/D,EAAIl1B,UAC7Bk1B,EAAIgE,sBAAwBhE,EAAIiE,aAChCjE,EAAIkE,iBAAmBlE,EAAIkE,kBAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/DlE,EAAImE,gBAAkB,GACtB3iC,OAAOC,eAAeu+B,EAAK,sBAAuB,CAChDr+B,IAAK,WACH,OAAOjB,KAAKwjC,oBAGhB1iC,OAAOC,eAAeu+B,EAAK,6BAA8B,CACvDr+B,IAAK,WACH,IAAIT,EAAIR,KAAKwjC,iBACTxgB,EAAIxiB,EAAE,GACN4hB,EAAI5hB,EAAE,GACNC,EAAID,EAAE,GACNE,EAAIF,EAAE,GACNmf,EAAInf,EAAE,GACNkjC,EAAIljC,EAAE,GACNmjC,EAAQ3gB,EAAItiB,EAAI0hB,EAAI3hB,EACpBmjC,EAAQxhB,EAAI3hB,EAAIuiB,EAAItiB,EACxB,MAAO,CAACA,EAAIijC,EAAOvhB,EAAIwhB,EAAOnjC,EAAImjC,EAAO5gB,EAAI2gB,GAAQjjC,EAAIif,EAAIlf,EAAIijC,GAAKE,GAAQxhB,EAAIzC,EAAIqD,EAAI0gB,GAAKC,MAInGrE,EAAIzmB,KAAO,WACT,IAAIgrB,EAAM7jC,KAAKwjC,iBAEfxjC,KAAKyjC,gBAAgBh3B,KAAKo3B,GAE1B7jC,KAAKwjC,iBAAmBK,EAAIx5B,MAAM,EAAG,GAErCrK,KAAK+iC,iBAGPzD,EAAIxmB,QAAU,WACZ,IAAIgrB,EAAO9jC,KAAKyjC,gBAAgBM,MAE5BD,IACF9jC,KAAKwjC,iBAAmBM,EAExB9jC,KAAKgjC,qBAIT1D,EAAI8D,UAAY,SAAsB94B,EAAGC,GACvC,IAAI/J,EAAIR,KAAKwjC,iBACbhjC,EAAE,GAAKA,EAAE,GAAK8J,EAAI9J,EAAE,GAAK+J,EAAI/J,EAAE,GAC/BA,EAAE,GAAKA,EAAE,GAAK8J,EAAI9J,EAAE,GAAK+J,EAAI/J,EAAE,GAE/BR,KAAKmjC,mBAAmB74B,EAAGC,IAG7B+0B,EAAIj2B,MAAQ,SAAkBiB,EAAGC,GAC/B,IAAI/J,EAAIR,KAAKwjC,iBACbhjC,EAAE,GAAKA,EAAE,GAAK8J,EACd9J,EAAE,GAAKA,EAAE,GAAK8J,EACd9J,EAAE,GAAKA,EAAE,GAAK+J,EACd/J,EAAE,GAAKA,EAAE,GAAK+J,EAEdvK,KAAKkjC,eAAe54B,EAAGC,IAGzB+0B,EAAIl1B,UAAY,SAAsB4Y,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,GACnD,IAAIljC,EAAIR,KAAKwjC,iBACbxjC,KAAKwjC,iBAAmB,CAAChjC,EAAE,GAAKwiB,EAAIxiB,EAAE,GAAK4hB,EAAG5hB,EAAE,GAAKwiB,EAAIxiB,EAAE,GAAK4hB,EAAG5hB,EAAE,GAAKC,EAAID,EAAE,GAAKE,EAAGF,EAAE,GAAKC,EAAID,EAAE,GAAKE,EAAGF,EAAE,GAAKmf,EAAInf,EAAE,GAAKkjC,EAAIljC,EAAE,GAAIA,EAAE,GAAKmf,EAAInf,EAAE,GAAKkjC,EAAIljC,EAAE,IAEjK8+B,EAAI+D,mBAAmBrgB,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,IAGxCpE,EAAIiE,aAAe,SAAyBvgB,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,GACzD1jC,KAAKwjC,iBAAmB,CAACxgB,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,GAExCpE,EAAIgE,sBAAsBtgB,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,IAG3CpE,EAAI9Q,OAAS,SAAmBwV,GAC9B,IAAIC,EAAW/5B,KAAKg6B,IAAIF,GACpBG,EAAWj6B,KAAKk6B,IAAIJ,GACpBxjC,EAAIR,KAAKwjC,iBACbxjC,KAAKwjC,iBAAmB,CAAChjC,EAAE,GAAKyjC,EAAWzjC,EAAE,GAAK2jC,EAAU3jC,EAAE,GAAKyjC,EAAWzjC,EAAE,GAAK2jC,EAAU3jC,EAAE,IAAM2jC,EAAW3jC,EAAE,GAAKyjC,EAAUzjC,EAAE,IAAM2jC,EAAW3jC,EAAE,GAAKyjC,EAAUzjC,EAAE,GAAIA,EAAE,IAE/KR,KAAKijC,gBAAgBe,KAK3B,IAAIK,EAAiB,WACnB,SAASA,EAAejV,GACtBpvB,KAAKovB,cAAgBA,EACrBpvB,KAAKskC,MAAQxjC,OAAOY,OAAO,MAgC7B,OA7BA2iC,EAAeriC,UAAY,CACzBuiC,UAAW,SAAkClY,EAAIpmB,EAAOC,EAAQs+B,GAC9D,IAAIC,EAeJ,YAbuBhkB,IAAnBzgB,KAAKskC,MAAMjY,IACboY,EAAczkC,KAAKskC,MAAMjY,GACzBrsB,KAAKovB,cAAcsV,MAAMD,EAAax+B,EAAOC,GAC7Cu+B,EAAYn+B,QAAQi9B,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,KAEhDkB,EAAczkC,KAAKovB,cAAc1tB,OAAOuE,EAAOC,GAC/ClG,KAAKskC,MAAMjY,GAAMoY,GAGfD,GACF3B,EAA2B4B,EAAYn+B,SAGlCm+B,GAGT,QACE,IAAK,IAAIpY,KAAMrsB,KAAKskC,MAAO,CACzB,IAAIG,EAAczkC,KAAKskC,MAAMjY,GAC7BrsB,KAAKovB,cAAcnE,QAAQwZ,UACpBzkC,KAAKskC,MAAMjY,MAKjBgY,EAnCY,GAsCrB,SAASM,EAAkBC,GACzB,IAGIvkC,EACAwkC,EACAC,EAQArf,EAbAsf,EAAyB,IACzB9+B,EAAQ2+B,EAAQ3+B,MAChBC,EAAS0+B,EAAQ1+B,OAIjB8+B,EAAS/+B,EAAQ,EACjBg/B,EAAS,IAAIn9B,WAAWk9B,GAAU9+B,EAAS,IAC3Cg/B,EAAc,IAAIp9B,WAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,IAC5Eq9B,EAAWl/B,EAAQ,GAAI,EACvBm/B,EAAQR,EAAQrjB,KAChBA,EAAO,IAAIzZ,WAAWq9B,EAAWj/B,GACjCob,EAAM,EAGV,IAAKjhB,EAAI,EAAGolB,EAAK2f,EAAMn5B,OAAQ5L,EAAIolB,EAAIplB,IAAK,CAC1C,IAAIglC,EAAO,IACPC,EAAOF,EAAM/kC,GAEjB,MAAOglC,EAAO,EACZ9jB,EAAKD,KAASgkB,EAAOD,EAAO,EAAI,IAChCA,IAAS,EAIb,IAAIE,EAAQ,EAQZ,IAPAjkB,EAAM,EAEY,IAAdC,EAAKD,KACP2jB,EAAO,GAAK,IACVM,GAGCV,EAAI,EAAGA,EAAI5+B,EAAO4+B,IACjBtjB,EAAKD,KAASC,EAAKD,EAAM,KAC3B2jB,EAAOJ,GAAKtjB,EAAKD,GAAO,EAAI,IAC1BikB,GAGJjkB,IAQF,IALkB,IAAdC,EAAKD,KACP2jB,EAAOJ,GAAK,IACVU,GAGCllC,EAAI,EAAGA,EAAI6F,EAAQ7F,IAAK,CAC3BihB,EAAMjhB,EAAI8kC,EACVL,EAAKzkC,EAAI2kC,EAELzjB,EAAKD,EAAM6jB,KAAc5jB,EAAKD,KAChC2jB,EAAOH,GAAMvjB,EAAKD,GAAO,EAAI,IAC3BikB,GAGJ,IAAIC,GAAOjkB,EAAKD,GAAO,EAAI,IAAMC,EAAKD,EAAM6jB,GAAY,EAAI,GAE5D,IAAKN,EAAI,EAAGA,EAAI5+B,EAAO4+B,IACrBW,GAAOA,GAAO,IAAMjkB,EAAKD,EAAM,GAAK,EAAI,IAAMC,EAAKD,EAAM6jB,EAAW,GAAK,EAAI,GAEzED,EAAYM,KACdP,EAAOH,EAAKD,GAAKK,EAAYM,KAC3BD,GAGJjkB,IAQF,GALIC,EAAKD,EAAM6jB,KAAc5jB,EAAKD,KAChC2jB,EAAOH,EAAKD,GAAKtjB,EAAKD,GAAO,EAAI,IAC/BikB,GAGAA,EAAQR,EACV,OAAO,KAYX,IARAzjB,EAAM6jB,GAAYj/B,EAAS,GAC3B4+B,EAAKzkC,EAAI2kC,EAES,IAAdzjB,EAAKD,KACP2jB,EAAOH,GAAM,IACXS,GAGCV,EAAI,EAAGA,EAAI5+B,EAAO4+B,IACjBtjB,EAAKD,KAASC,EAAKD,EAAM,KAC3B2jB,EAAOH,EAAKD,GAAKtjB,EAAKD,GAAO,EAAI,IAC/BikB,GAGJjkB,IAQF,GALkB,IAAdC,EAAKD,KACP2jB,EAAOH,EAAKD,GAAK,IACfU,GAGAA,EAAQR,EACV,OAAO,KAGT,IAAIU,EAAQ,IAAIC,WAAW,CAAC,EAAGV,GAAS,EAAG,GAAIA,EAAQ,EAAG,EAAG,EAAG,IAC5DW,EAAW,GAEf,IAAKtlC,EAAI,EAAGklC,GAASllC,GAAK6F,EAAQ7F,IAAK,CACrC,IAAI6B,EAAI7B,EAAI2kC,EACRj5B,EAAM7J,EAAI+D,EAEd,MAAO/D,EAAI6J,IAAQk5B,EAAO/iC,GACxBA,IAGF,GAAIA,IAAM6J,EAAV,CAIA,IAGI65B,EAHAC,EAAS,CAAC3jC,EAAI8iC,EAAQ3kC,GACtB8I,EAAO87B,EAAO/iC,GACd4jC,EAAK5jC,EAGT,EAAG,CACD,IAAI6jC,EAAON,EAAMt8B,GAEjB,GACEjH,GAAK6jC,SACGd,EAAO/iC,IAEjB0jC,EAAKX,EAAO/iC,GAED,IAAP0jC,GAAmB,KAAPA,GACdz8B,EAAOy8B,EACPX,EAAO/iC,GAAK,IAEZiH,EAAOy8B,EAAK,GAAOz8B,GAAQ,EAC3B87B,EAAO/iC,IAAMiH,GAAQ,EAAIA,GAAQ,GAGnC08B,EAAOp5B,KAAKvK,EAAI8iC,GAChBa,EAAOp5B,KAAKvK,EAAI8iC,EAAS,GAEpBC,EAAO/iC,MACRqjC,QAEGO,IAAO5jC,GAEhByjC,EAASl5B,KAAKo5B,KACZxlC,GAGJ,IAAI2lC,EAAc,SAAUvlC,GAC1BA,EAAEoY,OACFpY,EAAE4I,MAAM,EAAIpD,GAAQ,EAAIC,GACxBzF,EAAE2iC,UAAU,GAAIl9B,GAChBzF,EAAEwlC,YAEF,IAAK,IAAIC,EAAI,EAAGC,EAAKR,EAAS15B,OAAQi6B,EAAIC,EAAID,IAAK,CACjD,IAAIrlC,EAAI8kC,EAASO,GACjBzlC,EAAEsY,OAAOlY,EAAE,GAAIA,EAAE,IAEjB,IAAK,IAAIP,EAAI,EAAG8lC,EAAKvlC,EAAEoL,OAAQ3L,EAAI8lC,EAAI9lC,GAAK,EAC1CG,EAAEuY,OAAOnY,EAAEP,GAAIO,EAAEP,EAAI,IAIzBG,EAAE+Y,OACF/Y,EAAEwlC,YACFxlC,EAAEqY,WAGJ,OAAOktB,EAGT,IAAIK,EAAmB,WACrB,SAASA,IACPrmC,KAAKsmC,cAAe,EACpBtmC,KAAKumC,SAAW,EAChBvmC,KAAKwmC,cAAgB,EACrBxmC,KAAKymC,WAAavjC,EAAMkO,gBACxBpR,KAAK0mC,gBAAkB,EACvB1mC,KAAK2mC,WAAazjC,EAAMmO,qBACxBrR,KAAK4mC,QAAU,EACf5mC,KAAKsK,EAAI,EACTtK,KAAKuK,EAAI,EACTvK,KAAK6mC,MAAQ,EACb7mC,KAAK8mC,MAAQ,EACb9mC,KAAK+mC,YAAc,EACnB/mC,KAAKgnC,YAAc,EACnBhnC,KAAKinC,WAAa,EAClBjnC,KAAKknC,kBAAoBhkC,EAAMoN,kBAAkBwB,KACjD9R,KAAKmnC,SAAW,EAChBnnC,KAAKonC,UAAY,UACjBpnC,KAAKqnC,YAAc,UACnBrnC,KAAKsnC,aAAc,EACnBtnC,KAAKunC,UAAY,EACjBvnC,KAAKwnC,YAAc,EACnBxnC,KAAKynC,UAAY,EACjBznC,KAAK0nC,YAAc,KACnB1nC,KAAK2nC,eAAiB,KACtB3nC,KAAK4nC,aAAe,KAYtB,OATAvB,EAAiBrkC,UAAY,CAC3B6lC,MAAO,WACL,OAAO/mC,OAAOY,OAAO1B,OAEvB8nC,gBAAiB,SAA0Cx9B,EAAGC,GAC5DvK,KAAKsK,EAAIA,EACTtK,KAAKuK,EAAIA,IAGN87B,EAtCc,GAyCnB/J,EAAiB,WACnB,IAAIyL,EAAiB,GACjBC,EAAkB,GAEtB,SAAS1L,EAAe2L,EAAWha,EAAYC,EAAMkB,EAAeQ,EAAcT,EAAYgC,GAC5FnxB,KAAKs/B,IAAM2I,EACXjoC,KAAKohC,QAAU,IAAIiF,EACnBrmC,KAAKkoC,WAAa,GAClBloC,KAAKmoC,YAAc,KACnBnoC,KAAKooC,eAAgB,EACrBpoC,KAAKqoC,IAAM,KACXroC,KAAKsoC,MAAQ,KACbtoC,KAAKiuB,WAAaA,EAClBjuB,KAAKkuB,KAAOA,EACZluB,KAAKovB,cAAgBA,EACrBpvB,KAAK4vB,aAAeA,EACpB5vB,KAAKmvB,WAAaA,EAClBnvB,KAAKuoC,WAAa,GAClBvoC,KAAKwoC,gBAAkB,KACvBxoC,KAAKyoC,cAAgB,KACrBzoC,KAAK0oC,mBAAqB,GAC1B1oC,KAAK2oC,WAAa,EAClB3oC,KAAK4oC,WAAa,GAClB5oC,KAAK6oC,aAAe,EACpB7oC,KAAK8oC,UAAY,KACjB9oC,KAAK+oC,gBAAiB,EACtB/oC,KAAKgpC,mBAAqB,GAC1BhpC,KAAKmxB,sBAAwBA,EAC7BnxB,KAAKipC,eAAiB,IAAI5E,EAAerkC,KAAKovB,eAE1C6Y,GACFpF,EAA2BoF,GAG7BjoC,KAAKkpC,2BAA6B,KAGpC,SAASC,EAAmB7J,EAAKsF,EAASgD,EAAe,MACvD,GAAyB,qBAAdwB,WAA6BxE,aAAmBwE,UAEzD,YADA9J,EAAI+J,aAAazE,EAAS,EAAG,GAI/B,IAOI0E,EAGAjpC,EAAGwkC,EAAG0E,EAAiBC,EAVvBtjC,EAAS0+B,EAAQ1+B,OACjBD,EAAQ2+B,EAAQ3+B,MAChBwjC,EAAqBvjC,EAAS08B,EAC9B8G,GAAcxjC,EAASujC,GAAsB7G,EAC7C+G,EAAqC,IAAvBF,EAA2BC,EAAaA,EAAa,EACnEE,EAAetK,EAAIuK,gBAAgB5jC,EAAO28B,GAC1CkH,EAAS,EAETx8B,EAAMs3B,EAAQrjB,KACdwoB,EAAOH,EAAaroB,KAExB,IAAIyoB,EAAgBC,EAAkBC,EAAiBC,EAEvD,GAAIvC,EACF,OAAQA,EAAa37B,QACnB,KAAK,EACH+9B,EAAiBpC,EAAa,GAC9BqC,EAAmBrC,EAAa,GAChCsC,EAAkBtC,EAAa,GAC/BuC,EAAkBvC,EAAa,GAC/B,MAEF,KAAK,EACHoC,EAAiBpC,EAAa,GAC9BqC,EAAmBrC,EAAa,GAChCsC,EAAkBtC,EAAa,GAC/BuC,EAAkBvC,EAAa,GAC/B,MAIN,GAAIhD,EAAQwF,OAASlnC,EAAMwN,UAAU8B,eAAgB,CACnD,IAAI63B,EAAY/8B,EAAI8T,WAChBkpB,EAAS,IAAIxoB,YAAYioB,EAAKhoB,OAAQ,EAAGgoB,EAAK3oB,YAAc,GAC5DmpB,EAAmBD,EAAOr+B,OAC1Bu+B,EAAcvkC,EAAQ,GAAK,EAC3BwkC,EAAQ,WACRC,EAAQxnC,EAAMiN,qBAAqB9O,MAAQ,WAAa,IAQ5D,IANI8oC,GACyB,MAAvBA,EAAgB,IAAyC,IAA1BA,EAAgB,QAChDM,EAAOC,GAAS,CAACA,EAAOD,IAIxBpqC,EAAI,EAAGA,EAAIspC,EAAatpC,IAAK,CAIhC,IAHAkpC,EAAkBlpC,EAAIqpC,EAAa9G,EAAoB6G,EACvDH,EAAU,EAELzE,EAAI,EAAGA,EAAI0E,EAAiB1E,IAAK,CACpC,IAAI8F,EAAUN,EAAYP,EAC1B,IAAI5D,EAAI,EAMR,IALA,IAAI0E,EAAOD,EAAUH,EAAcvkC,EAAkB,EAAV0kC,EAAc,EACrDE,GAAsB,EAAPD,EACfvF,EAAO,EACPyF,EAAU,EAEP5E,EAAI2E,EAAc3E,GAAK,EAC5B4E,EAAUx9B,EAAIw8B,KACdQ,EAAOhB,KAAuB,IAAVwB,EAAgBL,EAAQC,EAC5CJ,EAAOhB,KAAuB,GAAVwB,EAAeL,EAAQC,EAC3CJ,EAAOhB,KAAuB,GAAVwB,EAAeL,EAAQC,EAC3CJ,EAAOhB,KAAuB,GAAVwB,EAAeL,EAAQC,EAC3CJ,EAAOhB,KAAuB,EAAVwB,EAAcL,EAAQC,EAC1CJ,EAAOhB,KAAuB,EAAVwB,EAAcL,EAAQC,EAC1CJ,EAAOhB,KAAuB,EAAVwB,EAAcL,EAAQC,EAC1CJ,EAAOhB,KAAuB,EAAVwB,EAAcL,EAAQC,EAG5C,KAAOxE,EAAI0E,EAAM1E,IACF,IAATb,IACFyF,EAAUx9B,EAAIw8B,KACdzE,EAAO,KAGTiF,EAAOhB,KAAawB,EAAUzF,EAAOoF,EAAQC,EAC7CrF,IAAS,EAIb,MAAOiE,EAAUiB,EACfD,EAAOhB,KAAa,EAGtBhK,EAAI+J,aAAaO,EAAc,EAAGvpC,EAAIuiC,SAEnC,GAAIgC,EAAQwF,OAASlnC,EAAMwN,UAAUgC,WAAY,CACtD,MAAMq4B,KAAqBf,GAAkBC,GAAoBC,GAIjE,IAHArF,EAAI,EACJ2E,EAAmBvjC,EAAQ28B,EAAoB,EAE1CviC,EAAI,EAAGA,EAAIqpC,EAAYrpC,IAAK,CAI/B,GAHA0pC,EAAKroB,IAAIpU,EAAI2T,SAAS6oB,EAAQA,EAASN,IACvCM,GAAUN,EAENuB,EACF,IAAK,IAAI7E,EAAI,EAAGA,EAAIsD,EAAkBtD,GAAK,EACrC8D,IACFD,EAAK7D,EAAI,GAAK8D,EAAeD,EAAK7D,EAAI,KAGpC+D,IACFF,EAAK7D,EAAI,GAAK+D,EAAiBF,EAAK7D,EAAI,KAGtCgE,IACFH,EAAK7D,EAAI,GAAKgE,EAAgBH,EAAK7D,EAAI,KAK7C5G,EAAI+J,aAAaO,EAAc,EAAG/E,GAClCA,GAAKjC,EAGP,GAAIviC,EAAIspC,EAAa,CAInB,GAHAH,EAAmBvjC,EAAQwjC,EAAqB,EAChDM,EAAKroB,IAAIpU,EAAI2T,SAAS6oB,EAAQA,EAASN,IAEnCuB,EACF,IAAK,IAAI7E,EAAI,EAAGA,EAAIsD,EAAkBtD,GAAK,EACrC8D,IACFD,EAAK7D,EAAI,GAAK8D,EAAeD,EAAK7D,EAAI,KAGpC+D,IACFF,EAAK7D,EAAI,GAAK+D,EAAiBF,EAAK7D,EAAI,KAGtCgE,IACFH,EAAK7D,EAAI,GAAKgE,EAAgBH,EAAK7D,EAAI,KAK7C5G,EAAI+J,aAAaO,EAAc,EAAG/E,QAE/B,IAAID,EAAQwF,OAASlnC,EAAMwN,UAAU+B,UAuC1C,MAAM,IAAIpM,MAAM,mBAAmBu+B,EAAQwF,MAvCU,CACrD,MAAMW,KAAqBf,GAAkBC,GAAoBC,GAIjE,IAHAX,EAAkB3G,EAClB4G,EAAmBvjC,EAAQsjC,EAEtBlpC,EAAI,EAAGA,EAAIspC,EAAatpC,IAAK,CAQhC,IAPIA,GAAKqpC,IACPH,EAAkBE,EAClBD,EAAmBvjC,EAAQsjC,GAG7BD,EAAU,EAELzE,EAAI2E,EAAkB3E,KACzBkF,EAAKT,KAAah8B,EAAIw8B,KACtBC,EAAKT,KAAah8B,EAAIw8B,KACtBC,EAAKT,KAAah8B,EAAIw8B,KACtBC,EAAKT,KAAa,IAGpB,GAAIyB,EACF,IAAK,IAAI7E,EAAI,EAAGA,EAAIoD,EAASpD,GAAK,EAC5B8D,IACFD,EAAK7D,EAAI,GAAK8D,EAAeD,EAAK7D,EAAI,KAGpC+D,IACFF,EAAK7D,EAAI,GAAK+D,EAAiBF,EAAK7D,EAAI,KAGtCgE,IACFH,EAAK7D,EAAI,GAAKgE,EAAgBH,EAAK7D,EAAI,KAK7C5G,EAAI+J,aAAaO,EAAc,EAAGvpC,EAAIuiC,MAO5C,SAASoI,EAAmB1L,EAAKsF,GAW/B,IAVA,IAAI1+B,EAAS0+B,EAAQ1+B,OACjBD,EAAQ2+B,EAAQ3+B,MAChBwjC,EAAqBvjC,EAAS08B,EAC9B8G,GAAcxjC,EAASujC,GAAsB7G,EAC7C+G,EAAqC,IAAvBF,EAA2BC,EAAaA,EAAa,EACnEE,EAAetK,EAAIuK,gBAAgB5jC,EAAO28B,GAC1CkH,EAAS,EACTx8B,EAAMs3B,EAAQrjB,KACdwoB,EAAOH,EAAaroB,KAEflhB,EAAI,EAAGA,EAAIspC,EAAatpC,IAAK,CAIpC,IAHA,IAAIkpC,EAAkBlpC,EAAIqpC,EAAa9G,EAAoB6G,EACvDH,EAAU,EAELzE,EAAI,EAAGA,EAAI0E,EAAiB1E,IAGnC,IAFA,IAAIQ,EAAO,EAEFa,EAAI,EAAGA,EAAIjgC,EAAOigC,IAAK,CAC9B,IAAKb,EAAM,CACT,IAAIC,EAAOh4B,EAAIw8B,KACfzE,EAAO,IAGT0E,EAAKT,GAAWhE,EAAOD,EAAO,EAAI,IAClCiE,GAAW,EACXjE,IAAS,EAIb/F,EAAI+J,aAAaO,EAAc,EAAGvpC,EAAIuiC,IAI1C,SAASqI,EAAaC,EAAWC,GAG/B,IAFA,IAAIC,EAAa,CAAC,cAAe,YAAa,WAAY,cAAe,YAAa,UAAW,WAAY,aAAc,2BAA4B,QAE9I/qC,EAAI,EAAGolB,EAAK2lB,EAAWn/B,OAAQ5L,EAAIolB,EAAIplB,IAAK,CACnD,IAAI0B,EAAWqpC,EAAW/qC,QAEEogB,IAAxByqB,EAAUnpC,KACZopC,EAAQppC,GAAYmpC,EAAUnpC,SAIJ0e,IAA1ByqB,EAAUG,cACZF,EAAQE,YAAYH,EAAUI,eAC9BH,EAAQI,eAAiBL,EAAUK,gBAIvC,SAASC,EAAkBlM,GACzBA,EAAImM,YAAc,UAClBnM,EAAIoM,UAAY,UAChBpM,EAAIqM,SAAW,UACfrM,EAAIsM,YAAc,EAClBtM,EAAImI,UAAY,EAChBnI,EAAIuM,QAAU,OACdvM,EAAIwM,SAAW,QACfxM,EAAIyM,WAAa,GACjBzM,EAAI0M,yBAA2B,cAC/B1M,EAAInhB,KAAO,uBAEasC,IAApB6e,EAAI+L,cACN/L,EAAI+L,YAAY,IAChB/L,EAAIiM,eAAiB,GAIzB,SAASU,EAAqBzrB,EAAO0rB,EAAIC,EAAIC,GAG3C,IAFA,IAAIngC,EAASuU,EAAMvU,OAEV5L,EAAI,EAAGA,EAAI4L,EAAQ5L,GAAK,EAAG,CAClC,IAAIgsC,EAAQ7rB,EAAMngB,GAElB,GAAc,IAAVgsC,EACF7rB,EAAMngB,EAAI,GAAK6rC,EACf1rB,EAAMngB,EAAI,GAAK8rC,EACf3rB,EAAMngB,EAAI,GAAK+rC,OACV,GAAIC,EAAQ,IAAK,CACtB,IAAIC,EAAS,IAAMD,EACnB7rB,EAAMngB,EAAI,GAAKmgB,EAAMngB,EAAI,GAAKgsC,EAAQH,EAAKI,GAAU,EACrD9rB,EAAMngB,EAAI,GAAKmgB,EAAMngB,EAAI,GAAKgsC,EAAQF,EAAKG,GAAU,EACrD9rB,EAAMngB,EAAI,GAAKmgB,EAAMngB,EAAI,GAAKgsC,EAAQD,EAAKE,GAAU,IAK3D,SAASC,EAAkBC,EAAUC,EAAWC,GAI9C,IAHA,IAAIzgC,EAASugC,EAASvgC,OAClB5C,EAAQ,EAAI,IAEPhJ,EAAI,EAAGA,EAAI4L,EAAQ5L,GAAK,EAAG,CAClC,IAAIgsC,EAAQK,EAAcA,EAAYF,EAASnsC,IAAMmsC,EAASnsC,GAC9DosC,EAAUpsC,GAAKosC,EAAUpsC,GAAKgsC,EAAQhjC,EAAQ,GAIlD,SAASsjC,EAAuBH,EAAUC,EAAWC,GAGnD,IAFA,IAAIzgC,EAASugC,EAASvgC,OAEb5L,EAAI,EAAGA,EAAI4L,EAAQ5L,GAAK,EAAG,CAClC,IAAIkK,EAAsB,GAAlBiiC,EAASnsC,EAAI,GAA4B,IAAlBmsC,EAASnsC,EAAI,GAA6B,GAAlBmsC,EAASnsC,EAAI,GACpEosC,EAAUpsC,GAAKqsC,EAAcD,EAAUpsC,GAAKqsC,EAAYniC,GAAK,IAAM,EAAIkiC,EAAUpsC,GAAKkK,GAAK,IAI/F,SAASqiC,EAAoBC,EAASC,EAAU7mC,EAAOC,EAAQ6mC,EAASC,EAAUN,GAChF,IAIIO,EAJAC,IAAgBF,EAChBd,EAAKgB,EAAcF,EAAS,GAAK,EACjCb,EAAKe,EAAcF,EAAS,GAAK,EACjCZ,EAAKc,EAAcF,EAAS,GAAK,EAInCC,EADc,eAAZF,EACUJ,EAEAJ,EAMd,IAHA,IAAIY,EAAoB,QACpBC,EAAYljC,KAAK8B,IAAI9F,EAAQgE,KAAKmjC,KAAKF,EAAoBlnC,IAEtDqnC,EAAM,EAAGA,EAAMpnC,EAAQonC,GAAOF,EAAW,CAChD,IAAIG,EAAcrjC,KAAK8B,IAAIohC,EAAWlnC,EAASonC,GAC3Cd,EAAWK,EAAQnN,aAAa,EAAG4N,EAAKrnC,EAAOsnC,GAC/Cd,EAAYK,EAASpN,aAAa,EAAG4N,EAAKrnC,EAAOsnC,GAEjDL,GACFjB,EAAqBO,EAASjrB,KAAM2qB,EAAIC,EAAIC,GAG9Ca,EAAUT,EAASjrB,KAAMkrB,EAAUlrB,KAAMmrB,GACzCG,EAAQxD,aAAaoD,EAAW,EAAGa,IAIvC,SAASE,EAAalO,EAAKrhB,EAAO6uB,EAAUld,GAC1C,IAAIyV,EAAOpnB,EAAM7X,OACbymC,EAAU5uB,EAAM3X,QACpBg5B,EAAIiE,aAAatlB,EAAMwvB,OAAQ,EAAG,EAAGxvB,EAAMyvB,OAAQzvB,EAAM1U,QAAS0U,EAAMzU,SACxE,IAAIwjC,EAAW/uB,EAAM+uB,UAAY,KAEjC,IAAK/uB,EAAMyuB,aAAe9c,EAAa+d,UAAW,CAChD,MAAMC,EAAWhe,EAAa4d,aAAa,CACzCK,MAAOf,EAAS1mC,OAChBi/B,OACA+F,WAAY,CACV2B,QAAS9uB,EAAM8uB,QACfC,cAKJ,OAFA1N,EAAIiE,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,QAChCjE,EAAIwO,UAAUF,EAAU3vB,EAAM1U,QAAS0U,EAAMzU,SAI/CojC,EAAoBC,EAASC,EAAUzH,EAAKp/B,MAAOo/B,EAAKn/B,OAAQ+X,EAAM8uB,QAASC,EAAU/uB,EAAMyuB,aAC/FpN,EAAIwO,UAAUzI,EAAM,EAAG,GAGzB,IAAI0I,EAAkB,CAAC,OAAQ,QAAS,UACpCC,EAAmB,CAAC,QAAS,QAAS,SACtCC,EAAc,GACdC,EAAU,GAq6Cd,IAAK,IAAIC,KAp6CT7R,EAAet6B,UAAY,CACzB,cAAa,UACXoI,EAAS,SACT4kB,EAAQ,aACRkC,GAAe,EAAK,WACpB7B,EAAa,OAEb,IAAIppB,EAAQjG,KAAKs/B,IAAIl5B,OAAOH,MACxBC,EAASlG,KAAKs/B,IAAIl5B,OAAOF,OAM7B,GALAlG,KAAKs/B,IAAIzmB,OACT7Y,KAAKs/B,IAAIoM,UAAYrc,GAAc,qBACnCrvB,KAAKs/B,IAAI8O,SAAS,EAAG,EAAGnoC,EAAOC,GAC/BlG,KAAKs/B,IAAIxmB,UAELoY,EAAc,CAChB,IAAImd,EAAoBruC,KAAKipC,eAAe1E,UAAU,cAAet+B,EAAOC,GAAQ,GACpFlG,KAAKsuC,aAAetuC,KAAKs/B,IACzBt/B,KAAKquC,kBAAoBA,EAAkBjoC,OAC3CpG,KAAKs/B,IAAM+O,EAAkB/nC,QAC7BtG,KAAKs/B,IAAIzmB,OACT7Y,KAAKs/B,IAAIl1B,UAAUyW,MAAM7gB,KAAKs/B,IAAKt/B,KAAKsuC,aAAaxL,qBAGvD9iC,KAAKs/B,IAAIzmB,OACT2yB,EAAkBxrC,KAAKs/B,KAEnBl1B,GACFpK,KAAKs/B,IAAIl1B,UAAUyW,MAAM7gB,KAAKs/B,IAAKl1B,GAGrCpK,KAAKs/B,IAAIl1B,UAAUyW,MAAM7gB,KAAKs/B,IAAKtQ,EAAS5kB,WAC5CpK,KAAKyoC,cAAgBzoC,KAAKs/B,IAAIwD,oBAAoBz4B,QAE9CrK,KAAKmvB,YACPnvB,KAAKmvB,WAAWof,eAIpB5R,oBAAqB,SAA4C3M,EAAcwe,EAAmBC,EAAkBxS,GAClH,IAAI/L,EAAYF,EAAaE,UACzBD,EAAUD,EAAaC,QACvB5vB,EAAImuC,GAAqB,EACzBE,EAAexe,EAAUjkB,OAE7B,GAAIyiC,IAAiBruC,EACnB,OAAOA,EAGT,IAKIsuC,EALAC,EAAkBF,EAAeruC,EAAI2nC,GAA+C,oBAArByG,EAC/DI,EAAUD,EAAkBriC,KAAKC,MAAQu7B,EAAiB,EAC1DtC,EAAQ,EACRxX,EAAajuB,KAAKiuB,WAClBC,EAAOluB,KAAKkuB,KAGhB,MAAO,EAAM,CACX,QAAgBzN,IAAZwb,GAAyB57B,IAAM47B,EAAQE,eAEzC,OADAF,EAAQ6S,QAAQzuC,EAAGouC,GACZpuC,EAKT,GAFAsuC,EAAO1e,EAAQ5vB,GAEXsuC,IAASzrC,EAAMO,IAAI2U,WACrBpY,KAAK2uC,GAAM9tB,MAAM7gB,KAAMkwB,EAAU7vB,SAEjC,IAAK,MAAM0uC,KAAY7e,EAAU7vB,GAAI,CACnC,MAAM2uC,EAAWD,EAASE,WAAW,MAAQhhB,EAAaC,EAE1D,IAAK8gB,EAAShb,IAAI+a,GAEhB,OADAC,EAAS/tC,IAAI8tC,EAAUN,GAChBpuC,EAOb,GAFAA,IAEIA,IAAMquC,EACR,OAAOruC,EAGT,GAAIuuC,KAAqBnJ,EAAQuC,EAAiB,CAChD,GAAIz7B,KAAKC,MAAQqiC,EAEf,OADAJ,IACOpuC,EAGTolC,EAAQ,KAIdjJ,WAAY,WACuB,OAA7Bx8B,KAAKohC,QAAQsG,aACf1nC,KAAKkvC,gBAGPlvC,KAAKs/B,IAAIxmB,UAEL9Y,KAAKquC,oBACPruC,KAAKs/B,IAAMt/B,KAAKsuC,aAChBtuC,KAAKs/B,IAAIzmB,OACT7Y,KAAKs/B,IAAIiE,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACrCvjC,KAAKs/B,IAAIwO,UAAU9tC,KAAKquC,kBAAmB,EAAG,GAC9CruC,KAAKs/B,IAAIxmB,UACT9Y,KAAKquC,kBAAoB,MAG3BruC,KAAKipC,eAAenW,QACpB9yB,KAAK4vB,aAAakD,QAEd9yB,KAAKmvB,YACPnvB,KAAKmvB,WAAWggB,aAGpB92B,aAAc,SAAqCpS,GACjDjG,KAAKohC,QAAQqG,UAAYxhC,EACzBjG,KAAKs/B,IAAImI,UAAYxhC,GAEvBqS,WAAY,SAAmC8nB,GAC7CpgC,KAAKs/B,IAAIuM,QAAUkC,EAAgB3N,IAErC7nB,YAAa,SAAoC6nB,GAC/CpgC,KAAKs/B,IAAIwM,SAAWkC,EAAiB5N,IAEvC5nB,cAAe,SAAsC42B,GACnDpvC,KAAKs/B,IAAIyM,WAAaqD,GAExB32B,QAAS,SAAgC42B,EAAWC,GAClD,IAAIhQ,EAAMt/B,KAAKs/B,SAES7e,IAApB6e,EAAI+L,cACN/L,EAAI+L,YAAYgE,GAChB/P,EAAIiM,eAAiB+D,IAIzB,mBAAmB3gB,KAEnB,YAAY4gB,KAEZ32B,UAAW,SAAkC42B,GAC3C,IAAK,IAAInvC,EAAI,EAAGolB,EAAK+pB,EAAOvjC,OAAQ5L,EAAIolB,EAAIplB,IAAK,CAC/C,IAAIovC,EAAQD,EAAOnvC,GACfsB,EAAM8tC,EAAM,GACZpuC,EAAQouC,EAAM,GAElB,OAAQ9tC,GACN,IAAK,KACH3B,KAAKqY,aAAahX,GAClB,MAEF,IAAK,KACHrB,KAAKsY,WAAWjX,GAChB,MAEF,IAAK,KACHrB,KAAKuY,YAAYlX,GACjB,MAEF,IAAK,KACHrB,KAAKwY,cAAcnX,GACnB,MAEF,IAAK,IACHrB,KAAKyY,QAAQpX,EAAM,GAAIA,EAAM,IAC7B,MAEF,IAAK,KACHrB,KAAK0Y,mBAAmBrX,GACxB,MAEF,IAAK,KACHrB,KAAK2Y,YAAYtX,GACjB,MAEF,IAAK,OACHrB,KAAKua,QAAQlZ,EAAM,GAAIA,EAAM,IAC7B,MAEF,IAAK,KACHrB,KAAKohC,QAAQoG,YAAciI,EAAM,GACjC,MAEF,IAAK,KACHzvC,KAAKohC,QAAQmG,UAAYkI,EAAM,GAC/BzvC,KAAKs/B,IAAIsM,YAAc6D,EAAM,GAC7B,MAEF,IAAK,KACHzvC,KAAKs/B,IAAI0M,yBAA2B3qC,EACpC,MAEF,IAAK,QACCrB,KAAKohC,QAAQsG,cACX1nC,KAAKkoC,WAAWj8B,OAAS,GAAKjM,KAAKkoC,WAAWloC,KAAKkoC,WAAWj8B,OAAS,GAAGy7B,cAAgB1nC,KAAKohC,QAAQsG,YACzG1nC,KAAK0vC,oBAEL1vC,KAAKkvC,iBAITlvC,KAAKohC,QAAQsG,YAAcrmC,EAAQrB,KAAK8oC,UAAY,KAEhD9oC,KAAKohC,QAAQsG,aACf1nC,KAAK2vC,kBAGP3vC,KAAK8oC,UAAY,KACjB,MAEF,IAAK,KACH9oC,KAAKohC,QAAQwG,aAAevmC,KAIpCsuC,gBAAiB,WACf,IAAIjI,EAAc1nC,KAAKohC,QAAQsG,YAC3BkI,EAAalI,EAAYthC,OAAOH,MAChC4pC,EAAcnI,EAAYthC,OAAOF,OACjC4pC,EAAU,eAAiB9vC,KAAK2oC,WAChCoH,EAAgB/vC,KAAKipC,eAAe1E,UAAUuL,EAASF,EAAYC,GAAa,GAChFG,EAAahwC,KAAKs/B,IAClB2Q,EAAmBD,EAAWlN,oBAClC9iC,KAAKs/B,IAAIzmB,OACT,IAAIq3B,EAAWH,EAAczpC,QAC7B4pC,EAAS7mC,MAAM,EAAIq+B,EAAY+F,OAAQ,EAAI/F,EAAYgG,QACvDwC,EAAS9M,WAAWsE,EAAYn+B,SAAUm+B,EAAYl+B,SACtD0mC,EAAS9lC,UAAUyW,MAAMqvB,EAAUD,GACnCvI,EAAYyI,sBAAwBD,EAASE,2BAC7CnF,EAAa+E,EAAYE,GACzBlwC,KAAKs/B,IAAM4Q,EACXlwC,KAAK4Y,UAAU,CAAC,CAAC,KAAM,eAAgB,CAAC,KAAM,GAAI,CAAC,KAAM,KACzD5Y,KAAKuoC,WAAW97B,KAAKujC,GACrBhwC,KAAK2oC,cAEP+G,kBAAmB,WACjB,IAAIQ,EAAWlwC,KAAKs/B,IACpBt/B,KAAK2oC,aACL3oC,KAAKs/B,IAAMt/B,KAAKuoC,WAAWxE,MAC3ByJ,EAAaxtC,KAAKs/B,IAAKt/B,KAAKohC,QAAQsG,YAAawI,EAAUlwC,KAAK4vB,cAChE5vB,KAAKs/B,IAAIxmB,UACT9Y,KAAKs/B,IAAIzmB,OACToyB,EAAaiF,EAAUlwC,KAAKs/B,KAC5Bt/B,KAAKohC,QAAQuG,eAAiBuI,EAE9B,IAAIG,EAAiBntC,EAAMc,KAAKoG,UAAUpK,KAAKohC,QAAQsG,YAAYyI,sBAAuBD,EAASpN,qBAEnG9iC,KAAKs/B,IAAIl1B,UAAUyW,MAAM7gB,KAAKs/B,IAAK+Q,GACnCH,EAASr3B,OACTq3B,EAAS3M,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACrC2M,EAASI,UAAU,EAAG,EAAGJ,EAAS9pC,OAAOH,MAAOiqC,EAAS9pC,OAAOF,QAChEgqC,EAASp3B,WAEXy3B,iBAAkB,WAChB,IAAIL,EAAWlwC,KAAKohC,QAAQuG,eACxBqI,EAAahwC,KAAKs/B,IACtBt/B,KAAKs/B,IAAM4Q,EACXlwC,KAAKuoC,WAAW97B,KAAKujC,GACrBhwC,KAAK2oC,cAEPuG,cAAe,WACb,IAAIgB,EAAWlwC,KAAKs/B,IACpBt/B,KAAK2oC,aACL3oC,KAAKs/B,IAAMt/B,KAAKuoC,WAAWxE,MAC3ByJ,EAAaxtC,KAAKs/B,IAAKt/B,KAAKohC,QAAQsG,YAAawI,EAAUlwC,KAAK4vB,cAChE5vB,KAAKs/B,IAAIxmB,UACTmyB,EAAaiF,EAAUlwC,KAAKs/B,KAE5B,IAAI+Q,EAAiBntC,EAAMc,KAAKoG,UAAUpK,KAAKohC,QAAQsG,YAAYyI,sBAAuBD,EAASpN,qBAEnG9iC,KAAKs/B,IAAIl1B,UAAUyW,MAAM7gB,KAAKs/B,IAAK+Q,IAErCx3B,KAAM,WACJ7Y,KAAKs/B,IAAIzmB,OACT,IAAIgrB,EAAM7jC,KAAKohC,QACfphC,KAAKkoC,WAAWz7B,KAAKo3B,GACrB7jC,KAAKohC,QAAUyC,EAAIgE,QACnB7nC,KAAKohC,QAAQuG,eAAiB,MAEhC7uB,QAAS,WACH9Y,KAAKohC,QAAQuG,gBACf3nC,KAAKuwC,mBAG0B,OAA7BvwC,KAAKohC,QAAQsG,aAAoD,IAA3B1nC,KAAKkoC,WAAWj8B,QAAgBjM,KAAKkoC,WAAWloC,KAAKkoC,WAAWj8B,OAAS,GAAGy7B,cAAgB1nC,KAAKohC,QAAQsG,aACjJ1nC,KAAKkvC,gBAGwB,IAA3BlvC,KAAKkoC,WAAWj8B,SAClBjM,KAAKohC,QAAUphC,KAAKkoC,WAAWnE,MAC/B/jC,KAAKs/B,IAAIxmB,UACT9Y,KAAKmoC,YAAc,KACnBnoC,KAAKkpC,2BAA6B,OAGtC9+B,UAAW,SAAkC4Y,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,GAC1D1jC,KAAKs/B,IAAIl1B,UAAU4Y,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,GAClC1jC,KAAKkpC,2BAA6B,MAEpCrrB,cAAe,SAAsC2yB,EAAKtd,GAMxD,IALA,IAAIoM,EAAMt/B,KAAKs/B,IACX8B,EAAUphC,KAAKohC,QACf92B,EAAI82B,EAAQ92B,EACZC,EAAI62B,EAAQ72B,EAEPlK,EAAI,EAAGwkC,EAAI,EAAGpf,EAAK+qB,EAAIvkC,OAAQ5L,EAAIolB,EAAIplB,IAC9C,OAAiB,EAATmwC,EAAInwC,IACV,KAAK6C,EAAMO,IAAI4V,UACb/O,EAAI4oB,EAAK2R,KACTt6B,EAAI2oB,EAAK2R,KACT,IAAI5+B,EAAQitB,EAAK2R,KACb3+B,EAASgtB,EAAK2R,KAEJ,IAAV5+B,GAAeq5B,EAAImI,UAAYznC,KAAKywC,wBACtCxqC,EAAQjG,KAAKywC,uBAGA,IAAXvqC,GAAgBo5B,EAAImI,UAAYznC,KAAKywC,wBACvCvqC,EAASlG,KAAKywC,uBAGhB,IAAIC,EAAKpmC,EAAIrE,EACT0qC,EAAKpmC,EAAIrE,EACbo5B,EAAIvmB,OAAOzO,EAAGC,GACd+0B,EAAItmB,OAAO03B,EAAInmC,GACf+0B,EAAItmB,OAAO03B,EAAIC,GACfrR,EAAItmB,OAAO1O,EAAGqmC,GACdrR,EAAItmB,OAAO1O,EAAGC,GACd+0B,EAAIlmB,YACJ,MAEF,KAAKlW,EAAMO,IAAIsV,OACbzO,EAAI4oB,EAAK2R,KACTt6B,EAAI2oB,EAAK2R,KACTvF,EAAIvmB,OAAOzO,EAAGC,GACd,MAEF,KAAKrH,EAAMO,IAAIuV,OACb1O,EAAI4oB,EAAK2R,KACTt6B,EAAI2oB,EAAK2R,KACTvF,EAAItmB,OAAO1O,EAAGC,GACd,MAEF,KAAKrH,EAAMO,IAAIwV,QACb3O,EAAI4oB,EAAK2R,EAAI,GACbt6B,EAAI2oB,EAAK2R,EAAI,GACbvF,EAAIsR,cAAc1d,EAAK2R,GAAI3R,EAAK2R,EAAI,GAAI3R,EAAK2R,EAAI,GAAI3R,EAAK2R,EAAI,GAAIv6B,EAAGC,GACrEs6B,GAAK,EACL,MAEF,KAAK3hC,EAAMO,IAAIyV,SACbomB,EAAIsR,cAActmC,EAAGC,EAAG2oB,EAAK2R,GAAI3R,EAAK2R,EAAI,GAAI3R,EAAK2R,EAAI,GAAI3R,EAAK2R,EAAI,IACpEv6B,EAAI4oB,EAAK2R,EAAI,GACbt6B,EAAI2oB,EAAK2R,EAAI,GACbA,GAAK,EACL,MAEF,KAAK3hC,EAAMO,IAAI0V,SACb7O,EAAI4oB,EAAK2R,EAAI,GACbt6B,EAAI2oB,EAAK2R,EAAI,GACbvF,EAAIsR,cAAc1d,EAAK2R,GAAI3R,EAAK2R,EAAI,GAAIv6B,EAAGC,EAAGD,EAAGC,GACjDs6B,GAAK,EACL,MAEF,KAAK3hC,EAAMO,IAAI2V,UACbkmB,EAAIlmB,YACJ,MAINgoB,EAAQ0G,gBAAgBx9B,EAAGC,IAE7B6O,UAAW,WACTpZ,KAAKs/B,IAAIlmB,aAEXE,OAAQ,SAA+Bu3B,GACrCA,EAAqC,qBAAhBA,GAA8BA,EACnD,IAAIvR,EAAMt/B,KAAKs/B,IACX+H,EAAcrnC,KAAKohC,QAAQiG,YAG/B,GAFA/H,EAAIsM,YAAc5rC,KAAKohC,QAAQoG,YAE3BxnC,KAAK+oC,eACP,GAAI1B,GAAeA,EAAYplC,eAAe,SAAgC,YAArBolC,EAAYl+B,KAAoB,CACvFm2B,EAAIzmB,OACJ,MAAMzO,EAAYk1B,EAAIwD,oBAEhBz5B,EAAQnG,EAAMc,KAAK8sC,8BAA8B1mC,GAAW,GAElEk1B,EAAImM,YAAcpE,EAAY0J,WAAWzR,EAAKt/B,MAC9Cs/B,EAAImI,UAAYv9B,KAAK2Y,IAAI7iB,KAAKywC,sBAAwBhO,EAAkBziC,KAAKohC,QAAQqG,UAAYp+B,GACjGi2B,EAAIhmB,SACJgmB,EAAIxmB,eAEJwmB,EAAImI,UAAYv9B,KAAK2Y,IAAI7iB,KAAKywC,sBAAwBhO,EAAkBziC,KAAKohC,QAAQqG,WACrFnI,EAAIhmB,SAIJu3B,GACF7wC,KAAK6wC,cAGPvR,EAAIsM,YAAc5rC,KAAKohC,QAAQmG,WAEjChuB,YAAa,WACXvZ,KAAKoZ,YACLpZ,KAAKsZ,UAEPE,KAAM,SAA6Bq3B,GACjCA,EAAqC,qBAAhBA,GAA8BA,EACnD,IAAIvR,EAAMt/B,KAAKs/B,IACX8H,EAAYpnC,KAAKohC,QAAQgG,UACzB4J,EAAgBhxC,KAAKohC,QAAQkG,YAC7B2J,GAAc,EAEdD,IACF1R,EAAIzmB,OAEA7Y,KAAKyoC,eACPnJ,EAAIiE,aAAa1iB,MAAMye,EAAKt/B,KAAKyoC,eAGnCnJ,EAAIoM,UAAYtE,EAAU2J,WAAWzR,EAAKt/B,MAC1CixC,GAAc,GAGZjxC,KAAK+oC,iBACH/oC,KAAKooC,eACP9I,EAAI9lB,KAAK,WACTxZ,KAAKooC,eAAgB,GAErB9I,EAAI9lB,QAIJy3B,GACF3R,EAAIxmB,UAGF+3B,GACF7wC,KAAK6wC,eAGTp3B,OAAQ,WACNzZ,KAAKooC,eAAgB,EACrBpoC,KAAKwZ,QAEPE,WAAY,WACV1Z,KAAKwZ,MAAK,GACVxZ,KAAKsZ,QAAO,GACZtZ,KAAK6wC,eAEPl3B,aAAc,WACZ3Z,KAAKooC,eAAgB,EACrBpoC,KAAK0Z,cAEPE,gBAAiB,WACf5Z,KAAKoZ,YACLpZ,KAAK0Z,cAEPG,kBAAmB,WACjB7Z,KAAKooC,eAAgB,EACrBpoC,KAAKoZ,YACLpZ,KAAK0Z,cAEPI,QAAS,WACP9Z,KAAK6wC,eAEP92B,KAAM,WACJ/Z,KAAKmoC,YAAc8F,GAErBj0B,OAAQ,WACNha,KAAKmoC,YAAc+F,GAErBj0B,UAAW,WACTja,KAAKohC,QAAQqF,WAAavjC,EAAMkO,gBAChCpR,KAAKohC,QAAQsF,gBAAkB,EAC/B1mC,KAAKohC,QAAQ92B,EAAItK,KAAKohC,QAAQyF,MAAQ,EACtC7mC,KAAKohC,QAAQ72B,EAAIvK,KAAKohC,QAAQ0F,MAAQ,GAExC5sB,QAAS,WACP,IAAIg3B,EAAQlxC,KAAKmxC,iBACb7R,EAAMt/B,KAAKs/B,IAEf,QAAc7e,IAAVywB,EAAJ,CAKA5R,EAAIzmB,OACJymB,EAAI2G,YAEJ,IAAK,IAAI5lC,EAAI,EAAGA,EAAI6wC,EAAMjlC,OAAQ5L,IAAK,CACrC,IAAI+wC,EAAOF,EAAM7wC,GACjBi/B,EAAIiE,aAAa1iB,MAAMye,EAAK8R,EAAKhnC,WACjCk1B,EAAI8D,UAAUgO,EAAK9mC,EAAG8mC,EAAK7mC,GAC3B6mC,EAAKC,UAAU/R,EAAK8R,EAAK7K,UAG3BjH,EAAIxmB,UACJwmB,EAAIvlB,OACJulB,EAAI2G,mBACGjmC,KAAKmxC,sBAjBV7R,EAAI2G,aAmBR9rB,eAAgB,SAAuCm3B,GACrDtxC,KAAKohC,QAAQ2F,YAAcuK,GAE7Bl3B,eAAgB,SAAuCk3B,GACrDtxC,KAAKohC,QAAQ4F,YAAcsK,GAE7Bj3B,UAAW,SAAkChR,GAC3CrJ,KAAKohC,QAAQ6F,WAAa59B,EAAQ,KAEpCiR,WAAY,SAAmCssB,GAC7C5mC,KAAKohC,QAAQwF,SAAWA,GAE1BrsB,QAAS,SAAgCg3B,EAAalQ,GACpD,IAAImQ,EAAUxxC,KAAKiuB,WAAWhtB,IAAIswC,GAC9BnQ,EAAUphC,KAAKohC,QAEnB,IAAKoQ,EACH,MAAM,IAAInrC,MAAM,uBAAuBkrC,GAmBzC,GAhBAnQ,EAAQuF,WAAa6K,EAAQ7K,WAAa6K,EAAQ7K,WAAazjC,EAAMmO,qBAEvC,IAA1B+vB,EAAQuF,WAAW,IAAsC,IAA1BvF,EAAQuF,WAAW,KACpD,EAAIzjC,EAAMoJ,MAAM,gCAAkCilC,GAGhDlQ,EAAO,GACTA,GAAQA,EACRD,EAAQqQ,eAAiB,GAEzBrQ,EAAQqQ,cAAgB,EAG1BzxC,KAAKohC,QAAQjjB,KAAOqzB,EACpBxxC,KAAKohC,QAAQmF,SAAWlF,EAEpBmQ,EAAQE,YACV,OAGF,IAAI/wC,EAAO6wC,EAAQtR,YAAc,aACjC,IAAIyR,EAAO,SAEPH,EAAQ9G,MACViH,EAAO,MACEH,EAAQG,OACjBA,EAAO,QAGT,IAAIC,EAASJ,EAAQI,OAAS,SAAW,SACrCC,EAAW,IAAIlxC,OAAU6wC,EAAQM,eACrC,IAAIC,EAAkB1Q,EAElBA,EAAOiB,EACTyP,EAAkBzP,EACTjB,EAAOkB,IAChBwP,EAAkBxP,GAGpBviC,KAAKohC,QAAQoF,cAAgBnF,EAAO0Q,EACpC/xC,KAAKs/B,IAAInhB,KAAO,GAAGyzB,KAAUD,KAAQI,OAAqBF,KAE5Dr3B,qBAAsB,SAA6CjZ,GACjEvB,KAAKohC,QAAQ8F,kBAAoB3lC,GAEnCkZ,YAAa,SAAoCu3B,GAC/ChyC,KAAKohC,QAAQ+F,SAAW6K,GAE1Bt3B,SAAU,SAAiCpQ,EAAGC,GAC5CvK,KAAKohC,QAAQ92B,EAAItK,KAAKohC,QAAQyF,OAASv8B,EACvCtK,KAAKohC,QAAQ72B,EAAIvK,KAAKohC,QAAQ0F,OAASv8B,GAEzCoQ,mBAAoB,SAA2CrQ,EAAGC,GAChEvK,KAAKsa,YAAY/P,GACjBvK,KAAK0a,SAASpQ,EAAGC,IAEnBqQ,cAAe,SAAsCoI,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,GAClE1jC,KAAKohC,QAAQqF,WAAa,CAACzjB,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,GAC1C1jC,KAAKohC,QAAQsF,gBAAkBx8B,KAAKgZ,KAAKF,EAAIA,EAAIZ,EAAIA,GACrDpiB,KAAKohC,QAAQ92B,EAAItK,KAAKohC,QAAQyF,MAAQ,EACtC7mC,KAAKohC,QAAQ72B,EAAIvK,KAAKohC,QAAQ0F,MAAQ,GAExCjsB,SAAU,WACR7a,KAAK0a,SAAS,EAAG1a,KAAKohC,QAAQwF,UAGhC,UAAU1F,EAAW52B,EAAGC,EAAG0nC,GACzB,IAAI3S,EAAMt/B,KAAKs/B,IACX8B,EAAUphC,KAAKohC,QACfjjB,EAAOijB,EAAQjjB,KACf+oB,EAAoB9F,EAAQ8F,kBAC5BX,EAAWnF,EAAQmF,SAAWnF,EAAQoF,cACtC0L,EAAiBhL,EAAoBhkC,EAAMoN,kBAAkBgC,iBAC7D6/B,KAAoBjL,EAAoBhkC,EAAMoN,kBAAkBiC,kBACpE,MAAM+0B,EAAclG,EAAQkG,cAAgBnpB,EAAKsf,YACjD,IAAI4T,EAmCJ,IAjCIlzB,EAAKuK,iBAAmBypB,GAAkB7K,KAC5C+J,EAAYlzB,EAAKi0B,iBAAiBpyC,KAAKiuB,WAAYiT,IAGjD/iB,EAAKuK,iBAAmB4e,GAC1BhI,EAAIzmB,OACJymB,EAAI8D,UAAU94B,EAAGC,GACjB+0B,EAAI2G,YACJoL,EAAU/R,EAAKiH,GAEX0L,GACF3S,EAAIiE,aAAa1iB,MAAMye,EAAK2S,GAG1BC,IAAmBhvC,EAAMoN,kBAAkBwB,MAAQogC,IAAmBhvC,EAAMoN,kBAAkB0B,aAChGstB,EAAI9lB,OAGF04B,IAAmBhvC,EAAMoN,kBAAkByB,QAAUmgC,IAAmBhvC,EAAMoN,kBAAkB0B,aAClGstB,EAAIhmB,SAGNgmB,EAAIxmB,YAEAo5B,IAAmBhvC,EAAMoN,kBAAkBwB,MAAQogC,IAAmBhvC,EAAMoN,kBAAkB0B,aAChGstB,EAAIG,SAASyB,EAAW52B,EAAGC,GAGzB2nC,IAAmBhvC,EAAMoN,kBAAkByB,QAAUmgC,IAAmBhvC,EAAMoN,kBAAkB0B,aAClGstB,EAAI+S,WAAWnR,EAAW52B,EAAGC,IAI7B4nC,EAAgB,CAClB,IAAIjB,EAAQlxC,KAAKmxC,mBAAqBnxC,KAAKmxC,iBAAmB,IAC9DD,EAAMzkC,KAAK,CACTrC,UAAWk1B,EAAIwD,oBACfx4B,IACAC,IACAg8B,WACA8K,gBAKN,8BACE,MACE/qC,QAASg5B,GACPt/B,KAAKipC,eAAe1E,UAAU,0BAA2B,GAAI,IACjEjF,EAAIj2B,MAAM,IAAK,GACfi2B,EAAIG,SAAS,IAAK,EAAG,IAIrB,IAHA,IAAIle,EAAO+d,EAAII,aAAa,EAAG,EAAG,GAAI,IAAIne,KACtCjW,GAAU,EAELjL,EAAI,EAAGA,EAAIkhB,EAAKtV,OAAQ5L,GAAK,EACpC,GAAIkhB,EAAKlhB,GAAK,GAAKkhB,EAAKlhB,GAAK,IAAK,CAChCiL,GAAU,EACV,MAIJ,OAAO,EAAIpI,EAAMW,QAAQ7D,KAAM,0BAA2BsL,IAG5DwP,SAAU,SAAiCw3B,GACzC,IAAIlR,EAAUphC,KAAKohC,QACfjjB,EAAOijB,EAAQjjB,KAEnB,GAAIA,EAAKuzB,YACP,OAAO1xC,KAAKuyC,cAAcD,GAG5B,IAAI/L,EAAWnF,EAAQmF,SAEvB,GAAiB,IAAbA,EACF,OAGF,IAAIjH,EAAMt/B,KAAKs/B,IACXkH,EAAgBpF,EAAQoF,cACxBO,EAAc3F,EAAQ2F,YACtBC,EAAc5F,EAAQ4F,YACtByK,EAAgBrQ,EAAQqQ,cACxBxK,EAAa7F,EAAQ6F,WAAawK,EAClCe,EAAeF,EAAOrmC,OACtBwmC,EAAWt0B,EAAKs0B,SAChBC,EAAaD,EAAW,GAAK,EAC7BE,EAAkBx0B,EAAKw0B,gBACvBC,EAAoBrM,EAAWnF,EAAQuF,WAAW,GAClDkM,EAAiBzR,EAAQ8F,oBAAsBhkC,EAAMoN,kBAAkBwB,OAASqM,EAAKuK,kBAAoB0Y,EAAQkG,YAErH,IAAI2K,EAEJ,GAHA3S,EAAIzmB,OAGAuoB,EAAQkG,YAAa,CACvBhI,EAAIzmB,OACJ,MAAMi6B,EAAU1R,EAAQgG,UAAU2J,WAAWzR,EAAKt/B,MAClDiyC,EAAmB3S,EAAIwD,oBACvBxD,EAAIxmB,UACJwmB,EAAIoM,UAAYoH,EAGlBxT,EAAIl1B,UAAUyW,MAAMye,EAAK8B,EAAQqF,YACjCnH,EAAI8D,UAAUhC,EAAQ92B,EAAG82B,EAAQ72B,EAAI62B,EAAQ+F,UAEzCsK,EAAgB,EAClBnS,EAAIj2B,MAAM49B,GAAa,GAEvB3H,EAAIj2B,MAAM49B,EAAY,GAGxB,IAAIQ,EAAYrG,EAAQqG,UACpBp+B,EAAQ+3B,EAAQsF,gBAEpB,GAAc,IAAVr9B,GAA6B,IAAdo+B,EAAiB,CAClC,IAAIyK,EAAiB9Q,EAAQ8F,kBAAoBhkC,EAAMoN,kBAAkBgC,iBAErE4/B,IAAmBhvC,EAAMoN,kBAAkByB,QAAUmgC,IAAmBhvC,EAAMoN,kBAAkB0B,cAClGhS,KAAKkpC,2BAA6B,KAClCzB,EAAYznC,KAAKywC,sBAAwBhO,QAG3CgF,GAAap+B,EAGO,IAAlBm9B,IACFlH,EAAIj2B,MAAMm9B,EAAeA,GACzBiB,GAAajB,GAGflH,EAAImI,UAAYA,EAChB,IACIpnC,EADAiK,EAAI,EAGR,IAAKjK,EAAI,EAAGA,EAAImyC,IAAgBnyC,EAAG,CACjC,IAAI0yC,EAAQT,EAAOjyC,GAEnB,IAAI,EAAI6C,EAAMyM,OAAOojC,GACnBzoC,GAAKooC,EAAaK,EAAQxM,EAAW,QADvC,CAKA,IAIIyM,EAASC,EAASC,EAAeC,EAI/BC,EAASC,EAAIC,EAyCfC,EAjDAC,GAAgB,EAChBlC,GAAWyB,EAAMU,QAAUzM,EAAc,GAAKD,EAC9C7F,EAAY6R,EAAMW,SAClBC,EAASZ,EAAMY,OAEf1tC,EAAQ8sC,EAAM9sC,MAElB,GAAIwsC,EAEFW,EAAUL,EAAMK,SAAWT,EAC3BU,EAAKN,EAAMK,QAAUA,EAAQ,GAAa,GAARntC,EAClCotC,GAAMA,EAAKT,EACXU,EAAKF,EAAQ,GAAKR,EAClB3sC,EAAQmtC,GAAWA,EAAQ,GAAKntC,EAChC+sC,EAAUK,EAAK7M,EACfyM,GAAW3oC,EAAIgpC,GAAM9M,OAErBwM,EAAU1oC,EAAIk8B,EACdyM,EAAU,EAGZ,GAAI90B,EAAKy1B,WAAa3tC,EAAQ,EAAG,CAC/B,IAAI4tC,EAAmD,IAAnCvU,EAAIwU,YAAY5S,GAAWj7B,MAAesgC,EAAWC,EAEzE,GAAIvgC,EAAQ4tC,GAAiB7zC,KAAK+zC,wBAAyB,CACzD,IAAIC,EAAkB/tC,EAAQ4tC,EAC9BL,GAAgB,EAChBlU,EAAIzmB,OACJymB,EAAIj2B,MAAM2qC,EAAiB,GAC3BhB,GAAWgB,OACF/tC,IAAU4tC,IACnBb,IAAY/sC,EAAQ4tC,GAAiB,IAAOtN,EAAWC,GAIvDxmC,KAAK+oC,iBAAmBgK,EAAMkB,UAAY91B,EAAKsf,eAC7CoV,IAAmBc,EACrBrU,EAAIG,SAASyB,EAAW8R,EAASC,IAEjCjzC,KAAKk0C,UAAUhT,EAAW8R,EAASC,EAAShB,GAExC0B,IACFT,EAAgBF,EAAUzM,EAAWoN,EAAO1U,OAAO30B,EAAIk8B,EACvD2M,EAAgBF,EAAU1M,EAAWoN,EAAO1U,OAAO10B,EAAIi8B,EACvDxmC,KAAKk0C,UAAUP,EAAOD,SAAUR,EAAeC,EAAelB,MAQlEsB,EADEd,EACUxsC,EAAQ2sC,EAAoBtB,EAAUG,EAEtCxrC,EAAQ2sC,EAAoBtB,EAAUG,EAGpDnnC,GAAKipC,EAEDC,GACFlU,EAAIxmB,WAIJ25B,EACFrR,EAAQ72B,GAAKD,EAEb82B,EAAQ92B,GAAKA,EAAI28B,EAGnB3H,EAAIxmB,WAENy5B,cAAe,SAAsCD,GACnD,IAYIjyC,EAAG0yC,EAAO9sC,EAAOkuC,EAZjB7U,EAAMt/B,KAAKs/B,IACX8B,EAAUphC,KAAKohC,QACfjjB,EAAOijB,EAAQjjB,KACfooB,EAAWnF,EAAQmF,SACnBkL,EAAgBrQ,EAAQqQ,cACxBiB,EAAav0B,EAAKs0B,SAAW,GAAK,EAClC1L,EAAc3F,EAAQ2F,YACtBC,EAAc5F,EAAQ4F,YACtBC,EAAa7F,EAAQ6F,WAAawK,EAClC9K,EAAavF,EAAQuF,YAAczjC,EAAMmO,qBACzCmhC,EAAeF,EAAOrmC,OACtBmoC,EAAkBhT,EAAQ8F,oBAAsBhkC,EAAMoN,kBAAkB2B,UAG5E,IAAImiC,GAAgC,IAAb7N,EAAvB,CAUA,IANAvmC,KAAKkpC,2BAA6B,KAClC5J,EAAIzmB,OACJymB,EAAIl1B,UAAUyW,MAAMye,EAAK8B,EAAQqF,YACjCnH,EAAI8D,UAAUhC,EAAQ92B,EAAG82B,EAAQ72B,GACjC+0B,EAAIj2B,MAAM49B,EAAYwK,GAEjBpxC,EAAI,EAAGA,EAAImyC,IAAgBnyC,EAG9B,GAFA0yC,EAAQT,EAAOjyC,IAEX,EAAI6C,EAAMyM,OAAOojC,GACnBoB,EAAgBzB,EAAaK,EAAQxM,EAAW,IAChDvmC,KAAKs/B,IAAI8D,UAAU+Q,EAAe,GAClC/S,EAAQ92B,GAAK6pC,EAAgBlN,MAH/B,CAOA,IAAIqK,GAAWyB,EAAMU,QAAUzM,EAAc,GAAKD,EAC9C/W,EAAe7R,EAAKk2B,qBAAqBtB,EAAMuB,gBAEnD,GAAKtkB,EAAL,CAKIhwB,KAAK+oC,iBACP/oC,KAAKwoC,gBAAkBuK,EACvB/yC,KAAK6Y,OACLymB,EAAIj2B,MAAMk9B,EAAUA,GACpBjH,EAAIl1B,UAAUyW,MAAMye,EAAKqH,GACzB3mC,KAAK28B,oBAAoB3M,GACzBhwB,KAAK8Y,WAGP,IAAIy7B,EAAcrxC,EAAMc,KAAKwG,eAAe,CAACuoC,EAAM9sC,MAAO,GAAI0gC,GAE9D1gC,EAAQsuC,EAAY,GAAKhO,EAAW+K,EACpChS,EAAI8D,UAAUn9B,EAAO,GACrBm7B,EAAQ92B,GAAKrE,EAAQghC,OAjBnB,EAAI/jC,EAAMoJ,MAAM,oBAAoBymC,EAAMuB,qCAoB9ChV,EAAIxmB,UACJ9Y,KAAKwoC,gBAAkB,OAEzBttB,aAAc,SAAqCs5B,EAAQC,KAC3Dt5B,sBAAuB,SAA8Cq5B,EAAQC,EAAQC,EAAKC,EAAKC,EAAKC,GAClG70C,KAAKs/B,IAAI70B,KAAKiqC,EAAKC,EAAKC,EAAMF,EAAKG,EAAMF,GACzC30C,KAAK+Z,OACL/Z,KAAK8Z,WAEPg7B,kBAAmB,SAA0CC,GAC3D,IAAIjC,EAEJ,GAAc,kBAAViC,EAAG,GAAwB,CAC7B,IAAIC,EAAQD,EAAG,GACXtM,EAAgBzoC,KAAKyoC,eAAiBzoC,KAAKs/B,IAAIwD,oBAAoBz4B,QACnE4qC,EAAwB,CAC1BC,qBAAsB5V,GACb,IAAIhD,EAAegD,EAAKt/B,KAAKiuB,WAAYjuB,KAAKkuB,KAAMluB,KAAKovB,cAAepvB,KAAK4vB,eAGxFkjB,EAAU,IAAIzQ,EAAgB8S,cAAcJ,EAAIC,EAAOh1C,KAAKs/B,IAAK2V,EAAuBxM,QAExFqK,GAAU,EAAIzQ,EAAgB+S,yBAAyBL,GAGzD,OAAOjC,GAETv3B,gBAAiB,WACfvb,KAAKohC,QAAQiG,YAAcrnC,KAAK80C,kBAAkBO,YAEpD55B,cAAe,WACbzb,KAAKohC,QAAQgG,UAAYpnC,KAAK80C,kBAAkBO,WAChDr1C,KAAKohC,QAAQkG,aAAc,GAE7B1rB,kBAAmB,SAA0C1a,EAAGihB,EAAGC,GACjE,IAAI4yB,EAAQ9xC,EAAMc,KAAKsxC,WAAWp0C,EAAGihB,EAAGC,GAExCpiB,KAAKs/B,IAAImM,YAAcuJ,EACvBh1C,KAAKohC,QAAQiG,YAAc2N,GAE7Bn5B,gBAAiB,SAAwC3a,EAAGihB,EAAGC,GAC7D,IAAI4yB,EAAQ9xC,EAAMc,KAAKsxC,WAAWp0C,EAAGihB,EAAGC,GAExCpiB,KAAKs/B,IAAIoM,UAAYsJ,EACrBh1C,KAAKohC,QAAQgG,UAAY4N,EACzBh1C,KAAKohC,QAAQkG,aAAc,GAE7BtrB,YAAa,SAAoCu5B,GAC/C,GAAKv1C,KAAK+oC,eAAV,CAIA,IAAIzJ,EAAMt/B,KAAKs/B,IACft/B,KAAK6Y,OACL,IAAIi6B,GAAU,EAAIzQ,EAAgB+S,yBAAyBG,GAC3DjW,EAAIoM,UAAYoH,EAAQ/B,WAAWzR,EAAKt/B,MAAM,GAC9C,IAAIw1C,EAAMlW,EAAI8Q,2BAEd,GAAIoF,EAAK,CACP,IAAIpvC,EAASk5B,EAAIl5B,OACbH,EAAQG,EAAOH,MACfC,EAASE,EAAOF,OAEhBuvC,EAAKvyC,EAAMc,KAAKwG,eAAe,CAAC,EAAG,GAAIgrC,GAEvCE,EAAKxyC,EAAMc,KAAKwG,eAAe,CAAC,EAAGtE,GAASsvC,GAE5CG,EAAKzyC,EAAMc,KAAKwG,eAAe,CAACvE,EAAO,GAAIuvC,GAE3CI,EAAK1yC,EAAMc,KAAKwG,eAAe,CAACvE,EAAOC,GAASsvC,GAEhDK,EAAK3rC,KAAK8B,IAAIypC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCE,EAAK5rC,KAAK8B,IAAIypC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCG,EAAK7rC,KAAK2Y,IAAI4yB,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCI,EAAK9rC,KAAK2Y,IAAI4yB,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IAC1C51C,KAAKs/B,IAAI8O,SAASyH,EAAIC,EAAIC,EAAKF,EAAIG,EAAKF,QAExC91C,KAAKs/B,IAAI8O,UAAU,MAAO,KAAM,KAAM,MAGxCpuC,KAAK8Y,YAEPmD,iBAAkB,YAChB,EAAI/Y,EAAM8C,aAAa,qCAEzBkW,eAAgB,YACd,EAAIhZ,EAAM8C,aAAa,mCAEzB4W,sBAAuB,SAA8Cq5B,EAAQC,GAC3E,GAAKl2C,KAAK+oC,iBAIV/oC,KAAK6Y,OACL7Y,KAAK0oC,mBAAmBj8B,KAAKzM,KAAKyoC,eAE9BrU,MAAMC,QAAQ4hB,IAA6B,IAAlBA,EAAOhqC,QAClCjM,KAAKoK,UAAUyW,MAAM7gB,KAAMi2C,GAG7Bj2C,KAAKyoC,cAAgBzoC,KAAKs/B,IAAIwD,oBAE1BoT,GAAM,CACR,IAAIjwC,EAAQiwC,EAAK,GAAKA,EAAK,GACvBhwC,EAASgwC,EAAK,GAAKA,EAAK,GAC5Bl2C,KAAKs/B,IAAI70B,KAAKyrC,EAAK,GAAIA,EAAK,GAAIjwC,EAAOC,GACvClG,KAAK+Z,OACL/Z,KAAK8Z,YAGT+C,oBAAqB,WACd7c,KAAK+oC,iBAIV/oC,KAAK8Y,UACL9Y,KAAKyoC,cAAgBzoC,KAAK0oC,mBAAmB3E,QAE/CjnB,WAAY,SAAmCq5B,GAC7C,GAAKn2C,KAAK+oC,eAAV,CAIA/oC,KAAK6Y,OACL,IAAIm3B,EAAahwC,KAAKs/B,IAEjB6W,EAAMC,WACT,EAAIlzC,EAAMqM,MAAM,sCAGd4mC,EAAME,WACR,EAAInzC,EAAMoJ,MAAM,kCAGlB,IAAI2jC,EAAmBD,EAAWlN,oBAMlC,GAJIqT,EAAMF,QACRjG,EAAW5lC,UAAUyW,MAAMmvB,EAAYmG,EAAMF,SAG1CE,EAAMD,KACT,MAAM,IAAI7vC,MAAM,6BAGlB,IAAIiwC,EAASpzC,EAAMc,KAAKuyC,2BAA2BJ,EAAMD,KAAMlG,EAAWlN,qBAEtE0T,EAAe,CAAC,EAAG,EAAGxG,EAAW5pC,OAAOH,MAAO+pC,EAAW5pC,OAAOF,QACrEowC,EAASpzC,EAAMc,KAAKyyC,UAAUH,EAAQE,IAAiB,CAAC,EAAG,EAAG,EAAG,GACjE,IAAIjtC,EAAUW,KAAKwsC,MAAMJ,EAAO,IAC5B9sC,EAAUU,KAAKwsC,MAAMJ,EAAO,IAC5B1G,EAAa1lC,KAAK2Y,IAAI3Y,KAAKmjC,KAAKiJ,EAAO,IAAM/sC,EAAS,GACtDsmC,EAAc3lC,KAAK2Y,IAAI3Y,KAAKmjC,KAAKiJ,EAAO,IAAM9sC,EAAS,GACvDikC,EAAS,EACTC,EAAS,EAETkC,EAAapN,IACfiL,EAASmC,EAAapN,EACtBoN,EAAapN,GAGXqN,EAAcrN,IAChBkL,EAASmC,EAAcrN,EACvBqN,EAAcrN,GAGhB,IAAIsN,EAAU,UAAY9vC,KAAK2oC,WAE3BwN,EAAMl4B,QACR6xB,GAAW,UAAY9vC,KAAK6oC,eAAiB,GAG/C,IAAIkH,EAAgB/vC,KAAKipC,eAAe1E,UAAUuL,EAASF,EAAYC,GAAa,GAChFK,EAAWH,EAAczpC,QAC7B4pC,EAAS7mC,MAAM,EAAIokC,EAAQ,EAAIC,GAC/BwC,EAAS9M,WAAW75B,GAAUC,GAC9B0mC,EAAS9lC,UAAUyW,MAAMqvB,EAAUD,GAE/BkG,EAAMl4B,MACRje,KAAK4oC,WAAWn8B,KAAK,CACnBrG,OAAQ2pC,EAAc3pC,OACtBE,QAAS4pC,EACT3mC,UACAC,UACAikC,SACAC,SACAX,QAASoJ,EAAMl4B,MAAM8uB,QACrBC,SAAUmJ,EAAMl4B,MAAM+uB,SACtBN,YAAayJ,EAAMl4B,MAAMyuB,aAAe,KACxCyD,sBAAuB,QAGzBH,EAAWzM,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACvCyM,EAAW5M,UAAU75B,EAASC,GAC9BwmC,EAAW3mC,MAAMokC,EAAQC,IAG3BzC,EAAa+E,EAAYE,GACzBlwC,KAAKs/B,IAAM4Q,EACXlwC,KAAK4Y,UAAU,CAAC,CAAC,KAAM,eAAgB,CAAC,KAAM,GAAI,CAAC,KAAM,KACzD5Y,KAAKuoC,WAAW97B,KAAKujC,GACrBhwC,KAAK2oC,aACL3oC,KAAKohC,QAAQsG,YAAc,OAE7B3qB,SAAU,SAAiCo5B,GACzC,GAAKn2C,KAAK+oC,eAAV,CAIA/oC,KAAK2oC,aACL,IAAIuH,EAAWlwC,KAAKs/B,IACpBt/B,KAAKs/B,IAAMt/B,KAAKuoC,WAAWxE,WAEYtjB,IAAnCzgB,KAAKs/B,IAAIqX,sBACX32C,KAAKs/B,IAAIqX,uBAAwB,EAEjC32C,KAAKs/B,IAAIsX,0BAA2B,EAGlCT,EAAMl4B,MACRje,KAAK8oC,UAAY9oC,KAAK4oC,WAAW7E,MAEjC/jC,KAAKs/B,IAAIwO,UAAUoC,EAAS9pC,OAAQ,EAAG,GAGzCpG,KAAK8Y,YAEPkE,iBAAkB,WAChBhd,KAAK6Y,OAED7Y,KAAKyoC,eACPzoC,KAAKs/B,IAAIiE,aAAa1iB,MAAM7gB,KAAKs/B,IAAKt/B,KAAKyoC,gBAG/CxrB,eAAgB,WACdjd,KAAK8Y,WAEPoE,gBAAiB,SAAwCzS,EAAML,EAAW6rC,GAKxE,GAJAj2C,KAAK6Y,OACL2yB,EAAkBxrC,KAAKs/B,KACvBt/B,KAAKohC,QAAU,IAAIiF,EAEfjS,MAAMC,QAAQ5pB,IAAyB,IAAhBA,EAAKwB,OAAc,CAC5C,IAAIhG,EAAQwE,EAAK,GAAKA,EAAK,GACvBvE,EAASuE,EAAK,GAAKA,EAAK,GAC5BzK,KAAKs/B,IAAI70B,KAAKA,EAAK,GAAIA,EAAK,GAAIxE,EAAOC,GACvClG,KAAK+Z,OACL/Z,KAAK8Z,UAGP9Z,KAAKoK,UAAUyW,MAAM7gB,KAAMoK,GAC3BpK,KAAKoK,UAAUyW,MAAM7gB,KAAMi2C,IAE7B94B,cAAe,WACbnd,KAAK8Y,WAEPuE,sBAAuB,SAA8Cw5B,GACnE,GAAK72C,KAAK+oC,eAAV,CAIA,IAAIzJ,EAAMt/B,KAAKs/B,IACXr5B,EAAQ4wC,EAAI5wC,MACZC,EAAS2wC,EAAI3wC,OACbkhC,EAAYpnC,KAAKohC,QAAQgG,UACzB4J,EAAgBhxC,KAAKohC,QAAQkG,YAC7ByL,EAAQ/yC,KAAKwoC,gBAcjB,GAZI9F,GAAwBqQ,QAA4BtyB,IAAnBsyB,EAAM+D,WAEvC/D,EAAM+D,SADJ7wC,GAAS08B,GAAuBz8B,GAAUy8B,EAC3BgC,EAAkB,CACjCpjB,KAAMs1B,EAAIt1B,KACVtb,QACAC,WAGe,MAIjB6sC,GAASA,EAAM+D,SACjB/D,EAAM+D,SAASxX,OADjB,CAKA,IAAIyX,EAAa/2C,KAAKipC,eAAe1E,UAAU,aAAct+B,EAAOC,GAChE2mC,EAAUkK,EAAWzwC,QACzBumC,EAAQh0B,OACRmyB,EAAmB6B,EAASgK,GAC5BhK,EAAQb,yBAA2B,YACnCa,EAAQnB,UAAYsF,EAAgB5J,EAAU2J,WAAWlE,EAAS7sC,MAAQonC,EAC1EyF,EAAQuB,SAAS,EAAG,EAAGnoC,EAAOC,GAC9B2mC,EAAQ/zB,UACR9Y,KAAKwd,wBAAwBu5B,EAAW3wC,WAG1C,4BAA4Bw+B,EAAS6I,EAAQuJ,EAAQ,EAAGC,EAAQ,EAAGvJ,EAAQwJ,GACzE,GAAKl3C,KAAK+oC,eAAV,CAIA,IAAI9iC,EAAQ2+B,EAAQ3+B,MAChBC,EAAS0+B,EAAQ1+B,OACjBkhC,EAAYpnC,KAAKohC,QAAQgG,UACzB4J,EAAgBhxC,KAAKohC,QAAQkG,YAC7ByP,EAAa/2C,KAAKipC,eAAe1E,UAAU,aAAct+B,EAAOC,GAChE2mC,EAAUkK,EAAWzwC,QACzBumC,EAAQh0B,OACRmyB,EAAmB6B,EAASjI,GAC5BiI,EAAQb,yBAA2B,YACnCa,EAAQnB,UAAYsF,EAAgB5J,EAAU2J,WAAWlE,EAAS7sC,MAAQonC,EAC1EyF,EAAQuB,SAAS,EAAG,EAAGnoC,EAAOC,GAC9B2mC,EAAQ/zB,UAGR,IAFA,IAAIwmB,EAAMt/B,KAAKs/B,IAENj/B,EAAI,EAAGolB,EAAKyxB,EAAUjrC,OAAQ5L,EAAIolB,EAAIplB,GAAK,EAClDi/B,EAAIzmB,OACJymB,EAAIl1B,UAAUqjC,EAAQuJ,EAAOC,EAAOvJ,EAAQwJ,EAAU72C,GAAI62C,EAAU72C,EAAI,IACxEi/B,EAAIj2B,MAAM,GAAI,GACdi2B,EAAIwO,UAAUiJ,EAAW3wC,OAAQ,EAAG,EAAGH,EAAOC,EAAQ,GAAI,EAAG,EAAG,GAChEo5B,EAAIxmB,YAIRwE,2BAA4B,SAAmD65B,GAC7E,GAAKn3C,KAAK+oC,eAQV,IAJA,IAAIzJ,EAAMt/B,KAAKs/B,IACX8H,EAAYpnC,KAAKohC,QAAQgG,UACzB4J,EAAgBhxC,KAAKohC,QAAQkG,YAExBjnC,EAAI,EAAGolB,EAAK0xB,EAAOlrC,OAAQ5L,EAAIolB,EAAIplB,IAAK,CAC/C,IAAI+2C,EAAQD,EAAO92C,GACf4F,EAAQmxC,EAAMnxC,MACdC,EAASkxC,EAAMlxC,OACf6wC,EAAa/2C,KAAKipC,eAAe1E,UAAU,aAAct+B,EAAOC,GAChE2mC,EAAUkK,EAAWzwC,QACzBumC,EAAQh0B,OACRmyB,EAAmB6B,EAASuK,GAC5BvK,EAAQb,yBAA2B,YACnCa,EAAQnB,UAAYsF,EAAgB5J,EAAU2J,WAAWlE,EAAS7sC,MAAQonC,EAC1EyF,EAAQuB,SAAS,EAAG,EAAGnoC,EAAOC,GAC9B2mC,EAAQ/zB,UACRwmB,EAAIzmB,OACJymB,EAAIl1B,UAAUyW,MAAMye,EAAK8X,EAAMhtC,WAC/Bk1B,EAAIj2B,MAAM,GAAI,GACdi2B,EAAIwO,UAAUiJ,EAAW3wC,OAAQ,EAAG,EAAGH,EAAOC,EAAQ,GAAI,EAAG,EAAG,GAChEo5B,EAAIxmB,YAGRyE,kBAAmB,SAA0Cod,GAC3D,IAAK36B,KAAK+oC,eACR,OAGF,MAAMnE,EAAUjK,EAAMsU,WAAW,MAAQjvC,KAAKiuB,WAAWhtB,IAAI05B,GAAS36B,KAAKkuB,KAAKjtB,IAAI05B,GAE/EiK,EAKL5kC,KAAKwd,wBAAwBonB,IAJ3B,EAAI1hC,EAAMoJ,MAAM,oCAMpBoR,wBAAyB,SAAgDid,EAAO8S,EAAQC,EAAQwJ,GAC9F,IAAKl3C,KAAK+oC,eACR,OAGF,MAAMnE,EAAUjK,EAAMsU,WAAW,MAAQjvC,KAAKiuB,WAAWhtB,IAAI05B,GAAS36B,KAAKkuB,KAAKjtB,IAAI05B,GAEpF,GAAKiK,EAAL,CASA,IAJA,IAAI3+B,EAAQ2+B,EAAQ3+B,MAChBC,EAAS0+B,EAAQ1+B,OACjBmxC,EAAM,GAEDh3C,EAAI,EAAGolB,EAAKyxB,EAAUjrC,OAAQ5L,EAAIolB,EAAIplB,GAAK,EAClDg3C,EAAI5qC,KAAK,CACPrC,UAAW,CAACqjC,EAAQ,EAAG,EAAGC,EAAQwJ,EAAU72C,GAAI62C,EAAU72C,EAAI,IAC9DiK,EAAG,EACHC,EAAG,EACH+sC,EAAGrxC,EACHsxC,EAAGrxC,IAIPlG,KAAKyd,6BAA6BmnB,EAASyS,QAlBzC,EAAIn0C,EAAMoJ,MAAM,oCAoBpBkR,wBAAyB,SAAgDonB,GACvE,GAAK5kC,KAAK+oC,eAAV,CAIA,IAAI9iC,EAAQ2+B,EAAQ3+B,MAChBC,EAAS0+B,EAAQ1+B,OACjBo5B,EAAMt/B,KAAKs/B,IACft/B,KAAK6Y,OACLymB,EAAIj2B,MAAM,EAAIpD,GAAQ,EAAIC,GAC1B,IAOIsxC,EAAYC,EAPZxH,EAAmB3Q,EAAI8Q,2BACvBptB,EAAIitB,EAAiB,GACrB7tB,EAAI6tB,EAAiB,GACrByH,EAAaxtC,KAAK2Y,IAAI3Y,KAAKgZ,KAAKF,EAAIA,EAAIZ,EAAIA,GAAI,GAChD3hB,EAAIwvC,EAAiB,GACrBvvC,EAAIuvC,EAAiB,GACrB0H,EAAcztC,KAAK2Y,IAAI3Y,KAAKgZ,KAAKziB,EAAIA,EAAIC,EAAIA,GAAI,GAGrD,GAA2B,oBAAhBk3C,aAA8BhT,aAAmBgT,cAAgBhT,EAAQrjB,KAClFi2B,EAAa5S,MACR,CACL6S,EAAYz3C,KAAKipC,eAAe1E,UAAU,cAAet+B,EAAOC,GAChE,IAAI2xC,EAASJ,EAAUnxC,QACvB6iC,EAAmB0O,EAAQjT,EAAS5kC,KAAKohC,QAAQwG,cACjD4P,EAAaC,EAAUrxC,OAGzB,IAAI0xC,EAAa7xC,EACb8xC,EAAc7xC,EACd8xC,EAAc,YAElB,MAAON,EAAa,GAAKI,EAAa,GAAKH,EAAc,GAAKI,EAAc,EAAG,CAC7E,IAAIE,EAAWH,EACXI,EAAYH,EAEZL,EAAa,GAAKI,EAAa,IACjCG,EAAW/tC,KAAKmjC,KAAKyK,EAAa,GAClCJ,GAAcI,EAAaG,GAGzBN,EAAc,GAAKI,EAAc,IACnCG,EAAYhuC,KAAKmjC,KAAK0K,EAAc,GACpCJ,GAAeI,EAAcG,GAG/BT,EAAYz3C,KAAKipC,eAAe1E,UAAUyT,EAAaC,EAAUC,GACjEL,EAASJ,EAAUnxC,QACnBuxC,EAAOvH,UAAU,EAAG,EAAG2H,EAAUC,GACjCL,EAAO/J,UAAU0J,EAAY,EAAG,EAAGM,EAAYC,EAAa,EAAG,EAAGE,EAAUC,GAC5EV,EAAaC,EAAUrxC,OACvB0xC,EAAaG,EACbF,EAAcG,EACdF,EAA8B,cAAhBA,EAA8B,YAAc,YAK5D,GAFA1Y,EAAIwO,UAAU0J,EAAY,EAAG,EAAGM,EAAYC,EAAa,GAAI7xC,EAAQD,EAAOC,GAExElG,KAAKmvB,WAAY,CACnB,IAAImR,EAAWtgC,KAAKm4C,kBAAkB,GAAIjyC,GAC1ClG,KAAKmvB,WAAWipB,YAAY,CAC1BxT,UACApE,KAAMF,EAAS,GACfC,IAAKD,EAAS,GACdr6B,MAAOA,EAAQgqC,EAAiB,GAChC/pC,OAAQA,EAAS+pC,EAAiB,KAItCjwC,KAAK8Y,YAEP2E,6BAA8B,SAAqDmnB,EAASyS,GAC1F,GAAKr3C,KAAK+oC,eAAV,CAIA,IAAIzJ,EAAMt/B,KAAKs/B,IACXgY,EAAI1S,EAAQ3+B,MACZsxC,EAAI3S,EAAQ1+B,OACZuxC,EAAYz3C,KAAKipC,eAAe1E,UAAU,cAAe+S,EAAGC,GAC5DM,EAASJ,EAAUnxC,QACvB6iC,EAAmB0O,EAAQjT,EAAS5kC,KAAKohC,QAAQwG,cAEjD,IAAK,IAAIvnC,EAAI,EAAGolB,EAAK4xB,EAAIprC,OAAQ5L,EAAIolB,EAAIplB,IAAK,CAC5C,IAAIg4C,EAAQhB,EAAIh3C,GAMhB,GALAi/B,EAAIzmB,OACJymB,EAAIl1B,UAAUyW,MAAMye,EAAK+Y,EAAMjuC,WAC/Bk1B,EAAIj2B,MAAM,GAAI,GACdi2B,EAAIwO,UAAU2J,EAAUrxC,OAAQiyC,EAAM/tC,EAAG+tC,EAAM9tC,EAAG8tC,EAAMf,EAAGe,EAAMd,EAAG,GAAI,EAAG,EAAG,GAE1Ev3C,KAAKmvB,WAAY,CACnB,IAAImR,EAAWtgC,KAAKm4C,kBAAkBE,EAAM/tC,EAAG+tC,EAAM9tC,GACrDvK,KAAKmvB,WAAWipB,YAAY,CAC1BxT,UACApE,KAAMF,EAAS,GACfC,IAAKD,EAAS,GACdr6B,MAAOqxC,EACPpxC,OAAQqxC,IAIZjY,EAAIxmB,aAGR8E,yBAA0B,WACnB5d,KAAK+oC,gBAIV/oC,KAAKs/B,IAAI8O,SAAS,EAAG,EAAG,EAAG,IAE7B/xB,UAAW,SAAkCi8B,KAC7Ch8B,eAAgB,SAAuCg8B,EAAKlN,KAC5D7uB,mBAAoB,SAA2C+7B,GAC7Dt4C,KAAKgpC,mBAAmBv8B,KAAK,CAC3B8rC,SAAS,KAGb/7B,wBAAyB,SAAgD87B,EAAKlN,GAChE,OAARkN,EACFt4C,KAAKgpC,mBAAmBv8B,KAAK,CAC3B8rC,QAASv4C,KAAKmxB,sBAAsBqnB,UAAUpN,KAGhDprC,KAAKgpC,mBAAmBv8B,KAAK,CAC3B8rC,SAAS,IAIbv4C,KAAK+oC,eAAiB/oC,KAAKy4C,oBAE7Bh8B,iBAAkB,WAChBzc,KAAKgpC,mBAAmBjF,MACxB/jC,KAAK+oC,eAAiB/oC,KAAKy4C,oBAE7B/7B,YAAa,aACbC,UAAW,aACXk0B,YAAa,WACX,IAAIvR,EAAMt/B,KAAKs/B,IAEXt/B,KAAKmoC,cACHnoC,KAAKmoC,cAAgB+F,EACvB5O,EAAIvlB,KAAK,WAETulB,EAAIvlB,OAGN/Z,KAAKmoC,YAAc,MAGrB7I,EAAI2G,aAGN,oBAAoB58B,GAClB,GAAwC,OAApCrJ,KAAKkpC,2BAAqC,CAC5C,MAAMwP,EAAU14C,KAAKs/B,IAAI8Q,2BACzBpwC,KAAKkpC,2BAA6Bh/B,KAAKgZ,KAAKhZ,KAAK2Y,IAAI61B,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,GAAIA,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,KAGzJ,OAAO14C,KAAKkpC,4BAGdiP,kBAAmB,SAA0C7tC,EAAGC,GAC9D,IAAIH,EAAYpK,KAAKs/B,IAAIwD,oBACzB,MAAO,CAAC14B,EAAU,GAAKE,EAAIF,EAAU,GAAKG,EAAIH,EAAU,GAAIA,EAAU,GAAKE,EAAIF,EAAU,GAAKG,EAAIH,EAAU,KAE9GquC,iBAAkB,WAChB,IAAK,IAAIp4C,EAAIL,KAAKgpC,mBAAmB/8B,OAAS,EAAG5L,GAAK,EAAGA,IACvD,IAAKL,KAAKgpC,mBAAmB3oC,GAAGk4C,QAC9B,OAAO,EAIX,OAAO,IAIIr1C,EAAMO,IACnB64B,EAAet6B,UAAUkB,EAAMO,IAAI0qC,IAAO7R,EAAet6B,UAAUmsC,GAGrE,OAAO7R,EA5yDY,GA+yDrB18B,EAAQ08B,eAAiBA,GAInB,SAAU38B,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQw1C,wBAA0BA,EAClCx1C,EAAQu1C,mBAAgB,EAExB,IAAIjyC,EAAQ/C,EAAoB,GAE5Bw4C,EAAa,GAEjB,SAASC,EAAiBtZ,EAAK4W,GAC7B,IAAKA,GAA0B,qBAAX2C,OAClB,OAGF,MAAM5yC,EAAQiwC,EAAK,GAAKA,EAAK,GACvBhwC,EAASgwC,EAAK,GAAKA,EAAK,GACxB4C,EAAS,IAAID,OACnBC,EAAOruC,KAAKyrC,EAAK,GAAIA,EAAK,GAAIjwC,EAAOC,GACrCo5B,EAAIvlB,KAAK++B,GAGXH,EAAWI,YAAc,CACvBC,OAAQ,SAA4BC,GAClC,IAAI9vC,EAAO8vC,EAAI,GACX/C,EAAO+C,EAAI,GACXC,EAAaD,EAAI,GACjBnT,EAAKmT,EAAI,GACTx2B,EAAKw2B,EAAI,GACT/M,EAAK+M,EAAI,GACTE,EAAKF,EAAI,GACb,MAAO,CACL9vC,KAAM,UACN4nC,WAAY,SAAgCzR,GAE1C,IAAI8Z,EADJR,EAAiBtZ,EAAK4W,GAGT,UAAT/sC,EACFiwC,EAAO9Z,EAAI+Z,qBAAqBvT,EAAG,GAAIA,EAAG,GAAIrjB,EAAG,GAAIA,EAAG,IACtC,WAATtZ,IACTiwC,EAAO9Z,EAAIga,qBAAqBxT,EAAG,GAAIA,EAAG,GAAIoG,EAAIzpB,EAAG,GAAIA,EAAG,GAAI02B,IAGlE,IAAK,IAAI94C,EAAI,EAAGolB,EAAKyzB,EAAWjtC,OAAQ5L,EAAIolB,IAAMplB,EAAG,CACnD,IAAII,EAAIy4C,EAAW74C,GACnB+4C,EAAKG,aAAa94C,EAAE,GAAIA,EAAE,IAG5B,OAAO24C,MAMf,IAAII,EAAmB,WACrB,SAASC,EAAal4B,EAAMjb,EAASmc,EAAIC,EAAIC,EAAI+2B,EAAIC,EAAIC,GACvD,IAIIC,EAJAhU,EAASv/B,EAAQu/B,OACjBiU,EAASxzC,EAAQwzC,OACjBt5B,EAAQe,EAAKA,KACbw4B,EAAuB,EAAbx4B,EAAKtb,MAGf4/B,EAAOpjB,EAAK,GAAKojB,EAAOnjB,EAAK,KAC/Bm3B,EAAMp3B,EACNA,EAAKC,EACLA,EAAKm3B,EACLA,EAAMH,EACNA,EAAKC,EACLA,EAAKE,GAGHhU,EAAOnjB,EAAK,GAAKmjB,EAAOljB,EAAK,KAC/Bk3B,EAAMn3B,EACNA,EAAKC,EACLA,EAAKk3B,EACLA,EAAMF,EACNA,EAAKC,EACLA,EAAKC,GAGHhU,EAAOpjB,EAAK,GAAKojB,EAAOnjB,EAAK,KAC/Bm3B,EAAMp3B,EACNA,EAAKC,EACLA,EAAKm3B,EACLA,EAAMH,EACNA,EAAKC,EACLA,EAAKE,GAGP,IAAI9D,GAAMlQ,EAAOpjB,GAAMnc,EAAQiD,SAAWjD,EAAQmnC,OAC9CuI,GAAMnQ,EAAOpjB,EAAK,GAAKnc,EAAQkD,SAAWlD,EAAQonC,OAClDsM,GAAMnU,EAAOnjB,GAAMpc,EAAQiD,SAAWjD,EAAQmnC,OAC9CwM,GAAMpU,EAAOnjB,EAAK,GAAKpc,EAAQkD,SAAWlD,EAAQonC,OAClDwM,GAAMrU,EAAOljB,GAAMrc,EAAQiD,SAAWjD,EAAQmnC,OAC9C0M,GAAMtU,EAAOljB,EAAK,GAAKrc,EAAQkD,SAAWlD,EAAQonC,OAEtD,KAAIsI,GAAMmE,GAkBV,IAdA,IAWIC,EAAIC,EAAKC,EAAKC,EACdC,EAAIC,EAAKC,EAAKC,EAZdC,EAAMd,EAAOJ,GACbmB,EAAMf,EAAOJ,EAAK,GAClBoB,EAAMhB,EAAOJ,EAAK,GAClBqB,EAAMjB,EAAOH,GACbqB,EAAMlB,EAAOH,EAAK,GAClBsB,EAAMnB,EAAOH,EAAK,GAClBuB,EAAMpB,EAAOF,GACbuB,EAAMrB,EAAOF,EAAK,GAClBwB,EAAMtB,EAAOF,EAAK,GAClByB,EAAOnxC,KAAKoxC,MAAMtF,GAClBuF,EAAOrxC,KAAKoxC,MAAMnB,GAIb5vC,EAAI8wC,EAAM9wC,GAAKgxC,EAAMhxC,IAAK,CACjC,GAAIA,EAAI0vC,EAAI,CACV,IAAI/T,EAGFA,EADE37B,EAAIyrC,EACF,EACKA,IAAOiE,EACZ,GAECjE,EAAKzrC,IAAMyrC,EAAKiE,GAGvBG,EAAKrE,GAAMA,EAAKiE,GAAM9T,EACtBmU,EAAMO,GAAOA,EAAMG,GAAO7U,EAC1BoU,EAAMO,GAAOA,EAAMG,GAAO9U,EAC1BqU,EAAMO,GAAOA,EAAMG,GAAO/U,MACrB,CACL,IAAIA,EAGFA,EADE37B,EAAI4vC,EACF,EACKF,IAAOE,EACZ,GAECF,EAAK1vC,IAAM0vC,EAAKE,GAGvBC,EAAKJ,GAAMA,EAAKE,GAAMhU,EACtBmU,EAAMU,GAAOA,EAAMG,GAAOhV,EAC1BoU,EAAMU,GAAOA,EAAMG,GAAOjV,EAC1BqU,EAAMU,GAAOA,EAAMG,GAAOlV,EAG5B,IAAIA,EAGFA,EADE37B,EAAIyrC,EACF,EACKzrC,EAAI4vC,EACT,GAECnE,EAAKzrC,IAAMyrC,EAAKmE,GAGvBK,EAAKzE,GAAMA,EAAKmE,GAAMhU,EACtBuU,EAAMG,GAAOA,EAAMM,GAAOhV,EAC1BwU,EAAMG,GAAOA,EAAMM,GAAOjV,EAC1ByU,EAAMG,GAAOA,EAAMM,GAAOlV,EAK1B,IAJA,IAAIsV,EAAMtxC,KAAKoxC,MAAMpxC,KAAK8B,IAAIouC,EAAII,IAC9BiB,EAAMvxC,KAAKoxC,MAAMpxC,KAAK2Y,IAAIu3B,EAAII,IAC9B3V,EAAIkV,EAAUxvC,EAAU,EAANixC,EAEblxC,EAAIkxC,EAAKlxC,GAAKmxC,EAAKnxC,IAC1B47B,GAAKkU,EAAK9vC,IAAM8vC,EAAKI,GAEjBtU,EAAI,EACNA,EAAI,EACKA,EAAI,IACbA,EAAI,GAGN1lB,EAAMqkB,KAAOwV,GAAOA,EAAMI,GAAOvU,EAAI,EACrC1lB,EAAMqkB,KAAOyV,GAAOA,EAAMI,GAAOxU,EAAI,EACrC1lB,EAAMqkB,KAAO0V,GAAOA,EAAMI,GAAOzU,EAAI,EACrC1lB,EAAMqkB,KAAO,KAKnB,SAAS6W,EAAWn6B,EAAMo6B,EAAQr1C,GAChC,IAEIjG,EAAGolB,EAFHm2B,EAAKD,EAAO9V,OACZgW,EAAKF,EAAO7B,OAGhB,OAAQ6B,EAAOxyC,MACb,IAAK,UACH,IAAI2yC,EAAiBH,EAAOG,eACxBC,EAAO7xC,KAAKwsC,MAAMkF,EAAG3vC,OAAS6vC,GAAkB,EAChDE,EAAOF,EAAiB,EAE5B,IAAKz7C,EAAI,EAAGA,EAAI07C,EAAM17C,IAGpB,IAFA,IAAI47C,EAAI57C,EAAIy7C,EAEHjX,EAAI,EAAGA,EAAImX,EAAMnX,IAAKoX,IAC7BxC,EAAal4B,EAAMjb,EAASs1C,EAAGK,GAAIL,EAAGK,EAAI,GAAIL,EAAGK,EAAIH,GAAiBD,EAAGI,GAAIJ,EAAGI,EAAI,GAAIJ,EAAGI,EAAIH,IAC/FrC,EAAal4B,EAAMjb,EAASs1C,EAAGK,EAAIH,EAAiB,GAAIF,EAAGK,EAAI,GAAIL,EAAGK,EAAIH,GAAiBD,EAAGI,EAAIH,EAAiB,GAAID,EAAGI,EAAI,GAAIJ,EAAGI,EAAIH,IAI7I,MAEF,IAAK,YACH,IAAKz7C,EAAI,EAAGolB,EAAKm2B,EAAG3vC,OAAQ5L,EAAIolB,EAAIplB,GAAK,EACvCo5C,EAAal4B,EAAMjb,EAASs1C,EAAGv7C,GAAIu7C,EAAGv7C,EAAI,GAAIu7C,EAAGv7C,EAAI,GAAIw7C,EAAGx7C,GAAIw7C,EAAGx7C,EAAI,GAAIw7C,EAAGx7C,EAAI,IAGpF,MAEF,QACE,MAAM,IAAIgG,MAAM,mBAItB,SAASmzC,EAAiBlD,EAAQ4F,EAAerW,EAAQiU,EAAQqC,EAASC,EAAiBnT,EAAgBrZ,GACzG,IAqBIxpB,EAAQqxC,EAAWp3C,EAAGolB,EArBtB42B,EAAiB,IACjBC,EAAmB,IACnBC,EAAc,EACdhzC,EAAUW,KAAKwsC,MAAMJ,EAAO,IAC5B9sC,EAAUU,KAAKwsC,MAAMJ,EAAO,IAC5BkG,EAActyC,KAAKmjC,KAAKiJ,EAAO,IAAM/sC,EACrCkzC,EAAevyC,KAAKmjC,KAAKiJ,EAAO,IAAM9sC,EACtCvD,EAAQiE,KAAK8B,IAAI9B,KAAKmjC,KAAKnjC,KAAKC,IAAIqyC,EAAcN,EAAc,GAAKG,IAAkBC,GACvFp2C,EAASgE,KAAK8B,IAAI9B,KAAKmjC,KAAKnjC,KAAKC,IAAIsyC,EAAeP,EAAc,GAAKG,IAAkBC,GACzF7O,EAAS+O,EAAcv2C,EACvBynC,EAAS+O,EAAev2C,EACxBI,EAAU,CACZu/B,SACAiU,SACAvwC,SAAUA,EACVC,SAAUA,EACVikC,OAAQ,EAAIA,EACZC,OAAQ,EAAIA,GAEVgP,EAAcz2C,EAAsB,EAAds2C,EACtBI,EAAez2C,EAAuB,EAAdq2C,EAG5B,GAAI3sB,EAAa+d,UACfvnC,EAASwpB,EAAagtB,YAAY,CAChC32C,QACAC,SACAk2C,kBACAD,UACA71C,YAEFmxC,EAAYxO,EAAe1E,UAAU,OAAQmY,EAAaC,GAAc,GACxElF,EAAUnxC,QAAQwnC,UAAU1nC,EAAQm2C,EAAaA,GACjDn2C,EAASqxC,EAAUrxC,WACd,CACLqxC,EAAYxO,EAAe1E,UAAU,OAAQmY,EAAaC,GAAc,GACxE,IAAI9E,EAASJ,EAAUnxC,QACnBib,EAAOs2B,EAAOhO,gBAAgB5jC,EAAOC,GAEzC,GAAIk2C,EAAiB,CACnB,IAAI57B,EAAQe,EAAKA,KAEjB,IAAKlhB,EAAI,EAAGolB,EAAKjF,EAAMvU,OAAQ5L,EAAIolB,EAAIplB,GAAK,EAC1CmgB,EAAMngB,GAAK+7C,EAAgB,GAC3B57B,EAAMngB,EAAI,GAAK+7C,EAAgB,GAC/B57B,EAAMngB,EAAI,GAAK+7C,EAAgB,GAC/B57B,EAAMngB,EAAI,GAAK,IAInB,IAAKA,EAAI,EAAGA,EAAI87C,EAAQlwC,OAAQ5L,IAC9Bq7C,EAAWn6B,EAAM46B,EAAQ97C,GAAIiG,GAG/BuxC,EAAOxO,aAAa9nB,EAAMg7B,EAAaA,GACvCn2C,EAASqxC,EAAUrxC,OAGrB,MAAO,CACLA,SACAmD,QAASA,EAAUgzC,EAAc9O,EACjCjkC,QAASA,EAAU+yC,EAAc7O,EACjCD,SACAC,UAIJ,OAAO8L,EAtOc,GAgSvB,SAASpE,EAAwB6D,GAC/B,IAAI4D,EAAYlE,EAAWM,EAAI,IAE/B,IAAK4D,EACH,MAAM,IAAIx2C,MAAM,oBAAoB4yC,EAAI,IAG1C,OAAO4D,EAAU7D,OAAOC,GA9D1BN,EAAWmE,KAAO,CAChB9D,OAAQ,SAAqBC,GAC3B,IAAIpT,EAASoT,EAAI,GACba,EAASb,EAAI,GACbkD,EAAUlD,EAAI,GACd3C,EAAS2C,EAAI,GACbhD,EAASgD,EAAI,GACb/C,EAAO+C,EAAI,GACX5pB,EAAa4pB,EAAI,GACrB,MAAO,CACL9vC,KAAM,UACN4nC,WAAY,SAAyBzR,EAAKyd,EAAO/gC,GAE/C,IAAI3S,EAEJ,GAHAuvC,EAAiBtZ,EAAK4W,GAGlBl6B,EACF3S,EAAQnG,EAAMc,KAAK8sC,8BAA8BxR,EAAIwD,0BAIrD,GAFAz5B,EAAQnG,EAAMc,KAAK8sC,8BAA8BiM,EAAMtU,eAEnDwN,EAAQ,CACV,IAAI+G,EAAc95C,EAAMc,KAAK8sC,8BAA8BmF,GAE3D5sC,EAAQ,CAACA,EAAM,GAAK2zC,EAAY,GAAI3zC,EAAM,GAAK2zC,EAAY,IAI/D,IAAIC,EAAyBzD,EAAiBlD,EAAQjtC,EAAOw8B,EAAQiU,EAAQqC,EAASngC,EAAc,KAAOqT,EAAY0tB,EAAM9T,eAAgB8T,EAAMntB,cAYnJ,OAVK5T,IACHsjB,EAAIiE,aAAa1iB,MAAMye,EAAKyd,EAAMtU,eAE9BwN,GACF3W,EAAIl1B,UAAUyW,MAAMye,EAAK2W,IAI7B3W,EAAI8D,UAAU6Z,EAAuB1zC,QAAS0zC,EAAuBzzC,SACrE81B,EAAIj2B,MAAM4zC,EAAuBxP,OAAQwP,EAAuBvP,QACzDpO,EAAI4d,cAAcD,EAAuB72C,OAAQ,iBAKhEuyC,EAAWwE,MAAQ,CACjBnE,OAAQ,WACN,MAAO,CACL7vC,KAAM,UACN4nC,WAAY,WACV,MAAO,cAgBf,IAAIoE,EAAgB,WAClB,IAAIiI,EAAY,CACdC,QAAS,EACTC,UAAW,GAEThB,EAAmB,IAEvB,SAASnH,EAAcJ,EAAIC,EAAO1V,EAAK2V,EAAuBxM,GAC5DzoC,KAAKgwB,aAAe+kB,EAAG,GACvB/0C,KAAKi2C,OAASlB,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvC/0C,KAAKk2C,KAAOnB,EAAG,GACf/0C,KAAKu9C,MAAQxI,EAAG,GAChB/0C,KAAKw9C,MAAQzI,EAAG,GAChB/0C,KAAKy9C,UAAY1I,EAAG,GACpB/0C,KAAK09C,WAAa3I,EAAG,GACrB/0C,KAAKg1C,MAAQA,EACbh1C,KAAKi1C,sBAAwBA,EAC7Bj1C,KAAKyoC,cAAgBA,EACrBzoC,KAAKmJ,KAAO,UACZnJ,KAAKs/B,IAAMA,EAkGb,OA/FA6V,EAAcnzC,UAAY,CACxB27C,oBAAqB,SAA0CZ,GAC7D,IAAI/sB,EAAehwB,KAAKgwB,aACpBkmB,EAAOl2C,KAAKk2C,KACZqH,EAAQv9C,KAAKu9C,MACbC,EAAQx9C,KAAKw9C,MACbC,EAAYz9C,KAAKy9C,UACjBC,EAAa19C,KAAK09C,WAClB1I,EAAQh1C,KAAKg1C,MACbC,EAAwBj1C,KAAKi1C,uBACjC,EAAI/xC,EAAMqM,MAAM,eAAiBmuC,GACjC,IAAI7H,EAAKK,EAAK,GACVJ,EAAKI,EAAK,GACVH,EAAKG,EAAK,GACVF,EAAKE,EAAK,GAEV8G,EAAc95C,EAAMc,KAAK8sC,8BAA8B9wC,KAAKi2C,QAE5D2H,EAAiB16C,EAAMc,KAAK8sC,8BAA8B9wC,KAAKyoC,eAE/DoV,EAAgB,CAACb,EAAY,GAAKY,EAAe,GAAIZ,EAAY,GAAKY,EAAe,IACrFE,EAAO99C,KAAK+9C,gBAAgBR,EAAOv9C,KAAKs/B,IAAIl5B,OAAOH,MAAO43C,EAAc,IACxEG,EAAOh+C,KAAK+9C,gBAAgBP,EAAOx9C,KAAKs/B,IAAIl5B,OAAOF,OAAQ23C,EAAc,IACzEpG,EAAYsF,EAAM9T,eAAe1E,UAAU,UAAWuZ,EAAKzc,KAAM2c,EAAK3c,MAAM,GAC5EwW,EAASJ,EAAUnxC,QACnB23C,EAAWhJ,EAAsBC,qBAAqB2C,GAS1D,OARAoG,EAAStV,WAAaoU,EAAMpU,WAC5B3oC,KAAKk+C,+BAA+BD,EAAUR,EAAWzI,GACzDiJ,EAAS7zC,UAAU0zC,EAAKz0C,MAAO,EAAG,EAAG20C,EAAK30C,MAAO,EAAG,GACpD40C,EAAS7zC,UAAU,EAAG,EAAG,EAAG,GAAIyrC,GAAKC,GACrC91C,KAAKm+C,SAASF,EAAU/H,EAAML,EAAIC,EAAIC,EAAIC,GAC1CiI,EAASthB,oBAAoB3M,GAC7BhwB,KAAKs/B,IAAIl1B,UAAU,EAAG,EAAG,EAAG,EAAGyrC,EAAIC,GACnC91C,KAAKs/B,IAAIj2B,MAAM,EAAIy0C,EAAKz0C,MAAO,EAAI20C,EAAK30C,OACjCouC,EAAUrxC,QAEnB23C,gBAAiB,SAAuChY,EAAMqY,EAAgB/0C,GAC5E08B,EAAO77B,KAAKC,IAAI47B,GAChB,IAAIsY,EAAUn0C,KAAK2Y,IAAIy5B,EAAkB8B,GACrC/c,EAAOn3B,KAAKmjC,KAAKtH,EAAO18B,GAQ5B,OANIg4B,GAAQgd,EACVhd,EAAOgd,EAEPh1C,EAAQg4B,EAAO0E,EAGV,CACL18B,QACAg4B,SAGJ8c,SAAU,SAAkBF,EAAU/H,EAAML,EAAIC,EAAIC,EAAIC,GACtD,GAAI5hB,MAAMC,QAAQ6hB,IAAyB,IAAhBA,EAAKjqC,OAAc,CAC5C,IAAIqyC,EAAYvI,EAAKF,EACjB0I,EAAavI,EAAKF,EACtBmI,EAAS3e,IAAI70B,KAAKorC,EAAIC,EAAIwI,EAAWC,GACrCN,EAASlkC,OACTkkC,EAASnkC,YAGbokC,+BAAgC,SAAwCD,EAAUR,EAAWzI,GAC3F,MAAM1uC,EAAU23C,EAAS3e,IACnB8B,EAAU6c,EAAS7c,QAEzB,OAAQqc,GACN,KAAKL,EAAUC,QACb,IAAI/d,EAAMt/B,KAAKs/B,IACfh5B,EAAQolC,UAAYpM,EAAIoM,UACxBplC,EAAQmlC,YAAcnM,EAAImM,YAC1BrK,EAAQgG,UAAY9H,EAAIoM,UACxBtK,EAAQiG,YAAc/H,EAAImM,YAC1B,MAEF,KAAK2R,EAAUE,UACb,IAAIkB,EAAWt7C,EAAMc,KAAKsxC,WAAWN,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAE/D1uC,EAAQolC,UAAY8S,EACpBl4C,EAAQmlC,YAAc+S,EACtBpd,EAAQgG,UAAYoX,EACpBpd,EAAQiG,YAAcmX,EACtB,MAEF,QACE,MAAM,IAAIt7C,EAAMkN,YAAY,2BAA2BqtC,KAG7D1M,WAAY,SAAkCzR,EAAKyd,GACjDzd,EAAMt/B,KAAKs/B,IACXA,EAAIiE,aAAa1iB,MAAMye,EAAKt/B,KAAKyoC,eACjCnJ,EAAIl1B,UAAUyW,MAAMye,EAAKt/B,KAAKi2C,QAC9B,IAAIgH,EAAyBj9C,KAAK29C,oBAAoBZ,GACtD,OAAOzd,EAAI4d,cAAcD,EAAwB,YAG9C9H,EArHW,GAwHpBv1C,EAAQu1C,cAAgBA,GAIlB,SAAUx1C,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQ2E,yBAAsB,EAC9B,MAAMA,EAAsBzD,OAAOY,OAAO,MAC1C9B,EAAQ2E,oBAAsBA,EAC9BA,EAAoBykB,gBAAgDvI,IAAnClc,EAAoBykB,WAA2B,KAAOzkB,EAAoBykB,WAC3GzkB,EAAoB6wB,eAA8C3U,IAAlClc,EAAoB6wB,UAA0B,GAAK7wB,EAAoB6wB,WAIjG,SAAUz1B,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQqqB,oBAAiB,EAEzB,IAAI/mB,EAAQ/C,EAAoB,GAEhC,MAAMs+C,EAAe,CACnB7nC,QAAS,EACT8nC,KAAM,EACNC,MAAO,GAEHC,EAAa,CACjBhoC,QAAS,EACTioC,OAAQ,EACRC,gBAAiB,EACjBC,MAAO,EACPC,QAAS,EACTL,MAAO,EACPM,KAAM,EACNC,cAAe,EACfC,eAAgB,GAGlB,SAASC,EAAW/3C,GAClB,GAAsB,kBAAXA,GAAkC,OAAXA,EAChC,OAAOA,EAGT,OAAQA,EAAO1G,MACb,IAAK,iBACH,OAAO,IAAIuC,EAAMuN,eAAepJ,EAAO8Y,SAEzC,IAAK,sBACH,OAAO,IAAIjd,EAAMM,oBAAoB6D,EAAO8Y,SAE9C,IAAK,8BACH,OAAO,IAAIjd,EAAMY,4BAA4BuD,EAAO8Y,QAAS9Y,EAAOuB,QAEtE,IAAK,wBACH,OAAO,IAAI1F,EAAMmN,sBAAsBhJ,EAAO8Y,QAAS9Y,EAAOwG,SAEhE,QACE,OAAO,IAAI3K,EAAMmN,sBAAsBhJ,EAAO8Y,QAAS9Y,EAAOqd,aAIpE,MAAMuF,EACJ,YAAYo1B,EAAYC,EAAYC,GAClCv/C,KAAKq/C,WAAaA,EAClBr/C,KAAKs/C,WAAaA,EAClBt/C,KAAKu/C,OAASA,EACdv/C,KAAKw/C,WAAa,EAClBx/C,KAAKy/C,SAAW,EAChBz/C,KAAKkqB,sBAAuB,EAC5BlqB,KAAK0/C,YAAc5+C,OAAOY,OAAO,MACjC1B,KAAK2/C,kBAAoB7+C,OAAOY,OAAO,MACvC1B,KAAK4/C,qBAAuB9+C,OAAOY,OAAO,MAC1C1B,KAAK6/C,cAAgB/+C,OAAOY,OAAO,MAEnC1B,KAAK8/C,mBAAqBC,IACxB,MAAMx+B,EAAOw+B,EAAMx+B,KAEnB,GAAIA,EAAK+9B,aAAet/C,KAAKq/C,WAC3B,OAGF,GAAI99B,EAAKy+B,OAGP,YAFAhgD,KAAKigD,sBAAsB1+B,GAK7B,GAAIA,EAAKwP,SAAU,CACjB,MAAMyuB,EAAaj+B,EAAKi+B,WAClBv6B,EAAajlB,KAAK4/C,qBAAqBJ,GAE7C,IAAKv6B,EACH,MAAM,IAAI5e,MAAM,2BAA2Bm5C,GAK7C,UAFOx/C,KAAK4/C,qBAAqBJ,GAE7Bj+B,EAAKwP,WAAa0tB,EAAaC,KACjCz5B,EAAW9c,QAAQoZ,EAAKA,UACnB,IAAIA,EAAKwP,WAAa0tB,EAAaE,MAGxC,MAAM,IAAIt4C,MAAM,4BAFhB4e,EAAW7c,OAAOg3C,EAAW79B,EAAKla,SAKpC,OAGF,MAAM64C,EAASlgD,KAAK6/C,cAAct+B,EAAK2+B,QAEvC,IAAKA,EACH,MAAM,IAAI75C,MAAM,+BAA+Bkb,EAAK2+B,QAGtD,GAAI3+B,EAAKi+B,WAAT,CACE,MAAMW,EAAengD,KAAKq/C,WACpBe,EAAe7+B,EAAK89B,WAC1B,IAAIn3C,SAAQ,SAAUC,GACpBA,EAAQ+3C,EAAO3+B,EAAKA,UACnB/Z,MAAK,SAAUmc,GAChB47B,EAAOc,YAAY,CACjBhB,WAAYc,EACZb,WAAYc,EACZrvB,SAAU0tB,EAAaC,KACvBc,WAAYj+B,EAAKi+B,WACjBj+B,KAAMoC,OAEP,SAAUtc,GACXk4C,EAAOc,YAAY,CACjBhB,WAAYc,EACZb,WAAYc,EACZrvB,SAAU0tB,EAAaE,MACvBa,WAAYj+B,EAAKi+B,WACjBn4C,OAAQ+3C,EAAW/3C,aAMrBka,EAAKk+B,SACPz/C,KAAKsgD,kBAAkB/+B,GAKzB2+B,EAAO3+B,EAAKA,OAGdg+B,EAAO9oB,iBAAiB,UAAWz2B,KAAK8/C,oBAG1C,GAAGS,EAAYC,GACb,MAAMC,EAAKzgD,KAAK6/C,cAEhB,GAAIY,EAAGF,GACL,MAAM,IAAIl6C,MAAM,0CAA0Ck6C,MAG5DE,EAAGF,GAAcC,EAGnB,KAAKD,EAAYh/B,EAAMsS,GACrB7zB,KAAK0gD,aAAa,CAChBrB,WAAYr/C,KAAKq/C,WACjBC,WAAYt/C,KAAKs/C,WACjBY,OAAQK,EACRh/B,QACCsS,GAGL,gBAAgB0sB,EAAYh/B,EAAMsS,GAChC,MAAM2rB,EAAax/C,KAAKw/C,aAClBv6B,GAAa,EAAI/hB,EAAMG,2BAC7BrD,KAAK4/C,qBAAqBJ,GAAcv6B,EAExC,IACEjlB,KAAK0gD,aAAa,CAChBrB,WAAYr/C,KAAKq/C,WACjBC,WAAYt/C,KAAKs/C,WACjBY,OAAQK,EACRf,aACAj+B,QACCsS,GACH,MAAOxmB,GACP4X,EAAW7c,OAAOiF,GAGpB,OAAO4X,EAAWE,QAGpB,eAAeo7B,EAAYh/B,EAAMo/B,EAAkB9sB,GACjD,MAAM4rB,EAAWz/C,KAAKy/C,WAChBJ,EAAar/C,KAAKq/C,WAClBC,EAAat/C,KAAKs/C,WAClBC,EAASv/C,KAAKu/C,OACpB,OAAO,IAAIryC,eAAe,CACxBR,MAAOk0C,IACL,MAAMC,GAAkB,EAAI39C,EAAMG,2BAkBlC,OAjBArD,KAAK2/C,kBAAkBF,GAAY,CACjCmB,aACAE,UAAWD,EACXE,SAAU,KACVC,WAAY,KACZC,UAAU,GAGZjhD,KAAK0gD,aAAa,CAChBrB,aACAC,aACAY,OAAQK,EACRd,WACAl+B,OACA2/B,YAAaN,EAAWM,aACvBrtB,GAEIgtB,EAAgB17B,SAEzBg8B,KAAMP,IACJ,MAAMQ,GAAiB,EAAIl+C,EAAMG,2BASjC,OARArD,KAAK2/C,kBAAkBF,GAAUsB,SAAWK,EAC5C7B,EAAOc,YAAY,CACjBhB,aACAC,aACAU,OAAQpB,EAAWK,KACnBQ,WACAyB,YAAaN,EAAWM,cAEnBE,EAAej8B,SAExB0N,OAAQxrB,KACN,EAAInE,EAAM6F,QAAQ1B,aAAkBhB,MAAO,mCAC3C,MAAMg7C,GAAmB,EAAIn+C,EAAMG,2BAUnC,OATArD,KAAK2/C,kBAAkBF,GAAUuB,WAAaK,EAC9CrhD,KAAK2/C,kBAAkBF,GAAUwB,UAAW,EAC5C1B,EAAOc,YAAY,CACjBhB,aACAC,aACAU,OAAQpB,EAAWC,OACnBY,WACAp4C,OAAQ+3C,EAAW/3C,KAEdg6C,EAAiBl8B,UAEzBw7B,GAGL,kBAAkBp/B,GAChB,MAAM+/B,EAAOthD,KACPkgD,EAASlgD,KAAK6/C,cAAct+B,EAAK2+B,QACjCT,EAAWl+B,EAAKk+B,SAChBJ,EAAar/C,KAAKq/C,WAClBC,EAAa/9B,EAAK89B,WAClBE,EAASv/C,KAAKu/C,OACdgC,EAAa,CACjB,QAAQvgC,EAAOqgB,EAAO,EAAGxN,GACvB,GAAI7zB,KAAKwhD,YACP,OAGF,MAAMC,EAAkBzhD,KAAKkhD,YAC7BlhD,KAAKkhD,aAAe7f,EAEhBogB,EAAkB,GAAKzhD,KAAKkhD,aAAe,IAC7ClhD,KAAK0hD,gBAAiB,EAAIx+C,EAAMG,2BAChCrD,KAAKu4B,MAAQv4B,KAAK0hD,eAAev8B,SAGnCm8B,EAAKZ,aAAa,CAChBrB,aACAC,aACAU,OAAQpB,EAAWI,QACnBS,WACAz+B,SACC6S,IAGL,QACM7zB,KAAKwhD,cAITxhD,KAAKwhD,aAAc,EACnBjC,EAAOc,YAAY,CACjBhB,aACAC,aACAU,OAAQpB,EAAWG,MACnBU,oBAEK6B,EAAK5B,YAAYD,KAG1B,MAAMp4C,IACJ,EAAInE,EAAM6F,QAAQ1B,aAAkBhB,MAAO,kCAEvCrG,KAAKwhD,cAITxhD,KAAKwhD,aAAc,EACnBjC,EAAOc,YAAY,CACjBhB,aACAC,aACAU,OAAQpB,EAAWD,MACnBc,WACAp4C,OAAQ+3C,EAAW/3C,OAIvBq6C,gBAAgB,EAAIx+C,EAAMG,2BAC1B80B,OAAQ,KACRG,SAAU,KACVkpB,aAAa,EACbN,YAAa3/B,EAAK2/B,YAClB3oB,MAAO,MAETgpB,EAAWG,eAAev5C,UAC1Bo5C,EAAWhpB,MAAQgpB,EAAWG,eAAev8B,QAC7CnlB,KAAK0/C,YAAYD,GAAY8B,EAC7B,IAAIr5C,SAAQ,SAAUC,GACpBA,EAAQ+3C,EAAO3+B,EAAKA,KAAMggC,OACzB/5C,MAAK,WACN+3C,EAAOc,YAAY,CACjBhB,aACAC,aACAU,OAAQpB,EAAWO,eACnBM,WACAkC,SAAS,OAEV,SAAUt6C,GACXk4C,EAAOc,YAAY,CACjBhB,aACAC,aACAU,OAAQpB,EAAWO,eACnBM,WACAp4C,OAAQ+3C,EAAW/3C,QAKzB,sBAAsBka,GACpB,MAAMk+B,EAAWl+B,EAAKk+B,SAChBJ,EAAar/C,KAAKq/C,WAClBC,EAAa/9B,EAAK89B,WAClBE,EAASv/C,KAAKu/C,OAEpB,OAAQh+B,EAAKy+B,QACX,KAAKpB,EAAWO,eACV59B,EAAKogC,QACP3hD,KAAK2/C,kBAAkBF,GAAUqB,UAAU34C,UAE3CnI,KAAK2/C,kBAAkBF,GAAUqB,UAAU14C,OAAOg3C,EAAW79B,EAAKla,SAGpE,MAEF,KAAKu3C,EAAWM,cACV39B,EAAKogC,QACP3hD,KAAK2/C,kBAAkBF,GAAUsB,SAAS54C,UAE1CnI,KAAK2/C,kBAAkBF,GAAUsB,SAAS34C,OAAOg3C,EAAW79B,EAAKla,SAGnE,MAEF,KAAKu3C,EAAWK,KACd,IAAKj/C,KAAK0/C,YAAYD,GAAW,CAC/BF,EAAOc,YAAY,CACjBhB,aACAC,aACAU,OAAQpB,EAAWM,cACnBO,WACAkC,SAAS,IAEX,MAGE3hD,KAAK0/C,YAAYD,GAAUyB,aAAe,GAAK3/B,EAAK2/B,YAAc,GACpElhD,KAAK0/C,YAAYD,GAAUiC,eAAev5C,UAG5CnI,KAAK0/C,YAAYD,GAAUyB,YAAc3/B,EAAK2/B,YAC9C,MAAM,OACJ/oB,GACEn4B,KAAK0/C,YAAYn+B,EAAKk+B,UAC1B,IAAIv3C,SAAQ,SAAUC,GACpBA,EAAQgwB,GAAUA,QACjB3wB,MAAK,WACN+3C,EAAOc,YAAY,CACjBhB,aACAC,aACAU,OAAQpB,EAAWM,cACnBO,WACAkC,SAAS,OAEV,SAAUt6C,GACXk4C,EAAOc,YAAY,CACjBhB,aACAC,aACAU,OAAQpB,EAAWM,cACnBO,WACAp4C,OAAQ+3C,EAAW/3C,QAGvB,MAEF,KAAKu3C,EAAWI,QAGd,IAFA,EAAI97C,EAAM6F,QAAQ/I,KAAK2/C,kBAAkBF,GAAW,yCAEhDz/C,KAAK2/C,kBAAkBF,GAAUwB,SACnC,MAGFjhD,KAAK2/C,kBAAkBF,GAAUmB,WAAWvoB,QAAQ9W,EAAKP,OACzD,MAEF,KAAK49B,EAAWG,MAGd,IAFA,EAAI77C,EAAM6F,QAAQ/I,KAAK2/C,kBAAkBF,GAAW,uCAEhDz/C,KAAK2/C,kBAAkBF,GAAUwB,SACnC,MAGFjhD,KAAK2/C,kBAAkBF,GAAUwB,UAAW,EAC5CjhD,KAAK2/C,kBAAkBF,GAAUmB,WAAWxoB,QAE5Cp4B,KAAK4hD,wBAAwBnC,GAE7B,MAEF,KAAKb,EAAWD,OACd,EAAIz7C,EAAM6F,QAAQ/I,KAAK2/C,kBAAkBF,GAAW,uCACpDz/C,KAAK2/C,kBAAkBF,GAAUmB,WAAWrwB,MAAM6uB,EAAW79B,EAAKla,SAElErH,KAAK4hD,wBAAwBnC,GAE7B,MAEF,KAAKb,EAAWE,gBACVv9B,EAAKogC,QACP3hD,KAAK2/C,kBAAkBF,GAAUuB,WAAW74C,UAE5CnI,KAAK2/C,kBAAkBF,GAAUuB,WAAW54C,OAAOg3C,EAAW79B,EAAKla,SAGrErH,KAAK4hD,wBAAwBnC,GAE7B,MAEF,KAAKb,EAAWC,OACd,IAAK7+C,KAAK0/C,YAAYD,GACpB,MAGF,MAAM,SACJnnB,GACEt4B,KAAK0/C,YAAYn+B,EAAKk+B,UAC1B,IAAIv3C,SAAQ,SAAUC,GACpBA,EAAQmwB,GAAYA,EAAS8mB,EAAW79B,EAAKla,aAC5CG,MAAK,WACN+3C,EAAOc,YAAY,CACjBhB,aACAC,aACAU,OAAQpB,EAAWE,gBACnBW,WACAkC,SAAS,OAEV,SAAUt6C,GACXk4C,EAAOc,YAAY,CACjBhB,aACAC,aACAU,OAAQpB,EAAWE,gBACnBW,WACAp4C,OAAQ+3C,EAAW/3C,QAGvBrH,KAAK0/C,YAAYD,GAAUiC,eAAet5C,OAAOg3C,EAAW79B,EAAKla,SACjErH,KAAK0/C,YAAYD,GAAU+B,aAAc,SAClCxhD,KAAK0/C,YAAYD,GACxB,MAEF,QACE,MAAM,IAAIp5C,MAAM,2BAItB,8BAA8Bo5C,SACtBv3C,QAAQ25C,WAAW,CAAC7hD,KAAK2/C,kBAAkBF,GAAUqB,UAAW9gD,KAAK2/C,kBAAkBF,GAAUsB,SAAU/gD,KAAK2/C,kBAAkBF,GAAUuB,YAAY3J,KAAI,SAAUpyB,GAC1K,OAAOA,GAAcA,EAAWE,mBAE3BnlB,KAAK2/C,kBAAkBF,GAGhC,aAAat/B,EAAS0T,GAChBA,GAAa7zB,KAAKkqB,qBACpBlqB,KAAKu/C,OAAOc,YAAYlgC,EAAS0T,GAEjC7zB,KAAKu/C,OAAOc,YAAYlgC,GAI5B,UACEngB,KAAKu/C,OAAOlpB,oBAAoB,UAAWr2B,KAAK8/C,qBAKpDlgD,EAAQqqB,eAAiBA,GAInB,SAAUtqB,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQ26B,cAAW,EAEnB,IAAIr3B,EAAQ/C,EAAoB,GAE5B2hD,EAAc3hD,EAAoB,IAEtC,MAAMo6B,EACJ,YAAYhZ,IACV,EAAIre,EAAM6F,QAAwB,kBAATwY,EAAmB,mCAC5CA,EAAOvhB,KAAK+hD,QAAQxgC,GACpB,MAAMygC,EAAS,IAAIF,EAAYG,gBACzBC,EAAcF,EAAOG,gBAAgB5gC,GAC3CvhB,KAAKoiD,aAAe,IAAI7zB,IAEpB2zB,GACFliD,KAAKqiD,OAAOH,GAIhB,QAAQ3gC,GACN,OAAOA,EAAKhB,QAAQ,SAAU,IAAIA,QAAQ,uBAAuB,SAAUuJ,EAAKw4B,GAC9E,MAAM9hC,EAAQ8hC,EAAM/hC,QAAQ,4BAA4B,SAAUH,EAAMyF,EAAIC,EAAIC,GAC9E,OAAOpF,OAAOC,aAAkB,GAALiF,EAAe,EAALC,EAAc,EAALC,MAC7CxF,QAAQ,4BAA4B,SAAUD,EAAK3f,GACpD,OAAQA,GACN,IAAK,MACH,MAAO,IAET,IAAK,OACH,MAAO,IAET,IAAK,KACH,MAAO,IAET,IAAK,KACH,MAAO,IAET,IAAK,OACH,MAAO,IAGX,MAAM,IAAI0F,MAAM,YAAY1F,uBAE9B,IAAI4hD,EAAQ,GAEZ,IAAK,IAAIliD,EAAI,EAAGolB,EAAKjF,EAAMvU,OAAQ5L,EAAIolB,EAAIplB,GAAK,EAAG,CACjD,MAAM+f,EAA6B,IAAtBI,EAAMU,WAAW7gB,GAAWmgB,EAAMU,WAAW7gB,EAAI,GAG5DkiD,GADEniC,GAAQ,IAAMA,EAAO,KAAgB,KAATA,GAAwB,KAATA,GAAwB,KAATA,EACnDO,OAAOC,aAAaR,GAEpB,OAAS,MAAUA,GAAMsE,SAAS,IAAIxY,UAAU,GAAK,IAIlE,MAAO,IAAMq2C,KAIjB,OAAOL,GACL,IAAIM,EAAMN,EAAYv0C,gBAEtB,GAAmC,YAA/B60C,EAAIC,SAASC,cAA6B,CAC5CF,EAAMA,EAAIG,WAEV,MAAOH,GAAsC,YAA/BA,EAAIC,SAASC,cACzBF,EAAMA,EAAII,YAId,MAAMH,EAAWD,EAAMA,EAAIC,SAASC,cAAgB,KAEpD,IAAKF,GAAoB,YAAbC,IAA2BD,EAAIK,gBACzC,OAGF,MAAMC,EAAWN,EAAIO,WAErB,IAAK,IAAI1iD,EAAI,EAAGolB,EAAKq9B,EAAS72C,OAAQ5L,EAAIolB,EAAIplB,IAAK,CACjD,MAAMi0B,EAAOwuB,EAASziD,GAEtB,GAAoC,oBAAhCi0B,EAAKmuB,SAASC,cAIlB,IAAK,IAAI7d,EAAI,EAAGme,EAAK1uB,EAAKyuB,WAAW92C,OAAQ44B,EAAIme,EAAIne,IACnD,GAAkD,UAA9CvQ,EAAKyuB,WAAWle,GAAG4d,SAASC,cAA2B,CACzD,MAAMrK,EAAQ/jB,EAAKyuB,WAAWle,GACxBlkC,EAAO03C,EAAMoK,SAASC,cAE5B1iD,KAAKoiD,aAAa1gC,IAAI/gB,EAAM03C,EAAMvmB,YAAYmxB,UAMtD,IAAItiD,GACF,OAAOX,KAAKoiD,aAAapuB,IAAIrzB,GAAQX,KAAKoiD,aAAanhD,IAAIN,GAAQ,KAGrE,SACE,OAAOG,OAAOohC,YAAYliC,KAAKoiD,cAGjC,IAAIzhD,GACF,OAAOX,KAAKoiD,aAAapuB,IAAIrzB,IAKjCf,EAAQ26B,SAAWA,GAIb,SAAU56B,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQqiD,qBAAkB,EAC1B,MAAMiB,EAAqB,CACzBC,QAAS,EACTC,eAAgB,EAChBC,kBAAmB,EACnBC,4BAA6B,EAC7BC,gCAAiC,EACjCC,qBAAsB,EACtBC,kBAAmB,EACnBC,aAAc,EACdC,4BAA6B,EAC7BC,qBAAsB,EACtBC,mBAAoB,IAGtB,SAASC,EAAa3hD,EAAGoiB,GACvB,MAAMw/B,EAAK5hD,EAAEoiB,GACb,MAAc,MAAPw/B,GAAqB,OAAPA,GAAsB,OAAPA,GAAsB,OAAPA,EAGrD,SAASC,EAAmB7hD,GAC1B,IAAK,IAAI9B,EAAI,EAAGolB,EAAKtjB,EAAE8J,OAAQ5L,EAAIolB,EAAIplB,IACrC,IAAKyjD,EAAa3hD,EAAG9B,GACnB,OAAO,EAIX,OAAO,EAGT,MAAM4jD,EACJ,iBAAiB9hD,GACf,OAAOA,EAAEoe,QAAQ,aAAc,CAACuJ,EAAKo6B,KACnC,GAA+B,OAA3BA,EAAOh4C,UAAU,EAAG,GACtB,OAAOyU,OAAOC,aAAarS,SAAS21C,EAAOh4C,UAAU,GAAI,KACpD,GAA+B,MAA3Bg4C,EAAOh4C,UAAU,EAAG,GAC7B,OAAOyU,OAAOC,aAAarS,SAAS21C,EAAOh4C,UAAU,GAAI,KAG3D,OAAQg4C,GACN,IAAK,KACH,MAAO,IAET,IAAK,KACH,MAAO,IAET,IAAK,MACH,MAAO,IAET,IAAK,OACH,MAAO,IAGX,OAAOlkD,KAAKmkD,gBAAgBD,KAIhC,cAAc/hD,EAAGuK,GACf,MAAM03C,EAAa,GACnB,IAAI9iC,EAAM5U,EAEV,SAAS23C,IACP,MAAO/iC,EAAMnf,EAAE8J,QAAU63C,EAAa3hD,EAAGmf,KACrCA,EAIN,MAAOA,EAAMnf,EAAE8J,SAAW63C,EAAa3hD,EAAGmf,IAAmB,MAAXnf,EAAEmf,IAA2B,MAAXnf,EAAEmf,KAClEA,EAGJ,MAAM3gB,EAAOwB,EAAE+J,UAAUQ,EAAO4U,GAChC+iC,IAEA,MAAO/iC,EAAMnf,EAAE8J,QAAqB,MAAX9J,EAAEmf,IAA2B,MAAXnf,EAAEmf,IAA2B,MAAXnf,EAAEmf,GAAc,CAC3E+iC,IACA,IAAIC,EAAW,GACXC,EAAY,GAEhB,MAAOjjC,EAAMnf,EAAE8J,SAAW63C,EAAa3hD,EAAGmf,IAAmB,MAAXnf,EAAEmf,GAClDgjC,GAAYniD,EAAEmf,KACZA,EAKJ,GAFA+iC,IAEe,MAAXliD,EAAEmf,GACJ,OAAO,OAGPA,EACF+iC,IACA,MAAMG,EAAcriD,EAAEmf,GAEtB,GAAoB,MAAhBkjC,GAAuC,MAAhBA,EACzB,OAAO,KAGT,MAAMC,EAAetiD,EAAE0J,QAAQ24C,IAAeljC,GAE9C,GAAImjC,EAAe,EACjB,OAAO,KAGTF,EAAYpiD,EAAE+J,UAAUoV,EAAKmjC,GAC7BL,EAAW33C,KAAK,CACd9L,KAAM2jD,EACNjjD,MAAOrB,KAAK0kD,iBAAiBH,KAE/BjjC,EAAMmjC,EAAe,EACrBJ,IAGF,MAAO,CACL1jD,OACAyjD,aACAO,OAAQrjC,EAAM5U,GAIlB,4BAA4BvK,EAAGuK,GAC7B,IAAI4U,EAAM5U,EAEV,SAAS23C,IACP,MAAO/iC,EAAMnf,EAAE8J,QAAU63C,EAAa3hD,EAAGmf,KACrCA,EAIN,MAAOA,EAAMnf,EAAE8J,SAAW63C,EAAa3hD,EAAGmf,IAAmB,MAAXnf,EAAEmf,IAA2B,MAAXnf,EAAEmf,KAClEA,EAGJ,MAAM3gB,EAAOwB,EAAE+J,UAAUQ,EAAO4U,GAChC+iC,IACA,MAAMO,EAAYtjC,EAElB,MAAOA,EAAMnf,EAAE8J,SAAsB,MAAX9J,EAAEmf,IAA+B,MAAfnf,EAAEmf,EAAM,MAChDA,EAGJ,MAAMjgB,EAAQc,EAAE+J,UAAU04C,EAAWtjC,GACrC,MAAO,CACL3gB,OACAU,QACAsjD,OAAQrjC,EAAM5U,GAIlB,SAASvK,GACP,IAAI9B,EAAI,EAER,MAAOA,EAAI8B,EAAE8J,OAAQ,CACnB,MAAM83C,EAAK5hD,EAAE9B,GACb,IAAIwkC,EAAIxkC,EAER,GAAW,MAAP0jD,EAAY,GACZlf,EACF,MAAMggB,EAAM1iD,EAAE0iC,GACd,IAAIoX,EAEJ,OAAQ4I,GACN,IAAK,IAIH,KAHEhgB,EACFoX,EAAI95C,EAAE0J,QAAQ,IAAKg5B,GAEfoX,EAAI,EAEN,YADAj8C,KAAK8kD,QAAQ5B,EAAmBU,qBAIlC5jD,KAAK+kD,aAAa5iD,EAAE+J,UAAU24B,EAAGoX,IACjCpX,EAAIoX,EAAI,EACR,MAEF,IAAK,MACDpX,EAEF,MAAMmgB,EAAKhlD,KAAKilD,4BAA4B9iD,EAAG0iC,GAE/C,GAAsD,OAAlD1iC,EAAE+J,UAAU24B,EAAImgB,EAAGL,OAAQ9f,EAAImgB,EAAGL,OAAS,GAE7C,YADA3kD,KAAK8kD,QAAQ5B,EAAmBI,4BAIlCtjD,KAAKklD,KAAKF,EAAGrkD,KAAMqkD,EAAG3jD,OACtBwjC,GAAKmgB,EAAGL,OAAS,EACjB,MAEF,IAAK,IACH,GAAkC,OAA9BxiD,EAAE+J,UAAU24B,EAAI,EAAGA,EAAI,GAAa,CAGtC,GAFAoX,EAAI95C,EAAE0J,QAAQ,SAAOg5B,EAAI,GAErBoX,EAAI,EAEN,YADAj8C,KAAK8kD,QAAQ5B,EAAmBM,qBAIlCxjD,KAAKmlD,UAAUhjD,EAAE+J,UAAU24B,EAAI,EAAGoX,IAClCpX,EAAIoX,EAAI,OACH,GAAkC,YAA9B95C,EAAE+J,UAAU24B,EAAI,EAAGA,EAAI,GAAkB,CAGlD,GAFAoX,EAAI95C,EAAE0J,QAAQ,MAAOg5B,EAAI,GAErBoX,EAAI,EAEN,YADAj8C,KAAK8kD,QAAQ5B,EAAmBG,kBAIlCrjD,KAAKolD,QAAQjjD,EAAE+J,UAAU24B,EAAI,EAAGoX,IAChCpX,EAAIoX,EAAI,MACH,IAAkC,YAA9B95C,EAAE+J,UAAU24B,EAAI,EAAGA,EAAI,GA0BhC,YADA7kC,KAAK8kD,QAAQ5B,EAAmBO,kBAzBkB,CAClD,MAAM4B,EAAKljD,EAAE0J,QAAQ,IAAKg5B,EAAI,GAC9B,IAAIygB,GAAiB,EAGrB,GAFArJ,EAAI95C,EAAE0J,QAAQ,IAAKg5B,EAAI,GAEnBoX,EAAI,EAEN,YADAj8C,KAAK8kD,QAAQ5B,EAAmBK,gCAIlC,GAAI8B,EAAK,GAAKpJ,EAAIoJ,EAAI,CAGpB,GAFApJ,EAAI95C,EAAE0J,QAAQ,KAAMg5B,EAAI,GAEpBoX,EAAI,EAEN,YADAj8C,KAAK8kD,QAAQ5B,EAAmBK,gCAIlC+B,GAAiB,EAGnB,MAAMC,EAAiBpjD,EAAE+J,UAAU24B,EAAI,EAAGoX,GAAKqJ,EAAiB,EAAI,IACpEtlD,KAAKwlD,UAAUD,GACf1gB,EAAIoX,GAAKqJ,EAAiB,EAAI,IAMhC,MAEF,QACE,MAAMG,EAAUzlD,KAAK0lD,cAAcvjD,EAAG0iC,GAEtC,GAAgB,OAAZ4gB,EAEF,YADAzlD,KAAK8kD,QAAQ5B,EAAmBO,kBAIlC,IAAIxC,GAAW,EAEf,GAAgE,OAA5D9+C,EAAE+J,UAAU24B,EAAI4gB,EAAQd,OAAQ9f,EAAI4gB,EAAQd,OAAS,GACvD1D,GAAW,OACN,GAAgE,MAA5D9+C,EAAE+J,UAAU24B,EAAI4gB,EAAQd,OAAQ9f,EAAI4gB,EAAQd,OAAS,GAE9D,YADA3kD,KAAK8kD,QAAQ5B,EAAmBU,qBAIlC5jD,KAAK2lD,eAAeF,EAAQ9kD,KAAM8kD,EAAQrB,WAAYnD,GACtDpc,GAAK4gB,EAAQd,QAAU1D,EAAW,EAAI,GACtC,WAEC,CACL,MAAOpc,EAAI1iC,EAAE8J,QAAmB,MAAT9J,EAAE0iC,GACvBA,IAGF,MAAM58B,EAAO9F,EAAE+J,UAAU7L,EAAGwkC,GAC5B7kC,KAAK4lD,OAAO5lD,KAAK0kD,iBAAiBz8C,IAGpC5H,EAAIwkC,GAIR,gBAAgBlkC,GACd,MAAO,IAAIA,KAGb,KAAKA,EAAMU,IAEX,UAAU4G,IAEV,QAAQA,IAER,UAAUs9C,IAEV,OAAOt9C,IAEP,eAAetH,EAAMyjD,EAAYyB,IAEjC,aAAallD,IAEb,QAAQyf,KAIV,MAAM0lC,EACJ,YAAYrD,EAAUsD,GACpB/lD,KAAKyiD,SAAWA,EAChBziD,KAAK+lD,UAAYA,EACjBjlD,OAAOC,eAAef,KAAM,aAAc,CACxCqB,MAAO,KACP6e,UAAU,IAId,iBACE,OAAOlgB,KAAK+iD,YAAc/iD,KAAK+iD,WAAW,GAG5C,kBACE,MAAMA,EAAa/iD,KAAKgmD,WAAWjD,WAEnC,IAAKA,EACH,OAGF,MAAMx+B,EAAQw+B,EAAWl3C,QAAQ7L,MAEjC,OAAe,IAAXukB,EAIGw+B,EAAWx+B,EAAQ,QAJ1B,EAOF,kBACE,OAAKvkB,KAAK+iD,WAIH/iD,KAAK+iD,WAAW1L,KAAI,SAAU4O,GACnC,OAAOA,EAAMn0B,eACZ9kB,KAAK,IALChN,KAAK+lD,WAAa,GAQ7B,gBACE,OAAO/lD,KAAK+iD,YAAc/iD,KAAK+iD,WAAW92C,OAAS,GAKvD,MAAMg2C,UAAwBgC,EAC5B,cACEv9C,QACA1G,KAAKkmD,iBAAmB,KACxBlmD,KAAKmmD,OAAS,KACdnmD,KAAKomD,WAAalD,EAAmBC,QAGvC,gBAAgB5hC,GAMd,GALAvhB,KAAKkmD,iBAAmB,GACxBlmD,KAAKmmD,OAAS,GACdnmD,KAAKomD,WAAalD,EAAmBC,QACrCnjD,KAAKqmD,SAAS9kC,GAEVvhB,KAAKomD,aAAelD,EAAmBC,QACzC,OAGF,MAAOx1C,GAAmB3N,KAAKkmD,iBAE/B,OAAKv4C,EAIE,CACLA,wBALF,EASF,gBAAgBhN,GACd,OAAQA,GACN,IAAK,OACH,MAAO,IAGX,OAAO+F,MAAMy9C,gBAAgBxjD,GAG/B,OAAOsH,GACL,GAAI+7C,EAAmB/7C,GACrB,OAGF,MAAMq+C,EAAO,IAAIR,EAAc,QAAS79C,GAExCjI,KAAKkmD,iBAAiBz5C,KAAK65C,GAG7B,QAAQr+C,GACN,MAAMq+C,EAAO,IAAIR,EAAc,QAAS79C,GAExCjI,KAAKkmD,iBAAiBz5C,KAAK65C,GAG7B,eAAe3lD,EAAMyjD,EAAYyB,GAC/B,MAAMS,EAAO,IAAIR,EAAcnlD,GAC/B2lD,EAAKvD,WAAa,GAElB/iD,KAAKkmD,iBAAiBz5C,KAAK65C,GAEvBT,IAIJ7lD,KAAKmmD,OAAO15C,KAAKzM,KAAKkmD,kBAEtBlmD,KAAKkmD,iBAAmBI,EAAKvD,YAG/B,aAAapiD,GACXX,KAAKkmD,iBAAmBlmD,KAAKmmD,OAAOpiB,OAAS,GAC7C,MAAMwiB,EAAcvmD,KAAKkmD,iBAAiBlmD,KAAKkmD,iBAAiBj6C,OAAS,GAEzE,GAAKs6C,EAIL,IAAK,IAAIlmD,EAAI,EAAGolB,EAAK8gC,EAAYxD,WAAW92C,OAAQ5L,EAAIolB,EAAIplB,IAC1DkmD,EAAYxD,WAAW1iD,GAAG2lD,WAAaO,EAI3C,QAAQnmC,GACNpgB,KAAKomD,WAAahmC,GAKtBxgB,EAAQqiD,gBAAkBA,GAIpB,SAAUtiD,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQy6B,2BAAwB,EAEhC,IAAIn3B,EAAQ/C,EAAoB,GAEhC,MAAMqmD,EACJ,YAAY7lD,EAAMguB,GAChB3uB,KAAKu4C,SAAU,EACfv4C,KAAKW,KAAOA,EACZX,KAAK2uB,OAASA,GAKlB,MAAM0L,EACJ,YAAY9Y,GAMV,GALAvhB,KAAKW,KAAO,KACZX,KAAKymD,QAAU,KACfzmD,KAAK0mD,OAAS,KACd1mD,KAAK2mD,QAAU,IAAIp4B,IAEN,OAAThN,EAAJ,CAIAvhB,KAAKW,KAAO4gB,EAAK5gB,KACjBX,KAAKymD,QAAUllC,EAAKklC,QACpBzmD,KAAK0mD,OAASnlC,EAAKqlC,MAEnB,IAAK,MAAMzQ,KAAS50B,EAAKslC,OACvB7mD,KAAK2mD,QAAQjlC,IAAIy0B,EAAM9pB,GAAI,IAAIm6B,EAAqBrQ,EAAMx1C,KAAMw1C,EAAMxnB,SAGxE,GAAuB,QAAnBpN,EAAKulC,UACP,IAAK,MAAM3Q,KAASn2C,KAAK2mD,QACvBxQ,EAAMoC,SAAU,EAIpB,IAAK,MAAMpiB,KAAM5U,EAAK4U,GACpBn2B,KAAK2mD,QAAQ1lD,IAAIk1B,GAAIoiB,SAAU,EAGjC,IAAK,MAAMwO,KAAOxlC,EAAKwlC,IACrB/mD,KAAK2mD,QAAQ1lD,IAAI8lD,GAAKxO,SAAU,GAIpC,UAAUpC,GACR,GAAmB,QAAfA,EAAMhtC,KACR,OAAKnJ,KAAK2mD,QAAQ3yB,IAAImiB,EAAM9pB,IAKrBrsB,KAAK2mD,QAAQ1lD,IAAIk1C,EAAM9pB,IAAIksB,UAJhC,EAAIr1C,EAAMoJ,MAAM,qCAAqC6pC,EAAM9pB,KACpD,GAIJ,GAAmB,SAAf8pB,EAAMhtC,KAAiB,CAKhC,GAJIgtC,EAAM6Q,aACR,EAAI9jD,EAAMoJ,MAAM,6CAGb6pC,EAAM8Q,QAA2B,UAAjB9Q,EAAM8Q,OAAoB,CAC7C,IAAK,MAAM56B,KAAM8pB,EAAM+Q,IAAK,CAC1B,IAAKlnD,KAAK2mD,QAAQ3yB,IAAI3H,GAEpB,OADA,EAAInpB,EAAMoJ,MAAM,qCAAqC+f,IAC9C,EAGT,GAAIrsB,KAAK2mD,QAAQ1lD,IAAIorB,GAAIksB,QACvB,OAAO,EAIX,OAAO,EACF,GAAqB,UAAjBpC,EAAM8Q,OAAoB,CACnC,IAAK,MAAM56B,KAAM8pB,EAAM+Q,IAAK,CAC1B,IAAKlnD,KAAK2mD,QAAQ3yB,IAAI3H,GAEpB,OADA,EAAInpB,EAAMoJ,MAAM,qCAAqC+f,IAC9C,EAGT,IAAKrsB,KAAK2mD,QAAQ1lD,IAAIorB,GAAIksB,QACxB,OAAO,EAIX,OAAO,EACF,GAAqB,WAAjBpC,EAAM8Q,OAAqB,CACpC,IAAK,MAAM56B,KAAM8pB,EAAM+Q,IAAK,CAC1B,IAAKlnD,KAAK2mD,QAAQ3yB,IAAI3H,GAEpB,OADA,EAAInpB,EAAMoJ,MAAM,qCAAqC+f,IAC9C,EAGT,IAAKrsB,KAAK2mD,QAAQ1lD,IAAIorB,GAAIksB,QACxB,OAAO,EAIX,OAAO,EACF,GAAqB,WAAjBpC,EAAM8Q,OAAqB,CACpC,IAAK,MAAM56B,KAAM8pB,EAAM+Q,IAAK,CAC1B,IAAKlnD,KAAK2mD,QAAQ3yB,IAAI3H,GAEpB,OADA,EAAInpB,EAAMoJ,MAAM,qCAAqC+f,IAC9C,EAGT,GAAIrsB,KAAK2mD,QAAQ1lD,IAAIorB,GAAIksB,QACvB,OAAO,EAIX,OAAO,EAIT,OADA,EAAIr1C,EAAMoJ,MAAM,mCAAmC6pC,EAAM8Q,YAClD,EAIT,OADA,EAAI/jD,EAAMoJ,MAAM,sBAAsB6pC,EAAMhtC,UACrC,EAGT,cAAckjB,EAAIksB,GAAU,GACrBv4C,KAAK2mD,QAAQ3yB,IAAI3H,GAKtBrsB,KAAK2mD,QAAQ1lD,IAAIorB,GAAIksB,UAAYA,GAJ/B,EAAIr1C,EAAMoJ,MAAM,qCAAqC+f,GAOzD,WACE,OAAKrsB,KAAK2mD,QAAQtlB,KAIdrhC,KAAK0mD,OACA1mD,KAAK0mD,OAAOr8C,QAGd+pB,MAAM+yB,KAAKnnD,KAAK2mD,QAAQS,QAPtB,KAUX,YACE,OAAKpnD,KAAK2mD,QAAQtlB,KAIXvgC,OAAOohC,YAAYliC,KAAK2mD,SAHtB,KAMX,SAASt6B,GACP,OAAOrsB,KAAK2mD,QAAQ1lD,IAAIorB,IAAO,MAKnCzsB,EAAQy6B,sBAAwBA,GAI1B,SAAU16B,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQ6pB,4BAAyB,EAEjC,IAAIvmB,EAAQ/C,EAAoB,GAEhC,MAAMspB,EACJ,YAAY1kB,EAAQwlB,IAClB,EAAIrnB,EAAM6F,QAAQwhB,EAAuB,+EACzCvqB,KAAKqnD,cAAgB,GACrBrnD,KAAKsnD,iBAAmBviD,EAAO4kB,kBAAmB,EAClD,MAAMD,EAAc3kB,EAAO2kB,YAE3B,GAAIA,GAAeA,EAAYzd,OAAS,EAAG,CACzC,MAAM8V,EAAS,IAAIja,WAAW4hB,GAAa3H,OAE3C/hB,KAAKqnD,cAAc56C,KAAKsV,GAG1B/hB,KAAKunD,uBAAyBh9B,EAC9BvqB,KAAKwnD,uBAAyBziD,EAAO6jB,cACrC5oB,KAAKynD,mBAAqB1iD,EAAO4jB,aACjC3oB,KAAK0nD,eAAiB3iD,EAAOkH,OAC7BjM,KAAK2nD,mBAAqB,KAC1B3nD,KAAK4nD,cAAgB,GAErB5nD,KAAKunD,uBAAuBM,iBAAiB,CAACr8B,EAAOxK,KACnDhhB,KAAK8nD,eAAe,CAClBt8B,QACAxK,YAIJhhB,KAAKunD,uBAAuBQ,oBAAoB,CAACt8B,EAAQC,KACvD1rB,KAAKgoD,YAAY,CACfv8B,SACAC,YAIJ1rB,KAAKunD,uBAAuBU,2BAA2BjnC,IACrDhhB,KAAK8nD,eAAe,CAClB9mC,YAIJhhB,KAAKunD,uBAAuBW,2BAA2B,KACrDloD,KAAKmoD,uBAGPnoD,KAAKunD,uBAAuBa,iBAG9B,eAAel1B,GACb,MAAMnR,EAAS,IAAIja,WAAWorB,EAAKlS,OAAOe,OAE1C,QAAmBtB,IAAfyS,EAAK1H,MACHxrB,KAAK2nD,mBACP3nD,KAAK2nD,mBAAmBU,SAAStmC,GAEjC/hB,KAAKqnD,cAAc56C,KAAKsV,OAErB,CACL,MAAMumC,EAAQtoD,KAAK4nD,cAAcW,MAAK,SAAUxvB,GAC9C,OAAIA,EAAYyvB,SAAWt1B,EAAK1H,QAIhCuN,EAAYsvB,SAAStmC,IAEd,OAGT,EAAI7e,EAAM6F,QAAQu/C,EAAO,4EAI7B,6BACE,OAAOtoD,KAAK2nD,mBAAqB3nD,KAAK2nD,mBAAmBc,QAAU,EAGrE,YAAYvwB,GACV,QAAkBzX,IAAdyX,EAAIxM,MAAqB,CAC3B,MAAMg9B,EAAc1oD,KAAK4nD,cAAc,GAEnCc,GAAeA,EAAY59B,YAC7B49B,EAAY59B,WAAW,CACrBW,OAAQyM,EAAIzM,aAGX,CACL,MAAMiN,EAAa14B,KAAK2nD,mBAEpBjvB,GAAcA,EAAW5N,YAC3B4N,EAAW5N,WAAW,CACpBW,OAAQyM,EAAIzM,OACZC,MAAOwM,EAAIxM,SAMnB,qBACM1rB,KAAK2nD,oBACP3nD,KAAK2nD,mBAAmBh+B,kBAG1B3pB,KAAKsnD,kBAAmB,EAG1B,mBAAmBn1B,GACjB,MAAM9xB,EAAIL,KAAK4nD,cAAc/7C,QAAQsmB,GAEjC9xB,GAAK,GACPL,KAAK4nD,cAAcl3B,OAAOrwB,EAAG,GAIjC,iBACE,EAAI6C,EAAM6F,SAAS/I,KAAK2nD,mBAAoB,iEAC5C,MAAMgB,EAAe3oD,KAAKqnD,cAE1B,OADArnD,KAAKqnD,cAAgB,KACd,IAAIuB,EAA6B5oD,KAAM2oD,EAAc3oD,KAAKsnD,kBAGnE,eAAe97B,EAAOzf,GACpB,GAAIA,GAAO/L,KAAK6oD,uBACd,OAAO,KAGT,MAAM12B,EAAS,IAAI22B,EAAkC9oD,KAAMwrB,EAAOzf,GAMlE,OAJA/L,KAAKunD,uBAAuBwB,iBAAiBv9B,EAAOzf,GAEpD/L,KAAK4nD,cAAcn7C,KAAK0lB,GAEjBA,EAGT,kBAAkB9qB,GACZrH,KAAK2nD,oBACP3nD,KAAK2nD,mBAAmB90B,OAAOxrB,GAGjC,MAAM2hD,EAAUhpD,KAAK4nD,cAAcv9C,MAAM,GAEzC2+C,EAAQv0B,SAAQ,SAAUsE,GACxBA,EAAYlG,OAAOxrB,MAGrBrH,KAAKunD,uBAAuB0B,SAKhCrpD,EAAQ6pB,uBAAyBA,EAEjC,MAAMm/B,EACJ,YAAY5I,EAAQ2I,EAAch/B,GAAkB,GAClD3pB,KAAKkpD,QAAUlJ,EACfhgD,KAAKmpD,MAAQx/B,IAAmB,EAChC3pB,KAAKopD,UAAY,KACjBppD,KAAKqnD,cAAgBsB,GAAgB,GACrC3oD,KAAKyoD,QAAU,EAEf,IAAK,MAAMznC,KAAShhB,KAAKqnD,cACvBrnD,KAAKyoD,SAAWznC,EAAMI,WAGxBphB,KAAKqpD,UAAY,GACjBrpD,KAAKspD,cAAgBphD,QAAQC,UAC7B63C,EAAO2H,mBAAqB3nD,KAC5BA,KAAK8qB,WAAa,KAGpB,SAAS9J,GACP,IAAIhhB,KAAKmpD,MAAT,CAIA,GAAInpD,KAAKqpD,UAAUp9C,OAAS,EAAG,CAC7B,MAAMs9C,EAAoBvpD,KAAKqpD,UAAUxqB,QAEzC0qB,EAAkBphD,QAAQ,CACxB9G,MAAO2f,EACPqR,MAAM,SAGRryB,KAAKqnD,cAAc56C,KAAKuU,GAG1BhhB,KAAKyoD,SAAWznC,EAAMI,YAGxB,mBACE,OAAOphB,KAAKspD,cAGd,eACE,OAAOtpD,KAAKopD,UAGd,uBACE,OAAOppD,KAAKkpD,QAAQzB,kBAGtB,2BACE,OAAOznD,KAAKkpD,QAAQ1B,sBAGtB,oBACE,OAAOxnD,KAAKkpD,QAAQxB,eAGtB,aACE,GAAI1nD,KAAKqnD,cAAcp7C,OAAS,EAAG,CACjC,MAAM+U,EAAQhhB,KAAKqnD,cAAcxoB,QAEjC,MAAO,CACLx9B,MAAO2f,EACPqR,MAAM,GAIV,GAAIryB,KAAKmpD,MACP,MAAO,CACL9nD,WAAOof,EACP4R,MAAM,GAIV,MAAMk3B,GAAoB,EAAIrmD,EAAMG,2BAIpC,OAFArD,KAAKqpD,UAAU58C,KAAK88C,GAEbA,EAAkBpkC,QAG3B,OAAO9d,GACLrH,KAAKmpD,OAAQ,EAEbnpD,KAAKqpD,UAAU50B,SAAQ,SAAU80B,GAC/BA,EAAkBphD,QAAQ,CACxB9G,WAAOof,EACP4R,MAAM,OAIVryB,KAAKqpD,UAAY,GAGnB,kBACMrpD,KAAKmpD,QAITnpD,KAAKmpD,OAAQ,IAKjB,MAAML,EACJ,YAAY9I,EAAQx0B,EAAOzf,GACzB/L,KAAKkpD,QAAUlJ,EACfhgD,KAAKwoD,OAASh9B,EACdxrB,KAAKwpD,KAAOz9C,EACZ/L,KAAKypD,aAAe,KACpBzpD,KAAKqpD,UAAY,GACjBrpD,KAAKmpD,OAAQ,EACbnpD,KAAK8qB,WAAa,KAGpB,SAAS9J,GACP,IAAIhhB,KAAKmpD,MAAT,CAIA,GAA8B,IAA1BnpD,KAAKqpD,UAAUp9C,OACjBjM,KAAKypD,aAAezoC,MACf,CACL,MAAM0oC,EAAqB1pD,KAAKqpD,UAAUxqB,QAE1C6qB,EAAmBvhD,QAAQ,CACzB9G,MAAO2f,EACPqR,MAAM,IAGRryB,KAAKqpD,UAAU50B,SAAQ,SAAU80B,GAC/BA,EAAkBphD,QAAQ,CACxB9G,WAAOof,EACP4R,MAAM,OAIVryB,KAAKqpD,UAAY,GAGnBrpD,KAAKmpD,OAAQ,EAEbnpD,KAAKkpD,QAAQS,mBAAmB3pD,OAGlC,2BACE,OAAO,EAGT,aACE,GAAIA,KAAKypD,aAAc,CACrB,MAAMzoC,EAAQhhB,KAAKypD,aAEnB,OADAzpD,KAAKypD,aAAe,KACb,CACLpoD,MAAO2f,EACPqR,MAAM,GAIV,GAAIryB,KAAKmpD,MACP,MAAO,CACL9nD,WAAOof,EACP4R,MAAM,GAIV,MAAMk3B,GAAoB,EAAIrmD,EAAMG,2BAIpC,OAFArD,KAAKqpD,UAAU58C,KAAK88C,GAEbA,EAAkBpkC,QAG3B,OAAO9d,GACLrH,KAAKmpD,OAAQ,EAEbnpD,KAAKqpD,UAAU50B,SAAQ,SAAU80B,GAC/BA,EAAkBphD,QAAQ,CACxB9G,WAAOof,EACP4R,MAAM,OAIVryB,KAAKqpD,UAAY,GAEjBrpD,KAAKkpD,QAAQS,mBAAmB3pD,SAO9B,SAAUL,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQiwB,kBAAe,EAEvB,IAAI3sB,EAAQ/C,EAAoB,GAEhC,MAAM0vB,EACJ,aAAY,OACVC,GAAS,IAET9vB,KAAK4pD,UAAsB,IAAX95B,EAGlB,gBACE,IAAIxkB,EAAUtL,KAAK4pD,SAMnB,OAJIt+C,IACFA,EAAUu+C,EAAWC,cAGhB,EAAI5mD,EAAMW,QAAQ7D,KAAM,YAAasL,GAG9C,cAAa,MACXuiC,EAAK,KACLxI,EAAI,WACJ+F,IAEA,OAAOye,EAAWrc,aAAaK,EAAOxI,EAAM+F,GAG9C,aAAY,MACVnlC,EAAK,OACLC,EAAM,gBACNk2C,EAAe,QACfD,EAAO,QACP71C,IAEA,OAAOujD,EAAWjN,YAAY32C,EAAOC,EAAQk2C,EAAiBD,EAAS71C,GAGzE,QACEujD,EAAWr2B,WAKf5zB,EAAQiwB,aAAeA,EAEvB,IAAIg6B,EAAa,WACf,SAASE,EAAWC,EAAI5pC,EAAM6pC,GAC5B,IAAIC,EAASF,EAAGG,aAAaF,GAC7BD,EAAGI,aAAaF,EAAQ9pC,GACxB4pC,EAAGK,cAAcH,GACjB,IAAIpT,EAAWkT,EAAGM,mBAAmBJ,EAAQF,EAAGO,gBAEhD,IAAKzT,EAAU,CACb,IAAI0T,EAAWR,EAAGS,iBAAiBP,GACnC,MAAM,IAAI7jD,MAAM,oCAAsCmkD,GAGxD,OAAON,EAGT,SAASQ,EAAmBV,EAAI5pC,GAC9B,OAAO2pC,EAAWC,EAAI5pC,EAAM4pC,EAAGW,eAGjC,SAASC,EAAqBZ,EAAI5pC,GAChC,OAAO2pC,EAAWC,EAAI5pC,EAAM4pC,EAAGa,iBAGjC,SAASC,EAAcd,EAAIe,GAGzB,IAFA,IAAIC,EAAUhB,EAAGc,gBAERzqD,EAAI,EAAGolB,EAAKslC,EAAQ9+C,OAAQ5L,EAAIolB,IAAMplB,EAC7C2pD,EAAGiB,aAAaD,EAASD,EAAQ1qD,IAGnC2pD,EAAGkB,YAAYF,GACf,IAAIG,EAASnB,EAAGoB,oBAAoBJ,EAAShB,EAAGqB,aAEhD,IAAKF,EAAQ,CACX,IAAIX,EAAWR,EAAGsB,kBAAkBN,GACpC,MAAM,IAAI3kD,MAAM,iCAAmCmkD,GAGrD,OAAOQ,EAGT,SAASO,EAAcvB,EAAI5S,EAAOoU,GAChCxB,EAAGyB,cAAcD,GACjB,IAAIE,EAAU1B,EAAGuB,gBAOjB,OANAvB,EAAG2B,YAAY3B,EAAG4B,WAAYF,GAC9B1B,EAAG6B,cAAc7B,EAAG4B,WAAY5B,EAAG8B,eAAgB9B,EAAG+B,eACtD/B,EAAG6B,cAAc7B,EAAG4B,WAAY5B,EAAGgC,eAAgBhC,EAAG+B,eACtD/B,EAAG6B,cAAc7B,EAAG4B,WAAY5B,EAAGiC,mBAAoBjC,EAAGkC,SAC1DlC,EAAG6B,cAAc7B,EAAG4B,WAAY5B,EAAGmC,mBAAoBnC,EAAGkC,SAC1DlC,EAAGoC,WAAWpC,EAAG4B,WAAY,EAAG5B,EAAGqC,KAAMrC,EAAGqC,KAAMrC,EAAGsC,cAAelV,GAC7DsU,EAGT,IAAIa,EAAWC,EAEf,SAASC,IACHF,IAIJC,EAAgB/lD,SAASG,cAAc,UACvC2lD,EAAYC,EAAc3lD,WAAW,QAAS,CAC5C6lD,oBAAoB,KAIxB,IAAIC,EAAwB,m0BAcxBC,EAA0B,msDA4B1BC,EAAa,KAEjB,SAASC,IACP,IAAI1mD,EAAQ4jD,EACZyC,IACArmD,EAASomD,EACTA,EAAgB,KAChBxC,EAAKuC,EACLA,EAAY,KACZ,IAAIQ,EAAerC,EAAmBV,EAAI2C,GACtCK,EAAiBpC,EAAqBZ,EAAI4C,GAC1C5B,EAAUF,EAAcd,EAAI,CAAC+C,EAAcC,IAC/ChD,EAAGiD,WAAWjC,GACd,IAAI1mB,EAAQ,GACZA,EAAM0lB,GAAKA,EACX1lB,EAAMl+B,OAASA,EACfk+B,EAAM4oB,mBAAqBlD,EAAGmD,mBAAmBnC,EAAS,gBAC1D1mB,EAAM8oB,iBAAmBpD,EAAGqD,kBAAkBrC,EAAS,cACvD1mB,EAAMgpB,iBAAmBtD,EAAGmD,mBAAmBnC,EAAS,cACxD1mB,EAAMipB,gBAAkBvD,EAAGmD,mBAAmBnC,EAAS,aACvD,IAAIwC,EAAmBxD,EAAGqD,kBAAkBrC,EAAS,cACjDyC,EAAmBzD,EAAGmD,mBAAmBnC,EAAS,WAClD0C,EAAkB1D,EAAGmD,mBAAmBnC,EAAS,UACjD2C,EAAiB3D,EAAG4D,eACxB5D,EAAG6D,WAAW7D,EAAG8D,aAAcH,GAC/B3D,EAAG+D,WAAW/D,EAAG8D,aAAc,IAAIE,aAAa,CAAC,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,IAAOhE,EAAGiE,aAClHjE,EAAGkE,wBAAwBV,GAC3BxD,EAAGmE,oBAAoBX,EAAkB,EAAGxD,EAAGoE,OAAO,EAAO,EAAG,GAChEpE,EAAGqE,UAAUZ,EAAkB,GAC/BzD,EAAGqE,UAAUX,EAAiB,GAC9Bb,EAAavoB,EAGf,SAASkJ,EAAaK,EAAOxI,EAAM+F,GACjC,IAAInlC,EAAQ4nC,EAAM5nC,MACdC,EAAS2nC,EAAM3nC,OAEd2mD,GACHC,IAGF,IAAIxoB,EAAQuoB,EACRzmD,EAASk+B,EAAMl+B,OACf4jD,EAAK1lB,EAAM0lB,GACf5jD,EAAOH,MAAQA,EACfG,EAAOF,OAASA,EAChB8jD,EAAGh7B,SAAS,EAAG,EAAGg7B,EAAGsE,mBAAoBtE,EAAGuE,qBAC5CvE,EAAGwE,UAAUlqB,EAAM4oB,mBAAoBjnD,EAAOC,GAE1CklC,EAAW4B,SACbgd,EAAGyE,UAAUnqB,EAAM4oB,mBAAoB9hB,EAAW4B,SAAS,GAAI5B,EAAW4B,SAAS,GAAI5B,EAAW4B,SAAS,GAAI,GAE/Ggd,EAAGyE,UAAUnqB,EAAM4oB,mBAAoB,EAAG,EAAG,EAAG,GAGlDlD,EAAGqE,UAAU/pB,EAAMipB,gBAAwC,eAAvBniB,EAAW2B,QAA2B,EAAI,GAC9E,IAAI2e,EAAUH,EAAcvB,EAAInc,EAAOmc,EAAG0E,UACtCC,EAAcpD,EAAcvB,EAAI3kB,EAAM2kB,EAAG4E,UACzC7sC,EAASioC,EAAG4D,eAchB,OAbA5D,EAAG6D,WAAW7D,EAAG8D,aAAc/rC,GAC/BioC,EAAG+D,WAAW/D,EAAG8D,aAAc,IAAIE,aAAa,CAAC,EAAG,EAAG/nD,EAAO,EAAG,EAAGC,EAAQ,EAAGA,EAAQD,EAAO,EAAGA,EAAOC,IAAU8jD,EAAGiE,aACrHjE,EAAGkE,wBAAwB5pB,EAAM8oB,kBACjCpD,EAAGmE,oBAAoB7pB,EAAM8oB,iBAAkB,EAAGpD,EAAGoE,OAAO,EAAO,EAAG,GACtEpE,EAAG6E,WAAW,EAAG,EAAG,EAAG,GACvB7E,EAAGl6B,OAAOk6B,EAAG8E,OACb9E,EAAG+E,UAAU/E,EAAGgF,IAAKhF,EAAGiF,qBACxBjF,EAAGl3B,MAAMk3B,EAAGkF,kBACZlF,EAAGmF,WAAWnF,EAAGoF,UAAW,EAAG,GAC/BpF,EAAGqF,QACHrF,EAAGsF,cAAc5D,GACjB1B,EAAGsF,cAAcX,GACjB3E,EAAGuF,aAAaxtC,GACT3b,EAGT,IAAIopD,EAA0B,mgCAiB1BC,EAA4B,mcAQ5BC,EAAe,KAEnB,SAASC,IACP,IAAIvpD,EAAQ4jD,EACZyC,IACArmD,EAASomD,EACTA,EAAgB,KAChBxC,EAAKuC,EACLA,EAAY,KACZ,IAAIQ,EAAerC,EAAmBV,EAAIwF,GACtCxC,EAAiBpC,EAAqBZ,EAAIyF,GAC1CzE,EAAUF,EAAcd,EAAI,CAAC+C,EAAcC,IAC/ChD,EAAGiD,WAAWjC,GACd,IAAI1mB,EAAQ,GACZA,EAAM0lB,GAAKA,EACX1lB,EAAMl+B,OAASA,EACfk+B,EAAM4oB,mBAAqBlD,EAAGmD,mBAAmBnC,EAAS,gBAC1D1mB,EAAMsrB,cAAgB5F,EAAGmD,mBAAmBnC,EAAS,WACrD1mB,EAAMurB,eAAiB7F,EAAGmD,mBAAmBnC,EAAS,YACtD1mB,EAAM8oB,iBAAmBpD,EAAGqD,kBAAkBrC,EAAS,cACvD1mB,EAAMwrB,cAAgB9F,EAAGqD,kBAAkBrC,EAAS,WACpD0E,EAAeprB,EAGjB,SAASsY,EAAY32C,EAAOC,EAAQk2C,EAAiBD,EAAS71C,GACvDopD,GACHC,IAGF,IAAIrrB,EAAQorB,EACRtpD,EAASk+B,EAAMl+B,OACf4jD,EAAK1lB,EAAM0lB,GACf5jD,EAAOH,MAAQA,EACfG,EAAOF,OAASA,EAChB8jD,EAAGh7B,SAAS,EAAG,EAAGg7B,EAAGsE,mBAAoBtE,EAAGuE,qBAC5CvE,EAAGwE,UAAUlqB,EAAM4oB,mBAAoBjnD,EAAOC,GAC9C,IACI7F,EAAGolB,EAAIs2B,EADPxW,EAAQ,EAGZ,IAAKllC,EAAI,EAAGolB,EAAK02B,EAAQlwC,OAAQ5L,EAAIolB,EAAIplB,IACvC,OAAQ87C,EAAQ97C,GAAG8I,MACjB,IAAK,UACH4yC,EAAOI,EAAQ97C,GAAGwlC,OAAO55B,OAASkwC,EAAQ97C,GAAGy7C,eAAiB,EAC9DvW,IAAUwW,EAAO,IAAMI,EAAQ97C,GAAGy7C,eAAiB,GAAK,EACxD,MAEF,IAAK,YACHvW,GAAS4W,EAAQ97C,GAAGwlC,OAAO55B,OAC3B,MAIN,IAAI45B,EAAS,IAAImoB,aAAqB,EAARzoB,GAC1BuU,EAAS,IAAIhyC,WAAmB,EAARy9B,GACxBwqB,EAAYzpD,EAAQu/B,OACpBmqB,EAAY1pD,EAAQwzC,OACpBmW,EAAS,EACTC,EAAS,EAEb,IAAK7vD,EAAI,EAAGolB,EAAK02B,EAAQlwC,OAAQ5L,EAAIolB,EAAIplB,IAAK,CAC5C,IAAIs7C,EAASQ,EAAQ97C,GACjBu7C,EAAKD,EAAO9V,OACZgW,EAAKF,EAAO7B,OAEhB,OAAQ6B,EAAOxyC,MACb,IAAK,UACH,IAAI6yC,EAAOL,EAAOG,eAClBC,EAAOH,EAAG3vC,OAAS+vC,EAAO,EAE1B,IAAK,IAAI1O,EAAM,EAAGA,EAAMyO,EAAMzO,IAG5B,IAFA,IAAIrO,EAASqO,EAAM0O,EAAO,EAEjBmU,EAAM,EAAGA,EAAMnU,EAAMmU,IAAOlxB,IACnC4G,EAAOoqB,GAAUF,EAAUnU,EAAG3c,EAAS+c,EAAO,IAC9CnW,EAAOoqB,EAAS,GAAKF,EAAUnU,EAAG3c,EAAS+c,EAAO,GAAK,GACvDnW,EAAOoqB,EAAS,GAAKF,EAAUnU,EAAG3c,EAAS+c,IAC3CnW,EAAOoqB,EAAS,GAAKF,EAAUnU,EAAG3c,EAAS+c,GAAQ,GACnDnW,EAAOoqB,EAAS,GAAKF,EAAUnU,EAAG3c,EAAS,IAC3C4G,EAAOoqB,EAAS,GAAKF,EAAUnU,EAAG3c,EAAS,GAAK,GAChD6a,EAAOoW,GAAUF,EAAUnU,EAAG5c,EAAS+c,EAAO,IAC9ClC,EAAOoW,EAAS,GAAKF,EAAUnU,EAAG5c,EAAS+c,EAAO,GAAK,GACvDlC,EAAOoW,EAAS,GAAKF,EAAUnU,EAAG5c,EAAS+c,EAAO,GAAK,GACvDlC,EAAOoW,EAAS,GAAKF,EAAUnU,EAAG5c,EAAS+c,IAC3ClC,EAAOoW,EAAS,GAAKF,EAAUnU,EAAG5c,EAAS+c,GAAQ,GACnDlC,EAAOoW,EAAS,GAAKF,EAAUnU,EAAG5c,EAAS+c,GAAQ,GACnDlC,EAAOoW,EAAS,GAAKF,EAAUnU,EAAG5c,EAAS,IAC3C6a,EAAOoW,EAAS,GAAKF,EAAUnU,EAAG5c,EAAS,GAAK,GAChD6a,EAAOoW,EAAS,GAAKF,EAAUnU,EAAG5c,EAAS,GAAK,GAChD4G,EAAOoqB,EAAS,GAAKpqB,EAAOoqB,EAAS,GACrCpqB,EAAOoqB,EAAS,GAAKpqB,EAAOoqB,EAAS,GACrCpqB,EAAOoqB,EAAS,GAAKpqB,EAAOoqB,EAAS,GACrCpqB,EAAOoqB,EAAS,GAAKpqB,EAAOoqB,EAAS,GACrCpqB,EAAOoqB,EAAS,IAAMF,EAAUnU,EAAG3c,IACnC4G,EAAOoqB,EAAS,IAAMF,EAAUnU,EAAG3c,GAAU,GAC7C6a,EAAOoW,EAAS,GAAKpW,EAAOoW,EAAS,GACrCpW,EAAOoW,EAAS,IAAMpW,EAAOoW,EAAS,GACtCpW,EAAOoW,EAAS,IAAMpW,EAAOoW,EAAS,GACtCpW,EAAOoW,EAAS,IAAMpW,EAAOoW,EAAS,GACtCpW,EAAOoW,EAAS,IAAMpW,EAAOoW,EAAS,GACtCpW,EAAOoW,EAAS,IAAMpW,EAAOoW,EAAS,GACtCpW,EAAOoW,EAAS,IAAMF,EAAUnU,EAAG5c,IACnC6a,EAAOoW,EAAS,IAAMF,EAAUnU,EAAG5c,GAAU,GAC7C6a,EAAOoW,EAAS,IAAMF,EAAUnU,EAAG5c,GAAU,GAC7CgxB,GAAU,GACVC,GAAU,GAId,MAEF,IAAK,YACH,IAAK,IAAIrrB,EAAI,EAAGme,EAAKpH,EAAG3vC,OAAQ44B,EAAIme,EAAIne,IACtCgB,EAAOoqB,GAAUF,EAAUnU,EAAG/W,IAC9BgB,EAAOoqB,EAAS,GAAKF,EAAUnU,EAAG/W,GAAK,GACvCiV,EAAOoW,GAAUF,EAAUnU,EAAGhX,IAC9BiV,EAAOoW,EAAS,GAAKF,EAAUnU,EAAGhX,GAAK,GACvCiV,EAAOoW,EAAS,GAAKF,EAAUnU,EAAGhX,GAAK,GACvCorB,GAAU,EACVC,GAAU,EAGZ,OAIF9T,EACF4N,EAAG6E,WAAWzS,EAAgB,GAAK,IAAKA,EAAgB,GAAK,IAAKA,EAAgB,GAAK,IAAK,GAE5F4N,EAAG6E,WAAW,EAAG,EAAG,EAAG,GAGzB7E,EAAGl3B,MAAMk3B,EAAGkF,kBACZ,IAAIkB,EAAepG,EAAG4D,eACtB5D,EAAG6D,WAAW7D,EAAG8D,aAAcsC,GAC/BpG,EAAG+D,WAAW/D,EAAG8D,aAAcjoB,EAAQmkB,EAAGiE,aAC1CjE,EAAGkE,wBAAwB5pB,EAAM8oB,kBACjCpD,EAAGmE,oBAAoB7pB,EAAM8oB,iBAAkB,EAAGpD,EAAGoE,OAAO,EAAO,EAAG,GACtE,IAAIiC,EAAerG,EAAG4D,eAWtB,OAVA5D,EAAG6D,WAAW7D,EAAG8D,aAAcuC,GAC/BrG,EAAG+D,WAAW/D,EAAG8D,aAAchU,EAAQkQ,EAAGiE,aAC1CjE,EAAGkE,wBAAwB5pB,EAAMwrB,eACjC9F,EAAGmE,oBAAoB7pB,EAAMwrB,cAAe,EAAG9F,EAAGsC,eAAe,EAAO,EAAG,GAC3EtC,EAAGwE,UAAUlqB,EAAMsrB,cAAetpD,EAAQmnC,OAAQnnC,EAAQonC,QAC1Dsc,EAAGwE,UAAUlqB,EAAMurB,eAAgBvpD,EAAQiD,QAASjD,EAAQkD,SAC5DwgD,EAAGmF,WAAWnF,EAAGoF,UAAW,EAAG7pB,GAC/BykB,EAAGqF,QACHrF,EAAGuF,aAAaa,GAChBpG,EAAGuF,aAAac,GACTjqD,EAGT,MAAO,CACL,YACE,IAEE,OADAqmD,MACSF,EACT,MAAOl/C,IAET,OAAO,GAGTmgC,eACAoP,cAEA,UACMiQ,GAAcA,EAAWzmD,SAC3BymD,EAAWzmD,OAAOH,MAAQ,EAC1B4mD,EAAWzmD,OAAOF,OAAS,GAGzBwpD,GAAgBA,EAAatpD,SAC/BspD,EAAatpD,OAAOH,MAAQ,EAC5BypD,EAAatpD,OAAOF,OAAS,GAG/B2mD,EAAa,KACb6C,EAAe,OAhYJ,IAwYX,SAAU/vD,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQuE,qBAAkB,EAE1B,IAAI/B,EAAiBjC,EAAoB,GAErC+C,EAAQ/C,EAAoB,GAE5BsmB,EAAsBtmB,EAAoB,GAE9C,MAAMmwD,EACJ,cAAcC,GACZ,MAAMxjB,EAAUwjB,EAAWhvC,KAAKivC,eAEhC,OAAQzjB,GACN,KAAK7pC,EAAM0N,eAAegC,KACxB,OAAO,IAAI69C,EAAsBF,GAEnC,KAAKrtD,EAAM0N,eAAe+B,KACxB,OAAO,IAAI+9C,EAAsBH,GAEnC,KAAKrtD,EAAM0N,eAAekD,OACxB,MAAM68C,EAAYJ,EAAWhvC,KAAKovC,UAElC,OAAQA,GACN,IAAK,KACH,OAAO,IAAIC,EAA4BL,GAEzC,IAAK,MACH,OAAIA,EAAWhvC,KAAKsvC,YACX,IAAIC,EAAmCP,GACrCA,EAAWhvC,KAAKwvC,SAClB,IAAIC,EAAgCT,GAGtC,IAAIU,EAAkCV,GAE/C,IAAK,KACH,OAAO,IAAIW,EAA8BX,GAG7C,OAAO,IAAIY,EAAwBZ,GAErC,KAAKrtD,EAAM0N,eAAe8C,MACxB,OAAO,IAAI09C,EAAuBb,GAEpC,KAAKrtD,EAAM0N,eAAeiC,SACxB,OAAO,IAAIw+C,EAA0Bd,GAEvC,KAAKrtD,EAAM0N,eAAekC,KACxB,OAAO,IAAIw+C,EAAsBf,GAEnC,KAAKrtD,EAAM0N,eAAemC,OACxB,OAAO,IAAIw+C,EAAwBhB,GAErC,KAAKrtD,EAAM0N,eAAeoC,OACxB,OAAO,IAAIw+C,EAAwBjB,GAErC,KAAKrtD,EAAM0N,eAAesC,SACxB,OAAO,IAAIu+C,EAA0BlB,GAEvC,KAAKrtD,EAAM0N,eAAe4C,MACxB,OAAO,IAAIk+C,EAAuBnB,GAEpC,KAAKrtD,EAAM0N,eAAe6C,IACxB,OAAO,IAAIk+C,EAAqBpB,GAElC,KAAKrtD,EAAM0N,eAAeqC,QACxB,OAAO,IAAI2+C,EAAyBrB,GAEtC,KAAKrtD,EAAM0N,eAAeuC,UACxB,OAAO,IAAI0+C,EAA2BtB,GAExC,KAAKrtD,EAAM0N,eAAewC,UACxB,OAAO,IAAI0+C,EAA2BvB,GAExC,KAAKrtD,EAAM0N,eAAeyC,SACxB,OAAO,IAAI0+C,EAA0BxB,GAEvC,KAAKrtD,EAAM0N,eAAe0C,UACxB,OAAO,IAAI0+C,EAA2BzB,GAExC,KAAKrtD,EAAM0N,eAAe2C,MACxB,OAAO,IAAI0+C,EAAuB1B,GAEpC,KAAKrtD,EAAM0N,eAAe+C,eACxB,OAAO,IAAIu+C,EAAgC3B,GAE7C,QACE,OAAO,IAAI4B,EAAkB5B,KAMrC,MAAM4B,EACJ,YAAY5B,EAAY6B,GAAe,EAAOC,GAAe,GAC3DryD,KAAKoyD,aAAeA,EACpBpyD,KAAKuhB,KAAOgvC,EAAWhvC,KACvBvhB,KAAK6tC,MAAQ0iB,EAAW1iB,MACxB7tC,KAAK43B,KAAO24B,EAAW34B,KACvB53B,KAAKgvB,SAAWuhC,EAAWvhC,SAC3BhvB,KAAKsyD,YAAc/B,EAAW+B,YAC9BtyD,KAAKuyD,gBAAkBhC,EAAWgC,gBAClCvyD,KAAKwyD,mBAAqBjC,EAAWiC,mBACrCxyD,KAAKkvB,uBAAyBqhC,EAAWrhC,uBACzClvB,KAAKyyD,WAAalC,EAAWkC,WAC7BzyD,KAAKwtB,kBAAoB+iC,EAAW/iC,kBAEhC4kC,IACFpyD,KAAK0yD,UAAY1yD,KAAK2yD,iBAAiBN,IAI3C,iBAAiBA,GAAe,GAC9B,MAAM9wC,EAAOvhB,KAAKuhB,KACZqW,EAAO53B,KAAK43B,KACZ5I,EAAWhvB,KAAKgvB,SAChB0jC,EAAYjsD,SAASG,cAAc,WACzC,IAAIX,EAAQsb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GACjCvE,EAASqb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GACtCioD,EAAUxpD,aAAa,qBAAsBqY,EAAK8K,IAElD,MAAM5hB,EAAOvH,EAAMc,KAAK4f,cAAc,CAACrC,EAAK9W,KAAK,GAAImtB,EAAKlJ,KAAK,GAAKnN,EAAK9W,KAAK,GAAKmtB,EAAKlJ,KAAK,GAAInN,EAAK9W,KAAK,GAAImtB,EAAKlJ,KAAK,GAAKnN,EAAK9W,KAAK,GAAKmtB,EAAKlJ,KAAK,KAKvJ,GAHAgkC,EAAUtyB,MAAMh2B,UAAY,UAAU4kB,EAAS5kB,UAAU4C,KAAK,QAC9D0lD,EAAUtyB,MAAMwyB,gBAAkB,IAAInoD,EAAK,SAASA,EAAK,QAEpD4nD,GAAgB9wC,EAAKsxC,YAAY5sD,MAAQ,EAAG,CAC/CysD,EAAUtyB,MAAM0yB,YAAiBvxC,EAAKsxC,YAAY5sD,MAApB,KAE1Bsb,EAAKsxC,YAAYzyB,QAAUl9B,EAAMiO,0BAA0BiC,YAC7DnN,GAAgB,EAAIsb,EAAKsxC,YAAY5sD,MACrCC,GAAkB,EAAIqb,EAAKsxC,YAAY5sD,OAGzC,MAAM8sD,EAAmBxxC,EAAKsxC,YAAYG,uBACpCC,EAAiB1xC,EAAKsxC,YAAYK,qBAExC,GAAIH,EAAmB,GAAKE,EAAiB,EAAG,CAC9C,MAAME,EAAS,GAAGJ,SAAwBE,MAC1CP,EAAUtyB,MAAMgzB,aAAeD,EAGjC,OAAQ5xC,EAAKsxC,YAAYzyB,OACvB,KAAKl9B,EAAMiO,0BAA0BqF,MACnCk8C,EAAUtyB,MAAMyyB,YAAc,QAC9B,MAEF,KAAK3vD,EAAMiO,0BAA0BsF,OACnCi8C,EAAUtyB,MAAMyyB,YAAc,SAC9B,MAEF,KAAK3vD,EAAMiO,0BAA0BuF,SACnC,EAAIxT,EAAMoJ,MAAM,uCAChB,MAEF,KAAKpJ,EAAMiO,0BAA0BwF,OACnC,EAAIzT,EAAMoJ,MAAM,qCAChB,MAEF,KAAKpJ,EAAMiO,0BAA0BiC,UACnCs/C,EAAUtyB,MAAMizB,kBAAoB,QACpC,MAEF,QACE,MAGA9xC,EAAKyzB,MACP0d,EAAUtyB,MAAMkzB,YAAcpwD,EAAMc,KAAKsxC,WAA2B,EAAhB/zB,EAAKyzB,MAAM,GAAwB,EAAhBzzB,EAAKyzB,MAAM,GAAwB,EAAhBzzB,EAAKyzB,MAAM,IAErG0d,EAAUtyB,MAAM0yB,YAAc,EAQlC,OAJAJ,EAAUtyB,MAAMI,KAAU/1B,EAAK,GAAR,KACvBioD,EAAUtyB,MAAMG,IAAS91B,EAAK,GAAR,KACtBioD,EAAUtyB,MAAMn6B,MAAWA,EAAH,KACxBysD,EAAUtyB,MAAMl6B,OAAYA,EAAH,KAClBwsD,EAGT,aAAaA,EAAWa,EAAShyC,GAC1BgyC,IACHA,EAAU9sD,SAASG,cAAc,OACjC2sD,EAAQnzB,MAAMl6B,OAASwsD,EAAUtyB,MAAMl6B,OACvCqtD,EAAQnzB,MAAMn6B,MAAQysD,EAAUtyB,MAAMn6B,MACtCysD,EAAU9kD,YAAY2lD,IAGxB,MAAMC,EAAe,IAAIC,EAAa,CACpCf,YACAa,UACAve,MAAOzzB,EAAKyzB,MACZvpC,MAAO8V,EAAK9V,MACZioD,iBAAkBnyC,EAAKmyC,iBACvBC,SAAUpyC,EAAKoyC,SACfC,aAAa,IAETC,EAAQL,EAAaM,SAC3BD,EAAMzzB,MAAMI,KAAOkyB,EAAUtyB,MAAMn6B,MACnCysD,EAAU9kD,YAAYimD,GAGxB,UACE,EAAI3wD,EAAM8C,aAAa,sDAK3B,MAAMyqD,UAA8B0B,EAClC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKnc,KAAOmrD,EAAWhvC,KAAKwoB,MAAQwmB,EAAWhvC,KAAK2+B,QACvFx5C,MAAM6pD,EAAY6B,GAGpB,SACEpyD,KAAK0yD,UAAUqB,UAAY,iBAC3B,MAAM,KACJxyC,EAAI,YACJ+wC,GACEtyD,KACEmL,EAAO1E,SAASG,cAAc,KAgBpC,OAdI2a,EAAKnc,KACP,EAAIhD,EAAeC,mBAAmB8I,EAAM,CAC1C/F,IAAKmc,EAAKnc,IACVgG,OAAQmW,EAAKyyC,UAAY5xD,EAAeG,WAAWyI,MAAQsnD,EAAY2B,mBACvE5oD,IAAKinD,EAAY4B,gBACjB5oD,QAASgnD,EAAY6B,sBAEd5yC,EAAK2+B,OACdlgD,KAAKo0D,iBAAiBjpD,EAAMoW,EAAK2+B,QAEjClgD,KAAKq0D,UAAUlpD,EAAMoW,EAAKwoB,MAG5B/pC,KAAK0yD,UAAU9kD,YAAYzC,GACpBnL,KAAK0yD,UAGd,UAAUvnD,EAAMmpD,GACdnpD,EAAKK,KAAOxL,KAAKsyD,YAAYiC,mBAAmBD,GAEhDnpD,EAAKO,QAAU,KACT4oD,GACFt0D,KAAKsyD,YAAYkC,WAAWF,IAGvB,GAGLA,IACFnpD,EAAK4oD,UAAY,gBAIrB,iBAAiB5oD,EAAM+0C,GACrB/0C,EAAKK,KAAOxL,KAAKsyD,YAAYmC,aAAa,IAE1CtpD,EAAKO,QAAU,KACb1L,KAAKsyD,YAAYoC,mBAAmBxU,IAC7B,GAGT/0C,EAAK4oD,UAAY,gBAKrB,MAAMrD,UAA8ByB,EAClC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAGpB,SACEpyD,KAAK0yD,UAAUqB,UAAY,iBAC3B,MAAM3c,EAAQ3wC,SAASG,cAAc,OAerC,OAdAwwC,EAAMhX,MAAMl6B,OAASlG,KAAK0yD,UAAUtyB,MAAMl6B,OAC1CkxC,EAAMhX,MAAMn6B,MAAQjG,KAAK0yD,UAAUtyB,MAAMn6B,MACzCmxC,EAAM9pC,IAAMtN,KAAKwyD,mBAAqB,cAAgBxyD,KAAKuhB,KAAK5gB,KAAK+hD,cAAgB,OACrFtL,EAAMwd,IAAM,wBACZxd,EAAMyd,QAAQC,OAAS,uBACvB1d,EAAMyd,QAAQE,SAAWC,KAAKC,UAAU,CACtC9rD,KAAMnJ,KAAKuhB,KAAK5gB,OAGbX,KAAKuhB,KAAKozC,UACb30D,KAAKk1D,aAAal1D,KAAK0yD,UAAWtb,EAAOp3C,KAAKuhB,MAGhDvhB,KAAK0yD,UAAU9kD,YAAYwpC,GACpBp3C,KAAK0yD,WAKhB,MAAMvB,UAAgCgB,EACpC,SACE,OAAOnyD,KAAK0yD,WAKhB,MAAM9B,UAAoCO,EACxC,YAAYZ,GACV,MAAM6B,EAAe7B,EAAWrhC,yBAA2BqhC,EAAWhvC,KAAK4zC,iBAAmB5E,EAAWhvC,KAAK6zC,WAC9G1uD,MAAM6pD,EAAY6B,GAGpB,SACE,MAAMiD,EAAiB,CAAC,OAAQ,SAAU,SACpCC,EAAUt1D,KAAKwtB,kBACfnB,EAAKrsB,KAAKuhB,KAAK8K,GACrBrsB,KAAK0yD,UAAUqB,UAAY,uBAC3B,IAAIzvC,EAAU,KAEd,GAAItkB,KAAKkvB,uBAAwB,CAC/B,MAAM4C,EAAcwjC,EAAQC,iBAAiBlpC,EAAIrsB,KAAKuhB,KAAK6zC,YAqB3D,GAnBIp1D,KAAKuhB,KAAKi0C,WACZlxC,EAAU7d,SAASG,cAAc,YACjC0d,EAAQwN,YAAcA,IAEtBxN,EAAU7d,SAASG,cAAc,SACjC0d,EAAQnb,KAAO,OACfmb,EAAQpb,aAAa,QAAS4oB,IAGhCxN,EAAQmS,iBAAiB,SAAS,SAAUspB,GAC1CuV,EAAQG,SAASppC,EAAI0zB,EAAM30C,OAAO/J,UAEpCijB,EAAQoxC,SAAW11D,KAAKuhB,KAAKo0C,SAC7BrxC,EAAQ3jB,KAAOX,KAAKuhB,KAAKq0C,UAEA,OAArB51D,KAAKuhB,KAAKs0C,SACZvxC,EAAQwxC,UAAY91D,KAAKuhB,KAAKs0C,QAG5B71D,KAAKuhB,KAAKw0C,KAAM,CAClB,MAAMC,EAAah2D,KAAKuhB,KAAK9W,KAAK,GAAKzK,KAAKuhB,KAAK9W,KAAK,GAChDwrD,EAAYD,EAAah2D,KAAKuhB,KAAKs0C,OACzCvxC,EAAQ4xC,UAAUn6B,IAAI,QACtBzX,EAAQ8b,MAAM+1B,cAAgB,QAAQF,kBAEnC,CACL3xC,EAAU7d,SAASG,cAAc,OACjC0d,EAAQwN,YAAc9xB,KAAKuhB,KAAK6zC,WAChC9wC,EAAQ8b,MAAMg2B,cAAgB,SAC9B9xC,EAAQ8b,MAAMi2B,QAAU,aACxB,IAAIl4C,EAAO,KAEPne,KAAKuhB,KAAKgwB,aAAevxC,KAAK43B,KAAK3J,WAAW+F,IAAIh0B,KAAKuhB,KAAKgwB,eAC9DpzB,EAAOne,KAAK43B,KAAK3J,WAAWhtB,IAAIjB,KAAKuhB,KAAKgwB,cAG5CvxC,KAAKs2D,cAAchyC,EAASnG,GAQ9B,OALgC,OAA5Bne,KAAKuhB,KAAKg1C,gBACZjyC,EAAQ8b,MAAMo2B,UAAYnB,EAAer1D,KAAKuhB,KAAKg1C,gBAGrDv2D,KAAK0yD,UAAU9kD,YAAY0W,GACpBtkB,KAAK0yD,UAGd,cAAcpuC,EAASnG,GACrB,MAAMiiB,EAAQ9b,EAAQ8b,MAItB,GAHAA,EAAMmG,SAAcvmC,KAAKuhB,KAAKglB,SAAb,KACjBnG,EAAMq2B,UAAYz2D,KAAKuhB,KAAKkwB,cAAgB,EAAI,MAAQ,OAEnDtzB,EACH,OAGF,IAAIwzB,EAAO,SAEPxzB,EAAKusB,MACPiH,EAAO,MACExzB,EAAKwzB,OACdA,EAAO,QAGTvR,EAAMs2B,WAAa/kB,EACnBvR,EAAMu2B,UAAYx4C,EAAKyzB,OAAS,SAAW,SAC3C,MAAMlR,EAAaviB,EAAK+hB,WAAa,IAAI/hB,EAAK+hB,gBAAkB,GAC1D4R,EAAe3zB,EAAK2zB,cAAgB,wBAC1C1R,EAAMM,WAAaA,EAAaoR,GAKpC,MAAMkf,UAAwCG,EAC5C,YAAYZ,GACV7pD,MAAM6pD,EAAYA,EAAWrhC,wBAG/B,SACE,MAAMomC,EAAUt1D,KAAKwtB,kBACfjM,EAAOvhB,KAAKuhB,KACZ8K,EAAK9K,EAAK8K,GACVhrB,EAAQi0D,EAAQC,iBAAiBlpC,EAAI9K,EAAK6zC,YAAkC,QAApB7zC,EAAK6zC,YACnEp1D,KAAK0yD,UAAUqB,UAAY,kCAC3B,MAAMzvC,EAAU7d,SAASG,cAAc,SAavC,OAZA0d,EAAQoxC,SAAWn0C,EAAKo0C,SACxBrxC,EAAQnb,KAAO,WACfmb,EAAQ3jB,KAAOX,KAAKuhB,KAAKq0C,UAErBv0D,GACFijB,EAAQpb,aAAa,WAAW,GAGlCob,EAAQmS,iBAAiB,UAAU,SAAUspB,GAC3CuV,EAAQG,SAASppC,EAAI0zB,EAAM30C,OAAOwrD,YAEpC52D,KAAK0yD,UAAU9kD,YAAY0W,GACpBtkB,KAAK0yD,WAKhB,MAAM5B,UAA2CK,EAC/C,YAAYZ,GACV7pD,MAAM6pD,EAAYA,EAAWrhC,wBAG/B,SACElvB,KAAK0yD,UAAUqB,UAAY,qCAC3B,MAAMuB,EAAUt1D,KAAKwtB,kBACfjM,EAAOvhB,KAAKuhB,KACZ8K,EAAK9K,EAAK8K,GACVhrB,EAAQi0D,EAAQC,iBAAiBlpC,EAAI9K,EAAK6zC,aAAe7zC,EAAKs1C,aAC9DvyC,EAAU7d,SAASG,cAAc,SAqBvC,OApBA0d,EAAQoxC,SAAWn0C,EAAKo0C,SACxBrxC,EAAQnb,KAAO,QACfmb,EAAQ3jB,KAAO4gB,EAAKq0C,UAEhBv0D,GACFijB,EAAQpb,aAAa,WAAW,GAGlCob,EAAQmS,iBAAiB,UAAU,SAAUspB,GAC3C,MAAMp/C,EAAOo/C,EAAM30C,OAAOzK,KAE1B,IAAK,MAAMm2D,KAASrwD,SAASswD,kBAAkBp2D,GACzCm2D,IAAU/W,EAAM30C,QAClBkqD,EAAQG,SAASqB,EAAM9Q,WAAWgR,aAAa,uBAAuB,GAI1E1B,EAAQG,SAASppC,EAAI0zB,EAAM30C,OAAOwrD,YAEpC52D,KAAK0yD,UAAU9kD,YAAY0W,GACpBtkB,KAAK0yD,WAKhB,MAAMzB,UAA0CR,EAC9C,SACE,MAAMiC,EAAYhsD,MAAMotD,SAExB,OADApB,EAAUqB,UAAY,oCACfrB,GAKX,MAAMxB,UAAsCC,EAC1C,YAAYZ,GACV7pD,MAAM6pD,EAAYA,EAAWrhC,wBAG/B,SACElvB,KAAK0yD,UAAUqB,UAAY,yBAC3B,MAAMuB,EAAUt1D,KAAKwtB,kBACfnB,EAAKrsB,KAAKuhB,KAAK8K,GACrBipC,EAAQC,iBAAiBlpC,EAAIrsB,KAAKuhB,KAAK6zC,WAAWnpD,OAAS,EAAIjM,KAAKuhB,KAAK6zC,WAAW,GAAK,MACzF,MAAM6B,EAAgBxwD,SAASG,cAAc,UAC7CqwD,EAAcvB,SAAW11D,KAAKuhB,KAAKo0C,SACnCsB,EAAct2D,KAAOX,KAAKuhB,KAAKq0C,UAE1B51D,KAAKuhB,KAAK21C,QACbD,EAAc51B,KAAOrhC,KAAKuhB,KAAK41C,QAAQlrD,OAEnCjM,KAAKuhB,KAAK61C,cACZH,EAAcI,UAAW,IAI7B,IAAK,MAAMC,KAAUt3D,KAAKuhB,KAAK41C,QAAS,CACtC,MAAMI,EAAgB9wD,SAASG,cAAc,UAC7C2wD,EAAczlC,YAAcwlC,EAAOE,aACnCD,EAAcl2D,MAAQi2D,EAAOG,YAEzBz3D,KAAKuhB,KAAK6zC,WAAWlhC,SAASojC,EAAOG,cACvCF,EAAcruD,aAAa,YAAY,GAGzC+tD,EAAcrpD,YAAY2pD,GAS5B,OANAN,EAAcxgC,iBAAiB,SAAS,SAAUspB,GAChD,MAAMoX,EAAUpX,EAAM30C,OAAO+rD,QACvB91D,EAAQ81D,EAAQA,EAAQO,eAAer2D,MAC7Ci0D,EAAQG,SAASppC,EAAIhrB,MAEvBrB,KAAK0yD,UAAU9kD,YAAYqpD,GACpBj3D,KAAK0yD,WAKhB,MAAMtB,UAA+Be,EACnC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAK9V,QAAS8kD,EAAWhvC,KAAKoyC,UACjEjtD,MAAM6pD,EAAY6B,GAGpB,SACE,MAAMuF,EAAe,CAAC,OAAQ,SAAU,SAAU,WAAY,UAAW,OAGzE,GAFA33D,KAAK0yD,UAAUqB,UAAY,kBAEvB4D,EAAazjC,SAASl0B,KAAKuhB,KAAKq2C,YAClC,OAAO53D,KAAK0yD,UAGd,MAAMmF,EAAW,wBAAwB73D,KAAKuhB,KAAKu2C,aAC7CC,EAAgB/3D,KAAK6tC,MAAMmqB,cAAcH,GAE/C,IAAKE,EACH,OAAO/3D,KAAK0yD,UAGd,MAAMmB,EAAQ,IAAIJ,EAAa,CAC7Bf,UAAW1yD,KAAK0yD,UAChBa,QAASwE,EACT/iB,MAAOh1C,KAAKuhB,KAAKyzB,MACjBvpC,MAAOzL,KAAKuhB,KAAK9V,MACjBioD,iBAAkB1zD,KAAKuhB,KAAKmyC,iBAC5BC,SAAU3zD,KAAKuhB,KAAKoyC,WAEhBsE,EAAaC,WAAWH,EAAc33B,MAAMI,MAC5C23B,EAAcD,WAAWH,EAAc33B,MAAMn6B,OAInD,OAHAjG,KAAK0yD,UAAUtyB,MAAMwyB,gBAAkB,IAAIqF,EAAaE,QAAkBJ,EAAc33B,MAAMG,MAC9FvgC,KAAK0yD,UAAUtyB,MAAMI,KAAUy3B,EAAaE,EAAhB,KAC5Bn4D,KAAK0yD,UAAU9kD,YAAYimD,EAAMC,UAC1B9zD,KAAK0yD,WAKhB,MAAMe,EACJ,YAAYlD,GACVvwD,KAAK0yD,UAAYnC,EAAWmC,UAC5B1yD,KAAKuzD,QAAUhD,EAAWgD,QAC1BvzD,KAAKg1C,MAAQub,EAAWvb,MACxBh1C,KAAKyL,MAAQ8kD,EAAW9kD,MACxBzL,KAAK0zD,iBAAmBnD,EAAWmD,iBACnC1zD,KAAK2zD,SAAWpD,EAAWoD,SAC3B3zD,KAAK4zD,YAAcrD,EAAWqD,cAAe,EAC7C5zD,KAAKo4D,QAAS,EAGhB,SACE,MAAMC,EAAqB,GACrBxiC,EAAUpvB,SAASG,cAAc,OACvCivB,EAAQk+B,UAAY,eACpB/zD,KAAKs4D,YAAct4D,KAAK4zD,YAAc/9B,EAAU71B,KAAK0yD,UACrD1yD,KAAKs4D,YAAYpvD,aAAa,UAAU,GACxC,MAAM2qD,EAAQptD,SAASG,cAAc,OACrCitD,EAAME,UAAY,QAClB,MAAM/e,EAAQh1C,KAAKg1C,MAEnB,GAAIA,EAAO,CACT,MAAM9zC,EAAIm3D,GAAsB,IAAMrjB,EAAM,IAAMA,EAAM,GAClD7yB,EAAIk2C,GAAsB,IAAMrjB,EAAM,IAAMA,EAAM,GAClD5yB,EAAIi2C,GAAsB,IAAMrjB,EAAM,IAAMA,EAAM,GACxD6e,EAAMzzB,MAAMgc,gBAAkBl5C,EAAMc,KAAKsxC,WAAe,EAAJp0C,EAAW,EAAJihB,EAAW,EAAJC,GAGpE,MAAM3W,EAAQhF,SAASG,cAAc,MACrC6E,EAAMqmB,YAAc9xB,KAAKyL,MACzBooD,EAAMjmD,YAAYnC,GAElB,MAAM8sD,EAAan2D,EAAeK,cAAc+1D,aAAax4D,KAAK0zD,kBAElE,GAAI6E,EAAY,CACd,MAAM7E,EAAmBjtD,SAASG,cAAc,QAChD8sD,EAAiB5hC,YAAc,qBAC/B4hC,EAAiBmB,QAAQC,OAAS,yBAClCpB,EAAiBmB,QAAQE,SAAWC,KAAKC,UAAU,CACjDzwC,KAAM+zC,EAAWE,qBACjB5rD,KAAM0rD,EAAWG,uBAEnB7E,EAAMjmD,YAAY8lD,GAGpB,MAAMC,EAAW3zD,KAAK24D,gBAAgB34D,KAAK2zD,UAQ3C,OANAE,EAAMjmD,YAAY+lD,GAClB3zD,KAAKuzD,QAAQ98B,iBAAiB,QAASz2B,KAAK44D,QAAQh3D,KAAK5B,OACzDA,KAAKuzD,QAAQ98B,iBAAiB,YAAaz2B,KAAK64D,MAAMj3D,KAAK5B,MAAM,IACjEA,KAAKuzD,QAAQ98B,iBAAiB,WAAYz2B,KAAK84D,MAAMl3D,KAAK5B,MAAM,IAChE6zD,EAAMp9B,iBAAiB,QAASz2B,KAAK84D,MAAMl3D,KAAK5B,MAAM,IACtD61B,EAAQjoB,YAAYimD,GACbh+B,EAGT,gBAAgB89B,GACd,MAAMzxD,EAAIuE,SAASG,cAAc,KAC3BmyD,EAAQpF,EAASqF,MAAM,gBAE7B,IAAK,IAAI34D,EAAI,EAAGolB,EAAKszC,EAAM9sD,OAAQ5L,EAAIolB,IAAMplB,EAAG,CAC9C,MAAM44D,EAAOF,EAAM14D,GACnB6B,EAAE0L,YAAYnH,SAASyyD,eAAeD,IAElC54D,EAAIolB,EAAK,GACXvjB,EAAE0L,YAAYnH,SAASG,cAAc,OAIzC,OAAO1E,EAGT,UACMlC,KAAKo4D,OACPp4D,KAAK84D,OAAM,GAEX94D,KAAK64D,OAAM,GAIf,MAAMM,GAAM,GACNA,IACFn5D,KAAKo4D,QAAS,GAGZp4D,KAAKs4D,YAAYc,aAAa,YAChCp5D,KAAKs4D,YAAYe,gBAAgB,UACjCr5D,KAAK0yD,UAAUtyB,MAAMk5B,QAAU,GAInC,MAAMC,GAAQ,GACRA,IACFv5D,KAAKo4D,QAAS,GAGXp4D,KAAKs4D,YAAYc,aAAa,WAAcp5D,KAAKo4D,SACpDp4D,KAAKs4D,YAAYpvD,aAAa,UAAU,GACxClJ,KAAK0yD,UAAUtyB,MAAMk5B,QAAU,IAMrC,MAAMjI,UAAkCc,EACtC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAGlC,SAOE,OANApyD,KAAK0yD,UAAUqB,UAAY,qBAEtB/zD,KAAKuhB,KAAKozC,UACb30D,KAAKk1D,aAAal1D,KAAK0yD,UAAW,KAAM1yD,KAAKuhB,MAGxCvhB,KAAK0yD,WAKhB,MAAMpB,UAA8Ba,EAClC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAGlC,SACEpyD,KAAK0yD,UAAUqB,UAAY,iBAC3B,MAAMxyC,EAAOvhB,KAAKuhB,KACZtb,EAAQsb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GACjCvE,EAASqb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GAClCzB,EAAMhJ,KAAKyyD,WAAW/wD,OAAOuE,EAAOC,GACpC+yD,EAAOj5D,KAAKyyD,WAAW7rD,cAAc,YAY3C,OAXAqyD,EAAK/vD,aAAa,KAAMqY,EAAK9W,KAAK,GAAK8W,EAAKi4C,gBAAgB,IAC5DP,EAAK/vD,aAAa,KAAMqY,EAAK9W,KAAK,GAAK8W,EAAKi4C,gBAAgB,IAC5DP,EAAK/vD,aAAa,KAAMqY,EAAK9W,KAAK,GAAK8W,EAAKi4C,gBAAgB,IAC5DP,EAAK/vD,aAAa,KAAMqY,EAAK9W,KAAK,GAAK8W,EAAKi4C,gBAAgB,IAC5DP,EAAK/vD,aAAa,eAAgBqY,EAAKsxC,YAAY5sD,OAAS,GAC5DgzD,EAAK/vD,aAAa,SAAU,eAC5BF,EAAI4E,YAAYqrD,GAChBj5D,KAAK0yD,UAAU+G,OAAOzwD,GAEtBhJ,KAAKk1D,aAAal1D,KAAK0yD,UAAWuG,EAAM13C,GAEjCvhB,KAAK0yD,WAKhB,MAAMnB,UAAgCY,EACpC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAGlC,SACEpyD,KAAK0yD,UAAUqB,UAAY,mBAC3B,MAAMxyC,EAAOvhB,KAAKuhB,KACZtb,EAAQsb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GACjCvE,EAASqb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GAClCzB,EAAMhJ,KAAKyyD,WAAW/wD,OAAOuE,EAAOC,GACpC4sD,EAAcvxC,EAAKsxC,YAAY5sD,MAC/ByzD,EAAS15D,KAAKyyD,WAAW7rD,cAAc,YAa7C,OAZA8yD,EAAOxwD,aAAa,IAAK4pD,EAAc,GACvC4G,EAAOxwD,aAAa,IAAK4pD,EAAc,GACvC4G,EAAOxwD,aAAa,QAASjD,EAAQ6sD,GACrC4G,EAAOxwD,aAAa,SAAUhD,EAAS4sD,GACvC4G,EAAOxwD,aAAa,eAAgB4pD,GAAe,GACnD4G,EAAOxwD,aAAa,SAAU,eAC9BwwD,EAAOxwD,aAAa,OAAQ,QAC5BF,EAAI4E,YAAY8rD,GAChB15D,KAAK0yD,UAAU+G,OAAOzwD,GAEtBhJ,KAAKk1D,aAAal1D,KAAK0yD,UAAWgH,EAAQn4C,GAEnCvhB,KAAK0yD,WAKhB,MAAMlB,UAAgCW,EACpC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAGlC,SACEpyD,KAAK0yD,UAAUqB,UAAY,mBAC3B,MAAMxyC,EAAOvhB,KAAKuhB,KACZtb,EAAQsb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GACjCvE,EAASqb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GAClCzB,EAAMhJ,KAAKyyD,WAAW/wD,OAAOuE,EAAOC,GACpC4sD,EAAcvxC,EAAKsxC,YAAY5sD,MAC/B0zD,EAAS35D,KAAKyyD,WAAW7rD,cAAc,eAa7C,OAZA+yD,EAAOzwD,aAAa,KAAMjD,EAAQ,GAClC0zD,EAAOzwD,aAAa,KAAMhD,EAAS,GACnCyzD,EAAOzwD,aAAa,KAAMjD,EAAQ,EAAI6sD,EAAc,GACpD6G,EAAOzwD,aAAa,KAAMhD,EAAS,EAAI4sD,EAAc,GACrD6G,EAAOzwD,aAAa,eAAgB4pD,GAAe,GACnD6G,EAAOzwD,aAAa,SAAU,eAC9BywD,EAAOzwD,aAAa,OAAQ,QAC5BF,EAAI4E,YAAY+rD,GAChB35D,KAAK0yD,UAAU+G,OAAOzwD,GAEtBhJ,KAAKk1D,aAAal1D,KAAK0yD,UAAWiH,EAAQp4C,GAEnCvhB,KAAK0yD,WAKhB,MAAMjB,UAAkCU,EACtC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAChCpyD,KAAK45D,mBAAqB,qBAC1B55D,KAAK65D,eAAiB,eAGxB,SACE75D,KAAK0yD,UAAUqB,UAAY/zD,KAAK45D,mBAChC,MAAMr4C,EAAOvhB,KAAKuhB,KACZtb,EAAQsb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GACjCvE,EAASqb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GAClCzB,EAAMhJ,KAAKyyD,WAAW/wD,OAAOuE,EAAOC,GAC1C,IAAI++B,EAAS,GAEb,IAAK,MAAM60B,KAAcv4C,EAAKw4C,SAAU,CACtC,MAAMzvD,EAAIwvD,EAAWxvD,EAAIiX,EAAK9W,KAAK,GAC7BF,EAAIgX,EAAK9W,KAAK,GAAKqvD,EAAWvvD,EACpC06B,EAAOx4B,KAAKnC,EAAI,IAAMC,GAGxB06B,EAASA,EAAOj4B,KAAK,KACrB,MAAMgtD,EAAWh6D,KAAKyyD,WAAW7rD,cAAc5G,KAAK65D,gBAUpD,OATAG,EAAS9wD,aAAa,SAAU+7B,GAChC+0B,EAAS9wD,aAAa,eAAgBqY,EAAKsxC,YAAY5sD,OAAS,GAChE+zD,EAAS9wD,aAAa,SAAU,eAChC8wD,EAAS9wD,aAAa,OAAQ,QAC9BF,EAAI4E,YAAYosD,GAChBh6D,KAAK0yD,UAAU+G,OAAOzwD,GAEtBhJ,KAAKk1D,aAAal1D,KAAK0yD,UAAWsH,EAAUz4C,GAErCvhB,KAAK0yD,WAKhB,MAAMd,UAAiCH,EACrC,YAAYlB,GACV7pD,MAAM6pD,GACNvwD,KAAK45D,mBAAqB,oBAC1B55D,KAAK65D,eAAiB,eAK1B,MAAMnI,UAA+BS,EACnC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAGlC,SAOE,OANApyD,KAAK0yD,UAAUqB,UAAY,kBAEtB/zD,KAAKuhB,KAAKozC,UACb30D,KAAKk1D,aAAal1D,KAAK0yD,UAAW,KAAM1yD,KAAKuhB,MAGxCvhB,KAAK0yD,WAKhB,MAAMf,UAA6BQ,EACjC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAChCpyD,KAAK45D,mBAAqB,gBAC1B55D,KAAK65D,eAAiB,eAGxB,SACE75D,KAAK0yD,UAAUqB,UAAY/zD,KAAK45D,mBAChC,MAAMr4C,EAAOvhB,KAAKuhB,KACZtb,EAAQsb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GACjCvE,EAASqb,EAAK9W,KAAK,GAAK8W,EAAK9W,KAAK,GAClCzB,EAAMhJ,KAAKyyD,WAAW/wD,OAAOuE,EAAOC,GAE1C,IAAK,MAAM+zD,KAAW14C,EAAK24C,SAAU,CACnC,IAAIj1B,EAAS,GAEb,IAAK,MAAM60B,KAAcG,EAAS,CAChC,MAAM3vD,EAAIwvD,EAAWxvD,EAAIiX,EAAK9W,KAAK,GAC7BF,EAAIgX,EAAK9W,KAAK,GAAKqvD,EAAWvvD,EACpC06B,EAAOx4B,KAAK,GAAGnC,KAAKC,KAGtB06B,EAASA,EAAOj4B,KAAK,KACrB,MAAMgtD,EAAWh6D,KAAKyyD,WAAW7rD,cAAc5G,KAAK65D,gBACpDG,EAAS9wD,aAAa,SAAU+7B,GAChC+0B,EAAS9wD,aAAa,eAAgBqY,EAAKsxC,YAAY5sD,OAAS,GAChE+zD,EAAS9wD,aAAa,SAAU,eAChC8wD,EAAS9wD,aAAa,OAAQ,QAE9BlJ,KAAKk1D,aAAal1D,KAAK0yD,UAAWsH,EAAUz4C,GAE5CvY,EAAI4E,YAAYosD,GAIlB,OADAh6D,KAAK0yD,UAAU+G,OAAOzwD,GACfhJ,KAAK0yD,WAKhB,MAAMb,UAAmCM,EACvC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAGlC,SAOE,OANApyD,KAAK0yD,UAAUqB,UAAY,sBAEtB/zD,KAAKuhB,KAAKozC,UACb30D,KAAKk1D,aAAal1D,KAAK0yD,UAAW,KAAM1yD,KAAKuhB,MAGxCvhB,KAAK0yD,WAKhB,MAAMZ,UAAmCK,EACvC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAGlC,SAOE,OANApyD,KAAK0yD,UAAUqB,UAAY,sBAEtB/zD,KAAKuhB,KAAKozC,UACb30D,KAAKk1D,aAAal1D,KAAK0yD,UAAW,KAAM1yD,KAAKuhB,MAGxCvhB,KAAK0yD,WAKhB,MAAMX,UAAkCI,EACtC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAGlC,SAOE,OANApyD,KAAK0yD,UAAUqB,UAAY,qBAEtB/zD,KAAKuhB,KAAKozC,UACb30D,KAAKk1D,aAAal1D,KAAK0yD,UAAW,KAAM1yD,KAAKuhB,MAGxCvhB,KAAK0yD,WAKhB,MAAMV,UAAmCG,EACvC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAGlC,SAOE,OANApyD,KAAK0yD,UAAUqB,UAAY,sBAEtB/zD,KAAKuhB,KAAKozC,UACb30D,KAAKk1D,aAAal1D,KAAK0yD,UAAW,KAAM1yD,KAAKuhB,MAGxCvhB,KAAK0yD,WAKhB,MAAMT,UAA+BE,EACnC,YAAY5B,GACV,MAAM6B,KAAkB7B,EAAWhvC,KAAKozC,UAAYpE,EAAWhvC,KAAK9V,OAAS8kD,EAAWhvC,KAAKoyC,UAC7FjtD,MAAM6pD,EAAY6B,GAAc,GAGlC,SAOE,OANApyD,KAAK0yD,UAAUqB,UAAY,kBAEtB/zD,KAAKuhB,KAAKozC,UACb30D,KAAKk1D,aAAal1D,KAAK0yD,UAAW,KAAM1yD,KAAKuhB,MAGxCvhB,KAAK0yD,WAKhB,MAAMR,UAAwCC,EAC5C,YAAY5B,GACV7pD,MAAM6pD,GAAY,GAClB,MAAM,SACJr2B,EAAQ,QACRurB,GACEzlD,KAAKuhB,KAAK44C,KACdn6D,KAAKk6B,UAAW,EAAI93B,EAAeE,oBAAoB43B,GACvDl6B,KAAKylD,QAAUA,EAEXzlD,KAAKsyD,YAAY8H,UACnBp6D,KAAKsyD,YAAY8H,SAASC,SAAS,2BAA4B,CAC7D1yC,OAAQ3nB,KACRqsB,IAAI,EAAInpB,EAAM6M,mBAAmBmqB,GACjCA,WACAurB,YAKN,SACEzlD,KAAK0yD,UAAUqB,UAAY,2BAC3B,MAAMR,EAAU9sD,SAASG,cAAc,OAUvC,OATA2sD,EAAQnzB,MAAMl6B,OAASlG,KAAK0yD,UAAUtyB,MAAMl6B,OAC5CqtD,EAAQnzB,MAAMn6B,MAAQjG,KAAK0yD,UAAUtyB,MAAMn6B,MAC3CstD,EAAQ98B,iBAAiB,WAAYz2B,KAAKs6D,UAAU14D,KAAK5B,OAEpDA,KAAKuhB,KAAKozC,WAAa30D,KAAKuhB,KAAK9V,QAASzL,KAAKuhB,KAAKoyC,UACvD3zD,KAAKk1D,aAAal1D,KAAK0yD,UAAWa,EAASvzD,KAAKuhB,MAGlDvhB,KAAK0yD,UAAU9kD,YAAY2lD,GACpBvzD,KAAK0yD,UAGd,YACO1yD,KAAKuyD,gBAKVvyD,KAAKuyD,gBAAgBgI,aAAav6D,KAAKylD,QAASzlD,KAAKk6B,SAAU,KAJ7D,EAAIh3B,EAAMoJ,MAAM,mEAStB,MAAMnI,EACJ,cAAcosD,GACZ,MAAMiK,EAAoB,GACpBC,EAAmB,GAEzB,IAAK,MAAMl5C,KAAQgvC,EAAWmK,YACvBn5C,IAIDA,EAAKivC,iBAAmBttD,EAAM0N,eAAe8C,MAKjD8mD,EAAkB/tD,KAAK8U,GAJrBk5C,EAAiBhuD,KAAK8U,IAOtBk5C,EAAiBxuD,QACnBuuD,EAAkB/tD,QAAQguD,GAG5B,IAAK,MAAMl5C,KAAQi5C,EAAmB,CACpC,MAAMl2C,EAAUgsC,EAAyB5uD,OAAO,CAC9C6f,OACAssB,MAAO0iB,EAAWpwB,IAClBvI,KAAM24B,EAAW34B,KACjB5I,SAAUuhC,EAAWvhC,SACrBsjC,YAAa/B,EAAW+B,YACxBC,gBAAiBhC,EAAWgC,gBAC5BC,mBAAoBjC,EAAWiC,oBAAsB,GACrDtjC,uBAAqE,mBAAtCqhC,EAAWrhC,wBAAuCqhC,EAAWrhC,uBAC5FujC,WAAY,IAAIrwD,EAAemD,cAC/BioB,kBAAmB+iC,EAAW/iC,mBAAqB,IAAI/G,EAAoBoF,oBAGzEvH,EAAQ8tC,cACV7B,EAAWpwB,IAAIvyB,YAAY0W,EAAQwvC,WAKzC,cAAcvD,GACZ,IAAK,MAAMhvC,KAAQgvC,EAAWmK,YAAa,CACzC,MAAMp2C,EAAUisC,EAAWpwB,IAAI63B,cAAc,wBAAwBz2C,EAAK8K,QAEtE/H,IACFA,EAAQ8b,MAAMh2B,UAAY,UAAUmmD,EAAWvhC,SAAS5kB,UAAU4C,KAAK,SAI3EujD,EAAWpwB,IAAIk5B,gBAAgB,WAKnCz5D,EAAQuE,gBAAkBA,GAIpB,SAAUxE,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQ6E,qBAAkB,EAE1B,IAAIvB,EAAQ/C,EAAoB,GAE5BsE,EAAkB,WACpB,IAAIk2D,EAA0B,IAC1BC,EAAsB,KAE1B,SAASC,EAAgBv6C,GACvB,OAAQs6C,EAAoBE,KAAKx6C,GAGnC,SAASy6C,EAAWtzC,EAAMuzC,EAAMzoC,GAC9B,IAAI0oC,EAAUx0D,SAASG,cAAc,QACjCs0D,EAAoB,CACtBl3B,MAAO,EACPm3B,YAAa,EACbrX,cAAc,EACdsX,kBAAmB,KACnBC,cAAe,EACfC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZnyD,MAAO,GAKT,GAFAoe,EAAKg0C,UAAUhvD,KAAKwuD,GAEhBJ,EAAgBG,EAAK16C,KAKvB,OAJA46C,EAAkBpX,cAAe,OAEjCr8B,EAAKi0C,mBAAmBh6C,IAAIu5C,EAASC,GAKvC,IAAIS,EAAKz4D,EAAMc,KAAKoG,UAAUqd,EAAKm0C,UAAUxxD,UAAW4wD,EAAK5wD,WAEzD45B,EAAQ95B,KAAK2xD,MAAMF,EAAG,GAAIA,EAAG,IAC7Bv7B,EAAQ7N,EAAOyoC,EAAKc,UAEpB17B,EAAMqS,WACRzO,GAAS95B,KAAK6xD,GAAK,GAGrB,IAAIC,EAAa9xD,KAAKgZ,KAAKy4C,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IAClDM,EAAaD,EAQjB,IAAIx7B,EAAMD,EANNH,EAAM87B,OACRD,EAAa77B,EAAM87B,OAASD,EACnB77B,EAAM+7B,UACfF,GAAc,EAAI77B,EAAM+7B,SAAWF,GAKvB,IAAVj4B,GACFxD,EAAOm7B,EAAG,GACVp7B,EAAMo7B,EAAG,GAAKM,IAEdz7B,EAAOm7B,EAAG,GAAKM,EAAa/xD,KAAKk6B,IAAIJ,GACrCzD,EAAMo7B,EAAG,GAAKM,EAAa/xD,KAAKg6B,IAAIF,IAGtCi3B,EAAQ76B,MAAMI,KAAUA,EAAH,KACrBy6B,EAAQ76B,MAAMG,IAASA,EAAH,KACpB06B,EAAQ76B,MAAMmG,SAAcy1B,EAAH,KACzBf,EAAQ76B,MAAMM,WAAaN,EAAMM,WACjCu6B,EAAQnpC,YAAckpC,EAAK16C,IAEvBmH,EAAK20C,wBACPnB,EAAQpG,QAAQiH,SAAWd,EAAKc,UAGpB,IAAV93B,IACFk3B,EAAkBl3B,MAAQA,GAAS,IAAM95B,KAAK6xD,KAGhD,IAAIM,GAAkB,EAEtB,GAAIrB,EAAK16C,IAAIrU,OAAS,EACpBowD,GAAkB,OACb,GAAIrB,EAAK5wD,UAAU,KAAO4wD,EAAK5wD,UAAU,GAAI,CAClD,MAAMkyD,EAAYpyD,KAAKC,IAAI6wD,EAAK5wD,UAAU,IACpCmyD,EAAYryD,KAAKC,IAAI6wD,EAAK5wD,UAAU,IAEtCkyD,IAAcC,GAAaryD,KAAK2Y,IAAIy5C,EAAWC,GAAaryD,KAAK8B,IAAIswD,EAAWC,GAAa,MAC/FF,GAAkB,GAkBtB,GAdIA,IACEj8B,EAAMqS,SACRyoB,EAAkBC,YAAcH,EAAK90D,OAASuhB,EAAKm0C,UAAUvyD,MAE7D6xD,EAAkBC,YAAcH,EAAK/0D,MAAQwhB,EAAKm0C,UAAUvyD,OAIhEoe,EAAKi0C,mBAAmBh6C,IAAIu5C,EAASC,GAEjCzzC,EAAK+0C,oBACP/0C,EAAKg1C,YAAYxB,GAGfxzC,EAAKi1C,sBAAuB,CAC9B,IAAIC,EAAW,EACXC,EAAW,EAED,IAAV54B,IACF24B,EAAWzyD,KAAKg6B,IAAIF,GACpB44B,EAAW1yD,KAAKk6B,IAAIJ,IAGtB,IAEIxjC,EAAG4hB,EAFHy6C,GAAYz8B,EAAMqS,SAAWuoB,EAAK90D,OAAS80D,EAAK/0D,OAASwhB,EAAKm0C,UAAUvyD,MACxEyzD,EAAYd,EAGF,IAAVh4B,GACFxjC,EAAI,CAACm8D,EAAUC,GAAWA,EAAUD,EAAUn8B,EAAMD,GACpDne,EAAIlf,EAAMc,KAAKuyC,2BAA2B,CAAC,EAAG,EAAGsmB,EAAUC,GAAYt8D,IAEvE4hB,EAAI,CAACoe,EAAMD,EAAKC,EAAOq8B,EAAUt8B,EAAMu8B,GAGzCr1C,EAAKs1C,QAAQtwD,KAAK,CAChB+zB,KAAMpe,EAAE,GACRme,IAAKne,EAAE,GACP46C,MAAO56C,EAAE,GACT66C,OAAQ76C,EAAE,GACV+d,IAAK86B,EACL55B,KAAM,CAACw7B,EAAUC,GACjBt8D,OAKN,SAASszD,EAAOrsC,GACd,IAAIA,EAAKy1C,UAAT,CAIA,IAAIC,EAAW11C,EAAKg0C,UAChBx2C,EAAawC,EAAK6C,YAClB8yC,EAAiBD,EAASlxD,OAE9B,GAAImxD,EAAiBzC,EAGnB,OAFAlzC,EAAK41C,gBAAiB,OACtBp4C,EAAW9c,UAIb,IAAKsf,EAAK+0C,mBACR,IAAK,IAAIn8D,EAAI,EAAGA,EAAI+8D,EAAgB/8D,IAClConB,EAAKg1C,YAAYU,EAAS98D,IAI9BonB,EAAK41C,gBAAiB,EACtBp4C,EAAW9c,WAGb,SAASm1D,EAAgBC,EAAIt+B,EAAQsG,GACnC,IAAI5hB,EAAS,EAEb,IAAK,IAAItjB,EAAI,EAAGA,EAAIklC,EAAOllC,IAAK,CAC9B,MAAMiB,EAAIi8D,EAAGt+B,KAET39B,EAAI,IACNqiB,EAASA,EAASzZ,KAAK8B,IAAI1K,EAAGqiB,GAAUriB,GAI5C,OAAOqiB,EAGT,SAAS65C,EAAO/1C,GAKd,IAJA,IAAI6uB,EAAS7uB,EAAKs1C,QACd/tC,EAAWvH,EAAKm0C,UAChB6B,EAAWC,EAAa1uC,EAAS/oB,MAAO+oB,EAAS9oB,OAAQowC,GAEpDj2C,EAAI,EAAGA,EAAIo9D,EAASxxD,OAAQ5L,IAAK,CACxC,IAAI8/B,EAAMmW,EAAOj2C,GAAG8/B,IAEhBw9B,EAAgBl2C,EAAKi0C,mBAAmBz6D,IAAIk/B,GAEhD,GAA4B,IAAxBw9B,EAAc35B,MAAlB,CAWA,IAAIrkB,EAAI89C,EAASp9D,GACb+hB,EAAIk0B,EAAOj2C,GACXG,EAAI4hB,EAAE5hB,EACNC,EAAID,EAAE,GACN2B,EAAI3B,EAAE,GACNykC,EAAS,CAAC,CAAC,EAAG,GAAI,CAAC,EAAG7iB,EAAEif,KAAK,IAAK,CAACjf,EAAEif,KAAK,GAAI,GAAIjf,EAAEif,MACpDk8B,EAAK,IAAIK,aAAa,IAC1B34B,EAAOxQ,SAAQ,SAAUvyB,EAAG2iC,GAC1B,IAAIvjC,EAAI4B,EAAMc,KAAKwG,eAAetI,EAAG1B,GAErC+8D,EAAG14B,EAAI,GAAKpkC,IAAMkf,EAAE6gB,KAAOl/B,EAAE,IAAMb,EACnC88D,EAAG14B,EAAI,GAAK1iC,IAAMwd,EAAE4gB,IAAMj/B,EAAE,IAAMa,EAClCo7D,EAAG14B,EAAI,GAAKpkC,IAAMkf,EAAEq9C,MAAQ17D,EAAE,IAAMb,EACpC88D,EAAG14B,EAAI,IAAM1iC,IAAMwd,EAAEs9C,OAAS37D,EAAE,IAAMa,EACtCo7D,EAAG14B,EAAI,IAAM1iC,IAAMwd,EAAE6gB,KAAOl/B,EAAE,KAAOa,EACrCo7D,EAAG14B,EAAI,IAAMpkC,IAAMkf,EAAE4gB,IAAMj/B,EAAE,IAAMb,EACnC88D,EAAG14B,EAAI,IAAM1iC,IAAMwd,EAAEq9C,MAAQ17D,EAAE,KAAOa,EACtCo7D,EAAG14B,EAAI,IAAMpkC,IAAMkf,EAAEs9C,OAAS37D,EAAE,IAAMb,EACtC88D,EAAG14B,EAAI,IAAMpkC,IAAMkf,EAAE6gB,KAAOl/B,EAAE,KAAOb,EACrC88D,EAAG14B,EAAI,IAAM1iC,IAAMwd,EAAE4gB,IAAMj/B,EAAE,KAAOa,EACpCo7D,EAAG14B,EAAI,IAAMpkC,IAAMkf,EAAEq9C,MAAQ17D,EAAE,KAAOb,EACtC88D,EAAG14B,EAAI,IAAM1iC,IAAMwd,EAAEs9C,OAAS37D,EAAE,KAAOa,EACvCo7D,EAAG14B,EAAI,IAAM1iC,IAAMwd,EAAE6gB,KAAOl/B,EAAE,IAAMa,EACpCo7D,EAAG14B,EAAI,IAAMpkC,IAAMkf,EAAE4gB,IAAMj/B,EAAE,KAAOb,EACpC88D,EAAG14B,EAAI,IAAM1iC,IAAMwd,EAAEq9C,MAAQ17D,EAAE,IAAMa,EACrCo7D,EAAG14B,EAAI,IAAMpkC,IAAMkf,EAAEs9C,OAAS37D,EAAE,KAAOb,KAEzC,IAAIo9D,EAAW,EAAI3zD,KAAK8B,IAAI9B,KAAKC,IAAI1J,GAAIyJ,KAAKC,IAAIhI,IAClDw7D,EAAcrC,YAAcgC,EAAgBC,EAAI,GAAI,IAAMM,EAC1DF,EAAcnC,WAAa8B,EAAgBC,EAAI,GAAI,IAAMM,EACzDF,EAAcpC,aAAe+B,EAAgBC,EAAI,EAAG,IAAMM,EAC1DF,EAActC,cAAgBiC,EAAgBC,EAAI,GAAI,IAAMM,EAE5Dp2C,EAAKi0C,mBAAmBh6C,IAAIye,EAAKw9B,QA3C/BA,EAAcrC,YAAchlB,EAAOj2C,GAAGmgC,KAAOi9B,EAASp9D,GAAGmgC,KACzDm9B,EAAcnC,WAAallB,EAAOj2C,GAAGkgC,IAAMk9B,EAASp9D,GAAGkgC,IACvDo9B,EAAcpC,aAAekC,EAASp9D,GAAG28D,MAAQ1mB,EAAOj2C,GAAG28D,MAC3DW,EAActC,cAAgBoC,EAASp9D,GAAG48D,OAAS3mB,EAAOj2C,GAAG48D,OAE7Dx1C,EAAKi0C,mBAAmBh6C,IAAIye,EAAKw9B,IA0CvC,SAASD,EAAaz3D,EAAOC,EAAQ43D,GACnC,IAAIxnB,EAASwnB,EAAMzmB,KAAI,SAAU0mB,EAAK19D,GACpC,MAAO,CACL01C,GAAIgoB,EAAIv9B,KACRwV,GAAI+nB,EAAIx9B,IACRyZ,GAAI+jB,EAAIf,MACR/iB,GAAI8jB,EAAId,OACR14C,MAAOlkB,EACP29D,WAAOv9C,EACPw9C,WAAOx9C,MAGXy9C,EAAgBj4D,EAAOqwC,GACvB,IAAImnB,EAAW,IAAIrpC,MAAM0pC,EAAM7xD,QA2B/B,OA1BAqqC,EAAO7hB,SAAQ,SAAUrS,GACvB,IAAI/hB,EAAI+hB,EAAEmC,MACVk5C,EAASp9D,GAAK,CACZmgC,KAAMpe,EAAE47C,MACRz9B,IAAK,EACLy8B,MAAO56C,EAAE67C,MACThB,OAAQ,MAGZa,EAAMzmB,KAAI,SAAU0mB,EAAK19D,GACvB,IAAIsf,EAAI89C,EAASp9D,GACb+hB,EAAIk0B,EAAOj2C,GACf+hB,EAAE2zB,GAAKgoB,EAAIx9B,IACXne,EAAE4zB,GAAK/vC,EAAQ0Z,EAAEq9C,MACjB56C,EAAE43B,GAAK+jB,EAAId,OACX76C,EAAE63B,GAAKh0C,EAAQ0Z,EAAE6gB,KACjBpe,EAAEmC,MAAQlkB,EACV+hB,EAAE47C,WAAQv9C,EACV2B,EAAE67C,WAAQx9C,KAEZy9C,EAAgBh4D,EAAQowC,GACxBA,EAAO7hB,SAAQ,SAAUrS,GACvB,IAAI/hB,EAAI+hB,EAAEmC,MACVk5C,EAASp9D,GAAGkgC,IAAMne,EAAE47C,MACpBP,EAASp9D,GAAG48D,OAAS76C,EAAE67C,SAElBR,EAGT,SAASS,EAAgBj4D,EAAOqwC,GAC9BA,EAAO7yB,MAAK,SAAUT,EAAGZ,GACvB,OAAOY,EAAE+yB,GAAK3zB,EAAE2zB,IAAM/yB,EAAEuB,MAAQnC,EAAEmC,SAEpC,IAAI45C,EAAe,CACjBpoB,IAAKqoB,IACLpoB,IAAKooB,IACLpkB,GAAI,EACJC,GAAImkB,IACJ75C,OAAQ,EACRy5C,MAAO,EACPC,MAAO,GAELI,EAAU,CAAC,CACb3xD,OAAQ0xD,IACRryD,IAAKqyD,IACLE,SAAUH,IAEZ7nB,EAAO7hB,SAAQ,SAAU6pC,GACvB,IAAIj+D,EAAI,EAER,MAAOA,EAAIg+D,EAAQpyD,QAAUoyD,EAAQh+D,GAAG0L,KAAOuyD,EAAStoB,GACtD31C,IAGF,IAMIk+D,EAAaC,EANb35B,EAAIw5B,EAAQpyD,OAAS,EAEzB,MAAO44B,GAAK,GAAKw5B,EAAQx5B,GAAGn4B,OAAS4xD,EAASrkB,GAC5CpV,IAIF,IAAIoX,EACA/V,EACAu4B,GAAWL,IAEf,IAAKniB,EAAI57C,EAAG47C,GAAKpX,EAAGoX,IAAK,CAGvB,IAAIyiB,EAFJH,EAAcF,EAAQpiB,GACtBuiB,EAAmBD,EAAYD,SAI7BI,EADEF,EAAiBxkB,GAAKskB,EAASvoB,GAC1ByoB,EAAiBj6C,MAAQ+5C,EAAS/5C,MAAQi6C,EAAiBR,MAAQM,EAASvoB,QAC/Ct1B,IAA3B+9C,EAAiBP,OAClBO,EAAiBxkB,GAAKskB,EAASvoB,IAAM,EAEtCyoB,EAAiBP,MAGtBS,EAAOD,IACTA,EAAUC,GAMd,IAFAJ,EAASN,MAAQS,EAEZxiB,EAAI57C,EAAG47C,GAAKpX,EAAGoX,IAClBsiB,EAAcF,EAAQpiB,GACtBuiB,EAAmBD,EAAYD,cAEA79C,IAA3B+9C,EAAiBP,MACfO,EAAiBxkB,GAAKskB,EAASvoB,GAC7ByoB,EAAiBj6C,MAAQ+5C,EAAS/5C,QACpCi6C,EAAiBP,MAAQO,EAAiBxkB,IAG5CwkB,EAAiBP,MAAQQ,EAElBD,EAAiBP,MAAQQ,IAClCD,EAAiBP,MAAQ/zD,KAAK2Y,IAAI47C,EAASD,EAAiBxkB,KAIhE,IAAI2kB,EAAiB,GACjBC,EAAe,KAEnB,IAAK3iB,EAAI57C,EAAG47C,GAAKpX,EAAGoX,IAAK,CACvBsiB,EAAcF,EAAQpiB,GACtBuiB,EAAmBD,EAAYD,SAC/B,IAAIO,EAAcL,EAAiBxkB,GAAKskB,EAAStkB,GAAKwkB,EAAmBF,EAErEM,IAAiBC,EACnBF,EAAeA,EAAe1yD,OAAS,GAAGF,IAAMwyD,EAAYxyD,KAE5D4yD,EAAelyD,KAAK,CAClBC,MAAO6xD,EAAY7xD,MACnBX,IAAKwyD,EAAYxyD,IACjBuyD,SAAUO,IAEZD,EAAeC,GAsBnB,IAlBIR,EAAQh+D,GAAGqM,MAAQ4xD,EAAStoB,KAC9B2oB,EAAe,GAAGjyD,MAAQ4xD,EAAStoB,GACnC2oB,EAAeG,QAAQ,CACrBpyD,MAAO2xD,EAAQh+D,GAAGqM,MAClBX,IAAKuyD,EAAStoB,GACdsoB,SAAUD,EAAQh+D,GAAGi+D,YAIrBA,EAASrkB,GAAKokB,EAAQx5B,GAAG94B,MAC3B4yD,EAAeA,EAAe1yD,OAAS,GAAGF,IAAMuyD,EAASrkB,GACzD0kB,EAAelyD,KAAK,CAClBC,MAAO4xD,EAASrkB,GAChBluC,IAAKsyD,EAAQx5B,GAAG94B,IAChBuyD,SAAUD,EAAQx5B,GAAGy5B,YAIpBriB,EAAI57C,EAAG47C,GAAKpX,EAAGoX,IAIlB,GAHAsiB,EAAcF,EAAQpiB,GACtBuiB,EAAmBD,EAAYD,cAEA79C,IAA3B+9C,EAAiBP,MAArB,CAIA,IAAIc,GAAO,EAEX,IAAK74B,EAAI7lC,EAAI,GAAI0+D,GAAQ74B,GAAK,GAAKm4B,EAAQn4B,GAAGx5B,OAAS8xD,EAAiBxoB,GAAI9P,IAC1E64B,EAAOV,EAAQn4B,GAAGo4B,WAAaE,EAGjC,IAAKt4B,EAAIrB,EAAI,GAAIk6B,GAAQ74B,EAAIm4B,EAAQpyD,QAAUoyD,EAAQn4B,GAAGn6B,KAAOyyD,EAAiBvkB,GAAI/T,IACpF64B,EAAOV,EAAQn4B,GAAGo4B,WAAaE,EAGjC,IAAKt4B,EAAI,GAAI64B,GAAQ74B,EAAIy4B,EAAe1yD,OAAQi6B,IAC9C64B,EAAOJ,EAAez4B,GAAGo4B,WAAaE,EAGnCO,IACHP,EAAiBP,MAAQQ,GAI7BrqC,MAAMpyB,UAAU0uB,OAAO7P,MAAMw9C,EAAS,CAACh+D,EAAGwkC,EAAIxkC,EAAI,GAAG2+D,OAAOL,OAE9DN,EAAQ5pC,SAAQ,SAAU8pC,GACxB,IAAIC,EAAmBD,EAAYD,cAEJ79C,IAA3B+9C,EAAiBP,QACnBO,EAAiBP,MAAQ/zD,KAAK2Y,IAAI5c,EAAOu4D,EAAiBxkB,QAKhE,SAASilB,GAAoB,YAC3BntC,EAAW,kBACXotC,EAAiB,UACjBxM,EAAS,SACT1jC,EAAQ,SACRmuC,EAAQ,oBACRgC,EAAmB,qBACnBC,IAEAp/D,KAAKq/D,aAAevtC,EACpB9xB,KAAKw8D,mBAAqB0C,EAC1Bl/D,KAAKs/D,WAAa5M,EAClB1yD,KAAK2G,UAAY+rD,EAAUnsD,cAC3BvG,KAAK47D,UAAY5sC,EACjBhvB,KAAKy7D,UAAY0B,GAAY,GAC7Bn9D,KAAKu/D,qBAAuBJ,GAAuB,GACnDn/D,KAAK08D,wBAA0B0C,EAC/Bp/D,KAAKo8D,yBAA2B51D,WAAWgzB,gBAAiBhzB,WAAWgzB,cAAcluB,SACrFtL,KAAKw/D,QAAU,KACfx/D,KAAKy/D,wBAA0B,KAC/Bz/D,KAAK0/D,0BAA4B,KACjC1/D,KAAK2/D,eAAiB,KACtB3/D,KAAK07D,mBAAqB,IAAIhnC,QAC9B10B,KAAKq9D,gBAAiB,EACtBr9D,KAAKk9D,WAAY,EACjBl9D,KAAKsqB,aAAc,EAAIpnB,EAAMG,2BAC7BrD,KAAK4/D,aAAe,KACpB5/D,KAAK+8D,QAAU,GAEf/8D,KAAKsqB,YAAYnF,QAAQwU,QAAQ,KAC3B35B,KAAK2/D,iBACP3/D,KAAK2/D,eAAev5D,OAAOH,MAAQ,EACnCjG,KAAK2/D,eAAev5D,OAAOF,OAAS,EACpClG,KAAK2/D,eAAiB,QAEvBv4D,MAAM,QA8MX,SAAS3C,EAAgBo7D,GACvB,IAAIp4C,EAAO,IAAIw3C,EAAoB,CACjCntC,YAAa+tC,EAAiB/tC,YAC9BotC,kBAAmBW,EAAiBX,kBACpCxM,UAAWmN,EAAiBnN,UAC5B1jC,SAAU6wC,EAAiB7wC,SAC3BmuC,SAAU0C,EAAiB1C,SAC3BgC,oBAAqBU,EAAiBV,oBACtCC,qBAAsBS,EAAiBT,uBAKzC,OAFA33C,EAAKq4C,QAAQD,EAAiBE,SAEvBt4C,EAGT,OA3NAw3C,EAAoBj9D,UAAY,CAC9B,cACE,OAAOhC,KAAKsqB,YAAYnF,SAG1B0N,OAAQ,WACN7yB,KAAKk9D,WAAY,EAEbl9D,KAAKw/D,UACPx/D,KAAKw/D,QAAQ3sC,OAAO,IAAI3vB,EAAMuN,eAAe,8BAE7CzQ,KAAKw/D,QAAU,MAGS,OAAtBx/D,KAAK4/D,eACPlwC,aAAa1vB,KAAK4/D,cAClB5/D,KAAK4/D,aAAe,MAGtB5/D,KAAKsqB,YAAYliB,OAAO,IAAI/B,MAAM,+BAGpC,cAAc0rB,EAAOiuC,GACnB,IAAK,IAAI3/D,EAAI,EAAG4/D,EAAMluC,EAAM9lB,OAAQ5L,EAAI4/D,EAAK5/D,IAC3CL,KAAKu/D,qBAAqB9yD,KAAKslB,EAAM1xB,GAAGigB,KAExCy6C,EAAW/6D,KAAM+xB,EAAM1xB,GAAI2/D,IAI/B,YAAY/E,GACV,MAAMC,EAAoBl7D,KAAK07D,mBAAmBz6D,IAAIg6D,GAEtD,GAAIC,EAAkBpX,aACpB,OAGF,IAAI15C,EAAY,GAEhB,GAAsC,IAAlC8wD,EAAkBC,YAAmB,CACvC,MAAM,SACJ50B,EAAQ,WACR7F,GACEu6B,EAAQ76B,MAERmG,IAAavmC,KAAKy/D,yBAA2B/+B,IAAe1gC,KAAK0/D,4BACnE1/D,KAAK2/D,eAAexhD,KAAO,GAAGooB,KAAY7F,IAC1C1gC,KAAKy/D,wBAA0Bl5B,EAC/BvmC,KAAK0/D,0BAA4Bh/B,GAGnC,MAAM,MACJz6B,GACEjG,KAAK2/D,eAAe7rB,YAAYmnB,EAAQnpC,aAExC7rB,EAAQ,IACVi1D,EAAkB7xD,MAAQ6xD,EAAkBC,YAAcl1D,EAC1DmE,EAAY,UAAU8wD,EAAkB7xD,UAIZ,IAA5B6xD,EAAkBl3B,QACpB55B,EAAY,UAAU8wD,EAAkBl3B,aAAa55B,KAGnDA,EAAU6B,OAAS,IACjBjM,KAAK08D,wBACPxB,EAAkBE,kBAAoBhxD,GAGxC6wD,EAAQ76B,MAAMh2B,UAAYA,GAG5BpK,KAAK07D,mBAAmBh6C,IAAIu5C,EAASC,GAErCl7D,KAAKs/D,WAAW1xD,YAAYqtD,IAG9B6E,QAAS,SAA0BC,GACjC,MAAM96C,GAAa,EAAI/hB,EAAMG,2BAC7B,IAAI28D,EAAal/D,OAAOY,OAAO,MAE/B,MAAM0E,EAASpG,KAAK2G,UAAUC,cAAc,UAO5C,GALAR,EAAO85D,WAAY,EACnBlgE,KAAK2/D,eAAiBv5D,EAAOS,WAAW,KAAM,CAC5CwlC,OAAO,IAGLrsC,KAAKq/D,aAAc,CACrB,MAAMc,EAAYngE,KAAKq/D,aAAattC,MAC9BquC,EAAapgE,KAAKq/D,aAAa9sC,OAErCvyB,KAAKqgE,cAAcF,EAAWC,GAE9Bn7C,EAAW9c,cACN,KAAInI,KAAKw8D,mBAsBd,MAAM,IAAIn2D,MAAM,uEAtBkB,CAClC,MAAM6rB,EAAO,KACXlyB,KAAKw/D,QAAQptC,OAAO5qB,KAAK,EACvBnG,QACAgxB,WAEIA,EACFpN,EAAW9c,WAIbrH,OAAOwxB,OAAO0tC,EAAY3+D,EAAMkxB,QAEhCvyB,KAAKqgE,cAAch/D,EAAM0wB,MAAOiuC,GAEhC9tC,MACCjN,EAAW7c,SAGhBpI,KAAKw/D,QAAUx/D,KAAKw8D,mBAAmBhqC,YACvCN,KAKFjN,EAAWE,QAAQ3d,KAAK,KACtBw4D,EAAa,KAERD,EAGH//D,KAAK4/D,aAAevsC,WAAW,KAC7BygC,EAAO9zD,MACPA,KAAK4/D,aAAe,MACnBG,GALHjM,EAAO9zD,OAORA,KAAKsqB,YAAYliB,SAEtBk4D,eAAgB,SAAkCC,GAChD,IAAKvgE,KAAK08D,wBAA0B18D,KAAKq9D,eACvC,OAGmB,OAAjBr9D,KAAK+8D,UACPS,EAAOx9D,MACPA,KAAK+8D,QAAU,MAGjB,MAAMyD,EAAe,GACfC,EAAa,GAEnB,IAAK,IAAIpgE,EAAI,EAAGolB,EAAKzlB,KAAKy7D,UAAUxvD,OAAQ5L,EAAIolB,EAAIplB,IAAK,CACvD,MAAM8/B,EAAMngC,KAAKy7D,UAAUp7D,GAErBqgE,EAAW1gE,KAAK07D,mBAAmBz6D,IAAIk/B,GAEzCugC,EAAS5c,eAITyc,GACFC,EAAav0D,OAAS,EACtBw0D,EAAWx0D,OAAS,EAEhBy0D,EAAStF,mBACXoF,EAAa/zD,KAAKi0D,EAAStF,mBAGzBsF,EAASlF,WAAa,GACxBiF,EAAWh0D,KAAQi0D,EAASlF,WAAZ,MAChBgF,EAAa/zD,KAAK,eAAei0D,EAASlF,kBAE1CiF,EAAWh0D,KAAK,GAGdi0D,EAASnF,aAAe,EAC1BkF,EAAWh0D,KAAQi0D,EAASnF,aAAemF,EAASr3D,MAApC,MAEhBo3D,EAAWh0D,KAAK,GAGdi0D,EAASrF,cAAgB,EAC3BoF,EAAWh0D,KAAQi0D,EAASrF,cAAZ,MAEhBoF,EAAWh0D,KAAK,GAGdi0D,EAASpF,YAAc,GACzBmF,EAAWh0D,KAAQi0D,EAASpF,YAAcoF,EAASr3D,MAAnC,MAChBm3D,EAAa/zD,KAAK,eAAei0D,EAASpF,YAAcoF,EAASr3D,aAEjEo3D,EAAWh0D,KAAK,GAGlB0zB,EAAIC,MAAMugC,QAAUF,EAAWzzD,KAAK,KAEhCwzD,EAAav0D,SACfk0B,EAAIC,MAAMh2B,UAAYo2D,EAAaxzD,KAAK,QAG1CmzB,EAAIC,MAAMugC,QAAU,KACpBxgC,EAAIC,MAAMh2B,UAAYs2D,EAAStF,uBAsBhC32D,EAvqBa,GA0qBtB7E,EAAQ6E,gBAAkBA,GAIpB,SAAU9E,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQ+E,iBAAc,EAEtB,IAAIzB,EAAQ/C,EAAoB,GAE5BiC,EAAiBjC,EAAoB,GAErCwmB,EAAWxmB,EAAoB,GAEnC,IAAIwE,EAAc,WAChB,MAAM,IAAI0B,MAAM,iCAGlBzG,EAAQ+E,YAAcA,EACtB,CACE,MAAMi8D,EAAe,CACnBjK,UAAW,SACXD,WAAY,SACZtvB,UAAW,WAEPy5B,EAAS,uCACTC,EAAW,+BACX/yB,EAAkB,CAAC,OAAQ,QAAS,UACpCC,EAAmB,CAAC,QAAS,QAAS,SAEtC+yB,EAAsB,WAC1B,MAAMC,EAAa,IAAIl5D,WAAW,CAAC,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KACvEm5D,EAAqB,GACrBC,EAAW,IAAIx7B,WAAW,KAEhC,IAAK,IAAIrlC,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC5B,IAAII,EAAIJ,EAER,IAAK,IAAIk3C,EAAI,EAAGA,EAAI,EAAGA,IAEnB92C,EADM,EAAJA,EACE,WAAaA,GAAK,EAAI,WAEtBA,GAAK,EAAI,WAIjBygE,EAAS7gE,GAAKI,EAGhB,SAAS0gE,EAAM5/C,EAAM7U,EAAOX,GAC1B,IAAIq1D,GAAO,EAEX,IAAK,IAAI/gE,EAAIqM,EAAOrM,EAAI0L,EAAK1L,IAAK,CAChC,MAAM2iB,EAAsB,KAAjBo+C,EAAM7/C,EAAKlhB,IAChB+hB,EAAI8+C,EAASl+C,GACnBo+C,EAAMA,IAAQ,EAAIh/C,EAGpB,OAAc,EAAPg/C,EAGT,SAASC,EAAcl4D,EAAMw3B,EAAMpf,EAAM0d,GACvC,IAAI/8B,EAAI+8B,EACR,MAAMghC,EAAMt/B,EAAK10B,OACjBsV,EAAKrf,GAAK+9D,GAAO,GAAK,IACtB1+C,EAAKrf,EAAI,GAAK+9D,GAAO,GAAK,IAC1B1+C,EAAKrf,EAAI,GAAK+9D,GAAO,EAAI,IACzB1+C,EAAKrf,EAAI,GAAW,IAAN+9D,EACd/9D,GAAK,EACLqf,EAAKrf,GAA0B,IAArBiH,EAAK+X,WAAW,GAC1BK,EAAKrf,EAAI,GAA0B,IAArBiH,EAAK+X,WAAW,GAC9BK,EAAKrf,EAAI,GAA0B,IAArBiH,EAAK+X,WAAW,GAC9BK,EAAKrf,EAAI,GAA0B,IAArBiH,EAAK+X,WAAW,GAC9Bhf,GAAK,EACLqf,EAAKG,IAAIif,EAAMz+B,GACfA,GAAKy+B,EAAK10B,OACV,MAAMm1D,EAAMD,EAAM5/C,EAAM0d,EAAS,EAAG/8B,GACpCqf,EAAKrf,GAAKk/D,GAAO,GAAK,IACtB7/C,EAAKrf,EAAI,GAAKk/D,GAAO,GAAK,IAC1B7/C,EAAKrf,EAAI,GAAKk/D,GAAO,EAAI,IACzB7/C,EAAKrf,EAAI,GAAW,IAANk/D,EAGhB,SAASE,EAAQ//C,EAAM7U,EAAOX,GAC5B,IAAIiX,EAAI,EACJZ,EAAI,EAER,IAAK,IAAI/hB,EAAIqM,EAAOrM,EAAI0L,IAAO1L,EAC7B2iB,GAAKA,GAAe,IAAVzB,EAAKlhB,KAAc,MAC7B+hB,GAAKA,EAAIY,GAAK,MAGhB,OAAOZ,GAAK,GAAKY,EAGnB,SAASu+C,EAAYC,GACnB,IAAK76C,EAAS/hB,SACZ,OAAO68D,EAAwBD,GAGjC,IACE,IAAIvzD,EAGFA,EADEM,SAAS0X,QAAQC,SAASogC,OAAS,EAC7Bkb,EAEAE,OAAOva,KAAKqa,GAGtB,MAAMG,EAAS,oBAAQ,GAAQJ,YAAYtzD,EAAO,CAChDmR,MAAO,IAGT,OAAOuiD,aAAkB75D,WAAa65D,EAAS,IAAI75D,WAAW65D,GAC9D,MAAOhiD,IACP,EAAIzc,EAAMoJ,MAAM,gEAAkEqT,GAGpF,OAAO8hD,EAAwBD,GAGjC,SAASC,EAAwBD,GAC/B,IAAIvB,EAAMuB,EAASv1D,OACnB,MAAM21D,EAAiB,MACjBC,EAAgB33D,KAAKmjC,KAAK4yB,EAAM2B,GAChCE,EAAO,IAAIh6D,WAAW,EAAIm4D,EAAsB,EAAhB4B,EAAoB,GAC1D,IAAI7c,EAAK,EACT8c,EAAK9c,KAAQ,IACb8c,EAAK9c,KAAQ,IACb,IAAI1jC,EAAM,EAEV,MAAO2+C,EAAM2B,EACXE,EAAK9c,KAAQ,EACb8c,EAAK9c,KAAQ,IACb8c,EAAK9c,KAAQ,IACb8c,EAAK9c,KAAQ,EACb8c,EAAK9c,KAAQ,EACb8c,EAAKpgD,IAAI8/C,EAASvgD,SAASK,EAAKA,EAAMsgD,GAAiB5c,GACvDA,GAAM4c,EACNtgD,GAAOsgD,EACP3B,GAAO2B,EAGTE,EAAK9c,KAAQ,EACb8c,EAAK9c,KAAc,IAANib,EACb6B,EAAK9c,KAAQib,GAAO,EAAI,IACxB6B,EAAK9c,KAAe,KAANib,EACd6B,EAAK9c,MAAgB,OAANib,IAAiB,EAAI,IACpC6B,EAAKpgD,IAAI8/C,EAASvgD,SAASK,GAAM0jC,GACjCA,GAAMwc,EAASv1D,OAASqV,EACxB,MAAMygD,EAAQT,EAAQE,EAAU,EAAGA,EAASv1D,QAK5C,OAJA61D,EAAK9c,KAAQ+c,GAAS,GAAK,IAC3BD,EAAK9c,KAAQ+c,GAAS,GAAK,IAC3BD,EAAK9c,KAAQ+c,GAAS,EAAI,IAC1BD,EAAK9c,KAAgB,IAAR+c,EACND,EAGT,SAASE,EAAOp9B,EAASwF,EAAM9kB,EAAiB28C,GAC9C,MAAMh8D,EAAQ2+B,EAAQ3+B,MAChBC,EAAS0+B,EAAQ1+B,OACvB,IAAIg8D,EAAUC,EAAWh9B,EACzB,MAAM3kB,EAAQokB,EAAQrjB,KAEtB,OAAQ6oB,GACN,KAAKlnC,EAAMwN,UAAU8B,eACnB2vD,EAAY,EACZD,EAAW,EACX/8B,EAAWl/B,EAAQ,GAAK,EACxB,MAEF,KAAK/C,EAAMwN,UAAU+B,UACnB0vD,EAAY,EACZD,EAAW,EACX/8B,EAAmB,EAARl/B,EACX,MAEF,KAAK/C,EAAMwN,UAAUgC,WACnByvD,EAAY,EACZD,EAAW,EACX/8B,EAAmB,EAARl/B,EACX,MAEF,QACE,MAAM,IAAII,MAAM,kBAGpB,MAAMm7D,EAAW,IAAI15D,YAAY,EAAIq9B,GAAYj/B,GACjD,IAAIk8D,EAAiB,EACjBC,EAAc,EAElB,IAAK,IAAI93D,EAAI,EAAGA,EAAIrE,IAAUqE,EAC5Bi3D,EAASY,KAAoB,EAC7BZ,EAAS9/C,IAAIlB,EAAMS,SAASohD,EAAaA,EAAcl9B,GAAWi9B,GAClEC,GAAel9B,EACfi9B,GAAkBj9B,EAGpB,GAAIiF,IAASlnC,EAAMwN,UAAU8B,gBAAkByvD,EAAQ,CACrDG,EAAiB,EAEjB,IAAK,IAAI73D,EAAI,EAAGA,EAAIrE,EAAQqE,IAAK,CAC/B63D,IAEA,IAAK,IAAI/hE,EAAI,EAAGA,EAAI8kC,EAAU9kC,IAC5BmhE,EAASY,MAAqB,KAKpC,MAAME,EAAO,IAAIx6D,WAAW,CAAC7B,GAAS,GAAK,IAAMA,GAAS,GAAK,IAAMA,GAAS,EAAI,IAAc,IAARA,EAAcC,GAAU,GAAK,IAAMA,GAAU,GAAK,IAAMA,GAAU,EAAI,IAAe,IAATA,EAAeg8D,EAAUC,EAAW,EAAM,EAAM,IAC9ML,EAAOP,EAAYC,GACnBe,EAAYvB,EAAW/0D,OAA8B,EAArBg1D,EAAyBqB,EAAKr2D,OAAS61D,EAAK71D,OAC5EsV,EAAO,IAAIzZ,WAAWy6D,GAC5B,IAAItjC,EAAS,EAQb,OAPA1d,EAAKG,IAAIs/C,EAAY/hC,GACrBA,GAAU+hC,EAAW/0D,OACrBo1D,EAAc,OAAQiB,EAAM/gD,EAAM0d,GAClCA,GAAUgiC,EAAqBqB,EAAKr2D,OACpCo1D,EAAc,QAASS,EAAMvgD,EAAM0d,GACnCA,GAAUgiC,EAAqBa,EAAK71D,OACpCo1D,EAAc,OAAQ,IAAIv5D,WAAW,GAAIyZ,EAAM0d,IACxC,EAAI/7B,EAAME,iBAAiBme,EAAM,YAAa+D,GAGvD,OAAO,SAA6Bsf,EAAStf,EAAiB28C,GAC5D,MAAM73B,OAAwB3pB,IAAjBmkB,EAAQwF,KAAqBlnC,EAAMwN,UAAU8B,eAAiBoyB,EAAQwF,KACnF,OAAO43B,EAAOp9B,EAASwF,EAAM9kB,EAAiB28C,IArMtB,GAyM5B,MAAMO,EACJ,cACExiE,KAAKwmC,cAAgB,EACrBxmC,KAAK02D,WAAakK,EAAalK,WAC/B12D,KAAKumC,SAAW,EAChBvmC,KAAKymC,WAAavjC,EAAMkO,gBACxBpR,KAAK2mC,WAAazjC,EAAMmO,qBACxBrR,KAAK4mC,QAAU,EACf5mC,KAAKknC,kBAAoBhkC,EAAMoN,kBAAkBwB,KACjD9R,KAAK0mC,gBAAkB,EACvB1mC,KAAKsK,EAAI,EACTtK,KAAKuK,EAAI,EACTvK,KAAK6mC,MAAQ,EACb7mC,KAAK8mC,MAAQ,EACb9mC,KAAK+mC,YAAc,EACnB/mC,KAAKgnC,YAAc,EACnBhnC,KAAKinC,WAAa,EAClBjnC,KAAKmnC,SAAW,EAChBnnC,KAAKonC,UAAYw5B,EAAax5B,UAC9BpnC,KAAKqnC,YAAc,UACnBrnC,KAAKunC,UAAY,EACjBvnC,KAAKwnC,YAAc,EACnBxnC,KAAKynC,UAAY,EACjBznC,KAAK8rC,SAAW,GAChB9rC,KAAK6rC,QAAU,GACf7rC,KAAK+rC,WAAa,EAClB/rC,KAAKqvC,UAAY,GACjBrvC,KAAKsvC,UAAY,EACjBtvC,KAAKyiE,aAAe,GACpBziE,KAAK0iE,cAAgB,KACrB1iE,KAAK2iE,UAAY,KACjB3iE,KAAK4iE,OAAS,GAGhB,QACE,OAAO9hE,OAAOY,OAAO1B,MAGvB,gBAAgBsK,EAAGC,GACjBvK,KAAKsK,EAAIA,EACTtK,KAAKuK,EAAIA,GAKb,SAASs4D,EAAaC,GACpB,IAAIC,EAAS,GACb,MAAMlpB,EAAM,GAEZ,IAAK,MAAMmpB,KAAiBF,EACD,SAArBE,EAAcC,GAWO,YAArBD,EAAcC,GAChBF,EAASlpB,EAAI9V,MAEbg/B,EAAOt2D,KAAKu2D,IAbZD,EAAOt2D,KAAK,CACVkiC,KAAM,GACNs0B,GAAI,QACJlxC,MAAO,KAET8nB,EAAIptC,KAAKs2D,GACTA,EAASA,EAAOA,EAAO92D,OAAS,GAAG8lB,OAWvC,OAAOgxC,EAGT,SAASG,EAAG7hE,GACV,GAAIge,OAAOC,UAAUje,GACnB,OAAOA,EAAMqjB,WAGf,MAAMviB,EAAId,EAAM8hE,QAAQ,IACxB,IAAI9iE,EAAI8B,EAAE8J,OAAS,EAEnB,GAAa,MAAT9J,EAAE9B,GACJ,OAAO8B,EAGT,GACE9B,UACgB,MAAT8B,EAAE9B,IAEX,OAAO8B,EAAE+J,UAAU,EAAY,MAAT/J,EAAE9B,GAAaA,EAAIA,EAAI,GAG/C,SAAS+iE,EAAG5iE,GACV,GAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GAAU,CAC5B,GAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GAClB,OAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GACX,GAGF,SAAS0iE,EAAG1iE,EAAE,OAAO0iE,EAAG1iE,EAAE,OAGnC,GAAIA,EAAE,KAAOA,EAAE,IAAMA,EAAE,MAAQA,EAAE,GAAI,CACnC,MAAMwiB,EAAsB,IAAlB9Y,KAAKm5D,KAAK7iE,EAAE,IAAY0J,KAAK6xD,GACvC,MAAO,UAAUmH,EAAGlgD,YAGtB,GAAa,IAATxiB,EAAE,IAAqB,IAATA,EAAE,IAAqB,IAATA,EAAE,IAAqB,IAATA,EAAE,GAC9C,MAAO,aAAa0iE,EAAG1iE,EAAE,OAAO0iE,EAAG1iE,EAAE,OAIzC,MAAO,UAAU0iE,EAAG1iE,EAAE,OAAO0iE,EAAG1iE,EAAE,OAAO0iE,EAAG1iE,EAAE,OAAO0iE,EAAG1iE,EAAE,OAAO0iE,EAAG1iE,EAAE,OAAY0iE,EAAG1iE,EAAE,IAAR,IAGjF,IAAI8iE,EAAY,EACZC,EAAY,EACZC,EAAe,EACnB5jE,EAAQ+E,YAAcA,EAAc,MAClC,YAAYspB,EAAYC,EAAM5I,GAAkB,GAC9CtlB,KAAKyyD,WAAa,IAAIrwD,EAAemD,cACrCvF,KAAKohC,QAAU,IAAIohC,EACnBxiE,KAAKyjE,gBAAkBvgE,EAAMkO,gBAC7BpR,KAAK0jE,eAAiB,GACtB1jE,KAAK2jE,WAAa,GAClB3jE,KAAKiuB,WAAaA,EAClBjuB,KAAKkuB,KAAOA,EACZluB,KAAKmoC,YAAc,KACnBnoC,KAAKooC,eAAgB,EACrBpoC,KAAK4jE,YAAa,EAClB5jE,KAAK6jE,cAAgB/iE,OAAOY,OAAO,MACnC1B,KAAK8jE,SAAW,KAChB9jE,KAAKslB,kBAAoBA,EACzBtlB,KAAK+jE,mBAAqB,GAE1B,IAAK,MAAM51B,KAAMjrC,EAAMO,IACrBzD,KAAK+jE,mBAAmB7gE,EAAMO,IAAI0qC,IAAOA,EAI7C,OACEnuC,KAAK0jE,eAAej3D,KAAKzM,KAAKyjE,iBAC9B,MAAM5/B,EAAM7jC,KAAKohC,QACjBphC,KAAK2jE,WAAWl3D,KAAKo3B,GACrB7jC,KAAKohC,QAAUyC,EAAIgE,QAGrB,UACE7nC,KAAKyjE,gBAAkBzjE,KAAK0jE,eAAe3/B,MAC3C/jC,KAAKohC,QAAUphC,KAAK2jE,WAAW5/B,MAC/B/jC,KAAKmoC,YAAc,KACnBnoC,KAAKgkE,KAAO,KAGd,MAAMjyC,GACJ/xB,KAAK6Y,OACL7Y,KAAKikE,cAAclyC,GACnB/xB,KAAK8Y,UAGP,iBAAiBkX,GACf,MAAMC,EAAUD,EAAaC,QACvBC,EAAYF,EAAaE,UAE/B,IAAK,IAAI7vB,EAAI,EAAGolB,EAAKwK,EAAQhkB,OAAQ5L,EAAIolB,EAAIplB,IAC3C,GAAI4vB,EAAQ5vB,KAAO6C,EAAMO,IAAI2U,WAI7B,IAAK,MAAM2H,KAAOmQ,EAAU7vB,GAAI,CAC9B,MAAM2uC,EAAWjvB,EAAIkvB,WAAW,MAAQjvC,KAAKiuB,WAAajuB,KAAKkuB,KACzD/I,EAAU,IAAIjd,QAAQC,IAC1B6mC,EAAS/tC,IAAI8e,EAAK5X,KAEpBnI,KAAKohC,QAAQqhC,aAAah2D,KAAK0Y,GAInC,OAAOjd,QAAQ4hB,IAAI9pB,KAAKohC,QAAQqhC,cAGlC,UAAUz/C,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,GACvB,MAAM+/B,EAAkB,CAACzgD,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,GACxC1jC,KAAKyjE,gBAAkBvgE,EAAMc,KAAKoG,UAAUpK,KAAKyjE,gBAAiBA,GAClEzjE,KAAKgkE,KAAO,KAGd,OAAOh0C,EAAchB,GACnBhvB,KAAKgvB,SAAWA,EAEhB,MAAMk1C,EAAalkE,KAAKk2B,YAAYlH,GAEpC,OAAOhvB,KAAKmkE,iBAAiBn0C,GAAcxoB,KAAK,KAC9CxH,KAAKyjE,gBAAkBvgE,EAAMkO,gBAC7BpR,KAAKikE,cAAcjkE,KAAKokE,cAAcp0C,IAC/Bk0C,IAIX,cAAcl0C,GACZ,MAAMq0C,EAAoBrkE,KAAK+jE,mBACzB7zC,EAAYF,EAAaE,UACzBD,EAAUD,EAAaC,QACvB6yC,EAAS,GAEf,IAAK,IAAIziE,EAAI,EAAGolB,EAAKwK,EAAQhkB,OAAQ5L,EAAIolB,EAAIplB,IAAK,CAChD,MAAMsuC,EAAO1e,EAAQ5vB,GACrByiE,EAAOr2D,KAAK,CACVkiC,OACAs0B,GAAIoB,EAAkB11B,GACtBzb,KAAMhD,EAAU7vB,KAIpB,OAAOwiE,EAAaC,GAGtB,cAAcC,GACZ,IAAK,MAAMuB,KAAiBvB,EAAQ,CAClC,MAAME,EAAKqB,EAAcrB,GACnBt0B,EAAO21B,EAAc31B,KACrBzb,EAAOoxC,EAAcpxC,KAE3B,OAAe,EAAPyb,GACN,KAAKzrC,EAAMO,IAAIwW,UACbja,KAAKia,YACL,MAEF,KAAK/W,EAAMO,IAAI2U,WACb,MAEF,KAAKlV,EAAMO,IAAI6W,WACbta,KAAKsa,WAAW4Y,GAChB,MAEF,KAAKhwB,EAAMO,IAAIkX,mBACb3a,KAAK2a,mBAAmBuY,EAAK,GAAIA,EAAK,IACtC,MAEF,KAAKhwB,EAAMO,IAAI8W,QACbva,KAAKua,QAAQ2Y,GACb,MAEF,KAAKhwB,EAAMO,IAAIqX,SACb9a,KAAK8a,SAASoY,EAAK,IACnB,MAEF,KAAKhwB,EAAMO,IAAIsX,eACb/a,KAAK8a,SAASoY,EAAK,IACnB,MAEF,KAAKhwB,EAAMO,IAAIyW,QACbla,KAAKka,UACL,MAEF,KAAKhX,EAAMO,IAAIiX,SACb1a,KAAK0a,SAASwY,EAAK,GAAIA,EAAK,IAC5B,MAEF,KAAKhwB,EAAMO,IAAI0W,eACbna,KAAKma,eAAe+Y,EAAK,IACzB,MAEF,KAAKhwB,EAAMO,IAAI2W,eACbpa,KAAKoa,eAAe8Y,EAAK,IACzB,MAEF,KAAKhwB,EAAMO,IAAI4W,UACbra,KAAKqa,UAAU6Y,EAAK,IACpB,MAEF,KAAKhwB,EAAMO,IAAImX,cACb5a,KAAK4a,cAAcsY,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACrE,MAEF,KAAKhwB,EAAMO,IAAIgX,YACbza,KAAKya,YAAYyY,EAAK,IACtB,MAEF,KAAKhwB,EAAMO,IAAI+W,qBACbxa,KAAKwa,qBAAqB0Y,EAAK,IAC/B,MAEF,KAAKhwB,EAAMO,IAAI4U,aACbrY,KAAKqY,aAAa6a,EAAK,IACvB,MAEF,KAAKhwB,EAAMO,IAAI8U,YACbvY,KAAKuY,YAAY2a,EAAK,IACtB,MAEF,KAAKhwB,EAAMO,IAAI6U,WACbtY,KAAKsY,WAAW4a,EAAK,IACrB,MAEF,KAAKhwB,EAAMO,IAAI+U,cACbxY,KAAKwY,cAAc0a,EAAK,IACxB,MAEF,KAAKhwB,EAAMO,IAAIoY,gBACb7b,KAAK6b,gBAAgBqX,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC5C,MAEF,KAAKhwB,EAAMO,IAAImY,kBACb5b,KAAK4b,kBAAkBsX,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC9C,MAEF,KAAKhwB,EAAMO,IAAI8X,gBACbvb,KAAKub,gBAAgB2X,GACrB,MAEF,KAAKhwB,EAAMO,IAAIgY,cACbzb,KAAKyb,cAAcyX,GACnB,MAEF,KAAKhwB,EAAMO,IAAIuY,YACbhc,KAAKgc,YAAYkX,EAAK,IACtB,MAEF,KAAKhwB,EAAMO,IAAIgV,QACbzY,KAAKyY,QAAQya,EAAK,GAAIA,EAAK,IAC3B,MAEF,KAAKhwB,EAAMO,IAAIiV,mBACb1Y,KAAK0Y,mBAAmBwa,EAAK,IAC7B,MAEF,KAAKhwB,EAAMO,IAAIkV,YACb3Y,KAAK2Y,YAAYua,EAAK,IACtB,MAEF,KAAKhwB,EAAMO,IAAImV,UACb5Y,KAAK4Y,UAAUsa,EAAK,IACpB,MAEF,KAAKhwB,EAAMO,IAAI+V,KACbxZ,KAAKwZ,OACL,MAEF,KAAKtW,EAAMO,IAAIgW,OACbzZ,KAAKyZ,SACL,MAEF,KAAKvW,EAAMO,IAAI6V,OACbtZ,KAAKsZ,SACL,MAEF,KAAKpW,EAAMO,IAAIiW,WACb1Z,KAAK0Z,aACL,MAEF,KAAKxW,EAAMO,IAAIkW,aACb3Z,KAAK2Z,eACL,MAEF,KAAKzW,EAAMO,IAAIsW,KACb/Z,KAAK+Z,KAAK,WACV,MAEF,KAAK7W,EAAMO,IAAIuW,OACbha,KAAK+Z,KAAK,WACV,MAEF,KAAK7W,EAAMO,IAAIma,yBACb5d,KAAK4d,2BACL,MAEF,KAAK1a,EAAMO,IAAI8Z,kBACbvd,KAAKud,kBAAkB2V,EAAK,IAC5B,MAEF,KAAKhwB,EAAMO,IAAI+Z,wBACbxd,KAAKwd,wBAAwB0V,EAAK,IAClC,MAEF,KAAKhwB,EAAMO,IAAI4Z,sBACbrd,KAAKqd,sBAAsB6V,EAAK,IAChC,MAEF,KAAKhwB,EAAMO,IAAImZ,sBACb5c,KAAK4c,sBAAsBsW,EAAK,GAAIA,EAAK,IACzC,MAEF,KAAKhwB,EAAMO,IAAIoZ,oBACb7c,KAAK6c,sBACL,MAEF,KAAK3Z,EAAMO,IAAI2V,UACbpZ,KAAKoZ,YACL,MAEF,KAAKlW,EAAMO,IAAI8V,YACbvZ,KAAKuZ,cACL,MAEF,KAAKrW,EAAMO,IAAImW,gBACb5Z,KAAK4Z,kBACL,MAEF,KAAK1W,EAAMO,IAAIoW,kBACb7Z,KAAK6Z,oBACL,MAEF,KAAK3W,EAAMO,IAAIoX,SACb7a,KAAK6a,WACL,MAEF,KAAK3X,EAAMO,IAAI2G,UACbpK,KAAKoK,UAAU8oB,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACjE,MAEF,KAAKhwB,EAAMO,IAAIoa,cACb7d,KAAK6d,cAAcqV,EAAK,GAAIA,EAAK,IACjC,MAEF,KAAKhwB,EAAMO,IAAIqW,QACb9Z,KAAK8Z,UACL,MAEF,KAAK,GACH9Z,KAAKm2C,MAAMmuB,EAAcvyC,OACzB,MAEF,SACE,EAAI7uB,EAAMoJ,MAAM,0BAA0B22D,GAC1C,QAKR,eAAej8B,GACbhnC,KAAKohC,QAAQ4F,YAAcA,EAG7B,eAAeD,GACb/mC,KAAKohC,QAAQ2F,YAAcA,EAG7B,WACE/mC,KAAK0a,SAAS,EAAG1a,KAAKohC,QAAQwF,SAGhC,cAAc5jB,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,GAC3B,MAAMtC,EAAUphC,KAAKohC,QACrBA,EAAQqF,WAAarF,EAAQmjC,WAAa,CAACvhD,EAAGZ,EAAG3hB,EAAGC,EAAGif,EAAG+jB,GAC1DtC,EAAQsF,gBAAkBx8B,KAAKgZ,KAAKF,EAAIA,EAAIZ,EAAIA,GAChDgf,EAAQ92B,EAAI82B,EAAQyF,MAAQ,EAC5BzF,EAAQ72B,EAAI62B,EAAQ0F,MAAQ,EAC5B1F,EAAQojC,QAAU,GAClBpjC,EAAQqjC,QAAU,GAClBrjC,EAAQsjC,MAAQ1kE,KAAKyyD,WAAW7rD,cAAc,aAC9Cw6B,EAAQsjC,MAAMC,eAAe,KAAM,cAAevjC,EAAQV,YAC1DU,EAAQsjC,MAAMC,eAAe,KAAM,YAAgBzB,EAAG9hC,EAAQmF,UAAd,MAChDnF,EAAQsjC,MAAMC,eAAe,KAAM,IAAKzB,GAAI9hC,EAAQ72B,IACpD62B,EAAQwjC,WAAa5kE,KAAKyyD,WAAW7rD,cAAc,YACnDw6B,EAAQwjC,WAAWh3D,YAAYwzB,EAAQsjC,OAGzC,YACE,MAAMtjC,EAAUphC,KAAKohC,QACrBA,EAAQ92B,EAAI82B,EAAQyF,MAAQ,EAC5BzF,EAAQ72B,EAAI62B,EAAQ0F,MAAQ,EAC5B1F,EAAQqF,WAAavjC,EAAMkO,gBAC3BgwB,EAAQmjC,WAAarhE,EAAMkO,gBAC3BgwB,EAAQsF,gBAAkB,EAC1BtF,EAAQsjC,MAAQ1kE,KAAKyyD,WAAW7rD,cAAc,aAC9Cw6B,EAAQwjC,WAAa5kE,KAAKyyD,WAAW7rD,cAAc,YACnDw6B,EAAQyjC,OAAS7kE,KAAKyyD,WAAW7rD,cAAc,SAC/Cw6B,EAAQojC,QAAU,GAClBpjC,EAAQqjC,QAAU,GAGpB,SAASn6D,EAAGC,GACV,MAAM62B,EAAUphC,KAAKohC,QACrBA,EAAQ92B,EAAI82B,EAAQyF,OAASv8B,EAC7B82B,EAAQ72B,EAAI62B,EAAQ0F,OAASv8B,EAC7B62B,EAAQojC,QAAU,GAClBpjC,EAAQqjC,QAAU,GAClBrjC,EAAQsjC,MAAQ1kE,KAAKyyD,WAAW7rD,cAAc,aAC9Cw6B,EAAQsjC,MAAMC,eAAe,KAAM,cAAevjC,EAAQV,YAC1DU,EAAQsjC,MAAMC,eAAe,KAAM,YAAgBzB,EAAG9hC,EAAQmF,UAAd,MAChDnF,EAAQsjC,MAAMC,eAAe,KAAM,IAAKzB,GAAI9hC,EAAQ72B,IAGtD,SAAS+nC,GACP,MAAMlR,EAAUphC,KAAKohC,QACfjjB,EAAOijB,EAAQjjB,KACfooB,EAAWnF,EAAQmF,SAEzB,GAAiB,IAAbA,EACF,OAGF,MAAMC,EAAgBpF,EAAQoF,cACxBO,EAAc3F,EAAQ2F,YACtBC,EAAc5F,EAAQ4F,YACtByK,EAAgBrQ,EAAQqQ,cACxBxK,EAAa7F,EAAQ6F,WAAawK,EAClCgB,EAAWt0B,EAAKs0B,SAChBC,EAAaD,EAAW,GAAK,EAC7BE,EAAkBx0B,EAAKw0B,gBACvBC,EAAoBrM,EAAWnF,EAAQuF,WAAW,GACxD,IAAIr8B,EAAI,EAER,IAAK,MAAMyoC,KAAST,EAAQ,CAC1B,GAAc,OAAVS,EAAgB,CAClBzoC,GAAKmnC,EAAgBzK,EACrB,SACK,IAAI,EAAI9jC,EAAMyM,OAAOojC,GAAQ,CAClCzoC,GAAKooC,EAAaK,EAAQxM,EAAW,IACrC,SAGF,MAAM+K,GAAWyB,EAAMU,QAAUzM,EAAc,GAAKD,EAC9C7F,EAAY6R,EAAMW,SACxB,IAAIV,EAASC,EA2BTM,EA1BAttC,EAAQ8sC,EAAM9sC,MAElB,GAAIwsC,EAAU,CACZ,IAAIY,EACJ,MAAMD,EAAUL,EAAMK,SAAWT,EACjCU,EAAKN,EAAMK,QAAUA,EAAQ,GAAa,GAARntC,EAClCotC,GAAMA,EAAKT,EACX,MAAMU,EAAKF,EAAQ,GAAKR,EACxB3sC,EAAQmtC,GAAWA,EAAQ,GAAKntC,EAChC+sC,EAAUK,EAAK7M,EACfyM,GAAW3oC,EAAIgpC,GAAM9M,OAErBwM,EAAU1oC,EAAIk8B,EACdyM,EAAU,GAGRF,EAAMkB,UAAY91B,EAAKsf,eACzB2D,EAAQojC,QAAQ/3D,KAAK20B,EAAQ92B,EAAI0oC,GAE7BP,GACFrR,EAAQqjC,QAAQh4D,MAAM20B,EAAQ72B,EAAI0oC,GAGpC7R,EAAQsjC,MAAM5yC,aAAeoP,GAM7BqS,EADEd,EACUxsC,EAAQ2sC,EAAoBtB,EAAUG,EAEtCxrC,EAAQ2sC,EAAoBtB,EAAUG,EAGpDnnC,GAAKipC,EAGPnS,EAAQsjC,MAAMC,eAAe,KAAM,IAAKvjC,EAAQojC,QAAQntB,IAAI6rB,GAAIl2D,KAAK,MAEjEylC,EACFrR,EAAQsjC,MAAMC,eAAe,KAAM,IAAKvjC,EAAQqjC,QAAQptB,IAAI6rB,GAAIl2D,KAAK,MAErEo0B,EAAQsjC,MAAMC,eAAe,KAAM,IAAKzB,GAAI9hC,EAAQ72B,IAGlDkoC,EACFrR,EAAQ72B,GAAKD,EAEb82B,EAAQ92B,GAAKA,EAAI28B,EAGnB7F,EAAQsjC,MAAMC,eAAe,KAAM,cAAevjC,EAAQV,YAC1DU,EAAQsjC,MAAMC,eAAe,KAAM,YAAgBzB,EAAG9hC,EAAQmF,UAAd,MAE5CnF,EAAQu1B,YAAciK,EAAajK,WACrCv1B,EAAQsjC,MAAMC,eAAe,KAAM,aAAcvjC,EAAQu1B,WAGvDv1B,EAAQs1B,aAAekK,EAAalK,YACtCt1B,EAAQsjC,MAAMC,eAAe,KAAM,cAAevjC,EAAQs1B,YAG5D,MAAMxkB,EAAiB9Q,EAAQ8F,kBAAoBhkC,EAAMoN,kBAAkBgC,iBAgB3E,GAdI4/B,IAAmBhvC,EAAMoN,kBAAkBwB,MAAQogC,IAAmBhvC,EAAMoN,kBAAkB0B,aAC5FovB,EAAQgG,YAAcw5B,EAAax5B,WACrChG,EAAQsjC,MAAMC,eAAe,KAAM,OAAQvjC,EAAQgG,WAGjDhG,EAAQmG,UAAY,GACtBnG,EAAQsjC,MAAMC,eAAe,KAAM,eAAgBvjC,EAAQmG,YAEpDnG,EAAQ8F,oBAAsBhkC,EAAMoN,kBAAkB+B,YAC/D+uB,EAAQsjC,MAAMC,eAAe,KAAM,OAAQ,eAE3CvjC,EAAQsjC,MAAMC,eAAe,KAAM,OAAQ,QAGzCzyB,IAAmBhvC,EAAMoN,kBAAkByB,QAAUmgC,IAAmBhvC,EAAMoN,kBAAkB0B,YAAa,CAC/G,MAAM8yD,EAAiB,GAAK1jC,EAAQsF,iBAAmB,GAEvD1mC,KAAK+kE,qBAAqB3jC,EAAQsjC,MAAOI,GAG3C,IAAIr+B,EAAarF,EAAQqF,WAEA,IAArBrF,EAAQ+F,WACVV,EAAaA,EAAWp8B,QACxBo8B,EAAW,IAAMrF,EAAQ+F,UAG3B/F,EAAQwjC,WAAWD,eAAe,KAAM,YAAa,GAAGvB,EAAG38B,YAAqBy8B,EAAGj8B,WACnF7F,EAAQwjC,WAAWD,eAAe9D,EAAQ,YAAa,YACvDz/B,EAAQwjC,WAAWh3D,YAAYwzB,EAAQsjC,OACvCtjC,EAAQyjC,OAAOj3D,YAAYwzB,EAAQwjC,YAEnC5kE,KAAKglE,wBAAwBp3D,YAAYwzB,EAAQwjC,YAGnD,mBAAmBt6D,EAAGC,GACpBvK,KAAKsa,YAAY/P,GACjBvK,KAAK0a,SAASpQ,EAAGC,GAGnB,aAAainC,GACX,IAAKA,EAAQjwB,KACX,MAAM,IAAIlb,MAAM,qGAGbrG,KAAK8jE,WACR9jE,KAAK8jE,SAAW9jE,KAAKyyD,WAAW7rD,cAAc,aAC9C5G,KAAK8jE,SAASa,eAAe,KAAM,OAAQ,YAC3C3kE,KAAKilE,KAAKr3D,YAAY5N,KAAK8jE,WAG7B,MAAM1+D,GAAM,EAAIlC,EAAME,iBAAiBouC,EAAQjwB,KAAMiwB,EAAQvQ,SAAUjhC,KAAKslB,iBAC5EtlB,KAAK8jE,SAAShyC,aAAe,8BAA8B0f,EAAQtR,yBAA8B96B,UAGnG,QAAQyI,GACN,MAAMuzB,EAAUphC,KAAKohC,QACfoQ,EAAUxxC,KAAKiuB,WAAWhtB,IAAI4M,EAAQ,IAC5C,IAAIwzB,EAAOxzB,EAAQ,GACnBuzB,EAAQjjB,KAAOqzB,GAEXxxC,KAAK4jE,YAAepyB,EAAQ/T,aAAgBz9B,KAAK6jE,cAAcryB,EAAQtR,cACzElgC,KAAKklE,aAAa1zB,GAClBxxC,KAAK6jE,cAAcryB,EAAQtR,YAAcsR,GAG3CpQ,EAAQuF,WAAa6K,EAAQ7K,WAAa6K,EAAQ7K,WAAazjC,EAAMmO,qBACrE,IAAIsgC,EAAO,SAEPH,EAAQ9G,MACViH,EAAO,MACEH,EAAQG,OACjBA,EAAO,QAGT,MAAMC,EAASJ,EAAQI,OAAS,SAAW,SAEvCvQ,EAAO,GACTA,GAAQA,EACRD,EAAQqQ,eAAiB,GAEzBrQ,EAAQqQ,cAAgB,EAG1BrQ,EAAQmF,SAAWlF,EACnBD,EAAQV,WAAa8Q,EAAQtR,WAC7BkB,EAAQs1B,WAAa/kB,EACrBvQ,EAAQu1B,UAAY/kB,EACpBxQ,EAAQsjC,MAAQ1kE,KAAKyyD,WAAW7rD,cAAc,aAC9Cw6B,EAAQsjC,MAAMC,eAAe,KAAM,IAAKzB,GAAI9hC,EAAQ72B,IACpD62B,EAAQojC,QAAU,GAClBpjC,EAAQqjC,QAAU,GAGpB,UACE,MAAMrjC,EAAUphC,KAAKohC,QAEjBA,EAAQ8F,kBAAoBhkC,EAAMoN,kBAAkBiC,kBAAoB6uB,EAAQwjC,YAAcxjC,EAAQwjC,WAAW/hB,kBACnHzhB,EAAQ9c,QAAU8c,EAAQwjC,WAC1B5kE,KAAK+Z,KAAK,WACV/Z,KAAK8Z,WAIT,aAAa7T,GACPA,EAAQ,IACVjG,KAAKohC,QAAQqG,UAAYxhC,GAI7B,WAAWm6B,GACTpgC,KAAKohC,QAAQyK,QAAUkC,EAAgB3N,GAGzC,YAAYA,GACVpgC,KAAKohC,QAAQ0K,SAAWkC,EAAiB5N,GAG3C,cAAcgP,GACZpvC,KAAKohC,QAAQ2K,WAAaqD,EAG5B,eAAe5H,GACbxnC,KAAKohC,QAAQoG,YAAcA,EAG7B,kBAAkBtmC,EAAGihB,EAAGC,GACtBpiB,KAAKohC,QAAQiG,YAAcnkC,EAAMc,KAAKsxC,WAAWp0C,EAAGihB,EAAGC,GAGzD,aAAamlB,GACXvnC,KAAKohC,QAAQmG,UAAYA,EAG3B,gBAAgBrmC,EAAGihB,EAAGC,GACpBpiB,KAAKohC,QAAQgG,UAAYlkC,EAAMc,KAAKsxC,WAAWp0C,EAAGihB,EAAGC,GACrDpiB,KAAKohC,QAAQsjC,MAAQ1kE,KAAKyyD,WAAW7rD,cAAc,aACnD5G,KAAKohC,QAAQojC,QAAU,GACvBxkE,KAAKohC,QAAQqjC,QAAU,GAGzB,gBAAgBvxC,GACdlzB,KAAKohC,QAAQiG,YAAcrnC,KAAKmlE,oBAAoBjyC,GAGtD,cAAcA,GACZlzB,KAAKohC,QAAQgG,UAAYpnC,KAAKmlE,oBAAoBjyC,GAGpD,YAAYA,GACV,MAAMjtB,EAAQjG,KAAKgvB,SAAS/oB,MACtBC,EAASlG,KAAKgvB,SAAS9oB,OAEvBsvC,EAAMtyC,EAAMc,KAAKohE,iBAAiBplE,KAAKyjE,iBAEvChuB,EAAKvyC,EAAMc,KAAKwG,eAAe,CAAC,EAAG,GAAIgrC,GAEvCE,EAAKxyC,EAAMc,KAAKwG,eAAe,CAAC,EAAGtE,GAASsvC,GAE5CG,EAAKzyC,EAAMc,KAAKwG,eAAe,CAACvE,EAAO,GAAIuvC,GAE3CI,EAAK1yC,EAAMc,KAAKwG,eAAe,CAACvE,EAAOC,GAASsvC,GAEhDK,EAAK3rC,KAAK8B,IAAIypC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCE,EAAK5rC,KAAK8B,IAAIypC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCG,EAAK7rC,KAAK2Y,IAAI4yB,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCI,EAAK9rC,KAAK2Y,IAAI4yB,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCnrC,EAAOzK,KAAKyyD,WAAW7rD,cAAc,YAC3C6D,EAAKk6D,eAAe,KAAM,IAAK9uB,GAC/BprC,EAAKk6D,eAAe,KAAM,IAAK7uB,GAC/BrrC,EAAKk6D,eAAe,KAAM,QAAS5uB,EAAKF,GACxCprC,EAAKk6D,eAAe,KAAM,SAAU3uB,EAAKF,GACzCrrC,EAAKk6D,eAAe,KAAM,OAAQ3kE,KAAKqlE,oBAAoBnyC,IAEvDlzB,KAAKohC,QAAQmG,UAAY,GAC3B98B,EAAKk6D,eAAe,KAAM,eAAgB3kE,KAAKohC,QAAQmG,WAGzDvnC,KAAKglE,wBAAwBp3D,YAAYnD,GAG3C,oBAAoByoB,GAClB,MAAgB,kBAAZA,EAAK,GACAlzB,KAAKslE,mBAAmBpyC,GAG1BlzB,KAAKqlE,oBAAoBnyC,GAGlC,mBAAmBA,GACjB,MAAM8hB,EAAQ9hB,EAAK,GACblD,EAAekD,EAAK,GACpB+iB,EAAS/iB,EAAK,IAAMhwB,EAAMkO,iBACzBykC,EAAIC,EAAIC,EAAIC,GAAM9iB,EAAK,GACxBqqB,EAAQrqB,EAAK,GACbsqB,EAAQtqB,EAAK,GACbuqB,EAAYvqB,EAAK,GACjBqyC,EAAW,UAAU/B,KAEpBgC,EAAKC,GAAOviE,EAAMc,KAAKwG,eAAe,CAACqrC,EAAIC,GAAKG,IAEhDyvB,EAAKC,GAAOziE,EAAMc,KAAKwG,eAAe,CAACurC,EAAIC,GAAKC,IAEhD2vB,EAAQC,GAAU3iE,EAAMc,KAAK8sC,8BAA8BmF,GAE5D6vB,EAASvoB,EAAQqoB,EACjBG,EAASvoB,EAAQqoB,EACjBG,EAAShmE,KAAKyyD,WAAW7rD,cAAc,eAC7Co/D,EAAOrB,eAAe,KAAM,KAAMY,GAClCS,EAAOrB,eAAe,KAAM,eAAgB,kBAC5CqB,EAAOrB,eAAe,KAAM,QAASmB,GACrCE,EAAOrB,eAAe,KAAM,SAAUoB,GACtCC,EAAOrB,eAAe,KAAM,IAAK,GAAGa,GACpCQ,EAAOrB,eAAe,KAAM,IAAK,GAAGc,GACpC,MAAMz8D,EAAMhJ,KAAKgJ,IACXy6D,EAAkBzjE,KAAKyjE,gBACvBr8B,EAAYpnC,KAAKohC,QAAQgG,UACzBC,EAAcrnC,KAAKohC,QAAQiG,YAC3B6O,EAAOl2C,KAAKyyD,WAAW/wD,OAAOgkE,EAAMF,EAAKG,EAAMF,GAIrD,GAHAzlE,KAAKgJ,IAAMktC,EACXl2C,KAAKyjE,gBAAkBxtB,EAEL,IAAdwH,EAAiB,CACnB,MAAMe,EAAWt7C,EAAMc,KAAKsxC,cAAcN,GAE1Ch1C,KAAKohC,QAAQgG,UAAYoX,EACzBx+C,KAAKohC,QAAQiG,YAAcmX,EAU7B,OAPAx+C,KAAKikE,cAAcjkE,KAAKokE,cAAcp0C,IACtChwB,KAAKgJ,IAAMA,EACXhJ,KAAKyjE,gBAAkBA,EACvBzjE,KAAKohC,QAAQgG,UAAYA,EACzBpnC,KAAKohC,QAAQiG,YAAcA,EAC3B2+B,EAAOp4D,YAAYsoC,EAAK6M,WAAW,IACnC/iD,KAAKilE,KAAKr3D,YAAYo4D,GACf,QAAQT,KAGjB,oBAAoBryC,GAClB,OAAQA,EAAK,IACX,IAAK,cACH,MAAM+yC,EAAY,UAAUzC,IACtBtqB,EAAahmB,EAAK,GACxB,IAAIgzC,EAEJ,OAAQhzC,EAAK,IACX,IAAK,QACH,MAAMizC,EAASjzC,EAAK,GACdkzC,EAASlzC,EAAK,GACpBgzC,EAAWlmE,KAAKyyD,WAAW7rD,cAAc,sBACzCs/D,EAASvB,eAAe,KAAM,KAAMsB,GACpCC,EAASvB,eAAe,KAAM,gBAAiB,kBAC/CuB,EAASvB,eAAe,KAAM,KAAMwB,EAAO,IAC3CD,EAASvB,eAAe,KAAM,KAAMwB,EAAO,IAC3CD,EAASvB,eAAe,KAAM,KAAMyB,EAAO,IAC3CF,EAASvB,eAAe,KAAM,KAAMyB,EAAO,IAC3C,MAEF,IAAK,SACH,MAAMC,EAAanzC,EAAK,GAClBozC,EAAcpzC,EAAK,GACnBqzC,EAAcrzC,EAAK,GACnBszC,EAAetzC,EAAK,GAC1BgzC,EAAWlmE,KAAKyyD,WAAW7rD,cAAc,sBACzCs/D,EAASvB,eAAe,KAAM,KAAMsB,GACpCC,EAASvB,eAAe,KAAM,gBAAiB,kBAC/CuB,EAASvB,eAAe,KAAM,KAAM2B,EAAY,IAChDJ,EAASvB,eAAe,KAAM,KAAM2B,EAAY,IAChDJ,EAASvB,eAAe,KAAM,IAAK6B,GACnCN,EAASvB,eAAe,KAAM,KAAM0B,EAAW,IAC/CH,EAASvB,eAAe,KAAM,KAAM0B,EAAW,IAC/CH,EAASvB,eAAe,KAAM,KAAM4B,GACpC,MAEF,QACE,MAAM,IAAIlgE,MAAM,6BAA6B6sB,EAAK,IAGtD,IAAK,MAAMuzC,KAAavtB,EAAY,CAClC,MAAMwtB,EAAO1mE,KAAKyyD,WAAW7rD,cAAc,YAC3C8/D,EAAK/B,eAAe,KAAM,SAAU8B,EAAU,IAC9CC,EAAK/B,eAAe,KAAM,aAAc8B,EAAU,IAClDP,EAASt4D,YAAY84D,GAIvB,OADA1mE,KAAKilE,KAAKr3D,YAAYs4D,GACf,QAAQD,KAEjB,IAAK,OAEH,OADA,EAAI/iE,EAAMoJ,MAAM,8BACT,KAET,IAAK,QACH,MAAO,UAET,QACE,MAAM,IAAIjG,MAAM,oBAAoB6sB,EAAK,KAI/C,QAAQmc,EAAWC,GACjBtvC,KAAKohC,QAAQiO,UAAYA,EACzBrvC,KAAKohC,QAAQkO,UAAYA,EAG3B,cAAckB,EAAKtd,GACjB,MAAMkO,EAAUphC,KAAKohC,QACrB,IAAI92B,EAAI82B,EAAQ92B,EACZC,EAAI62B,EAAQ72B,EACZ7J,EAAI,GACJmkC,EAAI,EAER,IAAK,MAAMsJ,KAAMqC,EACf,OAAa,EAALrC,GACN,KAAKjrC,EAAMO,IAAI4V,UACb/O,EAAI4oB,EAAK2R,KACTt6B,EAAI2oB,EAAK2R,KACT,MAAM5+B,EAAQitB,EAAK2R,KACb3+B,EAASgtB,EAAK2R,KACd6L,EAAKpmC,EAAIrE,EACT0qC,EAAKpmC,EAAIrE,EACfxF,EAAE+L,KAAK,IAAKy2D,EAAG54D,GAAI44D,EAAG34D,GAAI,IAAK24D,EAAGxyB,GAAKwyB,EAAG34D,GAAI,IAAK24D,EAAGxyB,GAAKwyB,EAAGvyB,GAAK,IAAKuyB,EAAG54D,GAAI44D,EAAGvyB,GAAK,KACvF,MAEF,KAAKztC,EAAMO,IAAIsV,OACbzO,EAAI4oB,EAAK2R,KACTt6B,EAAI2oB,EAAK2R,KACTnkC,EAAE+L,KAAK,IAAKy2D,EAAG54D,GAAI44D,EAAG34D,IACtB,MAEF,KAAKrH,EAAMO,IAAIuV,OACb1O,EAAI4oB,EAAK2R,KACTt6B,EAAI2oB,EAAK2R,KACTnkC,EAAE+L,KAAK,IAAKy2D,EAAG54D,GAAI44D,EAAG34D,IACtB,MAEF,KAAKrH,EAAMO,IAAIwV,QACb3O,EAAI4oB,EAAK2R,EAAI,GACbt6B,EAAI2oB,EAAK2R,EAAI,GACbnkC,EAAE+L,KAAK,IAAKy2D,EAAGhwC,EAAK2R,IAAKq+B,EAAGhwC,EAAK2R,EAAI,IAAKq+B,EAAGhwC,EAAK2R,EAAI,IAAKq+B,EAAGhwC,EAAK2R,EAAI,IAAKq+B,EAAG54D,GAAI44D,EAAG34D,IACtFs6B,GAAK,EACL,MAEF,KAAK3hC,EAAMO,IAAIyV,SACbxY,EAAE+L,KAAK,IAAKy2D,EAAG54D,GAAI44D,EAAG34D,GAAI24D,EAAGhwC,EAAK2R,IAAKq+B,EAAGhwC,EAAK2R,EAAI,IAAKq+B,EAAGhwC,EAAK2R,EAAI,IAAKq+B,EAAGhwC,EAAK2R,EAAI,KACrFv6B,EAAI4oB,EAAK2R,EAAI,GACbt6B,EAAI2oB,EAAK2R,EAAI,GACbA,GAAK,EACL,MAEF,KAAK3hC,EAAMO,IAAI0V,SACb7O,EAAI4oB,EAAK2R,EAAI,GACbt6B,EAAI2oB,EAAK2R,EAAI,GACbnkC,EAAE+L,KAAK,IAAKy2D,EAAGhwC,EAAK2R,IAAKq+B,EAAGhwC,EAAK2R,EAAI,IAAKq+B,EAAG54D,GAAI44D,EAAG34D,GAAI24D,EAAG54D,GAAI44D,EAAG34D,IAClEs6B,GAAK,EACL,MAEF,KAAK3hC,EAAMO,IAAI2V,UACb1Y,EAAE+L,KAAK,KACP,MAIN/L,EAAIA,EAAEsM,KAAK,KAEPo0B,EAAQgQ,MAAQZ,EAAIvkC,OAAS,GAAKukC,EAAI,KAAOttC,EAAMO,IAAI4V,WAAam3B,EAAI,KAAOttC,EAAMO,IAAIsV,OAC3FrY,EAAI0gC,EAAQgQ,KAAKu1B,eAAe,KAAM,KAAOjmE,GAE7C0gC,EAAQgQ,KAAOpxC,KAAKyyD,WAAW7rD,cAAc,YAE7C5G,KAAKglE,wBAAwBp3D,YAAYwzB,EAAQgQ,OAGnDhQ,EAAQgQ,KAAKuzB,eAAe,KAAM,IAAKjkE,GACvC0gC,EAAQgQ,KAAKuzB,eAAe,KAAM,OAAQ,QAC1CvjC,EAAQ9c,QAAU8c,EAAQgQ,KAC1BhQ,EAAQ0G,gBAAgBx9B,EAAGC,GAG7B,UACE,MAAM62B,EAAUphC,KAAKohC,QAGrB,GAFAA,EAAQgQ,KAAO,MAEVpxC,KAAKmoC,YACR,OAGF,IAAK/G,EAAQ9c,QAEX,YADAtkB,KAAKmoC,YAAc,MAIrB,MAAMy+B,EAAS,WAAWtD,IACpBuD,EAAW7mE,KAAKyyD,WAAW7rD,cAAc,gBAC/CigE,EAASlC,eAAe,KAAM,KAAMiC,GACpCC,EAASlC,eAAe,KAAM,YAAavB,EAAGpjE,KAAKyjE,kBACnD,MAAMqD,EAAc1lC,EAAQ9c,QAAQyiD,WAAU,GAErB,YAArB/mE,KAAKmoC,YACP2+B,EAAYnC,eAAe,KAAM,YAAa,WAE9CmC,EAAYnC,eAAe,KAAM,YAAa,WAGhD3kE,KAAKmoC,YAAc,KACnB0+B,EAASj5D,YAAYk5D,GACrB9mE,KAAKilE,KAAKr3D,YAAYi5D,GAElBzlC,EAAQshC,gBACVthC,EAAQuhC,UAAY,KACpB3iE,KAAK2jE,WAAWlvC,SAAQ,SAAUqP,GAChCA,EAAK6+B,UAAY,QAEnBkE,EAASlC,eAAe,KAAM,YAAavjC,EAAQshC,gBAGrDthC,EAAQshC,cAAgB,QAAQkE,KAChC5mE,KAAKgkE,KAAO,KAGd,KAAK76D,GACHnJ,KAAKmoC,YAAch/B,EAGrB,YACE,MAAMi4B,EAAUphC,KAAKohC,QAErB,GAAIA,EAAQgQ,KAAM,CAChB,MAAM1wC,EAAO0gC,EAAQgQ,KAAKu1B,eAAe,KAAM,KAArC,IACVvlC,EAAQgQ,KAAKuzB,eAAe,KAAM,IAAKjkE,IAI3C,WAAWkmC,GACT5mC,KAAKohC,QAAQwF,SAAWA,EAG1B,YAAYO,GACVnnC,KAAKohC,QAAQ+F,SAAWA,EAG1B,qBAAqBD,GACnBlnC,KAAKohC,QAAQ8F,kBAAoBA,EAGnC,UAAU79B,GACRrJ,KAAKohC,QAAQ6F,WAAa59B,EAAQ,IAGpC,mBAAmBslB,IAEnB,YAAY4gB,IAEZ,UAAUC,GACR,IAAK,MAAO7tC,EAAKN,KAAUmuC,EACzB,OAAQ7tC,GACN,IAAK,KACH3B,KAAKqY,aAAahX,GAClB,MAEF,IAAK,KACHrB,KAAKsY,WAAWjX,GAChB,MAEF,IAAK,KACHrB,KAAKuY,YAAYlX,GACjB,MAEF,IAAK,KACHrB,KAAKwY,cAAcnX,GACnB,MAEF,IAAK,IACHrB,KAAKyY,QAAQpX,EAAM,GAAIA,EAAM,IAC7B,MAEF,IAAK,KACHrB,KAAK0Y,mBAAmBrX,GACxB,MAEF,IAAK,KACHrB,KAAK2Y,YAAYtX,GACjB,MAEF,IAAK,OACHrB,KAAKua,QAAQlZ,GACb,MAEF,IAAK,KACHrB,KAAKgnE,eAAe3lE,GACpB,MAEF,IAAK,KACHrB,KAAKinE,aAAa5lE,GAClB,MAEF,SACE,EAAI6B,EAAMoJ,MAAM,wCAAwC3K,GACxD,OAKR,OACE,MAAMy/B,EAAUphC,KAAKohC,QAEjBA,EAAQ9c,UACV8c,EAAQ9c,QAAQqgD,eAAe,KAAM,OAAQvjC,EAAQgG,WACrDhG,EAAQ9c,QAAQqgD,eAAe,KAAM,eAAgBvjC,EAAQmG,WAC7DvnC,KAAK8Z,WAIT,SACE,MAAMsnB,EAAUphC,KAAKohC,QAEjBA,EAAQ9c,UACVtkB,KAAK+kE,qBAAqB3jC,EAAQ9c,SAElC8c,EAAQ9c,QAAQqgD,eAAe,KAAM,OAAQ,QAC7C3kE,KAAK8Z,WAIT,qBAAqBwK,EAASwgD,EAAiB,GAC7C,MAAM1jC,EAAUphC,KAAKohC,QACrB,IAAIiO,EAAYjO,EAAQiO,UAED,IAAnBy1B,GAAwBz1B,EAAUpjC,OAAS,IAC7CojC,EAAYA,EAAUgI,KAAI,SAAUh2C,GAClC,OAAOyjE,EAAiBzjE,MAI5BijB,EAAQqgD,eAAe,KAAM,SAAUvjC,EAAQiG,aAC/C/iB,EAAQqgD,eAAe,KAAM,iBAAkBvjC,EAAQoG,aACvDljB,EAAQqgD,eAAe,KAAM,oBAAqBzB,EAAG9hC,EAAQ2K,aAC7DznB,EAAQqgD,eAAe,KAAM,iBAAkBvjC,EAAQyK,SACvDvnB,EAAQqgD,eAAe,KAAM,kBAAmBvjC,EAAQ0K,UACxDxnB,EAAQqgD,eAAe,KAAM,eAAgBzB,EAAG4B,EAAiB1jC,EAAQqG,WAAa,MACtFnjB,EAAQqgD,eAAe,KAAM,mBAAoBt1B,EAAUgI,IAAI6rB,GAAIl2D,KAAK,MACxEsX,EAAQqgD,eAAe,KAAM,oBAAqBzB,EAAG4B,EAAiB1jC,EAAQkO,WAAa,MAG7F,SACMtvC,KAAKohC,QAAQ9c,SACftkB,KAAKohC,QAAQ9c,QAAQqgD,eAAe,KAAM,YAAa,WAGzD3kE,KAAKwZ,OAGP,aACExZ,KAAKsZ,SACLtZ,KAAKwZ,OAGP,eACMxZ,KAAKohC,QAAQ9c,SACftkB,KAAKohC,QAAQ9c,QAAQqgD,eAAe,KAAM,YAAa,WAGzD3kE,KAAK0Z,aAGP,cACE1Z,KAAKoZ,YACLpZ,KAAKsZ,SAGP,kBACEtZ,KAAKoZ,YACLpZ,KAAK0Z,aAGP,oBACE1Z,KAAKoZ,YACLpZ,KAAK2Z,eAGP,2BACE,MAAMlP,EAAOzK,KAAKyyD,WAAW7rD,cAAc,YAC3C6D,EAAKk6D,eAAe,KAAM,IAAK,KAC/Bl6D,EAAKk6D,eAAe,KAAM,IAAK,KAC/Bl6D,EAAKk6D,eAAe,KAAM,QAAS,OACnCl6D,EAAKk6D,eAAe,KAAM,SAAU,OACpCl6D,EAAKk6D,eAAe,KAAM,OAAQ3kE,KAAKohC,QAAQgG,WAE/CpnC,KAAKglE,wBAAwBp3D,YAAYnD,GAG3C,kBAAkBkwB,GAChB,MAAMiK,EAAUjK,EAAMsU,WAAW,MAAQjvC,KAAKiuB,WAAWhtB,IAAI05B,GAAS36B,KAAKkuB,KAAKjtB,IAAI05B,GAE/EiK,EAKL5kC,KAAKwd,wBAAwBonB,IAJ3B,EAAI1hC,EAAMoJ,MAAM,kCAAkCquB,sBAOtD,wBAAwBiK,EAASS,GAC/B,MAAMp/B,EAAQ2+B,EAAQ3+B,MAChBC,EAAS0+B,EAAQ1+B,OACjBghE,EAASnG,EAAoBn8B,EAAS5kC,KAAKslB,kBAAmB+f,GAC9D8hC,EAAWnnE,KAAKyyD,WAAW7rD,cAAc,YAC/CugE,EAASxC,eAAe,KAAM,IAAK,KACnCwC,EAASxC,eAAe,KAAM,IAAK,KACnCwC,EAASxC,eAAe,KAAM,QAASzB,EAAGj9D,IAC1CkhE,EAASxC,eAAe,KAAM,SAAUzB,EAAGh9D,IAC3ClG,KAAKohC,QAAQ9c,QAAU6iD,EACvBnnE,KAAK+Z,KAAK,WACV,MAAMqtD,EAAQpnE,KAAKyyD,WAAW7rD,cAAc,aAC5CwgE,EAAMzC,eAAe7D,EAAU,aAAcoG,GAC7CE,EAAMzC,eAAe,KAAM,IAAK,KAChCyC,EAAMzC,eAAe,KAAM,IAAKzB,GAAIh9D,IACpCkhE,EAAMzC,eAAe,KAAM,QAASzB,EAAGj9D,GAAS,MAChDmhE,EAAMzC,eAAe,KAAM,SAAUzB,EAAGh9D,GAAU,MAClDkhE,EAAMzC,eAAe,KAAM,YAAa,SAASzB,EAAG,EAAIj9D,MAAUi9D,GAAI,EAAIh9D,OAEtEm/B,EACFA,EAAKz3B,YAAYw5D,GAEjBpnE,KAAKglE,wBAAwBp3D,YAAYw5D,GAI7C,sBAAsBxiC,GACpB,MAAMxD,EAAUphC,KAAKohC,QACfn7B,EAAQ2+B,EAAQ3+B,MAChBC,EAAS0+B,EAAQ1+B,OACjBkhC,EAAYhG,EAAQgG,UAC1BhG,EAAQwhC,OAAS,OAAOW,IACxB,MAAMl+B,EAAOrlC,KAAKyyD,WAAW7rD,cAAc,YAC3Cy+B,EAAKs/B,eAAe,KAAM,KAAMvjC,EAAQwhC,QACxC,MAAMn4D,EAAOzK,KAAKyyD,WAAW7rD,cAAc,YAC3C6D,EAAKk6D,eAAe,KAAM,IAAK,KAC/Bl6D,EAAKk6D,eAAe,KAAM,IAAK,KAC/Bl6D,EAAKk6D,eAAe,KAAM,QAASzB,EAAGj9D,IACtCwE,EAAKk6D,eAAe,KAAM,SAAUzB,EAAGh9D,IACvCuE,EAAKk6D,eAAe,KAAM,OAAQv9B,GAClC38B,EAAKk6D,eAAe,KAAM,OAAQ,QAAQvjC,EAAQwhC,WAClD5iE,KAAKilE,KAAKr3D,YAAYy3B,GAEtBrlC,KAAKglE,wBAAwBp3D,YAAYnD,GAEzCzK,KAAKwd,wBAAwBonB,EAASS,GAGxC,sBAAsB4Q,EAAQC,GAK5B,GAJI9hB,MAAMC,QAAQ4hB,IAA6B,IAAlBA,EAAOhqC,QAClCjM,KAAKoK,UAAU6rC,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAG3EC,EAAM,CACR,MAAMjwC,EAAQiwC,EAAK,GAAKA,EAAK,GACvBhwC,EAASgwC,EAAK,GAAKA,EAAK,GACxBixB,EAAWnnE,KAAKyyD,WAAW7rD,cAAc,YAC/CugE,EAASxC,eAAe,KAAM,IAAKzuB,EAAK,IACxCixB,EAASxC,eAAe,KAAM,IAAKzuB,EAAK,IACxCixB,EAASxC,eAAe,KAAM,QAASzB,EAAGj9D,IAC1CkhE,EAASxC,eAAe,KAAM,SAAUzB,EAAGh9D,IAC3ClG,KAAKohC,QAAQ9c,QAAU6iD,EACvBnnE,KAAK+Z,KAAK,WACV/Z,KAAK8Z,WAIT,uBAEA,YAAYkV,GACV,MAAMhmB,EAAMhJ,KAAKyyD,WAAW/wD,OAAOstB,EAAS/oB,MAAO+oB,EAAS9oB,QACtDmhE,EAAcrnE,KAAKyyD,WAAW7rD,cAAc,YAClDoC,EAAI4E,YAAYy5D,GAChBrnE,KAAKilE,KAAOoC,EACZ,MAAMC,EAAYtnE,KAAKyyD,WAAW7rD,cAAc,SAIhD,OAHA0gE,EAAU3C,eAAe,KAAM,YAAavB,EAAGp0C,EAAS5kB,YACxDpB,EAAI4E,YAAY05D,GAChBtnE,KAAKgJ,IAAMs+D,EACJt+D,EAGT,mBACE,IAAKhJ,KAAKohC,QAAQuhC,UAAW,CAC3B,MAAMA,EAAY3iE,KAAKyyD,WAAW7rD,cAAc,SAChD+7D,EAAUgC,eAAe,KAAM,YAAa3kE,KAAKohC,QAAQshC,eACzD1iE,KAAKgJ,IAAI4E,YAAY+0D,GACrB3iE,KAAKohC,QAAQuhC,UAAYA,EAG3B,OAAO3iE,KAAKohC,QAAQuhC,UAGtB,wBAYE,OAXK3iE,KAAKgkE,OACRhkE,KAAKgkE,KAAOhkE,KAAKyyD,WAAW7rD,cAAc,SAC1C5G,KAAKgkE,KAAKW,eAAe,KAAM,YAAavB,EAAGpjE,KAAKyjE,kBAEhDzjE,KAAKohC,QAAQshC,cACf1iE,KAAKunE,mBAAmB35D,YAAY5N,KAAKgkE,MAEzChkE,KAAKgJ,IAAI4E,YAAY5N,KAAKgkE,OAIvBhkE,KAAKgkE,SAQZ,SAAUrkE,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQiF,mBAAgB,EAExB,IAAI3B,EAAQ/C,EAAoB,GAE5BqnE,EAAiBrnE,EAAoB,IAIzC,MAAMuhC,EAAK,oBAAQ,GAEb+lC,EAAO,oBAAQ,GAEfC,EAAQ,oBAAQ,GAEhBtiE,EAAM,oBAAQ,IAEduiE,EAAe,0BAErB,SAASC,EAASC,GAChB,MAAMC,EAAY1iE,EAAI2iE,MAAMF,GAE5B,MAA2B,UAAvBC,EAAU36D,UAAwB26D,EAAUE,KACvCF,EAGL,gBAAgBhN,KAAK+M,GAChBziE,EAAI2iE,MAAM,WAAWF,IAGzBC,EAAUE,OACbF,EAAU36D,SAAW,SAGhB26D,GAGT,MAAMjjE,EACJ,YAAY8iB,GACV3nB,KAAK2nB,OAASA,EACd3nB,KAAKoF,IAAMwiE,EAASjgD,EAAOviB,KAC3BpF,KAAKioE,OAA+B,UAAtBjoE,KAAKoF,IAAI+H,UAA8C,WAAtBnN,KAAKoF,IAAI+H,SACxDnN,KAAKkoE,QAAgC,UAAtBloE,KAAKoF,IAAI+H,SACxBnN,KAAK4pB,YAAc5pB,KAAKioE,QAAUtgD,EAAOiC,aAAe,GACxD5pB,KAAK2nD,mBAAqB,KAC1B3nD,KAAKmoE,qBAAuB,GAG9B,6BACE,OAAOnoE,KAAK2nD,mBAAqB3nD,KAAK2nD,mBAAmBc,QAAU,EAGrE,gBAGE,OAFA,EAAIvlD,EAAM6F,SAAS/I,KAAK2nD,mBAAoB,wDAC5C3nD,KAAK2nD,mBAAqB3nD,KAAKkoE,QAAU,IAAIE,EAA0BpoE,MAAQ,IAAIqoE,EAAwBroE,MACpGA,KAAK2nD,mBAGd,eAAej7C,EAAOX,GACpB,GAAIA,GAAO/L,KAAK6oD,uBACd,OAAO,KAGT,MAAM9vB,EAAc/4B,KAAKkoE,QAAU,IAAII,EAA2BtoE,KAAM0M,EAAOX,GAAO,IAAIw8D,EAAyBvoE,KAAM0M,EAAOX,GAIhI,OAFA/L,KAAKmoE,qBAAqB17D,KAAKssB,GAExBA,EAGT,kBAAkB1xB,GACZrH,KAAK2nD,oBACP3nD,KAAK2nD,mBAAmB90B,OAAOxrB,GAGjC,MAAM2hD,EAAUhpD,KAAKmoE,qBAAqB99D,MAAM,GAEhD2+C,EAAQv0B,SAAQ,SAAUtC,GACxBA,EAAOU,OAAOxrB,OAMpBzH,EAAQiF,cAAgBA,EAExB,MAAM2jE,EACJ,YAAYxoB,GACVhgD,KAAKyoE,KAAOzoB,EAAO56C,IACnBpF,KAAKmpD,OAAQ,EACbnpD,KAAK0oE,aAAe,KACpB1oE,KAAK8qB,WAAa,KAClB,MAAMnD,EAASq4B,EAAOr4B,OACtB3nB,KAAK0nD,eAAiB//B,EAAO1b,OAC7BjM,KAAKyoD,QAAU,EACfzoD,KAAKopD,UAAY,KACjBppD,KAAK2oE,cAAgBhhD,EAAOgB,eAAgB,EAC5C3oB,KAAK4oE,gBAAkBjhD,EAAOQ,eAEzBnoB,KAAK4oE,iBAAoB5oE,KAAK2oE,gBACjC3oE,KAAK2oE,eAAgB,GAGvB3oE,KAAKwnD,uBAAyB7/B,EAAOiB,cACrC5oB,KAAKynD,mBAAqB9/B,EAAOgB,aACjC3oB,KAAK6oE,gBAAkB,KACvB7oE,KAAK8oE,iBAAkB,EAAI5lE,EAAMG,2BACjCrD,KAAK+oE,oBAAqB,EAAI7lE,EAAMG,2BAGtC,mBACE,OAAOrD,KAAK+oE,mBAAmB5jD,QAGjC,eACE,OAAOnlB,KAAKopD,UAGd,oBACE,OAAOppD,KAAK0nD,eAGd,uBACE,OAAO1nD,KAAKynD,kBAGd,2BACE,OAAOznD,KAAKwnD,sBAGd,aAGE,SAFMxnD,KAAK8oE,gBAAgB3jD,QAEvBnlB,KAAKmpD,MACP,MAAO,CACL9nD,WAAOof,EACP4R,MAAM,GAIV,GAAIryB,KAAK0oE,aACP,MAAM1oE,KAAK0oE,aAGb,MAAM1nD,EAAQhhB,KAAK6oE,gBAAgBz2C,OAEnC,GAAc,OAAVpR,EAEF,OADAhhB,KAAK8oE,iBAAkB,EAAI5lE,EAAMG,2BAC1BrD,KAAKoyB,OAGdpyB,KAAKyoD,SAAWznC,EAAM/U,OAElBjM,KAAK8qB,YACP9qB,KAAK8qB,WAAW,CACdW,OAAQzrB,KAAKyoD,QACb/8B,MAAO1rB,KAAK0nD,iBAIhB,MAAM3lC,EAAS,IAAIja,WAAWkZ,GAAOe,OACrC,MAAO,CACL1gB,MAAO0gB,EACPsQ,MAAM,GAIV,OAAOhrB,GACArH,KAAK6oE,gBAMV7oE,KAAK6oE,gBAAgB59C,QAAQ5jB,GAL3BrH,KAAKgpE,OAAO3hE,GAQhB,OAAOA,GACLrH,KAAK0oE,aAAerhE,EAEpBrH,KAAK8oE,gBAAgB3gE,UAGvB,mBAAmB6pB,GACjBhyB,KAAK6oE,gBAAkB72C,EACvBA,EAAemE,GAAG,WAAY,KAC5Bn2B,KAAK8oE,gBAAgB3gE,YAEvB6pB,EAAemE,GAAG,MAAO,KACvBnE,EAAe/G,UACfjrB,KAAKmpD,OAAQ,EAEbnpD,KAAK8oE,gBAAgB3gE,YAEvB6pB,EAAemE,GAAG,QAAS9uB,IACzBrH,KAAKgpE,OAAO3hE,MAGTrH,KAAKwnD,uBAAyBxnD,KAAKynD,mBACtCznD,KAAKgpE,OAAO,IAAI9lE,EAAMuN,eAAe,0BAGnCzQ,KAAK0oE,cACP1oE,KAAK6oE,gBAAgB59C,QAAQjrB,KAAK0oE,eAMxC,MAAMO,EACJ,YAAYjpB,GACVhgD,KAAKyoE,KAAOzoB,EAAO56C,IACnBpF,KAAKmpD,OAAQ,EACbnpD,KAAK0oE,aAAe,KACpB1oE,KAAK8qB,WAAa,KAClB9qB,KAAKyoD,QAAU,EACfzoD,KAAK6oE,gBAAkB,KACvB7oE,KAAK8oE,iBAAkB,EAAI5lE,EAAMG,2BACjC,MAAMskB,EAASq4B,EAAOr4B,OACtB3nB,KAAKwnD,uBAAyB7/B,EAAOiB,cAGvC,2BACE,OAAO5oB,KAAKwnD,sBAGd,aAGE,SAFMxnD,KAAK8oE,gBAAgB3jD,QAEvBnlB,KAAKmpD,MACP,MAAO,CACL9nD,WAAOof,EACP4R,MAAM,GAIV,GAAIryB,KAAK0oE,aACP,MAAM1oE,KAAK0oE,aAGb,MAAM1nD,EAAQhhB,KAAK6oE,gBAAgBz2C,OAEnC,GAAc,OAAVpR,EAEF,OADAhhB,KAAK8oE,iBAAkB,EAAI5lE,EAAMG,2BAC1BrD,KAAKoyB,OAGdpyB,KAAKyoD,SAAWznC,EAAM/U,OAElBjM,KAAK8qB,YACP9qB,KAAK8qB,WAAW,CACdW,OAAQzrB,KAAKyoD,UAIjB,MAAM1mC,EAAS,IAAIja,WAAWkZ,GAAOe,OACrC,MAAO,CACL1gB,MAAO0gB,EACPsQ,MAAM,GAIV,OAAOhrB,GACArH,KAAK6oE,gBAMV7oE,KAAK6oE,gBAAgB59C,QAAQ5jB,GAL3BrH,KAAKgpE,OAAO3hE,GAQhB,OAAOA,GACLrH,KAAK0oE,aAAerhE,EAEpBrH,KAAK8oE,gBAAgB3gE,UAGvB,mBAAmB6pB,GACjBhyB,KAAK6oE,gBAAkB72C,EACvBA,EAAemE,GAAG,WAAY,KAC5Bn2B,KAAK8oE,gBAAgB3gE,YAEvB6pB,EAAemE,GAAG,MAAO,KACvBnE,EAAe/G,UACfjrB,KAAKmpD,OAAQ,EAEbnpD,KAAK8oE,gBAAgB3gE,YAEvB6pB,EAAemE,GAAG,QAAS9uB,IACzBrH,KAAKgpE,OAAO3hE,KAGVrH,KAAK0oE,cACP1oE,KAAK6oE,gBAAgB59C,QAAQjrB,KAAK0oE,eAMxC,SAASQ,EAAqBpB,EAAWqB,GACvC,MAAO,CACLh8D,SAAU26D,EAAU36D,SACpBi8D,KAAMtB,EAAUsB,KAChBpB,KAAMF,EAAUuB,SAChBtgD,KAAM++C,EAAU/+C,KAChBqoB,KAAM02B,EAAU12B,KAChBk4B,OAAQ,MACRH,WAIJ,MAAMd,UAAgCG,EACpC,YAAYxoB,GACVt5C,MAAMs5C,GAEN,MAAMupB,EAAiB7hE,IACrB,GAA4B,MAAxBA,EAAS8hE,WAAoB,CAC/B,MAAMj5C,EAAQ,IAAIrtB,EAAMM,oBAAoB,gBAAgBxD,KAAKyoE,UAKjE,OAJAzoE,KAAK0oE,aAAen4C,OAEpBvwB,KAAK+oE,mBAAmB3gE,OAAOmoB,GAKjCvwB,KAAK+oE,mBAAmB5gE,UAExBnI,KAAKypE,mBAAmB/hE,GAExB,MAAMgiE,EAAoB/oE,GACjBX,KAAK6oE,gBAAgBM,QAAQxoE,EAAK+hD,gBAGrC,mBACJinB,EAAkB,gBAClBC,IACE,EAAIpC,EAAeqC,kCAAkC,CACvDH,oBACAzB,OAAQjoB,EAAOioB,OACf9/C,eAAgBnoB,KAAK4oE,gBACrBjgD,aAAc3oB,KAAK2oE,gBAErB3oE,KAAKynD,kBAAoBkiB,EACzB3pE,KAAK0nD,eAAiBkiB,GAAmB5pE,KAAK0nD,eAC9C1nD,KAAKopD,WAAY,EAAIoe,EAAesC,2BAA2BJ,IAGjE1pE,KAAK+pE,SAAW,KAEW,UAAvB/pE,KAAKyoE,KAAKt7D,SACZnN,KAAK+pE,SAAWtC,EAAKp/D,QAAQ6gE,EAAqBlpE,KAAKyoE,KAAMzoB,EAAOp2B,aAAc2/C,GAElFvpE,KAAK+pE,SAAWrC,EAAMr/D,QAAQ6gE,EAAqBlpE,KAAKyoE,KAAMzoB,EAAOp2B,aAAc2/C,GAGrFvpE,KAAK+pE,SAAS5zC,GAAG,QAAS9uB,IACxBrH,KAAK0oE,aAAerhE,EAEpBrH,KAAK+oE,mBAAmB3gE,OAAOf,KAGjCrH,KAAK+pE,SAASh+D,OAKlB,MAAMw8D,UAAiCU,EACrC,YAAYjpB,EAAQtzC,EAAOX,GACzBrF,MAAMs5C,GACNhgD,KAAKgqE,aAAe,GAEpB,IAAK,MAAMjoE,KAAYi+C,EAAOp2B,YAAa,CACzC,MAAMvoB,EAAQ2+C,EAAOp2B,YAAY7nB,GAEZ,qBAAVV,IAIXrB,KAAKgqE,aAAajoE,GAAYV,GAGhCrB,KAAKgqE,aAAaC,MAAQ,SAASv9D,KAASX,EAAM,IAElD,MAAMw9D,EAAiB7hE,IACrB,GAA4B,MAAxBA,EAAS8hE,WAMbxpE,KAAKypE,mBAAmB/hE,OANxB,CACE,MAAM6oB,EAAQ,IAAIrtB,EAAMM,oBAAoB,gBAAgBxD,KAAKyoE,UACjEzoE,KAAK0oE,aAAen4C,IAOxBvwB,KAAK+pE,SAAW,KAEW,UAAvB/pE,KAAKyoE,KAAKt7D,SACZnN,KAAK+pE,SAAWtC,EAAKp/D,QAAQ6gE,EAAqBlpE,KAAKyoE,KAAMzoE,KAAKgqE,cAAeT,GAEjFvpE,KAAK+pE,SAAWrC,EAAMr/D,QAAQ6gE,EAAqBlpE,KAAKyoE,KAAMzoE,KAAKgqE,cAAeT,GAGpFvpE,KAAK+pE,SAAS5zC,GAAG,QAAS9uB,IACxBrH,KAAK0oE,aAAerhE,IAGtBrH,KAAK+pE,SAASh+D,OAKlB,MAAMq8D,UAAkCI,EACtC,YAAYxoB,GACVt5C,MAAMs5C,GACN,IAAI5O,EAAOrtB,mBAAmB/jB,KAAKyoE,KAAKr3B,MAEpCu2B,EAAa7M,KAAK96D,KAAKyoE,KAAKj9D,QAC9B4lC,EAAOA,EAAK7wB,QAAQ,MAAO,KAG7BmhB,EAAGwoC,MAAM94B,EAAM,CAAC7gB,EAAO45C,KACrB,GAAI55C,EASF,MARmB,WAAfA,EAAMnQ,OACRmQ,EAAQ,IAAIrtB,EAAMM,oBAAoB,gBAAgB4tC,QAGxDpxC,KAAK0oE,aAAen4C,OAEpBvwB,KAAK+oE,mBAAmB3gE,OAAOmoB,GAKjCvwB,KAAK0nD,eAAiByiB,EAAK9oC,KAE3BrhC,KAAKypE,mBAAmB/nC,EAAG0oC,iBAAiBh5B,IAE5CpxC,KAAK+oE,mBAAmB5gE,aAM9B,MAAMmgE,UAAmCW,EACvC,YAAYjpB,EAAQtzC,EAAOX,GACzBrF,MAAMs5C,GACN,IAAI5O,EAAOrtB,mBAAmB/jB,KAAKyoE,KAAKr3B,MAEpCu2B,EAAa7M,KAAK96D,KAAKyoE,KAAKj9D,QAC9B4lC,EAAOA,EAAK7wB,QAAQ,MAAO,KAG7BvgB,KAAKypE,mBAAmB/nC,EAAG0oC,iBAAiBh5B,EAAM,CAChD1kC,QACAX,IAAKA,EAAM,QAQX,SAAUpM,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQyqE,0BAA4BA,EACpCzqE,EAAQkqE,0BAA4BA,EACpClqE,EAAQiqE,iCAAmCA,EAC3CjqE,EAAQ0qE,uBAAyBA,EAEjC,IAAIpnE,EAAQ/C,EAAoB,GAE5BoqE,EAAuBpqE,EAAoB,IAE/C,SAAS0pE,GAAiC,kBACxCH,EAAiB,OACjBzB,EAAM,eACN9/C,EAAc,aACdQ,KAEA,EAAIzlB,EAAM6F,QAAQof,EAAiB,EAAG,6CACtC,MAAMqiD,EAAe,CACnBb,oBAAoB,EACpBC,qBAAiBnpD,GAEbxU,EAASsC,SAASm7D,EAAkB,kBAAmB,IAE7D,IAAKrqD,OAAOC,UAAUrT,GACpB,OAAOu+D,EAKT,GAFAA,EAAaZ,gBAAkB39D,EAE3BA,GAAU,EAAIkc,EAChB,OAAOqiD,EAGT,GAAI7hD,IAAiBs/C,EACnB,OAAOuC,EAGT,GAA2C,UAAvCd,EAAkB,iBACpB,OAAOc,EAGT,MAAMC,EAAkBf,EAAkB,qBAAuB,WAEjE,MAAwB,aAApBe,IAIJD,EAAab,oBAAqB,GAHzBa,EAOX,SAASV,EAA0BJ,GACjC,MAAMgB,EAAqBhB,EAAkB,uBAE7C,GAAIgB,EAAoB,CACtB,IAAIxwC,GAAW,EAAIqwC,EAAqBI,yCAAyCD,GAEjF,GAAIxwC,EAAShG,SAAS,KACpB,IACEgG,EAAWnW,mBAAmBmW,GAC9B,MAAO7sB,IAGX,GAAI,UAAUytD,KAAK5gC,GACjB,OAAOA,EAIX,OAAO,KAGT,SAASmwC,EAA0BzhE,EAAQxD,GACzC,OAAe,MAAXwD,GAA6B,IAAXA,GAAgBxD,EAAI6pC,WAAW,SAC5C,IAAI/rC,EAAMM,oBAAoB,gBAAkB4B,EAAM,MAGxD,IAAIlC,EAAMY,4BAA4B,+BAAiC8E,EAAS,2BAA6BxD,EAAM,KAAMwD,GAGlI,SAAS0hE,EAAuB1hE,GAC9B,OAAkB,MAAXA,GAA6B,MAAXA,IAKrB,SAAUjJ,EAAQC,EAASO,GAEjC,aAQA,SAASwqE,EAAwCD,GAC/C,IAAIE,GAAqB,EACrB/wB,EAAMgxB,EAAc,cAAe,KAAKx8D,KAAKq8D,GAEjD,GAAI7wB,EAAK,CACPA,EAAMA,EAAI,GACV,IAAI3f,EAAW4wC,EAAejxB,GAI9B,OAHA3f,EAAWjW,SAASiW,GACpBA,EAAW6wC,EAAc7wC,GACzBA,EAAW8wC,EAAc9wC,GAClB+wC,EAAc/wC,GAKvB,GAFA2f,EAAMqxB,EAAgBR,GAElB7wB,EAAK,CACP,MAAM3f,EAAW8wC,EAAcnxB,GAC/B,OAAOoxB,EAAc/wC,GAKvB,GAFA2f,EAAMgxB,EAAc,WAAY,KAAKx8D,KAAKq8D,GAEtC7wB,EAAK,CACPA,EAAMA,EAAI,GACV,IAAI3f,EAAW4wC,EAAejxB,GAE9B,OADA3f,EAAW8wC,EAAc9wC,GAClB+wC,EAAc/wC,GAGvB,SAAS2wC,EAAcM,EAAkBC,GACvC,OAAO,IAAIj9D,OAAO,cAAgBg9D,EAAhB,sDAAmHC,GAGvI,SAASC,EAAWC,EAAUjqE,GAC5B,GAAIiqE,EAAU,CACZ,IAAK,iBAAiBxQ,KAAKz5D,GACzB,OAAOA,EAGT,IACE,MAAMkqE,EAAU,IAAIC,YAAYF,EAAU,CACxCG,OAAO,IAEHjrD,EAAQ4T,MAAM+yB,KAAK9lD,GAAO,SAAU0iD,GACxC,OAA0B,IAAnBA,EAAG7iC,WAAW,MAEvB7f,EAAQkqE,EAAQG,OAAO,IAAI5jE,WAAW0Y,IACtCoqD,GAAqB,EACrB,MAAOjrD,GACP,GAAI,YAAYm7C,KAAKwQ,GACnB,IACEjqE,EAAQ0iB,mBAAmBC,OAAO3iB,IAClCupE,GAAqB,EACrB,MAAOe,MAKf,OAAOtqE,EAGT,SAAS4pE,EAAc5pE,GASrB,OARIupE,GAAsB,cAAc9P,KAAKz5D,KAC3CA,EAAQgqE,EAAW,QAAShqE,GAExBupE,IACFvpE,EAAQgqE,EAAW,aAAchqE,KAI9BA,EAGT,SAAS6pE,EAAgBU,GACvB,MAAMx9D,EAAU,GAChB,IAAIy9D,EACJ,MAAMC,EAAOjB,EAAc,kCAAmC,MAE9D,MAAsD,QAA9CgB,EAAQC,EAAKz9D,KAAKu9D,IAAkC,CAC1D,IAAK,CAAE/pE,EAAGkqE,EAAMC,GAAQH,EAGxB,GAFAhqE,EAAI0M,SAAS1M,EAAG,IAEZA,KAAKuM,GACP,GAAU,IAANvM,EACF,WAMJuM,EAAQvM,GAAK,CAACkqE,EAAMC,GAGtB,MAAMC,EAAQ,GAEd,IAAK,IAAIpqE,EAAI,EAAGA,EAAIuM,EAAQnC,SAAUpK,EAAG,CACvC,KAAMA,KAAKuM,GACT,MAGF,IAAK29D,EAAMC,GAAQ59D,EAAQvM,GAC3BmqE,EAAOlB,EAAekB,GAElBD,IACFC,EAAO/nD,SAAS+nD,GAEN,IAANnqE,IACFmqE,EAAOjB,EAAciB,KAIzBC,EAAMx/D,KAAKu/D,GAGb,OAAOC,EAAMj/D,KAAK,IAGpB,SAAS89D,EAAezpE,GACtB,GAAIA,EAAM4tC,WAAW,KAAM,CACzB,MAAMg9B,EAAQ5qE,EAAMgJ,MAAM,GAAG2uD,MAAM,OAEnC,IAAK,IAAI34D,EAAI,EAAGA,EAAI4rE,EAAMhgE,SAAU5L,EAAG,CACrC,MAAM6rE,EAAYD,EAAM5rE,GAAGwL,QAAQ,MAEhB,IAAfqgE,IACFD,EAAM5rE,GAAK4rE,EAAM5rE,GAAGgK,MAAM,EAAG6hE,GAC7BD,EAAMhgE,OAAS5L,EAAI,GAGrB4rE,EAAM5rE,GAAK4rE,EAAM5rE,GAAGkgB,QAAQ,SAAU,MAGxClf,EAAQ4qE,EAAMj/D,KAAK,KAGrB,OAAO3L,EAGT,SAAS0pE,EAAcoB,GACrB,MAAMC,EAAcD,EAAStgE,QAAQ,KAErC,IAAqB,IAAjBugE,EACF,OAAOD,EAGT,MAAMb,EAAWa,EAAS9hE,MAAM,EAAG+hE,GAC7BC,EAAYF,EAAS9hE,MAAM+hE,EAAc,GACzC/qE,EAAQgrE,EAAU9rD,QAAQ,UAAW,IAC3C,OAAO8qD,EAAWC,EAAUjqE,GAG9B,SAAS2pE,EAAc3pE,GACrB,OAAKA,EAAM4tC,WAAW,OAAS,uBAAuB6rB,KAAKz5D,GAClDA,EAGFA,EAAMkf,QAAQ,kDAAkD,SAAUnS,EAASk+D,EAAShB,EAAUrjE,GAC3G,GAAiB,MAAbqjE,GAAiC,MAAbA,EAKtB,OAJArjE,EAAOA,EAAKsY,QAAQ,KAAM,KAC1BtY,EAAOA,EAAKsY,QAAQ,sBAAsB,SAAUsrD,EAAOU,GACzD,OAAO5rD,OAAOC,aAAarS,SAASg+D,EAAK,QAEpClB,EAAWiB,EAASrkE,GAG7B,IACEA,EAAO82B,KAAK92B,GACZ,MAAO0X,IAET,OAAO0rD,EAAWiB,EAASrkE,MAI/B,MAAO,GAlLTnH,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQ+qE,wCAA0CA,GAoL5C,SAAUhrE,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQoF,sBAAmB,EAE3B,IAAI9B,EAAQ/C,EAAoB,GAE5BqnE,EAAiBrnE,EAAoB,IAGzC,MAAMqsE,EAAc,IACdC,EAA2B,IAEjC,SAASC,EAAeC,GACtB,MAAMprD,EAAOorD,EAAIjlE,SAEjB,GAAoB,kBAAT6Z,EACT,OAAOA,EAGT,MAAMqrD,GAAQ,EAAI1pE,EAAM8E,eAAeuZ,GACvC,OAAOqrD,EAAM7qD,OAGf,MAAM8qD,EACJ,YAAYznE,EAAK8tB,GACflzB,KAAKoF,IAAMA,EACX8tB,EAAOA,GAAQ,GACflzB,KAAKioE,OAAS,YAAYnN,KAAK11D,GAC/BpF,KAAK4pB,YAAc5pB,KAAKioE,QAAU/0C,EAAKtJ,aAAe,GACtD5pB,KAAK6pB,gBAAkBqJ,EAAKrJ,kBAAmB,EAE/C7pB,KAAK8sE,OAAS55C,EAAK45C,QAAU,WAC3B,OAAO,IAAIxkE,gBAGbtI,KAAK+sE,UAAY,EACjB/sE,KAAKgtE,gBAAkBlsE,OAAOY,OAAO,MAGvC,aAAa8pB,EAAOzf,EAAKkhE,GACvB,MAAM/5C,EAAO,CACX1H,QACAzf,OAGF,IAAK,MAAMiU,KAAQitD,EACjB/5C,EAAKlT,GAAQitD,EAAUjtD,GAGzB,OAAOhgB,KAAKqI,QAAQ6qB,GAGtB,YAAY+5C,GACV,OAAOjtE,KAAKqI,QAAQ4kE,GAGtB,QAAQ/5C,GACN,MAAMy5C,EAAM3sE,KAAK8sE,SACXI,EAAQltE,KAAK+sE,YACbI,EAAiBntE,KAAKgtE,gBAAgBE,GAAS,CACnDP,OAEFA,EAAIpkE,KAAK,MAAOvI,KAAKoF,KACrBunE,EAAI9iD,gBAAkB7pB,KAAK6pB,gBAE3B,IAAK,MAAM9nB,KAAY/B,KAAK4pB,YAAa,CACvC,MAAMvoB,EAAQrB,KAAK4pB,YAAY7nB,GAEV,qBAAVV,GAIXsrE,EAAIS,iBAAiBrrE,EAAUV,GAyBjC,OAtBIrB,KAAKioE,QAAU,UAAW/0C,GAAQ,QAASA,GAC7Cy5C,EAAIS,iBAAiB,QAAS,SAASl6C,EAAK1H,SAAS0H,EAAKnnB,IAAM,KAChEohE,EAAeE,eAAiBZ,GAEhCU,EAAeE,eAAiBb,EAGlCG,EAAInkE,aAAe,cAEf0qB,EAAK4xB,UACP6nB,EAAIl/D,QAAU,SAAUyqB,GACtBhF,EAAK4xB,QAAQ6nB,EAAI/jE,UAIrB+jE,EAAIlkE,mBAAqBzI,KAAKstE,cAAc1rE,KAAK5B,KAAMktE,GACvDP,EAAIY,WAAavtE,KAAK8qB,WAAWlpB,KAAK5B,KAAMktE,GAC5CC,EAAeK,kBAAoBt6C,EAAKs6C,kBACxCL,EAAeM,OAASv6C,EAAKu6C,OAC7BN,EAAeroB,QAAU5xB,EAAK4xB,QAC9BqoB,EAAeriD,WAAaoI,EAAKpI,WACjC6hD,EAAI7jE,KAAK,MACFokE,EAGT,WAAWA,EAAOh1C,GAChB,MAAMi1C,EAAiBntE,KAAKgtE,gBAAgBE,GAEvCC,GAIDA,EAAeriD,YACjBqiD,EAAeriD,WAAWoN,GAI9B,cAAcg1C,EAAOh1C,GACnB,MAAMi1C,EAAiBntE,KAAKgtE,gBAAgBE,GAE5C,IAAKC,EACH,OAGF,MAAMR,EAAMQ,EAAeR,IAO3B,GALIA,EAAIjkE,YAAc,GAAKykE,EAAeK,oBACxCL,EAAeK,2BACRL,EAAeK,mBAGD,IAAnBb,EAAIjkE,WACN,OAGF,KAAMwkE,KAASltE,KAAKgtE,iBAClB,OAKF,UAFOhtE,KAAKgtE,gBAAgBE,GAET,IAAfP,EAAI/jE,QAAgB5I,KAAKioE,OAK3B,YAJIkF,EAAeroB,SACjBqoB,EAAeroB,QAAQ6nB,EAAI/jE,SAM/B,MAAM8kE,EAAYf,EAAI/jE,QAAU4jE,EAC1BmB,EAA+BD,IAAclB,GAAeW,EAAeE,iBAAmBZ,EAEpG,IAAKkB,GAAgCD,IAAcP,EAAeE,eAKhE,YAJIF,EAAeroB,SACjBqoB,EAAeroB,QAAQ6nB,EAAI/jE,SAM/B,MAAMoY,EAAQ0rD,EAAeC,GAE7B,GAAIe,IAAcjB,EAA0B,CAC1C,MAAMmB,EAAcjB,EAAIjD,kBAAkB,iBACpCt7D,EAAU,2BAA2BC,KAAKu/D,GAChDT,EAAeM,OAAO,CACpBjiD,MAAOjd,SAASH,EAAQ,GAAI,IAC5B4S,eAEOA,EACTmsD,EAAeM,OAAO,CACpBjiD,MAAO,EACPxK,UAEOmsD,EAAeroB,SACxBqoB,EAAeroB,QAAQ6nB,EAAI/jE,QAI/B,cAAcskE,GACZ,OAAOltE,KAAKgtE,gBAAgBE,GAAOP,IAGrC,iBAAiBO,GACf,OAAOA,KAASltE,KAAKgtE,gBAGvB,aAAaE,GACX,MAAMP,EAAM3sE,KAAKgtE,gBAAgBE,GAAOP,WACjC3sE,KAAKgtE,gBAAgBE,GAC5BP,EAAI1jB,SAKR,MAAMjkD,EACJ,YAAY2iB,GACV3nB,KAAK6tE,QAAUlmD,EACf3nB,KAAK8tE,SAAW,IAAIjB,EAAellD,EAAOviB,IAAK,CAC7CwkB,YAAajC,EAAOiC,YACpBC,gBAAiBlC,EAAOkC,kBAE1B7pB,KAAK4oE,gBAAkBjhD,EAAOQ,eAC9BnoB,KAAK2nD,mBAAqB,KAC1B3nD,KAAKmoE,qBAAuB,GAG9B,4BAA4Bh2C,GAC1B,MAAM9xB,EAAIL,KAAKmoE,qBAAqBt8D,QAAQsmB,GAExC9xB,GAAK,GACPL,KAAKmoE,qBAAqBz3C,OAAOrwB,EAAG,GAIxC,gBAGE,OAFA,EAAI6C,EAAM6F,SAAS/I,KAAK2nD,mBAAoB,2DAC5C3nD,KAAK2nD,mBAAqB,IAAIomB,EAAkC/tE,KAAK8tE,SAAU9tE,KAAK6tE,SAC7E7tE,KAAK2nD,mBAGd,eAAen8B,EAAOzf,GACpB,MAAMomB,EAAS,IAAI67C,EAAmChuE,KAAK8tE,SAAUtiD,EAAOzf,GAK5E,OAJAomB,EAAO87C,SAAWjuE,KAAKkuE,4BAA4BtsE,KAAK5B,MAExDA,KAAKmoE,qBAAqB17D,KAAK0lB,GAExBA,EAGT,kBAAkB9qB,GACZrH,KAAK2nD,oBACP3nD,KAAK2nD,mBAAmB90B,OAAOxrB,GAGjC,MAAM2hD,EAAUhpD,KAAKmoE,qBAAqB99D,MAAM,GAEhD2+C,EAAQv0B,SAAQ,SAAUtC,GACxBA,EAAOU,OAAOxrB,OAMpBzH,EAAQoF,iBAAmBA,EAE3B,MAAM+oE,EACJ,YAAYI,EAASxmD,GACnB3nB,KAAK8tE,SAAWK,EAChB,MAAMj7C,EAAO,CACXs6C,kBAAmBxtE,KAAKouE,mBAAmBxsE,KAAK5B,MAChDytE,OAAQztE,KAAKquE,QAAQzsE,KAAK5B,MAC1B8kD,QAAS9kD,KAAKsuE,SAAS1sE,KAAK5B,MAC5B8qB,WAAY9qB,KAAKgoD,YAAYpmD,KAAK5B,OAEpCA,KAAKyoE,KAAO9gD,EAAOviB,IACnBpF,KAAKuuE,eAAiBJ,EAAQK,YAAYt7C,GAC1ClzB,KAAKyuE,4BAA6B,EAAIvrE,EAAMG,2BAC5CrD,KAAK2oE,cAAgBhhD,EAAOgB,eAAgB,EAC5C3oB,KAAK0nD,eAAiB//B,EAAO1b,OAC7BjM,KAAK4oE,gBAAkBjhD,EAAOQ,eAEzBnoB,KAAK4oE,iBAAoB5oE,KAAK2oE,gBACjC3oE,KAAK2oE,eAAgB,GAGvB3oE,KAAKwnD,uBAAwB,EAC7BxnD,KAAKynD,mBAAoB,EACzBznD,KAAK0uE,cAAgB,GACrB1uE,KAAKqpD,UAAY,GACjBrpD,KAAKmpD,OAAQ,EACbnpD,KAAK0oE,kBAAejoD,EACpBzgB,KAAKopD,UAAY,KACjBppD,KAAK8qB,WAAa,KAGpB,qBACE,MAAM6jD,EAAmB3uE,KAAKuuE,eAExBK,EAAiB5uE,KAAK8tE,SAASe,cAAcF,GAE7CjF,EAAoB/oE,GACjBiuE,EAAelF,kBAAkB/oE,IAGpC,mBACJgpE,EAAkB,gBAClBC,IACE,EAAIpC,EAAeqC,kCAAkC,CACvDH,oBACAzB,OAAQjoE,KAAK8tE,SAAS7F,OACtB9/C,eAAgBnoB,KAAK4oE,gBACrBjgD,aAAc3oB,KAAK2oE,gBAGjBgB,IACF3pE,KAAKynD,mBAAoB,GAG3BznD,KAAK0nD,eAAiBkiB,GAAmB5pE,KAAK0nD,eAC9C1nD,KAAKopD,WAAY,EAAIoe,EAAesC,2BAA2BJ,GAE3D1pE,KAAKynD,mBACPznD,KAAK8tE,SAASgB,aAAaH,GAG7B3uE,KAAKyuE,2BAA2BtmE,UAGlC,QAAQ+qB,GACN,GAAIA,EACF,GAAIlzB,KAAKqpD,UAAUp9C,OAAS,EAAG,CAC7B,MAAMs9C,EAAoBvpD,KAAKqpD,UAAUxqB,QAEzC0qB,EAAkBphD,QAAQ,CACxB9G,MAAO6xB,EAAKlS,MACZqR,MAAM,SAGRryB,KAAK0uE,cAAcjiE,KAAKymB,EAAKlS,OAIjChhB,KAAKmpD,OAAQ,EAETnpD,KAAK0uE,cAAcziE,OAAS,IAIhCjM,KAAKqpD,UAAU50B,SAAQ,SAAU80B,GAC/BA,EAAkBphD,QAAQ,CACxB9G,WAAOof,EACP4R,MAAM,OAIVryB,KAAKqpD,UAAY,IAGnB,SAASzgD,GACP,MAAMxD,EAAMpF,KAAKyoE,KACXvvC,GAAY,EAAIsuC,EAAe6C,2BAA2BzhE,EAAQxD,GACxEpF,KAAK0oE,aAAexvC,EAEpBl5B,KAAKyuE,2BAA2BrmE,OAAO8wB,GAEvCl5B,KAAKqpD,UAAU50B,SAAQ,SAAU80B,GAC/BA,EAAkBnhD,OAAO8wB,MAG3Bl5B,KAAKqpD,UAAY,GACjBrpD,KAAK0uE,cAAgB,GAGvB,YAAYntD,GACNvhB,KAAK8qB,YACP9qB,KAAK8qB,WAAW,CACdW,OAAQlK,EAAKkK,OACbC,MAAOnK,EAAKwtD,iBAAmBxtD,EAAKmK,MAAQ1rB,KAAK0nD,iBAKvD,eACE,OAAO1nD,KAAKopD,UAGd,uBACE,OAAOppD,KAAKynD,kBAGd,2BACE,OAAOznD,KAAKwnD,sBAGd,oBACE,OAAOxnD,KAAK0nD,eAGd,mBACE,OAAO1nD,KAAKyuE,2BAA2BtpD,QAGzC,aACE,GAAInlB,KAAK0oE,aACP,MAAM1oE,KAAK0oE,aAGb,GAAI1oE,KAAK0uE,cAAcziE,OAAS,EAAG,CACjC,MAAM+U,EAAQhhB,KAAK0uE,cAAc7vC,QAEjC,MAAO,CACLx9B,MAAO2f,EACPqR,MAAM,GAIV,GAAIryB,KAAKmpD,MACP,MAAO,CACL9nD,WAAOof,EACP4R,MAAM,GAIV,MAAMk3B,GAAoB,EAAIrmD,EAAMG,2BAIpC,OAFArD,KAAKqpD,UAAU58C,KAAK88C,GAEbA,EAAkBpkC,QAG3B,OAAO9d,GACLrH,KAAKmpD,OAAQ,EAEbnpD,KAAKyuE,2BAA2BrmE,OAAOf,GAEvCrH,KAAKqpD,UAAU50B,SAAQ,SAAU80B,GAC/BA,EAAkBphD,QAAQ,CACxB9G,WAAOof,EACP4R,MAAM,OAIVryB,KAAKqpD,UAAY,GAEbrpD,KAAK8tE,SAASkB,iBAAiBhvE,KAAKuuE,iBACtCvuE,KAAK8tE,SAASgB,aAAa9uE,KAAKuuE,gBAGlCvuE,KAAK2nD,mBAAqB,MAK9B,MAAMqmB,EACJ,YAAYG,EAAS3iD,EAAOzf,GAC1B/L,KAAK8tE,SAAWK,EAChB,MAAMj7C,EAAO,CACXu6C,OAAQztE,KAAKquE,QAAQzsE,KAAK5B,MAC1B8qB,WAAY9qB,KAAKgoD,YAAYpmD,KAAK5B,OAEpCA,KAAKivE,WAAad,EAAQe,aAAa1jD,EAAOzf,EAAKmnB,GACnDlzB,KAAKqpD,UAAY,GACjBrpD,KAAKypD,aAAe,KACpBzpD,KAAKmpD,OAAQ,EACbnpD,KAAK8qB,WAAa,KAClB9qB,KAAKiuE,SAAW,KAGlB,SACMjuE,KAAKiuE,UACPjuE,KAAKiuE,SAASjuE,MAIlB,QAAQuhB,GACN,MAAMP,EAAQO,EAAKP,MAEnB,GAAIhhB,KAAKqpD,UAAUp9C,OAAS,EAAG,CAC7B,MAAMs9C,EAAoBvpD,KAAKqpD,UAAUxqB,QAEzC0qB,EAAkBphD,QAAQ,CACxB9G,MAAO2f,EACPqR,MAAM,SAGRryB,KAAKypD,aAAezoC,EAGtBhhB,KAAKmpD,OAAQ,EAEbnpD,KAAKqpD,UAAU50B,SAAQ,SAAU80B,GAC/BA,EAAkBphD,QAAQ,CACxB9G,WAAOof,EACP4R,MAAM,OAIVryB,KAAKqpD,UAAY,GAEjBrpD,KAAKmvE,SAGP,YAAYj3C,IACLl4B,KAAK44B,sBAAwB54B,KAAK8qB,YACrC9qB,KAAK8qB,WAAW,CACdW,OAAQyM,EAAIzM,SAKlB,2BACE,OAAO,EAGT,aACE,GAA0B,OAAtBzrB,KAAKypD,aAAuB,CAC9B,MAAMzoC,EAAQhhB,KAAKypD,aAEnB,OADAzpD,KAAKypD,aAAe,KACb,CACLpoD,MAAO2f,EACPqR,MAAM,GAIV,GAAIryB,KAAKmpD,MACP,MAAO,CACL9nD,WAAOof,EACP4R,MAAM,GAIV,MAAMk3B,GAAoB,EAAIrmD,EAAMG,2BAIpC,OAFArD,KAAKqpD,UAAU58C,KAAK88C,GAEbA,EAAkBpkC,QAG3B,OAAO9d,GACLrH,KAAKmpD,OAAQ,EAEbnpD,KAAKqpD,UAAU50B,SAAQ,SAAU80B,GAC/BA,EAAkBphD,QAAQ,CACxB9G,WAAOof,EACP4R,MAAM,OAIVryB,KAAKqpD,UAAY,GAEbrpD,KAAK8tE,SAASkB,iBAAiBhvE,KAAKivE,aACtCjvE,KAAK8tE,SAASgB,aAAa9uE,KAAKivE,YAGlCjvE,KAAKmvE,YAOH,SAAUxvE,EAAQC,EAASO,GAEjC,aAGAW,OAAOC,eAAenB,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQqF,oBAAiB,EAEzB,IAAI/B,EAAQ/C,EAAoB,GAE5BqnE,EAAiBrnE,EAAoB,IAIzC,SAASivE,EAAmBjG,EAASt/C,EAAiBwlD,GACpD,MAAO,CACL/F,OAAQ,MACRH,UACAmG,OAAQD,GAAmBA,EAAgBC,OAC3C/tE,KAAM,OACNguE,YAAa1lD,EAAkB,UAAY,cAC3C2lD,SAAU,UAId,SAASC,EAAc7lD,GACrB,MAAMu/C,EAAU,IAAIuG,QAEpB,IAAK,MAAM3tE,KAAY6nB,EAAa,CAClC,MAAMvoB,EAAQuoB,EAAY7nB,GAEL,qBAAVV,GAIX8nE,EAAQ1P,OAAO13D,EAAUV,GAG3B,OAAO8nE,EAGT,MAAMlkE,EACJ,YAAY0iB,GACV3nB,KAAK2nB,OAASA,EACd3nB,KAAKioE,OAAS,YAAYnN,KAAKnzC,EAAOviB,KACtCpF,KAAK4pB,YAAc5pB,KAAKioE,QAAUtgD,EAAOiC,aAAe,GACxD5pB,KAAK2nD,mBAAqB,KAC1B3nD,KAAKmoE,qBAAuB,GAG9B,6BACE,OAAOnoE,KAAK2nD,mBAAqB3nD,KAAK2nD,mBAAmBc,QAAU,EAGrE,gBAGE,OAFA,EAAIvlD,EAAM6F,SAAS/I,KAAK2nD,mBAAoB,yDAC5C3nD,KAAK2nD,mBAAqB,IAAIgoB,EAAqB3vE,MAC5CA,KAAK2nD,mBAGd,eAAen8B,EAAOzf,GACpB,GAAIA,GAAO/L,KAAK6oD,uBACd,OAAO,KAGT,MAAM12B,EAAS,IAAIy9C,EAA0B5vE,KAAMwrB,EAAOzf,GAI1D,OAFA/L,KAAKmoE,qBAAqB17D,KAAK0lB,GAExBA,EAGT,kBAAkB9qB,GACZrH,KAAK2nD,oBACP3nD,KAAK2nD,mBAAmB90B,OAAOxrB,GAGjC,MAAM2hD,EAAUhpD,KAAKmoE,qBAAqB99D,MAAM,GAEhD2+C,EAAQv0B,SAAQ,SAAUtC,GACxBA,EAAOU,OAAOxrB,OAMpBzH,EAAQqF,eAAiBA,EAEzB,MAAM0qE,EACJ,YAAY3vB,GACVhgD,KAAKkpD,QAAUlJ,EACfhgD,KAAKw/D,QAAU,KACfx/D,KAAKyoD,QAAU,EACfzoD,KAAKopD,UAAY,KACjB,MAAMzhC,EAASq4B,EAAOr4B,OACtB3nB,KAAK6vE,iBAAmBloD,EAAOkC,kBAAmB,EAClD7pB,KAAK0nD,eAAiB//B,EAAO1b,OAC7BjM,KAAK+oE,oBAAqB,EAAI7lE,EAAMG,2BACpCrD,KAAK2oE,cAAgBhhD,EAAOgB,eAAgB,EAC5C3oB,KAAK4oE,gBAAkBjhD,EAAOQ,eAEzBnoB,KAAK4oE,iBAAoB5oE,KAAK2oE,gBACjC3oE,KAAK2oE,eAAgB,GAGQ,qBAApBmH,kBACT9vE,KAAK+vE,iBAAmB,IAAID,iBAG9B9vE,KAAKwnD,uBAAyB7/B,EAAOiB,cACrC5oB,KAAKynD,mBAAqB9/B,EAAOgB,aACjC3oB,KAAKgwE,SAAWP,EAAczvE,KAAKkpD,QAAQt/B,aAC3C,MAAMxkB,EAAMuiB,EAAOviB,IACnBmC,MAAMnC,EAAKgqE,EAAmBpvE,KAAKgwE,SAAUhwE,KAAK6vE,iBAAkB7vE,KAAK+vE,mBAAmBvoE,KAAKE,IAC/F,KAAK,EAAI8/D,EAAe8C,wBAAwB5iE,EAASkB,QACvD,MAAM,EAAI4+D,EAAe6C,2BAA2B3iE,EAASkB,OAAQxD,GAGvEpF,KAAKw/D,QAAU93D,EAASi5B,KAAKnO,YAE7BxyB,KAAK+oE,mBAAmB5gE,UAExB,MAAMuhE,EAAoB/oE,GACjB+G,EAASyhE,QAAQloE,IAAIN,IAGxB,mBACJgpE,EAAkB,gBAClBC,IACE,EAAIpC,EAAeqC,kCAAkC,CACvDH,oBACAzB,OAAQjoE,KAAKkpD,QAAQ+e,OACrB9/C,eAAgBnoB,KAAK4oE,gBACrBjgD,aAAc3oB,KAAK2oE,gBAErB3oE,KAAKynD,kBAAoBkiB,EACzB3pE,KAAK0nD,eAAiBkiB,GAAmB5pE,KAAK0nD,eAC9C1nD,KAAKopD,WAAY,EAAIoe,EAAesC,2BAA2BJ,IAE1D1pE,KAAKwnD,uBAAyBxnD,KAAKynD,mBACtCznD,KAAK6yB,OAAO,IAAI3vB,EAAMuN,eAAe,6BAEtCrJ,MAAMpH,KAAK+oE,mBAAmB3gE,QACjCpI,KAAK8qB,WAAa,KAGpB,mBACE,OAAO9qB,KAAK+oE,mBAAmB5jD,QAGjC,eACE,OAAOnlB,KAAKopD,UAGd,oBACE,OAAOppD,KAAK0nD,eAGd,uBACE,OAAO1nD,KAAKynD,kBAGd,2BACE,OAAOznD,KAAKwnD,sBAGd,mBACQxnD,KAAK+oE,mBAAmB5jD,QAC9B,MAAM,MACJ9jB,EAAK,KACLgxB,SACQryB,KAAKw/D,QAAQptC,OAEvB,GAAIC,EACF,MAAO,CACLhxB,QACAgxB,QAIJryB,KAAKyoD,SAAWpnD,EAAM+f,WAElBphB,KAAK8qB,YACP9qB,KAAK8qB,WAAW,CACdW,OAAQzrB,KAAKyoD,QACb/8B,MAAO1rB,KAAK0nD,iBAIhB,MAAM3lC,EAAS,IAAIja,WAAWzG,GAAO0gB,OACrC,MAAO,CACL1gB,MAAO0gB,EACPsQ,MAAM,GAIV,OAAOhrB,GACDrH,KAAKw/D,SACPx/D,KAAKw/D,QAAQ3sC,OAAOxrB,GAGlBrH,KAAK+vE,kBACP/vE,KAAK+vE,iBAAiB9mB,SAM5B,MAAM2mB,EACJ,YAAY5vB,EAAQx0B,EAAOzf,GACzB/L,KAAKkpD,QAAUlJ,EACfhgD,KAAKw/D,QAAU,KACfx/D,KAAKyoD,QAAU,EACf,MAAM9gC,EAASq4B,EAAOr4B,OACtB3nB,KAAK6vE,iBAAmBloD,EAAOkC,kBAAmB,EAClD7pB,KAAK8oE,iBAAkB,EAAI5lE,EAAMG,2BACjCrD,KAAKwnD,uBAAyB7/B,EAAOiB,cAEN,qBAApBknD,kBACT9vE,KAAK+vE,iBAAmB,IAAID,iBAG9B9vE,KAAKgwE,SAAWP,EAAczvE,KAAKkpD,QAAQt/B,aAE3C5pB,KAAKgwE,SAASvW,OAAO,QAAS,SAASjuC,KAASzf,EAAM,KAEtD,MAAM3G,EAAMuiB,EAAOviB,IACnBmC,MAAMnC,EAAKgqE,EAAmBpvE,KAAKgwE,SAAUhwE,KAAK6vE,iBAAkB7vE,KAAK+vE,mBAAmBvoE,KAAKE,IAC/F,KAAK,EAAI8/D,EAAe8C,wBAAwB5iE,EAASkB,QACvD,MAAM,EAAI4+D,EAAe6C,2BAA2B3iE,EAASkB,OAAQxD,GAGvEpF,KAAK8oE,gBAAgB3gE,UAErBnI,KAAKw/D,QAAU93D,EAASi5B,KAAKnO,cAC5BprB,MAAMC,IACP,IAAIA,GAA0B,eAAhBA,EAAO1G,KAIrB,MAAM0G,IAERrH,KAAK8qB,WAAa,KAGpB,2BACE,OAAO9qB,KAAKwnD,sBAGd,mBACQxnD,KAAK8oE,gBAAgB3jD,QAC3B,MAAM,MACJ9jB,EAAK,KACLgxB,SACQryB,KAAKw/D,QAAQptC,OAEvB,GAAIC,EACF,MAAO,CACLhxB,QACAgxB,QAIJryB,KAAKyoD,SAAWpnD,EAAM+f,WAElBphB,KAAK8qB,YACP9qB,KAAK8qB,WAAW,CACdW,OAAQzrB,KAAKyoD,UAIjB,MAAM1mC,EAAS,IAAIja,WAAWzG,GAAO0gB,OACrC,MAAO,CACL1gB,MAAO0gB,EACPsQ,MAAM,GAIV,OAAOhrB,GACDrH,KAAKw/D,SACPx/D,KAAKw/D,QAAQ3sC,OAAOxrB,GAGlBrH,KAAK+vE,kBACP/vE,KAAK+vE,iBAAiB9mB,kB,6GCjyb5B,IAAIgnB,EAAQ,EAAQ,QAChBC,EAAc,EAAQ,QAEJ,qBAAXnoD,QAA0B,WAAYA,SAC/CkoD,EAAM1rE,oBAAoBykB,WAAa,IAAIknD,GAG7CvwE,EAAOC,QAAUqwE","file":"js/pdfjs-dist.bc3c204a.js","sourcesContent":["module.exports = function() {\n return new Worker(__webpack_public_path__ + \"js/main.d3753644.worker.js\");\n}\n","/**\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 += \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\";\n }\n }\n\n return \">\" + chars;\n });\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.firstChild;\n\n while (rdf && rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n const nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n\n if (!rdf || nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n const children = rdf.childNodes;\n\n for (let i = 0, ii = children.length; i < ii; i++) {\n const desc = children[i];\n\n if (desc.nodeName.toLowerCase() !== \"rdf:description\") {\n continue;\n }\n\n for (let j = 0, jj = desc.childNodes.length; j < jj; j++) {\n if (desc.childNodes[j].nodeName.toLowerCase() !== \"#text\") {\n const entry = desc.childNodes[j];\n const name = entry.nodeName.toLowerCase();\n\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n }\n\n get(name) {\n return this._metadataMap.has(name) ? this._metadataMap.get(name) : null;\n }\n\n getAll() {\n 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","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\"use strict\";\n\nvar pdfjs = require(\"./build/pdf.js\");\nvar PdfjsWorker = require(\"worker-loader?esModule=false!./build/pdf.worker.js\");\n\nif (typeof window !== \"undefined\" && \"Worker\" in window) {\n pdfjs.GlobalWorkerOptions.workerPort = new PdfjsWorker();\n}\n\nmodule.exports = pdfjs;\n"],"sourceRoot":""}