@yxp934/prompt-tree 0.3.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +8 -6
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/react-loadable-manifest.json +9 -1
  5. package/.next/standalone/.next/routes-manifest.json +12 -0
  6. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  9. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  21. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  22. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/standalone/.next/server/app/api/agent/route.js +2 -2
  28. package/.next/standalone/.next/server/app/api/agent/route_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/api/agent-step/route.js +5 -0
  30. package/.next/standalone/.next/server/app/api/agent-step/route.js.nft.json +1 -0
  31. package/.next/standalone/.next/server/app/api/agent-step/route_client-reference-manifest.js +1 -0
  32. package/.next/standalone/.next/server/app/api/chat/route.js +1 -1
  33. package/.next/standalone/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/embeddings/route.js +1 -0
  35. package/.next/standalone/.next/server/app/api/embeddings/route.js.nft.json +1 -0
  36. package/.next/standalone/.next/server/app/api/embeddings/route_client-reference-manifest.js +1 -0
  37. package/.next/standalone/.next/server/app/api/providers/health/route_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/api/providers/models/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/api/providers/test/route_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/api/tools/mcp/call-tool/route_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/api/tools/mcp/list-tools/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/tools/mcp/test/route_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/api/tools/python/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/tools/search/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/index.html +2 -2
  46. package/.next/standalone/.next/server/app/index.rsc +4 -4
  47. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  48. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  49. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  50. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  51. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  52. package/.next/standalone/.next/server/app/page.js +7 -3
  53. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/settings/page.js +5 -2
  56. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/settings.html +1 -1
  59. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  60. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +4 -4
  61. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  62. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +3 -3
  63. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  64. package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  65. package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  66. package/.next/standalone/.next/server/app-paths-manifest.json +8 -6
  67. package/.next/standalone/.next/server/chunks/270.js +2 -0
  68. package/.next/standalone/.next/server/chunks/471.js +4 -4
  69. package/.next/standalone/.next/server/chunks/732.js +4 -4
  70. package/.next/standalone/.next/server/chunks/734.js +1 -1
  71. package/.next/standalone/.next/server/chunks/815.js +1 -0
  72. package/.next/standalone/.next/server/functions-config-manifest.json +2 -0
  73. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  74. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  75. package/.next/standalone/.next/server/pages/404.html +1 -1
  76. package/.next/standalone/.next/server/pages/500.html +2 -2
  77. package/.next/standalone/.next/static/chunks/379-4a9ebb3f3e23a072.js +1 -0
  78. package/.next/standalone/.next/static/chunks/618-fe65295d23f513e9.js +30 -0
  79. package/.next/standalone/.next/static/chunks/619.cfe242be4c0b83c0.js +1 -0
  80. package/.next/standalone/.next/static/chunks/991-3901e4f7973e3bc4.js +4 -0
  81. package/.next/standalone/.next/static/chunks/9b0008ae.ebbbe0264e8b748d.js +2 -0
  82. package/.next/standalone/.next/static/chunks/app/_global-error/page-0eb119f31700800c.js +1 -0
  83. package/.next/standalone/.next/static/chunks/app/api/agent/route-0eb119f31700800c.js +1 -0
  84. package/.next/standalone/.next/static/chunks/app/api/agent-step/route-0eb119f31700800c.js +1 -0
  85. package/.next/standalone/.next/static/chunks/app/api/chat/route-0eb119f31700800c.js +1 -0
  86. package/.next/standalone/.next/static/chunks/app/api/embeddings/route-0eb119f31700800c.js +1 -0
  87. package/.next/standalone/.next/static/chunks/app/api/providers/health/route-0eb119f31700800c.js +1 -0
  88. package/.next/standalone/.next/static/chunks/app/api/providers/models/route-0eb119f31700800c.js +1 -0
  89. package/.next/standalone/.next/static/chunks/app/api/providers/test/route-0eb119f31700800c.js +1 -0
  90. package/.next/standalone/.next/static/chunks/app/api/tools/mcp/call-tool/route-0eb119f31700800c.js +1 -0
  91. package/.next/standalone/.next/static/chunks/app/api/tools/mcp/list-tools/route-0eb119f31700800c.js +1 -0
  92. package/.next/standalone/.next/static/chunks/app/api/tools/mcp/test/route-0eb119f31700800c.js +1 -0
  93. package/.next/standalone/.next/static/chunks/app/api/tools/python/route-0eb119f31700800c.js +1 -0
  94. package/.next/standalone/.next/static/chunks/app/api/tools/search/route-0eb119f31700800c.js +1 -0
  95. package/.next/standalone/.next/static/chunks/app/{layout-7950581b06dcfcd2.js → layout-a6642f336c41f8a8.js} +1 -1
  96. package/.next/standalone/.next/static/chunks/app/page-86696f7cf6c50ff2.js +3 -0
  97. package/.next/standalone/.next/static/chunks/app/settings/page-4b5b4a44edd184b3.js +4 -0
  98. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-0eb119f31700800c.js +1 -0
  99. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-0eb119f31700800c.js +1 -0
  100. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-0eb119f31700800c.js +1 -0
  101. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-0eb119f31700800c.js +1 -0
  102. package/.next/standalone/.next/static/chunks/webpack-d7f56a24ad86f880.js +1 -0
  103. package/.next/standalone/.next/static/css/06344f8f74fa92db.css +1 -0
  104. package/.next/standalone/.next/static/x3zkptkvP5NCSRahifp2M/_buildManifest.js +1 -0
  105. package/.next/standalone/package.json +2 -1
  106. package/README.md +27 -6
  107. package/README.zh-CN.md +27 -6
  108. package/package.json +2 -1
  109. package/.next/standalone/.next/server/chunks/689.js +0 -1
  110. package/.next/standalone/.next/static/chunks/308-9aca2a7bf1797568.js +0 -2
  111. package/.next/standalone/.next/static/chunks/394-dc41566095beafcf.js +0 -30
  112. package/.next/standalone/.next/static/chunks/787-12058ee9986bdbfc.js +0 -1
  113. package/.next/standalone/.next/static/chunks/app/_global-error/page-f941084711d16ad3.js +0 -1
  114. package/.next/standalone/.next/static/chunks/app/api/agent/route-f941084711d16ad3.js +0 -1
  115. package/.next/standalone/.next/static/chunks/app/api/chat/route-f941084711d16ad3.js +0 -1
  116. package/.next/standalone/.next/static/chunks/app/api/providers/health/route-f941084711d16ad3.js +0 -1
  117. package/.next/standalone/.next/static/chunks/app/api/providers/models/route-f941084711d16ad3.js +0 -1
  118. package/.next/standalone/.next/static/chunks/app/api/providers/test/route-f941084711d16ad3.js +0 -1
  119. package/.next/standalone/.next/static/chunks/app/api/tools/mcp/call-tool/route-f941084711d16ad3.js +0 -1
  120. package/.next/standalone/.next/static/chunks/app/api/tools/mcp/list-tools/route-f941084711d16ad3.js +0 -1
  121. package/.next/standalone/.next/static/chunks/app/api/tools/mcp/test/route-f941084711d16ad3.js +0 -1
  122. package/.next/standalone/.next/static/chunks/app/api/tools/python/route-f941084711d16ad3.js +0 -1
  123. package/.next/standalone/.next/static/chunks/app/api/tools/search/route-f941084711d16ad3.js +0 -1
  124. package/.next/standalone/.next/static/chunks/app/page-c273f2f3b7ce1609.js +0 -1
  125. package/.next/standalone/.next/static/chunks/app/settings/page-76e3d482410f0adc.js +0 -1
  126. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-f941084711d16ad3.js +0 -1
  127. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-f941084711d16ad3.js +0 -1
  128. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-f941084711d16ad3.js +0 -1
  129. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-f941084711d16ad3.js +0 -1
  130. package/.next/standalone/.next/static/chunks/webpack-03a911206b5adca4.js +0 -1
  131. package/.next/standalone/.next/static/css/100bba9d1b2ebade.css +0 -1
  132. package/.next/standalone/.next/static/i6P3teUAVQJ-hEG3Y6KV0/_buildManifest.js +0 -1
  133. /package/.next/standalone/.next/static/{i6P3teUAVQJ-hEG3Y6KV0 → x3zkptkvP5NCSRahifp2M}/_ssgManifest.js +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";exports.id=270,exports.ids=[270],exports.modules={7270:(a,b,c)=>{c.r(b),c.d(b,{AbortException:()=>cP,AnnotationEditorLayer:()=>cQ,AnnotationEditorParamsType:()=>cR,AnnotationEditorType:()=>cS,AnnotationEditorUIManager:()=>cT,AnnotationLayer:()=>cU,AnnotationMode:()=>cV,ColorPicker:()=>cW,DOMSVGFactory:()=>cX,DrawLayer:()=>cY,FeatureTest:()=>cZ,GlobalWorkerOptions:()=>c$,ImageKind:()=>c_,InvalidPDFException:()=>c0,MissingPDFException:()=>c1,OPS:()=>c2,OutputScale:()=>c3,PDFDataRangeTransport:()=>c4,PDFDateString:()=>c5,PDFWorker:()=>c6,PasswordResponses:()=>c7,PermissionFlag:()=>c8,PixelsPerInch:()=>c9,RenderingCancelledException:()=>da,TextLayer:()=>db,TouchManager:()=>dc,UnexpectedResponseException:()=>dd,Util:()=>de,VerbosityLevel:()=>df,XfaLayer:()=>dg,build:()=>dh,createValidAbsoluteUrl:()=>di,fetchData:()=>dj,getDocument:()=>dk,getFilenameFromUrl:()=>dl,getPdfFilenameFromUrl:()=>dm,getXfaPageViewport:()=>dn,isDataScheme:()=>dp,isPdfFile:()=>dq,noContextMenu:()=>dr,normalizeUnicode:()=>ds,setLayerDimensions:()=>dt,shadow:()=>du,stopEvent:()=>dv,version:()=>dw});var d={};d.d=(a,b)=>{for(var c in b)d.o(b,c)&&!d.o(a,c)&&Object.defineProperty(a,c,{enumerable:!0,get:b[c]})},d.o=(a,b)=>Object.prototype.hasOwnProperty.call(a,b);var e=globalThis.pdfjsLib={};d.d(e,{AbortException:()=>E,AnnotationEditorLayer:()=>cN,AnnotationEditorParamsType:()=>k,AnnotationEditorType:()=>j,AnnotationEditorUIManager:()=>ap,AnnotationLayer:()=>cu,AnnotationMode:()=>i,ColorPicker:()=>cE,DOMSVGFactory:()=>b_,DrawLayer:()=>cO,FeatureTest:()=>I,GlobalWorkerOptions:()=>bb,ImageKind:()=>m,InvalidPDFException:()=>A,MissingPDFException:()=>B,OPS:()=>o,OutputScale:()=>ag,PDFDataRangeTransport:()=>bL,PDFDateString:()=>aa,PDFWorker:()=>bP,PasswordResponses:()=>p,PermissionFlag:()=>l,PixelsPerInch:()=>Q,RenderingCancelledException:()=>T,TextLayer:()=>bC,TouchManager:()=>ar,UnexpectedResponseException:()=>C,Util:()=>K,VerbosityLevel:()=>n,XfaLayer:()=>b0,build:()=>bW,createValidAbsoluteUrl:()=>v,fetchData:()=>R,getDocument:()=>bI,getFilenameFromUrl:()=>W,getPdfFilenameFromUrl:()=>X,getXfaPageViewport:()=>ab,isDataScheme:()=>U,isPdfFile:()=>V,noContextMenu:()=>$,normalizeUnicode:()=>N,setLayerDimensions:()=>af,shadow:()=>w,stopEvent:()=>_,version:()=>bV});let f="object"==typeof process&&process+""=="[object process]"&&!process.versions.nw&&!(process.versions.electron&&process.type&&"browser"!==process.type),g=[1,0,0,1,0,0],h=[.001,0,0,.001,0,0],i={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},j={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15},k={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,HIGHLIGHT_COLOR:31,HIGHLIGHT_DEFAULT_COLOR:32,HIGHLIGHT_THICKNESS:33,HIGHLIGHT_FREE:34,HIGHLIGHT_SHOW_ALL:35,DRAW_STEP:41},l={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},m={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},n={ERRORS:0,WARNINGS:1,INFOS:5},o={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,setStrokeTransparent:92,setFillTransparent:93},p={NEED_PASSWORD:1,INCORRECT_PASSWORD:2},q=n.WARNINGS;function r(a){q>=n.INFOS&&console.log(`Info: ${a}`)}function s(a){q>=n.WARNINGS&&console.log(`Warning: ${a}`)}function t(a){throw Error(a)}function u(a,b){a||t(b)}function v(a,b=null,c=null){if(!a)return null;try{if(c&&"string"==typeof a){if(c.addDefaultProtocol&&a.startsWith("www.")){let b=a.match(/\./g);b?.length>=2&&(a=`http://${a}`)}if(c.tryConvertEncoding)try{var d;d=a,a=decodeURIComponent(escape(d))}catch{}}let e=b?new URL(a,b):new URL(a);if(function(a){switch(a?.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(e))return e}catch{}return null}function w(a,b,c,d=!1){return Object.defineProperty(a,b,{value:c,enumerable:!d,configurable:!0,writable:!1}),c}let x=function(){function a(a,b){this.message=a,this.name=b}return a.prototype=Error(),a.constructor=a,a}();class y extends x{constructor(a,b){super(a,"PasswordException"),this.code=b}}class z extends x{constructor(a,b){super(a,"UnknownErrorException"),this.details=b}}class A extends x{constructor(a){super(a,"InvalidPDFException")}}class B extends x{constructor(a){super(a,"MissingPDFException")}}class C extends x{constructor(a,b){super(a,"UnexpectedResponseException"),this.status=b}}class D extends x{constructor(a){super(a,"FormatError")}}class E extends x{constructor(a){super(a,"AbortException")}}function F(a){("object"!=typeof a||a?.length===void 0)&&t("Invalid argument for bytesToString");let b=a.length;if(b<8192)return String.fromCharCode.apply(null,a);let c=[];for(let d=0;d<b;d+=8192){let e=Math.min(d+8192,b),f=a.subarray(d,e);c.push(String.fromCharCode.apply(null,f))}return c.join("")}function G(a){"string"!=typeof a&&t("Invalid argument for stringToBytes");let b=a.length,c=new Uint8Array(b);for(let d=0;d<b;++d)c[d]=255&a.charCodeAt(d);return c}function H(a){let b=Object.create(null);for(let[c,d]of a)b[c]=d;return b}class I{static get isLittleEndian(){let a;return w(this,"isLittleEndian",((a=new Uint8Array(4))[0]=1,1===new Uint32Array(a.buffer,0,1)[0]))}static get isEvalSupported(){return w(this,"isEvalSupported",function(){try{return Function(""),!0}catch{return!1}}())}static get isOffscreenCanvasSupported(){return w(this,"isOffscreenCanvasSupported","u">typeof OffscreenCanvas)}static get isImageDecoderSupported(){return w(this,"isImageDecoderSupported","u">typeof ImageDecoder)}static get platform(){return"u">typeof navigator&&"string"==typeof navigator?.platform?w(this,"platform",{isMac:navigator.platform.includes("Mac"),isWindows:navigator.platform.includes("Win"),isFirefox:"string"==typeof navigator?.userAgent&&navigator.userAgent.includes("Firefox")}):w(this,"platform",{isMac:!1,isWindows:!1,isFirefox:!1})}static get isCSSRoundSupported(){return w(this,"isCSSRoundSupported",globalThis.CSS?.supports?.("width: round(1.5px, 1px)"))}}let J=Array.from(Array(256).keys(),a=>a.toString(16).padStart(2,"0"));class K{static makeHexColor(a,b,c){return`#${J[a]}${J[b]}${J[c]}`}static scaleMinMax(a,b){let c;a[0]?(a[0]<0&&(c=b[0],b[0]=b[2],b[2]=c),b[0]*=a[0],b[2]*=a[0],a[3]<0&&(c=b[1],b[1]=b[3],b[3]=c),b[1]*=a[3],b[3]*=a[3]):(c=b[0],b[0]=b[1],b[1]=c,c=b[2],b[2]=b[3],b[3]=c,a[1]<0&&(c=b[1],b[1]=b[3],b[3]=c),b[1]*=a[1],b[3]*=a[1],a[2]<0&&(c=b[0],b[0]=b[2],b[2]=c),b[0]*=a[2],b[2]*=a[2]),b[0]+=a[4],b[1]+=a[5],b[2]+=a[4],b[3]+=a[5]}static transform(a,b){return[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]]}static applyTransform(a,b){return[a[0]*b[0]+a[1]*b[2]+b[4],a[0]*b[1]+a[1]*b[3]+b[5]]}static applyInverseTransform(a,b){let c=b[0]*b[3]-b[1]*b[2];return[(a[0]*b[3]-a[1]*b[2]+b[2]*b[5]-b[4]*b[3])/c,(-a[0]*b[1]+a[1]*b[0]+b[4]*b[1]-b[5]*b[0])/c]}static getAxialAlignedBoundingBox(a,b){let c=this.applyTransform(a,b),d=this.applyTransform(a.slice(2,4),b),e=this.applyTransform([a[0],a[3]],b),f=this.applyTransform([a[2],a[1]],b);return[Math.min(c[0],d[0],e[0],f[0]),Math.min(c[1],d[1],e[1],f[1]),Math.max(c[0],d[0],e[0],f[0]),Math.max(c[1],d[1],e[1],f[1])]}static inverseTransform(a){let b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[4]*a[3])/b,(a[4]*a[1]-a[5]*a[0])/b]}static singularValueDecompose2dScale(a){let b=[a[0],a[2],a[1],a[3]],c=a[0]*b[0]+a[1]*b[2],d=a[0]*b[1]+a[1]*b[3],e=a[2]*b[0]+a[3]*b[2],f=a[2]*b[1]+a[3]*b[3],g=(c+f)/2,h=Math.sqrt((c+f)**2-4*(c*f-e*d))/2;return[Math.sqrt(g+h||1),Math.sqrt(g-h||1)]}static normalizeRect(a){let b=a.slice(0);return a[0]>a[2]&&(b[0]=a[2],b[2]=a[0]),a[1]>a[3]&&(b[1]=a[3],b[3]=a[1]),b}static intersect(a,b){let c=Math.max(Math.min(a[0],a[2]),Math.min(b[0],b[2])),d=Math.min(Math.max(a[0],a[2]),Math.max(b[0],b[2]));if(c>d)return null;let e=Math.max(Math.min(a[1],a[3]),Math.min(b[1],b[3])),f=Math.min(Math.max(a[1],a[3]),Math.max(b[1],b[3]));return e>f?null:[c,e,d,f]}static #a(a,b,c,d,e,f,g,h,i,j){if(i<=0||i>=1)return;let k=1-i,l=i*i,m=l*i,n=k*(k*(k*a+3*i*b)+3*l*c)+m*d,o=k*(k*(k*e+3*i*f)+3*l*g)+m*h;j[0]=Math.min(j[0],n),j[1]=Math.min(j[1],o),j[2]=Math.max(j[2],n),j[3]=Math.max(j[3],o)}static #b(a,b,c,d,e,f,g,h,i,j,k,l){if(1e-12>Math.abs(i)){Math.abs(j)>=1e-12&&this.#a(a,b,c,d,e,f,g,h,-k/j,l);return}let m=j**2-4*k*i;if(m<0)return;let n=Math.sqrt(m),o=2*i;this.#a(a,b,c,d,e,f,g,h,(-j+n)/o,l),this.#a(a,b,c,d,e,f,g,h,(-j-n)/o,l)}static bezierBoundingBox(a,b,c,d,e,f,g,h,i){return i?(i[0]=Math.min(i[0],a,g),i[1]=Math.min(i[1],b,h),i[2]=Math.max(i[2],a,g),i[3]=Math.max(i[3],b,h)):i=[Math.min(a,g),Math.min(b,h),Math.max(a,g),Math.max(b,h)],this.#b(a,c,e,g,b,d,f,h,3*(-a+3*(c-e)+g),6*(a-2*c+e),3*(c-a),i),this.#b(a,c,e,g,b,d,f,h,3*(-b+3*(d-f)+h),6*(b-2*d+f),3*(d-b),i),i}}let L=null,M=null;function N(a){return L||(L=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu,M=new Map([["ſt","ſt"]])),a.replaceAll(L,(a,b,c)=>b?b.normalize("NFKC"):M.get(c))}let O="pdfjs_internal_id_";"function"!=typeof Promise.try&&(Promise.try=function(a,...b){return new Promise(c=>{c(a(...b))})});let P="http://www.w3.org/2000/svg";class Q{static CSS=96;static PDF=72;static PDF_TO_CSS_UNITS=this.CSS/this.PDF}async function R(a,b="text"){if(Z(a,document.baseURI)){let c=await fetch(a);if(!c.ok)throw Error(c.statusText);switch(b){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"json":return c.json()}return c.text()}return new Promise((c,d)=>{let e=new XMLHttpRequest;e.open("GET",a,!0),e.responseType=b,e.onreadystatechange=()=>{if(e.readyState===XMLHttpRequest.DONE){if(200===e.status||0===e.status){switch(b){case"arraybuffer":case"blob":case"json":c(e.response);return}c(e.responseText);return}d(Error(e.statusText))}},e.send(null)})}class S{constructor({viewBox:a,userUnit:b,scale:c,rotation:d,offsetX:e=0,offsetY:f=0,dontFlip:g=!1}){let h,i,j,k,l,m,n,o;this.viewBox=a,this.userUnit=b,this.scale=c,this.rotation=d,this.offsetX=e,this.offsetY=f,c*=b;const p=(a[2]+a[0])/2,q=(a[3]+a[1])/2;switch((d%=360)<0&&(d+=360),d){case 180:h=-1,i=0,j=0,k=1;break;case 90:h=0,i=1,j=1,k=0;break;case 270:h=0,i=-1,j=-1,k=0;break;case 0:h=1,i=0,j=0,k=-1;break;default:throw Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}g&&(j=-j,k=-k),0===h?(l=Math.abs(q-a[1])*c+e,m=Math.abs(p-a[0])*c+f,n=(a[3]-a[1])*c,o=(a[2]-a[0])*c):(l=Math.abs(p-a[0])*c+e,m=Math.abs(q-a[1])*c+f,n=(a[2]-a[0])*c,o=(a[3]-a[1])*c),this.transform=[h*c,i*c,j*c,k*c,l-h*c*p-j*c*q,m-i*c*p-k*c*q],this.width=n,this.height=o}get rawDims(){let{userUnit:a,viewBox:b}=this,c=b.map(b=>b*a);return w(this,"rawDims",{pageWidth:c[2]-c[0],pageHeight:c[3]-c[1],pageX:c[0],pageY:c[1]})}clone({scale:a=this.scale,rotation:b=this.rotation,offsetX:c=this.offsetX,offsetY:d=this.offsetY,dontFlip:e=!1}={}){return new S({viewBox:this.viewBox.slice(),userUnit:this.userUnit,scale:a,rotation:b,offsetX:c,offsetY:d,dontFlip:e})}convertToViewportPoint(a,b){return K.applyTransform([a,b],this.transform)}convertToViewportRectangle(a){let b=K.applyTransform([a[0],a[1]],this.transform),c=K.applyTransform([a[2],a[3]],this.transform);return[b[0],b[1],c[0],c[1]]}convertToPdfPoint(a,b){return K.applyInverseTransform([a,b],this.transform)}}class T extends x{constructor(a,b=0){super(a,"RenderingCancelledException"),this.extraDelay=b}}function U(a){let b=a.length,c=0;for(;c<b&&""===a[c].trim();)c++;return"data:"===a.substring(c,c+5).toLowerCase()}function V(a){return"string"==typeof a&&/\.pdf$/i.test(a)}function W(a){return[a]=a.split(/[#?]/,1),a.substring(a.lastIndexOf("/")+1)}function X(a,b="document.pdf"){if("string"!=typeof a)return b;if(U(a))return s('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'),b;let c=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i,d=/^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/.exec(a),e=c.exec(d[1])||c.exec(d[2])||c.exec(d[3]);if(e&&(e=e[0]).includes("%"))try{e=c.exec(decodeURIComponent(e))[0]}catch{}return e||b}class Y{started=Object.create(null);times=[];time(a){a in this.started&&s(`Timer is already running for ${a}`),this.started[a]=Date.now()}timeEnd(a){a in this.started||s(`Timer has not been started for ${a}`),this.times.push({name:a,start:this.started[a],end:Date.now()}),delete this.started[a]}toString(){let a=[],b=0;for(let{name:a}of this.times)b=Math.max(a.length,b);for(let{name:c,start:d,end:e}of this.times)a.push(`${c.padEnd(b)} ${e-d}ms
2
+ `);return a.join("")}}function Z(a,b){try{let{protocol:c}=b?new URL(a,b):new URL(a);return"http:"===c||"https:"===c}catch{return!1}}function $(a){a.preventDefault()}function _(a){a.preventDefault(),a.stopPropagation()}class aa{static #c;static toDateObject(a){if(!a||"string"!=typeof a)return null;this.#c||=RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?");let b=this.#c.exec(a);if(!b)return null;let c=parseInt(b[1],10),d=parseInt(b[2],10);d=d>=1&&d<=12?d-1:0;let e=parseInt(b[3],10);e=e>=1&&e<=31?e:1;let f=parseInt(b[4],10);f=f>=0&&f<=23?f:0;let g=parseInt(b[5],10);g=g>=0&&g<=59?g:0;let h=parseInt(b[6],10);h=h>=0&&h<=59?h:0;let i=b[7]||"Z",j=parseInt(b[8],10);j=j>=0&&j<=23?j:0;let k=parseInt(b[9],10)||0;return k=k>=0&&k<=59?k:0,"-"===i?(f+=j,g+=k):"+"===i&&(f-=j,g-=k),new Date(Date.UTC(c,d,e,f,g,h))}}function ab(a,{scale:b=1,rotation:c=0}){let{width:d,height:e}=a.attributes.style;return new S({viewBox:[0,0,parseInt(d),parseInt(e)],userUnit:1,scale:b,rotation:c})}function ac(a){if(a.startsWith("#")){let b=parseInt(a.slice(1),16);return[(0xff0000&b)>>16,(65280&b)>>8,255&b]}return a.startsWith("rgb(")?a.slice(4,-1).split(",").map(a=>parseInt(a)):a.startsWith("rgba(")?a.slice(5,-1).split(",").map(a=>parseInt(a)).slice(0,3):(s(`Not a valid color format: "${a}"`),[0,0,0])}function ad(a){let{a:b,b:c,c:d,d:e,e:f,f:g}=a.getTransform();return[b,c,d,e,f,g]}function ae(a){let{a:b,b:c,c:d,d:e,e:f,f:g}=a.getTransform().invertSelf();return[b,c,d,e,f,g]}function af(a,b,c=!1,d=!0){if(b instanceof S){let{pageWidth:d,pageHeight:e}=b.rawDims,{style:f}=a,g=I.isCSSRoundSupported,h=`var(--scale-factor) * ${d}px`,i=`var(--scale-factor) * ${e}px`,j=g?`round(down, ${h}, var(--scale-round-x, 1px))`:`calc(${h})`,k=g?`round(down, ${i}, var(--scale-round-y, 1px))`:`calc(${i})`;c&&b.rotation%180!=0?(f.width=k,f.height=j):(f.width=j,f.height=k)}d&&a.setAttribute("data-main-rotation",b.rotation)}class ag{constructor(){const a=window.devicePixelRatio||1;this.sx=a,this.sy=a}get scaled(){return 1!==this.sx||1!==this.sy}get symmetric(){return this.sx===this.sy}}class ah{#d=null;#e=null;#f;#g=null;#h=null;static #i=null;constructor(a){this.#f=a,ah.#i||=Object.freeze({freetext:"pdfjs-editor-remove-freetext-button",highlight:"pdfjs-editor-remove-highlight-button",ink:"pdfjs-editor-remove-ink-button",stamp:"pdfjs-editor-remove-stamp-button"})}render(){let a=this.#d=document.createElement("div");a.classList.add("editToolbar","hidden"),a.setAttribute("role","toolbar");let b=this.#f._uiManager._signal;a.addEventListener("contextmenu",$,{signal:b}),a.addEventListener("pointerdown",ah.#j,{signal:b});let c=this.#g=document.createElement("div");c.className="buttons",a.append(c);let d=this.#f.toolbarPosition;if(d){let{style:b}=a,c="ltr"===this.#f._uiManager.direction?1-d[0]:d[0];b.insetInlineEnd=`${100*c}%`,b.top=`calc(${100*d[1]}% + var(--editor-toolbar-vert-offset))`}return this.#k(),a}get div(){return this.#d}static #j(a){a.stopPropagation()}#l(a){this.#f._focusEventsAllowed=!1,_(a)}#m(a){this.#f._focusEventsAllowed=!0,_(a)}#n(a){let b=this.#f._uiManager._signal;a.addEventListener("focusin",this.#l.bind(this),{capture:!0,signal:b}),a.addEventListener("focusout",this.#m.bind(this),{capture:!0,signal:b}),a.addEventListener("contextmenu",$,{signal:b})}hide(){this.#d.classList.add("hidden"),this.#e?.hideDropdown()}show(){this.#d.classList.remove("hidden"),this.#h?.shown()}#k(){let{editorType:a,_uiManager:b}=this.#f,c=document.createElement("button");c.className="delete",c.tabIndex=0,c.setAttribute("data-l10n-id",ah.#i[a]),this.#n(c),c.addEventListener("click",a=>{b.delete()},{signal:b._signal}),this.#g.append(c)}get #o(){let a=document.createElement("div");return a.className="divider",a}async addAltText(a){let b=await a.render();this.#n(b),this.#g.prepend(b,this.#o),this.#h=a}addColorPicker(a){this.#e=a;let b=a.renderButton();this.#n(b),this.#g.prepend(b,this.#o)}remove(){this.#d.remove(),this.#e?.destroy(),this.#e=null}}class ai{#g=null;#d=null;#p;constructor(a){this.#p=a}#q(){let a=this.#d=document.createElement("div");a.className="editToolbar",a.setAttribute("role","toolbar"),a.addEventListener("contextmenu",$,{signal:this.#p._signal});let b=this.#g=document.createElement("div");return b.className="buttons",a.append(b),this.#r(),a}#s(a,b){let c=0,d=0;for(let e of a){let a=e.y+e.height;if(a<c)continue;let f=e.x+(b?e.width:0);if(a>c){d=f,c=a;continue}b?f>d&&(d=f):f<d&&(d=f)}return[b?1-d:d,c]}show(a,b,c){let[d,e]=this.#s(b,c),{style:f}=this.#d||=this.#q();a.append(this.#d),f.insetInlineEnd=`${100*d}%`,f.top=`calc(${100*e}% + var(--editor-toolbar-vert-offset))`}hide(){this.#d.remove()}#r(){let a=document.createElement("button");a.className="highlightButton",a.tabIndex=0,a.setAttribute("data-l10n-id","pdfjs-highlight-floating-button1");let b=document.createElement("span");a.append(b),b.className="visuallyHidden",b.setAttribute("data-l10n-id","pdfjs-highlight-floating-button-label");let c=this.#p._signal;a.addEventListener("contextmenu",$,{signal:c}),a.addEventListener("click",()=>{this.#p.highlightSelection("floating_button")},{signal:c}),this.#g.append(a)}}function aj(a,b,c){for(let d of c)b.addEventListener(d,a[d].bind(a))}class ak{#t=0;get id(){return`pdfjs_internal_editor_${this.#t++}`}}class al{#u=(function(){if("function"==typeof crypto.randomUUID)return crypto.randomUUID();let a=new Uint8Array(32);return crypto.getRandomValues(a),F(a)})();#t=0;#v=null;static get _isSVGFittingCanvas(){let a=new OffscreenCanvas(1,3).getContext("2d",{willReadFrequently:!0}),b=new Image;return b.src='data:image/svg+xml;charset=UTF-8,<svg viewBox="0 0 1 1" width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="1" height="1" style="fill:red;"/></svg>',w(this,"_isSVGFittingCanvas",b.decode().then(()=>(a.drawImage(b,0,0,1,1,0,0,1,3),0===new Uint32Array(a.getImageData(0,0,1,1).data.buffer)[0])))}async #w(a,b){this.#v||=new Map;let c=this.#v.get(a);if(null===c)return null;if(c?.bitmap)return c.refCounter+=1,c;try{let a;if(c||={bitmap:null,id:`image_${this.#u}_${this.#t++}`,refCounter:0,isSvg:!1},"string"==typeof b?(c.url=b,a=await R(b,"blob")):b instanceof File?a=c.file=b:b instanceof Blob&&(a=b),"image/svg+xml"===a.type){let b=al._isSVGFittingCanvas,d=new FileReader,e=new Image,f=new Promise((a,f)=>{e.onload=()=>{c.bitmap=e,c.isSvg=!0,a()},d.onload=async()=>{let a=c.svgUrl=d.result;e.src=await b?`${a}#svgView(preserveAspectRatio(none))`:a},e.onerror=d.onerror=f});d.readAsDataURL(a),await f}else c.bitmap=await createImageBitmap(a);c.refCounter=1}catch(a){s(a),c=null}return this.#v.set(a,c),c&&this.#v.set(c.id,c),c}async getFromFile(a){let{lastModified:b,name:c,size:d,type:e}=a;return this.#w(`${b}_${c}_${d}_${e}`,a)}async getFromUrl(a){return this.#w(a,a)}async getFromBlob(a,b){let c=await b;return this.#w(a,c)}async getFromId(a){this.#v||=new Map;let b=this.#v.get(a);if(!b)return null;if(b.bitmap)return b.refCounter+=1,b;if(b.file)return this.getFromFile(b.file);if(b.blobPromise){let{blobPromise:a}=b;return delete b.blobPromise,this.getFromBlob(b.id,a)}return this.getFromUrl(b.url)}getFromCanvas(a,b){this.#v||=new Map;let c=this.#v.get(a);if(c?.bitmap)return c.refCounter+=1,c;let d=new OffscreenCanvas(b.width,b.height);return d.getContext("2d").drawImage(b,0,0),c={bitmap:d.transferToImageBitmap(),id:`image_${this.#u}_${this.#t++}`,refCounter:1,isSvg:!1},this.#v.set(a,c),this.#v.set(c.id,c),c}getSvgUrl(a){let b=this.#v.get(a);return b?.isSvg?b.svgUrl:null}deleteId(a){this.#v||=new Map;let b=this.#v.get(a);if(!b||(b.refCounter-=1,0!==b.refCounter))return;let{bitmap:c}=b;if(!b.url&&!b.file){let a=new OffscreenCanvas(c.width,c.height);a.getContext("bitmaprenderer").transferFromImageBitmap(c),b.blobPromise=a.convertToBlob()}c.close?.(),b.bitmap=null}isValidId(a){return a.startsWith(`image_${this.#u}_`)}}class am{#x=[];#y=!1;#z;#A=-1;constructor(a=128){this.#z=a}add({cmd:a,undo:b,post:c,mustExec:d,type:e=NaN,overwriteIfSameType:f=!1,keepUndo:g=!1}){if(d&&a(),this.#y)return;let h={cmd:a,undo:b,post:c,type:e};if(-1===this.#A){this.#x.length>0&&(this.#x.length=0),this.#A=0,this.#x.push(h);return}if(f&&this.#x[this.#A].type===e){g&&(h.undo=this.#x[this.#A].undo),this.#x[this.#A]=h;return}let i=this.#A+1;i===this.#z?this.#x.splice(0,1):(this.#A=i,i<this.#x.length&&this.#x.splice(i)),this.#x.push(h)}undo(){if(-1===this.#A)return;this.#y=!0;let{undo:a,post:b}=this.#x[this.#A];a(),b?.(),this.#y=!1,this.#A-=1}redo(){if(this.#A<this.#x.length-1){this.#A+=1,this.#y=!0;let{cmd:a,post:b}=this.#x[this.#A];a(),b?.(),this.#y=!1}}hasSomethingToUndo(){return -1!==this.#A}hasSomethingToRedo(){return this.#A<this.#x.length-1}cleanType(a){if(-1!==this.#A){for(let b=this.#A;b>=0;b--)if(this.#x[b].type!==a){this.#x.splice(b+1,this.#A-b),this.#A=b;return}this.#x.length=0,this.#A=-1}}destroy(){this.#x=null}}class an{constructor(a){this.buffer=[],this.callbacks=new Map,this.allKeys=new Set;const{isMac:b}=I.platform;for(const[c,d,e={}]of a)for(const a of c){const c=a.startsWith("mac+");b&&c?(this.callbacks.set(a.slice(4),{callback:d,options:e}),this.allKeys.add(a.split("+").at(-1))):b||c||(this.callbacks.set(a,{callback:d,options:e}),this.allKeys.add(a.split("+").at(-1)))}}#B(a){a.altKey&&this.buffer.push("alt"),a.ctrlKey&&this.buffer.push("ctrl"),a.metaKey&&this.buffer.push("meta"),a.shiftKey&&this.buffer.push("shift"),this.buffer.push(a.key);let b=this.buffer.join("+");return this.buffer.length=0,b}exec(a,b){if(!this.allKeys.has(b.key))return;let c=this.callbacks.get(this.#B(b));if(!c)return;let{callback:d,options:{bubbles:e=!1,args:f=[],checker:g=null}}=c;(!g||g(a,b))&&(d.bind(a,...f,b)(),e||_(b))}}class ao{static _colorsMapping=new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]]);get _colors(){let a=new Map([["CanvasText",null],["Canvas",null]]),b=document.createElement("span");for(let c of(b.style.visibility="hidden",document.body.append(b),a.keys())){b.style.color=c;let d=window.getComputedStyle(b).color;a.set(c,ac(d))}return b.remove(),w(this,"_colors",a)}convert(a){let b=ac(a);if(!window.matchMedia("(forced-colors: active)").matches)return b;for(let[a,c]of this._colors)if(c.every((a,c)=>a===b[c]))return ao._colorsMapping.get(a);return b}getHexCode(a){let b=this._colors.get(a);return b?K.makeHexColor(...b):a}}class ap{#C=new AbortController;#D=null;#E=new Map;#F=new Map;#G=null;#H=null;#I=null;#J=new am;#K=null;#L=null;#M=0;#N=new Set;#O=null;#P=null;#Q=new Set;_editorUndoBar=null;#R=!1;#S=!1;#T=!1;#U=null;#V=null;#W=null;#X=null;#Y=!1;#Z=null;#$=new ak;#_=!1;#aa=!1;#ab=null;#ac=null;#ad=null;#ae=null;#af=j.NONE;#ag=new Set;#ah=null;#ai=null;#aj=null;#ak={isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1,hasSelectedText:!1};#al=[0,0];#am=null;#an=null;#ao=null;#ap=null;static TRANSLATE_SMALL=1;static TRANSLATE_BIG=10;static get _keyboardManager(){let a=ap.prototype,b=a=>a.#an.contains(document.activeElement)&&"BUTTON"!==document.activeElement.tagName&&a.hasSomethingToControl(),c=(a,{target:b})=>{if(b instanceof HTMLInputElement){let{type:a}=b;return"text"!==a&&"number"!==a}return!0},d=this.TRANSLATE_SMALL,e=this.TRANSLATE_BIG;return w(this,"_keyboardManager",new an([[["ctrl+a","mac+meta+a"],a.selectAll,{checker:c}],[["ctrl+z","mac+meta+z"],a.undo,{checker:c}],[["ctrl+y","ctrl+shift+z","mac+meta+shift+z","ctrl+shift+Z","mac+meta+shift+Z"],a.redo,{checker:c}],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete","mac+Delete"],a.delete,{checker:c}],[["Enter","mac+Enter"],a.addNewEditorFromKeyboard,{checker:(a,{target:b})=>!(b instanceof HTMLButtonElement)&&a.#an.contains(b)&&!a.isEnterHandled}],[[" ","mac+ "],a.addNewEditorFromKeyboard,{checker:(a,{target:b})=>!(b instanceof HTMLButtonElement)&&a.#an.contains(document.activeElement)}],[["Escape","mac+Escape"],a.unselectAll],[["ArrowLeft","mac+ArrowLeft"],a.translateSelectedEditors,{args:[-d,0],checker:b}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],a.translateSelectedEditors,{args:[-e,0],checker:b}],[["ArrowRight","mac+ArrowRight"],a.translateSelectedEditors,{args:[d,0],checker:b}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],a.translateSelectedEditors,{args:[e,0],checker:b}],[["ArrowUp","mac+ArrowUp"],a.translateSelectedEditors,{args:[0,-d],checker:b}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],a.translateSelectedEditors,{args:[0,-e],checker:b}],[["ArrowDown","mac+ArrowDown"],a.translateSelectedEditors,{args:[0,d],checker:b}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],a.translateSelectedEditors,{args:[0,e],checker:b}]]))}constructor(a,b,c,d,e,f,g,h,i,j,k,l,m){const n=this._signal=this.#C.signal;this.#an=a,this.#ao=b,this.#G=c,this._eventBus=d,d._on("editingaction",this.onEditingAction.bind(this),{signal:n}),d._on("pagechanging",this.onPageChanging.bind(this),{signal:n}),d._on("scalechanging",this.onScaleChanging.bind(this),{signal:n}),d._on("rotationchanging",this.onRotationChanging.bind(this),{signal:n}),d._on("setpreference",this.onSetPreference.bind(this),{signal:n}),d._on("switchannotationeditorparams",a=>this.updateParams(a.type,a.value),{signal:n}),this.#aq(),this.#ar(),this.#as(),this.#H=e.annotationStorage,this.#U=e.filterFactory,this.#ai=f,this.#X=g||null,this.#R=h,this.#S=i,this.#T=j,this.#ae=k||null,this.viewParameters={realScale:Q.PDF_TO_CSS_UNITS,rotation:0},this.isShiftKeyDown=!1,this._editorUndoBar=l||null,this._supportsPinchToZoom=!1!==m}destroy(){for(let a of(this.#ap?.resolve(),this.#ap=null,this.#C?.abort(),this.#C=null,this._signal=null,this.#F.values()))a.destroy();this.#F.clear(),this.#E.clear(),this.#Q.clear(),this.#D=null,this.#ag.clear(),this.#J.destroy(),this.#G?.destroy(),this.#Z?.hide(),this.#Z=null,this.#V&&(clearTimeout(this.#V),this.#V=null),this.#am&&(clearTimeout(this.#am),this.#am=null),this._editorUndoBar?.destroy()}combinedSignal(a){return AbortSignal.any([this._signal,a.signal])}get mlManager(){return this.#ae}get useNewAltTextFlow(){return this.#S}get useNewAltTextWhenAddingImage(){return this.#T}get hcmFilter(){return w(this,"hcmFilter",this.#ai?this.#U.addHCMFilter(this.#ai.foreground,this.#ai.background):"none")}get direction(){return w(this,"direction",getComputedStyle(this.#an).direction)}get highlightColors(){return w(this,"highlightColors",this.#X?new Map(this.#X.split(",").map(a=>a.split("=").map(a=>a.trim()))):null)}get highlightColorNames(){return w(this,"highlightColorNames",this.highlightColors?new Map(Array.from(this.highlightColors,a=>a.reverse())):null)}setCurrentDrawingSession(a){a?(this.unselectAll(),this.disableUserSelect(!0)):this.disableUserSelect(!1),this.#L=a}setMainHighlightColorPicker(a){this.#ad=a}editAltText(a,b=!1){this.#G?.editAltText(this,a,b)}switchToMode(a,b){this._eventBus.on("annotationeditormodechanged",b,{once:!0,signal:this._signal}),this._eventBus.dispatch("showannotationeditorui",{source:this,mode:a})}setPreference(a,b){this._eventBus.dispatch("setpreference",{source:this,name:a,value:b})}onSetPreference({name:a,value:b}){"enableNewAltTextWhenAddingImage"===a&&(this.#T=b)}onPageChanging({pageNumber:a}){this.#M=a-1}focusMainContainer(){this.#an.focus()}findParent(a,b){for(let c of this.#F.values()){let{x:d,y:e,width:f,height:g}=c.div.getBoundingClientRect();if(a>=d&&a<=d+f&&b>=e&&b<=e+g)return c}return null}disableUserSelect(a=!1){this.#ao.classList.toggle("noUserSelect",a)}addShouldRescale(a){this.#Q.add(a)}removeShouldRescale(a){this.#Q.delete(a)}onScaleChanging({scale:a}){for(let b of(this.commitOrRemove(),this.viewParameters.realScale=a*Q.PDF_TO_CSS_UNITS,this.#Q))b.onScaleChanging();this.#L?.onScaleChanging()}onRotationChanging({pagesRotation:a}){this.commitOrRemove(),this.viewParameters.rotation=a}#at({anchorNode:a}){return a.nodeType===Node.TEXT_NODE?a.parentElement:a}#au(a){let{currentLayer:b}=this;if(b.hasTextLayer(a))return b;for(let b of this.#F.values())if(b.hasTextLayer(a))return b;return null}highlightSelection(a=""){let b=document.getSelection();if(!b||b.isCollapsed)return;let{anchorNode:c,anchorOffset:d,focusNode:e,focusOffset:f}=b,g=b.toString(),h=this.#at(b).closest(".textLayer"),i=this.getSelectionBoxes(h);if(!i)return;b.empty();let k=this.#au(h),l=this.#af===j.NONE,m=()=>{k?.createAndAddNewEditor({x:0,y:0},!1,{methodOfCreation:a,boxes:i,anchorNode:c,anchorOffset:d,focusNode:e,focusOffset:f,text:g}),l&&this.showAllEditors("highlight",!0,!0)};l?this.switchToMode(j.HIGHLIGHT,m):m()}#av(){let a=document.getSelection();if(!a||a.isCollapsed)return;let b=this.#at(a).closest(".textLayer"),c=this.getSelectionBoxes(b);c&&(this.#Z||=new ai(this),this.#Z.show(b,c,"ltr"===this.direction))}addToAnnotationStorage(a){a.isEmpty()||!this.#H||this.#H.has(a.id)||this.#H.setValue(a.id,a)}#aw(){let a=document.getSelection();if(!a||a.isCollapsed){this.#ah&&(this.#Z?.hide(),this.#ah=null,this.#ax({hasSelectedText:!1}));return}let{anchorNode:b}=a;if(b===this.#ah)return;let c=this.#at(a).closest(".textLayer");if(!c){this.#ah&&(this.#Z?.hide(),this.#ah=null,this.#ax({hasSelectedText:!1}));return}if(this.#Z?.hide(),this.#ah=b,this.#ax({hasSelectedText:!0}),(this.#af===j.HIGHLIGHT||this.#af===j.NONE)&&(this.#af===j.HIGHLIGHT&&this.showAllEditors("highlight",!0,!0),this.#Y=this.isShiftKeyDown,!this.isShiftKeyDown)){let a=this.#af===j.HIGHLIGHT?this.#au(c):null;a?.toggleDrawing();let b=new AbortController,d=this.combinedSignal(b),e=c=>{("pointerup"!==c.type||0===c.button)&&(b.abort(),a?.toggleDrawing(!0),"pointerup"===c.type&&this.#ay("main_toolbar"))};window.addEventListener("pointerup",e,{signal:d}),window.addEventListener("blur",e,{signal:d})}}#ay(a=""){this.#af===j.HIGHLIGHT?this.highlightSelection(a):this.#R&&this.#av()}#aq(){document.addEventListener("selectionchange",this.#aw.bind(this),{signal:this._signal})}#az(){if(this.#W)return;this.#W=new AbortController;let a=this.combinedSignal(this.#W);window.addEventListener("focus",this.focus.bind(this),{signal:a}),window.addEventListener("blur",this.blur.bind(this),{signal:a})}#aA(){this.#W?.abort(),this.#W=null}blur(){if(this.isShiftKeyDown=!1,this.#Y&&(this.#Y=!1,this.#ay("main_toolbar")),!this.hasSelection)return;let{activeElement:a}=document;for(let b of this.#ag)if(b.div.contains(a)){this.#ac=[b,a],b._focusEventsAllowed=!1;break}}focus(){if(!this.#ac)return;let[a,b]=this.#ac;this.#ac=null,b.addEventListener("focusin",()=>{a._focusEventsAllowed=!0},{once:!0,signal:this._signal}),b.focus()}#as(){if(this.#ab)return;this.#ab=new AbortController;let a=this.combinedSignal(this.#ab);window.addEventListener("keydown",this.keydown.bind(this),{signal:a}),window.addEventListener("keyup",this.keyup.bind(this),{signal:a})}#aB(){this.#ab?.abort(),this.#ab=null}#aC(){if(this.#K)return;this.#K=new AbortController;let a=this.combinedSignal(this.#K);document.addEventListener("copy",this.copy.bind(this),{signal:a}),document.addEventListener("cut",this.cut.bind(this),{signal:a}),document.addEventListener("paste",this.paste.bind(this),{signal:a})}#aD(){this.#K?.abort(),this.#K=null}#ar(){let a=this._signal;document.addEventListener("dragover",this.dragOver.bind(this),{signal:a}),document.addEventListener("drop",this.drop.bind(this),{signal:a})}addEditListeners(){this.#as(),this.#aC()}removeEditListeners(){this.#aB(),this.#aD()}dragOver(a){for(let{type:b}of a.dataTransfer.items)for(let c of this.#P)if(c.isHandlingMimeForPasting(b)){a.dataTransfer.dropEffect="copy",a.preventDefault();return}}drop(a){for(let b of a.dataTransfer.items)for(let c of this.#P)if(c.isHandlingMimeForPasting(b.type)){c.paste(b,this.currentLayer),a.preventDefault();return}}copy(a){if(a.preventDefault(),this.#D?.commitOrRemove(),!this.hasSelection)return;let b=[];for(let a of this.#ag){let c=a.serialize(!0);c&&b.push(c)}0!==b.length&&a.clipboardData.setData("application/pdfjs",JSON.stringify(b))}cut(a){this.copy(a),this.delete()}async paste(a){a.preventDefault();let{clipboardData:b}=a;for(let a of b.items)for(let b of this.#P)if(b.isHandlingMimeForPasting(a.type))return void b.paste(a,this.currentLayer);let c=b.getData("application/pdfjs");if(!c)return;try{c=JSON.parse(c)}catch(a){s(`paste: "${a.message}".`);return}if(!Array.isArray(c))return;this.unselectAll();let d=this.currentLayer;try{let a=[];for(let b of c){let c=await d.deserialize(b);if(!c)return;a.push(c)}let b=()=>{for(let b of a)this.#aE(b);this.#aF(a)};this.addCommands({cmd:b,undo:()=>{for(let b of a)b.remove()},mustExec:!0})}catch(a){s(`paste: "${a.message}".`)}}keydown(a){this.isShiftKeyDown||"Shift"!==a.key||(this.isShiftKeyDown=!0),this.#af===j.NONE||this.isEditorHandlingKeyboard||ap._keyboardManager.exec(this,a)}keyup(a){this.isShiftKeyDown&&"Shift"===a.key&&(this.isShiftKeyDown=!1,this.#Y&&(this.#Y=!1,this.#ay("main_toolbar")))}onEditingAction({name:a}){switch(a){case"undo":case"redo":case"delete":case"selectAll":this[a]();break;case"highlightSelection":this.highlightSelection("context_menu")}}#ax(a){Object.entries(a).some(([a,b])=>this.#ak[a]!==b)&&(this._eventBus.dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(this.#ak,a)}),this.#af===j.HIGHLIGHT&&!1===a.hasSelectedEditor&&this.#aG([[k.HIGHLIGHT_FREE,!0]]))}#aG(a){this._eventBus.dispatch("annotationeditorparamschanged",{source:this,details:a})}setEditingState(a){a?(this.#az(),this.#aC(),this.#ax({isEditing:this.#af!==j.NONE,isEmpty:this.#aH(),hasSomethingToUndo:this.#J.hasSomethingToUndo(),hasSomethingToRedo:this.#J.hasSomethingToRedo(),hasSelectedEditor:!1})):(this.#aA(),this.#aD(),this.#ax({isEditing:!1}),this.disableUserSelect(!1))}registerEditorTypes(a){if(!this.#P)for(let b of(this.#P=a,this.#P))this.#aG(b.defaultPropertiesToUpdate)}getId(){return this.#$.id}get currentLayer(){return this.#F.get(this.#M)}getLayer(a){return this.#F.get(a)}get currentPageIndex(){return this.#M}addLayer(a){this.#F.set(a.pageIndex,a),this.#_?a.enable():a.disable()}removeLayer(a){this.#F.delete(a.pageIndex)}async updateMode(a,b=null,c=!1){if(this.#af!==a&&(!this.#ap||(await this.#ap.promise,this.#ap))){if(this.#ap=Promise.withResolvers(),this.#af=a,a===j.NONE){this.setEditingState(!1),this.#aI(),this._editorUndoBar?.hide(),this.#ap.resolve();return}for(let b of(this.setEditingState(!0),await this.#aJ(),this.unselectAll(),this.#F.values()))b.updateMode(a);if(!b){c&&this.addNewEditorFromKeyboard(),this.#ap.resolve();return}for(let a of this.#E.values())a.annotationElementId===b?(this.setSelected(a),a.enterInEditMode()):a.unselect();this.#ap.resolve()}}addNewEditorFromKeyboard(){this.currentLayer.canCreateNewEmptyEditor()&&this.currentLayer.addNewEditor()}updateToolbar(a){a!==this.#af&&this._eventBus.dispatch("switchannotationeditormode",{source:this,mode:a})}updateParams(a,b){if(this.#P){switch(a){case k.CREATE:this.currentLayer.addNewEditor();return;case k.HIGHLIGHT_DEFAULT_COLOR:this.#ad?.updateColor(b);break;case k.HIGHLIGHT_SHOW_ALL:this._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:{type:"highlight",action:"toggle_visibility"}}}),(this.#aj||=new Map).set(a,b),this.showAllEditors("highlight",b)}for(let c of this.#ag)c.updateParams(a,b);for(let c of this.#P)c.updateDefaultParams(a,b)}}showAllEditors(a,b,c=!1){for(let c of this.#E.values())c.editorType===a&&c.show(b);(this.#aj?.get(k.HIGHLIGHT_SHOW_ALL)??!0)!==b&&this.#aG([[k.HIGHLIGHT_SHOW_ALL,b]])}enableWaiting(a=!1){if(this.#aa!==a)for(let b of(this.#aa=a,this.#F.values()))a?b.disableClick():b.enableClick(),b.div.classList.toggle("waiting",a)}async #aJ(){if(!this.#_){this.#_=!0;let a=[];for(let b of this.#F.values())a.push(b.enable());for(let b of(await Promise.all(a),this.#E.values()))b.enable()}}#aI(){if(this.unselectAll(),this.#_){for(let a of(this.#_=!1,this.#F.values()))a.disable();for(let a of this.#E.values())a.disable()}}getEditors(a){let b=[];for(let c of this.#E.values())c.pageIndex===a&&b.push(c);return b}getEditor(a){return this.#E.get(a)}addEditor(a){this.#E.set(a.id,a)}removeEditor(a){a.div.contains(document.activeElement)&&(this.#V&&clearTimeout(this.#V),this.#V=setTimeout(()=>{this.focusMainContainer(),this.#V=null},0)),this.#E.delete(a.id),this.unselect(a),a.annotationElementId&&this.#N.has(a.annotationElementId)||this.#H?.remove(a.id)}addDeletedAnnotationElement(a){this.#N.add(a.annotationElementId),this.addChangedExistingAnnotation(a),a.deleted=!0}isDeletedAnnotationElement(a){return this.#N.has(a)}removeDeletedAnnotationElement(a){this.#N.delete(a.annotationElementId),this.removeChangedExistingAnnotation(a),a.deleted=!1}#aE(a){let b=this.#F.get(a.pageIndex);b?b.addOrRebuild(a):(this.addEditor(a),this.addToAnnotationStorage(a))}setActiveEditor(a){this.#D!==a&&(this.#D=a,a&&this.#aG(a.propertiesToUpdate))}get #aK(){let a=null;for(a of this.#ag);return a}updateUI(a){this.#aK===a&&this.#aG(a.propertiesToUpdate)}updateUIForDefaultProperties(a){this.#aG(a.defaultPropertiesToUpdate)}toggleSelected(a){if(this.#ag.has(a)){this.#ag.delete(a),a.unselect(),this.#ax({hasSelectedEditor:this.hasSelection});return}this.#ag.add(a),a.select(),this.#aG(a.propertiesToUpdate),this.#ax({hasSelectedEditor:!0})}setSelected(a){for(let b of(this.#L?.commitOrRemove(),this.#ag))b!==a&&b.unselect();this.#ag.clear(),this.#ag.add(a),a.select(),this.#aG(a.propertiesToUpdate),this.#ax({hasSelectedEditor:!0})}isSelected(a){return this.#ag.has(a)}get firstSelectedEditor(){return this.#ag.values().next().value}unselect(a){a.unselect(),this.#ag.delete(a),this.#ax({hasSelectedEditor:this.hasSelection})}get hasSelection(){return 0!==this.#ag.size}get isEnterHandled(){return 1===this.#ag.size&&this.firstSelectedEditor.isEnterHandled}undo(){this.#J.undo(),this.#ax({hasSomethingToUndo:this.#J.hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:this.#aH()}),this._editorUndoBar?.hide()}redo(){this.#J.redo(),this.#ax({hasSomethingToUndo:!0,hasSomethingToRedo:this.#J.hasSomethingToRedo(),isEmpty:this.#aH()})}addCommands(a){this.#J.add(a),this.#ax({hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:this.#aH()})}cleanUndoStack(a){this.#J.cleanType(a)}#aH(){if(0===this.#E.size)return!0;if(1===this.#E.size)for(let a of this.#E.values())return a.isEmpty();return!1}delete(){this.commitOrRemove();let a=this.currentLayer?.endDrawingSession(!0);if(!this.hasSelection&&!a)return;let b=a?[a]:[...this.#ag],c=()=>{for(let a of(this._editorUndoBar?.show(d,1===b.length?b[0].editorType:b.length),b))a.remove()},d=()=>{for(let a of b)this.#aE(a)};this.addCommands({cmd:c,undo:d,mustExec:!0})}commitOrRemove(){this.#D?.commitOrRemove()}hasSomethingToControl(){return this.#D||this.hasSelection}#aF(a){for(let a of this.#ag)a.unselect();for(let b of(this.#ag.clear(),a))b.isEmpty()||(this.#ag.add(b),b.select());this.#ax({hasSelectedEditor:this.hasSelection})}selectAll(){for(let a of this.#ag)a.commit();this.#aF(this.#E.values())}unselectAll(){if(!this.#D||(this.#D.commitOrRemove(),this.#af===j.NONE)){if(!this.#L?.commitOrRemove()&&this.hasSelection){for(let a of this.#ag)a.unselect();this.#ag.clear(),this.#ax({hasSelectedEditor:!1})}}}translateSelectedEditors(a,b,c=!1){if(c||this.commitOrRemove(),!this.hasSelection)return;this.#al[0]+=a,this.#al[1]+=b;let[d,e]=this.#al,f=[...this.#ag];for(let c of(this.#am&&clearTimeout(this.#am),this.#am=setTimeout(()=>{this.#am=null,this.#al[0]=this.#al[1]=0,this.addCommands({cmd:()=>{for(let a of f)this.#E.has(a.id)&&a.translateInPage(d,e)},undo:()=>{for(let a of f)this.#E.has(a.id)&&a.translateInPage(-d,-e)},mustExec:!1})},1e3),f))c.translateInPage(a,b)}setUpDragSession(){if(this.hasSelection)for(let a of(this.disableUserSelect(!0),this.#O=new Map,this.#ag))this.#O.set(a,{savedX:a.x,savedY:a.y,savedPageIndex:a.pageIndex,newX:0,newY:0,newPageIndex:-1})}endDragSession(){if(!this.#O)return!1;this.disableUserSelect(!1);let a=this.#O;this.#O=null;let b=!1;for(let[{x:c,y:d,pageIndex:e},f]of a)f.newX=c,f.newY=d,f.newPageIndex=e,b||=c!==f.savedX||d!==f.savedY||e!==f.savedPageIndex;if(!b)return!1;let c=(a,b,c,d)=>{if(this.#E.has(a.id)){let e=this.#F.get(d);e?a._setParentAndPosition(e,b,c):(a.pageIndex=d,a.x=b,a.y=c)}};return this.addCommands({cmd:()=>{for(let[b,{newX:d,newY:e,newPageIndex:f}]of a)c(b,d,e,f)},undo:()=>{for(let[b,{savedX:d,savedY:e,savedPageIndex:f}]of a)c(b,d,e,f)},mustExec:!0}),!0}dragSelectedEditors(a,b){if(this.#O)for(let c of this.#O.keys())c.drag(a,b)}rebuild(a){if(null===a.parent){let b=this.getLayer(a.pageIndex);b?(b.changeParent(a),b.addOrRebuild(a)):(this.addEditor(a),this.addToAnnotationStorage(a),a.rebuild())}else a.parent.addOrRebuild(a)}get isEditorHandlingKeyboard(){return this.getActive()?.shouldGetKeyboardEvents()||1===this.#ag.size&&this.firstSelectedEditor.shouldGetKeyboardEvents()}isActive(a){return this.#D===a}getActive(){return this.#D}getMode(){return this.#af}get imageManager(){return w(this,"imageManager",new al)}getSelectionBoxes(a){let b;if(!a)return null;let c=document.getSelection();for(let b=0,d=c.rangeCount;b<d;b++)if(!a.contains(c.getRangeAt(b).commonAncestorContainer))return null;let{x:d,y:e,width:f,height:g}=a.getBoundingClientRect();switch(a.getAttribute("data-main-rotation")){case"90":b=(a,b,c,h)=>({x:(b-e)/g,y:1-(a+c-d)/f,width:h/g,height:c/f});break;case"180":b=(a,b,c,h)=>({x:1-(a+c-d)/f,y:1-(b+h-e)/g,width:c/f,height:h/g});break;case"270":b=(a,b,c,h)=>({x:1-(b+h-e)/g,y:(a-d)/f,width:h/g,height:c/f});break;default:b=(a,b,c,h)=>({x:(a-d)/f,y:(b-e)/g,width:c/f,height:h/g})}let h=[];for(let a=0,d=c.rangeCount;a<d;a++){let d=c.getRangeAt(a);if(!d.collapsed)for(let{x:a,y:c,width:e,height:f}of d.getClientRects())0!==e&&0!==f&&h.push(b(a,c,e,f))}return 0===h.length?null:h}addChangedExistingAnnotation({annotationElementId:a,id:b}){(this.#I||=new Map).set(a,b)}removeChangedExistingAnnotation({annotationElementId:a}){this.#I?.delete(a)}renderAnnotationElement(a){let b=this.#I?.get(a.data.id);if(!b)return;let c=this.#H.getRawValue(b);!c||(this.#af!==j.NONE||c.hasBeenModified)&&c.renderAnnotationElement(a)}}class aq{#h=null;#aL=!1;#aM=null;#aN=null;#aO=null;#aP=null;#aQ=!1;#aR=null;#f=null;#aS=null;#aT=null;#aU=!1;static #aV=null;static _l10n=null;constructor(a){this.#f=a,this.#aU=a._uiManager.useNewAltTextFlow,aq.#aV||=Object.freeze({added:"pdfjs-editor-new-alt-text-added-button","added-label":"pdfjs-editor-new-alt-text-added-button-label",missing:"pdfjs-editor-new-alt-text-missing-button","missing-label":"pdfjs-editor-new-alt-text-missing-button-label",review:"pdfjs-editor-new-alt-text-to-review-button","review-label":"pdfjs-editor-new-alt-text-to-review-button-label"})}static initialize(a){aq._l10n??=a}async render(){let a=this.#aM=document.createElement("button");a.className="altText",a.tabIndex="0";let b=this.#aN=document.createElement("span");a.append(b),this.#aU?(a.classList.add("new"),a.setAttribute("data-l10n-id",aq.#aV.missing),b.setAttribute("data-l10n-id",aq.#aV["missing-label"])):(a.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button"),b.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button-label"));let c=this.#f._uiManager._signal;a.addEventListener("contextmenu",$,{signal:c}),a.addEventListener("pointerdown",a=>a.stopPropagation(),{signal:c});let d=a=>{a.preventDefault(),this.#f._uiManager.editAltText(this.#f),this.#aU&&this.#f._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_clicked",data:{label:this.#aW}})};return a.addEventListener("click",d,{capture:!0,signal:c}),a.addEventListener("keydown",b=>{b.target===a&&"Enter"===b.key&&(this.#aQ=!0,d(b))},{signal:c}),await this.#aX(),a}get #aW(){return this.#h&&"added"||null===this.#h&&this.guessedText&&"review"||"missing"}finish(){this.#aM&&(this.#aM.focus({focusVisible:this.#aQ}),this.#aQ=!1)}isEmpty(){return this.#aU?null===this.#h:!this.#h&&!this.#aL}hasData(){return this.#aU?null!==this.#h||!!this.#aS:this.isEmpty()}get guessedText(){return this.#aS}async setGuessedText(a){null===this.#h&&(this.#aS=a,this.#aT=await aq._l10n.get("pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer",{generatedAltText:a}),this.#aX())}toggleAltTextBadge(a=!1){if(!this.#aU||this.#h){this.#aR?.remove(),this.#aR=null;return}if(!this.#aR){let a=this.#aR=document.createElement("div");a.className="noAltTextBadge",this.#f.div.append(a)}this.#aR.classList.toggle("hidden",!a)}serialize(a){let b=this.#h;return a||this.#aS!==b||(b=this.#aT),{altText:b,decorative:this.#aL,guessedText:this.#aS,textWithDisclaimer:this.#aT}}get data(){return{altText:this.#h,decorative:this.#aL}}set data({altText:a,decorative:b,guessedText:c,textWithDisclaimer:d,cancel:e=!1}){c&&(this.#aS=c,this.#aT=d),(this.#h!==a||this.#aL!==b)&&(e||(this.#h=a,this.#aL=b),this.#aX())}toggle(a=!1){this.#aM&&(!a&&this.#aP&&(clearTimeout(this.#aP),this.#aP=null),this.#aM.disabled=!a)}shown(){this.#f._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_displayed",data:{label:this.#aW}})}destroy(){this.#aM?.remove(),this.#aM=null,this.#aN=null,this.#aO=null,this.#aR?.remove(),this.#aR=null}async #aX(){let a=this.#aM;if(!a)return;if(this.#aU){if(a.classList.toggle("done",!!this.#h),a.setAttribute("data-l10n-id",aq.#aV[this.#aW]),this.#aN?.setAttribute("data-l10n-id",aq.#aV[`${this.#aW}-label`]),!this.#h)return void this.#aO?.remove()}else{if(!this.#h&&!this.#aL){a.classList.remove("done"),this.#aO?.remove();return}a.classList.add("done"),a.setAttribute("data-l10n-id","pdfjs-editor-alt-text-edit-button")}let b=this.#aO;if(!b){this.#aO=b=document.createElement("span"),b.className="tooltip",b.setAttribute("role","tooltip"),b.id=`alt-text-tooltip-${this.#f.id}`;let c=this.#f._uiManager._signal;c.addEventListener("abort",()=>{clearTimeout(this.#aP),this.#aP=null},{once:!0}),a.addEventListener("mouseenter",()=>{this.#aP=setTimeout(()=>{this.#aP=null,this.#aO.classList.add("show"),this.#f._reportTelemetry({action:"alt_text_tooltip"})},100)},{signal:c}),a.addEventListener("mouseleave",()=>{this.#aP&&(clearTimeout(this.#aP),this.#aP=null),this.#aO?.classList.remove("show")},{signal:c})}this.#aL?b.setAttribute("data-l10n-id","pdfjs-editor-alt-text-decorative-tooltip"):(b.removeAttribute("data-l10n-id"),b.textContent=this.#h),b.parentNode||a.append(b);let c=this.#f.getImageForAltText();c?.setAttribute("aria-describedby",b.id)}}class ar{#an;#aY=!1;#aZ=null;#a$;#a_;#a0;#a1;#a2;#a3=null;#a4;#a5=null;constructor({container:a,isPinchingDisabled:b=null,isPinchingStopped:c=null,onPinchStart:d=null,onPinching:e=null,onPinchEnd:f=null,signal:g}){this.#an=a,this.#aZ=c,this.#a$=b,this.#a_=d,this.#a0=e,this.#a1=f,this.#a4=new AbortController,this.#a2=AbortSignal.any([g,this.#a4.signal]),a.addEventListener("touchstart",this.#a6.bind(this),{passive:!1,signal:this.#a2})}get MIN_TOUCH_DISTANCE_TO_PINCH(){return w(this,"MIN_TOUCH_DISTANCE_TO_PINCH",35/(window.devicePixelRatio||1))}#a6(a){if(this.#a$?.()||a.touches.length<2)return;if(!this.#a5){this.#a5=new AbortController;let a=AbortSignal.any([this.#a2,this.#a5.signal]),b=this.#an,c={signal:a,passive:!1};b.addEventListener("touchmove",this.#a7.bind(this),c),b.addEventListener("touchend",this.#a8.bind(this),c),b.addEventListener("touchcancel",this.#a8.bind(this),c),this.#a_?.()}if(_(a),2!==a.touches.length||this.#aZ?.()){this.#a3=null;return}let[b,c]=a.touches;b.identifier>c.identifier&&([b,c]=[c,b]),this.#a3={touch0X:b.screenX,touch0Y:b.screenY,touch1X:c.screenX,touch1Y:c.screenY}}#a7(a){if(!this.#a3||2!==a.touches.length)return;let[b,c]=a.touches;b.identifier>c.identifier&&([b,c]=[c,b]);let{screenX:d,screenY:e}=b,{screenX:f,screenY:g}=c,h=this.#a3,{touch0X:i,touch0Y:j,touch1X:k,touch1Y:l}=h,m=Math.hypot(f-d,g-e)||1,n=Math.hypot(k-i,l-j)||1;if(!this.#aY&&Math.abs(n-m)<=ar.MIN_TOUCH_DISTANCE_TO_PINCH)return;if(h.touch0X=d,h.touch0Y=e,h.touch1X=f,h.touch1Y=g,a.preventDefault(),!this.#aY){this.#aY=!0;return}let o=[(d+f)/2,(e+g)/2];this.#a0?.(o,n,m)}#a8(a){this.#a5.abort(),this.#a5=null,this.#a1?.(),this.#a3&&(a.preventDefault(),this.#a3=null,this.#aY=!1)}destroy(){this.#a4?.abort(),this.#a4=null}}class as{#a9=null;#ba=null;#h=null;#bb=!1;#bc=null;#bd="";#be=!1;#bf=null;#bg=null;#bh=null;#bi=null;#bj="";#bk=!1;#bl=null;#bm=!1;#bn=!1;#bo=!1;#bp=null;#bq=0;#br=0;#bs=null;#bt=null;_editToolbar=null;_initialOptions=Object.create(null);_initialData=null;_isVisible=!0;_uiManager=null;_focusEventsAllowed=!0;static _l10n=null;static _l10nResizer=null;#bu=!1;#bv=as._zIndex++;static _borderLineWidth=-1;static _colorManager=new ao;static _zIndex=1;static _telemetryTimeout=1e3;static get _resizerKeyboardManager(){let a=as.prototype._resizeWithKeyboard,b=ap.TRANSLATE_SMALL,c=ap.TRANSLATE_BIG;return w(this,"_resizerKeyboardManager",new an([[["ArrowLeft","mac+ArrowLeft"],a,{args:[-b,0]}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],a,{args:[-c,0]}],[["ArrowRight","mac+ArrowRight"],a,{args:[b,0]}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],a,{args:[c,0]}],[["ArrowUp","mac+ArrowUp"],a,{args:[0,-b]}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],a,{args:[0,-c]}],[["ArrowDown","mac+ArrowDown"],a,{args:[0,b]}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],a,{args:[0,c]}],[["Escape","mac+Escape"],as.prototype._stopResizingWithKeyboard]]))}constructor(a){this.parent=a.parent,this.id=a.id,this.width=this.height=null,this.pageIndex=a.parent.pageIndex,this.name=a.name,this.div=null,this._uiManager=a.uiManager,this.annotationElementId=null,this._willKeepAspectRatio=!1,this._initialOptions.isCentered=a.isCentered,this._structTreeParentId=null;const{rotation:b,rawDims:{pageWidth:c,pageHeight:d,pageX:e,pageY:f}}=this.parent.viewport;this.rotation=b,this.pageRotation=(360+b-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[c,d],this.pageTranslation=[e,f];const[g,h]=this.parentDimensions;this.x=a.x/g,this.y=a.y/h,this.isAttachedToDOM=!1,this.deleted=!1}get editorType(){return Object.getPrototypeOf(this).constructor._type}static get isDrawer(){return!1}static get _defaultLineColor(){return w(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}static deleteAnnotationElement(a){let b=new at({id:a.parent.getNextId(),parent:a.parent,uiManager:a._uiManager});b.annotationElementId=a.annotationElementId,b.deleted=!0,b._uiManager.addToAnnotationStorage(b)}static initialize(a,b){if(as._l10n??=a,as._l10nResizer||=Object.freeze({topLeft:"pdfjs-editor-resizer-top-left",topMiddle:"pdfjs-editor-resizer-top-middle",topRight:"pdfjs-editor-resizer-top-right",middleRight:"pdfjs-editor-resizer-middle-right",bottomRight:"pdfjs-editor-resizer-bottom-right",bottomMiddle:"pdfjs-editor-resizer-bottom-middle",bottomLeft:"pdfjs-editor-resizer-bottom-left",middleLeft:"pdfjs-editor-resizer-middle-left"}),-1!==as._borderLineWidth)return;let c=getComputedStyle(document.documentElement);as._borderLineWidth=parseFloat(c.getPropertyValue("--outline-width"))||0}static updateDefaultParams(a,b){}static get defaultPropertiesToUpdate(){return[]}static isHandlingMimeForPasting(a){return!1}static paste(a,b){t("Not implemented")}get propertiesToUpdate(){return[]}get _isDraggable(){return this.#bu}set _isDraggable(a){this.#bu=a,this.div?.classList.toggle("draggable",a)}get isEnterHandled(){return!0}center(){let[a,b]=this.pageDimensions;switch(this.parentRotation){case 90:this.x-=this.height*b/(2*a),this.y+=this.width*a/(2*b);break;case 180:this.x+=this.width/2,this.y+=this.height/2;break;case 270:this.x+=this.height*b/(2*a),this.y-=this.width*a/(2*b);break;default:this.x-=this.width/2,this.y-=this.height/2}this.fixAndSetPosition()}addCommands(a){this._uiManager.addCommands(a)}get currentLayer(){return this._uiManager.currentLayer}setInBackground(){this.div.style.zIndex=0}setInForeground(){this.div.style.zIndex=this.#bv}setParent(a){null!==a?(this.pageIndex=a.pageIndex,this.pageDimensions=a.pageDimensions):this.#bw(),this.parent=a}focusin(a){this._focusEventsAllowed&&(this.#bk?this.#bk=!1:this.parent.setSelected(this))}focusout(a){if(!this._focusEventsAllowed||!this.isAttachedToDOM)return;let b=a.relatedTarget;!b?.closest(`#${this.id}`)&&(a.preventDefault(),this.parent?.isMultipleSelection||this.commitOrRemove())}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}setAt(a,b,c,d){let[e,f]=this.parentDimensions;[c,d]=this.screenToPageTranslation(c,d),this.x=(a+c)/e,this.y=(b+d)/f,this.fixAndSetPosition()}#bx([a,b],c,d){[c,d]=this.screenToPageTranslation(c,d),this.x+=c/a,this.y+=d/b,this._onTranslating(this.x,this.y),this.fixAndSetPosition()}translate(a,b){this.#bx(this.parentDimensions,a,b)}translateInPage(a,b){this.#bl||=[this.x,this.y,this.width,this.height],this.#bx(this.pageDimensions,a,b),this.div.scrollIntoView({block:"nearest"})}drag(a,b){this.#bl||=[this.x,this.y,this.width,this.height];let{div:c,parentDimensions:[d,e]}=this;if(this.x+=a/d,this.y+=b/e,this.parent&&(this.x<0||this.x>1||this.y<0||this.y>1)){let{x:a,y:b}=this.div.getBoundingClientRect();this.parent.findNewParent(this,a,b)&&(this.x-=Math.floor(this.x),this.y-=Math.floor(this.y))}let{x:f,y:g}=this,[h,i]=this.getBaseTranslation();f+=h,g+=i;let{style:j}=c;j.left=`${(100*f).toFixed(2)}%`,j.top=`${(100*g).toFixed(2)}%`,this._onTranslating(f,g),c.scrollIntoView({block:"nearest"})}_onTranslating(a,b){}_onTranslated(a,b){}get _hasBeenMoved(){return!!this.#bl&&(this.#bl[0]!==this.x||this.#bl[1]!==this.y)}get _hasBeenResized(){return!!this.#bl&&(this.#bl[2]!==this.width||this.#bl[3]!==this.height)}getBaseTranslation(){let[a,b]=this.parentDimensions,{_borderLineWidth:c}=as,d=c/a,e=c/b;switch(this.rotation){case 90:return[-d,e];case 180:return[d,e];case 270:return[d,-e];default:return[-d,-e]}}get _mustFixPosition(){return!0}fixAndSetPosition(a=this.rotation){let{div:{style:b},pageDimensions:[c,d]}=this,{x:e,y:f,width:g,height:h}=this;if(g*=c,h*=d,e*=c,f*=d,this._mustFixPosition)switch(a){case 0:e=Math.max(0,Math.min(c-g,e)),f=Math.max(0,Math.min(d-h,f));break;case 90:e=Math.max(0,Math.min(c-h,e)),f=Math.min(d,Math.max(g,f));break;case 180:e=Math.min(c,Math.max(g,e)),f=Math.min(d,Math.max(h,f));break;case 270:e=Math.min(c,Math.max(h,e)),f=Math.max(0,Math.min(d-g,f))}this.x=e/=c,this.y=f/=d;let[i,j]=this.getBaseTranslation();e+=i,f+=j,b.left=`${(100*e).toFixed(2)}%`,b.top=`${(100*f).toFixed(2)}%`,this.moveInDOM()}static #by(a,b,c){switch(c){case 90:return[b,-a];case 180:return[-a,-b];case 270:return[-b,a];default:return[a,b]}}screenToPageTranslation(a,b){return as.#by(a,b,this.parentRotation)}pageTranslationToScreen(a,b){return as.#by(a,b,360-this.parentRotation)}#bz(a){switch(a){case 90:{let[a,b]=this.pageDimensions;return[0,-a/b,b/a,0]}case 180:return[-1,0,0,-1];case 270:{let[a,b]=this.pageDimensions;return[0,a/b,-b/a,0]}default:return[1,0,0,1]}}get parentScale(){return this._uiManager.viewParameters.realScale}get parentRotation(){return(this._uiManager.viewParameters.rotation+this.pageRotation)%360}get parentDimensions(){let{parentScale:a,pageDimensions:[b,c]}=this;return[b*a,c*a]}setDims(a,b){let[c,d]=this.parentDimensions,{style:e}=this.div;e.width=`${(100*a/c).toFixed(2)}%`,this.#be||(e.height=`${(100*b/d).toFixed(2)}%`)}fixDims(){let{style:a}=this.div,{height:b,width:c}=a,d=c.endsWith("%"),e=!this.#be&&b.endsWith("%");if(d&&e)return;let[f,g]=this.parentDimensions;d||(a.width=`${(100*parseFloat(c)/f).toFixed(2)}%`),this.#be||e||(a.height=`${(100*parseFloat(b)/g).toFixed(2)}%`)}getInitialTranslation(){return[0,0]}#bA(){if(this.#bf)return;this.#bf=document.createElement("div"),this.#bf.classList.add("resizers");let a=this._willKeepAspectRatio?["topLeft","topRight","bottomRight","bottomLeft"]:["topLeft","topMiddle","topRight","middleRight","bottomRight","bottomMiddle","bottomLeft","middleLeft"],b=this._uiManager._signal;for(let c of a){let a=document.createElement("div");this.#bf.append(a),a.classList.add("resizer",c),a.setAttribute("data-resizer-name",c),a.addEventListener("pointerdown",this.#bB.bind(this,c),{signal:b}),a.addEventListener("contextmenu",$,{signal:b}),a.tabIndex=-1}this.div.prepend(this.#bf)}#bB(a,b){b.preventDefault();let{isMac:c}=I.platform;if(0!==b.button||b.ctrlKey&&c)return;this.#h?.toggle(!1);let d=this._isDraggable;this._isDraggable=!1,this.#bg=[b.screenX,b.screenY];let e=new AbortController,f=this._uiManager.combinedSignal(e);this.parent.togglePointerEvents(!1),window.addEventListener("pointermove",this.#bC.bind(this,a),{passive:!0,capture:!0,signal:f}),window.addEventListener("touchmove",_,{passive:!1,signal:f}),window.addEventListener("contextmenu",$,{signal:f}),this.#bh={savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height};let g=this.parent.div.style.cursor,h=this.div.style.cursor;this.div.style.cursor=this.parent.div.style.cursor=window.getComputedStyle(b.target).cursor;let i=()=>{e.abort(),this.parent.togglePointerEvents(!0),this.#h?.toggle(!0),this._isDraggable=d,this.parent.div.style.cursor=g,this.div.style.cursor=h,this.#bD()};window.addEventListener("pointerup",i,{signal:f}),window.addEventListener("blur",i,{signal:f})}#bE(a,b,c,d){this.width=c,this.height=d,this.x=a,this.y=b;let[e,f]=this.parentDimensions;this.setDims(e*c,f*d),this.fixAndSetPosition(),this._onResized()}_onResized(){}#bD(){if(!this.#bh)return;let{savedX:a,savedY:b,savedWidth:c,savedHeight:d}=this.#bh;this.#bh=null;let e=this.x,f=this.y,g=this.width,h=this.height;(e!==a||f!==b||g!==c||h!==d)&&this.addCommands({cmd:this.#bE.bind(this,e,f,g,h),undo:this.#bE.bind(this,a,b,c,d),mustExec:!0})}static _round(a){return Math.round(1e4*a)/1e4}#bC(a,b){let c,d,e,f,g,h,[i,j]=this.parentDimensions,k=this.x,l=this.y,m=this.width,n=this.height,o=as.MIN_SIZE/i,p=as.MIN_SIZE/j,q=this.#bz(this.rotation),r=(a,b)=>[q[0]*a+q[2]*b,q[1]*a+q[3]*b],s=this.#bz(360-this.rotation),t=!1,u=!1;switch(a){case"topLeft":t=!0,c=(a,b)=>[0,0],d=(a,b)=>[a,b];break;case"topMiddle":c=(a,b)=>[a/2,0],d=(a,b)=>[a/2,b];break;case"topRight":t=!0,c=(a,b)=>[a,0],d=(a,b)=>[0,b];break;case"middleRight":u=!0,c=(a,b)=>[a,b/2],d=(a,b)=>[0,b/2];break;case"bottomRight":t=!0,c=(a,b)=>[a,b],d=(a,b)=>[0,0];break;case"bottomMiddle":c=(a,b)=>[a/2,b],d=(a,b)=>[a/2,0];break;case"bottomLeft":t=!0,c=(a,b)=>[0,b],d=(a,b)=>[a,0];break;case"middleLeft":u=!0,c=(a,b)=>[0,b/2],d=(a,b)=>[a,b/2]}let v=c(m,n),w=d(m,n),x=r(...w),y=as._round(k+x[0]),z=as._round(l+x[1]),A=1,B=1;if(b.fromKeyboard)({deltaX:e,deltaY:f}=b);else{let{screenX:a,screenY:c}=b,[d,g]=this.#bg;[e,f]=this.screenToPageTranslation(a-d,c-g),this.#bg[0]=a,this.#bg[1]=c}if([e,f]=(g=e/i,h=f/j,[s[0]*g+s[2]*h,s[1]*g+s[3]*h]),t){let a=Math.hypot(m,n);A=B=Math.max(Math.min(Math.hypot(w[0]-v[0]-e,w[1]-v[1]-f)/a,1/m,1/n),o/m,p/n)}else u?A=Math.max(o,Math.min(1,Math.abs(w[0]-v[0]-e)))/m:B=Math.max(p,Math.min(1,Math.abs(w[1]-v[1]-f)))/n;let C=as._round(m*A),D=as._round(n*B),E=y-(x=r(...d(C,D)))[0],F=z-x[1];this.#bl||=[this.x,this.y,this.width,this.height],this.width=C,this.height=D,this.x=E,this.y=F,this.setDims(i*C,j*D),this.fixAndSetPosition(),this._onResizing()}_onResizing(){}altTextFinish(){this.#h?.finish()}async addEditToolbar(){return this._editToolbar||this.#bn||(this._editToolbar=new ah(this),this.div.append(this._editToolbar.render()),this.#h&&await this._editToolbar.addAltText(this.#h)),this._editToolbar}removeEditToolbar(){this._editToolbar&&(this._editToolbar.remove(),this._editToolbar=null,this.#h?.destroy())}addContainer(a){let b=this._editToolbar?.div;b?b.before(a):this.div.append(a)}getClientDimensions(){return this.div.getBoundingClientRect()}async addAltTextButton(){this.#h||(aq.initialize(as._l10n),this.#h=new aq(this),this.#a9&&(this.#h.data=this.#a9,this.#a9=null),await this.addEditToolbar())}get altTextData(){return this.#h?.data}set altTextData(a){this.#h&&(this.#h.data=a)}get guessedAltText(){return this.#h?.guessedText}async setGuessedAltText(a){await this.#h?.setGuessedText(a)}serializeAltText(a){return this.#h?.serialize(a)}hasAltText(){return!!this.#h&&!this.#h.isEmpty()}hasAltTextData(){return this.#h?.hasData()??!1}render(){this.div=document.createElement("div"),this.div.setAttribute("data-editor-rotation",(360-this.rotation)%360),this.div.className=this.name,this.div.setAttribute("id",this.id),this.div.tabIndex=this.#bb?-1:0,this._isVisible||this.div.classList.add("hidden"),this.setInForeground(),this.#bF();let[a,b]=this.parentDimensions;this.parentRotation%180!=0&&(this.div.style.maxWidth=`${(100*b/a).toFixed(2)}%`,this.div.style.maxHeight=`${(100*a/b).toFixed(2)}%`);let[c,d]=this.getInitialTranslation();return this.translate(c,d),aj(this,this.div,["pointerdown"]),this.isResizable&&this._uiManager._supportsPinchToZoom&&(this.#bt||=new ar({container:this.div,isPinchingDisabled:()=>!this.isSelected,onPinchStart:this.#bG.bind(this),onPinching:this.#bH.bind(this),onPinchEnd:this.#bI.bind(this),signal:this._uiManager._signal})),this._uiManager._editorUndoBar?.hide(),this.div}#bG(){this.#bh={savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height},this.#h?.toggle(!1),this.parent.togglePointerEvents(!1)}#bH(a,b,c){let d=c/b*.7+1-.7;if(1===d)return;let e=this.#bz(this.rotation),f=(a,b)=>[e[0]*a+e[2]*b,e[1]*a+e[3]*b],[g,h]=this.parentDimensions,i=this.x,j=this.y,k=this.width,l=this.height;d=Math.max(Math.min(d,1/k,1/l),as.MIN_SIZE/g/k,as.MIN_SIZE/h/l);let m=as._round(k*d),n=as._round(l*d);if(m===k&&n===l)return;this.#bl||=[i,j,k,l];let o=f(k/2,l/2),p=as._round(i+o[0]),q=as._round(j+o[1]),r=f(m/2,n/2);this.x=p-r[0],this.y=q-r[1],this.width=m,this.height=n,this.setDims(g*m,h*n),this.fixAndSetPosition(),this._onResizing()}#bI(){this.#h?.toggle(!0),this.parent.togglePointerEvents(!0),this.#bD()}pointerdown(a){let{isMac:b}=I.platform;0!==a.button||a.ctrlKey&&b?a.preventDefault():(this.#bk=!0,this._isDraggable)?this.#bJ(a):this.#bK(a)}get isSelected(){return this._uiManager.isSelected(this)}#bK(a){let{isMac:b}=I.platform;a.ctrlKey&&!b||a.shiftKey||a.metaKey&&b?this.parent.toggleSelected(this):this.parent.setSelected(this)}#bJ(a){let{isSelected:b}=this;this._uiManager.setUpDragSession();let c=!1,d=new AbortController,e=this._uiManager.combinedSignal(d),f={capture:!0,passive:!1,signal:e},g=a=>{d.abort(),this.#bc=null,this.#bk=!1,this._uiManager.endDragSession()||this.#bK(a),c&&this._onStopDragging()};b&&(this.#bq=a.clientX,this.#br=a.clientY,this.#bc=a.pointerId,this.#bd=a.pointerType,window.addEventListener("pointermove",a=>{c||(c=!0,this._onStartDragging());let{clientX:b,clientY:d,pointerId:e}=a;if(e!==this.#bc)return void _(a);let[f,g]=this.screenToPageTranslation(b-this.#bq,d-this.#br);this.#bq=b,this.#br=d,this._uiManager.dragSelectedEditors(f,g)},f),window.addEventListener("touchmove",_,f),window.addEventListener("pointerdown",a=>{a.pointerType===this.#bd&&(this.#bt||a.isPrimary)&&g(a),_(a)},f));let h=a=>{this.#bc&&this.#bc!==a.pointerId?_(a):g(a)};window.addEventListener("pointerup",h,{signal:e}),window.addEventListener("blur",h,{signal:e})}_onStartDragging(){}_onStopDragging(){}moveInDOM(){this.#bp&&clearTimeout(this.#bp),this.#bp=setTimeout(()=>{this.#bp=null,this.parent?.moveEditorInDOM(this)},0)}_setParentAndPosition(a,b,c){a.changeParent(this),this.x=b,this.y=c,this.fixAndSetPosition(),this._onTranslated()}getRect(a,b,c=this.rotation){let d=this.parentScale,[e,f]=this.pageDimensions,[g,h]=this.pageTranslation,i=a/d,j=b/d,k=this.x*e,l=this.y*f,m=this.width*e,n=this.height*f;switch(c){case 0:return[k+i+g,f-l-j-n+h,k+i+m+g,f-l-j+h];case 90:return[k+j+g,f-l+i+h,k+j+n+g,f-l+i+m+h];case 180:return[k-i-m+g,f-l+j+h,k-i+g,f-l+j+n+h];case 270:return[k-j-n+g,f-l-i-m+h,k-j+g,f-l-i+h];default:throw Error("Invalid rotation")}}getRectInCurrentCoords(a,b){let[c,d,e,f]=a,g=e-c,h=f-d;switch(this.rotation){case 0:return[c,b-f,g,h];case 90:return[c,b-d,h,g];case 180:return[e,b-d,g,h];case 270:return[e,b-f,h,g];default:throw Error("Invalid rotation")}}onceAdded(a){}isEmpty(){return!1}enableEditMode(){this.#bn=!0}disableEditMode(){this.#bn=!1}isInEditMode(){return this.#bn}shouldGetKeyboardEvents(){return this.#bo}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}get isOnScreen(){let{top:a,left:b,bottom:c,right:d}=this.getClientDimensions(),{innerHeight:e,innerWidth:f}=window;return b<f&&d>0&&a<e&&c>0}#bF(){if(this.#bi||!this.div)return;this.#bi=new AbortController;let a=this._uiManager.combinedSignal(this.#bi);this.div.addEventListener("focusin",this.focusin.bind(this),{signal:a}),this.div.addEventListener("focusout",this.focusout.bind(this),{signal:a})}rebuild(){this.#bF()}rotate(a){}resize(){}serializeDeleted(){return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex,popupRef:this._initialData?.popupRef||""}}serialize(a=!1,b=null){t("An editor must be serializable")}static async deserialize(a,b,c){let d=new this.prototype.constructor({parent:b,id:b.getNextId(),uiManager:c});d.rotation=a.rotation,d.#a9=a.accessibilityData;let[e,f]=d.pageDimensions,[g,h,i,j]=d.getRectInCurrentCoords(a.rect,f);return d.x=g/e,d.y=h/f,d.width=i/e,d.height=j/f,d}get hasBeenModified(){return!!this.annotationElementId&&(this.deleted||null!==this.serialize())}remove(){if(this.#bi?.abort(),this.#bi=null,this.isEmpty()||this.commit(),this.parent?this.parent.remove(this):this._uiManager.removeEditor(this),this.#bp&&(clearTimeout(this.#bp),this.#bp=null),this.#bw(),this.removeEditToolbar(),this.#bs){for(let a of this.#bs.values())clearTimeout(a);this.#bs=null}this.parent=null,this.#bt?.destroy(),this.#bt=null}get isResizable(){return!1}makeResizable(){this.isResizable&&(this.#bA(),this.#bf.classList.remove("hidden"),aj(this,this.div,["keydown"]))}get toolbarPosition(){return null}keydown(a){if(!this.isResizable||a.target!==this.div||"Enter"!==a.key)return;this._uiManager.setSelected(this),this.#bh={savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height};let b=this.#bf.children;if(!this.#ba){this.#ba=Array.from(b);let a=this.#bL.bind(this),c=this.#bM.bind(this),d=this._uiManager._signal;for(let b of this.#ba){let e=b.getAttribute("data-resizer-name");b.setAttribute("role","spinbutton"),b.addEventListener("keydown",a,{signal:d}),b.addEventListener("blur",c,{signal:d}),b.addEventListener("focus",this.#bN.bind(this,e),{signal:d}),b.setAttribute("data-l10n-id",as._l10nResizer[e])}}let c=this.#ba[0],d=0;for(let a of b){if(a===c)break;d++}let e=(360-this.rotation+this.parentRotation)%360/90*(this.#ba.length/4);if(e!==d){if(e<d)for(let a=0;a<d-e;a++)this.#bf.append(this.#bf.firstChild);else if(e>d)for(let a=0;a<e-d;a++)this.#bf.firstChild.before(this.#bf.lastChild);let a=0;for(let c of b){let b=this.#ba[a++].getAttribute("data-resizer-name");c.setAttribute("data-l10n-id",as._l10nResizer[b])}}this.#bO(0),this.#bo=!0,this.#bf.firstChild.focus({focusVisible:!0}),a.preventDefault(),a.stopImmediatePropagation()}#bL(a){as._resizerKeyboardManager.exec(this,a)}#bM(a){this.#bo&&a.relatedTarget?.parentNode!==this.#bf&&this.#bw()}#bN(a){this.#bj=this.#bo?a:""}#bO(a){if(this.#ba)for(let b of this.#ba)b.tabIndex=a}_resizeWithKeyboard(a,b){this.#bo&&this.#bC(this.#bj,{deltaX:a,deltaY:b,fromKeyboard:!0})}#bw(){this.#bo=!1,this.#bO(-1),this.#bD()}_stopResizingWithKeyboard(){this.#bw(),this.div.focus()}select(){(this.makeResizable(),this.div?.classList.add("selectedEditor"),this._editToolbar)?(this._editToolbar?.show(),this.#h?.toggleAltTextBadge(!1)):this.addEditToolbar().then(()=>{this.div?.classList.contains("selectedEditor")&&this._editToolbar?.show()})}unselect(){this.#bf?.classList.add("hidden"),this.div?.classList.remove("selectedEditor"),this.div?.contains(document.activeElement)&&this._uiManager.currentLayer.div.focus({preventScroll:!0}),this._editToolbar?.hide(),this.#h?.toggleAltTextBadge(!0)}updateParams(a,b){}disableEditing(){}enableEditing(){}enterInEditMode(){}getImageForAltText(){return null}get contentDiv(){return this.div}get isEditing(){return this.#bm}set isEditing(a){this.#bm=a,this.parent&&(a?(this.parent.setSelected(this),this.parent.setActiveEditor(this)):this.parent.setActiveEditor(null))}setAspectRatio(a,b){this.#be=!0;let{style:c}=this.div;c.aspectRatio=a/b,c.height="auto"}static get MIN_SIZE(){return 16}static canCreateNewEmptyEditor(){return!0}get telemetryInitialData(){return{action:"added"}}get telemetryFinalData(){return null}_reportTelemetry(a,b=!1){if(b){this.#bs||=new Map;let{action:b}=a,c=this.#bs.get(b);c&&clearTimeout(c),c=setTimeout(()=>{this._reportTelemetry(a),this.#bs.delete(b),0===this.#bs.size&&(this.#bs=null)},as._telemetryTimeout),this.#bs.set(b,c);return}a.type||=this.editorType,this._uiManager._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:a}})}show(a=this._isVisible){this.div.classList.toggle("hidden",!a),this._isVisible=a}enable(){this.div&&(this.div.tabIndex=0),this.#bb=!1}disable(){this.div&&(this.div.tabIndex=-1),this.#bb=!0}renderAnnotationElement(a){let b=a.container.querySelector(".annotationContent");if(b){if("CANVAS"===b.nodeName){let a=b;(b=document.createElement("div")).classList.add("annotationContent",this.editorType),a.before(b)}}else(b=document.createElement("div")).classList.add("annotationContent",this.editorType),a.container.prepend(b);return b}resetAnnotationElement(a){let{firstChild:b}=a.container;b?.nodeName==="DIV"&&b.classList.contains("annotationContent")&&b.remove()}}class at extends as{constructor(a){super(a),this.annotationElementId=a.annotationElementId,this.deleted=!0}serialize(){return this.serializeDeleted()}}class au{constructor(a){this.h1=a?0|a:0xc3d2e1f0,this.h2=a?0|a:0xc3d2e1f0}update(a){let b,c;if("string"==typeof a){b=new Uint8Array(2*a.length),c=0;for(let d=0,e=a.length;d<e;d++){let e=a.charCodeAt(d);e<=255?b[c++]=e:(b[c++]=e>>>8,b[c++]=255&e)}}else if(ArrayBuffer.isView(a))c=(b=a.slice()).byteLength;else throw Error("Invalid data format, must be a string or TypedArray.");let d=c>>2,e=c-4*d,f=new Uint32Array(b.buffer,0,d),g=0,h=0,i=this.h1,j=this.h2;for(let a=0;a<d;a++)1&a?(i^=g=0x1b873593*(g=(g=0xcc9e2d51*(g=f[a])&0xffff0000|11601*g&65535)<<15|g>>>17)&0xffff0000|13715*g&65535,i=5*(i=i<<13|i>>>19)+0xe6546b64):(j^=h=0x1b873593*(h=(h=0xcc9e2d51*(h=f[a])&0xffff0000|11601*h&65535)<<15|h>>>17)&0xffff0000|13715*h&65535,j=5*(j=j<<13|j>>>19)+0xe6546b64);switch(g=0,e){case 3:g^=b[4*d+2]<<16;case 2:g^=b[4*d+1]<<8;case 1:g^=b[4*d],g=0x1b873593*(g=(g=0xcc9e2d51*g&0xffff0000|11601*g&65535)<<15|g>>>17)&0xffff0000|13715*g&65535,1&d?i^=g:j^=g}this.h1=i,this.h2=j}hexdigest(){let a=this.h1,b=this.h2;return a^=b>>>1,b=0xff51afd7*b&0xffff0000|((b<<16|(a=0xed558ccd*a&0xffff0000|36045*a&65535)>>>16)*0xafd7ed55&0xffff0000)>>>16,a^=b>>>1,b=0xc4ceb9fe*b&0xffff0000|((b<<16|(a=0x1a85ec53*a&0xffff0000|60499*a&65535)>>>16)*0xb9fe1a85&0xffff0000)>>>16,((a^=b>>>1)>>>0).toString(16).padStart(8,"0")+(b>>>0).toString(16).padStart(8,"0")}}let av=Object.freeze({map:null,hash:"",transfer:void 0});class aw{#bP=!1;#bQ=null;#bR=new Map;constructor(){this.onSetModified=null,this.onResetModified=null,this.onAnnotationEditor=null}getValue(a,b){let c=this.#bR.get(a);return void 0===c?b:Object.assign(b,c)}getRawValue(a){return this.#bR.get(a)}remove(a){if(this.#bR.delete(a),0===this.#bR.size&&this.resetModified(),"function"==typeof this.onAnnotationEditor){for(let a of this.#bR.values())if(a instanceof as)return;this.onAnnotationEditor(null)}}setValue(a,b){let c=this.#bR.get(a),d=!1;if(void 0!==c)for(let[a,e]of Object.entries(b))c[a]!==e&&(d=!0,c[a]=e);else d=!0,this.#bR.set(a,b);d&&this.#bS(),b instanceof as&&"function"==typeof this.onAnnotationEditor&&this.onAnnotationEditor(b.constructor._type)}has(a){return this.#bR.has(a)}getAll(){return this.#bR.size>0?H(this.#bR):null}setAll(a){for(let[b,c]of Object.entries(a))this.setValue(b,c)}get size(){return this.#bR.size}#bS(){this.#bP||(this.#bP=!0,"function"==typeof this.onSetModified&&this.onSetModified())}resetModified(){this.#bP&&(this.#bP=!1,"function"==typeof this.onResetModified&&this.onResetModified())}get print(){return new ax(this)}get serializable(){if(0===this.#bR.size)return av;let a=new Map,b=new au,c=[],d=Object.create(null),e=!1;for(let[c,f]of this.#bR){let g=f instanceof as?f.serialize(!1,d):f;g&&(a.set(c,g),b.update(`${c}:${JSON.stringify(g)}`),e||=!!g.bitmap)}if(e)for(let b of a.values())b.bitmap&&c.push(b.bitmap);return a.size>0?{map:a,hash:b.hexdigest(),transfer:c}:av}get editorStats(){let a=null,b=new Map;for(let c of this.#bR.values()){if(!(c instanceof as))continue;let d=c.telemetryFinalData;if(!d)continue;let{type:e}=d;b.has(e)||b.set(e,Object.getPrototypeOf(c).constructor),a||=Object.create(null);let f=a[e]||=new Map;for(let[a,b]of Object.entries(d)){if("type"===a)continue;let c=f.get(a);c||(c=new Map,f.set(a,c));let d=c.get(b)??0;c.set(b,d+1)}}for(let[c,d]of b)a[c]=d.computeTelemetryFinalData(a[c]);return a}resetModifiedIds(){this.#bQ=null}get modifiedIds(){if(this.#bQ)return this.#bQ;let a=[];for(let b of this.#bR.values())b instanceof as&&b.annotationElementId&&b.serialize()&&a.push(b.annotationElementId);return this.#bQ={ids:new Set(a),hash:a.join(",")}}}class ax extends aw{#bT;constructor(a){super();const{map:b,hash:c,transfer:d}=a.serializable,e=structuredClone(b,d?{transfer:d}:null);this.#bT={map:e,hash:c,transfer:d}}get print(){t("Should not call PrintAnnotationStorage.print")}get serializable(){return this.#bT}get modifiedIds(){return w(this,"modifiedIds",{ids:new Set,hash:""})}}class ay{#bU=new Set;constructor({ownerDocument:a=globalThis.document,styleElement:b=null}){this._document=a,this.nativeFontFaces=new Set,this.styleElement=null,this.loadingRequests=[],this.loadTestFontId=0}addNativeFontFace(a){this.nativeFontFaces.add(a),this._document.fonts.add(a)}removeNativeFontFace(a){this.nativeFontFaces.delete(a),this._document.fonts.delete(a)}insertRule(a){this.styleElement||(this.styleElement=this._document.createElement("style"),this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement));let b=this.styleElement.sheet;b.insertRule(a,b.cssRules.length)}clear(){for(let a of this.nativeFontFaces)this._document.fonts.delete(a);this.nativeFontFaces.clear(),this.#bU.clear(),this.styleElement&&(this.styleElement.remove(),this.styleElement=null)}async loadSystemFont({systemFontInfo:a,_inspectFont:b}){if(!(!a||this.#bU.has(a.loadedName))){if(u(!this.disableFontFace,"loadSystemFont shouldn't be called when `disableFontFace` is set."),this.isFontLoadingAPISupported){let{loadedName:c,src:d,style:e}=a,f=new FontFace(c,d,e);this.addNativeFontFace(f);try{await f.load(),this.#bU.add(c),b?.(a)}catch{s(`Cannot load system font: ${a.baseFontName}, installing it could help to improve PDF rendering.`),this.removeNativeFontFace(f)}return}t("Not implemented: loadSystemFont without the Font Loading API.")}}async bind(a){if(a.attached||a.missingFile&&!a.systemFontInfo)return;if(a.attached=!0,a.systemFontInfo)return void await this.loadSystemFont(a);if(this.isFontLoadingAPISupported){let b=a.createNativeFontFace();if(b){this.addNativeFontFace(b);try{await b.loaded}catch(c){throw s(`Failed to load font '${b.family}': '${c}'.`),a.disableFontFace=!0,c}}return}let b=a.createFontFaceRule();if(b){if(this.insertRule(b),this.isSyncFontLoadingSupported)return;await new Promise(b=>{let c=this._queueLoadingCallback(b);this._prepareFontLoadEvent(a,c)})}}get isFontLoadingAPISupported(){return w(this,"isFontLoadingAPISupported",!!this._document?.fonts)}get isSyncFontLoadingSupported(){let a=!1;return f?a=!0:"u">typeof navigator&&"string"==typeof navigator?.userAgent&&/Mozilla\/5.0.*?rv:\d+.*? Gecko/.test(navigator.userAgent)&&(a=!0),w(this,"isSyncFontLoadingSupported",a)}_queueLoadingCallback(a){let{loadingRequests:b}=this,c={done:!1,complete:function(){for(u(!c.done,"completeRequest() cannot be called twice."),c.done=!0;b.length>0&&b[0].done;)setTimeout(b.shift().callback,0)},callback:a};return b.push(c),c}get _loadTestFont(){return w(this,"_loadTestFont",atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="))}_prepareFontLoadEvent(a,b){var c;let d,e;function f(a,b){return a.charCodeAt(b)<<24|a.charCodeAt(b+1)<<16|a.charCodeAt(b+2)<<8|255&a.charCodeAt(b+3)}function g(a,b,c,d){return a.substring(0,b)+d+a.substring(b+c)}let h=this._document.createElement("canvas");h.width=1,h.height=1;let i=h.getContext("2d"),j=0,k=`lt${Date.now()}${this.loadTestFontId++}`,l=this._loadTestFont,m=f(l=g(l,976,k.length,k),16);for(d=0,e=k.length-3;d<e;d+=4)m=m-0x58585858+f(k,d)|0;d<k.length&&(m=m-0x58585858+f(k+"XXX",d)|0),l=g(l,16,4,String.fromCharCode((c=m)>>24&255,c>>16&255,c>>8&255,255&c));let n=`url(data:font/opentype;base64,${btoa(l)});`,o=`@font-face {font-family:"${k}";src:${n}}`;this.insertRule(o);let p=this._document.createElement("div");for(let b of(p.style.visibility="hidden",p.style.width=p.style.height="10px",p.style.position="absolute",p.style.top=p.style.left="0px",[a.loadedName,k])){let a=this._document.createElement("span");a.textContent="Hi",a.style.fontFamily=b,p.append(a)}this._document.body.append(p),function a(b,c){if(++j>30){s("Load test font never loaded."),c();return}(i.font="30px "+b,i.fillText(".",0,20),i.getImageData(0,0,1,1).data[3]>0)?c():setTimeout(a.bind(null,b,c))}(k,()=>{p.remove(),b.complete()})}}class az{constructor(a,{disableFontFace:b=!1,fontExtraProperties:c=!1,inspectFont:d=null}){for(const b in this.compiledGlyphs=Object.create(null),a)this[b]=a[b];this.disableFontFace=!0===b,this.fontExtraProperties=!0===c,this._inspectFont=d}createNativeFontFace(){let a;if(!this.data||this.disableFontFace)return null;if(this.cssFontInfo){let b={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(b.style=`oblique ${this.cssFontInfo.italicAngle}deg`),a=new FontFace(this.cssFontInfo.fontFamily,this.data,b)}else a=new FontFace(this.loadedName,this.data,{});return this._inspectFont?.(this),a}createFontFaceRule(){var a;let b;if(!this.data||this.disableFontFace)return null;let c=`url(data:${this.mimetype};base64,${(a=this.data,Uint8Array.prototype.toBase64?a.toBase64():btoa(F(a)))});`;if(this.cssFontInfo){let a=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(a+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`),b=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${a}src:${c}}`}else b=`@font-face {font-family:"${this.loadedName}";src:${c}}`;return this._inspectFont?.(this,c),b}getPathGenerator(a,b){let c;if(void 0!==this.compiledGlyphs[b])return this.compiledGlyphs[b];let d=this.loadedName+"_path_"+b;try{c=a.get(d)}catch(a){s(`getPathGenerator - ignoring character: "${a}".`)}let e=new Path2D(c||"");return this.fontExtraProperties||a.delete(d),this.compiledGlyphs[b]=e}}function aA(){}function aB(a){if(a instanceof E||a instanceof A||a instanceof B||a instanceof y||a instanceof C||a instanceof z)return a;switch(!(a instanceof Error||"object"==typeof a&&null!==a)&&t('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),a.name){case"AbortException":return new E(a.message);case"InvalidPDFException":return new A(a.message);case"MissingPDFException":return new B(a.message);case"PasswordException":return new y(a.message,a.code);case"UnexpectedResponseException":return new C(a.message,a.status);case"UnknownErrorException":return new z(a.message,a.details)}return new z(a.message,a.toString())}class aC{#bV=new AbortController;constructor(a,b,c){this.sourceName=a,this.targetName=b,this.comObj=c,this.callbackId=1,this.streamId=1,this.streamSinks=Object.create(null),this.streamControllers=Object.create(null),this.callbackCapabilities=Object.create(null),this.actionHandler=Object.create(null),c.addEventListener("message",this.#bW.bind(this),{signal:this.#bV.signal})}#bW({data:a}){if(a.targetName!==this.sourceName)return;if(a.stream)return void this.#bX(a);if(a.callback){let b=a.callbackId,c=this.callbackCapabilities[b];if(!c)throw Error(`Cannot resolve callback ${b}`);if(delete this.callbackCapabilities[b],1===a.callback)c.resolve(a.data);else if(2===a.callback)c.reject(aB(a.reason));else throw Error("Unexpected callback case");return}let b=this.actionHandler[a.action];if(!b)throw Error(`Unknown action from worker: ${a.action}`);if(a.callbackId){let c=this.sourceName,d=a.sourceName,e=this.comObj;Promise.try(b,a.data).then(function(b){e.postMessage({sourceName:c,targetName:d,callback:1,callbackId:a.callbackId,data:b})},function(b){e.postMessage({sourceName:c,targetName:d,callback:2,callbackId:a.callbackId,reason:aB(b)})});return}a.streamId?this.#bY(a):b(a.data)}on(a,b){let c=this.actionHandler;if(c[a])throw Error(`There is already an actionName called "${a}"`);c[a]=b}send(a,b,c){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:a,data:b},c)}sendWithPromise(a,b,c){let d=this.callbackId++,e=Promise.withResolvers();this.callbackCapabilities[d]=e;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:a,callbackId:d,data:b},c)}catch(a){e.reject(a)}return e.promise}sendWithStream(a,b,c,d){let e=this.streamId++,f=this.sourceName,g=this.targetName,h=this.comObj;return new ReadableStream({start:c=>{let i=Promise.withResolvers();return this.streamControllers[e]={controller:c,startCall:i,pullCall:null,cancelCall:null,isClosed:!1},h.postMessage({sourceName:f,targetName:g,action:a,streamId:e,data:b,desiredSize:c.desiredSize},d),i.promise},pull:a=>{let b=Promise.withResolvers();return this.streamControllers[e].pullCall=b,h.postMessage({sourceName:f,targetName:g,stream:6,streamId:e,desiredSize:a.desiredSize}),b.promise},cancel:a=>{u(a instanceof Error,"cancel must have a valid reason");let b=Promise.withResolvers();return this.streamControllers[e].cancelCall=b,this.streamControllers[e].isClosed=!0,h.postMessage({sourceName:f,targetName:g,stream:1,streamId:e,reason:aB(a)}),b.promise}},c)}#bY(a){let b=a.streamId,c=this.sourceName,d=a.sourceName,e=this.comObj,f=this,g=this.actionHandler[a.action],h={enqueue(a,f=1,g){if(this.isCancelled)return;let h=this.desiredSize;this.desiredSize-=f,h>0&&this.desiredSize<=0&&(this.sinkCapability=Promise.withResolvers(),this.ready=this.sinkCapability.promise),e.postMessage({sourceName:c,targetName:d,stream:4,streamId:b,chunk:a},g)},close(){this.isCancelled||(this.isCancelled=!0,e.postMessage({sourceName:c,targetName:d,stream:3,streamId:b}),delete f.streamSinks[b])},error(a){u(a instanceof Error,"error must have a valid reason"),this.isCancelled||(this.isCancelled=!0,e.postMessage({sourceName:c,targetName:d,stream:5,streamId:b,reason:aB(a)}))},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:a.desiredSize,ready:null};h.sinkCapability.resolve(),h.ready=h.sinkCapability.promise,this.streamSinks[b]=h,Promise.try(g,a.data,h).then(function(){e.postMessage({sourceName:c,targetName:d,stream:8,streamId:b,success:!0})},function(a){e.postMessage({sourceName:c,targetName:d,stream:8,streamId:b,reason:aB(a)})})}#bX(a){let b=a.streamId,c=this.sourceName,d=a.sourceName,e=this.comObj,f=this.streamControllers[b],g=this.streamSinks[b];switch(a.stream){case 8:a.success?f.startCall.resolve():f.startCall.reject(aB(a.reason));break;case 7:a.success?f.pullCall.resolve():f.pullCall.reject(aB(a.reason));break;case 6:if(!g){e.postMessage({sourceName:c,targetName:d,stream:7,streamId:b,success:!0});break}g.desiredSize<=0&&a.desiredSize>0&&g.sinkCapability.resolve(),g.desiredSize=a.desiredSize,Promise.try(g.onPull||aA).then(function(){e.postMessage({sourceName:c,targetName:d,stream:7,streamId:b,success:!0})},function(a){e.postMessage({sourceName:c,targetName:d,stream:7,streamId:b,reason:aB(a)})});break;case 4:if(u(f,"enqueue should have stream controller"),f.isClosed)break;f.controller.enqueue(a.chunk);break;case 3:if(u(f,"close should have stream controller"),f.isClosed)break;f.isClosed=!0,f.controller.close(),this.#bZ(f,b);break;case 5:u(f,"error should have stream controller"),f.controller.error(aB(a.reason)),this.#bZ(f,b);break;case 2:a.success?f.cancelCall.resolve():f.cancelCall.reject(aB(a.reason)),this.#bZ(f,b);break;case 1:if(!g)break;let h=aB(a.reason);Promise.try(g.onCancel||aA,h).then(function(){e.postMessage({sourceName:c,targetName:d,stream:2,streamId:b,success:!0})},function(a){e.postMessage({sourceName:c,targetName:d,stream:2,streamId:b,reason:aB(a)})}),g.sinkCapability.reject(h),g.isCancelled=!0,delete this.streamSinks[b];break;default:throw Error("Unexpected stream case")}}async #bZ(a,b){await Promise.allSettled([a.startCall?.promise,a.pullCall?.promise,a.cancelCall?.promise]),delete this.streamControllers[b]}destroy(){this.#bV?.abort(),this.#bV=null}}class aD{#b$=!1;constructor({enableHWA:a=!1}){this.#b$=a}create(a,b){if(a<=0||b<=0)throw Error("Invalid canvas size");let c=this._createCanvas(a,b);return{canvas:c,context:c.getContext("2d",{willReadFrequently:!this.#b$})}}reset(a,b,c){if(!a.canvas)throw Error("Canvas is not specified");if(b<=0||c<=0)throw Error("Invalid canvas size");a.canvas.width=b,a.canvas.height=c}destroy(a){if(!a.canvas)throw Error("Canvas is not specified");a.canvas.width=0,a.canvas.height=0,a.canvas=null,a.context=null}_createCanvas(a,b){t("Abstract method `_createCanvas` called.")}}class aE extends aD{constructor({ownerDocument:a=globalThis.document,enableHWA:b=!1}){super({enableHWA:b}),this._document=a}_createCanvas(a,b){let c=this._document.createElement("canvas");return c.width=a,c.height=b,c}}class aF{constructor({baseUrl:a=null,isCompressed:b=!0}){this.baseUrl=a,this.isCompressed=b}async fetch({name:a}){if(!this.baseUrl)throw Error("Ensure that the `cMapUrl` and `cMapPacked` API parameters are provided.");if(!a)throw Error("CMap name must be specified.");let b=this.baseUrl+a+(this.isCompressed?".bcmap":"");return this._fetch(b).then(a=>({cMapData:a,isCompressed:this.isCompressed})).catch(a=>{throw Error(`Unable to load ${this.isCompressed?"binary ":""}CMap at: ${b}`)})}async _fetch(a){t("Abstract method `_fetch` called.")}}class aG extends aF{async _fetch(a){let b=await R(a,this.isCompressed?"arraybuffer":"text");return b instanceof ArrayBuffer?new Uint8Array(b):G(b)}}class aH{addFilter(a){return"none"}addHCMFilter(a,b){return"none"}addAlphaFilter(a){return"none"}addLuminosityFilter(a){return"none"}addHighlightHCMFilter(a,b,c,d,e){return"none"}destroy(a=!1){}}class aI extends aH{#b_;#b0;#b1;#b2;#b3;#b4;#t=0;constructor({docId:a,ownerDocument:b=globalThis.document}){super(),this.#b2=a,this.#b3=b}get #v(){return this.#b0||=new Map}get #b5(){return this.#b4||=new Map}get #b6(){if(!this.#b1){let a=this.#b3.createElement("div"),{style:b}=a;b.visibility="hidden",b.contain="strict",b.width=b.height=0,b.position="absolute",b.top=b.left=0,b.zIndex=-1;let c=this.#b3.createElementNS(P,"svg");c.setAttribute("width",0),c.setAttribute("height",0),this.#b1=this.#b3.createElementNS(P,"defs"),a.append(c),c.append(this.#b1),this.#b3.body.append(a)}return this.#b1}#b7(a){if(1===a.length){let b=a[0],c=Array(256);for(let a=0;a<256;a++)c[a]=b[a]/255;let d=c.join(",");return[d,d,d]}let[b,c,d]=a,e=Array(256),f=Array(256),g=Array(256);for(let a=0;a<256;a++)e[a]=b[a]/255,f[a]=c[a]/255,g[a]=d[a]/255;return[e.join(","),f.join(","),g.join(",")]}#b8(a){if(void 0===this.#b_){this.#b_="";let a=this.#b3.URL;a!==this.#b3.baseURI&&(U(a)?s('#createUrl: ignore "data:"-URL for performance reasons.'):this.#b_=a.split("#",1)[0])}return`url(${this.#b_}#${a})`}addFilter(a){if(!a)return"none";let b=this.#v.get(a);if(b)return b;let[c,d,e]=this.#b7(a),f=1===a.length?c:`${c}${d}${e}`;if(b=this.#v.get(f))return this.#v.set(a,b),b;let g=`g_${this.#b2}_transfer_map_${this.#t++}`,h=this.#b8(g);this.#v.set(a,h),this.#v.set(f,h);let i=this.#b9(g);return this.#ca(c,d,e,i),h}addHCMFilter(a,b){let c=`${a}-${b}`,d="base",e=this.#b5.get(d);if(e?.key===c||(e?(e.filter?.remove(),e.key=c,e.url="none",e.filter=null):(e={key:c,url:"none",filter:null},this.#b5.set(d,e)),!a||!b))return e.url;let f=this.#cb(a);a=K.makeHexColor(...f);let g=this.#cb(b);if(b=K.makeHexColor(...g),this.#b6.style.color="","#000000"===a&&"#ffffff"===b||a===b)return e.url;let h=Array(256);for(let a=0;a<=255;a++){let b=a/255;h[a]=b<=.03928?b/12.92:((b+.055)/1.055)**2.4}let i=h.join(","),j=`g_${this.#b2}_hcm_filter`,k=e.filter=this.#b9(j);this.#ca(i,i,i,k),this.#cc(k);let l=(a,b)=>{let c=f[a]/255,d=g[a]/255,e=Array(b+1);for(let a=0;a<=b;a++)e[a]=c+a/b*(d-c);return e.join(",")};return this.#ca(l(0,5),l(1,5),l(2,5),k),e.url=this.#b8(j),e.url}addAlphaFilter(a){let b=this.#v.get(a);if(b)return b;let[c]=this.#b7([a]),d=`alpha_${c}`;if(b=this.#v.get(d))return this.#v.set(a,b),b;let e=`g_${this.#b2}_alpha_map_${this.#t++}`,f=this.#b8(e);this.#v.set(a,f),this.#v.set(d,f);let g=this.#b9(e);return this.#cd(c,g),f}addLuminosityFilter(a){let b,c,d=this.#v.get(a||"luminosity");if(d)return d;if(a?([b]=this.#b7([a]),c=`luminosity_${b}`):c="luminosity",d=this.#v.get(c))return this.#v.set(a,d),d;let e=`g_${this.#b2}_luminosity_map_${this.#t++}`,f=this.#b8(e);this.#v.set(a,f),this.#v.set(c,f);let g=this.#b9(e);return this.#ce(g),a&&this.#cd(b,g),f}addHighlightHCMFilter(a,b,c,d,e){let f=`${b}-${c}-${d}-${e}`,g=this.#b5.get(a);if(g?.key===f||(g?(g.filter?.remove(),g.key=f,g.url="none",g.filter=null):(g={key:f,url:"none",filter:null},this.#b5.set(a,g)),!b||!c))return g.url;let[h,i]=[b,c].map(this.#cb.bind(this)),j=Math.round(.2126*h[0]+.7152*h[1]+.0722*h[2]),k=Math.round(.2126*i[0]+.7152*i[1]+.0722*i[2]),[l,m]=[d,e].map(this.#cb.bind(this));k<j&&([j,k,l,m]=[k,j,m,l]),this.#b6.style.color="";let n=(a,b,c)=>{let d=Array(256),e=(k-j)/c,f=a/255,g=(b-a)/(255*c),h=0;for(let a=0;a<=c;a++){let b=Math.round(j+a*e),c=f+a*g;for(let a=h;a<=b;a++)d[a]=c;h=b+1}for(let a=h;a<256;a++)d[a]=d[h-1];return d.join(",")},o=`g_${this.#b2}_hcm_${a}_filter`,p=g.filter=this.#b9(o);return this.#cc(p),this.#ca(n(l[0],m[0],5),n(l[1],m[1],5),n(l[2],m[2],5),p),g.url=this.#b8(o),g.url}destroy(a=!1){a&&this.#b4?.size||(this.#b1?.parentNode.parentNode.remove(),this.#b1=null,this.#b0?.clear(),this.#b0=null,this.#b4?.clear(),this.#b4=null,this.#t=0)}#ce(a){let b=this.#b3.createElementNS(P,"feColorMatrix");b.setAttribute("type","matrix"),b.setAttribute("values","0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0"),a.append(b)}#cc(a){let b=this.#b3.createElementNS(P,"feColorMatrix");b.setAttribute("type","matrix"),b.setAttribute("values","0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0"),a.append(b)}#b9(a){let b=this.#b3.createElementNS(P,"filter");return b.setAttribute("color-interpolation-filters","sRGB"),b.setAttribute("id",a),this.#b6.append(b),b}#cf(a,b,c){let d=this.#b3.createElementNS(P,b);d.setAttribute("type","discrete"),d.setAttribute("tableValues",c),a.append(d)}#ca(a,b,c,d){let e=this.#b3.createElementNS(P,"feComponentTransfer");d.append(e),this.#cf(e,"feFuncR",a),this.#cf(e,"feFuncG",b),this.#cf(e,"feFuncB",c)}#cd(a,b){let c=this.#b3.createElementNS(P,"feComponentTransfer");b.append(c),this.#cf(c,"feFuncA",a)}#cb(a){return this.#b6.style.color=a,ac(getComputedStyle(this.#b6).getPropertyValue("color"))}}class aJ{constructor({baseUrl:a=null}){this.baseUrl=a}async fetch({filename:a}){if(!this.baseUrl)throw Error("Ensure that the `standardFontDataUrl` API parameter is provided.");if(!a)throw Error("Font filename must be specified.");let b=`${this.baseUrl}${a}`;return this._fetch(b).catch(a=>{throw Error(`Unable to load font data at: ${b}`)})}async _fetch(a){t("Abstract method `_fetch` called.")}}class aK extends aJ{async _fetch(a){return new Uint8Array(await R(a,"arraybuffer"))}}async function aL(a){let b=process.getBuiltinModule("fs");return new Uint8Array(await b.promises.readFile(a))}f&&s("Please use the `legacy` build in Node.js environments.");class aM extends aH{}class aN extends aD{_createCanvas(a,b){return process.getBuiltinModule("module").createRequire("file:///Users/yxp/Documents/new-chat/ai-chat-client/node_modules/pdfjs-dist/build/pdf.mjs")("@napi-rs/canvas").createCanvas(a,b)}}class aO extends aF{async _fetch(a){return aL(a)}}class aP extends aJ{async _fetch(a){return aL(a)}}let aQ="Fill",aR="Stroke",aS="Shading";function aT(a,b){if(!b)return;let c=b[2]-b[0],d=b[3]-b[1],e=new Path2D;e.rect(b[0],b[1],c,d),a.clip(e)}class aU{getPattern(){t("Abstract method `getPattern` called.")}}class aV extends aU{constructor(a){super(),this._type=a[1],this._bbox=a[2],this._colorStops=a[3],this._p0=a[4],this._p1=a[5],this._r0=a[6],this._r1=a[7],this.matrix=null}_createGradient(a){let b;for(let c of("axial"===this._type?b=a.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]):"radial"===this._type&&(b=a.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1)),this._colorStops))b.addColorStop(c[0],c[1]);return b}getPattern(a,b,c,d){let e;if(d===aR||d===aQ){let f=b.current.getClippedPathBoundingBox(d,ad(a))||[0,0,0,0],g=Math.ceil(f[2]-f[0])||1,h=Math.ceil(f[3]-f[1])||1,i=b.cachedCanvases.getCanvas("pattern",g,h),j=i.context;j.clearRect(0,0,j.canvas.width,j.canvas.height),j.beginPath(),j.rect(0,0,j.canvas.width,j.canvas.height),j.translate(-f[0],-f[1]),c=K.transform(c,[1,0,0,1,f[0],f[1]]),j.transform(...b.baseTransform),this.matrix&&j.transform(...this.matrix),aT(j,this._bbox),j.fillStyle=this._createGradient(j),j.fill(),e=a.createPattern(i.canvas,"no-repeat");let k=new DOMMatrix(c);e.setTransform(k)}else aT(a,this._bbox),e=this._createGradient(a);return e}}function aW(a,b,c,d,e,f,g,h){let i,j,k,l,m,n,o,p,q,r=b.coords,s=b.colors,t=a.data,u=4*a.width;r[c+1]>r[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i),r[d+1]>r[e+1]&&(i=d,d=e,e=i,i=g,g=h,h=i),r[c+1]>r[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i);let v=(r[c]+b.offsetX)*b.scaleX,w=(r[c+1]+b.offsetY)*b.scaleY,x=(r[d]+b.offsetX)*b.scaleX,y=(r[d+1]+b.offsetY)*b.scaleY,z=(r[e]+b.offsetX)*b.scaleX,A=(r[e+1]+b.offsetY)*b.scaleY;if(w>=A)return;let B=s[f],C=s[f+1],D=s[f+2],E=s[g],F=s[g+1],G=s[g+2],H=s[h],I=s[h+1],J=s[h+2],K=Math.round(w),L=Math.round(A);for(let a=K;a<=L;a++){let b;if(a<y){let b=a<w?0:(w-a)/(w-y);j=v-(v-x)*b,k=B-(B-E)*b,l=C-(C-F)*b,m=D-(D-G)*b}else{let b;j=x-(x-z)*(b=a>A?1:y===A?0:(y-a)/(y-A)),k=E-(E-H)*b,l=F-(F-I)*b,m=G-(G-J)*b}n=v-(v-z)*(b=a<w?0:a>A?1:(w-a)/(w-A)),o=B-(B-H)*b,p=C-(C-I)*b,q=D-(D-J)*b;let c=Math.round(Math.min(j,n)),d=Math.round(Math.max(j,n)),e=u*a+4*c;for(let a=c;a<=d;a++)(b=(j-a)/(j-n))<0?b=0:b>1&&(b=1),t[e++]=k-(k-o)*b|0,t[e++]=l-(l-p)*b|0,t[e++]=m-(m-q)*b|0,t[e++]=255}}class aX extends aU{constructor(a){super(),this._coords=a[2],this._colors=a[3],this._figures=a[4],this._bounds=a[5],this._bbox=a[7],this._background=a[8],this.matrix=null}_createMeshCanvas(a,b,c){let d=Math.floor(this._bounds[0]),e=Math.floor(this._bounds[1]),f=Math.ceil(this._bounds[2])-d,g=Math.ceil(this._bounds[3])-e,h=Math.min(Math.ceil(Math.abs(f*a[0]*1.1)),3e3),i=Math.min(Math.ceil(Math.abs(g*a[1]*1.1)),3e3),j=f/h,k=g/i,l={coords:this._coords,colors:this._colors,offsetX:-d,offsetY:-e,scaleX:1/j,scaleY:1/k},m=h+4,n=i+4,o=c.getCanvas("mesh",m,n),p=o.context,q=p.createImageData(h,i);if(b){let a=q.data;for(let c=0,d=a.length;c<d;c+=4)a[c]=b[0],a[c+1]=b[1],a[c+2]=b[2],a[c+3]=255}for(let a of this._figures)!function(a,b,c){let d,e,f=b.coords,g=b.colors;switch(b.type){case"lattice":let h=b.verticesPerRow,i=Math.floor(f.length/h)-1,j=h-1;for(d=0;d<i;d++){let b=d*h;for(let d=0;d<j;d++,b++)aW(a,c,f[b],f[b+1],f[b+h],g[b],g[b+1],g[b+h]),aW(a,c,f[b+h+1],f[b+1],f[b+h],g[b+h+1],g[b+1],g[b+h])}break;case"triangles":for(d=0,e=f.length;d<e;d+=3)aW(a,c,f[d],f[d+1],f[d+2],g[d],g[d+1],g[d+2]);break;default:throw Error("illegal figure")}}(q,a,l);return p.putImageData(q,2,2),{canvas:o.canvas,offsetX:d-2*j,offsetY:e-2*k,scaleX:j,scaleY:k}}getPattern(a,b,c,d){let e;if(aT(a,this._bbox),d===aS)e=K.singularValueDecompose2dScale(ad(a));else if(e=K.singularValueDecompose2dScale(b.baseTransform),this.matrix){let a=K.singularValueDecompose2dScale(this.matrix);e=[e[0]*a[0],e[1]*a[1]]}let f=this._createMeshCanvas(e,d===aS?null:this._background,b.cachedCanvases);return d!==aS&&(a.setTransform(...b.baseTransform),this.matrix&&a.transform(...this.matrix)),a.translate(f.offsetX,f.offsetY),a.scale(f.scaleX,f.scaleY),a.createPattern(f.canvas,"no-repeat")}}class aY extends aU{getPattern(){return"hotpink"}}class aZ{static MAX_PATTERN_SIZE=3e3;constructor(a,b,c,d,e){this.operatorList=a[2],this.matrix=a[3],this.bbox=a[4],this.xstep=a[5],this.ystep=a[6],this.paintType=a[7],this.tilingType=a[8],this.color=b,this.ctx=c,this.canvasGraphicsFactory=d,this.baseTransform=e}createPatternCanvas(a){let{bbox:b,operatorList:c,paintType:d,tilingType:e,color:f,canvasGraphicsFactory:g}=this,{xstep:h,ystep:i}=this;h=Math.abs(h),i=Math.abs(i),r("TilingType: "+e);let j=b[0],k=b[1],l=b[2],m=b[3],n=l-j,o=m-k,p=K.singularValueDecompose2dScale(this.matrix),q=K.singularValueDecompose2dScale(this.baseTransform),s=p[0]*q[0],t=p[1]*q[1],u=n,v=o,w=!1,x=!1,y=Math.ceil(i*t),z=Math.ceil(o*t);Math.ceil(h*s)>=Math.ceil(n*s)?u=h:w=!0,y>=z?v=i:x=!0;let A=this.getSizeAndScale(u,this.ctx.canvas.width,s),B=this.getSizeAndScale(v,this.ctx.canvas.height,t),C=a.cachedCanvases.getCanvas("pattern",A.size,B.size),D=C.context,E=g.createCanvasGraphics(D);if(E.groupLevel=a.groupLevel,this.setFillAndStrokeStyleToContext(E,d,f),D.translate(-A.scale*j,-B.scale*k),E.transform(A.scale,0,0,B.scale,0,0),D.save(),this.clipBbox(E,j,k,l,m),E.baseTransform=ad(E.ctx),E.executeOperatorList(c),E.endDrawing(),D.restore(),w||x){let b=C.canvas;w&&(u=h),x&&(v=i);let c=this.getSizeAndScale(u,this.ctx.canvas.width,s),d=this.getSizeAndScale(v,this.ctx.canvas.height,t),e=c.size,f=d.size,g=a.cachedCanvases.getCanvas("pattern-workaround",e,f),l=g.context,m=w?Math.floor(n/h):0,p=x?Math.floor(o/i):0;for(let a=0;a<=m;a++)for(let c=0;c<=p;c++)l.drawImage(b,e*a,f*c,e,f,0,0,e,f);return{canvas:g.canvas,scaleX:c.scale,scaleY:d.scale,offsetX:j,offsetY:k}}return{canvas:C.canvas,scaleX:A.scale,scaleY:B.scale,offsetX:j,offsetY:k}}getSizeAndScale(a,b,c){let d=Math.max(aZ.MAX_PATTERN_SIZE,b),e=Math.ceil(a*c);return e>=d?e=d:c=e/a,{scale:c,size:e}}clipBbox(a,b,c,d,e){let f=d-b,g=e-c;a.ctx.rect(b,c,f,g),a.current.updateRectMinMax(ad(a.ctx),[b,c,d,e]),a.clip(),a.endPath()}setFillAndStrokeStyleToContext(a,b,c){let d=a.ctx,e=a.current;switch(b){case 1:let f=this.ctx;d.fillStyle=f.fillStyle,d.strokeStyle=f.strokeStyle,e.fillColor=f.fillStyle,e.strokeColor=f.strokeStyle;break;case 2:let g=K.makeHexColor(c[0],c[1],c[2]);d.fillStyle=g,d.strokeStyle=g,e.fillColor=g,e.strokeColor=g;break;default:throw new D(`Unsupported paint type: ${b}`)}}getPattern(a,b,c,d){let e=c;d!==aS&&(e=K.transform(e,b.baseTransform),this.matrix&&(e=K.transform(e,this.matrix)));let f=this.createPatternCanvas(b),g=new DOMMatrix(e);g=(g=g.translate(f.offsetX,f.offsetY)).scale(1/f.scaleX,1/f.scaleY);let h=a.createPattern(f.canvas,"repeat");return h.setTransform(g),h}}class a${constructor(a){this.canvasFactory=a,this.cache=Object.create(null)}getCanvas(a,b,c){let d;return void 0!==this.cache[a]?(d=this.cache[a],this.canvasFactory.reset(d,b,c)):(d=this.canvasFactory.create(b,c),this.cache[a]=d),d}delete(a){delete this.cache[a]}clear(){for(let a in this.cache){let b=this.cache[a];this.canvasFactory.destroy(b),delete this.cache[a]}}}function a_(a,b,c,d,e,f,g,h,i,j){let[k,l,m,n,o,p]=ad(a);if(0===l&&0===m){let q=Math.round(g*k+o),r=Math.round(h*n+p),s=Math.abs(Math.round((g+i)*k+o)-q)||1,t=Math.abs(Math.round((h+j)*n+p)-r)||1;return a.setTransform(Math.sign(k),0,0,Math.sign(n),q,r),a.drawImage(b,c,d,e,f,0,0,s,t),a.setTransform(k,l,m,n,o,p),[s,t]}if(0===k&&0===n){let q=Math.round(h*m+o),r=Math.round(g*l+p),s=Math.abs(Math.round((h+j)*m+o)-q)||1,t=Math.abs(Math.round((g+i)*l+p)-r)||1;return a.setTransform(0,Math.sign(l),Math.sign(m),0,q,r),a.drawImage(b,c,d,e,f,0,0,t,s),a.setTransform(k,l,m,n,o,p),[t,s]}return a.drawImage(b,c,d,e,f,g,h,i,j),[Math.hypot(k,l)*i,Math.hypot(m,n)*j]}class a0{constructor(a,b){this.alphaIsShape=!1,this.fontSize=0,this.fontSizeScale=1,this.textMatrix=g,this.textMatrixScale=1,this.fontMatrix=h,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRenderingMode=0,this.textRise=0,this.fillColor="#000000",this.strokeColor="#000000",this.patternFill=!1,this.patternStroke=!1,this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.activeSMask=null,this.transferMaps="none",this.startNewPathAndClipBox([0,0,a,b])}clone(){let a=Object.create(this);return a.clipBox=this.clipBox.slice(),a}setCurrentPoint(a,b){this.x=a,this.y=b}updatePathMinMax(a,b,c){[b,c]=K.applyTransform([b,c],a),this.minX=Math.min(this.minX,b),this.minY=Math.min(this.minY,c),this.maxX=Math.max(this.maxX,b),this.maxY=Math.max(this.maxY,c)}updateRectMinMax(a,b){let c=K.applyTransform(b,a),d=K.applyTransform(b.slice(2),a),e=K.applyTransform([b[0],b[3]],a),f=K.applyTransform([b[2],b[1]],a);this.minX=Math.min(this.minX,c[0],d[0],e[0],f[0]),this.minY=Math.min(this.minY,c[1],d[1],e[1],f[1]),this.maxX=Math.max(this.maxX,c[0],d[0],e[0],f[0]),this.maxY=Math.max(this.maxY,c[1],d[1],e[1],f[1])}updateScalingPathMinMax(a,b){K.scaleMinMax(a,b),this.minX=Math.min(this.minX,b[0]),this.minY=Math.min(this.minY,b[1]),this.maxX=Math.max(this.maxX,b[2]),this.maxY=Math.max(this.maxY,b[3])}updateCurvePathMinMax(a,b,c,d,e,f,g,h,i,j){let k=K.bezierBoundingBox(b,c,d,e,f,g,h,i,j);j||this.updateRectMinMax(a,k)}getPathBoundingBox(a=aQ,b=null){let c=[this.minX,this.minY,this.maxX,this.maxY];if(a===aR){b||t("Stroke bounding box must include transform.");let a=K.singularValueDecompose2dScale(b),d=a[0]*this.lineWidth/2,e=a[1]*this.lineWidth/2;c[0]-=d,c[1]-=e,c[2]+=d,c[3]+=e}return c}updateClipFromPath(){let a=K.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(a||[0,0,0,0])}isEmptyClip(){return this.minX===1/0}startNewPathAndClipBox(a){this.clipBox=a,this.minX=1/0,this.minY=1/0,this.maxX=0,this.maxY=0}getClippedPathBoundingBox(a=aQ,b=null){return K.intersect(this.clipBox,this.getPathBoundingBox(a,b))}}function a1(a,b){let c,d,e,f;if(b instanceof ImageData)return void a.putImageData(b,0,0);let g=b.height,h=b.width,i=g%16,j=(g-i)/16,k=0===i?j:j+1,l=a.createImageData(h,16),n=0,o,p=b.data,q=l.data;if(b.kind===m.GRAYSCALE_1BPP){let b=p.byteLength,f=new Uint32Array(q.buffer,0,q.byteLength>>2),g=f.length,m=h+7>>3,r=I.isLittleEndian?0xff000000:255;for(c=0;c<k;c++){for(d=0,e=c<j?16:i,o=0;d<e;d++){let a=b-n,c=0,d=a>m?h:8*a-7,e=-8&d,g=0,i=0;for(;c<e;c+=8)i=p[n++],f[o++]=128&i?0xffffffff:r,f[o++]=64&i?0xffffffff:r,f[o++]=32&i?0xffffffff:r,f[o++]=16&i?0xffffffff:r,f[o++]=8&i?0xffffffff:r,f[o++]=4&i?0xffffffff:r,f[o++]=2&i?0xffffffff:r,f[o++]=1&i?0xffffffff:r;for(;c<d;c++)0===g&&(i=p[n++],g=128),f[o++]=i&g?0xffffffff:r,g>>=1}for(;o<g;)f[o++]=0;a.putImageData(l,0,16*c)}}else if(b.kind===m.RGBA_32BPP){for(c=0,d=0,f=16*h*4;c<j;c++)q.set(p.subarray(n,n+f)),n+=f,a.putImageData(l,0,d),d+=16;c<k&&(f=h*i*4,q.set(p.subarray(n,n+f)),a.putImageData(l,0,d))}else if(b.kind===m.RGB_24BPP)for(c=0,f=h*(e=16);c<k;c++){for(c>=j&&(f=h*(e=i)),o=0,d=f;d--;)q[o++]=p[n++],q[o++]=p[n++],q[o++]=p[n++],q[o++]=255;a.putImageData(l,0,16*c)}else throw Error(`bad image kind: ${b.kind}`)}function a2(a,b){if(b.bitmap)return void a.drawImage(b.bitmap,0,0);let c=b.height,d=b.width,e=c%16,f=(c-e)/16,g=0===e?f:f+1,h=a.createImageData(d,16),i=0,j=b.data,k=h.data;for(let b=0;b<g;b++){let c=b<f?16:e;({srcPos:i}=function({src:a,srcPos:b=0,dest:c,width:d,height:e,nonBlackColor:f=0xffffffff,inverseDecode:g=!1}){let h=I.isLittleEndian?0xff000000:255,[i,j]=g?[f,h]:[h,f],k=d>>3,l=7&d,m=a.length;c=new Uint32Array(c.buffer);let n=0;for(let d=0;d<e;d++){for(let d=b+k;b<d;b++){let d=b<m?a[b]:255;c[n++]=128&d?j:i,c[n++]=64&d?j:i,c[n++]=32&d?j:i,c[n++]=16&d?j:i,c[n++]=8&d?j:i,c[n++]=4&d?j:i,c[n++]=2&d?j:i,c[n++]=1&d?j:i}if(0===l)continue;let d=b<m?a[b++]:255;for(let a=0;a<l;a++)c[n++]=d&1<<7-a?j:i}return{srcPos:b,destPos:n}}({src:j,srcPos:i,dest:k,width:d,height:c,nonBlackColor:0})),a.putImageData(h,0,16*b)}}function a3(a,b){for(let c of["strokeStyle","fillStyle","fillRule","globalAlpha","lineWidth","lineCap","lineJoin","miterLimit","globalCompositeOperation","font","filter"])void 0!==a[c]&&(b[c]=a[c]);void 0!==a.setLineDash&&(b.setLineDash(a.getLineDash()),b.lineDashOffset=a.lineDashOffset)}function a4(a){if(a.strokeStyle=a.fillStyle="#000000",a.fillRule="nonzero",a.globalAlpha=1,a.lineWidth=1,a.lineCap="butt",a.lineJoin="miter",a.miterLimit=10,a.globalCompositeOperation="source-over",a.font="10px sans-serif",void 0!==a.setLineDash&&(a.setLineDash([]),a.lineDashOffset=0),!f){let{filter:b}=a;"none"!==b&&""!==b&&(a.filter="none")}}function a5(a,b){if(b)return!0;let c=K.singularValueDecompose2dScale(a);c[0]=Math.fround(c[0]),c[1]=Math.fround(c[1]);let d=Math.fround((globalThis.devicePixelRatio||1)*Q.PDF_TO_CSS_UNITS);return c[0]<=d&&c[1]<=d}let a6=["butt","round","square"],a7=["miter","round","bevel"],a8={},a9={};class ba{constructor(a,b,c,d,e,{optionalContentConfig:f,markedContentStack:g=null},h,i){this.ctx=a,this.current=new a0(this.ctx.canvas.width,this.ctx.canvas.height),this.stateStack=[],this.pendingClip=null,this.pendingEOFill=!1,this.res=null,this.xobjs=null,this.commonObjs=b,this.objs=c,this.canvasFactory=d,this.filterFactory=e,this.groupStack=[],this.processingType3=null,this.baseTransform=null,this.baseTransformStack=[],this.groupLevel=0,this.smaskStack=[],this.smaskCounter=0,this.tempSMask=null,this.suspendedCtx=null,this.contentVisible=!0,this.markedContentStack=g||[],this.optionalContentConfig=f,this.cachedCanvases=new a$(this.canvasFactory),this.cachedPatterns=new Map,this.annotationCanvasMap=h,this.viewportScale=1,this.outputScaleX=1,this.outputScaleY=1,this.pageColors=i,this._cachedScaleForStroking=[-1,0],this._cachedGetSinglePixelWidth=null,this._cachedBitmapsMap=new Map}getObject(a,b=null){return"string"==typeof a?a.startsWith("g_")?this.commonObjs.get(a):this.objs.get(a):b}beginDrawing({transform:a,viewport:b,transparency:c=!1,background:d=null}){let e=this.ctx.canvas.width,f=this.ctx.canvas.height,g=this.ctx.fillStyle;if(this.ctx.fillStyle=d||"#ffffff",this.ctx.fillRect(0,0,e,f),this.ctx.fillStyle=g,c){let a=this.cachedCanvases.getCanvas("transparent",e,f);this.compositeCtx=this.ctx,this.transparentCanvas=a.canvas,this.ctx=a.context,this.ctx.save(),this.ctx.transform(...ad(this.compositeCtx))}this.ctx.save(),a4(this.ctx),a&&(this.ctx.transform(...a),this.outputScaleX=a[0],this.outputScaleY=a[0]),this.ctx.transform(...b.transform),this.viewportScale=b.scale,this.baseTransform=ad(this.ctx)}executeOperatorList(a,b,c,d){let e,f=a.argsArray,g=a.fnArray,h=b||0,i=f.length;if(i===h)return h;let j=i-h>10&&"function"==typeof c,k=j?Date.now()+15:0,l=0,m=this.commonObjs,n=this.objs;for(;;){if(void 0!==d&&h===d.nextBreakPoint)return d.breakIt(h,c),h;if((e=g[h])!==o.dependency)this[e].apply(this,f[h]);else for(let a of f[h]){let b=a.startsWith("g_")?m:n;if(!b.has(a))return b.get(a,c),h}if(++h===i)return h;if(j&&++l>10){if(Date.now()>k)return c(),h;l=0}}}#cg(){for(;this.stateStack.length||this.inSMaskMode;)this.restore();this.current.activeSMask=null,this.ctx.restore(),this.transparentCanvas&&(this.ctx=this.compositeCtx,this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.drawImage(this.transparentCanvas,0,0),this.ctx.restore(),this.transparentCanvas=null)}endDrawing(){for(let a of(this.#cg(),this.cachedCanvases.clear(),this.cachedPatterns.clear(),this._cachedBitmapsMap.values())){for(let b of a.values())"u">typeof HTMLCanvasElement&&b instanceof HTMLCanvasElement&&(b.width=b.height=0);a.clear()}this._cachedBitmapsMap.clear(),this.#ch()}#ch(){if(this.pageColors){let a=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if("none"!==a){let b=this.ctx.filter;this.ctx.filter=a,this.ctx.drawImage(this.ctx.canvas,0,0),this.ctx.filter=b}}}_scaleImage(a,b){let c,d,e=a.width??a.displayWidth,f=a.height??a.displayHeight,g=Math.max(Math.hypot(b[0],b[1]),1),h=Math.max(Math.hypot(b[2],b[3]),1),i=e,j=f,k="prescale1";for(;g>2&&i>1||h>2&&j>1;){let b=i,e=j;g>2&&i>1&&(b=i>=16384?Math.floor(i/2)-1||1:Math.ceil(i/2),g/=i/b),h>2&&j>1&&(e=j>=16384?Math.floor(j/2)-1||1:Math.ceil(j)/2,h/=j/e),(d=(c=this.cachedCanvases.getCanvas(k,b,e)).context).clearRect(0,0,b,e),d.drawImage(a,0,0,i,j,0,0,b,e),a=c.canvas,i=b,j=e,k="prescale1"===k?"prescale2":"prescale1"}return{img:a,paintWidth:i,paintHeight:j}}_createMaskCanvas(a){let b,c,d,e,f=this.ctx,{width:g,height:h}=a,i=this.current.fillColor,j=this.current.patternFill,k=ad(f);if((a.bitmap||a.data)&&a.count>1){let e=a.bitmap||a.data.buffer;c=JSON.stringify(j?k:[k.slice(0,4),i]),(b=this._cachedBitmapsMap.get(e))||(b=new Map,this._cachedBitmapsMap.set(e,b));let f=b.get(c);if(f&&!j)return{canvas:f,offsetX:Math.round(Math.min(k[0],k[2])+k[4]),offsetY:Math.round(Math.min(k[1],k[3])+k[5])};d=f}d||a2((e=this.cachedCanvases.getCanvas("maskCanvas",g,h)).context,a);let l=K.transform(k,[1/g,0,0,-1/h,0,0]);l=K.transform(l,[1,0,0,1,0,-h]);let[m,n,o,p]=K.getAxialAlignedBoundingBox([0,0,g,h],l),q=Math.round(o-m)||1,r=Math.round(p-n)||1,s=this.cachedCanvases.getCanvas("fillCanvas",q,r),t=s.context;t.translate(-m,-n),t.transform(...l),!d&&(d=(d=this._scaleImage(e.canvas,ae(t))).img,b&&j&&b.set(c,d)),t.imageSmoothingEnabled=a5(ad(t),a.interpolate),a_(t,d,0,0,d.width,d.height,0,0,g,h),t.globalCompositeOperation="source-in";let u=K.transform(ae(t),[1,0,0,1,-m,-n]);return t.fillStyle=j?i.getPattern(f,this,u,aQ):i,t.fillRect(0,0,g,h),b&&!j&&(this.cachedCanvases.delete("fillCanvas"),b.set(c,s.canvas)),{canvas:s.canvas,offsetX:Math.round(m),offsetY:Math.round(n)}}setLineWidth(a){a!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1),this.current.lineWidth=a,this.ctx.lineWidth=a}setLineCap(a){this.ctx.lineCap=a6[a]}setLineJoin(a){this.ctx.lineJoin=a7[a]}setMiterLimit(a){this.ctx.miterLimit=a}setDash(a,b){let c=this.ctx;void 0!==c.setLineDash&&(c.setLineDash(a),c.lineDashOffset=b)}setRenderingIntent(a){}setFlatness(a){}setGState(a){for(let[b,c]of a)switch(b){case"LW":this.setLineWidth(c);break;case"LC":this.setLineCap(c);break;case"LJ":this.setLineJoin(c);break;case"ML":this.setMiterLimit(c);break;case"D":this.setDash(c[0],c[1]);break;case"RI":this.setRenderingIntent(c);break;case"FL":this.setFlatness(c);break;case"Font":this.setFont(c[0],c[1]);break;case"CA":this.current.strokeAlpha=c;break;case"ca":this.current.fillAlpha=c,this.ctx.globalAlpha=c;break;case"BM":this.ctx.globalCompositeOperation=c;break;case"SMask":this.current.activeSMask=c?this.tempSMask:null,this.tempSMask=null,this.checkSMaskState();break;case"TR":this.ctx.filter=this.current.transferMaps=this.filterFactory.addFilter(c)}}get inSMaskMode(){return!!this.suspendedCtx}checkSMaskState(){let a=this.inSMaskMode;this.current.activeSMask&&!a?this.beginSMaskMode():!this.current.activeSMask&&a&&this.endSMaskMode()}beginSMaskMode(){if(this.inSMaskMode)throw Error("beginSMaskMode called while already in smask mode");let a=this.ctx.canvas.width,b=this.ctx.canvas.height,c="smaskGroupAt"+this.groupLevel,d=this.cachedCanvases.getCanvas(c,a,b);this.suspendedCtx=this.ctx,this.ctx=d.context;let e=this.ctx;e.setTransform(...ad(this.suspendedCtx)),a3(this.suspendedCtx,e);var f=this.suspendedCtx;if(e._removeMirroring)throw Error("Context is already forwarding operations.");e.__originalSave=e.save,e.__originalRestore=e.restore,e.__originalRotate=e.rotate,e.__originalScale=e.scale,e.__originalTranslate=e.translate,e.__originalTransform=e.transform,e.__originalSetTransform=e.setTransform,e.__originalResetTransform=e.resetTransform,e.__originalClip=e.clip,e.__originalMoveTo=e.moveTo,e.__originalLineTo=e.lineTo,e.__originalBezierCurveTo=e.bezierCurveTo,e.__originalRect=e.rect,e.__originalClosePath=e.closePath,e.__originalBeginPath=e.beginPath,e._removeMirroring=()=>{e.save=e.__originalSave,e.restore=e.__originalRestore,e.rotate=e.__originalRotate,e.scale=e.__originalScale,e.translate=e.__originalTranslate,e.transform=e.__originalTransform,e.setTransform=e.__originalSetTransform,e.resetTransform=e.__originalResetTransform,e.clip=e.__originalClip,e.moveTo=e.__originalMoveTo,e.lineTo=e.__originalLineTo,e.bezierCurveTo=e.__originalBezierCurveTo,e.rect=e.__originalRect,e.closePath=e.__originalClosePath,e.beginPath=e.__originalBeginPath,delete e._removeMirroring},e.save=function(){f.save(),this.__originalSave()},e.restore=function(){f.restore(),this.__originalRestore()},e.translate=function(a,b){f.translate(a,b),this.__originalTranslate(a,b)},e.scale=function(a,b){f.scale(a,b),this.__originalScale(a,b)},e.transform=function(a,b,c,d,e,g){f.transform(a,b,c,d,e,g),this.__originalTransform(a,b,c,d,e,g)},e.setTransform=function(a,b,c,d,e,g){f.setTransform(a,b,c,d,e,g),this.__originalSetTransform(a,b,c,d,e,g)},e.resetTransform=function(){f.resetTransform(),this.__originalResetTransform()},e.rotate=function(a){f.rotate(a),this.__originalRotate(a)},e.clip=function(a){f.clip(a),this.__originalClip(a)},e.moveTo=function(a,b){f.moveTo(a,b),this.__originalMoveTo(a,b)},e.lineTo=function(a,b){f.lineTo(a,b),this.__originalLineTo(a,b)},e.bezierCurveTo=function(a,b,c,d,e,g){f.bezierCurveTo(a,b,c,d,e,g),this.__originalBezierCurveTo(a,b,c,d,e,g)},e.rect=function(a,b,c,d){f.rect(a,b,c,d),this.__originalRect(a,b,c,d)},e.closePath=function(){f.closePath(),this.__originalClosePath()},e.beginPath=function(){f.beginPath(),this.__originalBeginPath()},this.setGState([["BM","source-over"],["ca",1],["CA",1]])}endSMaskMode(){if(!this.inSMaskMode)throw Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring(),a3(this.ctx,this.suspendedCtx),this.ctx=this.suspendedCtx,this.suspendedCtx=null}compose(a){if(!this.current.activeSMask)return;a?(a[0]=Math.floor(a[0]),a[1]=Math.floor(a[1]),a[2]=Math.ceil(a[2]),a[3]=Math.ceil(a[3])):a=[0,0,this.ctx.canvas.width,this.ctx.canvas.height];let b=this.current.activeSMask,c=this.suspendedCtx;this.composeSMask(c,b,this.ctx,a),this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height),this.ctx.restore()}composeSMask(a,b,c,d){let e=d[0],f=d[1],g=d[2]-e,h=d[3]-f;0!==g&&0!==h&&(this.genericComposeSMask(b.context,c,g,h,b.subtype,b.backdrop,b.transferMap,e,f,b.offsetX,b.offsetY),a.save(),a.globalAlpha=1,a.globalCompositeOperation="source-over",a.setTransform(1,0,0,1,0,0),a.drawImage(c.canvas,0,0),a.restore())}genericComposeSMask(a,b,c,d,e,f,g,h,i,j,k){let l=a.canvas,m=h-j,n=i-k;if(f){let b=K.makeHexColor(...f);if(m<0||n<0||m+c>l.width||n+d>l.height){let a=this.cachedCanvases.getCanvas("maskExtension",c,d),e=a.context;e.drawImage(l,-m,-n),e.globalCompositeOperation="destination-atop",e.fillStyle=b,e.fillRect(0,0,c,d),e.globalCompositeOperation="source-over",l=a.canvas,m=n=0}else{a.save(),a.globalAlpha=1,a.setTransform(1,0,0,1,0,0);let e=new Path2D;e.rect(m,n,c,d),a.clip(e),a.globalCompositeOperation="destination-atop",a.fillStyle=b,a.fillRect(m,n,c,d),a.restore()}}b.save(),b.globalAlpha=1,b.setTransform(1,0,0,1,0,0),"Alpha"===e&&g?b.filter=this.filterFactory.addAlphaFilter(g):"Luminosity"===e&&(b.filter=this.filterFactory.addLuminosityFilter(g));let o=new Path2D;o.rect(h,i,c,d),b.clip(o),b.globalCompositeOperation="destination-in",b.drawImage(l,m,n,c,d,h,i,c,d),b.restore()}save(){this.inSMaskMode?(a3(this.ctx,this.suspendedCtx),this.suspendedCtx.save()):this.ctx.save();let a=this.current;this.stateStack.push(a),this.current=a.clone()}restore(){0===this.stateStack.length&&this.inSMaskMode&&this.endSMaskMode(),0!==this.stateStack.length&&(this.current=this.stateStack.pop(),this.inSMaskMode?(this.suspendedCtx.restore(),a3(this.suspendedCtx,this.ctx)):this.ctx.restore(),this.checkSMaskState(),this.pendingClip=null,this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null)}transform(a,b,c,d,e,f){this.ctx.transform(a,b,c,d,e,f),this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}constructPath(a,b,c){let d,e,f=this.ctx,g=this.current,h=g.x,i=g.y,j=ad(f),k=0===j[0]&&0===j[3]||0===j[1]&&0===j[2],l=k?c.slice(0):null;for(let c=0,m=0,n=a.length;c<n;c++)switch(0|a[c]){case o.rectangle:h=b[m++],i=b[m++];let n=b[m++],p=b[m++],q=h+n,r=i+p;f.moveTo(h,i),0===n||0===p?f.lineTo(q,r):(f.lineTo(q,i),f.lineTo(q,r),f.lineTo(h,r)),k||g.updateRectMinMax(j,[h,i,q,r]),f.closePath();break;case o.moveTo:h=b[m++],i=b[m++],f.moveTo(h,i),k||g.updatePathMinMax(j,h,i);break;case o.lineTo:h=b[m++],i=b[m++],f.lineTo(h,i),k||g.updatePathMinMax(j,h,i);break;case o.curveTo:d=h,e=i,h=b[m+4],i=b[m+5],f.bezierCurveTo(b[m],b[m+1],b[m+2],b[m+3],h,i),g.updateCurvePathMinMax(j,d,e,b[m],b[m+1],b[m+2],b[m+3],h,i,l),m+=6;break;case o.curveTo2:d=h,e=i,f.bezierCurveTo(h,i,b[m],b[m+1],b[m+2],b[m+3]),g.updateCurvePathMinMax(j,d,e,h,i,b[m],b[m+1],b[m+2],b[m+3],l),h=b[m+2],i=b[m+3],m+=4;break;case o.curveTo3:d=h,e=i,h=b[m+2],i=b[m+3],f.bezierCurveTo(b[m],b[m+1],h,i,h,i),g.updateCurvePathMinMax(j,d,e,b[m],b[m+1],h,i,h,i,l),m+=4;break;case o.closePath:f.closePath()}k&&g.updateScalingPathMinMax(j,l),g.setCurrentPoint(h,i)}closePath(){this.ctx.closePath()}stroke(a=!0){let b=this.ctx,c=this.current.strokeColor;b.globalAlpha=this.current.strokeAlpha,this.contentVisible&&("object"==typeof c&&c?.getPattern?(b.save(),b.strokeStyle=c.getPattern(b,this,ae(b),aR),this.rescaleAndStroke(!1),b.restore()):this.rescaleAndStroke(!0)),a&&this.consumePath(this.current.getClippedPathBoundingBox()),b.globalAlpha=this.current.fillAlpha}closeStroke(){this.closePath(),this.stroke()}fill(a=!0){let b=this.ctx,c=this.current.fillColor,d=this.current.patternFill,e=!1;d&&(b.save(),b.fillStyle=c.getPattern(b,this,ae(b),aQ),e=!0);let f=this.current.getClippedPathBoundingBox();this.contentVisible&&null!==f&&(this.pendingEOFill?(b.fill("evenodd"),this.pendingEOFill=!1):b.fill()),e&&b.restore(),a&&this.consumePath(f)}eoFill(){this.pendingEOFill=!0,this.fill()}fillStroke(){this.fill(!1),this.stroke(!1),this.consumePath()}eoFillStroke(){this.pendingEOFill=!0,this.fillStroke()}closeFillStroke(){this.closePath(),this.fillStroke()}closeEOFillStroke(){this.pendingEOFill=!0,this.closePath(),this.fillStroke()}endPath(){this.consumePath()}clip(){this.pendingClip=a8}eoClip(){this.pendingClip=a9}beginText(){this.current.textMatrix=g,this.current.textMatrixScale=1,this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}endText(){let a=this.pendingTextPaths,b=this.ctx;if(void 0===a)return void b.beginPath();let c=new Path2D,d=b.getTransform().invertSelf();for(let{transform:b,x:e,y:f,fontSize:g,path:h}of a)c.addPath(h,new DOMMatrix(b).preMultiplySelf(d).translate(e,f).scale(g,-g));b.clip(c),b.beginPath(),delete this.pendingTextPaths}setCharSpacing(a){this.current.charSpacing=a}setWordSpacing(a){this.current.wordSpacing=a}setHScale(a){this.current.textHScale=a/100}setLeading(a){this.current.leading=-a}setFont(a,b){let c=this.commonObjs.get(a),d=this.current;if(!c)throw Error(`Can't find font for ${a}`);if(d.fontMatrix=c.fontMatrix||h,(0===d.fontMatrix[0]||0===d.fontMatrix[3])&&s("Invalid font matrix for font "+a),b<0?(b=-b,d.fontDirection=-1):d.fontDirection=1,this.current.font=c,this.current.fontSize=b,c.isType3Font)return;let e=c.loadedName||"sans-serif",f=c.systemFontInfo?.css||`"${e}", ${c.fallbackName}`,g="normal";c.black?g="900":c.bold&&(g="bold");let i=c.italic?"italic":"normal",j=b;b<16?j=16:b>100&&(j=100),this.current.fontSizeScale=b/j,this.ctx.font=`${i} ${g} ${j}px ${f}`}setTextRenderingMode(a){this.current.textRenderingMode=a}setTextRise(a){this.current.textRise=a}moveText(a,b){this.current.x=this.current.lineX+=a,this.current.y=this.current.lineY+=b}setLeadingMoveText(a,b){this.setLeading(-b),this.moveText(a,b)}setTextMatrix(a,b,c,d,e,f){this.current.textMatrix=[a,b,c,d,e,f],this.current.textMatrixScale=Math.hypot(a,b),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}nextLine(){this.moveText(0,this.current.leading)}#ci(a,b,c){let d=new Path2D;return d.addPath(a,new DOMMatrix(c).invertSelf().multiplySelf(b)),d}paintChar(a,b,c,d,e){let f,g=this.ctx,h=this.current,i=h.font,j=h.textRenderingMode,k=h.fontSize/h.fontSizeScale,l=3&j,m=!!(4&j),n=h.patternFill&&!i.missingFile,o=h.patternStroke&&!i.missingFile;if((i.disableFontFace||m||n||o)&&(f=i.getPathGenerator(this.commonObjs,a)),i.disableFontFace||n||o){if(g.save(),g.translate(b,c),g.scale(k,-k),0===l||2===l)if(d){let a=g.getTransform();g.setTransform(...d),g.fill(this.#ci(f,a,d))}else g.fill(f);if(1===l||2===l)if(e){let a=g.getTransform();g.setTransform(...e),g.stroke(this.#ci(f,a,e))}else g.lineWidth/=k,g.stroke(f);g.restore()}else(0===l||2===l)&&g.fillText(a,b,c),(1===l||2===l)&&g.strokeText(a,b,c);m&&(this.pendingTextPaths||=[]).push({transform:ad(g),x:b,y:c,fontSize:k,path:f})}get isFontSubpixelAAEnabled(){let{context:a}=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10);a.scale(1.5,1),a.fillText("I",0,10);let b=a.getImageData(0,0,10,10).data,c=!1;for(let a=3;a<b.length;a+=4)if(b[a]>0&&b[a]<255){c=!0;break}return w(this,"isFontSubpixelAAEnabled",c)}showText(a){let b,c,d=this.current,e=d.font;if(e.isType3Font)return this.showType3Text(a);let f=d.fontSize;if(0===f)return;let g=this.ctx,h=d.fontSizeScale,i=d.charSpacing,j=d.wordSpacing,k=d.fontDirection,l=d.textHScale*k,m=a.length,n=e.vertical,o=n?1:-1,p=e.defaultVMetrics,q=f*d.fontMatrix[0],r=0===d.textRenderingMode&&!e.disableFontFace&&!d.patternFill;if(g.save(),g.transform(...d.textMatrix),g.translate(d.x,d.y+d.textRise),k>0?g.scale(l,-1):g.scale(l,1),d.patternFill){g.save();let a=d.fillColor.getPattern(g,this,ae(g),aQ);b=ad(g),g.restore(),g.fillStyle=a}if(d.patternStroke){g.save();let a=d.strokeColor.getPattern(g,this,ae(g),aR);c=ad(g),g.restore(),g.strokeStyle=a}let s=d.lineWidth,t=d.textMatrixScale;if(0===t||0===s){let a=3&d.textRenderingMode;(1===a||2===a)&&(s=this.getSinglePixelWidth())}else s/=t;if(1!==h&&(g.scale(h,h),s/=h),g.lineWidth=s,e.isInvalidPDFjsFont){let b=[],c=0;for(let d of a)b.push(d.unicode),c+=d.width;g.fillText(b.join(""),0,0),d.x+=c*q*l,g.restore(),this.compose();return}let u=0,v;for(v=0;v<m;++v){let d,l,m=a[v];if("number"==typeof m){u+=o*m*f/1e3;continue}let s=!1,t=(m.isSpace?j:0)+i,w=m.fontChar,x=m.accent,y=m.width;if(n){let a=m.vmetric||p,b=-(m.vmetric?a[1]:.5*y)*q,c=a[2]*q;y=a?-a[0]:y,d=b/h,l=(u+c)/h}else d=u/h,l=0;if(e.remeasure&&y>0){let a=1e3*g.measureText(w).width/f*h;if(y<a&&this.isFontSubpixelAAEnabled){let b=y/a;s=!0,g.save(),g.scale(b,1),d/=b}else y!==a&&(d+=(y-a)/2e3*f/h)}if(this.contentVisible&&(m.isInFont||e.missingFile)){if(r&&!x)g.fillText(w,d,l);else if(this.paintChar(w,d,l,b,c),x){let a=d+f*x.offset.x/h,e=l-f*x.offset.y/h;this.paintChar(x.fontChar,a,e,b,c)}}u+=n?y*q-t*k:y*q+t*k,s&&g.restore()}n?d.y-=u:d.x+=u*l,g.restore(),this.compose()}showType3Text(a){let b,c,d,e,f=this.ctx,g=this.current,i=g.font,j=g.fontSize,k=g.fontDirection,l=i.vertical?1:-1,m=g.charSpacing,n=g.wordSpacing,o=g.textHScale*k,p=g.fontMatrix||h,q=a.length;if(3!==g.textRenderingMode&&0!==j){for(this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null,f.save(),f.transform(...g.textMatrix),f.translate(g.x,g.y),f.scale(o,k),b=0;b<q;++b){if("number"==typeof(c=a[b])){e=l*c*j/1e3,this.ctx.translate(e,0),g.x+=e*o;continue}let h=(c.isSpace?n:0)+m,k=i.charProcOperatorList[c.operatorListId];if(!k){s(`Type3 character "${c.operatorListId}" is not available.`);continue}this.contentVisible&&(this.processingType3=c,this.save(),f.scale(j,j),f.transform(...p),this.executeOperatorList(k),this.restore()),d=K.applyTransform([c.width,0],p)[0]*j+h,f.translate(d,0),g.x+=d*o}f.restore(),this.processingType3=null}}setCharWidth(a,b){}setCharWidthAndBounds(a,b,c,d,e,f){this.ctx.rect(c,d,e-c,f-d),this.ctx.clip(),this.endPath()}getColorN_Pattern(a){let b;if("TilingPattern"===a[0]){let c=a[1],d=this.baseTransform||ad(this.ctx);b=new aZ(a,c,this.ctx,{createCanvasGraphics:a=>new ba(a,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack})},d)}else b=this._getPattern(a[1],a[2]);return b}setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments),this.current.patternStroke=!0}setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments),this.current.patternFill=!0}setStrokeRGBColor(a,b,c){this.ctx.strokeStyle=this.current.strokeColor=K.makeHexColor(a,b,c),this.current.patternStroke=!1}setStrokeTransparent(){this.ctx.strokeStyle=this.current.strokeColor="transparent",this.current.patternStroke=!1}setFillRGBColor(a,b,c){this.ctx.fillStyle=this.current.fillColor=K.makeHexColor(a,b,c),this.current.patternFill=!1}setFillTransparent(){this.ctx.fillStyle=this.current.fillColor="transparent",this.current.patternFill=!1}_getPattern(a,b=null){let c;return this.cachedPatterns.has(a)?c=this.cachedPatterns.get(a):(c=function(a){switch(a[0]){case"RadialAxial":return new aV(a);case"Mesh":return new aX(a);case"Dummy":return new aY}throw Error(`Unknown IR type: ${a[0]}`)}(this.getObject(a)),this.cachedPatterns.set(a,c)),b&&(c.matrix=b),c}shadingFill(a){if(!this.contentVisible)return;let b=this.ctx;this.save(),b.fillStyle=this._getPattern(a).getPattern(b,this,ae(b),aS);let c=ae(b);if(c){let{width:a,height:d}=b.canvas,[e,f,g,h]=K.getAxialAlignedBoundingBox([0,0,a,d],c);this.ctx.fillRect(e,f,g-e,h-f)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.compose(this.current.getClippedPathBoundingBox()),this.restore()}beginInlineImage(){t("Should not call beginInlineImage")}beginImageData(){t("Should not call beginImageData")}paintFormXObjectBegin(a,b){if(this.contentVisible&&(this.save(),this.baseTransformStack.push(this.baseTransform),a&&this.transform(...a),this.baseTransform=ad(this.ctx),b)){let a=b[2]-b[0],c=b[3]-b[1];this.ctx.rect(b[0],b[1],a,c),this.current.updateRectMinMax(ad(this.ctx),b),this.clip(),this.endPath()}}paintFormXObjectEnd(){this.contentVisible&&(this.restore(),this.baseTransform=this.baseTransformStack.pop())}beginGroup(a){if(!this.contentVisible)return;this.save(),this.inSMaskMode&&(this.endSMaskMode(),this.current.activeSMask=null);let b=this.ctx;a.isolated||r("TODO: Support non-isolated groups."),a.knockout&&s("Knockout groups not supported.");let c=ad(b);if(a.matrix&&b.transform(...a.matrix),!a.bbox)throw Error("Bounding box is required.");let d=K.getAxialAlignedBoundingBox(a.bbox,ad(b)),e=[0,0,b.canvas.width,b.canvas.height],f=Math.floor((d=K.intersect(d,e)||[0,0,0,0])[0]),g=Math.floor(d[1]),h=Math.max(Math.ceil(d[2])-f,1),i=Math.max(Math.ceil(d[3])-g,1);this.current.startNewPathAndClipBox([0,0,h,i]);let j="groupAt"+this.groupLevel;a.smask&&(j+="_smask_"+this.smaskCounter++%2);let k=this.cachedCanvases.getCanvas(j,h,i),l=k.context;l.translate(-f,-g),l.transform(...c),a.smask?this.smaskStack.push({canvas:k.canvas,context:l,offsetX:f,offsetY:g,subtype:a.smask.subtype,backdrop:a.smask.backdrop,transferMap:a.smask.transferMap||null,startTransformInverse:null}):(b.setTransform(1,0,0,1,0,0),b.translate(f,g),b.save()),a3(b,l),this.ctx=l,this.setGState([["BM","source-over"],["ca",1],["CA",1]]),this.groupStack.push(b),this.groupLevel++}endGroup(a){if(!this.contentVisible)return;this.groupLevel--;let b=this.ctx,c=this.groupStack.pop();if(this.ctx=c,this.ctx.imageSmoothingEnabled=!1,a.smask)this.tempSMask=this.smaskStack.pop(),this.restore();else{this.ctx.restore();let a=ad(this.ctx);this.restore(),this.ctx.save(),this.ctx.setTransform(...a);let c=K.getAxialAlignedBoundingBox([0,0,b.canvas.width,b.canvas.height],a);this.ctx.drawImage(b.canvas,0,0),this.ctx.restore(),this.compose(c)}}beginAnnotation(a,b,c,d,e){if(this.#cg(),a4(this.ctx),this.ctx.save(),this.save(),this.baseTransform&&this.ctx.setTransform(...this.baseTransform),b){let d=b[2]-b[0],f=b[3]-b[1];if(e&&this.annotationCanvasMap){c=c.slice(),c[4]-=b[0],c[5]-=b[1],(b=b.slice())[0]=b[1]=0,b[2]=d,b[3]=f;let[e,g]=K.singularValueDecompose2dScale(ad(this.ctx)),{viewportScale:h}=this,i=Math.ceil(d*this.outputScaleX*h),j=Math.ceil(f*this.outputScaleY*h);this.annotationCanvas=this.canvasFactory.create(i,j);let{canvas:k,context:l}=this.annotationCanvas;this.annotationCanvasMap.set(a,k),this.annotationCanvas.savedCtx=this.ctx,this.ctx=l,this.ctx.save(),this.ctx.setTransform(e,0,0,-g,0,f*g),a4(this.ctx)}else a4(this.ctx),this.endPath(),this.ctx.rect(b[0],b[1],d,f),this.ctx.clip(),this.ctx.beginPath()}this.current=new a0(this.ctx.canvas.width,this.ctx.canvas.height),this.transform(...c),this.transform(...d)}endAnnotation(){this.annotationCanvas&&(this.ctx.restore(),this.#ch(),this.ctx=this.annotationCanvas.savedCtx,delete this.annotationCanvas.savedCtx,delete this.annotationCanvas)}paintImageMaskXObject(a){if(!this.contentVisible)return;let b=a.count;(a=this.getObject(a.data,a)).count=b;let c=this.ctx,d=this.processingType3;if(d&&(void 0===d.compiled&&(d.compiled=function(a){let b,c,d,{width:e,height:f}=a;if(e>1e3||f>1e3)return null;let g=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),h=e+1,i=new Uint8Array(h*(f+1)),j=e+7&-8,k=new Uint8Array(j*f),l=0;for(let b of a.data){let a=128;for(;a>0;)k[l++]=b&a?0:255,a>>=1}let m=0;for(0!==k[l=0]&&(i[0]=1,++m),c=1;c<e;c++)k[l]!==k[l+1]&&(i[c]=k[l]?2:1,++m),l++;for(0!==k[l]&&(i[c]=2,++m),b=1;b<f;b++){l=b*j,d=b*h,k[l-j]!==k[l]&&(i[d]=k[l]?1:8,++m);let a=4*!!k[l]+8*!!k[l-j];for(c=1;c<e;c++)g[a=(a>>2)+4*!!k[l+1]+8*!!k[l-j+1]]&&(i[d+c]=g[a],++m),l++;if(k[l-j]!==k[l]&&(i[d+c]=k[l]?2:4,++m),m>1e3)return null}for(l=j*(f-1),d=b*h,0!==k[l]&&(i[d]=8,++m),c=1;c<e;c++)k[l]!==k[l+1]&&(i[d+c]=k[l]?4:8,++m),l++;if(0!==k[l]&&(i[d+c]=4,++m),m>1e3)return null;let n=new Int32Array([0,h,-1,0,-h,0,0,0,1]),o=new Path2D;for(b=0;m&&b<=f;b++){let a=b*h,c=a+e;for(;a<c&&!i[a];)a++;if(a===c)continue;o.moveTo(a%h,b);let d=a,f=i[a];do{let b=n[f];do a+=b;while(!i[a]);let c=i[a];5!==c&&10!==c?(f=c,i[a]=0):(f=c&51*f>>4,i[a]&=f>>2|f<<2),o.lineTo(a%h,a/h|0),!i[a]&&--m}while(d!==a);--b}return k=null,i=null,function(a){a.save(),a.scale(1/e,-1/f),a.translate(0,-f),a.fill(o),a.beginPath(),a.restore()}}(a)),d.compiled))return void d.compiled(c);let e=this._createMaskCanvas(a),f=e.canvas;c.save(),c.setTransform(1,0,0,1,0,0),c.drawImage(f,e.offsetX,e.offsetY),c.restore(),this.compose()}paintImageMaskXObjectRepeat(a,b,c=0,d=0,e,f){if(!this.contentVisible)return;a=this.getObject(a.data,a);let g=this.ctx;g.save();let h=ad(g);g.transform(b,c,d,e,0,0);let i=this._createMaskCanvas(a);g.setTransform(1,0,0,1,i.offsetX-h[4],i.offsetY-h[5]);for(let a=0,j=f.length;a<j;a+=2){let j=K.transform(h,[b,c,d,e,f[a],f[a+1]]),[k,l]=K.applyTransform([0,0],j);g.drawImage(i.canvas,k,l)}g.restore(),this.compose()}paintImageMaskXObjectGroup(a){if(!this.contentVisible)return;let b=this.ctx,c=this.current.fillColor,d=this.current.patternFill;for(let e of a){let{data:a,width:f,height:g,transform:h}=e,i=this.cachedCanvases.getCanvas("maskCanvas",f,g),j=i.context;j.save(),a2(j,this.getObject(a,e)),j.globalCompositeOperation="source-in",j.fillStyle=d?c.getPattern(j,this,ae(b),aQ):c,j.fillRect(0,0,f,g),j.restore(),b.save(),b.transform(...h),b.scale(1,-1),a_(b,i.canvas,0,0,f,g,0,-1,1,1),b.restore()}this.compose()}paintImageXObject(a){if(!this.contentVisible)return;let b=this.getObject(a);b?this.paintInlineImageXObject(b):s("Dependent image isn't ready yet")}paintImageXObjectRepeat(a,b,c,d){if(!this.contentVisible)return;let e=this.getObject(a);if(!e)return void s("Dependent image isn't ready yet");let f=e.width,g=e.height,h=[];for(let a=0,e=d.length;a<e;a+=2)h.push({transform:[b,0,0,c,d[a],d[a+1]],x:0,y:0,w:f,h:g});this.paintInlineImageXObjectGroup(e,h)}applyTransferMapsToCanvas(a){return"none"!==this.current.transferMaps&&(a.filter=this.current.transferMaps,a.drawImage(a.canvas,0,0),a.filter="none"),a.canvas}applyTransferMapsToBitmap(a){if("none"===this.current.transferMaps)return a.bitmap;let{bitmap:b,width:c,height:d}=a,e=this.cachedCanvases.getCanvas("inlineImage",c,d),f=e.context;return f.filter=this.current.transferMaps,f.drawImage(b,0,0),f.filter="none",e.canvas}paintInlineImageXObject(a){let b;if(!this.contentVisible)return;let c=a.width,d=a.height,e=this.ctx;if(this.save(),!f){let{filter:a}=e;"none"!==a&&""!==a&&(e.filter="none")}if(e.scale(1/c,-1/d),a.bitmap)b=this.applyTransferMapsToBitmap(a);else if("function"==typeof HTMLElement&&a instanceof HTMLElement||!a.data)b=a;else{let e=this.cachedCanvases.getCanvas("inlineImage",c,d).context;a1(e,a),b=this.applyTransferMapsToCanvas(e)}let g=this._scaleImage(b,ae(e));e.imageSmoothingEnabled=a5(ad(e),a.interpolate),a_(e,g.img,0,0,g.paintWidth,g.paintHeight,0,-d,c,d),this.compose(),this.restore()}paintInlineImageXObjectGroup(a,b){let c;if(!this.contentVisible)return;let d=this.ctx;if(a.bitmap)c=a.bitmap;else{let b=a.width,d=a.height,e=this.cachedCanvases.getCanvas("inlineImage",b,d).context;a1(e,a),c=this.applyTransferMapsToCanvas(e)}for(let a of b)d.save(),d.transform(...a.transform),d.scale(1,-1),a_(d,c,a.x,a.y,a.w,a.h,0,-1,1,1),d.restore();this.compose()}paintSolidColorImageMask(){this.contentVisible&&(this.ctx.fillRect(0,0,1,1),this.compose())}markPoint(a){}markPointProps(a,b){}beginMarkedContent(a){this.markedContentStack.push({visible:!0})}beginMarkedContentProps(a,b){"OC"===a?this.markedContentStack.push({visible:this.optionalContentConfig.isVisible(b)}):this.markedContentStack.push({visible:!0}),this.contentVisible=this.isContentVisible()}endMarkedContent(){this.markedContentStack.pop(),this.contentVisible=this.isContentVisible()}beginCompat(){}endCompat(){}consumePath(a){let b=this.current.isEmptyClip();this.pendingClip&&this.current.updateClipFromPath(),this.pendingClip||this.compose(a);let c=this.ctx;this.pendingClip&&(b||(this.pendingClip===a9?c.clip("evenodd"):c.clip()),this.pendingClip=null),this.current.startNewPathAndClipBox(this.current.clipBox),c.beginPath()}getSinglePixelWidth(){if(!this._cachedGetSinglePixelWidth){let a=ad(this.ctx);if(0===a[1]&&0===a[2])this._cachedGetSinglePixelWidth=1/Math.min(Math.abs(a[0]),Math.abs(a[3]));else{let b=Math.abs(a[0]*a[3]-a[2]*a[1]),c=Math.hypot(a[0],a[2]),d=Math.hypot(a[1],a[3]);this._cachedGetSinglePixelWidth=Math.max(c,d)/b}}return this._cachedGetSinglePixelWidth}getScaleForStroking(){if(-1===this._cachedScaleForStroking[0]){let a,b,{lineWidth:c}=this.current,{a:d,b:e,c:f,d:g}=this.ctx.getTransform();if(0===e&&0===f){let e=Math.abs(d),f=Math.abs(g);if(e===f)if(0===c)a=b=1/e;else{let d=e*c;a=b=d<1?1/d:1}else if(0===c)a=1/e,b=1/f;else{let d=e*c,g=f*c;a=d<1?1/d:1,b=g<1?1/g:1}}else{let h=Math.abs(d*g-e*f),i=Math.hypot(d,e),j=Math.hypot(f,g);if(0===c)a=j/h,b=i/h;else{let d=c*h;a=j>d?j/d:1,b=i>d?i/d:1}}this._cachedScaleForStroking[0]=a,this._cachedScaleForStroking[1]=b}return this._cachedScaleForStroking}rescaleAndStroke(a){let{ctx:b}=this,{lineWidth:c}=this.current,[d,e]=this.getScaleForStroking();if(b.lineWidth=c||1,1===d&&1===e)return void b.stroke();let f=b.getLineDash();if(a&&b.save(),b.scale(d,e),f.length>0){let a=Math.max(d,e);b.setLineDash(f.map(b=>b/a)),b.lineDashOffset/=a}b.stroke(),a&&b.restore()}isContentVisible(){for(let a=this.markedContentStack.length-1;a>=0;a--)if(!this.markedContentStack[a].visible)return!1;return!0}}for(let a in o)void 0!==ba.prototype[a]&&(ba.prototype[o[a]]=ba.prototype[a]);class bb{static #cj=null;static #ck="";static get workerPort(){return this.#cj}static set workerPort(a){if(!("u">typeof Worker&&a instanceof Worker)&&null!==a)throw Error("Invalid `workerPort` type.");this.#cj=a}static get workerSrc(){return this.#ck}static set workerSrc(a){if("string"!=typeof a)throw Error("Invalid `workerSrc` type.");this.#ck=a}}class bc{#cl;#cm;constructor({parsedData:a,rawData:b}){this.#cl=a,this.#cm=b}getRaw(){return this.#cm}get(a){return this.#cl.get(a)??null}getAll(){return H(this.#cl)}has(a){return this.#cl.has(a)}}let bd=Symbol("INTERNAL");class be{#cn=!1;#co=!1;#cp=!1;#cq=!0;constructor(a,{name:b,intent:c,usage:d,rbGroups:e}){this.#cn=!!(2&a),this.#co=!!(4&a),this.name=b,this.intent=c,this.usage=d,this.rbGroups=e}get visible(){if(this.#cp)return this.#cq;if(!this.#cq)return!1;let{print:a,view:b}=this.usage;return this.#cn?b?.viewState!=="OFF":!this.#co||a?.printState!=="OFF"}_setVisible(a,b,c=!1){a!==bd&&t("Internal method `_setVisible` called."),this.#cp=c,this.#cq=b}}class bf{#cr=null;#cs=new Map;#ct=null;#cu=null;constructor(a,b=2){if(this.renderingIntent=b,this.name=null,this.creator=null,null===a)return;for(const c of(this.name=a.name,this.creator=a.creator,this.#cu=a.order,a.groups))this.#cs.set(c.id,new be(b,c));if("OFF"===a.baseState)for(const a of this.#cs.values())a._setVisible(bd,!1);for(const b of a.on)this.#cs.get(b)._setVisible(bd,!0);for(const b of a.off)this.#cs.get(b)._setVisible(bd,!1);this.#ct=this.getHash()}#cv(a){let b=a.length;if(b<2)return!0;let c=a[0];for(let d=1;d<b;d++){let b,e=a[d];if(Array.isArray(e))b=this.#cv(e);else{if(!this.#cs.has(e))return s(`Optional content group not found: ${e}`),!0;b=this.#cs.get(e).visible}switch(c){case"And":if(!b)return!1;break;case"Or":if(b)return!0;break;case"Not":return!b;default:return!0}}return"And"===c}isVisible(a){if(0===this.#cs.size)return!0;if(!a)return r("Optional content group not defined."),!0;if("OCG"===a.type)return this.#cs.has(a.id)?this.#cs.get(a.id).visible:(s(`Optional content group not found: ${a.id}`),!0);if("OCMD"===a.type){if(a.expression)return this.#cv(a.expression);if(a.policy&&"AnyOn"!==a.policy){if("AllOn"===a.policy){for(let b of a.ids){if(!this.#cs.has(b)){s(`Optional content group not found: ${b}`);break}if(!this.#cs.get(b).visible)return!1}return!0}else if("AnyOff"===a.policy){for(let b of a.ids){if(!this.#cs.has(b))return s(`Optional content group not found: ${b}`),!0;if(!this.#cs.get(b).visible)return!0}return!1}else if("AllOff"===a.policy){for(let b of a.ids){if(!this.#cs.has(b)){s(`Optional content group not found: ${b}`);break}if(this.#cs.get(b).visible)return!1}return!0}}else{for(let b of a.ids){if(!this.#cs.has(b))return s(`Optional content group not found: ${b}`),!0;if(this.#cs.get(b).visible)return!0}return!1}return s(`Unknown optional content policy ${a.policy}.`),!0}return s(`Unknown group type ${a.type}.`),!0}setVisibility(a,b=!0,c=!0){let d=this.#cs.get(a);if(!d)return void s(`Optional content group not found: ${a}`);if(c&&b&&d.rbGroups.length)for(let b of d.rbGroups)for(let c of b)c!==a&&this.#cs.get(c)?._setVisible(bd,!1,!0);d._setVisible(bd,!!b,!0),this.#cr=null}setOCGState({state:a,preserveRB:b}){let c;for(let d of a){switch(d){case"ON":case"OFF":case"Toggle":c=d;continue}let a=this.#cs.get(d);if(a)switch(c){case"ON":this.setVisibility(d,!0,b);break;case"OFF":this.setVisibility(d,!1,b);break;case"Toggle":this.setVisibility(d,!a.visible,b)}}this.#cr=null}get hasInitialVisibility(){return null===this.#ct||this.getHash()===this.#ct}getOrder(){return this.#cs.size?this.#cu?this.#cu.slice():[...this.#cs.keys()]:null}getGroups(){return this.#cs.size>0?H(this.#cs):null}getGroup(a){return this.#cs.get(a)||null}getHash(){if(null!==this.#cr)return this.#cr;let a=new au;for(let[b,c]of this.#cs)a.update(`${b}:${c.visible}`);return this.#cr=a.hexdigest()}}class bg{constructor(a,{disableRange:b=!1,disableStream:c=!1}){u(a,'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.');const{length:d,initialData:e,progressiveDone:f,contentDispositionFilename:g}=a;if(this._queuedChunks=[],this._progressiveDone=f,this._contentDispositionFilename=g,e?.length>0){const a=e instanceof Uint8Array&&e.byteLength===e.buffer.byteLength?e.buffer:new Uint8Array(e).buffer;this._queuedChunks.push(a)}this._pdfDataRangeTransport=a,this._isStreamingSupported=!c,this._isRangeSupported=!b,this._contentLength=d,this._fullRequestReader=null,this._rangeReaders=[],a.addRangeListener((a,b)=>{this._onReceiveData({begin:a,chunk:b})}),a.addProgressListener((a,b)=>{this._onProgress({loaded:a,total:b})}),a.addProgressiveReadListener(a=>{this._onReceiveData({chunk:a})}),a.addProgressiveDoneListener(()=>{this._onProgressiveDone()}),a.transportReady()}_onReceiveData({begin:a,chunk:b}){let c=b instanceof Uint8Array&&b.byteLength===b.buffer.byteLength?b.buffer:new Uint8Array(b).buffer;void 0===a?this._fullRequestReader?this._fullRequestReader._enqueue(c):this._queuedChunks.push(c):u(this._rangeReaders.some(function(b){return b._begin===a&&(b._enqueue(c),!0)}),"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.")}get _progressiveDataLength(){return this._fullRequestReader?._loaded??0}_onProgress(a){void 0===a.total?this._rangeReaders[0]?.onProgress?.({loaded:a.loaded}):this._fullRequestReader?.onProgress?.({loaded:a.loaded,total:a.total})}_onProgressiveDone(){this._fullRequestReader?.progressiveDone(),this._progressiveDone=!0}_removeRangeReader(a){let b=this._rangeReaders.indexOf(a);b>=0&&this._rangeReaders.splice(b,1)}getFullReader(){u(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");let a=this._queuedChunks;return this._queuedChunks=null,new bh(this,a,this._progressiveDone,this._contentDispositionFilename)}getRangeReader(a,b){if(b<=this._progressiveDataLength)return null;let c=new bi(this,a,b);return this._pdfDataRangeTransport.requestDataRange(a,b),this._rangeReaders.push(c),c}cancelAllRequests(a){for(let b of(this._fullRequestReader?.cancel(a),this._rangeReaders.slice(0)))b.cancel(a);this._pdfDataRangeTransport.abort()}}class bh{constructor(a,b,c=!1,d=null){for(const e of(this._stream=a,this._done=c||!1,this._filename=V(d)?d:null,this._queuedChunks=b||[],this._loaded=0,this._queuedChunks))this._loaded+=e.byteLength;this._requests=[],this._headersReady=Promise.resolve(),a._fullRequestReader=this,this.onProgress=null}_enqueue(a){this._done||(this._requests.length>0?this._requests.shift().resolve({value:a,done:!1}):this._queuedChunks.push(a),this._loaded+=a.byteLength)}get headersReady(){return this._headersReady}get filename(){return this._filename}get isRangeSupported(){return this._stream._isRangeSupported}get isStreamingSupported(){return this._stream._isStreamingSupported}get contentLength(){return this._stream._contentLength}async read(){if(this._queuedChunks.length>0)return{value:this._queuedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};let a=Promise.withResolvers();return this._requests.push(a),a.promise}cancel(a){for(let a of(this._done=!0,this._requests))a.resolve({value:void 0,done:!0});this._requests.length=0}progressiveDone(){this._done||(this._done=!0)}}class bi{constructor(a,b,c){this._stream=a,this._begin=b,this._end=c,this._queuedChunk=null,this._requests=[],this._done=!1,this.onProgress=null}_enqueue(a){if(!this._done){if(0===this._requests.length)this._queuedChunk=a;else{for(let b of(this._requests.shift().resolve({value:a,done:!1}),this._requests))b.resolve({value:void 0,done:!0});this._requests.length=0}this._done=!0,this._stream._removeRangeReader(this)}}get isStreamingSupported(){return!1}async read(){if(this._queuedChunk){let a=this._queuedChunk;return this._queuedChunk=null,{value:a,done:!1}}if(this._done)return{value:void 0,done:!0};let a=Promise.withResolvers();return this._requests.push(a),a.promise}cancel(a){for(let a of(this._done=!0,this._requests))a.resolve({value:void 0,done:!0});this._requests.length=0,this._stream._removeRangeReader(this)}}function bj(a,b){let c=new Headers;if(!a||!b||"object"!=typeof b)return c;for(let a in b){let d=b[a];void 0!==d&&c.append(a,d)}return c}function bk(a){try{return new URL(a).origin}catch{}return null}function bl({responseHeaders:a,isHttp:b,rangeChunkSize:c,disableRange:d}){let e={allowRangeRequests:!1,suggestedLength:void 0},f=parseInt(a.get("Content-Length"),10);return Number.isInteger(f)&&(e.suggestedLength=f,f<=2*c||d||!b||"bytes"!==a.get("Accept-Ranges")||"identity"!==(a.get("Content-Encoding")||"identity")||(e.allowRangeRequests=!0)),e}function bm(a){let b=a.get("Content-Disposition");if(b){let a=function(a){let b=!0,c=d("filename\\*","i").exec(a);if(c){let a=g(c=c[1]);return f(a=i(a=h(a=unescape(a))))}if(c=function(a){let b,c=[],e=d("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;null!==(b=e.exec(a));){let[,a,d,e]=b;if((a=parseInt(a,10))in c){if(0===a)break;continue}c[a]=[d,e]}let f=[];for(let a=0;a<c.length&&a in c;++a){let[b,d]=c[a];d=g(d),b&&(d=unescape(d),0===a&&(d=h(d))),f.push(d)}return f.join("")}(a))return f(i(c));if(c=d("filename","i").exec(a)){let a=g(c=c[1]);return f(a=i(a))}function d(a,b){return RegExp("(?:^|;)\\s*"+a+'\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',b)}function e(a,c){if(a){if(!/^[\x00-\xFF]+$/.test(c))return c;try{let d=new TextDecoder(a,{fatal:!0}),e=G(c);c=d.decode(e),b=!1}catch{}}return c}function f(a){return b&&/[\x80-\xff]/.test(a)&&(a=e("utf-8",a),b&&(a=e("iso-8859-1",a))),a}function g(a){if(a.startsWith('"')){let b=a.slice(1).split('\\"');for(let a=0;a<b.length;++a){let c=b[a].indexOf('"');-1!==c&&(b[a]=b[a].slice(0,c),b.length=a+1),b[a]=b[a].replaceAll(/\\(.)/g,"$1")}a=b.join('"')}return a}function h(a){let b=a.indexOf("'");return -1===b?a:e(a.slice(0,b),a.slice(b+1).replace(/^[^']*'/,""))}function i(a){return!a.startsWith("=?")||/[\x00-\x19\x80-\xff]/.test(a)?a:a.replaceAll(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g,function(a,b,c,d){if("q"===c||"Q"===c)return e(b,d=(d=d.replaceAll("_"," ")).replaceAll(/=([0-9a-fA-F]{2})/g,function(a,b){return String.fromCharCode(parseInt(b,16))}));try{d=atob(d)}catch{}return e(b,d)})}return""}(b);if(a.includes("%"))try{a=decodeURIComponent(a)}catch{}if(V(a))return a}return null}function bn(a,b){return 404===a||0===a&&b.startsWith("file:")?new B('Missing PDF "'+b+'".'):new C(`Unexpected server response (${a}) while retrieving PDF "${b}".`,a)}function bo(a){return 200===a||206===a}function bp(a,b,c){return{method:"GET",headers:a,signal:c.signal,mode:"cors",credentials:b?"include":"same-origin",redirect:"follow"}}function bq(a){return a instanceof Uint8Array?a.buffer:a instanceof ArrayBuffer?a:(s(`getArrayBuffer - unexpected data format: ${a}`),new Uint8Array(a).buffer)}class br{_responseOrigin=null;constructor(a){this.source=a,this.isHttp=/^https?:/i.test(a.url),this.headers=bj(this.isHttp,a.httpHeaders),this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){return this._fullRequestReader?._loaded??0}getFullReader(){return u(!this._fullRequestReader,"PDFFetchStream.getFullReader can only be called once."),this._fullRequestReader=new bs(this),this._fullRequestReader}getRangeReader(a,b){if(b<=this._progressiveDataLength)return null;let c=new bt(this,a,b);return this._rangeRequestReaders.push(c),c}cancelAllRequests(a){for(let b of(this._fullRequestReader?.cancel(a),this._rangeRequestReaders.slice(0)))b.cancel(a)}}class bs{constructor(a){this._stream=a,this._reader=null,this._loaded=0,this._filename=null;const b=a.source;this._withCredentials=b.withCredentials||!1,this._contentLength=b.length,this._headersCapability=Promise.withResolvers(),this._disableRange=b.disableRange||!1,this._rangeChunkSize=b.rangeChunkSize,this._rangeChunkSize||this._disableRange||(this._disableRange=!0),this._abortController=new AbortController,this._isStreamingSupported=!b.disableStream,this._isRangeSupported=!b.disableRange;const c=new Headers(a.headers),d=b.url;fetch(d,bp(c,this._withCredentials,this._abortController)).then(b=>{if(a._responseOrigin=bk(b.url),!bo(b.status))throw bn(b.status,d);this._reader=b.body.getReader(),this._headersCapability.resolve();let c=b.headers,{allowRangeRequests:e,suggestedLength:f}=bl({responseHeaders:c,isHttp:a.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=e,this._contentLength=f||this._contentLength,this._filename=bm(c),!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new E("Streaming is disabled."))}).catch(this._headersCapability.reject),this.onProgress=null}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){await this._headersCapability.promise;let{value:a,done:b}=await this._reader.read();return b?{value:a,done:b}:(this._loaded+=a.byteLength,this.onProgress?.({loaded:this._loaded,total:this._contentLength}),{value:bq(a),done:!1})}cancel(a){this._reader?.cancel(a),this._abortController.abort()}}class bt{constructor(a,b,c){this._stream=a,this._reader=null,this._loaded=0;const d=a.source;this._withCredentials=d.withCredentials||!1,this._readCapability=Promise.withResolvers(),this._isStreamingSupported=!d.disableStream,this._abortController=new AbortController;const e=new Headers(a.headers);e.append("Range",`bytes=${b}-${c-1}`);const f=d.url;fetch(f,bp(e,this._withCredentials,this._abortController)).then(b=>{let c=bk(b.url);if(c!==a._responseOrigin)throw Error(`Expected range response-origin "${c}" to match "${a._responseOrigin}".`);if(!bo(b.status))throw bn(b.status,f);this._readCapability.resolve(),this._reader=b.body.getReader()}).catch(this._readCapability.reject),this.onProgress=null}get isStreamingSupported(){return this._isStreamingSupported}async read(){await this._readCapability.promise;let{value:a,done:b}=await this._reader.read();return b?{value:a,done:b}:(this._loaded+=a.byteLength,this.onProgress?.({loaded:this._loaded}),{value:bq(a),done:!1})}cancel(a){this._reader?.cancel(a),this._abortController.abort()}}class bu{_responseOrigin=null;constructor({url:a,httpHeaders:b,withCredentials:c}){this.url=a,this.isHttp=/^https?:/i.test(a),this.headers=bj(this.isHttp,b),this.withCredentials=c||!1,this.currXhrId=0,this.pendingRequests=Object.create(null)}request(a){let b=new XMLHttpRequest,c=this.currXhrId++,d=this.pendingRequests[c]={xhr:b};for(let[a,c]of(b.open("GET",this.url),b.withCredentials=this.withCredentials,this.headers))b.setRequestHeader(a,c);return this.isHttp&&"begin"in a&&"end"in a?(b.setRequestHeader("Range",`bytes=${a.begin}-${a.end-1}`),d.expectedStatus=206):d.expectedStatus=200,b.responseType="arraybuffer",u(a.onError,"Expected `onError` callback to be provided."),b.onerror=()=>{a.onError(b.status)},b.onreadystatechange=this.onStateChange.bind(this,c),b.onprogress=this.onProgress.bind(this,c),d.onHeadersReceived=a.onHeadersReceived,d.onDone=a.onDone,d.onError=a.onError,d.onProgress=a.onProgress,b.send(null),c}onProgress(a,b){let c=this.pendingRequests[a];c&&c.onProgress?.(b)}onStateChange(a,b){let c,d=this.pendingRequests[a];if(!d)return;let e=d.xhr;if(e.readyState>=2&&d.onHeadersReceived&&(d.onHeadersReceived(),delete d.onHeadersReceived),4!==e.readyState||!(a in this.pendingRequests))return;if(delete this.pendingRequests[a],0===e.status&&this.isHttp)return void d.onError(e.status);let f=e.status||200;if((200!==f||206!==d.expectedStatus)&&f!==d.expectedStatus)return void d.onError(e.status);let g="string"!=typeof(c=e.response)?c:G(c).buffer;if(206===f){let a=e.getResponseHeader("Content-Range"),b=/bytes (\d+)-(\d+)\/(\d+)/.exec(a);b?d.onDone({begin:parseInt(b[1],10),chunk:g}):(s('Missing or invalid "Content-Range" header.'),d.onError(0))}else g?d.onDone({begin:0,chunk:g}):d.onError(e.status)}getRequestXhr(a){return this.pendingRequests[a].xhr}isPendingRequest(a){return a in this.pendingRequests}abortRequest(a){let b=this.pendingRequests[a].xhr;delete this.pendingRequests[a],b.abort()}}class bv{constructor(a){this._source=a,this._manager=new bu(a),this._rangeChunkSize=a.rangeChunkSize,this._fullRequestReader=null,this._rangeRequestReaders=[]}_onRangeRequestReaderClosed(a){let b=this._rangeRequestReaders.indexOf(a);b>=0&&this._rangeRequestReaders.splice(b,1)}getFullReader(){return u(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once."),this._fullRequestReader=new bw(this._manager,this._source),this._fullRequestReader}getRangeReader(a,b){let c=new bx(this._manager,a,b);return c.onClosed=this._onRangeRequestReaderClosed.bind(this),this._rangeRequestReaders.push(c),c}cancelAllRequests(a){for(let b of(this._fullRequestReader?.cancel(a),this._rangeRequestReaders.slice(0)))b.cancel(a)}}class bw{constructor(a,b){this._manager=a,this._url=b.url,this._fullRequestId=a.request({onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)}),this._headersCapability=Promise.withResolvers(),this._disableRange=b.disableRange||!1,this._contentLength=b.length,this._rangeChunkSize=b.rangeChunkSize,this._rangeChunkSize||this._disableRange||(this._disableRange=!0),this._isStreamingSupported=!1,this._isRangeSupported=!1,this._cachedChunks=[],this._requests=[],this._done=!1,this._storedError=void 0,this._filename=null,this.onProgress=null}_onHeadersReceived(){let a=this._fullRequestId,b=this._manager.getRequestXhr(a);this._manager._responseOrigin=bk(b.responseURL);let c=b.getAllResponseHeaders(),d=new Headers(c?c.trimStart().replace(/[^\S ]+$/,"").split(/[\r\n]+/).map(a=>{let[b,...c]=a.split(": ");return[b,c.join(": ")]}):[]),{allowRangeRequests:e,suggestedLength:f}=bl({responseHeaders:d,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});e&&(this._isRangeSupported=!0),this._contentLength=f||this._contentLength,this._filename=bm(d),this._isRangeSupported&&this._manager.abortRequest(a),this._headersCapability.resolve()}_onDone(a){if(a&&(this._requests.length>0?this._requests.shift().resolve({value:a.chunk,done:!1}):this._cachedChunks.push(a.chunk)),this._done=!0,!(this._cachedChunks.length>0)){for(let a of this._requests)a.resolve({value:void 0,done:!0});this._requests.length=0}}_onError(a){for(let b of(this._storedError=bn(a,this._url),this._headersCapability.reject(this._storedError),this._requests))b.reject(this._storedError);this._requests.length=0,this._cachedChunks.length=0}_onProgress(a){this.onProgress?.({loaded:a.loaded,total:a.lengthComputable?a.total:this._contentLength})}get filename(){return this._filename}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}get contentLength(){return this._contentLength}get headersReady(){return this._headersCapability.promise}async read(){if(await this._headersCapability.promise,this._storedError)throw this._storedError;if(this._cachedChunks.length>0)return{value:this._cachedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};let a=Promise.withResolvers();return this._requests.push(a),a.promise}cancel(a){for(let b of(this._done=!0,this._headersCapability.reject(a),this._requests))b.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId),this._fullRequestReader=null}}class bx{constructor(a,b,c){this._manager=a,this._url=a.url,this._requestId=a.request({begin:b,end:c,onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)}),this._requests=[],this._queuedChunk=null,this._done=!1,this._storedError=void 0,this.onProgress=null,this.onClosed=null}_onHeadersReceived(){let a=bk(this._manager.getRequestXhr(this._requestId)?.responseURL);a!==this._manager._responseOrigin&&(this._storedError=Error(`Expected range response-origin "${a}" to match "${this._manager._responseOrigin}".`),this._onError(0))}_close(){this.onClosed?.(this)}_onDone(a){let b=a.chunk;for(let a of(this._requests.length>0?this._requests.shift().resolve({value:b,done:!1}):this._queuedChunk=b,this._done=!0,this._requests))a.resolve({value:void 0,done:!0});this._requests.length=0,this._close()}_onError(a){for(let b of(this._storedError??=bn(a,this._url),this._requests))b.reject(this._storedError);this._requests.length=0,this._queuedChunk=null}_onProgress(a){this.isStreamingSupported||this.onProgress?.({loaded:a.loaded})}get isStreamingSupported(){return!1}async read(){if(this._storedError)throw this._storedError;if(null!==this._queuedChunk){let a=this._queuedChunk;return this._queuedChunk=null,{value:a,done:!1}}if(this._done)return{value:void 0,done:!0};let a=Promise.withResolvers();return this._requests.push(a),a.promise}cancel(a){for(let a of(this._done=!0,this._requests))a.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId),this._close()}}let by=/^[a-z][a-z0-9\-+.]+:/i;class bz{constructor(a){this.source=a,this.url=function(a){return new URL(by.test(a)?a:process.getBuiltinModule("url").pathToFileURL(a))}(a.url),u("file:"===this.url.protocol,"PDFNodeStream only supports file:// URLs."),this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){return this._fullRequestReader?._loaded??0}getFullReader(){return u(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once."),this._fullRequestReader=new bA(this),this._fullRequestReader}getRangeReader(a,b){if(b<=this._progressiveDataLength)return null;let c=new bB(this,a,b);return this._rangeRequestReaders.push(c),c}cancelAllRequests(a){for(let b of(this._fullRequestReader?.cancel(a),this._rangeRequestReaders.slice(0)))b.cancel(a)}}class bA{constructor(a){this._url=a.url,this._done=!1,this._storedError=null,this.onProgress=null;const b=a.source;this._contentLength=b.length,this._loaded=0,this._filename=null,this._disableRange=b.disableRange||!1,this._rangeChunkSize=b.rangeChunkSize,this._rangeChunkSize||this._disableRange||(this._disableRange=!0),this._isStreamingSupported=!b.disableStream,this._isRangeSupported=!b.disableRange,this._readableStream=null,this._readCapability=Promise.withResolvers(),this._headersCapability=Promise.withResolvers();const c=process.getBuiltinModule("fs");c.promises.lstat(this._url).then(a=>{this._contentLength=a.size,this._setReadableStream(c.createReadStream(this._url)),this._headersCapability.resolve()},a=>{"ENOENT"===a.code&&(a=new B(`Missing PDF "${this._url}".`)),this._storedError=a,this._headersCapability.reject(a)})}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){if(await this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;let a=this._readableStream.read();return null===a?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=a.length,this.onProgress?.({loaded:this._loaded,total:this._contentLength}),{value:new Uint8Array(a).buffer,done:!1})}cancel(a){this._readableStream?this._readableStream.destroy(a):this._error(a)}_error(a){this._storedError=a,this._readCapability.resolve()}_setReadableStream(a){this._readableStream=a,a.on("readable",()=>{this._readCapability.resolve()}),a.on("end",()=>{a.destroy(),this._done=!0,this._readCapability.resolve()}),a.on("error",a=>{this._error(a)}),!this._isStreamingSupported&&this._isRangeSupported&&this._error(new E("streaming is disabled")),this._storedError&&this._readableStream.destroy(this._storedError)}}class bB{constructor(a,b,c){this._url=a.url,this._done=!1,this._storedError=null,this.onProgress=null,this._loaded=0,this._readableStream=null,this._readCapability=Promise.withResolvers();const d=a.source;this._isStreamingSupported=!d.disableStream;const e=process.getBuiltinModule("fs");this._setReadableStream(e.createReadStream(this._url,{start:b,end:c-1}))}get isStreamingSupported(){return this._isStreamingSupported}async read(){if(await this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;let a=this._readableStream.read();return null===a?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=a.length,this.onProgress?.({loaded:this._loaded}),{value:new Uint8Array(a).buffer,done:!1})}cancel(a){this._readableStream?this._readableStream.destroy(a):this._error(a)}_error(a){this._storedError=a,this._readCapability.resolve()}_setReadableStream(a){this._readableStream=a,a.on("readable",()=>{this._readCapability.resolve()}),a.on("end",()=>{a.destroy(),this._done=!0,this._readCapability.resolve()}),a.on("error",a=>{this._error(a)}),this._storedError&&this._readableStream.destroy(this._storedError)}}class bC{#cw=Promise.withResolvers();#an=null;#cx=!1;#cy=!!globalThis.FontInspector?.enabled;#cz=null;#cA=null;#cB=0;#cC=0;#cD=null;#cE=null;#cF=0;#cG=0;#cH=Object.create(null);#cI=[];#cJ=null;#cK=[];#cL=new WeakMap;#cM=null;static #cN=new Map;static #cO=new Map;static #cP=new WeakMap;static #cQ=null;static #cR=new Set;constructor({textContentSource:a,container:b,viewport:c}){if(a instanceof ReadableStream)this.#cJ=a;else if("object"==typeof a)this.#cJ=new ReadableStream({start(b){b.enqueue(a),b.close()}});else throw Error('No "textContentSource" parameter specified.');this.#an=this.#cE=b,this.#cG=c.scale*(globalThis.devicePixelRatio||1),this.#cF=c.rotation,this.#cA={div:null,properties:null,ctx:null};const{pageWidth:d,pageHeight:e,pageX:f,pageY:g}=c.rawDims;this.#cM=[1,0,0,-1,-f,g+e],this.#cC=d,this.#cB=e,bC.#cS(),af(b,c),this.#cw.promise.finally(()=>{bC.#cR.delete(this),this.#cA=null,this.#cH=null}).catch(()=>{})}static get fontFamilyMap(){let{isWindows:a,isFirefox:b}=I.platform;return w(this,"fontFamilyMap",new Map([["sans-serif",`${a&&b?"Calibri, ":""}sans-serif`],["monospace",`${a&&b?"Lucida Console, ":""}monospace`]]))}render(){let a=()=>{this.#cD.read().then(({value:b,done:c})=>{c?this.#cw.resolve():(this.#cz??=b.lang,Object.assign(this.#cH,b.styles),this.#cT(b.items),a())},this.#cw.reject)};return this.#cD=this.#cJ.getReader(),bC.#cR.add(this),a(),this.#cw.promise}update({viewport:a,onBefore:b=null}){let c=a.scale*(globalThis.devicePixelRatio||1),d=a.rotation;if(d!==this.#cF&&(b?.(),this.#cF=d,af(this.#cE,{rotation:d})),c!==this.#cG){b?.(),this.#cG=c;let a={div:null,properties:null,ctx:bC.#cU(this.#cz)};for(let b of this.#cK)a.properties=this.#cL.get(b),a.div=b,this.#cV(a)}}cancel(){let a=new E("TextLayer task cancelled.");this.#cD?.cancel(a).catch(()=>{}),this.#cD=null,this.#cw.reject(a)}get textDivs(){return this.#cK}get textContentItemsStr(){return this.#cI}#cT(a){if(this.#cx)return;this.#cA.ctx??=bC.#cU(this.#cz);let b=this.#cK,c=this.#cI;for(let d of a){if(b.length>1e5){s("Ignoring additional textDivs for performance reasons."),this.#cx=!0;return}if(void 0===d.str){if("beginMarkedContentProps"===d.type||"beginMarkedContent"===d.type){let a=this.#an;this.#an=document.createElement("span"),this.#an.classList.add("markedContent"),null!==d.id&&this.#an.setAttribute("id",`${d.id}`),a.append(this.#an)}else"endMarkedContent"===d.type&&(this.#an=this.#an.parentNode);continue}c.push(d.str),this.#cW(d)}}#cW(a){let b,c,d=document.createElement("span"),e={angle:0,canvasWidth:0,hasText:""!==a.str,hasEOL:a.hasEOL,fontSize:0};this.#cK.push(d);let f=K.transform(this.#cM,a.transform),g=Math.atan2(f[1],f[0]),h=this.#cH[a.fontName];h.vertical&&(g+=Math.PI/2);let i=this.#cy&&h.fontSubstitution||h.fontFamily;i=bC.fontFamilyMap.get(i)||i;let j=Math.hypot(f[2],f[3]),k=j*bC.#cX(i,this.#cz);0===g?(b=f[4],c=f[5]-k):(b=f[4]+k*Math.sin(g),c=f[5]-k*Math.cos(g));let l="calc(var(--scale-factor)*",m=d.style;this.#an===this.#cE?(m.left=`${(100*b/this.#cC).toFixed(2)}%`,m.top=`${(100*c/this.#cB).toFixed(2)}%`):(m.left=`${l}${b.toFixed(2)}px)`,m.top=`${l}${c.toFixed(2)}px)`),m.fontSize=`${l}${(bC.#cQ*j).toFixed(2)}px)`,m.fontFamily=i,e.fontSize=j,d.setAttribute("role","presentation"),d.textContent=a.str,d.dir=a.dir,this.#cy&&(d.dataset.fontName=h.fontSubstitutionLoadedName||a.fontName),0!==g&&(e.angle=180/Math.PI*g);let n=!1;if(a.str.length>1)n=!0;else if(" "!==a.str&&a.transform[0]!==a.transform[3]){let b=Math.abs(a.transform[0]),c=Math.abs(a.transform[3]);b!==c&&Math.max(b,c)/Math.min(b,c)>1.5&&(n=!0)}if(n&&(e.canvasWidth=h.vertical?a.height:a.width),this.#cL.set(d,e),this.#cA.div=d,this.#cA.properties=e,this.#cV(this.#cA),e.hasText&&this.#an.append(d),e.hasEOL){let a=document.createElement("br");a.setAttribute("role","presentation"),this.#an.append(a)}}#cV(a){let{div:b,properties:c,ctx:d}=a,{style:e}=b,f="";if(bC.#cQ>1&&(f=`scale(${1/bC.#cQ})`),0!==c.canvasWidth&&c.hasText){let{fontFamily:a}=e,{canvasWidth:g,fontSize:h}=c;bC.#cY(d,h*this.#cG,a);let{width:i}=d.measureText(b.textContent);i>0&&(f=`scaleX(${g*this.#cG/i}) ${f}`)}0!==c.angle&&(f=`rotate(${c.angle}deg) ${f}`),f.length>0&&(e.transform=f)}static cleanup(){if(!(this.#cR.size>0)){for(let{canvas:a}of(this.#cN.clear(),this.#cO.values()))a.remove();this.#cO.clear()}}static #cU(a=null){let b=this.#cO.get(a||="");if(!b){let c=document.createElement("canvas");c.className="hiddenCanvasElement",c.lang=a,document.body.append(c),b=c.getContext("2d",{alpha:!1,willReadFrequently:!0}),this.#cO.set(a,b),this.#cP.set(b,{size:0,family:""})}return b}static #cY(a,b,c){let d=this.#cP.get(a);(b!==d.size||c!==d.family)&&(a.font=`${b}px ${c}`,d.size=b,d.family=c)}static #cS(){if(null!==this.#cQ)return;let a=document.createElement("div");a.style.opacity=0,a.style.lineHeight=1,a.style.fontSize="1px",a.style.position="absolute",a.textContent="X",document.body.append(a),this.#cQ=a.getBoundingClientRect().height,a.remove()}static #cX(a,b){let c=this.#cN.get(a);if(c)return c;let d=this.#cU(b);d.canvas.width=d.canvas.height=30,this.#cY(d,30,a);let e=d.measureText(""),f=e.fontBoundingBoxAscent,g=Math.abs(e.fontBoundingBoxDescent);if(f){let b=f/(f+g);return this.#cN.set(a,b),d.canvas.width=d.canvas.height=0,b}d.strokeStyle="red",d.clearRect(0,0,30,30),d.strokeText("g",0,0);let h=d.getImageData(0,0,30,30).data;g=0;for(let a=h.length-1-3;a>=0;a-=4)if(h[a]>0){g=Math.ceil(a/4/30);break}d.clearRect(0,0,30,30),d.strokeText("A",0,30),h=d.getImageData(0,0,30,30).data,f=0;for(let a=0,b=h.length;a<b;a+=4)if(h[a]>0){f=30-Math.floor(a/4/30);break}d.canvas.width=d.canvas.height=0;let i=f?f/(f+g):.8;return this.#cN.set(a,i),i}}class bD{static textContent(a){let b=[],c={items:b,styles:Object.create(null)};return!function a(c){if(!c)return;let d=null,e=c.name;if("#text"===e)d=c.value;else{if(!bD.shouldBuildText(e))return;c?.attributes?.textContent?d=c.attributes.textContent:c.value&&(d=c.value)}if(null!==d&&b.push({str:d}),c.children)for(let b of c.children)a(b)}(a),c}static shouldBuildText(a){return"textarea"!==a&&"input"!==a&&"option"!==a&&"select"!==a}}let bE=f?aN:aE,bF=f?aO:aG,bG=f?aM:aI,bH=f?aP:aK;function bI(a={}){"string"==typeof a||a instanceof URL?a={url:a}:(a instanceof ArrayBuffer||ArrayBuffer.isView(a))&&(a={data:a});let b=new bK,{docId:c}=b,d=a.url?function(a){if(a instanceof URL)return a.href;try{return new URL(a,window.location).href}catch{if(f&&"string"==typeof a)return a}throw Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}(a.url):null,e=a.data?function(a){if(f&&"u">typeof Buffer&&a instanceof Buffer)throw Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");if(a instanceof Uint8Array&&a.byteLength===a.buffer.byteLength)return a;if("string"==typeof a)return G(a);if(a instanceof ArrayBuffer||ArrayBuffer.isView(a)||"object"==typeof a&&!isNaN(a?.length))return new Uint8Array(a);throw Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.")}(a.data):null,g=a.httpHeaders||null,h=!0===a.withCredentials,i=a.password??null,j=a.range instanceof bL?a.range:null,k=Number.isInteger(a.rangeChunkSize)&&a.rangeChunkSize>0?a.rangeChunkSize:65536,l=a.worker instanceof bP?a.worker:null,m=a.verbosity,n="string"!=typeof a.docBaseUrl||U(a.docBaseUrl)?null:a.docBaseUrl,o="string"==typeof a.cMapUrl?a.cMapUrl:null,p=!1!==a.cMapPacked,r=a.CMapReaderFactory||bF,s="string"==typeof a.standardFontDataUrl?a.standardFontDataUrl:null,t=a.StandardFontDataFactory||bH,u=!0!==a.stopAtErrors,v=Number.isInteger(a.maxImageSize)&&a.maxImageSize>-1?a.maxImageSize:-1,w=!1!==a.isEvalSupported,x="boolean"==typeof a.isOffscreenCanvasSupported?a.isOffscreenCanvasSupported:!f,y="boolean"==typeof a.isImageDecoderSupported?a.isImageDecoderSupported:!f&&(I.platform.isFirefox||!globalThis.chrome),z=Number.isInteger(a.canvasMaxAreaInBytes)?a.canvasMaxAreaInBytes:-1,A="boolean"==typeof a.disableFontFace?a.disableFontFace:f,B=!0===a.fontExtraProperties,C=!0===a.enableXfa,D=a.ownerDocument||globalThis.document,E=!0===a.disableRange,F=!0===a.disableStream,H=!0===a.disableAutoFetch,J=!0===a.pdfBug,K=a.CanvasFactory||bE,L=a.FilterFactory||bG,M=!0===a.enableHWA,N=j?j.length:a.length??NaN,O="boolean"==typeof a.useSystemFonts?a.useSystemFonts:!f&&!A,P="boolean"==typeof a.useWorkerFetch?a.useWorkerFetch:r===aG&&t===aK&&o&&s&&Z(o,document.baseURI)&&Z(s,document.baseURI);Number.isInteger(m)&&(q=m);let Q={canvasFactory:new K({ownerDocument:D,enableHWA:M}),filterFactory:new L({docId:c,ownerDocument:D}),cMapReaderFactory:P?null:new r({baseUrl:o,isCompressed:p}),standardFontDataFactory:P?null:new t({baseUrl:s})};if(!l){let a={verbosity:m,port:bb.workerPort};b._worker=l=a.port?bP.fromPort(a):new bP(a)}let R={docId:c,apiVersion:"4.10.38",data:e,password:i,disableAutoFetch:H,rangeChunkSize:k,length:N,docBaseUrl:n,enableXfa:C,evaluatorOptions:{maxImageSize:v,disableFontFace:A,ignoreErrors:u,isEvalSupported:w,isOffscreenCanvasSupported:x,isImageDecoderSupported:y,canvasMaxAreaInBytes:z,fontExtraProperties:B,useSystemFonts:O,cMapUrl:P?o:null,standardFontDataUrl:P?s:null}},S={disableFontFace:A,fontExtraProperties:B,ownerDocument:D,pdfBug:J,styleElement:null,loadingParams:{disableAutoFetch:H,enableXfa:C}};return l.promise.then(function(){let a;if(b.destroyed)throw Error("Loading aborted");if(l.destroyed)throw Error("Worker was destroyed");let i=l.messageHandler.sendWithPromise("GetDocRequest",R,e?[e.buffer]:null);if(j)a=new bg(j,{disableRange:E,disableStream:F});else if(!e){let b;if(!d)throw Error("getDocument - no `url` parameter provided.");if(f)if(Z(d)){if("u"<typeof fetch||"u"<typeof Response||!("body"in Response.prototype))throw Error("getDocument - the Fetch API was disabled in Node.js, see `--no-experimental-fetch`.");b=br}else b=bz;else b=Z(d)?br:bv;a=new b({url:d,length:N,httpHeaders:g,withCredentials:h,rangeChunkSize:k,disableRange:E,disableStream:F})}return i.then(d=>{if(b.destroyed)throw Error("Loading aborted");if(l.destroyed)throw Error("Worker was destroyed");let e=new aC(c,d,l.port),f=new bQ(e,b,a,S,Q);b._transport=f,e.send("Ready",null)})}).catch(b._capability.reject),b}function bJ(a){return"object"==typeof a&&Number.isInteger(a?.num)&&a.num>=0&&Number.isInteger(a?.gen)&&a.gen>=0}class bK{static #b2=0;constructor(){this._capability=Promise.withResolvers(),this._transport=null,this._worker=null,this.docId=`d${bK.#b2++}`,this.destroyed=!1,this.onPassword=null,this.onProgress=null}get promise(){return this._capability.promise}async destroy(){this.destroyed=!0;try{this._worker?.port&&(this._worker._pendingDestroy=!0),await this._transport?.destroy()}catch(a){throw this._worker?.port&&delete this._worker._pendingDestroy,a}this._transport=null,this._worker?.destroy(),this._worker=null}}class bL{constructor(a,b,c=!1,d=null){this.length=a,this.initialData=b,this.progressiveDone=c,this.contentDispositionFilename=d,this._rangeListeners=[],this._progressListeners=[],this._progressiveReadListeners=[],this._progressiveDoneListeners=[],this._readyCapability=Promise.withResolvers()}addRangeListener(a){this._rangeListeners.push(a)}addProgressListener(a){this._progressListeners.push(a)}addProgressiveReadListener(a){this._progressiveReadListeners.push(a)}addProgressiveDoneListener(a){this._progressiveDoneListeners.push(a)}onDataRange(a,b){for(let c of this._rangeListeners)c(a,b)}onDataProgress(a,b){this._readyCapability.promise.then(()=>{for(let c of this._progressListeners)c(a,b)})}onDataProgressiveRead(a){this._readyCapability.promise.then(()=>{for(let b of this._progressiveReadListeners)b(a)})}onDataProgressiveDone(){this._readyCapability.promise.then(()=>{for(let a of this._progressiveDoneListeners)a()})}transportReady(){this._readyCapability.resolve()}requestDataRange(a,b){t("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}}class bM{constructor(a,b){this._pdfInfo=a,this._transport=b}get annotationStorage(){return this._transport.annotationStorage}get canvasFactory(){return this._transport.canvasFactory}get filterFactory(){return this._transport.filterFactory}get numPages(){return this._pdfInfo.numPages}get fingerprints(){return this._pdfInfo.fingerprints}get isPureXfa(){return w(this,"isPureXfa",!!this._transport._htmlForXfa)}get allXfaHtml(){return this._transport._htmlForXfa}getPage(a){return this._transport.getPage(a)}getPageIndex(a){return this._transport.getPageIndex(a)}getDestinations(){return this._transport.getDestinations()}getDestination(a){return this._transport.getDestination(a)}getPageLabels(){return this._transport.getPageLabels()}getPageLayout(){return this._transport.getPageLayout()}getPageMode(){return this._transport.getPageMode()}getViewerPreferences(){return this._transport.getViewerPreferences()}getOpenAction(){return this._transport.getOpenAction()}getAttachments(){return this._transport.getAttachments()}getJSActions(){return this._transport.getDocJSActions()}getOutline(){return this._transport.getOutline()}getOptionalContentConfig({intent:a="display"}={}){let{renderingIntent:b}=this._transport.getRenderingIntent(a);return this._transport.getOptionalContentConfig(b)}getPermissions(){return this._transport.getPermissions()}getMetadata(){return this._transport.getMetadata()}getMarkInfo(){return this._transport.getMarkInfo()}getData(){return this._transport.getData()}saveDocument(){return this._transport.saveDocument()}getDownloadInfo(){return this._transport.downloadInfoCapability.promise}cleanup(a=!1){return this._transport.startCleanup(a||this.isPureXfa)}destroy(){return this.loadingTask.destroy()}cachedPageNumber(a){return this._transport.cachedPageNumber(a)}get loadingParams(){return this._transport.loadingParams}get loadingTask(){return this._transport.loadingTask}getFieldObjects(){return this._transport.getFieldObjects()}hasJSActions(){return this._transport.hasJSActions()}getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}class bN{#cZ=null;#c$=!1;constructor(a,b,c,d=!1){this._pageIndex=a,this._pageInfo=b,this._transport=c,this._stats=d?new Y:null,this._pdfBug=d,this.commonObjs=c.commonObjs,this.objs=new bS,this._maybeCleanupAfterRender=!1,this._intentStates=new Map,this.destroyed=!1}get pageNumber(){return this._pageIndex+1}get rotate(){return this._pageInfo.rotate}get ref(){return this._pageInfo.ref}get userUnit(){return this._pageInfo.userUnit}get view(){return this._pageInfo.view}getViewport({scale:a,rotation:b=this.rotate,offsetX:c=0,offsetY:d=0,dontFlip:e=!1}={}){return new S({viewBox:this.view,userUnit:this.userUnit,scale:a,rotation:b,offsetX:c,offsetY:d,dontFlip:e})}getAnnotations({intent:a="display"}={}){let{renderingIntent:b}=this._transport.getRenderingIntent(a);return this._transport.getAnnotations(this._pageIndex,b)}getJSActions(){return this._transport.getPageJSActions(this._pageIndex)}get filterFactory(){return this._transport.filterFactory}get isPureXfa(){return w(this,"isPureXfa",!!this._transport._htmlForXfa)}async getXfa(){return this._transport._htmlForXfa?.children[this._pageIndex]||null}render({canvasContext:a,viewport:b,intent:c="display",annotationMode:d=i.ENABLE,transform:e=null,background:f=null,optionalContentConfigPromise:g=null,annotationCanvasMap:h=null,pageColors:j=null,printAnnotationStorage:k=null,isEditing:l=!1}){this._stats?.time("Overall");let m=this._transport.getRenderingIntent(c,d,k,l),{renderingIntent:n,cacheKey:o}=m;this.#c$=!1,this.#c_(),g||=this._transport.getOptionalContentConfig(n);let p=this._intentStates.get(o);p||(p=Object.create(null),this._intentStates.set(o,p)),p.streamReaderCancelTimeout&&(clearTimeout(p.streamReaderCancelTimeout),p.streamReaderCancelTimeout=null);let q=!!(4&n);p.displayReadyCapability||(p.displayReadyCapability=Promise.withResolvers(),p.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},this._stats?.time("Page Request"),this._pumpOperatorList(m));let r=a=>{p.renderTasks.delete(s),(this._maybeCleanupAfterRender||q)&&(this.#c$=!0),this.#c0(!q),a?(s.capability.reject(a),this._abortOperatorList({intentState:p,reason:a instanceof Error?a:Error(a)})):s.capability.resolve(),this._stats&&(this._stats.timeEnd("Rendering"),this._stats.timeEnd("Overall"),globalThis.Stats?.enabled&&globalThis.Stats.add(this.pageNumber,this._stats))},s=new bU({callback:r,params:{canvasContext:a,viewport:b,transform:e,background:f},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:h,operatorList:p.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!q,pdfBug:this._pdfBug,pageColors:j});(p.renderTasks||=new Set).add(s);let t=s.task;return Promise.all([p.displayReadyCapability.promise,g]).then(([a,b])=>{if(this.destroyed)return void r();if(this._stats?.time("Rendering"),!(b.renderingIntent&n))throw Error("Must use the same `intent`-argument when calling the `PDFPageProxy.render` and `PDFDocumentProxy.getOptionalContentConfig` methods.");s.initializeGraphics({transparency:a,optionalContentConfig:b}),s.operatorListChanged()}).catch(r),t}getOperatorList({intent:a="display",annotationMode:b=i.ENABLE,printAnnotationStorage:c=null,isEditing:d=!1}={}){let e,f=this._transport.getRenderingIntent(a,b,c,d,!0),g=this._intentStates.get(f.cacheKey);return g||(g=Object.create(null),this._intentStates.set(f.cacheKey,g)),g.opListReadCapability||((e=Object.create(null)).operatorListChanged=function(){g.operatorList.lastChunk&&(g.opListReadCapability.resolve(g.operatorList),g.renderTasks.delete(e))},g.opListReadCapability=Promise.withResolvers(),(g.renderTasks||=new Set).add(e),g.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},this._stats?.time("Page Request"),this._pumpOperatorList(f)),g.opListReadCapability.promise}streamTextContent({includeMarkedContent:a=!1,disableNormalization:b=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,includeMarkedContent:!0===a,disableNormalization:!0===b},{highWaterMark:100,size:a=>a.items.length})}getTextContent(a={}){if(this._transport._htmlForXfa)return this.getXfa().then(a=>bD.textContent(a));let b=this.streamTextContent(a);return new Promise(function(a,c){let d=b.getReader(),e={items:[],styles:Object.create(null),lang:null};!function b(){d.read().then(function({value:c,done:d}){d?a(e):(e.lang??=c.lang,Object.assign(e.styles,c.styles),e.items.push(...c.items),b())},c)}()})}getStructTree(){return this._transport.getStructTree(this._pageIndex)}_destroy(){this.destroyed=!0;let a=[];for(let b of this._intentStates.values())if(this._abortOperatorList({intentState:b,reason:Error("Page was destroyed."),force:!0}),!b.opListReadCapability)for(let c of b.renderTasks)a.push(c.completed),c.cancel();return this.objs.clear(),this.#c$=!1,this.#c_(),Promise.all(a)}cleanup(a=!1){this.#c$=!0;let b=this.#c0(!1);return a&&b&&(this._stats&&=new Y),b}#c0(a=!1){if(this.#c_(),!this.#c$||this.destroyed)return!1;if(a)return this.#cZ=setTimeout(()=>{this.#cZ=null,this.#c0(!1)},5e3),!1;for(let{renderTasks:a,operatorList:b}of this._intentStates.values())if(a.size>0||!b.lastChunk)return!1;return this._intentStates.clear(),this.objs.clear(),this.#c$=!1,!0}#c_(){this.#cZ&&(clearTimeout(this.#cZ),this.#cZ=null)}_startRenderPage(a,b){let c=this._intentStates.get(b);c&&(this._stats?.timeEnd("Page Request"),c.displayReadyCapability?.resolve(a))}_renderPageChunk(a,b){for(let c=0,d=a.length;c<d;c++)b.operatorList.fnArray.push(a.fnArray[c]),b.operatorList.argsArray.push(a.argsArray[c]);for(let c of(b.operatorList.lastChunk=a.lastChunk,b.operatorList.separateAnnots=a.separateAnnots,b.renderTasks))c.operatorListChanged();a.lastChunk&&this.#c0(!0)}_pumpOperatorList({renderingIntent:a,cacheKey:b,annotationStorageSerializable:c,modifiedIds:d}){let{map:e,transfer:f}=c,g=this._transport.messageHandler.sendWithStream("GetOperatorList",{pageIndex:this._pageIndex,intent:a,cacheKey:b,annotationStorage:e,modifiedIds:d},f).getReader(),h=this._intentStates.get(b);h.streamReader=g;let i=()=>{g.read().then(({value:a,done:b})=>{if(b){h.streamReader=null;return}this._transport.destroyed||(this._renderPageChunk(a,h),i())},a=>{if(h.streamReader=null,!this._transport.destroyed){if(h.operatorList){for(let a of(h.operatorList.lastChunk=!0,h.renderTasks))a.operatorListChanged();this.#c0(!0)}if(h.displayReadyCapability)h.displayReadyCapability.reject(a);else if(h.opListReadCapability)h.opListReadCapability.reject(a);else throw a}})};i()}_abortOperatorList({intentState:a,reason:b,force:c=!1}){if(a.streamReader){if(a.streamReaderCancelTimeout&&(clearTimeout(a.streamReaderCancelTimeout),a.streamReaderCancelTimeout=null),!c){if(a.renderTasks.size>0)return;if(b instanceof T){let c=100;b.extraDelay>0&&b.extraDelay<1e3&&(c+=b.extraDelay),a.streamReaderCancelTimeout=setTimeout(()=>{a.streamReaderCancelTimeout=null,this._abortOperatorList({intentState:a,reason:b,force:!0})},c);return}}if(a.streamReader.cancel(new E(b.message)).catch(()=>{}),a.streamReader=null,!this._transport.destroyed){for(let[b,c]of this._intentStates)if(c===a){this._intentStates.delete(b);break}this.cleanup()}}}get stats(){return this._stats}}class bO{#c1=new Map;#c2=Promise.resolve();postMessage(a,b){let c={data:structuredClone(a,b?{transfer:b}:null)};this.#c2.then(()=>{for(let[a]of this.#c1)a.call(this,c)})}addEventListener(a,b,c=null){let d=null;if(c?.signal instanceof AbortSignal){let{signal:e}=c;if(e.aborted)return void s("LoopbackPort - cannot use an `aborted` signal.");let f=()=>this.removeEventListener(a,b);d=()=>e.removeEventListener("abort",f),e.addEventListener("abort",f)}this.#c1.set(b,d)}removeEventListener(a,b){let c=this.#c1.get(b);c?.(),this.#c1.delete(b)}terminate(){for(let[,a]of this.#c1)a?.();this.#c1.clear()}}class bP{static #c3=0;static #c4=!1;static #c5;static{f&&(this.#c4=!0,bb.workerSrc||="./pdf.worker.mjs"),this._isSameOrigin=(a,b)=>{let c;try{if(!(c=new URL(a)).origin||"null"===c.origin)return!1}catch{return!1}let d=new URL(b,c);return c.origin===d.origin},this._createCDNWrapper=a=>{let b=`await import("${a}");`;return URL.createObjectURL(new Blob([b],{type:"text/javascript"}))}}constructor({name:a=null,port:b=null,verbosity:c=q}={}){if(this.name=a,this.destroyed=!1,this.verbosity=c,this._readyCapability=Promise.withResolvers(),this._port=null,this._webWorker=null,this._messageHandler=null,b){if(bP.#c5?.has(b))throw Error("Cannot use more than one PDFWorker per port.");(bP.#c5||=new WeakMap).set(b,this),this._initializeFromPort(b);return}this._initialize()}get promise(){return this._readyCapability.promise}#c6(){this._readyCapability.resolve(),this._messageHandler.send("configure",{verbosity:this.verbosity})}get port(){return this._port}get messageHandler(){return this._messageHandler}_initializeFromPort(a){this._port=a,this._messageHandler=new aC("main","worker",a),this._messageHandler.on("ready",function(){}),this.#c6()}_initialize(){if(bP.#c4||bP.#c7)return void this._setupFakeWorker();let{workerSrc:a}=bP;try{bP._isSameOrigin(window.location.href,a)||(a=bP._createCDNWrapper(new URL(a,window.location).href));let b=new Worker(a,{type:"module"}),c=new aC("main","worker",b),d=()=>{e.abort(),c.destroy(),b.terminate(),this.destroyed?this._readyCapability.reject(Error("Worker was destroyed")):this._setupFakeWorker()},e=new AbortController;b.addEventListener("error",()=>{this._webWorker||d()},{signal:e.signal}),c.on("test",a=>{(e.abort(),this.destroyed||!a)?d():(this._messageHandler=c,this._port=b,this._webWorker=b,this.#c6())}),c.on("ready",a=>{if(e.abort(),this.destroyed)return void d();try{f()}catch{this._setupFakeWorker()}});let f=()=>{let a=new Uint8Array;c.send("test",a,[a.buffer])};f();return}catch{r("The worker has been disabled.")}this._setupFakeWorker()}_setupFakeWorker(){bP.#c4||(s("Setting up fake worker."),bP.#c4=!0),bP._setupFakeWorkerGlobal.then(a=>{if(this.destroyed)return void this._readyCapability.reject(Error("Worker was destroyed"));let b=new bO;this._port=b;let c=`fake${bP.#c3++}`,d=new aC(c+"_worker",c,b);a.setup(d,b),this._messageHandler=new aC(c,c+"_worker",b),this.#c6()}).catch(a=>{this._readyCapability.reject(Error(`Setting up fake worker failed: "${a.message}".`))})}destroy(){this.destroyed=!0,this._webWorker?.terminate(),this._webWorker=null,bP.#c5?.delete(this._port),this._port=null,this._messageHandler?.destroy(),this._messageHandler=null}static fromPort(a){if(!a?.port)throw Error("PDFWorker.fromPort - invalid method signature.");let b=this.#c5?.get(a.port);if(b){if(b._pendingDestroy)throw Error("PDFWorker.fromPort - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls.");return b}return new bP(a)}static get workerSrc(){if(bb.workerSrc)return bb.workerSrc;throw Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get #c7(){try{return globalThis.pdfjsWorker?.WorkerMessageHandler||null}catch{return null}}static get _setupFakeWorkerGlobal(){return w(this,"_setupFakeWorkerGlobal",(async()=>this.#c7?this.#c7:(await import(this.workerSrc)).WorkerMessageHandler)())}}class bQ{#c8=new Map;#c9=new Map;#da=new Map;#db=new Map;#dc=null;constructor(a,b,c,d,e){this.messageHandler=a,this.loadingTask=b,this.commonObjs=new bS,this.fontLoader=new ay({ownerDocument:d.ownerDocument,styleElement:d.styleElement}),this.loadingParams=d.loadingParams,this._params=d,this.canvasFactory=e.canvasFactory,this.filterFactory=e.filterFactory,this.cMapReaderFactory=e.cMapReaderFactory,this.standardFontDataFactory=e.standardFontDataFactory,this.destroyed=!1,this.destroyCapability=null,this._networkStream=c,this._fullReader=null,this._lastProgress=null,this.downloadInfoCapability=Promise.withResolvers(),this.setupMessageHandler()}#dd(a,b=null){let c=this.#c8.get(a);if(c)return c;let d=this.messageHandler.sendWithPromise(a,b);return this.#c8.set(a,d),d}get annotationStorage(){return w(this,"annotationStorage",new aw)}getRenderingIntent(a,b=i.ENABLE,c=null,d=!1,e=!1){let f=2,g=av;switch(a){case"any":f=1;break;case"display":break;case"print":f=4;break;default:s(`getRenderingIntent - invalid intent: ${a}`)}let h=4&f&&c instanceof ax?c:this.annotationStorage;switch(b){case i.DISABLE:f+=64;break;case i.ENABLE:break;case i.ENABLE_FORMS:f+=16;break;case i.ENABLE_STORAGE:f+=32,g=h.serializable;break;default:s(`getRenderingIntent - invalid annotationMode: ${b}`)}d&&(f+=128),e&&(f+=256);let{ids:j,hash:k}=h.modifiedIds,l=[f,g.hash,k];return{renderingIntent:f,cacheKey:l.join("_"),annotationStorageSerializable:g,modifiedIds:j}}destroy(){if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=Promise.withResolvers(),this.#dc?.reject(Error("Worker was destroyed during onPassword callback"));let a=[];for(let b of this.#c9.values())a.push(b._destroy());this.#c9.clear(),this.#da.clear(),this.#db.clear(),this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();let b=this.messageHandler.sendWithPromise("Terminate",null);return a.push(b),Promise.all(a).then(()=>{this.commonObjs.clear(),this.fontLoader.clear(),this.#c8.clear(),this.filterFactory.destroy(),bC.cleanup(),this._networkStream?.cancelAllRequests(new E("Worker was terminated.")),this.messageHandler?.destroy(),this.messageHandler=null,this.destroyCapability.resolve()},this.destroyCapability.reject),this.destroyCapability.promise}setupMessageHandler(){let{messageHandler:a,loadingTask:b}=this;a.on("GetReader",(a,b)=>{u(this._networkStream,"GetReader - no `IPDFStream` instance available."),this._fullReader=this._networkStream.getFullReader(),this._fullReader.onProgress=a=>{this._lastProgress={loaded:a.loaded,total:a.total}},b.onPull=()=>{this._fullReader.read().then(function({value:a,done:c}){c?b.close():(u(a instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer."),b.enqueue(new Uint8Array(a),1,[a]))}).catch(a=>{b.error(a)})},b.onCancel=a=>{this._fullReader.cancel(a),b.ready.catch(a=>{if(!this.destroyed)throw a})}}),a.on("ReaderHeadersReady",async a=>{await this._fullReader.headersReady;let{isStreamingSupported:c,isRangeSupported:d,contentLength:e}=this._fullReader;return c&&d||(this._lastProgress&&b.onProgress?.(this._lastProgress),this._fullReader.onProgress=a=>{b.onProgress?.({loaded:a.loaded,total:a.total})}),{isStreamingSupported:c,isRangeSupported:d,contentLength:e}}),a.on("GetRangeReader",(a,b)=>{u(this._networkStream,"GetRangeReader - no `IPDFStream` instance available.");let c=this._networkStream.getRangeReader(a.begin,a.end);c?(b.onPull=()=>{c.read().then(function({value:a,done:c}){c?b.close():(u(a instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer."),b.enqueue(new Uint8Array(a),1,[a]))}).catch(a=>{b.error(a)})},b.onCancel=a=>{c.cancel(a),b.ready.catch(a=>{if(!this.destroyed)throw a})}):b.close()}),a.on("GetDoc",({pdfInfo:a})=>{this._numPages=a.numPages,this._htmlForXfa=a.htmlForXfa,delete a.htmlForXfa,b._capability.resolve(new bM(a,this))}),a.on("DocException",a=>{b._capability.reject(aB(a))}),a.on("PasswordRequest",a=>{this.#dc=Promise.withResolvers();try{if(!b.onPassword)throw aB(a);let c=a=>{a instanceof Error?this.#dc.reject(a):this.#dc.resolve({password:a})};b.onPassword(c,a.code)}catch(a){this.#dc.reject(a)}return this.#dc.promise}),a.on("DataLoaded",a=>{b.onProgress?.({loaded:a.length,total:a.length}),this.downloadInfoCapability.resolve(a)}),a.on("StartRenderPage",a=>{this.destroyed||this.#c9.get(a.pageIndex)._startRenderPage(a.transparency,a.cacheKey)}),a.on("commonobj",([b,c,d])=>{if(this.destroyed||this.commonObjs.has(b))return null;switch(c){case"Font":let{disableFontFace:e,fontExtraProperties:f,pdfBug:g}=this._params;if("error"in d){let a=d.error;s(`Error during font loading: ${a}`),this.commonObjs.resolve(b,a);break}let h=new az(d,{disableFontFace:e,fontExtraProperties:f,inspectFont:g&&globalThis.FontInspector?.enabled?(a,b)=>globalThis.FontInspector.fontAdded(a,b):null});this.fontLoader.bind(h).catch(()=>a.sendWithPromise("FontFallback",{id:b})).finally(()=>{!f&&h.data&&(h.data=null),this.commonObjs.resolve(b,h)});break;case"CopyLocalImage":let{imageRef:i}=d;for(let a of(u(i,"The imageRef must be defined."),this.#c9.values()))for(let[,c]of a.objs)if(c?.ref===i){if(!c.dataLen)return null;return this.commonObjs.resolve(b,structuredClone(c)),c.dataLen}break;case"FontPath":case"Image":case"Pattern":this.commonObjs.resolve(b,d);break;default:throw Error(`Got unknown common object type ${c}`)}return null}),a.on("obj",([a,b,c,d])=>{if(this.destroyed)return;let e=this.#c9.get(b);if(!e.objs.has(a)){if(0===e._intentStates.size)return void d?.bitmap?.close();switch(c){case"Image":e.objs.resolve(a,d),d?.dataLen>1e7&&(e._maybeCleanupAfterRender=!0);break;case"Pattern":e.objs.resolve(a,d);break;default:throw Error(`Got unknown object type ${c}`)}}}),a.on("DocProgress",a=>{this.destroyed||b.onProgress?.({loaded:a.loaded,total:a.total})}),a.on("FetchBuiltInCMap",async a=>{if(this.destroyed)throw Error("Worker was destroyed.");if(!this.cMapReaderFactory)throw Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.");return this.cMapReaderFactory.fetch(a)}),a.on("FetchStandardFontData",async a=>{if(this.destroyed)throw Error("Worker was destroyed.");if(!this.standardFontDataFactory)throw Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.");return this.standardFontDataFactory.fetch(a)})}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(){this.annotationStorage.size<=0&&s("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");let{map:a,transfer:b}=this.annotationStorage.serializable;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:a,filename:this._fullReader?.filename??null},b).finally(()=>{this.annotationStorage.resetModified()})}getPage(a){if(!Number.isInteger(a)||a<=0||a>this._numPages)return Promise.reject(Error("Invalid page request."));let b=a-1,c=this.#da.get(b);if(c)return c;let d=this.messageHandler.sendWithPromise("GetPage",{pageIndex:b}).then(c=>{if(this.destroyed)throw Error("Transport destroyed");c.refStr&&this.#db.set(c.refStr,a);let d=new bN(b,c,this,this._params.pdfBug);return this.#c9.set(b,d),d});return this.#da.set(b,d),d}getPageIndex(a){return bJ(a)?this.messageHandler.sendWithPromise("GetPageIndex",{num:a.num,gen:a.gen}):Promise.reject(Error("Invalid pageIndex request."))}getAnnotations(a,b){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:a,intent:b})}getFieldObjects(){return this.#dd("GetFieldObjects")}hasJSActions(){return this.#dd("HasJSActions")}getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}getDestination(a){return"string"!=typeof a?Promise.reject(Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:a})}getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}getDocJSActions(){return this.#dd("GetDocJSActions")}getPageJSActions(a){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:a})}getStructTree(a){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:a})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(a){return this.#dd("GetOptionalContentConfig").then(b=>new bf(b,a))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){let a="GetMetadata",b=this.#c8.get(a);if(b)return b;let c=this.messageHandler.sendWithPromise(a,null).then(a=>({info:a[0],metadata:a[1]?new bc(a[1]):null,contentDispositionFilename:this._fullReader?.filename??null,contentLength:this._fullReader?.contentLength??null}));return this.#c8.set(a,c),c}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}async startCleanup(a=!1){if(!this.destroyed){for(let a of(await this.messageHandler.sendWithPromise("Cleanup",null),this.#c9.values()))if(!a.cleanup())throw Error(`startCleanup: Page ${a.pageNumber} is currently rendering.`);this.commonObjs.clear(),a||this.fontLoader.clear(),this.#c8.clear(),this.filterFactory.destroy(!0),bC.cleanup()}}cachedPageNumber(a){if(!bJ(a))return null;let b=0===a.gen?`${a.num}R`:`${a.num}R${a.gen}`;return this.#db.get(b)??null}}let bR=Symbol("INITIAL_DATA");class bS{#de=Object.create(null);#df(a){return this.#de[a]||={...Promise.withResolvers(),data:bR}}get(a,b=null){if(b){let c=this.#df(a);return c.promise.then(()=>b(c.data)),null}let c=this.#de[a];if(!c||c.data===bR)throw Error(`Requesting object that isn't resolved yet ${a}.`);return c.data}has(a){let b=this.#de[a];return!!b&&b.data!==bR}delete(a){let b=this.#de[a];return!!b&&b.data!==bR&&(delete this.#de[a],!0)}resolve(a,b=null){let c=this.#df(a);c.data=b,c.resolve()}clear(){for(let a in this.#de){let{data:b}=this.#de[a];b?.bitmap?.close()}this.#de=Object.create(null)}*[Symbol.iterator](){for(let a in this.#de){let{data:b}=this.#de[a];b!==bR&&(yield[a,b])}}}class bT{#dg=null;constructor(a){this.#dg=a,this.onContinue=null}get promise(){return this.#dg.capability.promise}cancel(a=0){this.#dg.cancel(null,a)}get separateAnnots(){let{separateAnnots:a}=this.#dg.operatorList;if(!a)return!1;let{annotationCanvasMap:b}=this.#dg;return a.form||a.canvas&&b?.size>0}}class bU{#dh=null;static #di=new WeakSet;constructor({callback:a,params:b,objs:c,commonObjs:d,annotationCanvasMap:e,operatorList:f,pageIndex:g,canvasFactory:h,filterFactory:i,useRequestAnimationFrame:j=!1,pdfBug:k=!1,pageColors:l=null}){this.callback=a,this.params=b,this.objs=c,this.commonObjs=d,this.annotationCanvasMap=e,this.operatorListIdx=null,this.operatorList=f,this._pageIndex=g,this.canvasFactory=h,this.filterFactory=i,this._pdfBug=k,this.pageColors=l,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this._useRequestAnimationFrame=!0===j&&"u">typeof window,this.cancelled=!1,this.capability=Promise.withResolvers(),this.task=new bT(this),this._cancelBound=this.cancel.bind(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this),this._canvas=b.canvasContext.canvas}get completed(){return this.capability.promise.catch(function(){})}initializeGraphics({transparency:a=!1,optionalContentConfig:b}){if(this.cancelled)return;if(this._canvas){if(bU.#di.has(this._canvas))throw Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");bU.#di.add(this._canvas)}this._pdfBug&&globalThis.StepperManager?.enabled&&(this.stepper=globalThis.StepperManager.create(this._pageIndex),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());let{canvasContext:c,viewport:d,transform:e,background:f}=this.params;this.gfx=new ba(c,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:b},this.annotationCanvasMap,this.pageColors),this.gfx.beginDrawing({transform:e,viewport:d,transparency:a,background:f}),this.operatorListIdx=0,this.graphicsReady=!0,this.graphicsReadyCallback?.()}cancel(a=null,b=0){this.running=!1,this.cancelled=!0,this.gfx?.endDrawing(),this.#dh&&(window.cancelAnimationFrame(this.#dh),this.#dh=null),bU.#di.delete(this._canvas),this.callback(a||new T(`Rendering cancelled, page ${this._pageIndex+1}`,b))}operatorListChanged(){if(!this.graphicsReady){this.graphicsReadyCallback||=this._continueBound;return}this.stepper?.updateOperatorList(this.operatorList),this.running||this._continue()}_continue(){this.running=!0,this.cancelled||(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}_scheduleNext(){this._useRequestAnimationFrame?this.#dh=window.requestAnimationFrame(()=>{this.#dh=null,this._nextBound().catch(this._cancelBound)}):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}async _next(){!this.cancelled&&(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(),bU.#di.delete(this._canvas),this.callback())))}}let bV="4.10.38",bW="f9bea397f";function bX(a){return Math.floor(255*Math.max(0,Math.min(1,a))).toString(16).padStart(2,"0")}function bY(a){return Math.max(0,Math.min(255,255*a))}class bZ{static CMYK_G([a,b,c,d]){return["G",1-Math.min(1,.3*a+.59*c+.11*b+d)]}static G_CMYK([a]){return["CMYK",0,0,0,1-a]}static G_RGB([a]){return["RGB",a,a,a]}static G_rgb([a]){return[a=bY(a),a,a]}static G_HTML([a]){let b=bX(a);return`#${b}${b}${b}`}static RGB_G([a,b,c]){return["G",.3*a+.59*b+.11*c]}static RGB_rgb(a){return a.map(bY)}static RGB_HTML(a){return`#${a.map(bX).join("")}`}static T_HTML(){return"#00000000"}static T_rgb(){return[null]}static CMYK_RGB([a,b,c,d]){return["RGB",1-Math.min(1,a+d),1-Math.min(1,c+d),1-Math.min(1,b+d)]}static CMYK_rgb([a,b,c,d]){return[bY(1-Math.min(1,a+d)),bY(1-Math.min(1,c+d)),bY(1-Math.min(1,b+d))]}static CMYK_HTML(a){let b=this.CMYK_RGB(a).slice(1);return this.RGB_HTML(b)}static RGB_CMYK([a,b,c]){let d=1-a,e=1-b,f=1-c,g=Math.min(d,e,f);return["CMYK",d,e,f,g]}}class b${create(a,b,c=!1){if(a<=0||b<=0)throw Error("Invalid SVG dimensions");let d=this._createSVG("svg:svg");return d.setAttribute("version","1.1"),c||(d.setAttribute("width",`${a}px`),d.setAttribute("height",`${b}px`)),d.setAttribute("preserveAspectRatio","none"),d.setAttribute("viewBox",`0 0 ${a} ${b}`),d}createElement(a){if("string"!=typeof a)throw Error("Invalid SVG element type");return this._createSVG(a)}_createSVG(a){t("Abstract method `_createSVG` called.")}}class b_ extends b${_createSVG(a){return document.createElementNS(P,a)}}class b0{static setupStorage(a,b,c,d,e){let f=d.getValue(b,{value:null});switch(c.name){case"textarea":if(null!==f.value&&(a.textContent=f.value),"print"===e)break;a.addEventListener("input",a=>{d.setValue(b,{value:a.target.value})});break;case"input":if("radio"===c.attributes.type||"checkbox"===c.attributes.type){if(f.value===c.attributes.xfaOn?a.setAttribute("checked",!0):f.value===c.attributes.xfaOff&&a.removeAttribute("checked"),"print"===e)break;a.addEventListener("change",a=>{d.setValue(b,{value:a.target.checked?a.target.getAttribute("xfaOn"):a.target.getAttribute("xfaOff")})})}else{if(null!==f.value&&a.setAttribute("value",f.value),"print"===e)break;a.addEventListener("input",a=>{d.setValue(b,{value:a.target.value})})}break;case"select":if(null!==f.value)for(let b of(a.setAttribute("value",f.value),c.children))b.attributes.value===f.value?b.attributes.selected=!0:b.attributes.hasOwnProperty("selected")&&delete b.attributes.selected;a.addEventListener("input",a=>{let c=a.target.options,e=-1===c.selectedIndex?"":c[c.selectedIndex].value;d.setValue(b,{value:e})})}}static setAttributes({html:a,element:b,storage:c=null,intent:d,linkService:e}){let{attributes:f}=b,g=a instanceof HTMLAnchorElement;for(let[b,c]of("radio"===f.type&&(f.name=`${f.name}-${d}`),Object.entries(f)))if(null!=c)switch(b){case"class":c.length&&a.setAttribute(b,c.join(" "));break;case"dataId":break;case"id":a.setAttribute("data-element-id",c);break;case"style":Object.assign(a.style,c);break;case"textContent":a.textContent=c;break;default:g&&("href"===b||"newWindow"===b)||a.setAttribute(b,c)}g&&e.addLinkAttributes(a,f.href,f.newWindow),c&&f.dataId&&this.setupStorage(a,f.dataId,b,c)}static render(a){let b=a.annotationStorage,c=a.linkService,d=a.xfaHtml,e=a.intent||"display",f=document.createElement(d.name);d.attributes&&this.setAttributes({html:f,element:d,intent:e,linkService:c});let g="richText"!==e,h=a.div;if(h.append(f),a.viewport){let b=`matrix(${a.viewport.transform.join(",")})`;h.style.transform=b}g&&h.setAttribute("class","xfaLayer xfaFont");let i=[];if(0===d.children.length){if(d.value){let a=document.createTextNode(d.value);f.append(a),g&&bD.shouldBuildText(d.name)&&i.push(a)}return{textDivs:i}}let j=[[d,-1,f]];for(;j.length>0;){let[a,d,f]=j.at(-1);if(d+1===a.children.length){j.pop();continue}let h=a.children[++j.at(-1)[1]];if(null===h)continue;let{name:k}=h;if("#text"===k){let a=document.createTextNode(h.value);i.push(a),f.append(a);continue}let l=h?.attributes?.xmlns?document.createElementNS(h.attributes.xmlns,k):document.createElement(k);if(f.append(l),h.attributes&&this.setAttributes({html:l,element:h,storage:b,intent:e,linkService:c}),h.children?.length>0)j.push([h,-1,l]);else if(h.value){let a=document.createTextNode(h.value);g&&bD.shouldBuildText(k)&&i.push(a),l.append(a)}}for(let a of h.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))a.setAttribute("readOnly",!0);return{textDivs:i}}static update(a){let b=`matrix(${a.viewport.transform.join(",")})`;a.div.style.transform=b,a.div.hidden=!1}}let b1=new WeakSet;function b2(a){return{width:a[2]-a[0],height:a[3]-a[1]}}class b3{static create(a){switch(a.data.annotationType){case 2:return new b5(a);case 1:return new b6(a);case 20:switch(a.data.fieldType){case"Tx":return new b8(a);case"Btn":if(a.data.radioButton)return new cb(a);if(a.data.checkBox)return new ca(a);return new cc(a);case"Ch":return new cd(a);case"Sig":return new b9(a)}return new b7(a);case 16:return new ce(a);case 3:return new cg(a);case 4:return new ch(a);case 5:return new ci(a);case 6:return new cj(a);case 8:return new ck(a);case 14:return new cm(a);case 15:return new cn(a);case 7:return new cl(a);case 9:return new co(a);case 10:return new cp(a);case 11:return new cq(a);case 12:return new cr(a);case 13:return new cs(a);case 17:return new ct(a);default:return new b4(a)}}}class b4{#dj=null;#dk=!1;#dl=null;constructor(a,{isRenderable:b=!1,ignoreBorder:c=!1,createQuadrilaterals:d=!1}={}){this.isRenderable=b,this.data=a.data,this.layer=a.layer,this.linkService=a.linkService,this.downloadManager=a.downloadManager,this.imageResourcesPath=a.imageResourcesPath,this.renderForms=a.renderForms,this.svgFactory=a.svgFactory,this.annotationStorage=a.annotationStorage,this.enableScripting=a.enableScripting,this.hasJSActions=a.hasJSActions,this._fieldObjects=a.fieldObjects,this.parent=a.parent,b&&(this.container=this._createContainer(c)),d&&this._createQuadrilaterals()}static _hasPopupData({titleObj:a,contentsObj:b,richText:c}){return!!(a?.str||b?.str||c?.str)}get _isEditable(){return this.data.isEditable}get hasPopupData(){return b4._hasPopupData(this.data)}updateEdited(a){if(!this.container)return;this.#dj||={rect:this.data.rect.slice(0)};let{rect:b}=a;b&&this.#dm(b),this.#dl?.popup.updateEdited(a)}resetEdited(){this.#dj&&(this.#dm(this.#dj.rect),this.#dl?.popup.resetEdited(),this.#dj=null)}#dm(a){let{container:{style:b},data:{rect:c,rotation:d},parent:{viewport:{rawDims:{pageWidth:e,pageHeight:f,pageX:g,pageY:h}}}}=this;c?.splice(0,4,...a);let{width:i,height:j}=b2(a);b.left=`${100*(a[0]-g)/e}%`,b.top=`${100*(f-a[3]+h)/f}%`,0===d?(b.width=`${100*i/e}%`,b.height=`${100*j/f}%`):this.setRotation(d)}_createContainer(a){let{data:b,parent:{page:c,viewport:d}}=this,e=document.createElement("section");e.setAttribute("data-annotation-id",b.id),this instanceof b7||(e.tabIndex=1e3);let{style:f}=e;if(f.zIndex=this.parent.zIndex++,b.alternativeText&&(e.title=b.alternativeText),b.noRotate&&e.classList.add("norotate"),!b.rect||this instanceof ce){let{rotation:a}=b;return b.hasOwnCanvas||0===a||this.setRotation(a,e),e}let{width:g,height:h}=b2(b.rect);if(!a&&b.borderStyle.width>0){f.borderWidth=`${b.borderStyle.width}px`;let a=b.borderStyle.horizontalCornerRadius,c=b.borderStyle.verticalCornerRadius;switch(a>0||c>0?f.borderRadius=`calc(${a}px * var(--scale-factor)) / calc(${c}px * var(--scale-factor))`:this instanceof cb&&(f.borderRadius=`calc(${g}px * var(--scale-factor)) / calc(${h}px * var(--scale-factor))`),b.borderStyle.style){case 1:f.borderStyle="solid";break;case 2:f.borderStyle="dashed";break;case 3:s("Unimplemented border style: beveled");break;case 4:s("Unimplemented border style: inset");break;case 5:f.borderBottomStyle="solid"}let d=b.borderColor||null;d?(this.#dk=!0,f.borderColor=K.makeHexColor(0|d[0],0|d[1],0|d[2])):f.borderWidth=0}let i=K.normalizeRect([b.rect[0],c.view[3]-b.rect[1]+c.view[1],b.rect[2],c.view[3]-b.rect[3]+c.view[1]]),{pageWidth:j,pageHeight:k,pageX:l,pageY:m}=d.rawDims;f.left=`${100*(i[0]-l)/j}%`,f.top=`${100*(i[1]-m)/k}%`;let{rotation:n}=b;return b.hasOwnCanvas||0===n?(f.width=`${100*g/j}%`,f.height=`${100*h/k}%`):this.setRotation(n,e),e}setRotation(a,b=this.container){let c,d;if(!this.data.rect)return;let{pageWidth:e,pageHeight:f}=this.parent.viewport.rawDims,{width:g,height:h}=b2(this.data.rect);a%180==0?(c=100*g/e,d=100*h/f):(c=100*h/e,d=100*g/f),b.style.width=`${c}%`,b.style.height=`${d}%`,b.setAttribute("data-main-rotation",(360-a)%360)}get _commonActions(){let a=(a,b,c)=>{let d=c.detail[a],e=d[0],f=d.slice(1);c.target.style[b]=bZ[`${e}_HTML`](f),this.annotationStorage.setValue(this.data.id,{[b]:bZ[`${e}_rgb`](f)})};return w(this,"_commonActions",{display:a=>{let{display:b}=a.detail,c=b%2==1;this.container.style.visibility=c?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noView:c,noPrint:1===b||2===b})},print:a=>{this.annotationStorage.setValue(this.data.id,{noPrint:!a.detail.print})},hidden:a=>{let{hidden:b}=a.detail;this.container.style.visibility=b?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noPrint:b,noView:b})},focus:a=>{setTimeout(()=>a.target.focus({preventScroll:!1}),0)},userName:a=>{a.target.title=a.detail.userName},readonly:a=>{a.target.disabled=a.detail.readonly},required:a=>{this._setRequired(a.target,a.detail.required)},bgColor:b=>{a("bgColor","backgroundColor",b)},fillColor:b=>{a("fillColor","backgroundColor",b)},fgColor:b=>{a("fgColor","color",b)},textColor:b=>{a("textColor","color",b)},borderColor:b=>{a("borderColor","borderColor",b)},strokeColor:b=>{a("strokeColor","borderColor",b)},rotation:a=>{let b=a.detail.rotation;this.setRotation(b),this.annotationStorage.setValue(this.data.id,{rotation:b})}})}_dispatchEventFromSandbox(a,b){let c=this._commonActions;for(let d of Object.keys(b.detail)){let e=a[d]||c[d];e?.(b)}}_setDefaultPropertiesFromJS(a){if(!this.enableScripting)return;let b=this.annotationStorage.getRawValue(this.data.id);if(!b)return;let c=this._commonActions;for(let[d,e]of Object.entries(b)){let f=c[d];f&&(f({detail:{[d]:e},target:a}),delete b[d])}}_createQuadrilaterals(){let a;if(!this.container)return;let{quadPoints:b}=this.data;if(!b)return;let[c,d,e,f]=this.data.rect.map(a=>Math.fround(a));if(8===b.length){let[a,g,h,i]=b.subarray(2,6);if(e===a&&f===g&&c===h&&d===i)return}let{style:g}=this.container;if(this.#dk){let{borderColor:b,borderWidth:c}=g;g.borderWidth=0,a=["url('data:image/svg+xml;utf8,",'<svg xmlns="http://www.w3.org/2000/svg"',' preserveAspectRatio="none" viewBox="0 0 1 1">',`<g fill="transparent" stroke="${b}" stroke-width="${c}">`],this.container.classList.add("hasBorder")}let h=e-c,i=f-d,{svgFactory:j}=this,k=j.createElement("svg");k.classList.add("quadrilateralsContainer"),k.setAttribute("width",0),k.setAttribute("height",0);let l=j.createElement("defs");k.append(l);let m=j.createElement("clipPath"),n=`clippath_${this.data.id}`;m.setAttribute("id",n),m.setAttribute("clipPathUnits","objectBoundingBox"),l.append(m);for(let d=2,e=b.length;d<e;d+=8){let e=b[d],g=b[d+1],k=b[d+2],l=b[d+3],n=j.createElement("rect"),o=(k-c)/h,p=(f-g)/i,q=(e-k)/h,r=(g-l)/i;n.setAttribute("x",o),n.setAttribute("y",p),n.setAttribute("width",q),n.setAttribute("height",r),m.append(n),a?.push(`<rect vector-effect="non-scaling-stroke" x="${o}" y="${p}" width="${q}" height="${r}"/>`)}this.#dk&&(a.push("</g></svg>')"),g.backgroundImage=a.join("")),this.container.append(k),this.container.style.clipPath=`url(#${n})`}_createPopup(){let{data:a}=this,b=this.#dl=new ce({data:{color:a.color,titleObj:a.titleObj,modificationDate:a.modificationDate,contentsObj:a.contentsObj,richText:a.richText,parentRect:a.rect,borderStyle:0,id:`popup_${a.id}`,rotation:a.rotation},parent:this.parent,elements:[this]});this.parent.div.append(b.render())}render(){t("Abstract method `AnnotationElement.render` called")}_getElementsByName(a,b=null){let c=[];if(this._fieldObjects){let d=this._fieldObjects[a];if(d)for(let{page:a,id:e,exportValues:f}of d){if(-1===a||e===b)continue;let d="string"==typeof f?f:null,g=document.querySelector(`[data-element-id="${e}"]`);if(g&&!b1.has(g)){s(`_getElementsByName - element not allowed: ${e}`);continue}c.push({id:e,exportValue:d,domElement:g})}return c}for(let d of document.getElementsByName(a)){let{exportValue:a}=d,e=d.getAttribute("data-element-id");e!==b&&b1.has(d)&&c.push({id:e,exportValue:a,domElement:d})}return c}show(){this.container&&(this.container.hidden=!1),this.popup?.maybeShow()}hide(){this.container&&(this.container.hidden=!0),this.popup?.forceHide()}getElementsToTriggerPopup(){return this.container}addHighlightArea(){let a=this.getElementsToTriggerPopup();if(Array.isArray(a))for(let b of a)b.classList.add("highlightArea");else a.classList.add("highlightArea")}_editOnDoubleClick(){if(!this._isEditable)return;let{annotationEditorType:a,data:{id:b}}=this;this.container.addEventListener("dblclick",()=>{this.linkService.eventBus?.dispatch("switchannotationeditormode",{source:this,mode:a,editId:b})})}}class b5 extends b4{constructor(a,b=null){super(a,{isRenderable:!0,ignoreBorder:!!b?.ignoreBorder,createQuadrilaterals:!0}),this.isTooltipOnly=a.data.isTooltipOnly}render(){let{data:a,linkService:b}=this,c=document.createElement("a");c.setAttribute("data-element-id",a.id);let d=!1;return a.url?(b.addLinkAttributes(c,a.url,a.newWindow),d=!0):a.action?(this._bindNamedAction(c,a.action),d=!0):a.attachment?(this.#dn(c,a.attachment,a.attachmentDest),d=!0):a.setOCGState?(this.#dp(c,a.setOCGState),d=!0):a.dest?(this._bindLink(c,a.dest),d=!0):(a.actions&&(a.actions.Action||a.actions["Mouse Up"]||a.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions&&(this._bindJSAction(c,a),d=!0),a.resetForm?(this._bindResetFormAction(c,a.resetForm),d=!0):this.isTooltipOnly&&!d&&(this._bindLink(c,""),d=!0)),this.container.classList.add("linkAnnotation"),d&&this.container.append(c),this.container}#dq(){this.container.setAttribute("data-internal-link","")}_bindLink(a,b){a.href=this.linkService.getDestinationHash(b),a.onclick=()=>(b&&this.linkService.goToDestination(b),!1),(b||""===b)&&this.#dq()}_bindNamedAction(a,b){a.href=this.linkService.getAnchorUrl(""),a.onclick=()=>(this.linkService.executeNamedAction(b),!1),this.#dq()}#dn(a,b,c=null){a.href=this.linkService.getAnchorUrl(""),b.description&&(a.title=b.description),a.onclick=()=>(this.downloadManager?.openOrDownloadData(b.content,b.filename,c),!1),this.#dq()}#dp(a,b){a.href=this.linkService.getAnchorUrl(""),a.onclick=()=>(this.linkService.executeSetOCGState(b),!1),this.#dq()}_bindJSAction(a,b){a.href=this.linkService.getAnchorUrl("");let c=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(let d of Object.keys(b.actions)){let e=c.get(d);e&&(a[e]=()=>(this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:b.id,name:d}}),!1))}a.onclick||(a.onclick=()=>!1),this.#dq()}_bindResetFormAction(a,b){let c=a.onclick;if(c||(a.href=this.linkService.getAnchorUrl("")),this.#dq(),!this._fieldObjects){s('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.'),c||(a.onclick=()=>!1);return}a.onclick=()=>{c?.();let{fields:a,refs:d,include:e}=b,f=[];if(0!==a.length||0!==d.length){let b=new Set(d);for(let c of a)for(let{id:a}of this._fieldObjects[c]||[])b.add(a);for(let a of Object.values(this._fieldObjects))for(let c of a)b.has(c.id)===e&&f.push(c)}else for(let a of Object.values(this._fieldObjects))f.push(...a);let g=this.annotationStorage,h=[];for(let a of f){let{id:b}=a;switch(h.push(b),a.type){case"text":{let c=a.defaultValue||"";g.setValue(b,{value:c});break}case"checkbox":case"radiobutton":{let c=a.defaultValue===a.exportValues;g.setValue(b,{value:c});break}case"combobox":case"listbox":{let c=a.defaultValue||"";g.setValue(b,{value:c});break}default:continue}let c=document.querySelector(`[data-element-id="${b}"]`);if(c){if(!b1.has(c)){s(`_bindResetFormAction - element not allowed: ${b}`);continue}c.dispatchEvent(new Event("resetform"))}}return this.enableScripting&&this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:h,name:"ResetForm"}}),!1}}}class b6 extends b4{constructor(a){super(a,{isRenderable:!0})}render(){this.container.classList.add("textAnnotation");let a=document.createElement("img");return a.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg",a.setAttribute("data-l10n-id","pdfjs-text-annotation-type"),a.setAttribute("data-l10n-args",JSON.stringify({type:this.data.name})),!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container.append(a),this.container}}class b7 extends b4{render(){return this.container}showElementAndHideCanvas(a){this.data.hasOwnCanvas&&(a.previousSibling?.nodeName==="CANVAS"&&(a.previousSibling.hidden=!0),a.hidden=!1)}_getKeyModifier(a){return I.platform.isMac?a.metaKey:a.ctrlKey}_setEventListener(a,b,c,d,e){c.includes("mouse")?a.addEventListener(c,a=>{this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:d,value:e(a),shift:a.shiftKey,modifier:this._getKeyModifier(a)}})}):a.addEventListener(c,a=>{if("blur"===c){if(!b.focused||!a.relatedTarget)return;b.focused=!1}else if("focus"===c){if(b.focused)return;b.focused=!0}e&&this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:d,value:e(a)}})})}_setEventListeners(a,b,c,d){for(let[e,f]of c)("Action"===f||this.data.actions?.[f])&&(("Focus"===f||"Blur"===f)&&(b||={focused:!1}),this._setEventListener(a,b,e,f,d),"Focus"!==f||this.data.actions?.Blur?"Blur"!==f||this.data.actions?.Focus||this._setEventListener(a,b,"focus","Focus",null):this._setEventListener(a,b,"blur","Blur",null))}_setBackgroundColor(a){let b=this.data.backgroundColor||null;a.style.backgroundColor=null===b?"transparent":K.makeHexColor(b[0],b[1],b[2])}_setTextStyle(a){let b,{fontColor:c}=this.data.defaultAppearanceData,d=this.data.defaultAppearanceData.fontSize||9,e=a.style,f=a=>Math.round(10*a)/10;if(this.data.multiLine){let a=Math.abs(this.data.rect[3]-this.data.rect[1]-2),c=Math.round(a/(1.35*d))||1;b=Math.min(d,f(a/c/1.35))}else b=Math.min(d,f(Math.abs(this.data.rect[3]-this.data.rect[1]-2)/1.35));e.fontSize=`calc(${b}px * var(--scale-factor))`,e.color=K.makeHexColor(c[0],c[1],c[2]),null!==this.data.textAlignment&&(e.textAlign=["left","center","right"][this.data.textAlignment])}_setRequired(a,b){b?a.setAttribute("required",!0):a.removeAttribute("required"),a.setAttribute("aria-required",b)}}class b8 extends b7{constructor(a){super(a,{isRenderable:a.renderForms||a.data.hasOwnCanvas||!a.data.hasAppearance&&!!a.data.fieldValue})}setPropertyOnSiblings(a,b,c,d){let e=this.annotationStorage;for(let f of this._getElementsByName(a.name,a.id))f.domElement&&(f.domElement[b]=c),e.setValue(f.id,{[d]:c})}render(){let a=this.annotationStorage,b=this.data.id;this.container.classList.add("textWidgetAnnotation");let c=null;if(this.renderForms){let d=a.getValue(b,{value:this.data.fieldValue}),e=d.value||"",f=a.getValue(b,{charLimit:this.data.maxLen}).charLimit;f&&e.length>f&&(e=e.slice(0,f));let g=d.formattedValue||this.data.textContent?.join("\n")||null;g&&this.data.comb&&(g=g.replaceAll(/\s+/g,""));let h={userValue:e,formattedValue:g,lastCommittedValue:null,commitKey:1,focused:!1};this.data.multiLine?((c=document.createElement("textarea")).textContent=g??e,this.data.doNotScroll&&(c.style.overflowY="hidden")):((c=document.createElement("input")).type="text",c.setAttribute("value",g??e),this.data.doNotScroll&&(c.style.overflowX="hidden")),this.data.hasOwnCanvas&&(c.hidden=!0),b1.add(c),c.setAttribute("data-element-id",b),c.disabled=this.data.readOnly,c.name=this.data.fieldName,c.tabIndex=1e3,this._setRequired(c,this.data.required),f&&(c.maxLength=f),c.addEventListener("input",d=>{a.setValue(b,{value:d.target.value}),this.setPropertyOnSiblings(c,"value",d.target.value,"value"),h.formattedValue=null}),c.addEventListener("resetform",a=>{let b=this.data.defaultFieldValue??"";c.value=h.userValue=b,h.formattedValue=null});let i=a=>{let{formattedValue:b}=h;null!=b&&(a.target.value=b),a.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){c.addEventListener("focus",a=>{if(h.focused)return;let{target:b}=a;h.userValue&&(b.value=h.userValue),h.lastCommittedValue=b.value,h.commitKey=1,this.data.actions?.Focus||(h.focused=!0)}),c.addEventListener("updatefromsandbox",c=>{this.showElementAndHideCanvas(c.target),this._dispatchEventFromSandbox({value(c){h.userValue=c.detail.value??"",a.setValue(b,{value:h.userValue.toString()}),c.target.value=h.userValue},formattedValue(c){let{formattedValue:d}=c.detail;h.formattedValue=d,null!=d&&c.target!==document.activeElement&&(c.target.value=d),a.setValue(b,{formattedValue:d})},selRange(a){a.target.setSelectionRange(...a.detail.selRange)},charLimit:c=>{let{charLimit:d}=c.detail,{target:e}=c;if(0===d)return void e.removeAttribute("maxLength");e.setAttribute("maxLength",d);let f=h.userValue;f&&!(f.length<=d)&&(e.value=h.userValue=f=f.slice(0,d),a.setValue(b,{value:f}),this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:b,name:"Keystroke",value:f,willCommit:!0,commitKey:1,selStart:e.selectionStart,selEnd:e.selectionEnd}}))}},c)}),c.addEventListener("keydown",a=>{h.commitKey=1;let c=-1;if("Escape"===a.key?c=0:"Enter"!==a.key||this.data.multiLine?"Tab"===a.key&&(h.commitKey=3):c=2,-1===c)return;let{value:d}=a.target;h.lastCommittedValue!==d&&(h.lastCommittedValue=d,h.userValue=d,this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:b,name:"Keystroke",value:d,willCommit:!0,commitKey:c,selStart:a.target.selectionStart,selEnd:a.target.selectionEnd}}))});let d=i;i=null,c.addEventListener("blur",a=>{if(!h.focused||!a.relatedTarget)return;this.data.actions?.Blur||(h.focused=!1);let{value:c}=a.target;h.userValue=c,h.lastCommittedValue!==c&&this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:b,name:"Keystroke",value:c,willCommit:!0,commitKey:h.commitKey,selStart:a.target.selectionStart,selEnd:a.target.selectionEnd}}),d(a)}),this.data.actions?.Keystroke&&c.addEventListener("beforeinput",a=>{h.lastCommittedValue=null;let{data:c,target:d}=a,{value:e,selectionStart:f,selectionEnd:g}=d,i=f,j=g;switch(a.inputType){case"deleteWordBackward":{let a=e.substring(0,f).match(/\w*[^\w]*$/);a&&(i-=a[0].length);break}case"deleteWordForward":{let a=e.substring(f).match(/^[^\w]*\w*/);a&&(j+=a[0].length);break}case"deleteContentBackward":f===g&&(i-=1);break;case"deleteContentForward":f===g&&(j+=1)}a.preventDefault(),this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:b,name:"Keystroke",value:e,change:c||"",willCommit:!1,selStart:i,selEnd:j}})}),this._setEventListeners(c,h,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],a=>a.target.value)}if(i&&c.addEventListener("blur",i),this.data.comb){let a=(this.data.rect[2]-this.data.rect[0])/f;c.classList.add("comb"),c.style.letterSpacing=`calc(${a}px * var(--scale-factor) - 1ch)`}}else(c=document.createElement("div")).textContent=this.data.fieldValue,c.style.verticalAlign="middle",c.style.display="table-cell",this.data.hasOwnCanvas&&(c.hidden=!0);return this._setTextStyle(c),this._setBackgroundColor(c),this._setDefaultPropertiesFromJS(c),this.container.append(c),this.container}}class b9 extends b7{constructor(a){super(a,{isRenderable:!!a.data.hasOwnCanvas})}}class ca extends b7{constructor(a){super(a,{isRenderable:a.renderForms})}render(){let a=this.annotationStorage,b=this.data,c=b.id,d=a.getValue(c,{value:b.exportValue===b.fieldValue}).value;"string"==typeof d&&(d="Off"!==d,a.setValue(c,{value:d})),this.container.classList.add("buttonWidgetAnnotation","checkBox");let e=document.createElement("input");return b1.add(e),e.setAttribute("data-element-id",c),e.disabled=b.readOnly,this._setRequired(e,this.data.required),e.type="checkbox",e.name=b.fieldName,d&&e.setAttribute("checked",!0),e.setAttribute("exportValue",b.exportValue),e.tabIndex=1e3,e.addEventListener("change",d=>{let{name:e,checked:f}=d.target;for(let d of this._getElementsByName(e,c)){let c=f&&d.exportValue===b.exportValue;d.domElement&&(d.domElement.checked=c),a.setValue(d.id,{value:c})}a.setValue(c,{value:f})}),e.addEventListener("resetform",a=>{let c=b.defaultFieldValue||"Off";a.target.checked=c===b.exportValue}),this.enableScripting&&this.hasJSActions&&(e.addEventListener("updatefromsandbox",b=>{this._dispatchEventFromSandbox({value(b){b.target.checked="Off"!==b.detail.value,a.setValue(c,{value:b.target.checked})}},b)}),this._setEventListeners(e,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],a=>a.target.checked)),this._setBackgroundColor(e),this._setDefaultPropertiesFromJS(e),this.container.append(e),this.container}}class cb extends b7{constructor(a){super(a,{isRenderable:a.renderForms})}render(){this.container.classList.add("buttonWidgetAnnotation","radioButton");let a=this.annotationStorage,b=this.data,c=b.id,d=a.getValue(c,{value:b.fieldValue===b.buttonValue}).value;if("string"==typeof d&&(d=d!==b.buttonValue,a.setValue(c,{value:d})),d)for(let d of this._getElementsByName(b.fieldName,c))a.setValue(d.id,{value:!1});let e=document.createElement("input");if(b1.add(e),e.setAttribute("data-element-id",c),e.disabled=b.readOnly,this._setRequired(e,this.data.required),e.type="radio",e.name=b.fieldName,d&&e.setAttribute("checked",!0),e.tabIndex=1e3,e.addEventListener("change",b=>{let{name:d,checked:e}=b.target;for(let b of this._getElementsByName(d,c))a.setValue(b.id,{value:!1});a.setValue(c,{value:e})}),e.addEventListener("resetform",a=>{let c=b.defaultFieldValue;a.target.checked=null!=c&&c===b.buttonValue}),this.enableScripting&&this.hasJSActions){let d=b.buttonValue;e.addEventListener("updatefromsandbox",b=>{this._dispatchEventFromSandbox({value:b=>{let e=d===b.detail.value;for(let d of this._getElementsByName(b.target.name)){let b=e&&d.id===c;d.domElement&&(d.domElement.checked=b),a.setValue(d.id,{value:b})}}},b)}),this._setEventListeners(e,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],a=>a.target.checked)}return this._setBackgroundColor(e),this._setDefaultPropertiesFromJS(e),this.container.append(e),this.container}}class cc extends b5{constructor(a){super(a,{ignoreBorder:a.data.hasAppearance})}render(){let a=super.render();a.classList.add("buttonWidgetAnnotation","pushButton");let b=a.lastChild;return this.enableScripting&&this.hasJSActions&&b&&(this._setDefaultPropertiesFromJS(b),b.addEventListener("updatefromsandbox",a=>{this._dispatchEventFromSandbox({},a)})),a}}class cd extends b7{constructor(a){super(a,{isRenderable:a.renderForms})}render(){this.container.classList.add("choiceWidgetAnnotation");let a=this.annotationStorage,b=this.data.id,c=a.getValue(b,{value:this.data.fieldValue}),d=document.createElement("select");b1.add(d),d.setAttribute("data-element-id",b),d.disabled=this.data.readOnly,this._setRequired(d,this.data.required),d.name=this.data.fieldName,d.tabIndex=1e3;let e=this.data.combo&&this.data.options.length>0;for(let a of(!this.data.combo&&(d.size=this.data.options.length,this.data.multiSelect&&(d.multiple=!0)),d.addEventListener("resetform",a=>{let b=this.data.defaultFieldValue;for(let a of d.options)a.selected=a.value===b}),this.data.options)){let b=document.createElement("option");b.textContent=a.displayValue,b.value=a.exportValue,c.value.includes(a.exportValue)&&(b.setAttribute("selected",!0),e=!1),d.append(b)}let f=null;if(e){let a=document.createElement("option");a.value=" ",a.setAttribute("hidden",!0),a.setAttribute("selected",!0),d.prepend(a),f=()=>{a.remove(),d.removeEventListener("input",f),f=null},d.addEventListener("input",f)}let g=a=>{let b=a?"value":"textContent",{options:c,multiple:e}=d;return e?Array.prototype.filter.call(c,a=>a.selected).map(a=>a[b]):-1===c.selectedIndex?null:c[c.selectedIndex][b]},h=g(!1),i=a=>{let b=a.target.options;return Array.prototype.map.call(b,a=>({displayValue:a.textContent,exportValue:a.value}))};return this.enableScripting&&this.hasJSActions?(d.addEventListener("updatefromsandbox",c=>{this._dispatchEventFromSandbox({value(c){f?.();let e=c.detail.value,i=new Set(Array.isArray(e)?e:[e]);for(let a of d.options)a.selected=i.has(a.value);a.setValue(b,{value:g(!0)}),h=g(!1)},multipleSelection(a){d.multiple=!0},remove(c){let e=d.options,f=c.detail.remove;e[f].selected=!1,d.remove(f),e.length>0&&-1===Array.prototype.findIndex.call(e,a=>a.selected)&&(e[0].selected=!0),a.setValue(b,{value:g(!0),items:i(c)}),h=g(!1)},clear(c){for(;0!==d.length;)d.remove(0);a.setValue(b,{value:null,items:[]}),h=g(!1)},insert(c){let{index:e,displayValue:f,exportValue:j}=c.detail.insert,k=d.children[e],l=document.createElement("option");l.textContent=f,l.value=j,k?k.before(l):d.append(l),a.setValue(b,{value:g(!0),items:i(c)}),h=g(!1)},items(c){let{items:e}=c.detail;for(;0!==d.length;)d.remove(0);for(let a of e){let{displayValue:b,exportValue:c}=a,e=document.createElement("option");e.textContent=b,e.value=c,d.append(e)}d.options.length>0&&(d.options[0].selected=!0),a.setValue(b,{value:g(!0),items:i(c)}),h=g(!1)},indices(c){let d=new Set(c.detail.indices);for(let a of c.target.options)a.selected=d.has(a.index);a.setValue(b,{value:g(!0)}),h=g(!1)},editable(a){a.target.disabled=!a.detail.editable}},c)}),d.addEventListener("input",c=>{let d=g(!0),e=g(!1);a.setValue(b,{value:d}),c.preventDefault(),this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:b,name:"Keystroke",value:h,change:e,changeEx:d,willCommit:!1,commitKey:1,keyDown:!1}})}),this._setEventListeners(d,null,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"],["input","Validate"]],a=>a.target.value)):d.addEventListener("input",function(c){a.setValue(b,{value:g(!0)})}),this.data.combo&&this._setTextStyle(d),this._setBackgroundColor(d),this._setDefaultPropertiesFromJS(d),this.container.append(d),this.container}}class ce extends b4{constructor(a){const{data:b,elements:c}=a;super(a,{isRenderable:b4._hasPopupData(b)}),this.elements=c,this.popup=null}render(){this.container.classList.add("popupAnnotation");let a=this.popup=new cf({container:this.container,color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate,contentsObj:this.data.contentsObj,richText:this.data.richText,rect:this.data.rect,parentRect:this.data.parentRect||null,parent:this.parent,elements:this.elements,open:this.data.open}),b=[];for(let c of this.elements)c.popup=a,c.container.ariaHasPopup="dialog",b.push(c.data.id),c.addHighlightArea();return this.container.setAttribute("aria-controls",b.map(a=>`${O}${a}`).join(",")),this.container}}class cf{#dr=this.#ds.bind(this);#dt=this.#du.bind(this);#dv=this.#dw.bind(this);#dx=this.#dy.bind(this);#dz=null;#an=null;#dA=null;#dB=null;#dC=null;#dD=null;#dE=null;#dF=!1;#dG=null;#A=null;#dH=null;#dI=null;#dJ=null;#dj=null;#dK=!1;constructor({container:a,color:b,elements:c,titleObj:d,modificationDate:e,contentsObj:f,richText:g,parent:h,rect:i,parentRect:j,open:k}){for(const k of(this.#an=a,this.#dJ=d,this.#dA=f,this.#dI=g,this.#dD=h,this.#dz=b,this.#dH=i,this.#dE=j,this.#dC=c,this.#dB=aa.toDateObject(e),this.trigger=c.flatMap(a=>a.getElementsToTriggerPopup()),this.trigger))k.addEventListener("click",this.#dx),k.addEventListener("mouseenter",this.#dv),k.addEventListener("mouseleave",this.#dt),k.classList.add("popupTriggerArea");for(const a of c)a.container?.addEventListener("keydown",this.#dr);this.#an.hidden=!0,k&&this.#dy()}render(){if(this.#dG)return;let a=this.#dG=document.createElement("div");if(a.className="popup",this.#dz){let b=a.style.outlineColor=K.makeHexColor(...this.#dz);CSS.supports("background-color","color-mix(in srgb, red 30%, white)")?a.style.backgroundColor=`color-mix(in srgb, ${b} 30%, white)`:a.style.backgroundColor=K.makeHexColor(...this.#dz.map(a=>Math.floor(.7*(255-a)+a)))}let b=document.createElement("span");b.className="header";let c=document.createElement("h1");if(b.append(c),{dir:c.dir,str:c.textContent}=this.#dJ,a.append(b),this.#dB){let a=document.createElement("span");a.classList.add("popupDate"),a.setAttribute("data-l10n-id","pdfjs-annotation-date-time-string"),a.setAttribute("data-l10n-args",JSON.stringify({dateObj:this.#dB.valueOf()})),b.append(a)}let d=this.#dL;if(d)b0.render({xfaHtml:d,intent:"richText",div:a}),a.lastChild.classList.add("richText","popupContent");else{let b=this._formatContents(this.#dA);a.append(b)}this.#an.append(a)}get #dL(){let a=this.#dI,b=this.#dA;return a?.str&&(!b?.str||b.str===a.str)&&this.#dI.html||null}get #dM(){return this.#dL?.attributes?.style?.fontSize||0}get #dN(){return this.#dL?.attributes?.style?.color||null}#dO(a){let b=[],c={style:{color:this.#dN,fontSize:this.#dM?`calc(${this.#dM}px * var(--scale-factor))`:""}};for(let d of a.split("\n"))b.push({name:"span",value:d,attributes:c});return{str:a,html:{name:"div",attributes:{dir:"auto"},children:[{name:"p",children:b}]}}}_formatContents({str:a,dir:b}){let c=document.createElement("p");c.classList.add("popupContent"),c.dir=b;let d=a.split(/(?:\r\n?|\n)/);for(let a=0,b=d.length;a<b;++a){let e=d[a];c.append(document.createTextNode(e)),a<b-1&&c.append(document.createElement("br"))}return c}#ds(a){a.altKey||a.shiftKey||a.ctrlKey||a.metaKey||("Enter"===a.key||"Escape"===a.key&&this.#dF)&&this.#dy()}updateEdited({rect:a,popupContent:b}){this.#dj||={contentsObj:this.#dA,richText:this.#dI},a&&(this.#A=null),b&&(this.#dI=this.#dO(b),this.#dA=null),this.#dG?.remove(),this.#dG=null}resetEdited(){this.#dj&&({contentsObj:this.#dA,richText:this.#dI}=this.#dj,this.#dj=null,this.#dG?.remove(),this.#dG=null,this.#A=null)}#dP(){if(null!==this.#A)return;let{page:{view:a},viewport:{rawDims:{pageWidth:b,pageHeight:c,pageX:d,pageY:e}}}=this.#dD,f=!!this.#dE,g=f?this.#dE:this.#dH;for(let a of this.#dC)if(!g||null!==K.intersect(a.data.rect,g)){g=a.data.rect,f=!0;break}let h=K.normalizeRect([g[0],a[3]-g[1]+a[1],g[2],a[3]-g[3]+a[1]]),i=f?g[2]-g[0]+5:0,j=h[0]+i,k=h[1];this.#A=[100*(j-d)/b,100*(k-e)/c];let{style:l}=this.#an;l.left=`${this.#A[0]}%`,l.top=`${this.#A[1]}%`}#dy(){this.#dF=!this.#dF,this.#dF?(this.#dw(),this.#an.addEventListener("click",this.#dx),this.#an.addEventListener("keydown",this.#dr)):(this.#du(),this.#an.removeEventListener("click",this.#dx),this.#an.removeEventListener("keydown",this.#dr))}#dw(){this.#dG||this.render(),this.isVisible?this.#dF&&this.#an.classList.add("focused"):(this.#dP(),this.#an.hidden=!1,this.#an.style.zIndex=parseInt(this.#an.style.zIndex)+1e3)}#du(){this.#an.classList.remove("focused"),!this.#dF&&this.isVisible&&(this.#an.hidden=!0,this.#an.style.zIndex=parseInt(this.#an.style.zIndex)-1e3)}forceHide(){this.#dK=this.isVisible,this.#dK&&(this.#an.hidden=!0)}maybeShow(){this.#dK&&(this.#dG||this.#dw(),this.#dK=!1,this.#an.hidden=!1)}get isVisible(){return!1===this.#an.hidden}}class cg extends b4{constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0}),this.textContent=a.data.textContent,this.textPosition=a.data.textPosition,this.annotationEditorType=j.FREETEXT}render(){if(this.container.classList.add("freeTextAnnotation"),this.textContent){let a=document.createElement("div");for(let b of(a.classList.add("annotationTextContent"),a.setAttribute("role","comment"),this.textContent)){let c=document.createElement("span");c.textContent=b,a.append(c)}this.container.append(a)}return!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this._editOnDoubleClick(),this.container}}class ch extends b4{#dQ=null;constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0})}render(){this.container.classList.add("lineAnnotation");let a=this.data,{width:b,height:c}=b2(a.rect),d=this.svgFactory.create(b,c,!0),e=this.#dQ=this.svgFactory.createElement("svg:line");return e.setAttribute("x1",a.rect[2]-a.lineCoordinates[0]),e.setAttribute("y1",a.rect[3]-a.lineCoordinates[1]),e.setAttribute("x2",a.rect[2]-a.lineCoordinates[2]),e.setAttribute("y2",a.rect[3]-a.lineCoordinates[3]),e.setAttribute("stroke-width",a.borderStyle.width||1),e.setAttribute("stroke","transparent"),e.setAttribute("fill","transparent"),d.append(e),this.container.append(d),!a.popupRef&&this.hasPopupData&&this._createPopup(),this.container}getElementsToTriggerPopup(){return this.#dQ}addHighlightArea(){this.container.classList.add("highlightArea")}}class ci extends b4{#dR=null;constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0})}render(){this.container.classList.add("squareAnnotation");let a=this.data,{width:b,height:c}=b2(a.rect),d=this.svgFactory.create(b,c,!0),e=a.borderStyle.width,f=this.#dR=this.svgFactory.createElement("svg:rect");return f.setAttribute("x",e/2),f.setAttribute("y",e/2),f.setAttribute("width",b-e),f.setAttribute("height",c-e),f.setAttribute("stroke-width",e||1),f.setAttribute("stroke","transparent"),f.setAttribute("fill","transparent"),d.append(f),this.container.append(d),!a.popupRef&&this.hasPopupData&&this._createPopup(),this.container}getElementsToTriggerPopup(){return this.#dR}addHighlightArea(){this.container.classList.add("highlightArea")}}class cj extends b4{#dS=null;constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0})}render(){this.container.classList.add("circleAnnotation");let a=this.data,{width:b,height:c}=b2(a.rect),d=this.svgFactory.create(b,c,!0),e=a.borderStyle.width,f=this.#dS=this.svgFactory.createElement("svg:ellipse");return f.setAttribute("cx",b/2),f.setAttribute("cy",c/2),f.setAttribute("rx",b/2-e/2),f.setAttribute("ry",c/2-e/2),f.setAttribute("stroke-width",e||1),f.setAttribute("stroke","transparent"),f.setAttribute("fill","transparent"),d.append(f),this.container.append(d),!a.popupRef&&this.hasPopupData&&this._createPopup(),this.container}getElementsToTriggerPopup(){return this.#dS}addHighlightArea(){this.container.classList.add("highlightArea")}}class ck extends b4{#dT=null;constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0}),this.containerClassName="polylineAnnotation",this.svgElementName="svg:polyline"}render(){this.container.classList.add(this.containerClassName);let{data:{rect:a,vertices:b,borderStyle:c,popupRef:d}}=this;if(!b)return this.container;let{width:e,height:f}=b2(a),g=this.svgFactory.create(e,f,!0),h=[];for(let c=0,d=b.length;c<d;c+=2){let d=b[c]-a[0],e=a[3]-b[c+1];h.push(`${d},${e}`)}h=h.join(" ");let i=this.#dT=this.svgFactory.createElement(this.svgElementName);return i.setAttribute("points",h),i.setAttribute("stroke-width",c.width||1),i.setAttribute("stroke","transparent"),i.setAttribute("fill","transparent"),g.append(i),this.container.append(g),!d&&this.hasPopupData&&this._createPopup(),this.container}getElementsToTriggerPopup(){return this.#dT}addHighlightArea(){this.container.classList.add("highlightArea")}}class cl extends ck{constructor(a){super(a),this.containerClassName="polygonAnnotation",this.svgElementName="svg:polygon"}}class cm extends b4{constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0})}render(){return this.container.classList.add("caretAnnotation"),!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container}}class cn extends b4{#dU=null;#dV=[];constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0}),this.containerClassName="inkAnnotation",this.svgElementName="svg:polyline",this.annotationEditorType="InkHighlight"===this.data.it?j.HIGHLIGHT:j.INK}#dW(a,b){switch(a){case 90:return{transform:`rotate(90) translate(${-b[0]},${b[1]}) scale(1,-1)`,width:b[3]-b[1],height:b[2]-b[0]};case 180:return{transform:`rotate(180) translate(${-b[2]},${b[1]}) scale(1,-1)`,width:b[2]-b[0],height:b[3]-b[1]};case 270:return{transform:`rotate(270) translate(${-b[2]},${b[3]}) scale(1,-1)`,width:b[3]-b[1],height:b[2]-b[0]};default:return{transform:`translate(${-b[0]},${b[3]}) scale(1,-1)`,width:b[2]-b[0],height:b[3]-b[1]}}}render(){this.container.classList.add(this.containerClassName);let{data:{rect:a,rotation:b,inkLists:c,borderStyle:d,popupRef:e}}=this,{transform:f,width:g,height:h}=this.#dW(b,a),i=this.svgFactory.create(g,h,!0),j=this.#dU=this.svgFactory.createElement("svg:g");i.append(j),j.setAttribute("stroke-width",d.width||1),j.setAttribute("stroke-linecap","round"),j.setAttribute("stroke-linejoin","round"),j.setAttribute("stroke-miterlimit",10),j.setAttribute("stroke","transparent"),j.setAttribute("fill","transparent"),j.setAttribute("transform",f);for(let a=0,b=c.length;a<b;a++){let b=this.svgFactory.createElement(this.svgElementName);this.#dV.push(b),b.setAttribute("points",c[a].join(",")),j.append(b)}return!e&&this.hasPopupData&&this._createPopup(),this.container.append(i),this._editOnDoubleClick(),this.container}updateEdited(a){super.updateEdited(a);let{thickness:b,points:c,rect:d}=a,e=this.#dU;if(b>=0&&e.setAttribute("stroke-width",b||1),c)for(let a=0,b=this.#dV.length;a<b;a++)this.#dV[a].setAttribute("points",c[a].join(","));if(d){let{transform:a,width:b,height:c}=this.#dW(this.data.rotation,d);e.parentElement.setAttribute("viewBox",`0 0 ${b} ${c}`),e.setAttribute("transform",a)}}getElementsToTriggerPopup(){return this.#dV}addHighlightArea(){this.container.classList.add("highlightArea")}}class co extends b4{constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0}),this.annotationEditorType=j.HIGHLIGHT}render(){return!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container.classList.add("highlightAnnotation"),this._editOnDoubleClick(),this.container}}class cp extends b4{constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){return!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container.classList.add("underlineAnnotation"),this.container}}class cq extends b4{constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){return!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container.classList.add("squigglyAnnotation"),this.container}}class cr extends b4{constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){return!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container.classList.add("strikeoutAnnotation"),this.container}}class cs extends b4{constructor(a){super(a,{isRenderable:!0,ignoreBorder:!0}),this.annotationEditorType=j.STAMP}render(){return this.container.classList.add("stampAnnotation"),this.container.setAttribute("role","img"),!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this._editOnDoubleClick(),this.container}}class ct extends b4{#dX=null;constructor(a){super(a,{isRenderable:!0});const{file:b}=this.data;this.filename=b.filename,this.content=b.content,this.linkService.eventBus?.dispatch("fileattachmentannotation",{source:this,...b})}render(){let a;this.container.classList.add("fileAttachmentAnnotation");let{container:b,data:c}=this;c.hasAppearance||0===c.fillAlpha?a=document.createElement("div"):((a=document.createElement("img")).src=`${this.imageResourcesPath}annotation-${/paperclip/i.test(c.name)?"paperclip":"pushpin"}.svg`,c.fillAlpha&&c.fillAlpha<1&&(a.style=`filter: opacity(${Math.round(100*c.fillAlpha)}%);`)),a.addEventListener("dblclick",this.#dY.bind(this)),this.#dX=a;let{isMac:d}=I.platform;return b.addEventListener("keydown",a=>{"Enter"===a.key&&(d?a.metaKey:a.ctrlKey)&&this.#dY()}),!c.popupRef&&this.hasPopupData?this._createPopup():a.classList.add("popupTriggerArea"),b.append(a),b}getElementsToTriggerPopup(){return this.#dX}addHighlightArea(){this.container.classList.add("highlightArea")}#dY(){this.downloadManager?.openOrDownloadData(this.content,this.filename)}}class cu{#dZ=null;#d$=null;#d_=new Map;#d0=null;constructor({div:a,accessibilityManager:b,annotationCanvasMap:c,annotationEditorUIManager:d,page:e,viewport:f,structTreeLayer:g}){this.div=a,this.#dZ=b,this.#d$=c,this.#d0=g||null,this.page=e,this.viewport=f,this.zIndex=0,this._annotationEditorUIManager=d}hasEditableAnnotations(){return this.#d_.size>0}async #d1(a,b){let c=a.firstChild||a,d=c.id=`${O}${b}`,e=await this.#d0?.getAriaAttributes(d);if(e)for(let[a,b]of e)c.setAttribute(a,b);this.div.append(a),this.#dZ?.moveElementInDOM(this.div,a,c,!1)}async render(a){let{annotations:b}=a,c=this.div;af(c,this.viewport);let d=new Map,e={data:null,layer:c,linkService:a.linkService,downloadManager:a.downloadManager,imageResourcesPath:a.imageResourcesPath||"",renderForms:!1!==a.renderForms,svgFactory:new b_,annotationStorage:a.annotationStorage||new aw,enableScripting:!0===a.enableScripting,hasJSActions:a.hasJSActions,fieldObjects:a.fieldObjects,parent:this,elements:null};for(let a of b){if(a.noHTML)continue;let b=16===a.annotationType;if(b){let b=d.get(a.id);if(!b)continue;e.elements=b}else{let{width:b,height:c}=b2(a.rect);if(b<=0||c<=0)continue}e.data=a;let c=b3.create(e);if(!c.isRenderable)continue;if(!b&&a.popupRef){let b=d.get(a.popupRef);b?b.push(c):d.set(a.popupRef,[c])}let f=c.render();a.hidden&&(f.style.visibility="hidden"),await this.#d1(f,a.id),c._isEditable&&(this.#d_.set(c.data.id,c),this._annotationEditorUIManager?.renderAnnotationElement(c))}this.#d2()}update({viewport:a}){let b=this.div;this.viewport=a,af(b,{rotation:a.rotation}),this.#d2(),b.hidden=!1}#d2(){if(!this.#d$)return;let a=this.div;for(let[b,c]of this.#d$){let d=a.querySelector(`[data-annotation-id="${b}"]`);if(!d)continue;c.className="annotationContent";let{firstChild:e}=d;e?"CANVAS"===e.nodeName?e.replaceWith(c):e.classList.contains("annotationContent")?e.after(c):e.before(c):d.append(c)}this.#d$.clear()}getEditableAnnotations(){return Array.from(this.#d_.values())}getEditableAnnotation(a){return this.#d_.get(a)}}let cv=/\r\n?|\n/g;class cw extends as{#dz;#d3="";#d4=`${this.id}-editor`;#d5=null;#dM;static _freeTextDefaultContent="";static _internalPadding=0;static _defaultColor=null;static _defaultFontSize=10;static get _keyboardManager(){let a=cw.prototype,b=a=>a.isEmpty(),c=ap.TRANSLATE_SMALL,d=ap.TRANSLATE_BIG;return w(this,"_keyboardManager",new an([[["ctrl+s","mac+meta+s","ctrl+p","mac+meta+p"],a.commitOrRemove,{bubbles:!0}],[["ctrl+Enter","mac+meta+Enter","Escape","mac+Escape"],a.commitOrRemove],[["ArrowLeft","mac+ArrowLeft"],a._translateEmpty,{args:[-c,0],checker:b}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],a._translateEmpty,{args:[-d,0],checker:b}],[["ArrowRight","mac+ArrowRight"],a._translateEmpty,{args:[c,0],checker:b}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],a._translateEmpty,{args:[d,0],checker:b}],[["ArrowUp","mac+ArrowUp"],a._translateEmpty,{args:[0,-c],checker:b}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],a._translateEmpty,{args:[0,-d],checker:b}],[["ArrowDown","mac+ArrowDown"],a._translateEmpty,{args:[0,c],checker:b}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],a._translateEmpty,{args:[0,d],checker:b}]]))}static _type="freetext";static _editorType=j.FREETEXT;constructor(a){super({...a,name:"freeTextEditor"}),this.#dz=a.color||cw._defaultColor||as._defaultLineColor,this.#dM=a.fontSize||cw._defaultFontSize}static initialize(a,b){as.initialize(a,b);let c=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(c.getPropertyValue("--freetext-padding"))}static updateDefaultParams(a,b){switch(a){case k.FREETEXT_SIZE:cw._defaultFontSize=b;break;case k.FREETEXT_COLOR:cw._defaultColor=b}}updateParams(a,b){switch(a){case k.FREETEXT_SIZE:this.#d6(b);break;case k.FREETEXT_COLOR:this.#d7(b)}}static get defaultPropertiesToUpdate(){return[[k.FREETEXT_SIZE,cw._defaultFontSize],[k.FREETEXT_COLOR,cw._defaultColor||as._defaultLineColor]]}get propertiesToUpdate(){return[[k.FREETEXT_SIZE,this.#dM],[k.FREETEXT_COLOR,this.#dz]]}#d6(a){let b=a=>{this.editorDiv.style.fontSize=`calc(${a}px * var(--scale-factor))`,this.translate(0,-(a-this.#dM)*this.parentScale),this.#dM=a,this.#d8()},c=this.#dM;this.addCommands({cmd:b.bind(this,a),undo:b.bind(this,c),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:k.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})}#d7(a){let b=a=>{this.#dz=this.editorDiv.style.color=a},c=this.#dz;this.addCommands({cmd:b.bind(this,a),undo:b.bind(this,c),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:k.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})}_translateEmpty(a,b){this._uiManager.translateSelectedEditors(a,b,!0)}getInitialTranslation(){let a=this.parentScale;return[-cw._internalPadding*a,-(cw._internalPadding+this.#dM)*a]}rebuild(){!this.parent||(super.rebuild(),null!==this.div&&(this.isAttachedToDOM||this.parent.add(this)))}enableEditMode(){if(this.isInEditMode())return;this.parent.setEditingState(!1),this.parent.updateToolbar(j.FREETEXT),super.enableEditMode(),this.overlayDiv.classList.remove("enabled"),this.editorDiv.contentEditable=!0,this._isDraggable=!1,this.div.removeAttribute("aria-activedescendant"),this.#d5=new AbortController;let a=this._uiManager.combinedSignal(this.#d5);this.editorDiv.addEventListener("keydown",this.editorDivKeydown.bind(this),{signal:a}),this.editorDiv.addEventListener("focus",this.editorDivFocus.bind(this),{signal:a}),this.editorDiv.addEventListener("blur",this.editorDivBlur.bind(this),{signal:a}),this.editorDiv.addEventListener("input",this.editorDivInput.bind(this),{signal:a}),this.editorDiv.addEventListener("paste",this.editorDivPaste.bind(this),{signal:a})}disableEditMode(){this.isInEditMode()&&(this.parent.setEditingState(!0),super.disableEditMode(),this.overlayDiv.classList.add("enabled"),this.editorDiv.contentEditable=!1,this.div.setAttribute("aria-activedescendant",this.#d4),this._isDraggable=!0,this.#d5?.abort(),this.#d5=null,this.div.focus({preventScroll:!0}),this.isEditing=!1,this.parent.div.classList.add("freetextEditing"))}focusin(a){this._focusEventsAllowed&&(super.focusin(a),a.target!==this.editorDiv&&this.editorDiv.focus())}onceAdded(a){this.width||(this.enableEditMode(),a&&this.editorDiv.focus(),this._initialOptions?.isCentered&&this.center(),this._initialOptions=null)}isEmpty(){return!this.editorDiv||""===this.editorDiv.innerText.trim()}remove(){this.isEditing=!1,this.parent&&(this.parent.setEditingState(!0),this.parent.div.classList.add("freetextEditing")),super.remove()}#d9(){let a=[];this.editorDiv.normalize();let b=null;for(let c of this.editorDiv.childNodes)(b?.nodeType!==Node.TEXT_NODE||"BR"!==c.nodeName)&&(a.push(cw.#ea(c)),b=c);return a.join("\n")}#d8(){let a,[b,c]=this.parentDimensions;if(this.isAttachedToDOM)a=this.div.getBoundingClientRect();else{let{currentLayer:b,div:c}=this,d=c.style.display,e=c.classList.contains("hidden");c.classList.remove("hidden"),c.style.display="hidden",b.div.append(this.div),a=c.getBoundingClientRect(),c.remove(),c.style.display=d,c.classList.toggle("hidden",e)}this.rotation%180==this.parentRotation%180?(this.width=a.width/b,this.height=a.height/c):(this.width=a.height/b,this.height=a.width/c),this.fixAndSetPosition()}commit(){if(!this.isInEditMode())return;super.commit(),this.disableEditMode();let a=this.#d3,b=this.#d3=this.#d9().trimEnd();if(a===b)return;let c=a=>{(this.#d3=a,a)?(this.#eb(),this._uiManager.rebuild(this),this.#d8()):this.remove()};this.addCommands({cmd:()=>{c(b)},undo:()=>{c(a)},mustExec:!1}),this.#d8()}shouldGetKeyboardEvents(){return this.isInEditMode()}enterInEditMode(){this.enableEditMode(),this.editorDiv.focus()}dblclick(a){this.enterInEditMode()}keydown(a){a.target===this.div&&"Enter"===a.key&&(this.enterInEditMode(),a.preventDefault())}editorDivKeydown(a){cw._keyboardManager.exec(this,a)}editorDivFocus(a){this.isEditing=!0}editorDivBlur(a){this.isEditing=!1}editorDivInput(a){this.parent.div.classList.toggle("freetextEditing",this.isEmpty())}disableEditing(){this.editorDiv.setAttribute("role","comment"),this.editorDiv.removeAttribute("aria-multiline")}enableEditing(){this.editorDiv.setAttribute("role","textbox"),this.editorDiv.setAttribute("aria-multiline",!0)}render(){let a,b;if(this.div)return this.div;this.width&&(a=this.x,b=this.y),super.render(),this.editorDiv=document.createElement("div"),this.editorDiv.className="internal",this.editorDiv.setAttribute("id",this.#d4),this.editorDiv.setAttribute("data-l10n-id","pdfjs-free-text2"),this.editorDiv.setAttribute("data-l10n-attrs","default-content"),this.enableEditing(),this.editorDiv.contentEditable=!0;let{style:c}=this.editorDiv;if(c.fontSize=`calc(${this.#dM}px * var(--scale-factor))`,c.color=this.#dz,this.div.append(this.editorDiv),this.overlayDiv=document.createElement("div"),this.overlayDiv.classList.add("overlay","enabled"),this.div.append(this.overlayDiv),aj(this,this.div,["dblclick","keydown"]),this.width){let[c,d]=this.parentDimensions;if(this.annotationElementId){let e,f,{position:g}=this._initialData,[h,i]=this.getInitialTranslation();[h,i]=this.pageTranslationToScreen(h,i);let[j,k]=this.pageDimensions,[l,m]=this.pageTranslation;switch(this.rotation){case 0:e=a+(g[0]-l)/j,f=b+this.height-(g[1]-m)/k;break;case 90:e=a+(g[0]-l)/j,f=b-(g[1]-m)/k,[h,i]=[i,-h];break;case 180:e=a-this.width+(g[0]-l)/j,f=b-(g[1]-m)/k,[h,i]=[-h,-i];break;case 270:e=a+(g[0]-l-this.height*k)/j,f=b+(g[1]-m-this.width*j)/k,[h,i]=[-i,h]}this.setAt(e*c,f*d,h,i)}else this.setAt(a*c,b*d,this.width*c,this.height*d);this.#eb(),this._isDraggable=!0,this.editorDiv.contentEditable=!1}else this._isDraggable=!1,this.editorDiv.contentEditable=!0;return this.div}static #ea(a){return(a.nodeType===Node.TEXT_NODE?a.nodeValue:a.innerText).replaceAll(cv,"")}editorDivPaste(a){let b=a.clipboardData||window.clipboardData,{types:c}=b;if(1===c.length&&"text/plain"===c[0])return;a.preventDefault();let d=cw.#ec(b.getData("text")||"").replaceAll(cv,"\n");if(!d)return;let e=window.getSelection();if(!e.rangeCount)return;this.editorDiv.normalize(),e.deleteFromDocument();let f=e.getRangeAt(0);if(!d.includes("\n")){f.insertNode(document.createTextNode(d)),this.editorDiv.normalize(),e.collapseToStart();return}let{startContainer:g,startOffset:h}=f,i=[],j=[];if(g.nodeType===Node.TEXT_NODE){let a=g.parentElement;if(j.push(g.nodeValue.slice(h).replaceAll(cv,"")),a!==this.editorDiv){let b=i;for(let c of this.editorDiv.childNodes){if(c===a){b=j;continue}b.push(cw.#ea(c))}}i.push(g.nodeValue.slice(0,h).replaceAll(cv,""))}else if(g===this.editorDiv){let a=i,b=0;for(let c of this.editorDiv.childNodes)b++===h&&(a=j),a.push(cw.#ea(c))}this.#d3=`${i.join("\n")}${d}${j.join("\n")}`,this.#eb();let k=new Range,l=i.reduce((a,b)=>a+b.length,0);for(let{firstChild:a}of this.editorDiv.childNodes)if(a.nodeType===Node.TEXT_NODE){let b=a.nodeValue.length;if(l<=b){k.setStart(a,l),k.setEnd(a,l);break}l-=b}e.removeAllRanges(),e.addRange(k)}#eb(){if(this.editorDiv.replaceChildren(),this.#d3)for(let a of this.#d3.split("\n")){let b=document.createElement("div");b.append(a?document.createTextNode(a):document.createElement("br")),this.editorDiv.append(b)}}#ed(){return this.#d3.replaceAll("\xa0"," ")}static #ec(a){return a.replaceAll(" ","\xa0")}get contentDiv(){return this.editorDiv}static async deserialize(a,b,c){let d=null;if(a instanceof cg){let{data:{defaultAppearanceData:{fontSize:b,fontColor:c},rect:e,rotation:f,id:g,popupRef:h},textContent:i,textPosition:k,parent:{page:{pageNumber:l}}}=a;if(!i||0===i.length)return null;d=a={annotationType:j.FREETEXT,color:Array.from(c),fontSize:b,value:i.join("\n"),position:k,pageIndex:l-1,rect:e.slice(0),rotation:f,id:g,deleted:!1,popupRef:h}}let e=await super.deserialize(a,b,c);return e.#dM=a.fontSize,e.#dz=K.makeHexColor(...a.color),e.#d3=cw.#ec(a.value),e.annotationElementId=a.id||null,e._initialData=d,e}serialize(a=!1){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();let b=cw._internalPadding*this.parentScale,c=this.getRect(b,b),d=as._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:this.#dz),e={annotationType:j.FREETEXT,color:d,fontSize:this.#dM,value:this.#ed(),pageIndex:this.pageIndex,rect:c,rotation:this.rotation,structTreeParentId:this._structTreeParentId};return a?e:this.annotationElementId&&!this.#ee(e)?null:(e.id=this.annotationElementId,e)}#ee(a){let{value:b,fontSize:c,color:d,pageIndex:e}=this._initialData;return this._hasBeenMoved||a.value!==b||a.fontSize!==c||a.color.some((a,b)=>a!==d[b])||a.pageIndex!==e}renderAnnotationElement(a){let b=super.renderAnnotationElement(a);if(this.deleted)return b;let{style:c}=b;for(let a of(c.fontSize=`calc(${this.#dM}px * var(--scale-factor))`,c.color=this.#dz,b.replaceChildren(),this.#d3.split("\n"))){let c=document.createElement("div");c.append(a?document.createTextNode(a):document.createElement("br")),b.append(c)}let d=cw._internalPadding*this.parentScale;return a.updateEdited({rect:this.getRect(d,d),popupContent:this.#d3}),b}resetAnnotationElement(a){super.resetAnnotationElement(a),a.resetEdited()}}class cx{static PRECISION=1e-4;toSVGPath(){t("Abstract method `toSVGPath` must be implemented.")}get box(){t("Abstract getter `box` must be implemented.")}serialize(a,b){t("Abstract method `serialize` must be implemented.")}static _rescale(a,b,c,d,e,f){f||=new Float32Array(a.length);for(let g=0,h=a.length;g<h;g+=2)f[g]=b+a[g]*d,f[g+1]=c+a[g+1]*e;return f}static _rescaleAndSwap(a,b,c,d,e,f){f||=new Float32Array(a.length);for(let g=0,h=a.length;g<h;g+=2)f[g]=b+a[g+1]*d,f[g+1]=c+a[g]*e;return f}static _translate(a,b,c,d){d||=new Float32Array(a.length);for(let e=0,f=a.length;e<f;e+=2)d[e]=b+a[e],d[e+1]=c+a[e+1];return d}static svgRound(a){return Math.round(1e4*a)}static _normalizePoint(a,b,c,d,e){switch(e){case 90:return[1-b/c,a/d];case 180:return[1-a/c,1-b/d];case 270:return[b/c,1-a/d];default:return[a/c,b/d]}}static _normalizePagePoint(a,b,c){switch(c){case 90:return[1-b,a];case 180:return[1-a,1-b];case 270:return[b,1-a];default:return[a,b]}}static createBezierPoints(a,b,c,d,e,f){return[(a+5*c)/6,(b+5*d)/6,(5*c+e)/6,(5*d+f)/6,(c+e)/2,(d+f)/2]}}class cy{#ef;#eg=[];#eh;#ei;#ej=[];#ek=new Float32Array(18);#el;#em;#en;#eo;#ep;#eq;#er=[];static #es=8;static #et=2;static #eu=cy.#es+cy.#et;constructor({x:a,y:b},c,d,e,f,g=0){this.#ef=c,this.#eq=e*d,this.#ei=f,this.#ek.set([NaN,NaN,NaN,NaN,a,b],6),this.#eh=g,this.#eo=cy.#es*d,this.#en=cy.#eu*d,this.#ep=d,this.#er.push(a,b)}isEmpty(){return isNaN(this.#ek[8])}#ev(){let a=this.#ek.subarray(4,6),b=this.#ek.subarray(16,18),[c,d,e,f]=this.#ef;return[(this.#el+(a[0]-b[0])/2-c)/e,(this.#em+(a[1]-b[1])/2-d)/f,(this.#el+(b[0]-a[0])/2-c)/e,(this.#em+(b[1]-a[1])/2-d)/f]}add({x:a,y:b}){this.#el=a,this.#em=b;let[c,d,e,f]=this.#ef,[g,h,i,j]=this.#ek.subarray(8,12),k=a-i,l=b-j,m=Math.hypot(k,l);if(m<this.#en)return!1;let n=m-this.#eo,o=n/m,p=o*k,q=o*l,r=g,s=h;g=i,h=j,i+=p,j+=q,this.#er?.push(a,b);let t=-q/n*this.#eq,u=p/n*this.#eq;return(this.#ek.set(this.#ek.subarray(2,8),0),this.#ek.set([i+t,j+u],4),this.#ek.set(this.#ek.subarray(14,18),12),this.#ek.set([i-t,j-u],16),isNaN(this.#ek[6]))?(0===this.#ej.length&&(this.#ek.set([g+t,h+u],2),this.#ej.push(NaN,NaN,NaN,NaN,(g+t-c)/e,(h+u-d)/f),this.#ek.set([g-t,h-u],14),this.#eg.push(NaN,NaN,NaN,NaN,(g-t-c)/e,(h-u-d)/f)),this.#ek.set([r,s,g,h,i,j],6),!this.isEmpty()):((this.#ek.set([r,s,g,h,i,j],6),Math.abs(Math.atan2(s-h,r-g)-Math.atan2(q,p))<Math.PI/2)?([g,h,i,j]=this.#ek.subarray(2,6),this.#ej.push(NaN,NaN,NaN,NaN,((g+i)/2-c)/e,((h+j)/2-d)/f),[g,h,r,s]=this.#ek.subarray(14,18),this.#eg.push(NaN,NaN,NaN,NaN,((r+g)/2-c)/e,((s+h)/2-d)/f)):([r,s,g,h,i,j]=this.#ek.subarray(0,6),this.#ej.push(((r+5*g)/6-c)/e,((s+5*h)/6-d)/f,((5*g+i)/6-c)/e,((5*h+j)/6-d)/f,((g+i)/2-c)/e,((h+j)/2-d)/f),[i,j,g,h,r,s]=this.#ek.subarray(12,18),this.#eg.push(((r+5*g)/6-c)/e,((s+5*h)/6-d)/f,((5*g+i)/6-c)/e,((5*h+j)/6-d)/f,((g+i)/2-c)/e,((h+j)/2-d)/f)),!0)}toSVGPath(){if(this.isEmpty())return"";let a=this.#ej,b=this.#eg;if(isNaN(this.#ek[6])&&!this.isEmpty())return this.#ew();let c=[];c.push(`M${a[4]} ${a[5]}`);for(let b=6;b<a.length;b+=6)isNaN(a[b])?c.push(`L${a[b+4]} ${a[b+5]}`):c.push(`C${a[b]} ${a[b+1]} ${a[b+2]} ${a[b+3]} ${a[b+4]} ${a[b+5]}`);this.#ex(c);for(let a=b.length-6;a>=6;a-=6)isNaN(b[a])?c.push(`L${b[a+4]} ${b[a+5]}`):c.push(`C${b[a]} ${b[a+1]} ${b[a+2]} ${b[a+3]} ${b[a+4]} ${b[a+5]}`);return this.#ey(c),c.join(" ")}#ew(){let[a,b,c,d]=this.#ef,[e,f,g,h]=this.#ev();return`M${(this.#ek[2]-a)/c} ${(this.#ek[3]-b)/d} L${(this.#ek[4]-a)/c} ${(this.#ek[5]-b)/d} L${e} ${f} L${g} ${h} L${(this.#ek[16]-a)/c} ${(this.#ek[17]-b)/d} L${(this.#ek[14]-a)/c} ${(this.#ek[15]-b)/d} Z`}#ey(a){let b=this.#eg;a.push(`L${b[4]} ${b[5]} Z`)}#ex(a){let[b,c,d,e]=this.#ef,f=this.#ek.subarray(4,6),g=this.#ek.subarray(16,18),[h,i,j,k]=this.#ev();a.push(`L${(f[0]-b)/d} ${(f[1]-c)/e} L${h} ${i} L${j} ${k} L${(g[0]-b)/d} ${(g[1]-c)/e}`)}newFreeDrawOutline(a,b,c,d,e,f){return new cz(a,b,c,d,e,f)}getOutlines(){let a=this.#ej,b=this.#eg,c=this.#ek,[d,e,f,g]=this.#ef,h=new Float32Array((this.#er?.length??0)+2);for(let a=0,b=h.length-2;a<b;a+=2)h[a]=(this.#er[a]-d)/f,h[a+1]=(this.#er[a+1]-e)/g;if(h[h.length-2]=(this.#el-d)/f,h[h.length-1]=(this.#em-e)/g,isNaN(c[6])&&!this.isEmpty())return this.#ez(h);let i=new Float32Array(this.#ej.length+24+this.#eg.length),j=a.length;for(let b=0;b<j;b+=2){if(isNaN(a[b])){i[b]=i[b+1]=NaN;continue}i[b]=a[b],i[b+1]=a[b+1]}j=this.#eA(i,j);for(let a=b.length-6;a>=6;a-=6)for(let c=0;c<6;c+=2){if(isNaN(b[a+c])){i[j]=i[j+1]=NaN,j+=2;continue}i[j]=b[a+c],i[j+1]=b[a+c+1],j+=2}return this.#eB(i,j),this.newFreeDrawOutline(i,h,this.#ef,this.#ep,this.#eh,this.#ei)}#ez(a){let b=this.#ek,[c,d,e,f]=this.#ef,[g,h,i,j]=this.#ev(),k=new Float32Array(36);return k.set([NaN,NaN,NaN,NaN,(b[2]-c)/e,(b[3]-d)/f,NaN,NaN,NaN,NaN,(b[4]-c)/e,(b[5]-d)/f,NaN,NaN,NaN,NaN,g,h,NaN,NaN,NaN,NaN,i,j,NaN,NaN,NaN,NaN,(b[16]-c)/e,(b[17]-d)/f,NaN,NaN,NaN,NaN,(b[14]-c)/e,(b[15]-d)/f],0),this.newFreeDrawOutline(k,a,this.#ef,this.#ep,this.#eh,this.#ei)}#eB(a,b){let c=this.#eg;return a.set([NaN,NaN,NaN,NaN,c[4],c[5]],b),b+=6}#eA(a,b){let c=this.#ek.subarray(4,6),d=this.#ek.subarray(16,18),[e,f,g,h]=this.#ef,[i,j,k,l]=this.#ev();return a.set([NaN,NaN,NaN,NaN,(c[0]-e)/g,(c[1]-f)/h,NaN,NaN,NaN,NaN,i,j,NaN,NaN,NaN,NaN,k,l,NaN,NaN,NaN,NaN,(d[0]-e)/g,(d[1]-f)/h],b),b+=24}}class cz extends cx{#ef;#eC=new Float32Array(4);#eh;#ei;#er;#ep;#eD;constructor(a,b,c,d,e,f){super(),this.#eD=a,this.#er=b,this.#ef=c,this.#ep=d,this.#eh=e,this.#ei=f,this.lastPoint=[NaN,NaN],this.#eE(f);const[g,h,i,j]=this.#eC;for(let b=0,c=a.length;b<c;b+=2)a[b]=(a[b]-g)/i,a[b+1]=(a[b+1]-h)/j;for(let a=0,c=b.length;a<c;a+=2)b[a]=(b[a]-g)/i,b[a+1]=(b[a+1]-h)/j}toSVGPath(){let a=[`M${this.#eD[4]} ${this.#eD[5]}`];for(let b=6,c=this.#eD.length;b<c;b+=6){if(isNaN(this.#eD[b])){a.push(`L${this.#eD[b+4]} ${this.#eD[b+5]}`);continue}a.push(`C${this.#eD[b]} ${this.#eD[b+1]} ${this.#eD[b+2]} ${this.#eD[b+3]} ${this.#eD[b+4]} ${this.#eD[b+5]}`)}return a.push("Z"),a.join(" ")}serialize([a,b,c,d],e){let f,g,h=c-a,i=d-b;switch(e){case 0:f=cx._rescale(this.#eD,a,d,h,-i),g=cx._rescale(this.#er,a,d,h,-i);break;case 90:f=cx._rescaleAndSwap(this.#eD,a,b,h,i),g=cx._rescaleAndSwap(this.#er,a,b,h,i);break;case 180:f=cx._rescale(this.#eD,c,b,-h,i),g=cx._rescale(this.#er,c,b,-h,i);break;case 270:f=cx._rescaleAndSwap(this.#eD,c,d,-h,-i),g=cx._rescaleAndSwap(this.#er,c,d,-h,-i)}return{outline:Array.from(f),points:[Array.from(g)]}}#eE(a){let b=this.#eD,c=b[4],d=b[5],e=c,f=d,g=c,h=d,i=c,j=d,k=a?Math.max:Math.min;for(let a=6,l=b.length;a<l;a+=6){if(isNaN(b[a]))e=Math.min(e,b[a+4]),f=Math.min(f,b[a+5]),g=Math.max(g,b[a+4]),h=Math.max(h,b[a+5]),j<b[a+5]?(i=b[a+4],j=b[a+5]):j===b[a+5]&&(i=k(i,b[a+4]));else{let l=K.bezierBoundingBox(c,d,...b.slice(a,a+6));e=Math.min(e,l[0]),f=Math.min(f,l[1]),g=Math.max(g,l[2]),h=Math.max(h,l[3]),j<l[3]?(i=l[2],j=l[3]):j===l[3]&&(i=k(i,l[2]))}c=b[a+4],d=b[a+5]}let l=this.#eC;l[0]=e-this.#eh,l[1]=f-this.#eh,l[2]=g-e+2*this.#eh,l[3]=h-f+2*this.#eh,this.lastPoint=[i,j]}get box(){return this.#eC}newOutliner(a,b,c,d,e,f=0){return new cy(a,b,c,d,e,f)}getNewOutline(a,b){let[c,d,e,f]=this.#eC,[g,h,i,j]=this.#ef,k=e*i,l=f*j,m=c*i+g,n=d*j+h,o=this.newOutliner({x:this.#er[0]*k+m,y:this.#er[1]*l+n},this.#ef,this.#ep,a,this.#ei,b??this.#eh);for(let a=2;a<this.#er.length;a+=2)o.add({x:this.#er[a]*k+m,y:this.#er[a+1]*l+n});return o.getOutlines()}}class cA{#ef;#eF;#eG=[];#eH=[];constructor(a,b=0,c=0,d=!0){let e=1/0,f=-1/0,g=1/0,h=-1/0;for(const{x:c,y:d,width:i,height:j}of a){const a=1e-4*Math.floor((c-b)/1e-4),k=1e-4*Math.ceil((c+i+b)/1e-4),l=1e-4*Math.floor((d-b)/1e-4),m=1e-4*Math.ceil((d+j+b)/1e-4),n=[a,l,m,!0],o=[k,l,m,!1];this.#eG.push(n,o),e=Math.min(e,a),f=Math.max(f,k),g=Math.min(g,l),h=Math.max(h,m)}const i=f-e+2*c,j=h-g+2*c,k=e-c,l=g-c,m=this.#eG.at(d?-1:-2),n=[m[0],m[2]];for(const a of this.#eG){const[b,c,d]=a;a[0]=(b-k)/i,a[1]=(c-l)/j,a[2]=(d-l)/j}this.#ef=new Float32Array([k,l,i,j]),this.#eF=n}getOutlines(){this.#eG.sort((a,b)=>a[0]-b[0]||a[1]-b[1]||a[2]-b[2]);let a=[];for(let b of this.#eG)b[3]?(a.push(...this.#eI(b)),this.#eJ(b)):(this.#eK(b),a.push(...this.#eI(b)));return this.#eL(a)}#eL(a){let b,c=[],d=new Set;for(let b of a){let[a,d,e]=b;c.push([a,d,b],[a,e,b])}c.sort((a,b)=>a[1]-b[1]||a[0]-b[0]);for(let a=0,b=c.length;a<b;a+=2){let b=c[a][2],e=c[a+1][2];b.push(e),e.push(b),d.add(b),d.add(e)}let e=[];for(;d.size>0;){let a=d.values().next().value,[c,f,g,h,i]=a;d.delete(a);let j=c,k=f;for(b=[c,g],e.push(b);;){let a;if(d.has(h))a=h;else if(d.has(i))a=i;else break;d.delete(a),[c,f,g,h,i]=a,j!==c&&(b.push(j,k,c,k===f?f:g),j=c),k=k===f?g:f}b.push(j,k)}return new cB(e,this.#ef,this.#eF)}#eM(a){let b=this.#eH,c=0,d=b.length-1;for(;c<=d;){let e=c+d>>1,f=b[e][0];if(f===a)return e;f<a?c=e+1:d=e-1}return d+1}#eJ([,a,b]){let c=this.#eM(a);this.#eH.splice(c,0,[a,b])}#eK([,a,b]){let c=this.#eM(a);for(let d=c;d<this.#eH.length;d++){let[c,e]=this.#eH[d];if(c!==a)break;if(c===a&&e===b)return void this.#eH.splice(d,1)}for(let d=c-1;d>=0;d--){let[c,e]=this.#eH[d];if(c!==a)break;if(c===a&&e===b)return void this.#eH.splice(d,1)}}#eI(a){let[b,c,d]=a,e=[[b,c,d]],f=this.#eM(d);for(let a=0;a<f;a++){let[c,d]=this.#eH[a];for(let a=0,f=e.length;a<f;a++){let[,g,h]=e[a];if(!(d<=g)&&!(h<=c)){if(g>=c){if(h>d)e[a][1]=d;else{if(1===f)return[];e.splice(a,1),a--,f--}continue}e[a][2]=c,h>d&&e.push([b,d,h])}}}return e}}class cB extends cx{#ef;#eN;constructor(a,b,c){super(),this.#eN=a,this.#ef=b,this.lastPoint=c}toSVGPath(){let a=[];for(let b of this.#eN){let[c,d]=b;a.push(`M${c} ${d}`);for(let e=2;e<b.length;e+=2){let f=b[e],g=b[e+1];f===c?(a.push(`V${g}`),d=g):g===d&&(a.push(`H${f}`),c=f)}a.push("Z")}return a.join(" ")}serialize([a,b,c,d],e){let f=[],g=c-a,h=d-b;for(let b of this.#eN){let c=Array(b.length);for(let e=0;e<b.length;e+=2)c[e]=a+b[e]*g,c[e+1]=d-b[e+1]*h;f.push(c)}return f}get box(){return this.#ef}get classNamesForOutlining(){return["highlightOutline"]}}class cC extends cy{newFreeDrawOutline(a,b,c,d,e,f){return new cD(a,b,c,d,e,f)}}class cD extends cz{newOutliner(a,b,c,d,e,f=0){return new cC(a,b,c,d,e,f)}}class cE{#eO=null;#eP=null;#eQ;#eR=null;#eS=!1;#eT=!1;#f=null;#eU;#eV=null;#p=null;#eW;static #eX=null;static get _keyboardManager(){return w(this,"_keyboardManager",new an([[["Escape","mac+Escape"],cE.prototype._hideDropdownFromKeyboard],[[" ","mac+ "],cE.prototype._colorSelectFromKeyboard],[["ArrowDown","ArrowRight","mac+ArrowDown","mac+ArrowRight"],cE.prototype._moveToNext],[["ArrowUp","ArrowLeft","mac+ArrowUp","mac+ArrowLeft"],cE.prototype._moveToPrevious],[["Home","mac+Home"],cE.prototype._moveToBeginning],[["End","mac+End"],cE.prototype._moveToEnd]]))}constructor({editor:a=null,uiManager:b=null}){a?(this.#eT=!1,this.#eW=k.HIGHLIGHT_COLOR,this.#f=a):(this.#eT=!0,this.#eW=k.HIGHLIGHT_DEFAULT_COLOR),this.#p=a?._uiManager||b,this.#eU=this.#p._eventBus,this.#eQ=a?.color||this.#p?.highlightColors.values().next().value||"#FFFF98",cE.#eX||=Object.freeze({blue:"pdfjs-editor-colorpicker-blue",green:"pdfjs-editor-colorpicker-green",pink:"pdfjs-editor-colorpicker-pink",red:"pdfjs-editor-colorpicker-red",yellow:"pdfjs-editor-colorpicker-yellow"})}renderButton(){let a=this.#eO=document.createElement("button");a.className="colorPicker",a.tabIndex="0",a.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-button"),a.setAttribute("aria-haspopup",!0);let b=this.#p._signal;a.addEventListener("click",this.#eY.bind(this),{signal:b}),a.addEventListener("keydown",this.#ds.bind(this),{signal:b});let c=this.#eP=document.createElement("span");return c.className="swatch",c.setAttribute("aria-hidden",!0),c.style.backgroundColor=this.#eQ,a.append(c),a}renderMainDropdown(){let a=this.#eR=this.#eZ();return a.setAttribute("aria-orientation","horizontal"),a.setAttribute("aria-labelledby","highlightColorPickerLabel"),a}#eZ(){let a=document.createElement("div"),b=this.#p._signal;for(let[c,d]of(a.addEventListener("contextmenu",$,{signal:b}),a.className="dropdown",a.role="listbox",a.setAttribute("aria-multiselectable",!1),a.setAttribute("aria-orientation","vertical"),a.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-dropdown"),this.#p.highlightColors)){let e=document.createElement("button");e.tabIndex="0",e.role="option",e.setAttribute("data-color",d),e.title=c,e.setAttribute("data-l10n-id",cE.#eX[c]);let f=document.createElement("span");e.append(f),f.className="swatch",f.style.backgroundColor=d,e.setAttribute("aria-selected",d===this.#eQ),e.addEventListener("click",this.#e$.bind(this,d),{signal:b}),a.append(e)}return a.addEventListener("keydown",this.#ds.bind(this),{signal:b}),a}#e$(a,b){b.stopPropagation(),this.#eU.dispatch("switchannotationeditorparams",{source:this,type:this.#eW,value:a})}_colorSelectFromKeyboard(a){if(a.target===this.#eO)return void this.#eY(a);let b=a.target.getAttribute("data-color");b&&this.#e$(b,a)}_moveToNext(a){this.#e_?a.target===this.#eO?this.#eR.firstChild?.focus():a.target.nextSibling?.focus():this.#eY(a)}_moveToPrevious(a){if(a.target===this.#eR?.firstChild||a.target===this.#eO){this.#e_&&this._hideDropdownFromKeyboard();return}this.#e_||this.#eY(a),a.target.previousSibling?.focus()}_moveToBeginning(a){this.#e_?this.#eR.firstChild?.focus():this.#eY(a)}_moveToEnd(a){this.#e_?this.#eR.lastChild?.focus():this.#eY(a)}#ds(a){cE._keyboardManager.exec(this,a)}#eY(a){if(this.#e_)return void this.hideDropdown();if(this.#eS=0===a.detail,this.#eV||(this.#eV=new AbortController,window.addEventListener("pointerdown",this.#j.bind(this),{signal:this.#p.combinedSignal(this.#eV)})),this.#eR)return void this.#eR.classList.remove("hidden");let b=this.#eR=this.#eZ();this.#eO.append(b)}#j(a){this.#eR?.contains(a.target)||this.hideDropdown()}hideDropdown(){this.#eR?.classList.add("hidden"),this.#eV?.abort(),this.#eV=null}get #e_(){return this.#eR&&!this.#eR.classList.contains("hidden")}_hideDropdownFromKeyboard(){if(!this.#eT){if(!this.#e_)return void this.#f?.unselect();this.hideDropdown(),this.#eO.focus({preventScroll:!0,focusVisible:this.#eS})}}updateColor(a){if(this.#eP&&(this.#eP.style.backgroundColor=a),!this.#eR)return;let b=this.#p.highlightColors.values();for(let c of this.#eR.children)c.setAttribute("aria-selected",b.next().value===a)}destroy(){this.#eO?.remove(),this.#eO=null,this.#eP=null,this.#eR?.remove(),this.#eR=null}}class cF extends as{#e0=null;#e1=0;#e2;#e3=null;#e=null;#e4=null;#e5=null;#e6=0;#e7=null;#e8=null;#t=null;#e9=!1;#eF=null;#fa;#fb=null;#fc="";#eq;#fd="";static _defaultColor=null;static _defaultOpacity=1;static _defaultThickness=12;static _type="highlight";static _editorType=j.HIGHLIGHT;static _freeHighlightId=-1;static _freeHighlight=null;static _freeHighlightClipId="";static get _keyboardManager(){let a=cF.prototype;return w(this,"_keyboardManager",new an([[["ArrowLeft","mac+ArrowLeft"],a._moveCaret,{args:[0]}],[["ArrowRight","mac+ArrowRight"],a._moveCaret,{args:[1]}],[["ArrowUp","mac+ArrowUp"],a._moveCaret,{args:[2]}],[["ArrowDown","mac+ArrowDown"],a._moveCaret,{args:[3]}]]))}constructor(a){super({...a,name:"highlightEditor"}),this.color=a.color||cF._defaultColor,this.#eq=a.thickness||cF._defaultThickness,this.#fa=a.opacity||cF._defaultOpacity,this.#e2=a.boxes||null,this.#fd=a.methodOfCreation||"",this.#fc=a.text||"",this._isDraggable=!1,a.highlightId>-1?(this.#e9=!0,this.#fe(a),this.#ff()):this.#e2&&(this.#e0=a.anchorNode,this.#e1=a.anchorOffset,this.#e5=a.focusNode,this.#e6=a.focusOffset,this.#fg(),this.#ff(),this.rotate(this.rotation))}get telemetryInitialData(){return{action:"added",type:this.#e9?"free_highlight":"highlight",color:this._uiManager.highlightColorNames.get(this.color),thickness:this.#eq,methodOfCreation:this.#fd}}get telemetryFinalData(){return{type:"highlight",color:this._uiManager.highlightColorNames.get(this.color)}}static computeTelemetryFinalData(a){return{numberOfColors:a.get("color").size}}#fg(){let a=new cA(this.#e2,.001);this.#e8=a.getOutlines(),[this.x,this.y,this.width,this.height]=this.#e8.box;let b=new cA(this.#e2,.0025,.001,"ltr"===this._uiManager.direction);this.#e4=b.getOutlines();let{lastPoint:c}=this.#e4;this.#eF=[(c[0]-this.x)/this.width,(c[1]-this.y)/this.height]}#fe({highlightOutlines:a,highlightId:b,clipPathId:c}){if(this.#e8=a,this.#e4=a.getNewOutline(this.#eq/2+1.5,.0025),b>=0)this.#t=b,this.#e3=c,this.parent.drawLayer.finalizeDraw(b,{bbox:a.box,path:{d:a.toSVGPath()}}),this.#fb=this.parent.drawLayer.drawOutline({rootClass:{highlightOutline:!0,free:!0},bbox:this.#e4.box,path:{d:this.#e4.toSVGPath()}},!0);else if(this.parent){let b=this.parent.viewport.rotation;this.parent.drawLayer.updateProperties(this.#t,{bbox:cF.#fh(this.#e8.box,(b-this.rotation+360)%360),path:{d:a.toSVGPath()}}),this.parent.drawLayer.updateProperties(this.#fb,{bbox:cF.#fh(this.#e4.box,b),path:{d:this.#e4.toSVGPath()}})}let[d,e,f,g]=a.box;switch(this.rotation){case 0:this.x=d,this.y=e,this.width=f,this.height=g;break;case 90:{let[a,b]=this.parentDimensions;this.x=e,this.y=1-d,this.width=f*b/a,this.height=g*a/b;break}case 180:this.x=1-d,this.y=1-e,this.width=f,this.height=g;break;case 270:{let[a,b]=this.parentDimensions;this.x=1-e,this.y=d,this.width=f*b/a,this.height=g*a/b}}let{lastPoint:h}=this.#e4;this.#eF=[(h[0]-d)/f,(h[1]-e)/g]}static initialize(a,b){as.initialize(a,b),cF._defaultColor||=b.highlightColors?.values().next().value||"#fff066"}static updateDefaultParams(a,b){switch(a){case k.HIGHLIGHT_DEFAULT_COLOR:cF._defaultColor=b;break;case k.HIGHLIGHT_THICKNESS:cF._defaultThickness=b}}translateInPage(a,b){}get toolbarPosition(){return this.#eF}updateParams(a,b){switch(a){case k.HIGHLIGHT_COLOR:this.#d7(b);break;case k.HIGHLIGHT_THICKNESS:this.#fi(b)}}static get defaultPropertiesToUpdate(){return[[k.HIGHLIGHT_DEFAULT_COLOR,cF._defaultColor],[k.HIGHLIGHT_THICKNESS,cF._defaultThickness]]}get propertiesToUpdate(){return[[k.HIGHLIGHT_COLOR,this.color||cF._defaultColor],[k.HIGHLIGHT_THICKNESS,this.#eq||cF._defaultThickness],[k.HIGHLIGHT_FREE,this.#e9]]}#d7(a){let b=(a,b)=>{this.color=a,this.#fa=b,this.parent?.drawLayer.updateProperties(this.#t,{root:{fill:a,"fill-opacity":b}}),this.#e?.updateColor(a)},c=this.color,d=this.#fa;this.addCommands({cmd:b.bind(this,a,cF._defaultOpacity),undo:b.bind(this,c,d),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:k.HIGHLIGHT_COLOR,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"color_changed",color:this._uiManager.highlightColorNames.get(a)},!0)}#fi(a){let b=this.#eq,c=a=>{this.#eq=a,this.#fj(a)};this.addCommands({cmd:c.bind(this,a),undo:c.bind(this,b),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:k.INK_THICKNESS,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"thickness_changed",thickness:a},!0)}async addEditToolbar(){let a=await super.addEditToolbar();return a?(this._uiManager.highlightColors&&(this.#e=new cE({editor:this}),a.addColorPicker(this.#e)),a):null}disableEditing(){super.disableEditing(),this.div.classList.toggle("disabled",!0)}enableEditing(){super.enableEditing(),this.div.classList.toggle("disabled",!1)}fixAndSetPosition(){return super.fixAndSetPosition(this.#fk())}getBaseTranslation(){return[0,0]}getRect(a,b){return super.getRect(a,b,this.#fk())}onceAdded(a){this.annotationElementId||this.parent.addUndoableEditor(this),a&&this.div.focus()}remove(){this.#fl(),this._reportTelemetry({action:"deleted"}),super.remove()}rebuild(){!this.parent||(super.rebuild(),null!==this.div&&(this.#ff(),this.isAttachedToDOM||this.parent.add(this)))}setParent(a){let b=!1;this.parent&&!a?this.#fl():a&&(this.#ff(a),b=!this.parent&&this.div?.classList.contains("selectedEditor")),super.setParent(a),this.show(this._isVisible),b&&this.select()}#fj(a){if(!this.#e9)return;this.#fe({highlightOutlines:this.#e8.getNewOutline(a/2)}),this.fixAndSetPosition();let[b,c]=this.parentDimensions;this.setDims(this.width*b,this.height*c)}#fl(){null!==this.#t&&this.parent&&(this.parent.drawLayer.remove(this.#t),this.#t=null,this.parent.drawLayer.remove(this.#fb),this.#fb=null)}#ff(a=this.parent){null===this.#t&&({id:this.#t,clipPathId:this.#e3}=a.drawLayer.draw({bbox:this.#e8.box,root:{viewBox:"0 0 1 1",fill:this.color,"fill-opacity":this.#fa},rootClass:{highlight:!0,free:this.#e9},path:{d:this.#e8.toSVGPath()}},!1,!0),this.#fb=a.drawLayer.drawOutline({rootClass:{highlightOutline:!0,free:this.#e9},bbox:this.#e4.box,path:{d:this.#e4.toSVGPath()}},this.#e9),this.#e7&&(this.#e7.style.clipPath=this.#e3))}static #fh([a,b,c,d],e){switch(e){case 90:return[1-b-d,a,d,c];case 180:return[1-a-c,1-b-d,c,d];case 270:return[b,1-a-c,d,c]}return[a,b,c,d]}rotate(a){let b,{drawLayer:c}=this.parent;this.#e9?(a=(a-this.rotation+360)%360,b=cF.#fh(this.#e8.box,a)):b=cF.#fh([this.x,this.y,this.width,this.height],a),c.updateProperties(this.#t,{bbox:b,root:{"data-main-rotation":a}}),c.updateProperties(this.#fb,{bbox:cF.#fh(this.#e4.box,a),root:{"data-main-rotation":a}})}render(){if(this.div)return this.div;let a=super.render();this.#fc&&(a.setAttribute("aria-label",this.#fc),a.setAttribute("role","mark")),this.#e9?a.classList.add("free"):this.div.addEventListener("keydown",this.#fm.bind(this),{signal:this._uiManager._signal});let b=this.#e7=document.createElement("div");a.append(b),b.setAttribute("aria-hidden","true"),b.className="internal",b.style.clipPath=this.#e3;let[c,d]=this.parentDimensions;return this.setDims(this.width*c,this.height*d),aj(this,this.#e7,["pointerover","pointerleave"]),this.enableEditing(),a}pointerover(){this.isSelected||this.parent?.drawLayer.updateProperties(this.#fb,{rootClass:{hovered:!0}})}pointerleave(){this.isSelected||this.parent?.drawLayer.updateProperties(this.#fb,{rootClass:{hovered:!1}})}#fm(a){cF._keyboardManager.exec(this,a)}_moveCaret(a){switch(this.parent.unselect(this),a){case 0:case 2:this.#fn(!0);break;case 1:case 3:this.#fn(!1)}}#fn(a){if(!this.#e0)return;let b=window.getSelection();a?b.setPosition(this.#e0,this.#e1):b.setPosition(this.#e5,this.#e6)}select(){super.select(),this.#fb&&this.parent?.drawLayer.updateProperties(this.#fb,{rootClass:{hovered:!1,selected:!0}})}unselect(){super.unselect(),this.#fb&&(this.parent?.drawLayer.updateProperties(this.#fb,{rootClass:{selected:!1}}),this.#e9||this.#fn(!1))}get _mustFixPosition(){return!this.#e9}show(a=this._isVisible){super.show(a),this.parent&&(this.parent.drawLayer.updateProperties(this.#t,{rootClass:{hidden:!a}}),this.parent.drawLayer.updateProperties(this.#fb,{rootClass:{hidden:!a}}))}#fk(){return this.#e9?this.rotation:0}#fo(){if(this.#e9)return null;let[a,b]=this.pageDimensions,[c,d]=this.pageTranslation,e=this.#e2,f=new Float32Array(8*e.length),g=0;for(let{x:h,y:i,width:j,height:k}of e){let e=h*a+c,l=(1-i)*b+d;f[g]=f[g+4]=e,f[g+1]=f[g+3]=l,f[g+2]=f[g+6]=e+j*a,f[g+5]=f[g+7]=l-k*b,g+=8}return f}#fp(a){return this.#e8.serialize(a,this.#fk())}static startHighlighting(a,b,{target:c,x:d,y:e}){let{x:f,y:g,width:h,height:i}=c.getBoundingClientRect(),j=new AbortController,k=a.combinedSignal(j),l=b=>{j.abort(),this.#fq(a,b)};window.addEventListener("blur",l,{signal:k}),window.addEventListener("pointerup",l,{signal:k}),window.addEventListener("pointerdown",_,{capture:!0,passive:!1,signal:k}),window.addEventListener("contextmenu",$,{signal:k}),c.addEventListener("pointermove",this.#fr.bind(this,a),{signal:k}),this._freeHighlight=new cC({x:d,y:e},[f,g,h,i],a.scale,this._defaultThickness/2,b,.001),{id:this._freeHighlightId,clipPathId:this._freeHighlightClipId}=a.drawLayer.draw({bbox:[0,0,1,1],root:{viewBox:"0 0 1 1",fill:this._defaultColor,"fill-opacity":this._defaultOpacity},rootClass:{highlight:!0,free:!0},path:{d:this._freeHighlight.toSVGPath()}},!0,!0)}static #fr(a,b){this._freeHighlight.add(b)&&a.drawLayer.updateProperties(this._freeHighlightId,{path:{d:this._freeHighlight.toSVGPath()}})}static #fq(a,b){this._freeHighlight.isEmpty()?a.drawLayer.remove(this._freeHighlightId):a.createAndAddNewEditor(b,!1,{highlightId:this._freeHighlightId,highlightOutlines:this._freeHighlight.getOutlines(),clipPathId:this._freeHighlightClipId,methodOfCreation:"main_toolbar"}),this._freeHighlightId=-1,this._freeHighlight=null,this._freeHighlightClipId=""}static async deserialize(a,b,c){let d=null;if(a instanceof co){let{data:{quadPoints:b,rect:c,rotation:e,id:f,color:g,opacity:h,popupRef:i},parent:{page:{pageNumber:k}}}=a;d=a={annotationType:j.HIGHLIGHT,color:Array.from(g),opacity:h,quadPoints:b,boxes:null,pageIndex:k-1,rect:c.slice(0),rotation:e,id:f,deleted:!1,popupRef:i}}else if(a instanceof cn){let{data:{inkLists:b,rect:c,rotation:e,id:f,color:g,borderStyle:{rawWidth:h},popupRef:i},parent:{page:{pageNumber:k}}}=a;d=a={annotationType:j.HIGHLIGHT,color:Array.from(g),thickness:h,inkLists:b,boxes:null,pageIndex:k-1,rect:c.slice(0),rotation:e,id:f,deleted:!1,popupRef:i}}let{color:e,quadPoints:f,inkLists:g,opacity:h}=a,i=await super.deserialize(a,b,c);i.color=K.makeHexColor(...e),i.#fa=h||1,g&&(i.#eq=a.thickness),i.annotationElementId=a.id||null,i._initialData=d;let[k,l]=i.pageDimensions,[m,n]=i.pageTranslation;if(f){let a=i.#e2=[];for(let b=0;b<f.length;b+=8)a.push({x:(f[b]-m)/k,y:1-(f[b+1]-n)/l,width:(f[b+2]-f[b])/k,height:(f[b+1]-f[b+5])/l});i.#fg(),i.#ff(),i.rotate(i.rotation)}else if(g){i.#e9=!0;let a=g[0],c={x:a[0]-m,y:l-(a[1]-n)},d=new cC(c,[0,0,k,l],1,i.#eq/2,!0,.001);for(let b=0,e=a.length;b<e;b+=2)c.x=a[b]-m,c.y=l-(a[b+1]-n),d.add(c);let{id:e,clipPathId:f}=b.drawLayer.draw({bbox:[0,0,1,1],root:{viewBox:"0 0 1 1",fill:i.color,"fill-opacity":i._defaultOpacity},rootClass:{highlight:!0,free:!0},path:{d:d.toSVGPath()}},!0,!0);i.#fe({highlightOutlines:d.getOutlines(),highlightId:e,clipPathId:f}),i.#ff()}return i}serialize(a=!1){if(this.isEmpty()||a)return null;if(this.deleted)return this.serializeDeleted();let b=this.getRect(0,0),c=as._colorManager.convert(this.color),d={annotationType:j.HIGHLIGHT,color:c,opacity:this.#fa,thickness:this.#eq,quadPoints:this.#fo(),outlines:this.#fp(b),pageIndex:this.pageIndex,rect:b,rotation:this.#fk(),structTreeParentId:this._structTreeParentId};return this.annotationElementId&&!this.#ee(d)?null:(d.id=this.annotationElementId,d)}#ee(a){let{color:b}=this._initialData;return a.color.some((a,c)=>a!==b[c])}renderAnnotationElement(a){return a.updateEdited({rect:this.getRect(0,0)}),null}static canCreateNewEmptyEditor(){return!1}}class cG{#fs=Object.create(null);updateProperty(a,b){this[a]=b,this.updateSVGProperty(a,b)}updateProperties(a){if(a)for(let[b,c]of Object.entries(a))this.updateProperty(b,c)}updateSVGProperty(a,b){this.#fs[a]=b}toSVGProperties(){let a=this.#fs;return this.#fs=Object.create(null),{root:a}}reset(){this.#fs=Object.create(null)}updateAll(a=this){this.updateProperties(a)}clone(){t("Not implemented")}}class cH extends as{#ft=null;#fu;_drawId=null;static _currentDrawId=-1;static _currentParent=null;static #fv=null;static #fw=null;static #fx=null;static #fy=NaN;static #fz=null;static #fA=null;static #fB=NaN;static _INNER_MARGIN=3;constructor(a){super(a),this.#fu=a.mustBeCommitted||!1,a.drawOutlines&&(this.#fC(a),this.#ff())}#fC({drawOutlines:a,drawId:b,drawingOptions:c}){this.#ft=a,this._drawingOptions||=c,b>=0?(this._drawId=b,this.parent.drawLayer.finalizeDraw(b,a.defaultProperties)):this._drawId=this.#fD(a,this.parent),this.#fE(a.box)}#fD(a,b){let{id:c}=b.drawLayer.draw(cH._mergeSVGProperties(this._drawingOptions.toSVGProperties(),a.defaultSVGProperties),!1,!1);return c}static _mergeSVGProperties(a,b){let c=new Set(Object.keys(a));for(let[d,e]of Object.entries(b))c.has(d)?Object.assign(a[d],e):a[d]=e;return a}static getDefaultDrawingOptions(a){t("Not implemented")}static get typesMap(){t("Not implemented")}static get isDrawer(){return!0}static get supportMultipleDrawings(){return!1}static updateDefaultParams(a,b){let c=this.typesMap.get(a);c&&this._defaultDrawingOptions.updateProperty(c,b),this._currentParent&&(cH.#fv.updateProperty(c,b),this._currentParent.drawLayer.updateProperties(this._currentDrawId,this._defaultDrawingOptions.toSVGProperties()))}updateParams(a,b){let c=this.constructor.typesMap.get(a);c&&this._updateProperty(a,c,b)}static get defaultPropertiesToUpdate(){let a=[],b=this._defaultDrawingOptions;for(let[c,d]of this.typesMap)a.push([c,b[d]]);return a}get propertiesToUpdate(){let a=[],{_drawingOptions:b}=this;for(let[c,d]of this.constructor.typesMap)a.push([c,b[d]]);return a}_updateProperty(a,b,c){let d=this._drawingOptions,e=d[b],f=a=>{d.updateProperty(b,a);let c=this.#ft.updateProperty(b,a);c&&this.#fE(c),this.parent?.drawLayer.updateProperties(this._drawId,d.toSVGProperties())};this.addCommands({cmd:f.bind(this,c),undo:f.bind(this,e),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:a,overwriteIfSameType:!0,keepUndo:!0})}_onResizing(){this.parent?.drawLayer.updateProperties(this._drawId,cH._mergeSVGProperties(this.#ft.getPathResizingSVGProperties(this.#fF()),{bbox:this.#fG()}))}_onResized(){this.parent?.drawLayer.updateProperties(this._drawId,cH._mergeSVGProperties(this.#ft.getPathResizedSVGProperties(this.#fF()),{bbox:this.#fG()}))}_onTranslating(a,b){this.parent?.drawLayer.updateProperties(this._drawId,{bbox:this.#fG(a,b)})}_onTranslated(){this.parent?.drawLayer.updateProperties(this._drawId,cH._mergeSVGProperties(this.#ft.getPathTranslatedSVGProperties(this.#fF(),this.parentDimensions),{bbox:this.#fG()}))}_onStartDragging(){this.parent?.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!0}})}_onStopDragging(){this.parent?.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!1}})}commit(){super.commit(),this.disableEditMode(),this.disableEditing()}disableEditing(){super.disableEditing(),this.div.classList.toggle("disabled",!0)}enableEditing(){super.enableEditing(),this.div.classList.toggle("disabled",!1)}getBaseTranslation(){return[0,0]}get isResizable(){return!0}onceAdded(a){this.annotationElementId||this.parent.addUndoableEditor(this),this._isDraggable=!0,this.#fu&&(this.#fu=!1,this.commit(),this.parent.setSelected(this),a&&this.isOnScreen&&this.div.focus())}remove(){this.#fl(),super.remove()}rebuild(){!this.parent||(super.rebuild(),null!==this.div&&(this.#ff(),this.#fE(this.#ft.box),this.isAttachedToDOM||this.parent.add(this)))}setParent(a){let b=!1;this.parent&&!a?(this._uiManager.removeShouldRescale(this),this.#fl()):a&&(this._uiManager.addShouldRescale(this),this.#ff(a),b=!this.parent&&this.div?.classList.contains("selectedEditor")),super.setParent(a),b&&this.select()}#fl(){null!==this._drawId&&this.parent&&(this.parent.drawLayer.remove(this._drawId),this._drawId=null,this._drawingOptions.reset())}#ff(a=this.parent){if(null===this._drawId||this.parent!==a){if(null!==this._drawId)return void this.parent.drawLayer.updateParent(this._drawId,a.drawLayer);this._drawingOptions.updateAll(),this._drawId=this.#fD(this.#ft,a)}}#fH([a,b,c,d]){let{parentDimensions:[e,f],rotation:g}=this;switch(g){case 90:return[b,1-a,f/e*c,e/f*d];case 180:return[1-a,1-b,c,d];case 270:return[1-b,a,f/e*c,e/f*d];default:return[a,b,c,d]}}#fF(){let{x:a,y:b,width:c,height:d,parentDimensions:[e,f],rotation:g}=this;switch(g){case 90:return[1-b,a,e/f*c,f/e*d];case 180:return[1-a,1-b,c,d];case 270:return[b,1-a,e/f*c,f/e*d];default:return[a,b,c,d]}}#fE(a){if([this.x,this.y,this.width,this.height]=this.#fH(a),this.div){this.fixAndSetPosition();let[a,b]=this.parentDimensions;this.setDims(this.width*a,this.height*b)}this._onResized()}#fG(){let{x:a,y:b,width:c,height:d,rotation:e,parentRotation:f,parentDimensions:[g,h]}=this;switch((4*e+f)/90){case 1:return[1-b-d,a,d,c];case 2:return[1-a-c,1-b-d,c,d];case 3:return[b,1-a-c,d,c];case 4:return[a,b-g/h*c,h/g*d,g/h*c];case 5:return[1-b,a,g/h*c,h/g*d];case 6:return[1-a-h/g*d,1-b,h/g*d,g/h*c];case 7:return[b-g/h*c,1-a-h/g*d,g/h*c,h/g*d];case 8:return[a-c,b-d,c,d];case 9:return[1-b,a-c,d,c];case 10:return[1-a,1-b,c,d];case 11:return[b-d,1-a,d,c];case 12:return[a-h/g*d,b,h/g*d,g/h*c];case 13:return[1-b-g/h*c,a-h/g*d,g/h*c,h/g*d];case 14:return[1-a,1-b-g/h*c,h/g*d,g/h*c];case 15:return[b,1-a,g/h*c,h/g*d];default:return[a,b,c,d]}}rotate(){this.parent&&this.parent.drawLayer.updateProperties(this._drawId,cH._mergeSVGProperties({bbox:this.#fG()},this.#ft.updateRotation((this.parentRotation-this.rotation+360)%360)))}onScaleChanging(){this.parent&&this.#fE(this.#ft.updateParentDimensions(this.parentDimensions,this.parent.scale))}static onScaleChangingWhenDrawing(){}render(){if(this.div)return this.div;let a=super.render();a.classList.add("draw");let b=document.createElement("div");a.append(b),b.setAttribute("aria-hidden","true"),b.className="internal";let[c,d]=this.parentDimensions;return this.setDims(this.width*c,this.height*d),this._uiManager.addShouldRescale(this),this.disableEditing(),a}static createDrawerInstance(a,b,c,d,e){t("Not implemented")}static startDrawing(a,b,c,d){let{target:e,offsetX:f,offsetY:g,pointerId:h,pointerType:i}=d;if(cH.#fz&&cH.#fz!==i)return;let{viewport:{rotation:j}}=a,{width:k,height:l}=e.getBoundingClientRect(),m=cH.#fw=new AbortController,n=a.combinedSignal(m);(cH.#fy||=h,cH.#fz??=i,window.addEventListener("pointerup",a=>{cH.#fy===a.pointerId?this._endDraw(a):cH.#fA?.delete(a.pointerId)},{signal:n}),window.addEventListener("pointercancel",a=>{cH.#fy===a.pointerId?this._currentParent.endDrawingSession():cH.#fA?.delete(a.pointerId)},{signal:n}),window.addEventListener("pointerdown",a=>{cH.#fz===a.pointerType&&((cH.#fA||=new Set).add(a.pointerId),cH.#fv.isCancellable()&&(cH.#fv.removeLastElement(),cH.#fv.isEmpty()?this._currentParent.endDrawingSession(!0):this._endDraw(null)))},{capture:!0,passive:!1,signal:n}),window.addEventListener("contextmenu",$,{signal:n}),e.addEventListener("pointermove",this._drawMove.bind(this),{signal:n}),e.addEventListener("touchmove",a=>{a.timeStamp===cH.#fB&&_(a)},{signal:n}),a.toggleDrawing(),b._editorUndoBar?.hide(),cH.#fv)?a.drawLayer.updateProperties(this._currentDrawId,cH.#fv.startNew(f,g,k,l,j)):(b.updateUIForDefaultProperties(this),cH.#fv=this.createDrawerInstance(f,g,k,l,j),cH.#fx=this.getDefaultDrawingOptions(),this._currentParent=a,{id:this._currentDrawId}=a.drawLayer.draw(this._mergeSVGProperties(cH.#fx.toSVGProperties(),cH.#fv.defaultSVGProperties),!0,!1))}static _drawMove(a){if(cH.#fB=-1,!cH.#fv)return;let{offsetX:b,offsetY:c,pointerId:d}=a;if(cH.#fy===d){if(cH.#fA?.size>=1)return void this._endDraw(a);this._currentParent.drawLayer.updateProperties(this._currentDrawId,cH.#fv.add(b,c)),cH.#fB=a.timeStamp,_(a)}}static _cleanup(a){a&&(this._currentDrawId=-1,this._currentParent=null,cH.#fv=null,cH.#fx=null,cH.#fz=null,cH.#fB=NaN),cH.#fw&&(cH.#fw.abort(),cH.#fw=null,cH.#fy=NaN,cH.#fA=null)}static _endDraw(a){let b=this._currentParent;if(b){if(b.toggleDrawing(!0),this._cleanup(!1),a&&b.drawLayer.updateProperties(this._currentDrawId,cH.#fv.end(a.offsetX,a.offsetY)),this.supportMultipleDrawings){let a=cH.#fv,c=this._currentDrawId,d=a.getLastElement();b.addCommands({cmd:()=>{b.drawLayer.updateProperties(c,a.setLastElement(d))},undo:()=>{b.drawLayer.updateProperties(c,a.removeLastElement())},mustExec:!1,type:k.DRAW_STEP});return}this.endDrawing(!1)}}static endDrawing(a){let b=this._currentParent;if(!b)return null;if(b.toggleDrawing(!0),b.cleanUndoStack(k.DRAW_STEP),!cH.#fv.isEmpty()){let{pageDimensions:[c,d],scale:e}=b,f=b.createAndAddNewEditor({offsetX:0,offsetY:0},!1,{drawId:this._currentDrawId,drawOutlines:cH.#fv.getOutlines(c*e,d*e,e,this._INNER_MARGIN),drawingOptions:cH.#fx,mustBeCommitted:!a});return this._cleanup(!0),f}return b.drawLayer.remove(this._currentDrawId),this._cleanup(!0),null}createDrawingOptions(a){}static deserializeDraw(a,b,c,d,e,f){t("Not implemented")}static async deserialize(a,b,c){let{rawDims:{pageWidth:d,pageHeight:e,pageX:f,pageY:g}}=b.viewport,h=this.deserializeDraw(f,g,d,e,this._INNER_MARGIN,a),i=await super.deserialize(a,b,c);return i.createDrawingOptions(a),i.#fC({drawOutlines:h}),i.#ff(),i.onScaleChanging(),i.rotate(),i}serializeDraw(a){let[b,c]=this.pageTranslation,[d,e]=this.pageDimensions;return this.#ft.serialize([b,c,d,e],a)}renderAnnotationElement(a){return a.updateEdited({rect:this.getRect(0,0)}),null}static canCreateNewEmptyEditor(){return!1}}class cI{#ek=new Float64Array(6);#dQ;#fI;#cF;#eq;#er;#fJ="";#fK=0;#eN=new cJ;#fL;#fM;constructor(a,b,c,d,e,f){this.#fL=c,this.#fM=d,this.#cF=e,this.#eq=f,[a,b]=this.#fN(a,b);const g=this.#dQ=[NaN,NaN,NaN,NaN,a,b];this.#er=[a,b],this.#fI=[{line:g,points:this.#er}],this.#ek.set(g,0)}updateProperty(a,b){"stroke-width"===a&&(this.#eq=b)}#fN(a,b){return cx._normalizePoint(a,b,this.#fL,this.#fM,this.#cF)}isEmpty(){return!this.#fI||0===this.#fI.length}isCancellable(){return this.#er.length<=10}add(a,b){[a,b]=this.#fN(a,b);let[c,d,e,f]=this.#ek.subarray(2,6),g=a-e,h=b-f;return 2>=Math.hypot(this.#fL*g,this.#fM*h)?null:((this.#er.push(a,b),isNaN(c))?(this.#ek.set([e,f,a,b],2),this.#dQ.push(NaN,NaN,NaN,NaN,a,b)):(isNaN(this.#ek[0])&&this.#dQ.splice(6,6),this.#ek.set([c,d,e,f,a,b],0),this.#dQ.push(...cx.createBezierPoints(c,d,e,f,a,b))),{path:{d:this.toSVGPath()}})}end(a,b){let c=this.add(a,b);return c||(2===this.#er.length?{path:{d:this.toSVGPath()}}:null)}startNew(a,b,c,d,e){this.#fL=c,this.#fM=d,this.#cF=e,[a,b]=this.#fN(a,b);let f=this.#dQ=[NaN,NaN,NaN,NaN,a,b];this.#er=[a,b];let g=this.#fI.at(-1);return g&&(g.line=new Float32Array(g.line),g.points=new Float32Array(g.points)),this.#fI.push({line:f,points:this.#er}),this.#ek.set(f,0),this.#fK=0,this.toSVGPath(),null}getLastElement(){return this.#fI.at(-1)}setLastElement(a){return this.#fI?(this.#fI.push(a),this.#dQ=a.line,this.#er=a.points,this.#fK=0,{path:{d:this.toSVGPath()}}):this.#eN.setLastElement(a)}removeLastElement(){if(!this.#fI)return this.#eN.removeLastElement();this.#fI.pop(),this.#fJ="";for(let a=0,b=this.#fI.length;a<b;a++){let{line:b,points:c}=this.#fI[a];this.#dQ=b,this.#er=c,this.#fK=0,this.toSVGPath()}return{path:{d:this.#fJ}}}toSVGPath(){let a=cx.svgRound(this.#dQ[4]),b=cx.svgRound(this.#dQ[5]);if(2===this.#er.length)return this.#fJ=`${this.#fJ} M ${a} ${b} Z`,this.#fJ;if(this.#er.length<=6){let c=this.#fJ.lastIndexOf("M");this.#fJ=`${this.#fJ.slice(0,c)} M ${a} ${b}`,this.#fK=6}if(4===this.#er.length){let a=cx.svgRound(this.#dQ[10]),b=cx.svgRound(this.#dQ[11]);return this.#fJ=`${this.#fJ} L ${a} ${b}`,this.#fK=12,this.#fJ}let c=[];0===this.#fK&&(c.push(`M ${a} ${b}`),this.#fK=6);for(let a=this.#fK,b=this.#dQ.length;a<b;a+=6){let[b,d,e,f,g,h]=this.#dQ.slice(a,a+6).map(cx.svgRound);c.push(`C${b} ${d} ${e} ${f} ${g} ${h}`)}return this.#fJ+=c.join(" "),this.#fK=this.#dQ.length,this.#fJ}getOutlines(a,b,c,d){let e=this.#fI.at(-1);return e.line=new Float32Array(e.line),e.points=new Float32Array(e.points),this.#eN.build(this.#fI,a,b,c,this.#cF,this.#eq,d),this.#ek=null,this.#dQ=null,this.#fI=null,this.#fJ=null,this.#eN}get defaultSVGProperties(){return{root:{viewBox:"0 0 10000 10000"},rootClass:{draw:!0},bbox:[0,0,1,1]}}}class cJ extends cx{#eC;#fO=0;#eh;#fI;#fL;#fM;#fP;#cF;#eq;build(a,b,c,d,e,f,g){this.#fL=b,this.#fM=c,this.#fP=d,this.#cF=e,this.#eq=f,this.#eh=g??0,this.#fI=a,this.#fQ()}setLastElement(a){return this.#fI.push(a),{path:{d:this.toSVGPath()}}}removeLastElement(){return this.#fI.pop(),{path:{d:this.toSVGPath()}}}toSVGPath(){let a=[];for(let{line:b}of this.#fI){if(a.push(`M${cx.svgRound(b[4])} ${cx.svgRound(b[5])}`),6===b.length){a.push("Z");continue}if(12===b.length){a.push(`L${cx.svgRound(b[10])} ${cx.svgRound(b[11])}`);continue}for(let c=6,d=b.length;c<d;c+=6){let[d,e,f,g,h,i]=b.subarray(c,c+6).map(cx.svgRound);a.push(`C${d} ${e} ${f} ${g} ${h} ${i}`)}}return a.join("")}serialize([a,b,c,d],e){let f,g,h,i,j,k,l,m,n,o=[],p=[],[q,r,s,t]=this.#fR();switch(this.#cF){case 0:n=cx._rescale,f=a,g=b+d,h=c,i=-d,j=a+q*c,k=b+(1-r-t)*d,l=a+(q+s)*c,m=b+(1-r)*d;break;case 90:n=cx._rescaleAndSwap,f=a,g=b,h=c,i=d,j=a+r*c,k=b+q*d,l=a+(r+t)*c,m=b+(q+s)*d;break;case 180:n=cx._rescale,f=a+c,g=b,h=-c,i=d,j=a+(1-q-s)*c,k=b+r*d,l=a+(1-q)*c,m=b+(r+t)*d;break;case 270:n=cx._rescaleAndSwap,f=a+c,g=b+d,h=-c,i=-d,j=a+(1-r-t)*c,k=b+(1-q-s)*d,l=a+(1-r)*c,m=b+(1-q)*d}for(let{line:a,points:b}of this.#fI)o.push(n(a,f,g,h,i,e?Array(a.length):null)),p.push(n(b,f,g,h,i,e?Array(b.length):null));return{lines:o,points:p,rect:[j,k,l,m]}}static deserialize(a,b,c,d,e,{paths:{lines:f,points:g},rotation:h,thickness:i}){let j,k,l,m,n,o=[];switch(h){case 0:n=cx._rescale,j=-a/c,k=b/d+1,l=1/c,m=-1/d;break;case 90:n=cx._rescaleAndSwap,j=-b/d,k=-a/c,l=1/d,m=1/c;break;case 180:n=cx._rescale,j=a/c+1,k=-b/d,l=-1/c,m=1/d;break;case 270:n=cx._rescaleAndSwap,j=b/d+1,k=a/c+1,l=-1/d,m=-1/c}if(!f)for(let a of(f=[],g)){let b=a.length;if(2===b){f.push(new Float32Array([NaN,NaN,NaN,NaN,a[0],a[1]]));continue}if(4===b){f.push(new Float32Array([NaN,NaN,NaN,NaN,a[0],a[1],NaN,NaN,NaN,NaN,a[2],a[3]]));continue}let c=new Float32Array(3*(b-2));f.push(c);let[d,e,g,h]=a.subarray(0,4);c.set([NaN,NaN,NaN,NaN,d,e],0);for(let f=4;f<b;f+=2){let b=a[f],i=a[f+1];c.set(cx.createBezierPoints(d,e,g,h,b,i),(f-2)*3),[d,e,g,h]=[g,h,b,i]}}for(let a=0,b=f.length;a<b;a++)o.push({line:n(f[a].map(a=>a??NaN),j,k,l,m),points:n(g[a].map(a=>a??NaN),j,k,l,m)});let p=new cJ;return p.build(o,c,d,1,h,i,e),p}#fS(a=this.#eq){let b=this.#eh+a/2*this.#fP;return this.#cF%180==0?[b/this.#fL,b/this.#fM]:[b/this.#fM,b/this.#fL]}#fR(){let[a,b,c,d]=this.#eC,[e,f]=this.#fS(0);return[a+e,b+f,c-2*e,d-2*f]}#fQ(){let a=this.#eC=new Float32Array([1/0,1/0,-1/0,-1/0]);for(let{line:b}of this.#fI){if(b.length<=12){for(let c=4,d=b.length;c<d;c+=6){let[d,e]=b.subarray(c,c+2);a[0]=Math.min(a[0],d),a[1]=Math.min(a[1],e),a[2]=Math.max(a[2],d),a[3]=Math.max(a[3],e)}continue}let c=b[4],d=b[5];for(let e=6,f=b.length;e<f;e+=6){let[f,g,h,i,j,k]=b.subarray(e,e+6);K.bezierBoundingBox(c,d,f,g,h,i,j,k,a),c=j,d=k}}let[b,c]=this.#fS();a[0]=Math.min(1,Math.max(0,a[0]-b)),a[1]=Math.min(1,Math.max(0,a[1]-c)),a[2]=Math.min(1,Math.max(0,a[2]+b)),a[3]=Math.min(1,Math.max(0,a[3]+c)),a[2]-=a[0],a[3]-=a[1]}get box(){return this.#eC}updateProperty(a,b){return"stroke-width"===a?this.#fi(b):null}#fi(a){let[b,c]=this.#fS();this.#eq=a;let[d,e]=this.#fS(),[f,g]=[d-b,e-c],h=this.#eC;return h[0]-=f,h[1]-=g,h[2]+=2*f,h[3]+=2*g,h}updateParentDimensions([a,b],c){let[d,e]=this.#fS();this.#fL=a,this.#fM=b,this.#fP=c;let[f,g]=this.#fS(),h=f-d,i=g-e,j=this.#eC;return j[0]-=h,j[1]-=i,j[2]+=2*h,j[3]+=2*i,j}updateRotation(a){return this.#fO=a,{path:{transform:this.rotationTransform}}}get viewBox(){return this.#eC.map(cx.svgRound).join(" ")}get defaultProperties(){let[a,b]=this.#eC;return{root:{viewBox:this.viewBox},path:{"transform-origin":`${cx.svgRound(a)} ${cx.svgRound(b)}`}}}get rotationTransform(){let[,,a,b]=this.#eC,c=0,d=0,e=0,f=0,g=0,h=0;switch(this.#fO){case 90:d=b/a,e=-a/b,g=a;break;case 180:c=-1,f=-1,g=a,h=b;break;case 270:d=-b/a,e=a/b,h=b;break;default:return""}return`matrix(${c} ${d} ${e} ${f} ${cx.svgRound(g)} ${cx.svgRound(h)})`}getPathResizingSVGProperties([a,b,c,d]){let[e,f]=this.#fS(),[g,h,i,j]=this.#eC;if(Math.abs(i-e)<=cx.PRECISION||Math.abs(j-f)<=cx.PRECISION){let e=a+c/2-(g+i/2),f=b+d/2-(h+j/2);return{path:{"transform-origin":`${cx.svgRound(a)} ${cx.svgRound(b)}`,transform:`${this.rotationTransform} translate(${e} ${f})`}}}let k=(c-2*e)/(i-2*e),l=(d-2*f)/(j-2*f);return{path:{"transform-origin":`${cx.svgRound(g)} ${cx.svgRound(h)}`,transform:`${this.rotationTransform} scale(${i/c} ${j/d}) translate(${cx.svgRound(e)} ${cx.svgRound(f)}) scale(${k} ${l}) translate(${cx.svgRound(-e)} ${cx.svgRound(-f)})`}}}getPathResizedSVGProperties([a,b,c,d]){let[e,f]=this.#fS(),g=this.#eC,[h,i,j,k]=g;if(g[0]=a,g[1]=b,g[2]=c,g[3]=d,Math.abs(j-e)<=cx.PRECISION||Math.abs(k-f)<=cx.PRECISION){let e=a+c/2-(h+j/2),f=b+d/2-(i+k/2);for(let{line:a,points:b}of this.#fI)cx._translate(a,e,f,a),cx._translate(b,e,f,b);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${cx.svgRound(a)} ${cx.svgRound(b)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}let l=(c-2*e)/(j-2*e),m=(d-2*f)/(k-2*f),n=-l*(h+e)+a+e,o=-m*(i+f)+b+f;if(1!==l||1!==m||0!==n||0!==o)for(let{line:a,points:b}of this.#fI)cx._rescale(a,n,o,l,m,a),cx._rescale(b,n,o,l,m,b);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${cx.svgRound(a)} ${cx.svgRound(b)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}getPathTranslatedSVGProperties([a,b],c){let[d,e]=c,f=this.#eC,g=a-f[0],h=b-f[1];if(this.#fL===d&&this.#fM===e)for(let{line:a,points:b}of this.#fI)cx._translate(a,g,h,a),cx._translate(b,g,h,b);else{let a=this.#fL/d,b=this.#fM/e;for(let{line:c,points:f}of(this.#fL=d,this.#fM=e,this.#fI))cx._rescale(c,g,h,a,b,c),cx._rescale(f,g,h,a,b,f);f[2]*=a,f[3]*=b}return f[0]=a,f[1]=b,{root:{viewBox:this.viewBox},path:{d:this.toSVGPath(),"transform-origin":`${cx.svgRound(a)} ${cx.svgRound(b)}`}}}get defaultSVGProperties(){let a=this.#eC;return{root:{viewBox:this.viewBox},rootClass:{draw:!0},path:{d:this.toSVGPath(),"transform-origin":`${cx.svgRound(a[0])} ${cx.svgRound(a[1])}`,transform:this.rotationTransform||null},bbox:a}}}class cK extends cG{#fT;constructor(a){super(),this.#fT=a,super.updateProperties({fill:"none",stroke:as._defaultLineColor,"stroke-opacity":1,"stroke-width":1,"stroke-linecap":"round","stroke-linejoin":"round","stroke-miterlimit":10})}updateSVGProperty(a,b){"stroke-width"===a&&(b??=this["stroke-width"],b*=this.#fT.realScale),super.updateSVGProperty(a,b)}clone(){let a=new cK(this.#fT);return a.updateAll(this),a}}class cL extends cH{static _type="ink";static _editorType=j.INK;static _defaultDrawingOptions=null;constructor(a){super({...a,name:"inkEditor"}),this._willKeepAspectRatio=!0}static initialize(a,b){as.initialize(a,b),this._defaultDrawingOptions=new cK(b.viewParameters)}static getDefaultDrawingOptions(a){let b=this._defaultDrawingOptions.clone();return b.updateProperties(a),b}static get supportMultipleDrawings(){return!0}static get typesMap(){return w(this,"typesMap",new Map([[k.INK_THICKNESS,"stroke-width"],[k.INK_COLOR,"stroke"],[k.INK_OPACITY,"stroke-opacity"]]))}static createDrawerInstance(a,b,c,d,e){return new cI(a,b,c,d,e,this._defaultDrawingOptions["stroke-width"])}static deserializeDraw(a,b,c,d,e,f){return cJ.deserialize(a,b,c,d,e,f)}static async deserialize(a,b,c){let d=null;if(a instanceof cn){let{data:{inkLists:b,rect:c,rotation:e,id:f,color:g,opacity:h,borderStyle:{rawWidth:i},popupRef:k},parent:{page:{pageNumber:l}}}=a;d=a={annotationType:j.INK,color:Array.from(g),thickness:i,opacity:h,paths:{points:b},boxes:null,pageIndex:l-1,rect:c.slice(0),rotation:e,id:f,deleted:!1,popupRef:k}}let e=await super.deserialize(a,b,c);return e.annotationElementId=a.id||null,e._initialData=d,e}onScaleChanging(){if(!this.parent)return;super.onScaleChanging();let{_drawId:a,_drawingOptions:b,parent:c}=this;b.updateSVGProperty("stroke-width"),c.drawLayer.updateProperties(a,b.toSVGProperties())}static onScaleChangingWhenDrawing(){let a=this._currentParent;a&&(super.onScaleChangingWhenDrawing(),this._defaultDrawingOptions.updateSVGProperty("stroke-width"),a.drawLayer.updateProperties(this._currentDrawId,this._defaultDrawingOptions.toSVGProperties()))}createDrawingOptions({color:a,thickness:b,opacity:c}){this._drawingOptions=cL.getDefaultDrawingOptions({stroke:K.makeHexColor(...a),"stroke-width":b,"stroke-opacity":c})}serialize(a=!1){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();let{lines:b,points:c,rect:d}=this.serializeDraw(a),{_drawingOptions:{stroke:e,"stroke-opacity":f,"stroke-width":g}}=this,h={annotationType:j.INK,color:as._colorManager.convert(e),opacity:f,thickness:g,paths:{lines:b,points:c},pageIndex:this.pageIndex,rect:d,rotation:this.rotation,structTreeParentId:this._structTreeParentId};return a?h:this.annotationElementId&&!this.#ee(h)?null:(h.id=this.annotationElementId,h)}#ee(a){let{color:b,thickness:c,opacity:d,pageIndex:e}=this._initialData;return this._hasBeenMoved||this._hasBeenResized||a.color.some((a,c)=>a!==b[c])||a.thickness!==c||a.opacity!==d||a.pageIndex!==e}renderAnnotationElement(a){let{points:b,rect:c}=this.serializeDraw(!1);return a.updateEdited({rect:c,thickness:this._drawingOptions["stroke-width"],points:b}),null}}class cM extends as{#fU=null;#fV=null;#fW=null;#fX=null;#fY=null;#fZ="";#f$=null;#f_=null;#f0=!1;#f1=!1;static _type="stamp";static _editorType=j.STAMP;constructor(a){super({...a,name:"stampEditor"}),this.#fX=a.bitmapUrl,this.#fY=a.bitmapFile}static initialize(a,b){as.initialize(a,b)}static get supportedTypes(){return w(this,"supportedTypes",["apng","avif","bmp","gif","jpeg","png","svg+xml","webp","x-icon"].map(a=>`image/${a}`))}static get supportedTypesStr(){return w(this,"supportedTypesStr",this.supportedTypes.join(","))}static isHandlingMimeForPasting(a){return this.supportedTypes.includes(a)}static paste(a,b){b.pasteEditor(j.STAMP,{bitmapFile:a.getAsFile()})}altTextFinish(){this._uiManager.useNewAltTextFlow&&(this.div.hidden=!1),super.altTextFinish()}get telemetryFinalData(){return{type:"stamp",hasAltText:!!this.altTextData?.altText}}static computeTelemetryFinalData(a){let b=a.get("hasAltText");return{hasAltText:b.get(!0)??0,hasNoAltText:b.get(!1)??0}}#f2(a,b=!1){a?(this.#fU=a.bitmap,b||(this.#fV=a.id,this.#f0=a.isSvg),a.file&&(this.#fZ=a.file.name),this.#f3()):this.remove()}#f4(){if(this.#fW=null,this._uiManager.enableWaiting(!1),this.#f$){if(this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&this.#fU){this._editToolbar.hide(),this._uiManager.editAltText(this,!0);return}if(!this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&this.#fU){this._reportTelemetry({action:"pdfjs.image.image_added",data:{alt_text_modal:!1,alt_text_type:"empty"}});try{this.mlGuessAltText()}catch{}}this.div.focus()}}async mlGuessAltText(a=null,b=!0){if(this.hasAltTextData())return null;let{mlManager:c}=this._uiManager;if(!c)throw Error("No ML.");if(!await c.isEnabledFor("altText"))throw Error("ML isn't enabled for alt text.");let{data:d,width:e,height:f}=a||this.copyCanvas(null,null,!0).imageData,g=await c.guess({name:"altText",request:{data:d,width:e,height:f,channels:d.length/(e*f)}});if(!g)throw Error("No response from the AI service.");if(g.error)throw Error("Error from the AI service.");if(g.cancel)return null;if(!g.output)throw Error("No valid response from the AI service.");let h=g.output;return await this.setGuessedAltText(h),b&&!this.hasAltTextData()&&(this.altTextData={alt:h,decorative:!1}),h}#f5(){if(this.#fV){this._uiManager.enableWaiting(!0),this._uiManager.imageManager.getFromId(this.#fV).then(a=>this.#f2(a,!0)).finally(()=>this.#f4());return}if(this.#fX){let a=this.#fX;this.#fX=null,this._uiManager.enableWaiting(!0),this.#fW=this._uiManager.imageManager.getFromUrl(a).then(a=>this.#f2(a)).finally(()=>this.#f4());return}if(this.#fY){let a=this.#fY;this.#fY=null,this._uiManager.enableWaiting(!0),this.#fW=this._uiManager.imageManager.getFromFile(a).then(a=>this.#f2(a)).finally(()=>this.#f4());return}let a=document.createElement("input");a.type="file",a.accept=cM.supportedTypesStr;let b=this._uiManager._signal;this.#fW=new Promise(c=>{a.addEventListener("change",async()=>{if(a.files&&0!==a.files.length){this._uiManager.enableWaiting(!0);let b=await this._uiManager.imageManager.getFromFile(a.files[0]);this._reportTelemetry({action:"pdfjs.image.image_selected",data:{alt_text_modal:this._uiManager.useNewAltTextFlow}}),this.#f2(b)}else this.remove();c()},{signal:b}),a.addEventListener("cancel",()=>{this.remove(),c()},{signal:b})}).finally(()=>this.#f4()),a.click()}remove(){this.#fV&&(this.#fU=null,this._uiManager.imageManager.deleteId(this.#fV),this.#f$?.remove(),this.#f$=null,this.#f_&&(clearTimeout(this.#f_),this.#f_=null)),super.remove()}rebuild(){if(!this.parent){this.#fV&&this.#f5();return}super.rebuild(),null!==this.div&&(this.#fV&&null===this.#f$&&this.#f5(),this.isAttachedToDOM||this.parent.add(this))}onceAdded(a){this._isDraggable=!0,a&&this.div.focus()}isEmpty(){return!(this.#fW||this.#fU||this.#fX||this.#fY||this.#fV)}get isResizable(){return!0}render(){let a,b;if(this.div)return this.div;if(this.width&&(a=this.x,b=this.y),super.render(),this.div.hidden=!0,this.div.setAttribute("role","figure"),this.addAltTextButton(),this.#fU?this.#f3():this.#f5(),this.width&&!this.annotationElementId){let[c,d]=this.parentDimensions;this.setAt(a*c,b*d,this.width*c,this.height*d)}return this._uiManager.addShouldRescale(this),this.div}_onResized(){this.onScaleChanging()}onScaleChanging(){this.parent&&(null!==this.#f_&&clearTimeout(this.#f_),this.#f_=setTimeout(()=>{this.#f_=null,this.#f6()},200))}#f3(){let{div:a}=this,{width:b,height:c}=this.#fU,[d,e]=this.pageDimensions;if(this.width)b=this.width*d,c=this.height*e;else if(b>.75*d||c>.75*e){let a=Math.min(.75*d/b,.75*e/c);b*=a,c*=a}let[f,g]=this.parentDimensions;this.setDims(b*f/d,c*g/e),this._uiManager.enableWaiting(!1);let h=this.#f$=document.createElement("canvas");h.setAttribute("role","img"),this.addContainer(h),this.width=b/d,this.height=c/e,this._initialOptions?.isCentered?this.center():this.fixAndSetPosition(),this._initialOptions=null,this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&!this.annotationElementId||(a.hidden=!1),this.#f6(),this.#f1||(this.parent.addUndoableEditor(this),this.#f1=!0),this._reportTelemetry({action:"inserted_image"}),this.#fZ&&h.setAttribute("aria-label",this.#fZ)}copyCanvas(a,b,c=!1){a||(a=224);let{width:d,height:e}=this.#fU,f=new ag,g=this.#fU,h=d,i=e,j=null;if(b){if(d>b||e>b){let a=Math.min(b/d,b/e);h=Math.floor(d*a),i=Math.floor(e*a)}let a=(j=document.createElement("canvas")).width=Math.ceil(h*f.sx),c=j.height=Math.ceil(i*f.sy);this.#f0||(g=this.#f7(a,c));let k=j.getContext("2d");k.filter=this._uiManager.hcmFilter;let l="white",m="#cfcfd8";"none"!==this._uiManager.hcmFilter?m="black":window.matchMedia?.("(prefers-color-scheme: dark)").matches&&(l="#8f8f9d",m="#42414d");let n=15*f.sx,o=15*f.sy,p=new OffscreenCanvas(2*n,2*o),q=p.getContext("2d");q.fillStyle=l,q.fillRect(0,0,2*n,2*o),q.fillStyle=m,q.fillRect(0,0,n,o),q.fillRect(n,o,n,o),k.fillStyle=k.createPattern(p,"repeat"),k.fillRect(0,0,a,c),k.drawImage(g,0,0,g.width,g.height,0,0,a,c)}let k=null;if(c){let b,c;if(f.symmetric&&g.width<a&&g.height<a)b=g.width,c=g.height;else if(g=this.#fU,d>a||e>a){let f=Math.min(a/d,a/e);b=Math.floor(d*f),c=Math.floor(e*f),this.#f0||(g=this.#f7(b,c))}let h=new OffscreenCanvas(b,c).getContext("2d",{willReadFrequently:!0});h.drawImage(g,0,0,g.width,g.height,0,0,b,c),k={width:b,height:c,data:h.getImageData(0,0,b,c).data}}return{canvas:j,width:h,height:i,imageData:k}}#f7(a,b){let{width:c,height:d}=this.#fU,e=c,f=d,g=this.#fU;for(;e>2*a||f>2*b;){let c=e,d=f;e>2*a&&(e=e>=16384?Math.floor(e/2)-1:Math.ceil(e/2)),f>2*b&&(f=f>=16384?Math.floor(f/2)-1:Math.ceil(f/2));let h=new OffscreenCanvas(e,f);h.getContext("2d").drawImage(g,0,0,c,d,0,0,e,f),g=h.transferToImageBitmap()}return g}#f6(){let[a,b]=this.parentDimensions,{width:c,height:d}=this,e=new ag,f=Math.ceil(c*a*e.sx),g=Math.ceil(d*b*e.sy),h=this.#f$;if(!h||h.width===f&&h.height===g)return;h.width=f,h.height=g;let i=this.#f0?this.#fU:this.#f7(f,g),j=h.getContext("2d");j.filter=this._uiManager.hcmFilter,j.drawImage(i,0,0,i.width,i.height,0,0,f,g)}getImageForAltText(){return this.#f$}#f8(a){if(a){if(this.#f0){let a=this._uiManager.imageManager.getSvgUrl(this.#fV);if(a)return a}let a=document.createElement("canvas");return{width:a.width,height:a.height}=this.#fU,a.getContext("2d").drawImage(this.#fU,0,0),a.toDataURL()}if(this.#f0){let[a,b]=this.pageDimensions,c=Math.round(this.width*a*Q.PDF_TO_CSS_UNITS),d=Math.round(this.height*b*Q.PDF_TO_CSS_UNITS),e=new OffscreenCanvas(c,d);return e.getContext("2d").drawImage(this.#fU,0,0,this.#fU.width,this.#fU.height,0,0,c,d),e.transferToImageBitmap()}return structuredClone(this.#fU)}static async deserialize(a,b,c){let d=null;if(a instanceof cs){let{data:{rect:e,rotation:f,id:g,structParent:h,popupRef:i},container:k,parent:{page:{pageNumber:l}}}=a,m=k.querySelector("canvas"),n=c.imageManager.getFromCanvas(k.id,m);m.remove();let o=(await b._structTree.getAriaAttributes(`${O}${g}`))?.get("aria-label")||"";d=a={annotationType:j.STAMP,bitmapId:n.id,bitmap:n.bitmap,pageIndex:l-1,rect:e.slice(0),rotation:f,id:g,deleted:!1,accessibilityData:{decorative:!1,altText:o},isSvg:!1,structParent:h,popupRef:i}}let e=await super.deserialize(a,b,c),{rect:f,bitmap:g,bitmapUrl:h,bitmapId:i,isSvg:k,accessibilityData:l}=a;i&&c.imageManager.isValidId(i)?(e.#fV=i,g&&(e.#fU=g)):e.#fX=h,e.#f0=k;let[m,n]=e.pageDimensions;return e.width=(f[2]-f[0])/m,e.height=(f[3]-f[1])/n,e.annotationElementId=a.id||null,l&&(e.altTextData=l),e._initialData=d,e.#f1=!!d,e}serialize(a=!1,b=null){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();let c={annotationType:j.STAMP,bitmapId:this.#fV,pageIndex:this.pageIndex,rect:this.getRect(0,0),rotation:this.rotation,isSvg:this.#f0,structTreeParentId:this._structTreeParentId};if(a)return c.bitmapUrl=this.#f8(!0),c.accessibilityData=this.serializeAltText(!0),c;let{decorative:d,altText:e}=this.serializeAltText(!1);if(!d&&e&&(c.accessibilityData={type:"Figure",alt:e}),this.annotationElementId){let a=this.#ee(c);if(a.isSame)return null;a.isSameAltText?delete c.accessibilityData:c.accessibilityData.structParent=this._initialData.structParent??-1}if(c.id=this.annotationElementId,null===b)return c;b.stamps||=new Map;let f=this.#f0?(c.rect[2]-c.rect[0])*(c.rect[3]-c.rect[1]):null;if(b.stamps.has(this.#fV)){if(this.#f0){let a=b.stamps.get(this.#fV);f>a.area&&(a.area=f,a.serialized.bitmap.close(),a.serialized.bitmap=this.#f8(!1))}}else b.stamps.set(this.#fV,{area:f,serialized:c}),c.bitmap=this.#f8(!1);return c}#ee(a){let{pageIndex:b,accessibilityData:{altText:c}}=this._initialData,d=a.pageIndex===b,e=(a.accessibilityData?.alt||"")===c;return{isSame:!this._hasBeenMoved&&!this._hasBeenResized&&d&&e,isSameAltText:e}}renderAnnotationElement(a){return a.updateEdited({rect:this.getRect(0,0)}),null}}class cN{#dZ;#f9=!1;#ga=null;#gb=null;#gc=null;#gd=new Map;#ge=!1;#gf=!1;#gg=!1;#gh=null;#gi=null;#gj=null;#gk=null;#p;static _initialized=!1;static #P=new Map([cw,cL,cM,cF].map(a=>[a._editorType,a]));constructor({uiManager:a,pageIndex:b,div:c,structTreeLayer:d,accessibilityManager:e,annotationLayer:f,drawLayer:g,textLayer:h,viewport:i,l10n:j}){const k=[...cN.#P.values()];if(!cN._initialized)for(const b of(cN._initialized=!0,k))b.initialize(j,a);a.registerEditorTypes(k),this.#p=a,this.pageIndex=b,this.div=c,this.#dZ=e,this.#ga=f,this.viewport=i,this.#gj=h,this.drawLayer=g,this._structTree=d,this.#p.addLayer(this)}get isEmpty(){return 0===this.#gd.size}get isInvisible(){return this.isEmpty&&this.#p.getMode()===j.NONE}updateToolbar(a){this.#p.updateToolbar(a)}updateMode(a=this.#p.getMode()){switch(this.#gl(),a){case j.NONE:this.disableTextSelection(),this.togglePointerEvents(!1),this.toggleAnnotationLayerPointerEvents(!0),this.disableClick();return;case j.INK:this.disableTextSelection(),this.togglePointerEvents(!0),this.enableClick();break;case j.HIGHLIGHT:this.enableTextSelection(),this.togglePointerEvents(!1),this.disableClick();break;default:this.disableTextSelection(),this.togglePointerEvents(!0),this.enableClick()}this.toggleAnnotationLayerPointerEvents(!1);let{classList:b}=this.div;for(let c of cN.#P.values())b.toggle(`${c._type}Editing`,a===c._editorType);this.div.hidden=!1}hasTextLayer(a){return a===this.#gj?.div}setEditingState(a){this.#p.setEditingState(a)}addCommands(a){this.#p.addCommands(a)}cleanUndoStack(a){this.#p.cleanUndoStack(a)}toggleDrawing(a=!1){this.div.classList.toggle("drawing",!a)}togglePointerEvents(a=!1){this.div.classList.toggle("disabled",!a)}toggleAnnotationLayerPointerEvents(a=!1){this.#ga?.div.classList.toggle("disabled",!a)}async enable(){this.#gg=!0,this.div.tabIndex=0,this.togglePointerEvents(!0);let a=new Set;for(let b of this.#gd.values())b.enableEditing(),b.show(!0),b.annotationElementId&&(this.#p.removeChangedExistingAnnotation(b),a.add(b.annotationElementId));if(!this.#ga){this.#gg=!1;return}for(let b of this.#ga.getEditableAnnotations()){if(b.hide(),this.#p.isDeletedAnnotationElement(b.data.id)||a.has(b.data.id))continue;let c=await this.deserialize(b);c&&(this.addOrRebuild(c),c.enableEditing())}this.#gg=!1}disable(){this.#gf=!0,this.div.tabIndex=-1,this.togglePointerEvents(!1);let a=new Map,b=new Map;for(let c of this.#gd.values())if(c.disableEditing(),c.annotationElementId){if(null!==c.serialize()){a.set(c.annotationElementId,c);continue}b.set(c.annotationElementId,c),this.getEditableAnnotation(c.annotationElementId)?.show(),c.remove()}if(this.#ga)for(let c of this.#ga.getEditableAnnotations()){let{id:d}=c.data;if(this.#p.isDeletedAnnotationElement(d))continue;let e=b.get(d);if(e){e.resetAnnotationElement(c),e.show(!1),c.show();continue}(e=a.get(d))&&(this.#p.addChangedExistingAnnotation(e),e.renderAnnotationElement(c)&&e.show(!1)),c.show()}this.#gl(),this.isEmpty&&(this.div.hidden=!0);let{classList:c}=this.div;for(let a of cN.#P.values())c.remove(`${a._type}Editing`);this.disableTextSelection(),this.toggleAnnotationLayerPointerEvents(!0),this.#gf=!1}getEditableAnnotation(a){return this.#ga?.getEditableAnnotation(a)||null}setActiveEditor(a){this.#p.getActive()!==a&&this.#p.setActiveEditor(a)}enableTextSelection(){if(this.div.tabIndex=-1,this.#gj?.div&&!this.#gk){this.#gk=new AbortController;let a=this.#p.combinedSignal(this.#gk);this.#gj.div.addEventListener("pointerdown",this.#gm.bind(this),{signal:a}),this.#gj.div.classList.add("highlighting")}}disableTextSelection(){this.div.tabIndex=0,this.#gj?.div&&this.#gk&&(this.#gk.abort(),this.#gk=null,this.#gj.div.classList.remove("highlighting"))}#gm(a){this.#p.unselectAll();let{target:b}=a;if(b===this.#gj.div||("img"===b.getAttribute("role")||b.classList.contains("endOfContent"))&&this.#gj.div.contains(b)){let{isMac:b}=I.platform;if(0!==a.button||a.ctrlKey&&b)return;this.#p.showAllEditors("highlight",!0,!0),this.#gj.div.classList.add("free"),this.toggleDrawing(),cF.startHighlighting(this,"ltr"===this.#p.direction,{target:this.#gj.div,x:a.x,y:a.y}),this.#gj.div.addEventListener("pointerup",()=>{this.#gj.div.classList.remove("free"),this.toggleDrawing(!0)},{once:!0,signal:this.#p._signal}),a.preventDefault()}}enableClick(){if(this.#gb)return;this.#gb=new AbortController;let a=this.#p.combinedSignal(this.#gb);this.div.addEventListener("pointerdown",this.pointerdown.bind(this),{signal:a});let b=this.pointerup.bind(this);this.div.addEventListener("pointerup",b,{signal:a}),this.div.addEventListener("pointercancel",b,{signal:a})}disableClick(){this.#gb?.abort(),this.#gb=null}attach(a){this.#gd.set(a.id,a);let{annotationElementId:b}=a;b&&this.#p.isDeletedAnnotationElement(b)&&this.#p.removeDeletedAnnotationElement(a)}detach(a){this.#gd.delete(a.id),this.#dZ?.removePointerInTextLayer(a.contentDiv),!this.#gf&&a.annotationElementId&&this.#p.addDeletedAnnotationElement(a)}remove(a){this.detach(a),this.#p.removeEditor(a),a.div.remove(),a.isAttachedToDOM=!1}changeParent(a){a.parent!==this&&(a.parent&&a.annotationElementId&&(this.#p.addDeletedAnnotationElement(a.annotationElementId),as.deleteAnnotationElement(a),a.annotationElementId=null),this.attach(a),a.parent?.detach(a),a.setParent(this),a.div&&a.isAttachedToDOM&&(a.div.remove(),this.div.append(a.div)))}add(a){if(a.parent!==this||!a.isAttachedToDOM){if(this.changeParent(a),this.#p.addEditor(a),this.attach(a),!a.isAttachedToDOM){let b=a.render();this.div.append(b),a.isAttachedToDOM=!0}a.fixAndSetPosition(),a.onceAdded(!this.#gg),this.#p.addToAnnotationStorage(a),a._reportTelemetry(a.telemetryInitialData)}}moveEditorInDOM(a){if(!a.isAttachedToDOM)return;let{activeElement:b}=document;a.div.contains(b)&&!this.#gc&&(a._focusEventsAllowed=!1,this.#gc=setTimeout(()=>{this.#gc=null,a.div.contains(document.activeElement)?a._focusEventsAllowed=!0:(a.div.addEventListener("focusin",()=>{a._focusEventsAllowed=!0},{once:!0,signal:this.#p._signal}),b.focus())},0)),a._structTreeParentId=this.#dZ?.moveElementInDOM(this.div,a.div,a.contentDiv,!0)}addOrRebuild(a){a.needsToBeRebuilt()?(a.parent||=this,a.rebuild(),a.show()):this.add(a)}addUndoableEditor(a){this.addCommands({cmd:()=>a._uiManager.rebuild(a),undo:()=>{a.remove()},mustExec:!1})}getNextId(){return this.#p.getId()}get #gn(){return cN.#P.get(this.#p.getMode())}combinedSignal(a){return this.#p.combinedSignal(a)}#go(a){let b=this.#gn;return b?new b.prototype.constructor(a):null}canCreateNewEmptyEditor(){return this.#gn?.canCreateNewEmptyEditor()}pasteEditor(a,b){this.#p.updateToolbar(a),this.#p.updateMode(a);let{offsetX:c,offsetY:d}=this.#gp(),e=this.getNextId(),f=this.#go({parent:this,id:e,x:c,y:d,uiManager:this.#p,isCentered:!0,...b});f&&this.add(f)}async deserialize(a){return await cN.#P.get(a.annotationType??a.annotationEditorType)?.deserialize(a,this,this.#p)||null}createAndAddNewEditor(a,b,c={}){let d=this.getNextId(),e=this.#go({parent:this,id:d,x:a.offsetX,y:a.offsetY,uiManager:this.#p,isCentered:b,...c});return e&&this.add(e),e}#gp(){let{x:a,y:b,width:c,height:d}=this.div.getBoundingClientRect(),e=Math.max(0,a),f=Math.max(0,b),g=Math.min(window.innerWidth,a+c),h=Math.min(window.innerHeight,b+d),i=(e+g)/2-a,j=(f+h)/2-b,[k,l]=this.viewport.rotation%180==0?[i,j]:[j,i];return{offsetX:k,offsetY:l}}addNewEditor(){this.createAndAddNewEditor(this.#gp(),!0)}setSelected(a){this.#p.setSelected(a)}toggleSelected(a){this.#p.toggleSelected(a)}unselect(a){this.#p.unselect(a)}pointerup(a){let{isMac:b}=I.platform;if(0===a.button&&(!a.ctrlKey||!b)&&a.target===this.div&&this.#ge&&(this.#ge=!1,!this.#gn?.isDrawer||!this.#gn.supportMultipleDrawings)){if(!this.#f9){this.#f9=!0;return}if(this.#p.getMode()===j.STAMP)return void this.#p.unselectAll();this.createAndAddNewEditor(a,!1)}}pointerdown(a){if(this.#p.getMode()===j.HIGHLIGHT&&this.enableTextSelection(),this.#ge){this.#ge=!1;return}let{isMac:b}=I.platform;if(0!==a.button||a.ctrlKey&&b||a.target!==this.div)return;if(this.#ge=!0,this.#gn?.isDrawer)return void this.startDrawingSession(a);let c=this.#p.getActive();this.#f9=!c||c.isEmpty()}startDrawingSession(a){if(this.div.focus(),this.#gh)return void this.#gn.startDrawing(this,this.#p,!1,a);this.#p.setCurrentDrawingSession(this),this.#gh=new AbortController;let b=this.#p.combinedSignal(this.#gh);this.div.addEventListener("blur",({relatedTarget:a})=>{a&&!this.div.contains(a)&&(this.#gi=null,this.commitOrRemove())},{signal:b}),this.#gn.startDrawing(this,this.#p,!1,a)}pause(a){if(a){let{activeElement:a}=document;this.div.contains(a)&&(this.#gi=a);return}this.#gi&&setTimeout(()=>{this.#gi?.focus(),this.#gi=null},0)}endDrawingSession(a=!1){return this.#gh?(this.#p.setCurrentDrawingSession(null),this.#gh.abort(),this.#gh=null,this.#gi=null,this.#gn.endDrawing(a)):null}findNewParent(a,b,c){let d=this.#p.findParent(b,c);return null!==d&&d!==this&&(d.changeParent(a),!0)}commitOrRemove(){return!!this.#gh&&(this.endDrawingSession(),!0)}onScaleChanging(){this.#gh&&this.#gn.onScaleChangingWhenDrawing(this)}destroy(){for(let a of(this.commitOrRemove(),this.#p.getActive()?.parent===this&&(this.#p.commitOrRemove(),this.#p.setActiveEditor(null)),this.#gc&&(clearTimeout(this.#gc),this.#gc=null),this.#gd.values()))this.#dZ?.removePointerInTextLayer(a.contentDiv),a.setParent(null),a.isAttachedToDOM=!1,a.div.remove();this.div=null,this.#gd.clear(),this.#p.removeLayer(this)}#gl(){for(let a of this.#gd.values())a.isEmpty()&&a.remove()}render({viewport:a}){for(let b of(this.viewport=a,af(this.div,a),this.#p.getEditors(this.pageIndex)))this.add(b),b.rebuild();this.updateMode()}update({viewport:a}){this.#p.commitOrRemove(),this.#gl();let b=this.viewport.rotation,c=a.rotation;if(this.viewport=a,af(this.div,{rotation:c}),b!==c)for(let a of this.#gd.values())a.rotate(c)}get pageDimensions(){let{pageWidth:a,pageHeight:b}=this.viewport.rawDims;return[a,b]}get scale(){return this.#p.viewParameters.realScale}}class cO{#dD=null;#t=0;#gq=new Map;#gr=new Map;constructor({pageIndex:a}){this.pageIndex=a}setParent(a){if(!this.#dD){this.#dD=a;return}if(this.#dD!==a){if(this.#gq.size>0)for(let b of this.#gq.values())b.remove(),a.append(b);this.#dD=a}}static get _svgFactory(){return w(this,"_svgFactory",new b_)}static #gs(a,[b,c,d,e]){let{style:f}=a;f.top=`${100*c}%`,f.left=`${100*b}%`,f.width=`${100*d}%`,f.height=`${100*e}%`}#gt(){let a=cO._svgFactory.create(1,1,!0);return this.#dD.append(a),a.setAttribute("aria-hidden",!0),a}#gu(a,b){let c=cO._svgFactory.createElement("clipPath");a.append(c);let d=`clip_${b}`;c.setAttribute("id",d),c.setAttribute("clipPathUnits","objectBoundingBox");let e=cO._svgFactory.createElement("use");return c.append(e),e.setAttribute("href",`#${b}`),e.classList.add("clip"),d}#gv(a,b){for(let[c,d]of Object.entries(b))null===d?a.removeAttribute(c):a.setAttribute(c,d)}draw(a,b=!1,c=!1){let d=this.#t++,e=this.#gt(),f=cO._svgFactory.createElement("defs");e.append(f);let g=cO._svgFactory.createElement("path");f.append(g);let h=`path_p${this.pageIndex}_${d}`;g.setAttribute("id",h),g.setAttribute("vector-effect","non-scaling-stroke"),b&&this.#gr.set(d,g);let i=c?this.#gu(f,h):null,j=cO._svgFactory.createElement("use");return e.append(j),j.setAttribute("href",`#${h}`),this.updateProperties(e,a),this.#gq.set(d,e),{id:d,clipPathId:`url(#${i})`}}drawOutline(a,b){let c,d=this.#t++,e=this.#gt(),f=cO._svgFactory.createElement("defs");e.append(f);let g=cO._svgFactory.createElement("path");f.append(g);let h=`path_p${this.pageIndex}_${d}`;if(g.setAttribute("id",h),g.setAttribute("vector-effect","non-scaling-stroke"),b){let a=cO._svgFactory.createElement("mask");f.append(a),c=`mask_p${this.pageIndex}_${d}`,a.setAttribute("id",c),a.setAttribute("maskUnits","objectBoundingBox");let b=cO._svgFactory.createElement("rect");a.append(b),b.setAttribute("width","1"),b.setAttribute("height","1"),b.setAttribute("fill","white");let e=cO._svgFactory.createElement("use");a.append(e),e.setAttribute("href",`#${h}`),e.setAttribute("stroke","none"),e.setAttribute("fill","black"),e.setAttribute("fill-rule","nonzero"),e.classList.add("mask")}let i=cO._svgFactory.createElement("use");e.append(i),i.setAttribute("href",`#${h}`),c&&i.setAttribute("mask",`url(#${c})`);let j=i.cloneNode();return e.append(j),i.classList.add("mainOutline"),j.classList.add("secondaryOutline"),this.updateProperties(e,a),this.#gq.set(d,e),d}finalizeDraw(a,b){this.#gr.delete(a),this.updateProperties(a,b)}updateProperties(a,b){if(!b)return;let{root:c,bbox:d,rootClass:e,path:f}=b,g="number"==typeof a?this.#gq.get(a):a;if(g){if(c&&this.#gv(g,c),d&&cO.#gs(g,d),e){let{classList:a}=g;for(let[b,c]of Object.entries(e))a.toggle(b,c)}if(f){let a=g.firstChild.firstChild;this.#gv(a,f)}}}updateParent(a,b){if(b===this)return;let c=this.#gq.get(a);c&&(b.#dD.append(c),this.#gq.delete(a),b.#gq.set(a,c))}remove(a){this.#gr.delete(a),null!==this.#dD&&(this.#gq.get(a).remove(),this.#gq.delete(a))}destroy(){for(let a of(this.#dD=null,this.#gq.values()))a.remove();this.#gq.clear(),this.#gr.clear()}}globalThis.pdfjsTestingUtils={HighlightOutliner:cA};var cP=e.AbortException,cQ=e.AnnotationEditorLayer,cR=e.AnnotationEditorParamsType,cS=e.AnnotationEditorType,cT=e.AnnotationEditorUIManager,cU=e.AnnotationLayer,cV=e.AnnotationMode,cW=e.ColorPicker,cX=e.DOMSVGFactory,cY=e.DrawLayer,cZ=e.FeatureTest,c$=e.GlobalWorkerOptions,c_=e.ImageKind,c0=e.InvalidPDFException,c1=e.MissingPDFException,c2=e.OPS,c3=e.OutputScale,c4=e.PDFDataRangeTransport,c5=e.PDFDateString,c6=e.PDFWorker,c7=e.PasswordResponses,c8=e.PermissionFlag,c9=e.PixelsPerInch,da=e.RenderingCancelledException,db=e.TextLayer,dc=e.TouchManager,dd=e.UnexpectedResponseException,de=e.Util,df=e.VerbosityLevel,dg=e.XfaLayer,dh=e.build,di=e.createValidAbsoluteUrl,dj=e.fetchData,dk=e.getDocument,dl=e.getFilenameFromUrl,dm=e.getPdfFilenameFromUrl,dn=e.getXfaPageViewport,dp=e.isDataScheme,dq=e.isPdfFile,dr=e.noContextMenu,ds=e.normalizeUnicode,dt=e.setLayerDimensions,du=e.shadow,dv=e.stopEvent,dw=e.version}};