@awacloud/pdf 0.0.0-stage → 1.0.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.
- package/CHANGELOG.md +609 -0
- package/LICENSE +661 -0
- package/NOTICE +77 -0
- package/README.md +363 -2
- package/dist/build/index.js +21 -0
- package/dist/build/pdf-full-rw.js +10972 -0
- package/dist/build/pdf-full-rw.meta.json +105 -0
- package/dist/build/pdf-full-rw.min.js +53 -0
- package/dist/build/pdf-full.js +6078 -0
- package/dist/build/pdf-full.meta.json +90 -0
- package/dist/build/pdf-full.min.js +32 -0
- package/dist/build/pdf-large-rw.js +10367 -0
- package/dist/build/pdf-large-rw.meta.json +99 -0
- package/dist/build/pdf-large-rw.min.js +53 -0
- package/dist/build/pdf-large.js +5473 -0
- package/dist/build/pdf-large.meta.json +84 -0
- package/dist/build/pdf-large.min.js +32 -0
- package/dist/build/pdf-legacy-rw.js +12402 -0
- package/dist/build/pdf-legacy-rw.meta.json +110 -0
- package/dist/build/pdf-legacy-rw.min.js +53 -0
- package/dist/build/pdf-legacy.js +7508 -0
- package/dist/build/pdf-legacy.meta.json +95 -0
- package/dist/build/pdf-legacy.min.js +32 -0
- package/dist/build/pdf-rw.js +7578 -0
- package/dist/build/pdf-rw.meta.json +77 -0
- package/dist/build/pdf-rw.min.js +53 -0
- package/dist/build/pdf.js +2684 -0
- package/dist/build/pdf.meta.json +62 -0
- package/dist/build/pdf.min.js +32 -0
- package/dist/standalone/pdf-full-rw.js +16798 -0
- package/dist/standalone/pdf-full-rw.meta.json +78 -0
- package/dist/standalone/pdf-full-rw.min.js +56 -0
- package/dist/standalone/pdf-full.js +11904 -0
- package/dist/standalone/pdf-full.meta.json +63 -0
- package/dist/standalone/pdf-full.min.js +35 -0
- package/dist/standalone/pdf-large-rw.js +16193 -0
- package/dist/standalone/pdf-large-rw.meta.json +72 -0
- package/dist/standalone/pdf-large-rw.min.js +56 -0
- package/dist/standalone/pdf-large.js +11299 -0
- package/dist/standalone/pdf-large.meta.json +57 -0
- package/dist/standalone/pdf-large.min.js +35 -0
- package/dist/standalone/pdf-legacy-rw.js +18228 -0
- package/dist/standalone/pdf-legacy-rw.meta.json +83 -0
- package/dist/standalone/pdf-legacy-rw.min.js +56 -0
- package/dist/standalone/pdf-legacy.js +13334 -0
- package/dist/standalone/pdf-legacy.meta.json +68 -0
- package/dist/standalone/pdf-legacy.min.js +35 -0
- package/dist/standalone/pdf-rw.js +13404 -0
- package/dist/standalone/pdf-rw.meta.json +50 -0
- package/dist/standalone/pdf-rw.min.js +56 -0
- package/dist/standalone/pdf.js +8510 -0
- package/dist/standalone/pdf.meta.json +35 -0
- package/dist/standalone/pdf.min.js +35 -0
- package/docs/README.md +53 -0
- package/docs/api/README.md +38 -0
- package/docs/api/_shared/README.md +91 -0
- package/docs/api/action/README.md +29 -0
- package/docs/api/action/action.md +81 -0
- package/docs/api/action/goTo.md +66 -0
- package/docs/api/action/launch.md +58 -0
- package/docs/api/action/named.md +55 -0
- package/docs/api/action/uri.md +54 -0
- package/docs/api/annot/README.md +53 -0
- package/docs/api/annot/annot.md +114 -0
- package/docs/api/annot/fileAttach.md +53 -0
- package/docs/api/annot/freeText.md +68 -0
- package/docs/api/annot/ink.md +69 -0
- package/docs/api/annot/link.md +74 -0
- package/docs/api/annot/markup.md +83 -0
- package/docs/api/annot/popup.md +52 -0
- package/docs/api/annot/projection.md +56 -0
- package/docs/api/annot/redact.md +67 -0
- package/docs/api/annot/square.md +87 -0
- package/docs/api/annot/stamp.md +54 -0
- package/docs/api/annot/text.md +69 -0
- package/docs/api/annot/widget.md +69 -0
- package/docs/api/associatedFiles/README.md +9 -0
- package/docs/api/associatedFiles/associatedFiles.md +78 -0
- package/docs/api/bundles/README.md +68 -0
- package/docs/api/bundles/dist-matrix.md +165 -0
- package/docs/api/bundles/pdf-full.md +148 -0
- package/docs/api/bundles/pdf-large.md +144 -0
- package/docs/api/bundles/pdf-legacy.md +169 -0
- package/docs/api/content/README.md +29 -0
- package/docs/api/content/color.md +99 -0
- package/docs/api/content/graphics.md +114 -0
- package/docs/api/content/images.md +124 -0
- package/docs/api/content/ops.md +100 -0
- package/docs/api/content/stream.md +107 -0
- package/docs/api/content/text.md +98 -0
- package/docs/api/crypto/README.md +29 -0
- package/docs/api/crypto/aesGcm.md +72 -0
- package/docs/api/crypto/permissions.md +79 -0
- package/docs/api/crypto/security.md +98 -0
- package/docs/api/crypto/standardV4.md +104 -0
- package/docs/api/crypto/standardV5.md +84 -0
- package/docs/api/crypto/standardV6.md +93 -0
- package/docs/api/destination/README.md +9 -0
- package/docs/api/destination/destination.md +79 -0
- package/docs/api/document/README.md +29 -0
- package/docs/api/document/builder.md +281 -0
- package/docs/api/document/catalog.md +98 -0
- package/docs/api/document/document.md +187 -0
- package/docs/api/document/encryptedWriter.md +149 -0
- package/docs/api/document/incrementalWriter.md +148 -0
- package/docs/api/document/page.md +99 -0
- package/docs/api/document/pages.md +82 -0
- package/docs/api/document/resources.md +102 -0
- package/docs/api/document/writer.md +157 -0
- package/docs/api/document/xrefStreamWriter.md +122 -0
- package/docs/api/embedded/README.md +13 -0
- package/docs/api/embedded/collection.md +80 -0
- package/docs/api/embedded/embeddedFile.md +86 -0
- package/docs/api/embedded/fileSpec.md +87 -0
- package/docs/api/errors.md +110 -0
- package/docs/api/extra/3d-richmedia.md +76 -0
- package/docs/api/extra/README.md +99 -0
- package/docs/api/extra/annot-extended.md +71 -0
- package/docs/api/extra/associated-files.md +70 -0
- package/docs/api/extra/ccitt-fax-decoder.md +74 -0
- package/docs/api/extra/color-spaces-extended.md +72 -0
- package/docs/api/extra/content-ops-extended.md +82 -0
- package/docs/api/extra/document-parts.md +69 -0
- package/docs/api/extra/embedded-files-portfolio.md +87 -0
- package/docs/api/extra/font-cid-typed.md +77 -0
- package/docs/api/extra/font-color-tagging.md +76 -0
- package/docs/api/extra/form-actions-extended.md +75 -0
- package/docs/api/extra/info-dict-deprecated.md +72 -0
- package/docs/api/extra/jbig2-read.md +80 -0
- package/docs/api/extra/legacy-deprecated-annots.md +89 -0
- package/docs/api/extra/legacy-deprecated-filters.md +78 -0
- package/docs/api/extra/legacy-rc4-read.md +74 -0
- package/docs/api/extra/legacy-xfa-read.md +65 -0
- package/docs/api/extra/linearization-write.md +71 -0
- package/docs/api/extra/misc.md +93 -0
- package/docs/api/extra/optional-content-extended.md +83 -0
- package/docs/api/extra/pdf-a-output-intent.md +65 -0
- package/docs/api/extra/pdf-sandbox.md +76 -0
- package/docs/api/extra/pdf-ua-tagged.md +63 -0
- package/docs/api/extra/pdf-x-prepress.md +65 -0
- package/docs/api/extra/redaction-iso32005.md +65 -0
- package/docs/api/extra/shading-typed.md +73 -0
- package/docs/api/extra/sig-aes-gcm.md +69 -0
- package/docs/api/extra/sig-pades.md +103 -0
- package/docs/api/extra/tagged-pdf-typed.md +78 -0
- package/docs/api/extra/transparency-typed.md +74 -0
- package/docs/api/extra/well-tagged-pdf.md +61 -0
- package/docs/api/extra/xmp-extended.md +65 -0
- package/docs/api/font/README.md +25 -0
- package/docs/api/font/embed.md +157 -0
- package/docs/api/font/encoding.md +95 -0
- package/docs/api/font/font.md +97 -0
- package/docs/api/font/type3.md +89 -0
- package/docs/api/form/README.md +35 -0
- package/docs/api/form/acroform.md +88 -0
- package/docs/api/form/appearance.md +87 -0
- package/docs/api/form/button.md +97 -0
- package/docs/api/form/choice.md +96 -0
- package/docs/api/form/fieldTree.md +93 -0
- package/docs/api/form/signature.md +90 -0
- package/docs/api/form/text.md +88 -0
- package/docs/api/linearization/README.md +11 -0
- package/docs/api/linearization/linearization.md +81 -0
- package/docs/api/main.md +116 -0
- package/docs/api/metadata/README.md +10 -0
- package/docs/api/metadata/info.md +70 -0
- package/docs/api/metadata/xmp.md +62 -0
- package/docs/api/ocg/README.md +23 -0
- package/docs/api/ocg/config.md +95 -0
- package/docs/api/ocg/ocg.md +77 -0
- package/docs/api/outline/README.md +11 -0
- package/docs/api/outline/outline.md +107 -0
- package/docs/api/pdf.md +152 -0
- package/docs/api/prepress/README.md +10 -0
- package/docs/api/prepress/outputIntent.md +79 -0
- package/docs/api/prepress/pageBoundary.md +75 -0
- package/docs/api/sig/README.md +32 -0
- package/docs/api/sig/byteRange.md +120 -0
- package/docs/api/sig/certChain.md +84 -0
- package/docs/api/sig/dss.md +111 -0
- package/docs/api/sig/oids.md +76 -0
- package/docs/api/sig/sha1.md +72 -0
- package/docs/api/sig/sign.md +317 -0
- package/docs/api/sig/signature.md +178 -0
- package/docs/api/sig/timestamp.md +84 -0
- package/docs/api/syntax/README.md +29 -0
- package/docs/api/syntax/crossRefStream.md +115 -0
- package/docs/api/syntax/filters/README.md +50 -0
- package/docs/api/syntax/filters/ascii85.md +76 -0
- package/docs/api/syntax/filters/asciiHex.md +73 -0
- package/docs/api/syntax/filters/dispatch.md +125 -0
- package/docs/api/syntax/filters/flate.md +134 -0
- package/docs/api/syntax/filters/runLength.md +78 -0
- package/docs/api/syntax/objStream.md +88 -0
- package/docs/api/syntax/parser-obj.md +97 -0
- package/docs/api/syntax/parser.md +151 -0
- package/docs/api/syntax/serializer.md +109 -0
- package/docs/api/syntax/tokenizer.md +104 -0
- package/docs/api/syntax/trailer.md +85 -0
- package/docs/api/syntax/xref.md +139 -0
- package/docs/api/tagged/README.md +25 -0
- package/docs/api/tagged/classMap.md +67 -0
- package/docs/api/tagged/markedContent.md +62 -0
- package/docs/api/tagged/parentTree.md +67 -0
- package/docs/api/tagged/roleMap.md +67 -0
- package/docs/api/tagged/structElement.md +76 -0
- package/docs/api/tagged/structTree.md +75 -0
- package/docs/guide/coverage.md +113 -0
- package/docs/guide/crypto.md +121 -0
- package/docs/guide/extending.md +76 -0
- package/docs/guide/getting-started.md +75 -0
- package/docs/guide/legacy-1.7.md +42 -0
- package/docs/guide/pades-integration.md +579 -0
- package/docs/guide/read-pdf.md +89 -0
- package/package.json +97 -4
- package/src/_shared/index.js +179 -0
- package/src/action/action.js +119 -0
- package/src/action/goTo.js +89 -0
- package/src/action/launch.js +61 -0
- package/src/action/named.js +54 -0
- package/src/action/uri.js +51 -0
- package/src/annot/annot.js +212 -0
- package/src/annot/fileAttach.js +55 -0
- package/src/annot/freeText.js +82 -0
- package/src/annot/ink.js +77 -0
- package/src/annot/link.js +77 -0
- package/src/annot/markup.js +91 -0
- package/src/annot/popup.js +53 -0
- package/src/annot/projection.js +52 -0
- package/src/annot/redact.js +87 -0
- package/src/annot/square.js +132 -0
- package/src/annot/stamp.js +48 -0
- package/src/annot/text.js +54 -0
- package/src/annot/widget.js +61 -0
- package/src/associatedFiles/associatedFiles.js +86 -0
- package/src/bundles/pdf-full.js +91 -0
- package/src/bundles/pdf-large.js +81 -0
- package/src/bundles/pdf-legacy.js +107 -0
- package/src/content/color.js +114 -0
- package/src/content/graphics.js +192 -0
- package/src/content/images.js +160 -0
- package/src/content/ops.js +137 -0
- package/src/content/stream.js +154 -0
- package/src/content/text.js +125 -0
- package/src/crypto/aesGcm.js +123 -0
- package/src/crypto/permissions.js +112 -0
- package/src/crypto/security.js +327 -0
- package/src/crypto/standardV4.js +443 -0
- package/src/crypto/standardV5.js +306 -0
- package/src/crypto/standardV6.js +334 -0
- package/src/destination/destination.js +183 -0
- package/src/document/builder.js +618 -0
- package/src/document/catalog.js +100 -0
- package/src/document/document.js +472 -0
- package/src/document/encryptedWriter.js +554 -0
- package/src/document/incrementalWriter.js +514 -0
- package/src/document/page.js +131 -0
- package/src/document/pages.js +103 -0
- package/src/document/resources.js +146 -0
- package/src/document/writer.js +211 -0
- package/src/document/xrefStreamWriter.js +353 -0
- package/src/embedded/collection.js +102 -0
- package/src/embedded/embeddedFile.js +99 -0
- package/src/embedded/fileSpec.js +137 -0
- package/src/errors.js +78 -0
- package/src/extra/3d-richmedia.js +171 -0
- package/src/extra/annot-extended.js +200 -0
- package/src/extra/associated-files.js +131 -0
- package/src/extra/ccitt-fax-decoder.js +776 -0
- package/src/extra/color-spaces-extended.js +196 -0
- package/src/extra/content-ops-extended.js +153 -0
- package/src/extra/document-parts.js +149 -0
- package/src/extra/embedded-files-portfolio.js +234 -0
- package/src/extra/font-cid-typed.js +185 -0
- package/src/extra/font-color-tagging.js +144 -0
- package/src/extra/form-actions-extended.js +196 -0
- package/src/extra/info-dict-deprecated.js +137 -0
- package/src/extra/jbig2-read.js +169 -0
- package/src/extra/legacy-deprecated-annots.js +198 -0
- package/src/extra/legacy-deprecated-filters.js +167 -0
- package/src/extra/legacy-rc4-read.js +235 -0
- package/src/extra/legacy-xfa-read.js +104 -0
- package/src/extra/linearization-write.js +97 -0
- package/src/extra/misc.js +217 -0
- package/src/extra/optional-content-extended.js +142 -0
- package/src/extra/pdf-a-output-intent.js +112 -0
- package/src/extra/pdf-sandbox.js +88 -0
- package/src/extra/pdf-ua-tagged.js +116 -0
- package/src/extra/pdf-x-prepress.js +114 -0
- package/src/extra/redaction-iso32005.js +136 -0
- package/src/extra/shading-typed.js +222 -0
- package/src/extra/sig-aes-gcm.js +135 -0
- package/src/extra/sig-pades.js +242 -0
- package/src/extra/tagged-pdf-typed.js +203 -0
- package/src/extra/transparency-typed.js +135 -0
- package/src/extra/well-tagged-pdf.js +138 -0
- package/src/extra/xmp-extended.js +190 -0
- package/src/font/embed.js +480 -0
- package/src/font/encoding.js +92 -0
- package/src/font/font.js +101 -0
- package/src/font/type3.js +75 -0
- package/src/form/acroform.js +94 -0
- package/src/form/appearance.js +90 -0
- package/src/form/button.js +105 -0
- package/src/form/choice.js +152 -0
- package/src/form/fieldTree.js +120 -0
- package/src/form/signature.js +100 -0
- package/src/form/text.js +101 -0
- package/src/linearization/linearization.js +107 -0
- package/src/main.js +411 -0
- package/src/metadata/info.js +87 -0
- package/src/metadata/xmp.js +62 -0
- package/src/ocg/config.js +156 -0
- package/src/ocg/ocg.js +124 -0
- package/src/outline/outline.js +157 -0
- package/src/pdf.js +133 -0
- package/src/prepress/outputIntent.js +118 -0
- package/src/prepress/pageBoundary.js +108 -0
- package/src/sig/byteRange.js +306 -0
- package/src/sig/certChain.js +247 -0
- package/src/sig/dss.js +317 -0
- package/src/sig/oids.js +157 -0
- package/src/sig/sha1.js +142 -0
- package/src/sig/sign.js +1899 -0
- package/src/sig/signature.js +1441 -0
- package/src/sig/timestamp.js +236 -0
- package/src/syntax/crossRefStream.js +133 -0
- package/src/syntax/filters/ascii85.js +122 -0
- package/src/syntax/filters/asciiHex.js +83 -0
- package/src/syntax/filters/dispatch.js +176 -0
- package/src/syntax/filters/flate.js +316 -0
- package/src/syntax/filters/runLength.js +96 -0
- package/src/syntax/objStream.js +99 -0
- package/src/syntax/parser-obj.js +52 -0
- package/src/syntax/parser.js +321 -0
- package/src/syntax/serializer.js +221 -0
- package/src/syntax/tokenizer.js +290 -0
- package/src/syntax/trailer.js +76 -0
- package/src/syntax/xref.js +341 -0
- package/src/tagged/classMap.js +81 -0
- package/src/tagged/markedContent.js +123 -0
- package/src/tagged/parentTree.js +126 -0
- package/src/tagged/roleMap.js +107 -0
- package/src/tagged/structElement.js +138 -0
- package/src/tagged/structTree.js +94 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 AwaCloud SAS
|
|
3
|
+
* Author: Matthieu Bouilloux
|
|
4
|
+
* SPDX-License-Identifier: AGPL-3.0-only
|
|
5
|
+
* Dual-licensed; see the NOTICE file for licensing and any additional terms.
|
|
6
|
+
*/
|
|
7
|
+
/* GENERATED — do not edit. Source: packages/front/office/pdf/tools/generate-bundles.mjs */
|
|
8
|
+
var S$={name:"pdfLegacyRwPackage",dependencies:["bitstream","huffman","lz77","deflate","adler32","b64","hex","zlib","lzw","utf8","aes","cbc","gcm","sha256","sha384","sha512","bitArray","asn1","asn1Oid","pem","random","bn","hmac","rsa","ecc","ed25519"],factory(r0,e0,$$,J$,Q$,q$,Z$,Y$,X$,z$,G$,H$,V$,U$,W$,F$,L$,K$,I$,C$,j$,D$,R$,B$,M$,T$){let o0=Object.create(null),k0=Object.create(null);function I0(i){o0[i.name]=i}function S0(i){if(i in k0)return k0[i];let A=o0[i];if(!A)throw Error("prebuilt: unknown module "+i);let D=A.dependencies.map(S0);return k0[i]=A.factory.apply({},D)}k0.bitstream=r0,k0.huffman=e0,k0.lz77=$$,k0.deflate=J$,k0.adler32=Q$,k0.b64=q$,k0.hex=Z$,k0.zlib=Y$,k0.lzw=X$,k0.utf8=z$,k0.aes=G$,k0.cbc=H$,k0.gcm=V$,k0.sha256=U$,k0.sha384=W$,k0.sha512=F$,k0.bitArray=L$,k0.asn1=K$,k0.asn1Oid=I$,k0.pem=C$,k0.random=j$,k0.bn=D$,k0.hmac=R$,k0.rsa=B$,k0.ecc=M$,k0.ed25519=T$,I0({name:"pdfErrors",dependencies:[],factory:function(){class i extends Error{constructor(C,M,j){super(M);if(this.name=new.target.name,this.code=C,j&&j.context)this.context=j.context;if(j&&j.cause)this.cause=j.cause}}class A extends i{}class D extends i{}class F extends i{}class I extends i{}function P(C){return C instanceof i}return{PdfError:i,ParseError:A,RenderError:D,ContractError:F,EncryptionError:I,isPdfError:P}}}),I0({name:"pdfShared",dependencies:[],factory:function(){let i=new Uint8Array([37,80,68,70,45]),A=new Uint8Array([37,37,69,79,70]),D=new Uint8Array([37,226,227,207,211,10]),F=Object.freeze({NUL:0,HT:9,LF:10,FF:12,CR:13,SP:32,HASH:35,PERCENT:37,LPAREN:40,RPAREN:41,PLUS:43,MINUS:45,DOT:46,SLASH:47,ZERO:48,NINE:57,LANGLE:60,RANGLE:62,A_UP:65,F_UP:70,Z_UP:90,LBRACK:91,BACKSLASH:92,RBRACK:93,A_LO:97,F_LO:102,Z_LO:122,LBRACE:123,RBRACE:125});function I(B){return B===32||B===9||B===10||B===13||B===12||B===0}function P(B){return B===10||B===13}function C(B){return B>=48&&B<=57}function M(B){return B>=48&&B<=57||B>=65&&B<=70||B>=97&&B<=102}function j(B){return B===40||B===41||B===60||B===62||B===91||B===93||B===47||B===37||B===123||B===125}function W(B){return!I(B)&&!j(B)}function G(B){if(B>=48&&B<=57)return B-48;if(B>=65&&B<=70)return B-65+10;if(B>=97&&B<=102)return B-97+10;return-1}let H=function(){let k=new Int8Array(128);k.fill(-1);for(let n=48;n<=57;n++)k[n]=n-48;for(let n=65;n<=70;n++)k[n]=n-65+10;for(let n=97;n<=102;n++)k[n]=n-97+10;return k}(),X=new TextEncoder,J=new TextDecoder("utf-8"),z=new TextDecoder("utf-8",{fatal:!1}),V=new TextDecoder("latin1");function Q(B){return X.encode(B)}function Z(B){return J.decode(B)}function $(B){return z.decode(B)}function q(B){return V.decode(B)}function Y(B){return String(B).padStart(10,"0")}function U(B){let k="<";for(let n=0;n<B.length;n++)k+="0123456789ABCDEF"[B[n]>>4]+"0123456789ABCDEF"[B[n]&15];return k+">"}function K(B,k,n){if(!B||!k)return!1;if(n==null){if(B.length!==k.length)return!1;n=B.length}else if(B.length<n||k.length<n)return!1;let h=0;for(let d=0;d<n;d++)h|=B[d]^k[d];return h===0}function T(B){let k=0;for(let d of B)k+=d.length;let n=new Uint8Array(k),h=0;for(let d of B)n.set(d,h),h+=d.length;return n}return{HEADER_PREFIX:i,EOF_MARKER:A,BINARY_MARKER:D,ASCII:F,isWs:I,isEol:P,isDigit:C,isHex:M,isDelim:j,isRegular:W,hexNibble:G,HEX_LO:H,te:X,tdUtf8:J,tdUtf8Lenient:z,tdLatin1:V,encodeAscii:Q,decodeUtf8:Z,decodeUtf8Lenient:$,decodeLatin1:q,pad10:Y,hexLit:U,bytesEqual:K,concatBytes:T}}}),I0({name:"pdfTokenizer",dependencies:["pdfErrors","pdfShared"],factory:function(i,A){let{ParseError:D}=i,{ASCII:F,isWs:I,isEol:P,isDigit:C,isRegular:M,hexNibble:j}=A,{HT:W,LF:G,CR:H,FF:X,LPAREN:J,RPAREN:z,LANGLE:V,RANGLE:Q,LBRACK:Z,RBRACK:$,SLASH:q,PERCENT:Y,BACKSLASH:U,PLUS:K,MINUS:T,DOT:B,ZERO:k,HASH:n}=F;function h(o,_){if(!(o instanceof Uint8Array))throw new D("pdf/tokenizer/bad-input","tokenize() expects a Uint8Array",{context:{typeof:typeof o}});let f=!!(_&&_.keepWhitespace),L=_&&_.start|0||0,O=_&&Number.isFinite(_.end)?Math.min(_.end|0,o.length):o.length,w=null;function N(){return L}function x(Q0){if(Q0<0||Q0>o.length)throw new D("pdf/tokenizer/bad-seek","seek out of range",{context:{offset:Q0,total:o.length}});L=Q0,w=null}function R(){let Q0=L;L++;let e=[];while(L<O){let Y0=o[L];if(!M(Y0))break;if(Y0===n){if(L+2>=O)throw new D("pdf/tokenizer/bad-name-escape","truncated #xx escape in name",{context:{offset:L}});let v=j(o[L+1]),q0=j(o[L+2]);if(v<0||q0<0)throw new D("pdf/tokenizer/bad-name-escape","invalid hex digits in name escape",{context:{offset:L}});e.push(v<<4|q0),L+=3}else e.push(Y0),L++}return{kind:"name",value:new TextDecoder("utf-8",{fatal:!1}).decode(Uint8Array.from(e)),offset:Q0,end:L}}function S(){let Q0=L,e=!1;if(o[L]===K||o[L]===T)L++;while(L<O){let q0=o[L];if(C(q0)){L++;continue}if(q0===B&&!e){e=!0,L++;continue}break}let Y0=new TextDecoder("latin1").decode(o.subarray(Q0,L));if(Y0===""||Y0==="+"||Y0==="-"||Y0===".")throw new D("pdf/tokenizer/bad-number","empty number token",{context:{offset:Q0}});let v=Number(Y0);if(!Number.isFinite(v))throw new D("pdf/tokenizer/bad-number","cannot parse number",{context:{raw:Y0,offset:Q0}});return{kind:e?"real":"int",value:v,offset:Q0,end:L,raw:Y0}}function E(){let Q0=L;L++;let e=[],Y0=1;while(L<O&&Y0>0){let v=o[L];if(v===J){Y0++,e.push(v),L++;continue}if(v===z){if(Y0--,Y0===0){L++;break}e.push(v),L++;continue}if(v===U){if(L+1>=O)throw new D("pdf/tokenizer/bad-string","trailing backslash in literal string",{context:{offset:L}});let q0=o[L+1];if(q0===G){L+=2;continue}if(q0===H){if(L+=2,L<O&&o[L]===G)L++;continue}if(q0===110){e.push(G),L+=2;continue}if(q0===114){e.push(H),L+=2;continue}if(q0===116){e.push(W),L+=2;continue}if(q0===98){e.push(8),L+=2;continue}if(q0===102){e.push(X),L+=2;continue}if(q0===J||q0===z||q0===U){e.push(q0),L+=2;continue}if(q0>=k&&q0<=k+7){let U0=0,g=0;L++;while(g<3&&L<O&&o[L]>=k&&o[L]<=k+7)U0=U0<<3|o[L]-k,L++,g++;e.push(U0&255);continue}L++;continue}if(v===H){if(e.push(G),L++,L<O&&o[L]===G)L++;continue}e.push(v),L++}if(Y0!==0)throw new D("pdf/tokenizer/unterminated-string","literal string was not closed",{context:{offset:Q0}});return{kind:"string",value:Uint8Array.from(e),offset:Q0,end:L}}function y(){let Q0=L;L++;let e=[];while(L<O){let v=o[L];if(v===Q){L++;break}if(I(v)){L++;continue}let q0=j(v);if(q0<0)throw new D("pdf/tokenizer/bad-hex","non-hex byte in hex string",{context:{offset:L,byte:v}});e.push(q0),L++}if(e.length%2===1)e.push(0);let Y0=new Uint8Array(e.length/2);for(let v=0;v<Y0.length;v++)Y0[v]=e[2*v]<<4|e[2*v+1];return{kind:"hex",value:Y0,offset:Q0,end:L}}function l(){let Q0=L;while(L<O&&M(o[L]))L++;let e=new TextDecoder("latin1").decode(o.subarray(Q0,L));if(e==="")throw new D("pdf/tokenizer/empty-keyword","empty keyword",{context:{offset:Q0}});return{kind:"kw",value:e,offset:Q0,end:L}}function J0(){if(w){let e=w;return w=null,e}while(L<O){let e=o[L];if(I(e)){if(f){let Y0=L;while(L<O&&I(o[L]))L++;return{kind:"ws",offset:Y0,end:L}}L++;continue}if(e===Y){if(L+4<O&&o[L+1]===Y&&o[L+2]===69&&o[L+3]===79&&o[L+4]===70){let Y0=L;return L+=5,{kind:"eof_marker",offset:Y0,end:L}}while(L<O&&!P(o[L]))L++;if(L<O&&o[L]===H)L++;if(L<O&&o[L]===G)L++;continue}break}if(L>=O)return null;let Q0=o[L];if(Q0===q)return R();if(Q0===Z)return{kind:"open_arr",offset:L++,end:L};if(Q0===$)return{kind:"close_arr",offset:L++,end:L};if(Q0===V){if(L+1<O&&o[L+1]===V){let e=L;return L+=2,{kind:"open_dict",offset:e,end:L}}return y()}if(Q0===Q){if(L+1<O&&o[L+1]===Q){let e=L;return L+=2,{kind:"close_dict",offset:e,end:L}}throw new D("pdf/tokenizer/unexpected-rangle","lone > outside hex string",{context:{offset:L}})}if(Q0===J)return E();if(Q0===K||Q0===T||Q0===B||C(Q0))return S();return l()}function $0(){if(!w)w=J0();return w}return{next:J0,peek:$0,pos:N,seek:x,bytes:o}}function d(o,_,f){let L=o.length,O=_.length;if(O===0||O>L)return-1;let w=Number.isFinite(f)?Math.min(f|0,L-O):L-O;$:for(let N=w;N>=0;N--){for(let x=0;x<O;x++)if(o[N+x]!==_[x])continue $;return N}return-1}return{tokenize:h,lastIndexOfBytes:d}}}),I0({name:"pdfParserObj",dependencies:[],factory:function(){let i={nul:()=>({type:"null"}),bool:(F)=>({type:"bool",value:!!F}),int:(F)=>({type:"int",value:F|0}),real:(F)=>({type:"real",value:+F}),name:(F)=>({type:"name",value:String(F)}),string:(F,I)=>({type:"string",value:F,syntax:I==="hex"?"hex":"lit"}),array:(F)=>({type:"array",items:F||[]}),dict:(F)=>({type:"dict",entries:F||{}}),ref:(F,I)=>({type:"ref",num:F|0,gen:I|0||0}),stream:(F,I)=>({type:"stream",dict:F,raw:I})};function A(F,I){if(!F||F.type!=="dict")return;return F.entries[I]}function D(F,I){return!!(F&&F.type===I)}return{obj:i,getEntry:A,isType:D}}}),I0({name:"pdfParser",dependencies:["pdfErrors","pdfParserObj","pdfTokenizer"],factory:function(i,A,D){let{ParseError:F}=i,{obj:I,getEntry:P,isType:C}=A,M=D.tokenize;function j(U,K){let T=U.entries&&U.entries.Length;if(!T)return-1;if(T.type==="int")return T.value;if(T.type==="ref"&&typeof K==="function"){let B=K(T);if(B&&B.type==="int")return B.value}return-1}function W(U,K,T){let B=[101,110,100,115,116,114,101,97,109],k=Math.min(U.length,K+(T|0));$:for(let n=K;n+B.length<=k;n++){for(let d=0;d<B.length;d++)if(U[n+d]!==B[d])continue $;let h=n;if(h>K&&U[h-1]===10)h--;if(h>K&&U[h-1]===13)h--;return h}return-1}function G(U){let K=U.bytes,T=U.pos();while(T<K.length){let B=K[T];if(B===32||B===9||B===10||B===13)T++;else break}U.seek(T)}let H={maxDepth:200,maxArrayLen:1e6,maxStreamBytes:268435456};function X(U){if(U&&typeof U==="object"){if(Number.isInteger(U.maxDepth)&&U.maxDepth>0)H.maxDepth=U.maxDepth;if(Number.isInteger(U.maxArrayLen)&&U.maxArrayLen>0)H.maxArrayLen=U.maxArrayLen;if(Number.isInteger(U.maxStreamBytes)&&U.maxStreamBytes>0)H.maxStreamBytes=U.maxStreamBytes}return H}function J(U){let K=U.next();if(!K)throw new F("pdf/parser/eof","unexpected end of input");return z(U,K,0)}function z(U,K,T){if(T>H.maxDepth)throw new F("pdf/parser/depth-exceeded","parser depth limit exceeded",{context:{depth:T,limit:H.maxDepth,offset:K&&K.offset}});switch(K.kind){case"kw":if(K.value==="null")return{type:"null"};if(K.value==="true")return{type:"bool",value:!0};if(K.value==="false")return{type:"bool",value:!1};throw new F("pdf/parser/unexpected-keyword",`unexpected keyword "${K.value}"`,{context:{offset:K.offset,keyword:K.value}});case"name":return{type:"name",value:K.value};case"string":return{type:"string",value:K.value,syntax:"lit"};case"hex":return{type:"string",value:K.value,syntax:"hex"};case"int":return V(U,K);case"real":return{type:"real",value:K.value};case"open_arr":return Q(U,K.offset,T);case"open_dict":return Z(U,K.offset,T);case"close_arr":case"close_dict":throw new F("pdf/parser/unbalanced",`unexpected ${K.kind}`,{context:{offset:K.offset}});default:throw new F("pdf/parser/unexpected-token",`unexpected token of kind "${K.kind}"`,{context:{offset:K.offset,kind:K.kind}})}}function V(U,K){let T=U.pos(),B=U.peek();if(!B||B.kind!=="int")return{type:"int",value:K.value};U.next();let k=U.peek();if(k&&k.kind==="kw"&&k.value==="R")return U.next(),{type:"ref",num:K.value|0,gen:B.value|0};return U.seek(T),{type:"int",value:K.value}}function Q(U,K,T){let B=[];for(;;){let k=U.peek();if(!k)throw new F("pdf/parser/unterminated-array","array not closed",{context:{offset:K}});if(k.kind==="close_arr")return U.next(),{type:"array",items:B};if(B.length>=H.maxArrayLen)throw new F("pdf/parser/array-too-long","array exceeds parserLimits.maxArrayLen",{context:{length:B.length,limit:H.maxArrayLen,offset:K}});let n=U.next();B.push(z(U,n,(T|0)+1))}}function Z(U,K,T){let B={};for(;;){let k=U.peek();if(!k)throw new F("pdf/parser/unterminated-dict","dict not closed",{context:{offset:K}});if(k.kind==="close_dict")return U.next(),{type:"dict",entries:B};if(k.kind!=="name")throw new F("pdf/parser/dict-key-not-name","expected /Name as dict key",{context:{offset:k.offset,kind:k.kind}});let n=U.next(),h=U.next();if(!h)throw new F("pdf/parser/eof","unexpected end of input");let d=z(U,h,(T|0)+1);B[n.value]=d}}function $(U,K){let T=U.next();if(!T||T.kind!=="int")throw new F("pdf/parser/indirect-bad-num","expected object number",{context:{offset:T?T.offset:U.pos()}});let B=U.next();if(!B||B.kind!=="int")throw new F("pdf/parser/indirect-bad-gen","expected generation number",{context:{offset:B?B.offset:U.pos()}});let k=U.next();if(!k||k.kind!=="kw"||k.value!=="obj")throw new F("pdf/parser/indirect-missing-obj","expected obj keyword",{context:{offset:k?k.offset:U.pos()}});let n=J(U),h=n,d=U.peek();if(n.type==="dict"&&d&&d.kind==="kw"&&d.value==="stream"){U.next();let _=U.bytes,f=U.pos();if(f<_.length&&_[f]===13)f++;if(f<_.length&&_[f]===10)f++;U.seek(f);let L=U.pos(),O=j(n,K),w;if(Number.isFinite(O)&&O>=0&&L+O<=_.length)w=L+O;else if(w=W(_,L,H.maxStreamBytes),w<0)throw new F("pdf/parser/stream/no-endstream","cannot locate endstream within quota",{context:{offset:L,num:T.value,gen:B.value,quota:H.maxStreamBytes}});let N=_.subarray(L,w);U.seek(w),G(U);let x=U.next();if(!x||x.kind!=="kw"||x.value!=="endstream")throw new F("pdf/parser/stream/expected-endstream","expected endstream",{context:{offset:x?x.offset:U.pos()}});h={type:"stream",dict:n,raw:N}}let o=U.next();if(!o||o.kind!=="kw"||o.value!=="endobj")throw new F("pdf/parser/indirect-missing-endobj","expected endobj",{context:{offset:o?o.offset:U.pos(),num:T.value,gen:B.value}});return{num:T.value,gen:B.value,value:h}}function q(U){let K=M(U);return J(K)}function Y(U,K,T){let B=M(U,{start:K|0});return $(B,T)}return{tokenize:M,parseObject:J,parseIndirect:$,parseFromBytes:q,parseIndirectFromBytes:Y,parserLimits:H,setParserLimits:X,obj:I,getEntry:P,isType:C}}}),I0({name:"pdfXref",dependencies:["pdfErrors","pdfTokenizer","pdfParser"],factory:function(i,A,D){let{ParseError:F,RenderError:I}=i,P=A.tokenize,C=A.lastIndexOfBytes,M=D.parseObject;function j($){let q=Math.max(0,$.length-8192),Y=C($,new Uint8Array([115,116,97,114,116,120,114,101,102]),$.length);if(Y<q)return-1;return Y}function W($,q){let Y=P($,{start:q}),U=Y.next();if(!U||U.kind!=="kw"||U.value!=="startxref")throw new F("pdf/xref/no-startxref","startxref keyword not found",{context:{offset:q}});let K=Y.next();if(!K||K.kind!=="int"||K.value<0)throw new F("pdf/xref/bad-startxref","startxref must be followed by a non-negative integer",{context:{offset:q}});return K.value}function G($,q,Y){let U=0;for(let K=0;K<Y;K++){let T=$[q+K];if(T<48||T>57)throw new F("pdf/xref/bad-digit","expected ASCII digit in xref entry",{context:{offset:q+K,byte:T}});U=U*10+(T-48)}return U}function H($,q){let Y=P($,{start:q}),U=Y.next();if(!U||U.kind!=="kw"||U.value!=="xref")throw new F("pdf/xref/no-xref-keyword","expected xref keyword",{context:{offset:q}});let K={};for(;;){let T=Y.peek();if(!T||T.kind!=="int"){if(T)Y.seek(T.offset);break}Y.next();let B=Y.next();if(!B||B.kind!=="int"||B.value<0)throw new F("pdf/xref/bad-subsection-header","xref subsection header must be `<first> <count>`",{context:{offset:T.offset}});let k=Y.pos();if(k<$.length&&$[k]===13)k++;if(k<$.length&&$[k]===10)k++;for(let n=0;n<B.value;n++){if(k+20>$.length)throw new F("pdf/xref/truncated-entry","truncated xref entry",{context:{offset:k,expected:20}});let h=G($,k,10);if($[k+10]!==32)throw new F("pdf/xref/bad-entry-format","xref entry missing space at col 10",{context:{offset:k}});let d=G($,k+11,5);if($[k+16]!==32)throw new F("pdf/xref/bad-entry-format","xref entry missing space at col 16",{context:{offset:k}});let o=$[k+17];if(o!==110&&o!==102)throw new F("pdf/xref/bad-entry-flag","xref entry flag must be n or f",{context:{offset:k,byte:o}});K[T.value+n]={offset:h,gen:d,free:o===102},k+=20}Y.seek(k)}return{entries:K,end:Y.pos()}}function X($,q){let Y=P($,{start:q}),U=Y.next();if(!U||U.kind!=="kw"||U.value!=="trailer")throw new F("pdf/xref/no-trailer","expected trailer keyword",{context:{offset:q}});let K=M(Y);if(K.type!=="dict")throw new F("pdf/xref/trailer-not-dict","trailer must be a dictionary",{context:{offset:q}});return{dict:K,end:Y.pos()}}function J($,q){let Y=(h)=>new F("pdf/xref/not-xref-stream",`no cross-reference stream at offset ${q}: ${h}`,{context:{offset:q}});if(!Number.isInteger(q)||q<0||q>=$.length)throw Y("offset outside the file");let U,K,T,B,k;try{let h=P($,{start:q});if(U=h.next(),K=h.next(),T=h.next(),!U||U.kind!=="int"||!K||K.kind!=="int"||!T||T.kind!=="kw"||T.value!=="obj")throw Y("no indirect object header");B=M(h),k=h.peek()}catch(h){if(h&&h.code==="pdf/xref/not-xref-stream")throw h;throw Y("the object does not parse")}let n=B&&B.type==="dict"&&B.entries.Type;if(!n||n.type!=="name"||n.value!=="XRef"||!k||k.kind!=="kw"||k.value!=="stream")throw Y("the object is not a /Type /XRef stream");return{num:U.value,gen:K.value,dict:B}}function z($){let q=1;while($>255)$=Math.floor($/256),q++;return q}function V($){let q="<";for(let Y=0;Y<$.length;Y++)q+="0123456789ABCDEF"[$[Y]>>4]+"0123456789ABCDEF"[$[Y]&15];return q+">"}function Q($){return!!$&&Number.isInteger($.num)&&$.num>=1}function Z($){let q=(w)=>new I("pdf/xref/bad-stream-section",`cannot build the cross-reference stream: ${w}`);if(!$||!Number.isInteger($.num)||$.num<1)throw q("num must be an integer >= 1");if(!Number.isInteger($.offset)||$.offset<0)throw q("offset must be an integer >= 0");if(!Number.isInteger($.prev)||$.prev<0)throw q("prev must be an integer >= 0");if(!Q($.root))throw q("root must be { num >= 1, gen }");if($.encrypt!=null&&!Q($.encrypt))throw q("encrypt must be an indirect reference { num >= 1, gen }");let Y=new Map;Y.set(0,[0,0,65535]);for(let w of $.entries||[]){if(!w||!Number.isInteger(w.num)||w.num<1||!Number.isInteger(w.offset)||w.offset<0)throw q("each entry needs num >= 1 and offset >= 0");Y.set(w.num,[1,w.offset,w.gen|0])}Y.set($.num,[1,$.offset,0]);let U=Array.from(Y.keys()).sort((w,N)=>w-N),K=0,T=0;for(let w of Y.values()){if(w[1]>K)K=w[1];if(w[2]>T)T=w[2]}let B=[1,z(K),z(T)],k=B[0]+B[1]+B[2],n=new Uint8Array(U.length*k),h=0;for(let w of U){let N=Y.get(w),x=h;for(let R=0;R<3;R++){let S=N[R];for(let E=B[R]-1;E>=0;E--)n[x+E]=S&255,S=Math.floor(S/256);x+=B[R]}h+=k}let d=[];for(let w=0;w<U.length;){let N=w;while(N+1<U.length&&U[N+1]===U[N]+1)N++;d.push(`${U[w]} ${N-w+1}`),w=N+1}let o=`<< /Type /XRef /Size ${Math.max($.num+1,Number.isInteger($.size)?$.size:0)} /W [${B.join(" ")}] /Index [${d.join(" ")}] /Root ${$.root.num} ${$.root.gen|0} R`;if(Q($.info))o+=` /Info ${$.info.num} ${$.info.gen|0} R`;if($.id&&$.id[0]instanceof Uint8Array&&$.id[1]instanceof Uint8Array)o+=` /ID [${V($.id[0])}${V($.id[1])}]`;if(Q($.encrypt))o+=` /Encrypt ${$.encrypt.num} ${$.encrypt.gen|0} R`;o+=` /Prev ${$.prev} /Length ${n.length} >>`;let _=new TextEncoder,f=_.encode(`${$.num} 0 obj
|
|
9
|
+
${o}
|
|
10
|
+
stream
|
|
11
|
+
`),L=_.encode(`
|
|
12
|
+
endstream
|
|
13
|
+
endobj
|
|
14
|
+
`),O=new Uint8Array(f.length+n.length+L.length);return O.set(f,0),O.set(n,f.length),O.set(L,f.length+n.length),O}return{locateStartXref:j,readStartXref:W,parseXrefTable:H,parseTrailerDict:X,readXrefStreamDict:J,buildXrefStream:Z}}}),I0({name:"pdfTrailer",dependencies:["pdfErrors","pdfParserObj"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A;function I(P){if(!F(P,"dict"))throw new D("pdf/trailer/not-dict","trailer is not a dictionary",{context:{type:P&&P.type}});let C=P.entries,M=C.Size;if(!M||M.type!=="int"||M.value<0)throw new D("pdf/trailer/missing-size","trailer is missing required /Size entry",{context:{hasSize:!!M}});let j=C.Root;if(!j||j.type!=="ref")throw new D("pdf/trailer/missing-root","trailer is missing required /Root indirect reference",{context:{hasRoot:!!j,type:j&&j.type}});let W={size:M.value,root:{num:j.num,gen:j.gen},raw:P};if(C.Info&&C.Info.type==="ref")W.info={num:C.Info.num,gen:C.Info.gen};if(C.Prev&&C.Prev.type==="int")W.prev=C.Prev.value;if(C.Encrypt)W.encrypt=C.Encrypt.type==="ref"?{num:C.Encrypt.num,gen:C.Encrypt.gen}:C.Encrypt;if(C.ID&&C.ID.type==="array"&&C.ID.items.length===2&&C.ID.items[0].type==="string"&&C.ID.items[1].type==="string")W.id=[C.ID.items[0].value,C.ID.items[1].value];return W}return{typeTrailer:I}}}),I0({name:"pdfSerializer",dependencies:["pdfErrors"],factory:function(i){let{RenderError:A}=i,D=new TextEncoder;function F(Q){if(!Q||typeof Q.type!=="string")throw new A("pdf/serializer/bad-input","serializeObject expects a typed object",{context:{typeof:typeof Q}});return z(C(Q))}function I(Q,Z,$){if(!Number.isFinite(Q)||Q<0)throw new A("pdf/serializer/bad-num","object number must be a non-negative integer",{context:{num:Q}});if(!Number.isFinite(Z)||Z<0)throw new A("pdf/serializer/bad-gen","generation number must be a non-negative integer",{context:{gen:Z}});let q=D.encode(`${Q|0} ${Z|0} obj
|
|
15
|
+
`),Y=D.encode(`
|
|
16
|
+
endobj
|
|
17
|
+
`);if($&&$.type==="stream"){let U=$.raw instanceof Uint8Array?$.raw:new Uint8Array(0),K={type:"dict",entries:{...($.dict||{type:"dict",entries:{}}).entries,Length:{type:"int",value:U.length}}},T=z(C(K)),B=D.encode(`
|
|
18
|
+
stream
|
|
19
|
+
`),k=D.encode(`
|
|
20
|
+
endstream`);return V([q,T,B,U,k,Y])}return V([q,z(C($)),Y])}function P(Q){if(!Number.isFinite(Q))throw new A("pdf/serializer/bad-real","real number must be finite",{context:{value:Q}});if(Number.isInteger(Q))return`${Q}`;let Z=Q.toFixed(5);if(Z.indexOf(".")>=0){if(Z=Z.replace(/0+$/,""),Z.endsWith("."))Z=Z.slice(0,-1)}if(Z==="-0")Z="0";return Z}function C(Q){switch(Q.type){case"null":return["null"];case"bool":return[Q.value?"true":"false"];case"int":return[`${Q.value|0}`];case"real":return[P(Q.value)];case"name":return[M(Q.value)];case"string":return[j(Q)];case"array":return X(Q);case"dict":return J(Q);case"ref":return[`${Q.num|0} ${Q.gen|0} R`];case"stream":throw new A("pdf/serializer/inline-stream","stream objects must be serialized via serializeIndirect");default:throw new A("pdf/serializer/unknown-type",`unknown object type "${Q.type}"`,{context:{type:Q.type}})}}function M(Q){let Z="/";for(let $=0;$<Q.length;$++){let q=Q.codePointAt($);if(q>65535)$++;if(q<33||q>126||q===35||q===47||q===40||q===41||q===60||q===62||q===91||q===93||q===123||q===125||q===37){let Y=D.encode(String.fromCodePoint(q));for(let U of Y)Z+="#"+U.toString(16).padStart(2,"0").toUpperCase()}else Z+=String.fromCharCode(q)}return Z}function j(Q){let Z=Q.value;if(!(Z instanceof Uint8Array))throw new A("pdf/serializer/bad-string","string value must be Uint8Array",{context:{typeof:typeof Z}});if(Q.syntax==="hex"||W(Z))return H(Z);return G(Z)}function W(Q){let Z=0;for(let $=0;$<Q.length;$++){let q=Q[$];if(q<9||q>13&&q<32||q>=127)Z++;if(Z>Q.length/4)return!0}return!1}function G(Q){let Z=["("];for(let $=0;$<Q.length;$++){let q=Q[$];if(q===92)Z.push("\\\\");else if(q===40)Z.push("\\(");else if(q===41)Z.push("\\)");else if(q===10)Z.push("\\n");else if(q===13)Z.push("\\r");else if(q===9)Z.push("\\t");else if(q===8)Z.push("\\b");else if(q===12)Z.push("\\f");else if(q<32||q>126)Z.push("\\"+q.toString(8).padStart(3,"0"));else Z.push(String.fromCharCode(q))}return Z.push(")"),Z.join("")}function H(Q){let Z="<";for(let $=0;$<Q.length;$++)Z+="0123456789ABCDEF"[Q[$]>>4]+"0123456789ABCDEF"[Q[$]&15];return Z+">"}function X(Q){let Z=["["],$=!0;for(let q of Q.items){if(!$)Z.push(" ");$=!1;for(let Y of C(q))Z.push(Y)}return Z.push("]"),Z}function J(Q){let Z=["<<"];for(let $ of Object.keys(Q.entries)){Z.push(" "),Z.push(M($)),Z.push(" ");for(let q of C(Q.entries[$]))Z.push(q)}return Z.push(" >>"),Z}function z(Q){let Z="";for(let $ of Q)Z+=$;return D.encode(Z)}function V(Q){let Z=0;for(let Y of Q)Z+=Y.length;let $=new Uint8Array(Z),q=0;for(let Y of Q)$.set(Y,q),q+=Y.length;return $}return{serializeObject:F,serializeIndirect:I,formatReal:P}}}),I0({name:"pdfCatalog",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,F=A&&A.isType||((C,M)=>!!(C&&C.type===M)),I=new Set(["Type","Version","Pages","PageLabels","Names","Dests","ViewerPreferences","PageLayout","PageMode","Outlines","Threads","OpenAction","AA","URI","AcroForm","Metadata","StructTreeRoot","MarkInfo","Lang","SpiderInfo","OutputIntents","PieceInfo","OCProperties","Perms","Legal","Requirements","Collection","NeedsRendering","DSS","AF","DPartRoot"]);function P(C){if(!F(C,"dict"))throw new D("pdf/catalog/not-dict","Catalog must be a dictionary",{context:{type:C&&C.type}});let M=C.entries;if(M.Type&&(M.Type.type!=="name"||M.Type.value!=="Catalog"))throw new D("pdf/catalog/bad-type","/Type entry must be /Catalog",{context:{actual:M.Type.value}});if(!M.Pages||M.Pages.type!=="ref")throw new D("pdf/catalog/missing-pages","Catalog is missing required /Pages reference",{context:{type:M.Pages&&M.Pages.type}});let j={pages:{num:M.Pages.num,gen:M.Pages.gen},raw:C,_extras:{}};if(M.Version&&M.Version.type==="name")j.version=M.Version.value;if(M.PageLayout&&M.PageLayout.type==="name")j.pageLayout=M.PageLayout.value;if(M.PageMode&&M.PageMode.type==="name")j.pageMode=M.PageMode.value;if(M.Lang&&M.Lang.type==="string")j.lang=M.Lang.value;if(M.Outlines&&M.Outlines.type==="ref")j.outlines=M.Outlines;if(M.Metadata&&M.Metadata.type==="ref")j.metadata=M.Metadata;if(M.StructTreeRoot&&M.StructTreeRoot.type==="ref")j.structTreeRoot=M.StructTreeRoot;if(M.AcroForm)j.acroForm=M.AcroForm;if(M.Names)j.names=M.Names;if(M.Dests)j.dests=M.Dests;if(M.ViewerPreferences)j.viewerPrefs=M.ViewerPreferences;if(M.PageLabels)j.pageLabels=M.PageLabels;if(M.MarkInfo)j.markInfo=M.MarkInfo;if(M.OCProperties)j.ocProperties=M.OCProperties;if(M.OutputIntents)j.outputIntents=M.OutputIntents;for(let W of Object.keys(M))if(!I.has(W))j._extras[W]=M[W];return j}return{typeCatalog:P}}}),I0({name:"pdfPages",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,F=A&&A.isType||((C,M)=>!!(C&&C.type===M));function I(C,M,j){let W=j&&j.maxDepth||64,G=j&&j.maxPages||200000,H=[],X=new Set;return J(C,0),H;function J(z,V){if(V>W)throw new D("pdf/pages/max-depth","page tree depth limit exceeded",{context:{depth:V,maxDepth:W}});let Q=z.num+":"+z.gen;if(X.has(Q))throw new D("pdf/pages/cycle","cycle detected in page tree",{context:{ref:z}});X.add(Q);let Z=M({type:"ref",num:z.num,gen:z.gen});if(!F(Z,"dict"))throw new D("pdf/pages/not-dict","page tree node is not a dict",{context:{ref:z}});let $=Z.entries.Type;if($&&$.type==="name"&&$.value==="Page"||!Z.entries.Kids&&!$){if(H.push({num:z.num,gen:z.gen}),H.length>G)throw new D("pdf/pages/too-many","page count limit exceeded",{context:{maxPages:G}});return}let q=Z.entries.Kids;if(!q||q.type!=="array")throw new D("pdf/pages/missing-kids","intermediate page tree node missing /Kids array",{context:{ref:z,hasKids:!!q}});for(let Y of q.items){if(Y.type!=="ref")throw new D("pdf/pages/non-ref-kid","page tree /Kids entries must be indirect refs",{context:{kind:Y.type}});J({num:Y.num,gen:Y.gen},V+1)}}}function P(C){if(!F(C,"dict"))return null;let M=C.entries.Count;if(!M||M.type!=="int"&&M.type!=="real")return null;return M.value|0}return{walkPageTree:I,readPageCount:P}}}),I0({name:"pdfPage",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,F=A&&A.isType||((G,H)=>!!(G&&G.type===H)),I=new Set(["Type","Parent","LastModified","Resources","MediaBox","CropBox","BleedBox","TrimBox","ArtBox","BoxColorInfo","Contents","Rotate","Group","Thumb","B","Dur","Trans","Annots","AA","Metadata","PieceInfo","StructParents","ID","PZ","SeparationInfo","Tabs","TemplateInstantiated","PresSteps","UserUnit","VP","AF","OutputIntents","DPart","AssociatedFiles"]);function P(G){if(!G||G.type!=="array"||G.items.length!==4)return null;let H=Array(4);for(let X=0;X<4;X++){let J=G.items[X];if(!J||J.type!=="int"&&J.type!=="real")return null;H[X]=J.value}return H}function C(G){if(!G||G.type!=="int"&&G.type!=="real")return 0;let H=((G.value|0)%360+360)%360;if(H%90!==0)return 0;return H}function M(G){if(!G)return[];if(G.type==="ref")return[{num:G.num,gen:G.gen}];if(G.type==="array"){let H=[];for(let X of G.items)if(X.type==="ref")H.push({num:X.num,gen:X.gen});return H}return[]}function j(G){if(!G)return[];if(G.type==="ref")return[G];if(G.type==="array")return G.items.slice();return[]}function W(G){if(!F(G,"dict"))throw new D("pdf/page/not-dict","Page must be a dictionary",{context:{type:G&&G.type}});let H=G.entries;if(H.Type&&(H.Type.type!=="name"||H.Type.value!=="Page"))throw new D("pdf/page/bad-type","/Type must be /Page when present",{context:{actual:H.Type.value}});let X={parent:H.Parent&&H.Parent.type==="ref"?{num:H.Parent.num,gen:H.Parent.gen}:null,mediaBox:P(H.MediaBox),resources:H.Resources||null,contents:M(H.Contents),rotate:C(H.Rotate),annots:j(H.Annots),raw:G,_extras:{}};if(H.CropBox)X.cropBox=P(H.CropBox);if(H.BleedBox)X.bleedBox=P(H.BleedBox);if(H.TrimBox)X.trimBox=P(H.TrimBox);if(H.ArtBox)X.artBox=P(H.ArtBox);if(H.UserUnit&&H.UserUnit.type==="real")X.userUnit=H.UserUnit.value;if(H.UserUnit&&H.UserUnit.type==="int")X.userUnit=H.UserUnit.value;if(H.Tabs&&H.Tabs.type==="name")X.tabs=H.Tabs.value;if(H.Metadata)X.metadata=H.Metadata;if(H.Group)X.group=H.Group;for(let J of Object.keys(H))if(!I.has(J))X._extras[J]=H[J];return X}return{typePage:W}}}),I0({name:"pdfCrossRefStream",dependencies:["pdfErrors","pdfParserObj"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A;function I(M,j,W){let G=0;for(let H=0;H<W;H++)G=G*256+M[j+H];return G}function P(M,j){if(!M||M.type!=="int")throw new D("pdf/xrefstm/missing-int",`XRef stream dict missing required /${j}`,{context:{label:j}});return M.value}function C(M,j){if(!(M instanceof Uint8Array))throw new D("pdf/xrefstm/bad-input","parseCrossRefStream expects Uint8Array");if(!F(j,"dict"))throw new D("pdf/xrefstm/bad-dict","XRef stream dict must be a typed dict");let W=j.entries;if(!W.Type||W.Type.type!=="name"||W.Type.value!=="XRef")throw new D("pdf/xrefstm/wrong-type","/Type must be /XRef",{context:{actual:W.Type&&W.Type.value}});let G=W.W;if(!G||G.type!=="array"||G.items.length!==3)throw new D("pdf/xrefstm/bad-W","/W must be a 3-element array",{context:{items:G&&G.items&&G.items.length}});let H=G.items.map((Q)=>{if(Q.type!=="int"||Q.value<0)throw new D("pdf/xrefstm/bad-W-entry","/W entries must be non-negative ints");return Q.value}),X=H[0]+H[1]+H[2];if(X<=0)throw new D("pdf/xrefstm/bad-W-zero","/W must yield at least one non-zero field");let J;if(W.Index){if(W.Index.type!=="array"||(W.Index.items.length&1)!==0)throw new D("pdf/xrefstm/bad-Index","/Index must be an array of (first, count) pairs");J=[];for(let Q=0;Q<W.Index.items.length;Q+=2){let Z=W.Index.items[Q],$=W.Index.items[Q+1];if(Z.type!=="int"||$.type!=="int")throw new D("pdf/xrefstm/bad-Index-entry","/Index entries must be ints");J.push([Z.value,$.value])}}else J=[[0,P(W.Size,"Size")]];let z={},V=0;for(let[Q,Z]of J)for(let $=0;$<Z;$++){if(V+X>M.length)throw new D("pdf/xrefstm/truncated","truncated xref stream payload",{context:{pos:V,recordSize:X,length:M.length}});let q=H[0]>0?I(M,V,H[0]):1,Y=H[1]>0?I(M,V+H[0],H[1]):0,U=H[2]>0?I(M,V+H[0]+H[1],H[2]):0;V+=X;let K=Q+$;if(q===0)z[K]={type:0,offset:Y,gen:U,free:!0};else if(q===1)z[K]={type:1,offset:Y,gen:U,free:!1};else if(q===2)z[K]={type:2,objStm:Y,index:U,free:!1,offset:0,gen:0};else z[K]={type:q,offset:0,gen:0,free:!0}}return{entries:z,size:W.Size&&W.Size.type==="int"?W.Size.value:Object.keys(z).length,trailer:j}}return{parseCrossRefStream:C}}}),I0({name:"pdfObjStream",dependencies:["pdfErrors","pdfParserObj","pdfTokenizer","pdfParser"],factory:function(i,A,D,F){let{ParseError:I}=i,{isType:P}=A,C=D.tokenize,M=F.parseObject;function j(G,H){if(!G||G.type!=="int")throw new I("pdf/objstm/missing-int",`ObjStm dict missing required /${H}`,{context:{label:H,hasEntry:!!G,type:G&&G.type}});return G.value}function W(G,H){if(!(G instanceof Uint8Array))throw new I("pdf/objstm/bad-input","parseObjectStream expects Uint8Array",{context:{typeof:typeof G}});if(!P(H,"dict"))throw new I("pdf/objstm/bad-dict","ObjStm dict must be a typed dict");let X=H.entries;if(X.Type&&(X.Type.type!=="name"||X.Type.value!=="ObjStm"))throw new I("pdf/objstm/wrong-type","/Type must be /ObjStm",{context:{actual:X.Type.value}});let J=j(X.N,"N"),z=j(X.First,"First");if(J<0)throw new I("pdf/objstm/bad-N","/N must be non-negative",{context:{N:J}});if(z<0||z>G.length)throw new I("pdf/objstm/bad-First","/First out of payload range",{context:{First:z,length:G.length}});let V=C(G,{start:0,end:z}),Q=Array(J),Z=Array(J);for(let q=0;q<J;q++){let Y=V.next(),U=V.next();if(!Y||Y.kind!=="int"||!U||U.kind!=="int")throw new I("pdf/objstm/bad-pair","ObjStm header expects N pairs of integers",{context:{index:q}});Q[q]=Y.value,Z[q]=U.value}let $=Array(J);for(let q=0;q<J;q++){let Y=z+Z[q],U=q+1<J?z+Z[q+1]:G.length;if(Y<z||U>G.length||Y>U)throw new I("pdf/objstm/bad-offset","ObjStm member offset out of range",{context:{index:q,start:Y,end:U,length:G.length}});let K=C(G,{start:Y,end:U}),T=M(K);$[q]={num:Q[q],gen:0,value:T}}return $}return{parseObjectStream:W}}}),I0({name:"pdfFlate",dependencies:["pdfErrors","zlib"],factory:function(i,A){let{ParseError:D}=i;if(!A||typeof A.unzlibSync!=="function"||typeof A.zlibSync!=="function")throw new D("pdf/flate/missing-fw","pdfFlate requires the @awacloud/fw zlib module",{context:{keys:A&&Object.keys(A)}});function F(Q,Z,$){let q=Q+Z-$,Y=Math.abs(q-Q),U=Math.abs(q-Z),K=Math.abs(q-$);if(Y<=U&&Y<=K)return Q;if(U<=K)return Z;return $}function I(Q){let Z=Q&&Q.predictor!=null?Q.predictor|0:Q&&Q.Predictor!=null?Q.Predictor|0:1,$=Q&&Q.columns!=null?Q.columns|0:Q&&Q.Columns!=null?Q.Columns|0:1,q=Q&&Q.colors!=null?Q.colors|0:Q&&Q.Colors!=null?Q.Colors|0:1,Y=Q&&Q.bitsPerComponent!=null?Q.bitsPerComponent|0:Q&&Q.BitsPerComponent!=null?Q.BitsPerComponent|0:8;if(Z!==1&&Z!==2&&(Z<10||Z>15))throw new D("pdf/flate/bad-predictor","unsupported Predictor value",{context:{predictor:Z}});if($<=0||q<=0||Y<=0)throw new D("pdf/flate/bad-predictor-params","Columns, Colors and BitsPerComponent must be > 0",{context:{columns:$,colors:q,bpc:Y}});let U=q*Y,K=Math.max(1,U+7>>3),T=$*U+7>>3;return{predictor:Z,columns:$,colors:q,bpc:Y,bytesPerPixel:K,rowBytes:T}}function P(Q,Z,$,q){let Y=new Uint8Array(Z.length);for(let U=0;U<Z.length;U++){let K=U>=q?Y[U-q]:0,T=$?$[U]:0,B=$&&U>=q?$[U-q]:0,k=Z[U];switch(Q){case 0:break;case 1:k=k+K&255;break;case 2:k=k+T&255;break;case 3:k=k+(K+T>>1)&255;break;case 4:k=k+F(K,T,B)&255;break;default:throw new D("pdf/flate/bad-png-filter","unknown PNG filter tag",{context:{tag:Q}})}Y[U]=k}return Y}function C(Q,Z,$,q){let Y=new Uint8Array(Z.length);for(let U=0;U<Z.length;U++){let K=U>=q?Z[U-q]:0,T=$?$[U]:0,B=$&&U>=q?$[U-q]:0,k=Z[U];switch(Q){case 0:Y[U]=k;break;case 1:Y[U]=k-K&255;break;case 2:Y[U]=k-T&255;break;case 3:Y[U]=k-(K+T>>1)&255;break;case 4:Y[U]=k-F(K,T,B)&255;break;default:throw new D("pdf/flate/bad-png-filter","unknown PNG filter tag",{context:{tag:Q}})}}return Y}function M(Q,Z){if(Z.bpc!==8)throw new D("pdf/flate/tiff-bpc-unsupported","TIFF Predictor 2 requires BitsPerComponent=8",{context:{bpc:Z.bpc}});let $=new Uint8Array(Q.length),q=Z.colors,Y=Z.rowBytes,U=Q.length/Y|0;for(let K=0;K<U;K++){let T=K*Y;for(let B=0;B<Y;B++){let k=B>=q?$[T+B-q]:0;$[T+B]=Q[T+B]+k&255}}return $}function j(Q,Z){if(Z.bpc!==8)throw new D("pdf/flate/tiff-bpc-unsupported","TIFF Predictor 2 requires BitsPerComponent=8",{context:{bpc:Z.bpc}});let $=new Uint8Array(Q.length),q=Z.colors,Y=Z.rowBytes,U=Q.length/Y|0;for(let K=0;K<U;K++){let T=K*Y;for(let B=0;B<Y;B++){let k=B>=q?Q[T+B-q]:0;$[T+B]=Q[T+B]-k&255}}return $}function W(Q,Z){let $=Z.rowBytes,q=$+1;if(Q.length%q!==0)throw new D("pdf/flate/png-row-mismatch","predicted stream length is not a multiple of (rowBytes+1)",{context:{length:Q.length,stride:q}});let Y=Q.length/q,U=new Uint8Array(Y*$),K=null;for(let T=0;T<Y;T++){let B=Q[T*q],k=Q.subarray(T*q+1,T*q+q),n=P(B,k,K,Z.bytesPerPixel);U.set(n,T*$),K=n}return U}function G(Q,Z){let $=Z.rowBytes;if(Q.length%$!==0)throw new D("pdf/flate/png-row-mismatch","input length is not a multiple of rowBytes",{context:{length:Q.length,rowBytes:$}});let q=Q.length/$,Y=$+1,U=new Uint8Array(q*Y),K=Z.predictor===15?-1:Z.predictor-10,T=null;for(let B=0;B<q;B++){let k=Q.subarray(B*$,(B+1)*$),n=K;if(n<0)n=B===0?0:2;let h=C(n,k,T,Z.bytesPerPixel);U[B*Y]=n,U.set(h,B*Y+1),T=k}return U}function H(Q){return!!Q&&Q.code===0}function X(Q){let Z=[],$=0;new A.UnzlibStream((U)=>{Z.push(U),$+=U.length}).push(Q,!1);let q=new Uint8Array($),Y=0;for(let U of Z)q.set(U,Y),Y+=U.length;return q}function J(Q){return Object.defineProperty(Q,"truncated",{value:!0,enumerable:!1}),Q}function z(Q,Z){if(!(Q instanceof Uint8Array))throw new D("pdf/flate/bad-input","FlateDecode expects Uint8Array");let $,q=!1;try{$=A.unzlibSync(Q)}catch(T){let B=()=>new D("pdf/flate/inflate-failed","inflate failed: "+(T&&T.message),{context:{length:Q.length},cause:T});if(!H(T)||typeof A.UnzlibStream!=="function")throw B();let k;try{k=X(Q)}catch{throw B()}if(k.length===0)throw B();$=k,q=!0}let Y=(T)=>q?J(T):T;if(!Z)return Y($);if(!(Z.predictor!=null&&Z.predictor!==1||Z.Predictor!=null&&Z.Predictor!==1))return Y($);let U=I(Z);if(U.predictor===1)return Y($);let K=U.predictor===2?U.rowBytes:U.rowBytes+1;if(q)$=$.subarray(0,$.length-$.length%K);if(U.predictor===2)return Y(M($,U));return Y(W($,U))}function V(Q,Z){if(!(Q instanceof Uint8Array))throw new D("pdf/flate/bad-input","FlateEncode expects Uint8Array");let $=Q;if(Z){if(Z.predictor!=null&&Z.predictor!==1||Z.Predictor!=null&&Z.Predictor!==1){let q=I(Z);if(q.predictor===2)$=j(Q,q);else if(q.predictor>=10)$=G(Q,q)}}try{return A.zlibSync($)}catch(q){throw new D("pdf/flate/deflate-failed","deflate failed: "+(q&&q.message),{context:{length:$.length},cause:q})}}return{decode:z,encode:V}}}),I0({name:"pdfAsciiHex",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i,D=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1];function F(C){return C===32||C===9||C===10||C===13||C===12||C===0}function I(C){if(!(C instanceof Uint8Array))throw new A("pdf/asciiHex/bad-input","ASCIIHexDecode expects Uint8Array");let M=[],j=-1;for(let W=0;W<C.length;W++){let G=C[W];if(G===62)break;if(F(G))continue;let H=G<D.length?D[G]:-1;if(H<0)throw new A("pdf/asciiHex/bad-digit","invalid hex digit",{context:{offset:W,byte:G}});if(j<0)j=H;else M.push(j<<4|H),j=-1}if(j>=0)M.push(j<<4);return Uint8Array.from(M)}function P(C){if(!(C instanceof Uint8Array))throw new A("pdf/asciiHex/bad-input","ASCIIHexEncode expects Uint8Array");let M="0123456789ABCDEF",j="";for(let W=0;W<C.length;W++){if(W>0&&(W&31)===0)j+=`
|
|
21
|
+
`;let G=C[W];j+=M[G>>4]+M[G&15]}return j+=">",new TextEncoder().encode(j)}return{decode:I,encode:P}}}),I0({name:"pdfAscii85",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i;function D(P){return P===32||P===9||P===10||P===13||P===12||P===0}function F(P){if(!(P instanceof Uint8Array))throw new A("pdf/ascii85/bad-input","ASCII85Decode expects Uint8Array");let C=[],M=0,j=0;for(let W=0;W<P.length;W++){let G=P[W];if(D(G))continue;if(G===126){if(W+1<P.length&&P[W+1]===62)break;throw new A("pdf/ascii85/bad-eod","~ not followed by >",{context:{offset:W}})}if(G===122){if(j!==0)throw new A("pdf/ascii85/bad-z","z must appear at group boundary",{context:{offset:W}});C.push(0,0,0,0);continue}if(G<33||G>117)throw new A("pdf/ascii85/bad-digit","character outside ! .. u",{context:{offset:W,byte:G}});if(M=M*85+(G-33),j++,j===5)C.push(M>>>24&255,M>>>16&255,M>>>8&255,M&255),M=0,j=0}if(j>0){for(let G=j;G<5;G++)M=M*85+84;let W=[M>>>24&255,M>>>16&255,M>>>8&255,M&255];for(let G=0;G<j-1;G++)C.push(W[G])}return Uint8Array.from(C)}function I(P){if(!(P instanceof Uint8Array))throw new A("pdf/ascii85/bad-input","ASCII85Encode expects Uint8Array");let C=[],M=0;while(M+4<=P.length){let W=P[M]*16777216+(P[M+1]<<16)+(P[M+2]<<8)+P[M+3];if(W===0)C.push(122);else{let G=[0,0,0,0,0],H=W;for(let X=4;X>=0;X--)G[X]=H%85+33,H=Math.floor(H/85);C.push(G[0],G[1],G[2],G[3],G[4])}M+=4}let j=P.length-M;if(j>0){let W=new Uint8Array(4);W.set(P.subarray(M));let G=W[0]*16777216+(W[1]<<16)+(W[2]<<8)+W[3],H=[0,0,0,0,0],X=G;for(let J=4;J>=0;J--)H[J]=X%85+33,X=Math.floor(X/85);for(let J=0;J<j+1;J++)C.push(H[J])}return C.push(126,62),Uint8Array.from(C)}return{decode:F,encode:I}}}),I0({name:"pdfRunLength",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i;function D(I){if(!(I instanceof Uint8Array))throw new A("pdf/runLength/bad-input","RunLengthDecode expects Uint8Array");let P=[],C=0;while(C<I.length){let M=I[C++];if(M===128)break;if(M<128){let j=M+1;if(C+j>I.length)throw new A("pdf/runLength/truncated-literal","truncated literal run",{context:{offset:C-1,want:j,have:I.length-C}});for(let W=0;W<j;W++)P.push(I[C+W]);C+=j}else{if(C>=I.length)throw new A("pdf/runLength/truncated-repeat","truncated repeat run",{context:{offset:C-1}});let j=I[C++],W=257-M;for(let G=0;G<W;G++)P.push(j)}}return Uint8Array.from(P)}function F(I){if(!(I instanceof Uint8Array))throw new A("pdf/runLength/bad-input","RunLengthEncode expects Uint8Array");let P=[],C=0;while(C<I.length){let M=I[C],j=1;while(j<128&&C+j<I.length&&I[C+j]===M)j++;if(j>=3){P.push(257-j,M),C+=j;continue}let W=C,G=0;while(G<128&&C<I.length){let H=1;while(H<3&&C+H<I.length&&I[C+H]===I[C])H++;if(H>=3&&G>0)break;C++,G++}P.push(G-1);for(let H=0;H<G;H++)P.push(I[W+H])}return P.push(128),Uint8Array.from(P)}return{decode:D,encode:F}}}),I0({name:"pdfFilterDispatch",dependencies:["pdfErrors","pdfFlate","pdfAsciiHex","pdfAscii85","pdfRunLength"],factory:function(i,A,D,F,I){let{ParseError:P}=i;function C(K,T){return!!(K&&K.type===T)}let M={Fl:"FlateDecode",AHx:"ASCIIHexDecode",A85:"ASCII85Decode",RL:"RunLengthDecode",LZW:"LZWDecode",DCT:"DCTDecode",JPX:"JPXDecode",CCF:"CCITTFaxDecode"};function j(K){return M[K]||K}function W(){return{decode(K){return K},encode(K){return K}}}function G(K){if(!K)return[];if(K.type==="name")return[j(K.value)];if(K.type==="array"){let T=[];for(let B of K.items){if(B.type!=="name")throw new P("pdf/filter/non-name","/Filter array entries must be names",{context:{kind:B.type}});T.push(j(B.value))}return T}throw new P("pdf/filter/bad-type","/Filter must be a name or array of names",{context:{type:K.type}})}function H(K,T,B,k){let n=K;for(let h=0;h<T.length;h++){let d=T[h],o=B?B[h]||null:null,_=k[d];if(!_)throw new P("pdf/filter/unsupported",`filter "${d}" not registered`,{context:{name:d,available:Object.keys(k)}});n=_.decode(n,o)}return n}function X(K,T,B,k){let n=K;for(let h=0;h<T.length;h++){let d=T[h],o=B?B[h]||null:null,_=k[d];if(!_||typeof _.encode!=="function")throw new P("pdf/filter/no-encoder",`filter "${d}" has no encoder`,{context:{name:d}});n=_.encode(n,o)}return n}function J(K){let T=K.entries||{},B={};for(let k of Object.keys(T)){let n=T[k];B[k]=n?n.value:void 0}return B}function z(K,T){if(!K)return null;if(K.type==="null")return null;if(K.type==="dict"){let B=Array(T).fill(null);if(T>0)B[0]=J(K);return B}if(K.type==="array")return K.items.map((B)=>B.type==="dict"?J(B):null);throw new P("pdf/filter/bad-decodeparms","/DecodeParms must be a dict, array, or null",{context:{type:K.type}})}function V(K,T){if(!C(K,"stream"))throw new P("pdf/filter/not-stream","decodeStream expects a stream object");let B=K.dict,k=G(B.entries.Filter),n=z(B.entries.DecodeParms,k.length);return H(K.raw,k,n,T)}let Q={FlateDecode:A,ASCIIHexDecode:D,ASCII85Decode:F,RunLengthDecode:I,DCTDecode:W(),JPXDecode:W(),Crypt:W()};function Z(K){return V(K,Q)}function $(K,T,B){return H(K,T,B,Q)}function q(K,T,B){return X(K,T,B,Q)}function Y(K,T){Q[K]=T}function U(){return Object.keys(Q)}return{decode:Z,decodeChain:$,encodeChain:q,register:Y,names:U,decoders:Q,normalizeFilterList:G,applyDecodeChain:H,applyEncodeChain:X,decodeStream:V}}}),I0({name:"pdfDocument",dependencies:["pdfErrors","pdfTokenizer","pdfParser","pdfXref","pdfTrailer","pdfCatalog","pdfPage","pdfPages","pdfCrossRefStream","pdfObjStream","pdfFilterDispatch"],factory:function(i,A,D,F,I,P,C,M,j,W,G){let{ParseError:H}=i,X=A&&A.tokenize,J=D&&D.parseIndirect,z=F&&F.locateStartXref,V=F&&F.readStartXref,Q=F&&F.parseXrefTable,Z=F&&F.parseTrailerDict,$=I&&I.typeTrailer,q=P&&P.typeCatalog,Y=C&&C.typePage,U=M&&M.walkPageTree,K=new Uint8Array([37,80,68,70,45]),T=new Uint8Array([120,114,101,102]),B=Object.freeze({type:"null"}),k=new Set(["Prev","XRefStm","Type","W","Index","Length","Filter","DecodeParms","F","FFilter","FDecodeParms","DL"]),n=Object.freeze({type:"dict",entries:Object.freeze({Type:Object.freeze({type:"name",value:"Pages"}),Kids:Object.freeze({type:"array",items:Object.freeze([])})})});function h(N,x){let R=x<0?0:x;while(R<N.length){let S=N[R];if(S===0||S===9||S===10||S===12||S===13||S===32){R++;continue}break}return R}function d(N,x){for(let R=0;R<T.length;R++)if(N[x+R]!==T[R])return!1;return!0}function o(N){throw new H("pdf/document/xrefstm-indirect-length","a cross-reference stream may not use an indirect /Length",{context:{num:N&&N.num,gen:N&&N.gen}})}function _(N){if(!j||!W||!G)throw new H("pdf/document/xref-stream-unwired","this pdfDocument was built without pdfCrossRefStream, "+"pdfObjStream and pdfFilterDispatch — cross-reference "+"streams and object streams cannot be read",{context:{offset:N}})}function f(N,x){_(x);let R=X(N,{start:x}),S=J(R,o).value,E=S&&S.dict&&S.dict.entries&&S.dict.entries.Type;if(!S||S.type!=="stream"||!E||E.type!=="name"||E.value!=="XRef")throw new H("pdf/document/bad-xref-section","neither an xref table nor a cross-reference stream at startxref",{context:{offset:x}});let y=G.decode(S);return{entries:j.parseCrossRefStream(y,S.dict).entries,dict:S.dict}}function L(N){if(N.length===1)return N[0];for(let R of N)if(!R||R.type!=="dict")return R;let x={...N[0].entries};for(let R=1;R<N.length;R++)for(let S of Object.keys(N[R].entries)){if(k.has(S))continue;if(!(S in x))x[S]=N[R].entries[S]}return{...N[0],entries:x}}function O(N){if(N.length<8)throw new H("pdf/document/short","input too short to contain a PDF header",{context:{length:N.length}});let x=-1,R=Math.min(N.length-5,1024);$:for(let l=0;l<=R;l++){for(let J0=0;J0<5;J0++)if(N[l+J0]!==K[J0])continue $;x=l;break}if(x<0)throw new H("pdf/document/bad-header","no %PDF- header found in first 1024 bytes");let S=x+5,E=[];while(S<N.length){let l=N[S];if(l===10||l===13)break;E.push(l),S++}let y=new TextDecoder("latin1").decode(Uint8Array.from(E));if(S<N.length&&N[S]===13)S++;if(S<N.length&&N[S]===10)S++;return{version:y,end:S}}function w(N,x={}){if(!(N instanceof Uint8Array))throw new H("pdf/document/bad-input","readDocument expects a Uint8Array",{context:{typeof:typeof N}});let{version:R,end:S}=O(N),E=z(N);if(E<0)throw new H("pdf/document/no-startxref","startxref keyword not found near EOF");let y=V(N,E),l={entries:{},sections:[]},J0=[],$0=[],Q0=y,e=new Set;function Y0(V0,D0,B0){l.sections.push({at:V0,kind:D0,entries:B0});for(let W0 of Object.keys(B0))if(!(W0 in l.entries))l.entries[W0]=B0[W0]}for(let V0=0;V0<32&&Q0>=0;V0++){if(e.has(Q0))break;e.add(Q0);let D0;if(d(N,h(N,Q0))){let W0=Q(N,Q0);Y0(Q0,"table",W0.entries),D0=Z(N,W0.end).dict;let c=D0&&D0.entries&&D0.entries.XRefStm;if(c&&c.type==="int"&&c.value>=0&&c.value<N.length){let a=f(N,c.value);Y0(c.value,"stream",a.entries)}}else{let W0=f(N,Q0);Y0(Q0,"stream",W0.entries),D0=W0.dict}$0.push(D0);let B0=D0&&D0.type==="dict"&&D0.entries&&D0.entries.Prev;if(B0&&B0.type==="int"&&B0.value>=0&&B0.value!==Q0)Q0=B0.value;else break}if($0.length===0)throw new H("pdf/document/no-trailer","no usable trailer dictionary found");let v=$(L($0));if(v.encrypt&&x.allowEncrypted!==!0)throw new H("pdf/document/encrypted","document is encrypted (trailer /Encrypt present) — "+"no decrypt path is composed for readDocument; pass { allowEncrypted: true } to read the raw ciphertext container",{context:{encrypt:v.encrypt}});let q0=new Map,U0=new Set,g=new Set,u=new Map;function m(V0){if(!V0||V0.type!=="ref")return V0;return p(V0.num,V0.gen)}function p(V0,D0){let B0=V0+":"+D0;if(q0.has(B0))return q0.get(B0).value;let W0=l.entries[V0];if(!W0)throw new H("pdf/document/missing-xref",`object ${V0} ${D0} not in xref`,{context:{num:V0,gen:D0}});if(W0.free){if(W0=b(V0,D0),!W0)return B}if(W0.type===2){let r=Z0(V0,D0,W0);return q0.set(B0,{value:r,offset:0,objStm:W0.objStm}),r}let c=W0.offset;if(c<=0||c>=N.length)throw new H("pdf/document/bad-offset",`object ${V0} ${D0} xref offset out of range`,{context:{num:V0,gen:D0,offset:c,total:N.length}});let a=X(N,{start:c}),s=J(a,m);if(s.num!==V0||s.gen!==D0)throw new H("pdf/document/xref-mismatch","xref points to a different object",{context:{expected:{num:V0,gen:D0},found:{num:s.num,gen:s.gen}}});return q0.set(B0,{value:s.value,offset:c}),s.value}function b(V0,D0){let B0=V0+":"+D0;for(let W0 of l.sections){let c=W0.entries[V0];if(c&&!c.free)return t("fallback:"+B0,{code:"pdf/document/free-entry-fallback",message:`object ${V0} is free in the newest xref section; resolved through an older section that defines it`,context:{num:V0,gen:D0,section:{at:W0.at,kind:W0.kind}}}),c}return g.add(B0),t("free:"+B0,{code:"pdf/document/free-object",message:`object ${V0} is free in every xref section; read as null`,context:{num:V0,gen:D0}}),null}function t(V0,D0){if(U0.has(V0))return;U0.add(V0),J0.push(D0)}function Z0(V0,D0,B0){if(v&&v.encrypt)throw new H("pdf/document/objstm-encrypted","object streams of an encrypted document cannot be "+"read — no decrypt path is composed for readDocument",{context:{num:V0,gen:D0,objStm:B0.objStm}});let W0=B0.objStm,c=u.get(W0);if(!c){_(0);let s=l.entries[W0];if(s&&s.type===2)throw new H("pdf/document/objstm-nested",`object stream ${W0} is itself stored in an object stream`,{context:{num:V0,objStm:W0}});let r=p(W0,0);if(!r||r.type!=="stream")throw new H("pdf/document/objstm-not-stream",`object ${W0} is not a stream and cannot hold compressed objects`,{context:{num:V0,objStm:W0,type:r&&r.type}});c=W.parseObjectStream(G.decode(r),r.dict),u.set(W0,c)}let a=c[B0.index];if(!a||a.num!==V0)throw new H("pdf/document/objstm-mismatch","object stream member does not carry the expected object number",{context:{num:V0,objStm:W0,index:B0.index,found:a?a.num:null}});return a.value}let X0=v.root,z0=m({type:"ref",num:X0.num,gen:X0.gen});if(g.has(X0.num+":"+X0.gen))throw new H("pdf/document/free-object",`object ${X0.num} is free`,{context:{num:X0.num,gen:X0.gen,role:"catalog"}});let F0=q(z0);function N0(V0){let D0=m(V0);if(V0&&V0.type==="ref"&&g.has(V0.num+":"+V0.gen))return n;return D0}let x0=U(F0.pages,N0).map((V0)=>Y(m({type:"ref",num:V0.num,gen:V0.gen})));return{version:R,catalog:F0,pages:x0,trailer:v,xref:l,losses:J0,_raw:{resolve:m,bytes:N,headerEnd:S,indirects:q0}}}return{readDocument:w,readHeader:O}}}),I0({name:"pdfWriter",dependencies:["pdfErrors","pdfSerializer"],factory:function(i,A){let{RenderError:D}=i,F=A.serializeIndirect,I=new TextEncoder;function P(J){return String(J).padStart(10,"0")}function C(J){let z="<";for(let V=0;V<J.length;V++)z+="0123456789ABCDEF"[J[V]>>4]+"0123456789ABCDEF"[J[V]&15];return z+">"}function M(J){let z=0;for(let Z of J)z+=Z.length;let V=new Uint8Array(z),Q=0;for(let Z of J)V.set(Z,Q),Q+=Z.length;return V}function j(J){let z=-1;for(let V of J){if(!V||!Number.isFinite(V.num)||V.num<1)throw new D("pdf/writer/bad-indirect","each indirect requires num >= 1",{context:{item:V}});if(V.num===z)throw new D("pdf/writer/duplicate-num","duplicate object number",{context:{num:V.num}});z=V.num}}function W(J,z){let V=`xref
|
|
22
|
+
0 ${J+1}
|
|
23
|
+
`;V+=`0000000000 65535 f
|
|
24
|
+
`;for(let Q=1;Q<=J;Q++)if(z.has(Q))V+=P(z.get(Q))+` 00000 n
|
|
25
|
+
`;else V+=`0000000000 00000 f
|
|
26
|
+
`;return I.encode(V)}function G(J){let z=[`trailer
|
|
27
|
+
<< /Size ${J.size}`];if(z.push(` /Root ${J.root.num} ${J.root.gen|0} R`),J.info)z.push(` /Info ${J.info.num} ${J.info.gen|0} R`);if(J.id)z.push(" /ID ["),z.push(C(J.id[0])),z.push(C(J.id[1])),z.push("]");return z.push(` >>
|
|
28
|
+
`),z.push(`startxref
|
|
29
|
+
${J.xrefOffset}
|
|
30
|
+
%%EOF
|
|
31
|
+
`),I.encode(z.join(""))}function H(J){if(!J||!Array.isArray(J.indirects))throw new D("pdf/writer/bad-input","writeDocument expects { indirects: [...] }");if(!J.root||!Number.isFinite(J.root.num))throw new D("pdf/writer/no-root","writeDocument requires opts.root");let z=J.version||"2.0";if(!/^\d\.\d$/.test(z))throw new D("pdf/writer/bad-version",'version must look like "x.y"',{context:{version:z}});let V=J.indirects.slice().sort((T,B)=>T.num-B.num);j(V);let Q=[],Z=0,$=new Map;function q(T){Q.push(T),Z+=T.length}q(I.encode(`%PDF-${z}
|
|
32
|
+
`)),q(new Uint8Array([37,226,227,207,211,10]));let Y=V.length>0?V[V.length-1].num:0;for(let{num:T,gen:B,value:k}of V)$.set(T,Z),q(F(T,B,k));let U=Z;q(W(Y,$));let K=Y+1;return q(G({size:K,root:J.root,info:J.info,id:J.id,xrefOffset:U})),M(Q)}function X(J,z){if(!J||!J._raw||typeof J._raw.resolve!=="function")throw new D("pdf/writer/bad-model","assembleIndirects requires a model produced by pdf.read()");let V=[];for(let Z of Object.keys(J.xref.entries)){let $=J.xref.entries[Z];if($.free)continue;try{J._raw.resolve({type:"ref",num:Number(Z),gen:$.gen})}catch(q){V.push({num:Number(Z),gen:$.gen,code:i.isPdfError(q)?q.code:"unknown"})}}if(V.length>0&&z&&z.strict===!0)throw new D("pdf/writer/unresolvable-objects",`${V.length} object${V.length===1?"":"s"} could not be resolved and would be dropped`,{context:{objects:V}});let Q=[];for(let[Z,$]of J._raw.indirects.entries()){let[q,Y]=Z.split(":").map(Number);Q.push({num:q,gen:Y,value:$.value})}return Q.sort((Z,$)=>Z.num-$.num),Object.defineProperty(Q,"skippedObjects",{value:V,enumerable:!1,writable:!0,configurable:!0}),Q}return{writeDocument:H,assembleIndirects:X}}}),I0({name:"pdf",dependencies:["pdfErrors","pdfShared","pdfTokenizer","pdfParserObj","pdfParser","pdfXref","pdfTrailer","pdfSerializer","pdfCatalog","pdfPages","pdfPage","pdfDocument","pdfWriter"],factory:function(i,A,D,F,I,P,C,M,j,W,G,H,X){let{ContractError:J}=i,z=H.readDocument,V=H.readHeader,Q=X.writeDocument,Z=X.assembleIndirects,$=new Set,q={read(Y,U){return z(Y,U)},header(Y){return V(Y)},write(Y,U){let K=U&&typeof U==="object"?U:{},T=[],B;if(Y&&Y._raw&&typeof Y._raw.resolve==="function"){let k=Z(Y,K.strict===!0?{strict:!0}:void 0);T=k.skippedObjects||[],B=Q({indirects:k,root:Y.catalog.pages?{num:Y.trailer.root.num,gen:Y.trailer.root.gen}:Y.trailer.root,info:Y.trailer.info,id:Y.trailer.id,version:"2.0"})}else B=Q(Y);if(T.length>0&&typeof K.onSkipped==="function")K.onSkipped(T.slice());return Object.defineProperty(B,"skippedObjects",{value:T,enumerable:!1,writable:!0,configurable:!0}),B},use(Y){if(!Y||typeof Y.name!=="string"||typeof Y.register!=="function")throw new J("pdf/use/bad-extension",".use() requires { name: string, register: function }",{context:{keys:Y&&Object.keys(Y)}});if($.has(Y.name))return q;$.add(Y.name);let U=Y.register(q,{usedExtensions:$});if(U&&typeof U==="object"){for(let K of Object.keys(U))if(K!=="use")q[K]=U[K]}return q},usedExtension(Y){return $.has(Y)}};return q}}),I0({name:"pdfContentOpsExtended",dependencies:["pdfErrors","pdfParserObj"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=Object.freeze({Type:{kind:"name",doc:"must be /ExtGState"},LW:{kind:"num",doc:"line width"},LC:{kind:"int",doc:"line cap style 0|1|2"},LJ:{kind:"int",doc:"line join style 0|1|2"},ML:{kind:"num",doc:"miter limit"},D:{kind:"array",doc:"[ dashArray dashPhase ]"},RI:{kind:"name",doc:"rendering intent"},OP:{kind:"bool",doc:"stroke overprint"},op:{kind:"bool",doc:"non-stroke overprint"},OPM:{kind:"int",doc:"overprint mode 0|1"},Font:{kind:"array",doc:"[ font size ]"},BG:{kind:"stream-or-func",doc:"black-generation function"},BG2:{kind:"stream-or-name",doc:"BG or /Default"},UCR:{kind:"stream-or-func",doc:"undercolor-removal function"},UCR2:{kind:"stream-or-name",doc:"UCR or /Default"},TR:{kind:"stream-or-func-or-array",doc:"transfer function"},TR2:{kind:"stream-or-func-or-array-or-name",doc:"transfer function or /Default"},HT:{kind:"dict-or-stream-or-name",doc:"halftone"},FL:{kind:"num",doc:"flatness tolerance"},SM:{kind:"num",doc:"smoothness tolerance"},SA:{kind:"bool",doc:"stroke adjustment"},BM:{kind:"name-or-array",doc:"blend mode"},SMask:{kind:"dict-or-name",doc:"soft mask"},CA:{kind:"num",doc:"stroke alpha [0,1]"},ca:{kind:"num",doc:"non-stroke alpha [0,1]"},AIS:{kind:"bool",doc:"alpha is shape"},TK:{kind:"bool",doc:"text knockout"},UseBlackPtComp:{kind:"name",doc:"ON|OFF|Default"},HTO:{kind:"array",doc:"halftone origin [tx ty]"}}),P=(j)=>j&&(j.type==="int"||j.type==="real");function C(j){if(!F(j,"dict"))throw new D("pdf/extra/ext-gstate/not-dict","ExtGState must be a dictionary",{context:{type:j&&j.type}});let W=j.entries;if(W.Type&&(W.Type.type!=="name"||W.Type.value!=="ExtGState"))throw new D("pdf/extra/ext-gstate/bad-type","/Type entry must be /ExtGState",{context:{actual:W.Type.value}});let G={type:W.Type?W.Type.value:null,lw:P(W.LW)?W.LW.value:null,lc:P(W.LC)?W.LC.value|0:null,lj:P(W.LJ)?W.LJ.value|0:null,ml:P(W.ML)?W.ML.value:null,d:F(W.D,"array")?W.D:null,ri:F(W.RI,"name")?W.RI.value:null,op:F(W.OP,"bool")?W.OP.value:null,opNs:F(W.op,"bool")?W.op.value:null,opm:P(W.OPM)?W.OPM.value|0:null,font:F(W.Font,"array")?W.Font:null,bg:W.BG||null,bg2:W.BG2||null,ucr:W.UCR||null,ucr2:W.UCR2||null,tr:W.TR||null,tr2:W.TR2||null,ht:W.HT||null,fl:P(W.FL)?W.FL.value:null,sm:P(W.SM)?W.SM.value:null,sa:F(W.SA,"bool")?W.SA.value:null,bm:W.BM||null,sMask:W.SMask||null,ca:P(W.CA)?W.CA.value:null,caNs:P(W.ca)?W.ca.value:null,ais:F(W.AIS,"bool")?W.AIS.value:null,tk:F(W.TK,"bool")?W.TK.value:null,useBlackPtComp:F(W.UseBlackPtComp,"name")?W.UseBlackPtComp.value:null,hto:F(W.HTO,"array")?W.HTO:null,raw:j,_extras:{}};for(let H of Object.keys(W))if(!(H in I))G._extras[H]=W[H];return G}function M(j,W){if(j!=="d0"&&j!=="d1")throw new D("pdf/extra/content-ops/unknown","expected d0 or d1 operator",{context:{op:j}});if(j==="d0"){if(!W||W.length!==2)throw new D("pdf/extra/content-ops/bad-d0","d0 requires 2 operands wx wy",{context:{count:W&&W.length}});return{kind:"d0",wx:+W[0],wy:+W[1]}}if(!W||W.length!==6)throw new D("pdf/extra/content-ops/bad-d1","d1 requires 6 operands wx wy llx lly urx ury",{context:{count:W&&W.length}});return{kind:"d1",wx:+W[0],wy:+W[1],bbox:[+W[2],+W[3],+W[4],+W[5]]}}return{typeExtGState:C,decodeType3CharOp:M,EXT_GSTATE_KEYS:I}}}),I0({name:"pdfFontCidTyped",dependencies:["pdfErrors","pdfParserObj"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=new Set(["CIDFontType0","CIDFontType2"]),P=Object.freeze({"Adobe-GB1":Object.freeze(["GB-EUC-H","GB-EUC-V","GBpc-EUC-H","GBpc-EUC-V","GBK-EUC-H","GBK-EUC-V","GBKp-EUC-H","GBKp-EUC-V","GBK2K-H","GBK2K-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V"]),"Adobe-CNS1":Object.freeze(["B5pc-H","B5pc-V","HKscs-B5-H","HKscs-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","CNS-EUC-H","CNS-EUC-V","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V"]),"Adobe-Japan1":Object.freeze(["83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","Add-RKSJ-H","Add-RKSJ-V","EUC-H","EUC-V","Ext-RKSJ-H","Ext-RKSJ-V","H","V","UniJIS-UCS2-H","UniJIS-UCS2-V","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UTF16-H","UniJIS-UTF16-V"]),"Adobe-Korea1":Object.freeze(["KSC-EUC-H","KSC-EUC-V","KSCms-UHC-H","KSCms-UHC-V","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCpc-EUC-H","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V"]),Identity:Object.freeze(["Identity-H","Identity-V"])}),C=new Set(["Type","Subtype","BaseFont","CIDSystemInfo","FontDescriptor","DW","W","DW2","W2","CIDToGIDMap"]);function M(X){if(!F(X,"dict"))throw new D("pdf/extra/cid-font/not-dict","CIDFont must be a dictionary",{context:{type:X&&X.type}});let J=X.entries;if(J.Type&&(J.Type.type!=="name"||J.Type.value!=="Font"))throw new D("pdf/extra/cid-font/bad-type","/Type entry must be /Font",{context:{actual:J.Type.value}});if(!F(J.Subtype,"name")||!I.has(J.Subtype.value))throw new D("pdf/extra/cid-font/bad-subtype","/Subtype must be CIDFontType0 or CIDFontType2",{context:{actual:J.Subtype&&J.Subtype.value}});if(!F(J.CIDSystemInfo,"dict")&&!(J.CIDSystemInfo&&J.CIDSystemInfo.type==="ref"))throw new D("pdf/extra/cid-font/missing-csi","/CIDSystemInfo is required (dict or ref)",{context:{type:J.CIDSystemInfo&&J.CIDSystemInfo.type}});let z={subtype:J.Subtype.value,baseFont:F(J.BaseFont,"name")?J.BaseFont.value:null,cidSystemInfo:F(J.CIDSystemInfo,"dict")?j(J.CIDSystemInfo):J.CIDSystemInfo,fontDescriptor:J.FontDescriptor||null,dw:G(J.DW,1000),w:F(J.W,"array")?W(J.W):null,dw2:F(J.DW2,"array")?H(J.DW2):[880,-1000],w2:F(J.W2,"array")?J.W2.items.map((V)=>V):null,cidToGIDMap:J.CIDToGIDMap||null,raw:X,_extras:{}};for(let V of Object.keys(J))if(!C.has(V))z._extras[V]=J[V];return z}function j(X){if(!F(X,"dict"))throw new D("pdf/extra/cid-system-info/not-dict","CIDSystemInfo must be a dictionary",{context:{type:X&&X.type}});let J=X.entries;if(!F(J.Registry,"string")||!F(J.Ordering,"string"))throw new D("pdf/extra/cid-system-info/incomplete","/Registry and /Ordering are required strings");return{registry:J.Registry.value,ordering:J.Ordering.value,supplement:G(J.Supplement,0)}}function W(X){if(!F(X,"array"))throw new D("pdf/extra/cid-font/bad-w","/W must be an array",{context:{type:X&&X.type}});let J=X.items,z=[],V=0;while(V<J.length){let Q=J[V];if(!Q||Q.type!=="int"&&Q.type!=="real")throw new D("pdf/extra/cid-font/bad-w-c","/W expects numeric CID");let Z=Q.value|0,$=J[V+1];if($&&$.type==="array"){let q=[];for(let Y of $.items){if(!Y||Y.type!=="int"&&Y.type!=="real")throw new D("pdf/extra/cid-font/bad-w-item","/W array sub-items must be numeric");q.push(Y.value)}z.push({first:Z,last:Z+q.length-1,widths:q}),V+=2}else{let q=$,Y=J[V+2];if(!q||q.type!=="int"&&q.type!=="real"||!Y||Y.type!=="int"&&Y.type!=="real")throw new D("pdf/extra/cid-font/bad-w-range","/W range form requires c_first c_last w");z.push({first:Z,last:q.value|0,width:Y.value}),V+=3}}return z}function G(X,J){if(!X)return J;if(X.type!=="int"&&X.type!=="real")return J;return X.value}function H(X){if(!F(X,"array"))return null;let J=[];for(let z of X.items){if(!z||z.type!=="int"&&z.type!=="real")return null;J.push(z.value)}return J}return{typeCIDFont:M,typeCIDSystemInfo:j,decodeWidthsW:W,PREDEFINED_CMAPS:P}}}),I0({name:"pdfFontColorTagging",dependencies:["pdfErrors","pdfParserObj"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=Object.freeze({FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144}),P=Object.freeze(["COLR","CPAL","sbix","SVG ","CBDT","CBLC"]);function C(G){if(typeof G!=="number"||!Number.isFinite(G))throw new D("pdf/extra/font-flags/bad-input","flags must be a finite number",{context:{flags:G}});let H=G|0,X={raw:H};for(let[J,z]of Object.entries(I))X[J.charAt(0).toLowerCase()+J.slice(1)]=(H&z)!==0;return X}function M(G){if(!(G instanceof Uint8Array))throw new D("pdf/extra/color-font/bad-input","expected Uint8Array",{context:{kind:typeof G}});if(G.length<12)throw new D("pdf/extra/color-font/truncated","sfnt header too short",{context:{length:G.length}});let H=G[4]<<8|G[5],X=12+H*16;if(G.length<X)throw new D("pdf/extra/color-font/truncated","sfnt table directory truncated",{context:{numTables:H,length:G.length}});let J=[];for(let z=0;z<H;z++){let V=12+z*16,Q=String.fromCharCode(G[V],G[V+1],G[V+2],G[V+3]);J.push(Q)}return{hasCOLR:J.includes("COLR"),hasSbix:J.includes("sbix"),hasSVG:J.includes("SVG "),hasCBDT:J.includes("CBDT"),tables:J}}function j(G){if(!F(G,"stream"))throw new D("pdf/extra/fontfile3/not-stream","/FontFile3 must be a stream",{context:{type:G&&G.type}});let H=G.dict;if(!F(H,"dict"))throw new D("pdf/extra/fontfile3/no-dict","/FontFile3 stream missing dict");let X=H.entries;if(!F(X.Subtype,"name")||X.Subtype.value!=="OpenType")throw new D("pdf/extra/fontfile3/bad-subtype","/FontFile3 /Subtype must be /OpenType",{context:{actual:X.Subtype&&X.Subtype.value}});let J=null;if(G.raw instanceof Uint8Array&&G.raw.length>=12)try{J=M(G.raw)}catch(z){J=null}return{subtype:"OpenType",length:G.raw instanceof Uint8Array?G.raw.length:null,metadata:X.Metadata||null,color:J,raw:G,_extras:W(X,new Set(["Subtype","Length","Filter","DecodeParms","Metadata"]))}}function W(G,H){let X={};for(let J of Object.keys(G))if(!H.has(J))X[J]=G[J];return X}return{decodeFontDescriptorFlags:C,detectColorFontTables:M,typeFontFile3OpenType:j,FONT_DESCRIPTOR_FLAGS:I,COLOR_OT_TABLES:P}}}),I0({name:"pdfTaggedPdfTyped",dependencies:["pdfErrors","pdfParserObj"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=new Set(["Layout","List","Table","PrintField","Artifact","UserProperties"]),P={Layout:new Set(["O","Placement","WritingMode","BackgroundColor","BorderColor","BorderStyle","BorderThickness","Color","Padding","SpaceBefore","SpaceAfter","StartIndent","EndIndent","TextIndent","TextAlign","BBox","Width","Height","BlockAlign","InlineAlign","TBorderStyle","TPadding","LineHeight","BaselineShift","TextPosition","TextDecorationType","TextDecorationColor","TextDecorationThickness","RubyAlign","RubyPosition","GlyphOrientationVertical","ColumnCount","ColumnGap","ColumnWidths"]),List:new Set(["O","ListNumbering","ContinuedList","ContinuedFrom"]),Table:new Set(["O","RowSpan","ColSpan","Headers","Scope","Summary"]),PrintField:new Set(["O","Role","checked","Desc"]),Artifact:new Set(["O","Type","BBox","Attached","Subtype"]),UserProperties:new Set(["O","P"])};function C($){return P[$]||new Set(["O"])}function M($){if(!F($,"dict"))throw new D("pdf/extra/tagged/not-dict","attribute class must be a dictionary",{context:{type:$&&$.type}});let q=$.entries;if(!F(q.O,"name"))throw new D("pdf/extra/tagged/missing-owner","attribute class missing /O owner name",{context:{type:q.O&&q.O.type}});let Y=q.O.value,U;switch(Y){case"Layout":U=j(q);break;case"List":U=W(q);break;case"Table":U=G(q);break;case"PrintField":U=H(q);break;case"Artifact":U=X(q);break;case"UserProperties":U=J(q);break;default:U={owner:Y,vendor:!0}}return U.owner=Y,U.raw=$,U._extras=Z(q,C(Y)),U}function j($){return{placement:z($.Placement),writingMode:z($.WritingMode),backgroundColor:Q($.BackgroundColor),borderColor:$.BorderColor||null,borderStyle:$.BorderStyle||null,borderThickness:$.BorderThickness||null,color:Q($.Color),padding:$.Padding||null,spaceBefore:V($.SpaceBefore,null),spaceAfter:V($.SpaceAfter,null),startIndent:V($.StartIndent,null),endIndent:V($.EndIndent,null),textIndent:V($.TextIndent,null),textAlign:z($.TextAlign),bbox:Q($.BBox),width:V($.Width,null),height:V($.Height,null),blockAlign:z($.BlockAlign),inlineAlign:z($.InlineAlign),lineHeight:V($.LineHeight,null),baselineShift:V($.BaselineShift,null),textPosition:z($.TextPosition),textDecorationType:z($.TextDecorationType),textDecorationColor:Q($.TextDecorationColor),textDecorationThickness:V($.TextDecorationThickness,null),columnCount:V($.ColumnCount,null),columnGap:$.ColumnGap||null,columnWidths:$.ColumnWidths||null}}function W($){return{listNumbering:z($.ListNumbering),continuedList:F($.ContinuedList,"bool")?$.ContinuedList.value:null,continuedFrom:$.ContinuedFrom||null}}function G($){return{rowSpan:V($.RowSpan,null),colSpan:V($.ColSpan,null),headers:$.Headers||null,scope:z($.Scope),summary:F($.Summary,"string")?$.Summary.value:null}}function H($){return{role:z($.Role),checked:z($.checked)||z($.Checked),desc:F($.Desc,"string")?$.Desc.value:null}}function X($){return{artifactType:z($.Type),bbox:Q($.BBox),attached:$.Attached||null,artifactSubtype:z($.Subtype)}}function J($){let q={properties:[]};if(F($.P,"array"))for(let Y of $.P.items){if(!F(Y,"dict"))throw new D("pdf/extra/tagged/bad-user-property","/P items must be dicts");let U=Y.entries;q.properties.push({name:F(U.N,"string")?U.N.value:null,value:U.V||null,formatted:F(U.F,"string")?U.F.value:null,hidden:F(U.H,"bool")?U.H.value:!1})}return q}function z($){return F($,"name")?$.value:null}function V($,q){if(!$)return q;return $.type==="int"||$.type==="real"?$.value:q}function Q($){if(!F($,"array"))return null;let q=[];for(let Y of $.items){if(!Y||Y.type!=="int"&&Y.type!=="real")return null;q.push(Y.value)}return q}function Z($,q){let Y={};for(let U of Object.keys($))if(!q.has(U))Y[U]=$[U];return Y}return{typeStructAttribute:M,ATTRIBUTE_OWNERS:I}}}),I0({name:"pdfAnnot",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=new Set(["Type","Subtype","Rect","Contents","P","NM","M","F","AP","AS","Border","C","StructParent","OC","AF","CA","BS","BE"]);function P(Z){if(!F(Z,"dict"))throw new D("pdf/annot/not-dict","annotation must be a dictionary",{context:{type:Z&&Z.type}});let $=Z.entries;if($.Type&&($.Type.type!=="name"||$.Type.value!=="Annot"))throw new D("pdf/annot/bad-type","/Type must be /Annot when present",{context:{actual:$.Type.value}});return{subtype:F($.Subtype,"name")?$.Subtype.value:null,rect:X($.Rect),contents:F($.Contents,"string")?$.Contents.value:null,p:$.P&&$.P.type==="ref"?{num:$.P.num,gen:$.P.gen}:null,nm:F($.NM,"string")?$.NM.value:null,m:F($.M,"string")?$.M.value:null,f:V($.F,0),ap:F($.AP,"dict")?$.AP:null,as:F($.AS,"name")?$.AS.value:null,border:J($.Border),c:z($.C),structParent:V($.StructParent,null),oc:$.OC||null,af:$.AF||null,ca:Q($.CA,null),bs:F($.BS,"dict")?$.BS:null,be:F($.BE,"dict")?$.BE:null,raw:Z,_extras:{}}}function C(Z,$,q){let Y=$.entries;for(let U of Object.keys(Y)){if(I.has(U))continue;if(q&&q.has(U))continue;Z._extras[U]=Y[U]}}function M(Z,$){if(!F(Z,"dict"))throw new D("pdf/annot/not-dict","annotation must be a dictionary",{context:{type:Z&&Z.type}});let q=Z.entries.Subtype;if(!F(q,"name"))throw new D("pdf/annot/missing-subtype","/Subtype is required and must be a name",{context:{kind:q&&q.type}});let Y=q.value,U=$||{};switch(Y){case"Text":return W("Text",j(U.Text,Z));case"Link":return W("Link",j(U.Link,Z));case"FreeText":return W("FreeText",j(U.FreeText,Z));case"Line":return W("Line",j(U.Shape,Z,"Line"));case"Square":return W("Square",j(U.Shape,Z,"Square"));case"Circle":return W("Circle",j(U.Shape,Z,"Circle"));case"Polygon":return W("Polygon",j(U.Shape,Z,"Polygon"));case"PolyLine":return W("PolyLine",j(U.Shape,Z,"PolyLine"));case"Highlight":return W("Highlight",j(U.Markup,Z,"Highlight"));case"Underline":return W("Underline",j(U.Markup,Z,"Underline"));case"Squiggly":return W("Squiggly",j(U.Markup,Z,"Squiggly"));case"StrikeOut":return W("StrikeOut",j(U.Markup,Z,"StrikeOut"));case"Caret":return W("Caret",j(U.Markup,Z,"Caret"));case"Stamp":return W("Stamp",j(U.Stamp,Z));case"Ink":return W("Ink",j(U.Ink,Z));case"Popup":return W("Popup",j(U.Popup,Z));case"FileAttachment":return W("FileAttachment",j(U.FileAttachment,Z));case"Widget":return W("Widget",j(U.Widget,Z));case"Redact":return W("Redact",j(U.Redact,Z));case"Projection":return W("Projection",j(U.Projection,Z));case"Sound":case"Movie":case"Screen":case"PrinterMark":case"TrapNet":case"Watermark":case"3D":case"RichMedia":return W(Y,G(Z));default:return{kind:Y,raw:Z,_extras:H(Z)}}}function j(Z,$,q){if(typeof Z!=="function")return G($);return q!==void 0?Z($,q):Z($)}function W(Z,$){return $.kind=Z,$}function G(Z){let $=P(Z);return C($,Z,null),$}function H(Z){let $={},q=Z.entries;for(let Y of Object.keys(q))$[Y]=q[Y];return $}function X(Z){if(!Z||Z.type!=="array"||Z.items.length!==4)return null;let $=Array(4);for(let q=0;q<4;q++){let Y=Z.items[q];if(!Y||Y.type!=="int"&&Y.type!=="real")return null;$[q]=Y.value}return $}function J(Z){if(!Z||Z.type!=="array")return null;let $=[];for(let q of Z.items){if(!q)return null;if(q.type==="int"||q.type==="real")$.push(q.value);else if(q.type==="array")$.push(z(q));else return null}return $}function z(Z){if(!Z||Z.type!=="array")return null;let $=[];for(let q of Z.items){if(!q)return null;if(q.type!=="int"&&q.type!=="real")return null;$.push(q.value)}return $}function V(Z,$){if(!Z)return $;if(Z.type!=="int"&&Z.type!=="real")return $;return Z.value|0}function Q(Z,$){if(!Z)return $;if(Z.type!=="int"&&Z.type!=="real")return $;return Z.value}return{BASE_KEYS:I,typeBaseAnnot:P,captureExtras:C,typeAnnot:M}}}),I0({name:"pdfAnnotExtended",dependencies:["pdfErrors","pdfParserObj","pdfAnnot"],factory:function(i,A,D){let{ParseError:F}=i,{isType:I}=A,{typeBaseAnnot:P,captureExtras:C}=D,M=new Set(["Watermark","3D","RichMedia","Sound","Movie","Screen","PrinterMark","TrapNet","FreeText"]),j=Object.freeze(["Square","Circle","Diamond","OpenArrow","ClosedArrow","None","Butt","ROpenArrow","RClosedArrow","Slash"]);function W(Y){if(!I(Y,"dict"))throw new F("pdf/extra/annot-ext/not-dict","annotation must be a dictionary",{context:{type:Y&&Y.type}});let U=Y.entries.Subtype;if(!I(U,"name")||!M.has(U.value))throw new F("pdf/extra/annot-ext/unsupported","unsupported extended annotation subtype",{context:{subtype:U&&U.value}});switch(U.value){case"Watermark":return G(Y);case"3D":return H(Y);case"RichMedia":return X(Y);case"Sound":return J(Y);case"Movie":return z(Y);case"Screen":return V(Y);case"PrinterMark":return Q(Y);case"TrapNet":return Z(Y);case"FreeText":return $(Y)}throw new F("pdf/extra/annot-ext/unreachable","unreachable")}function G(Y){let U=P(Y);U.kind="Watermark";let K=Y.entries;return U.fixedPrint=I(K.FixedPrint,"dict")?K.FixedPrint:null,C(U,Y,new Set(["FixedPrint"])),U}function H(Y){let U=P(Y);U.kind="3D";let K=Y.entries;return U["3DD"]=K["3DD"]||null,U["3DV"]=K["3DV"]||null,U["3DA"]=K["3DA"]||null,U["3DI"]=I(K["3DI"],"bool")?K["3DI"].value:null,U["3DB"]=K["3DB"]||null,C(U,Y,new Set(["3DD","3DV","3DA","3DI","3DB"])),U}function X(Y){let U=P(Y);U.kind="RichMedia";let K=Y.entries;return U.richMediaContent=K.RichMediaContent||null,U.richMediaSettings=K.RichMediaSettings||null,C(U,Y,new Set(["RichMediaContent","RichMediaSettings"])),U}function J(Y){let U=P(Y);U.kind="Sound";let K=Y.entries;return U.sound=K.Sound||null,U.name=I(K.Name,"name")?K.Name.value:null,C(U,Y,new Set(["Sound","Name"])),U}function z(Y){let U=P(Y);U.kind="Movie";let K=Y.entries;return U.t=I(K.T,"string")?K.T.value:null,U.movie=K.Movie||null,U.activation=K.A||null,C(U,Y,new Set(["T","Movie","A"])),U}function V(Y){let U=P(Y);U.kind="Screen";let K=Y.entries;return U.t=I(K.T,"string")?K.T.value:null,U.mk=K.MK||null,U.a=K.A||null,U.aa=K.AA||null,C(U,Y,new Set(["T","MK","A","AA"])),U}function Q(Y){let U=P(Y);U.kind="PrinterMark";let K=Y.entries;return U.mn=I(K.MN,"name")?K.MN.value:null,C(U,Y,new Set(["MN"])),U}function Z(Y){let U=P(Y);U.kind="TrapNet";let K=Y.entries;return U.lastModified=I(K.LastModified,"string")?K.LastModified.value:null,U.version=K.Version||null,U.annotStates=K.AnnotStates||null,U.fontFauxing=K.FontFauxing||null,C(U,Y,new Set(["LastModified","Version","AnnotStates","FontFauxing"])),U}function $(Y){let U=P(Y);U.kind="FreeText";let K=Y.entries;U.da=I(K.DA,"string")?K.DA.value:null,U.q=K.Q&&(K.Q.type==="int"||K.Q.type==="real")?K.Q.value|0:null,U.rc=I(K.RC,"string")?K.RC.value:I(K.RC,"stream")?K.RC:null,U.ds=I(K.DS,"string")?K.DS.value:null,U.cl=I(K.CL,"array")?q(K.CL):null,U.it=I(K.IT,"name")?K.IT.value:null,U.be=K.BE||null,U.rd=I(K.RD,"array")?q(K.RD):null;let T=null;if(I(K.LE,"name"))T=K.LE.value;else if(I(K.LE,"array"))T=K.LE.items.filter((B)=>I(B,"name")).map((B)=>B.value);return U.le=T,C(U,Y,new Set(["DA","Q","RC","DS","CL","IT","BE","RD","LE"])),U}function q(Y){let U=[];for(let K of Y.items){if(!K||K.type!=="int"&&K.type!=="real")return null;U.push(K.value)}return U}return{typeAnnotExtended:W,typeWatermarkAnnot:G,type3DAnnot:H,typeRichMediaAnnot:X,typeSoundAnnot:J,typeMovieAnnot:z,typeScreenAnnot:V,typePrinterMarkAnnot:Q,typeTrapNetAnnot:Z,typeFreeTextExtended:$,FREETEXT_LINE_ENDINGS:j}}}),I0({name:"pdfAOutputIntent",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=Object.freeze({"1a":{part:1,level:"a",iso:"ISO 19005-1:2005",notes:"accessible"},"1b":{part:1,level:"b",iso:"ISO 19005-1:2005",notes:"basic"},"2a":{part:2,level:"a",iso:"ISO 19005-2:2011",notes:"accessible"},"2b":{part:2,level:"b",iso:"ISO 19005-2:2011",notes:"basic"},"2u":{part:2,level:"u",iso:"ISO 19005-2:2011",notes:"unicode"},"3a":{part:3,level:"a",iso:"ISO 19005-3:2012",notes:"accessible + embed"},"3b":{part:3,level:"b",iso:"ISO 19005-3:2012",notes:"basic + embed"},"3u":{part:3,level:"u",iso:"ISO 19005-3:2012",notes:"unicode + embed"},"4":{part:4,level:null,iso:"ISO 19005-4:2020",notes:"PDF 2.0 base"},"4e":{part:4,level:"e",iso:"ISO 19005-4:2020",notes:"engineering"},"4f":{part:4,level:"f",iso:"ISO 19005-4:2020",notes:"embedded files allowed"}}),P=new Set(["1a","1b","2a","2b","2u","3a","3b","3u","4","4e","4f"]);function C(W){if(!F(W,"dict"))throw new D("pdf/extra/pdfa/not-dict","OutputIntent must be a dictionary",{context:{type:W&&W.type}});let G=W.entries,H=F(G.S,"name")?G.S.value:null,X=F(G.OutputConditionIdentifier,"string")?new TextDecoder("latin1").decode(G.OutputConditionIdentifier.value):null,J=H==="GTS_PDFA1",z=M(X);return{isPdfA:J,subtype:H,identifier:X,profile:z,part:z?I[z].part:null,level:z?I[z].level:null,catalog:z?I[z]:null,raw:W}}function M(W){if(!W)return null;let G=W.match(/PDF\/A[-\s]?(1[ab]|2[abu]|3[abu]|4[ef]?)/i);if(!G)return null;let H=G[1].toLowerCase();return P.has(H)?H:null}function j(W){if(!W||typeof W!=="object")throw new D("pdf/extra/pdfa/lint/bad-doc","validatePdfABasics requires a typed document object",{context:{type:typeof W}});let G=[],H=[],X=W.catalog&&W.catalog.entries;if(W.encrypted)G.push("PDF/A forbids encryption");if(!X)return G.push("catalog missing"),{pass:!1,errors:G,warnings:H};if(!X.Metadata)G.push("catalog requires /Metadata XMP stream");if(X.MarkInfo&&!F(X.MarkInfo,"dict"))G.push("/MarkInfo must be a dictionary");if(!X.OutputIntents)H.push("catalog has no /OutputIntents array");return{pass:G.length===0,errors:G,warnings:H}}return{detectPdfAProfile:C,validatePdfABasics:j,PDFA_PROFILES:I}}}),I0({name:"pdfUaTagged",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=Object.freeze({required:Object.freeze(["Document","Part","Sect","Art","H","P","L","LI","Lbl","LBody","Table","TR","TH","TD","Figure"]),forbidden:Object.freeze(["Span"]),figure:Object.freeze(["Alt","ActualText"]),headings:Object.freeze(["H","H1","H2","H3","H4","H5","H6"])});function P(M){if(!M||typeof M!=="object")throw new D("pdf/extra/pdfua/bad-doc","validatePdfUa requires a typed document object",{context:{type:typeof M}});let j=[],W=[],G=M.catalog&&M.catalog.entries;if(!G)return j.push("catalog missing"),{pass:!1,errors:j,warnings:W};if(!G.StructTreeRoot)j.push("catalog requires /StructTreeRoot");if(!G.Lang||!F(G.Lang,"string"))j.push("catalog requires /Lang string");if(!G.MarkInfo)j.push("catalog requires /MarkInfo dictionary");else if(!F(G.MarkInfo,"dict"))j.push("/MarkInfo must be a dictionary");else{let H=G.MarkInfo.entries.Marked;if(!F(H,"bool")||H.value!==!0)j.push("/MarkInfo /Marked must be true")}if(G.ViewerPreferences&&F(G.ViewerPreferences,"dict")){let H=G.ViewerPreferences.entries.DisplayDocTitle;if(!F(H,"bool")||H.value!==!0)W.push("/ViewerPreferences /DisplayDocTitle should be true")}else W.push("catalog should have /ViewerPreferences");if(typeof M.p==="number"){if((M.p&512)===0)j.push("permissions bit 10 (accessible) must be set")}return{pass:j.length===0,errors:j,warnings:W}}function C(M){if(!M||typeof M!=="object")throw new D("pdf/extra/pdfua/struct/bad-node","validateUaStructElement requires a node",{context:{type:typeof M}});let j=[],W=[];if(M.s==="Figure"){if(!M.alt&&!M.actualText)j.push("Figure requires /Alt or /ActualText")}if(I.forbidden.includes(M.s))W.push("avoid /"+M.s+" as a top-level structure type");return{pass:j.length===0,errors:j,warnings:W}}return{validatePdfUa:P,validateUaStructElement:C,UA_STRUCTURE:I}}}),I0({name:"pdfFormActionsExtended",dependencies:["pdfErrors","pdfParserObj"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=new Set(["GoTo3DView","SetOCGState","Trans","Rendition","Hide","SubmitForm","ResetForm","ImportData","JavaScript"]),P={GoTo3DView:new Set(["Type","S","Next","TA","V"]),SetOCGState:new Set(["Type","S","Next","State","PreserveRB"]),Trans:new Set(["Type","S","Next","Trans"]),Rendition:new Set(["Type","S","Next","R","AN","OP","JS"]),Hide:new Set(["Type","S","Next","T","H"]),SubmitForm:new Set(["Type","S","Next","F","Fields","Flags","CharSet"]),ResetForm:new Set(["Type","S","Next","Fields","Flags"]),ImportData:new Set(["Type","S","Next","F"]),JavaScript:new Set(["Type","S","Next","JS"])};function C($){return P[$]||new Set(["Type","S","Next"])}function M($){if(!F($,"dict"))throw new D("pdf/extra/action-ext/not-dict","action must be a dictionary",{context:{type:$&&$.type}});let q=$.entries;if(q.Type&&(q.Type.type!=="name"||q.Type.value!=="Action"))throw new D("pdf/extra/action-ext/bad-type","/Type entry must be /Action",{context:{actual:q.Type.value}});if(!F(q.S,"name")||!I.has(q.S.value))throw new D("pdf/extra/action-ext/unsupported","unsupported extended action subtype",{context:{subtype:q.S&&q.S.value}});let Y;switch(q.S.value){case"GoTo3DView":Y=j(q);break;case"SetOCGState":Y=W(q);break;case"Trans":Y=G(q);break;case"Rendition":Y=H(q);break;case"Hide":Y=X(q);break;case"SubmitForm":Y=J(q);break;case"ResetForm":Y=z(q);break;case"ImportData":Y=V(q);break;case"JavaScript":Y=Q(q);break}return Y.kind=q.S.value,Y.raw=$,Y._extras=Z(q,C(q.S.value)),Y}function j($){return{ta:$.TA||null,v:$.V||null}}function W($){if(!F($.State,"array"))throw new D("pdf/extra/action-ext/bad-state","/State must be an array",{context:{type:$.State&&$.State.type}});return{state:$.State.items,preserveRB:F($.PreserveRB,"bool")?$.PreserveRB.value:!0}}function G($){if(!F($.Trans,"dict"))throw new D("pdf/extra/action-ext/bad-trans","/Trans must be a dict",{context:{type:$.Trans&&$.Trans.type}});return{trans:$.Trans}}function H($){let q=$.OP&&($.OP.type==="int"||$.OP.type==="real")?$.OP.value|0:null,Y=F($.JS,"string")||F($.JS,"stream");return{r:$.R||null,an:$.AN||null,op:q,js:F($.JS,"string")?$.JS.value:F($.JS,"stream")?$.JS:null,sandboxed:Y?!0:void 0}}function X($){if(!$.T)throw new D("pdf/extra/action-ext/missing-t","Hide action requires /T");let q;if(F($.T,"string")||$.T.type==="ref")q=[$.T];else if(F($.T,"array"))q=$.T.items;else throw new D("pdf/extra/action-ext/bad-t","/T must be string, ref, or array",{context:{type:$.T.type}});return{targets:q,h:F($.H,"bool")?$.H.value:!0}}function J($){if(!$.F)throw new D("pdf/extra/action-ext/missing-f","SubmitForm requires /F (URL)");return{url:$.F,fields:F($.Fields,"array")?$.Fields.items:null,flags:$.Flags&&($.Flags.type==="int"||$.Flags.type==="real")?$.Flags.value|0:0,charSet:F($.CharSet,"string")?$.CharSet.value:null,sandboxed:!0}}function z($){return{fields:F($.Fields,"array")?$.Fields.items:null,flags:$.Flags&&($.Flags.type==="int"||$.Flags.type==="real")?$.Flags.value|0:0}}function V($){if(!$.F)throw new D("pdf/extra/action-ext/missing-f","ImportData requires /F (file spec)");return{file:$.F,sandboxed:!0}}function Q($){if(!$.JS)throw new D("pdf/extra/action-ext/missing-js","JavaScript action requires /JS");if(!F($.JS,"string")&&!F($.JS,"stream"))throw new D("pdf/extra/action-ext/bad-js","/JS must be string or stream",{context:{type:$.JS.type}});return{js:$.JS,sandboxed:!0}}function Z($,q){let Y={};for(let U of Object.keys($))if(!q.has(U))Y[U]=$[U];return Y}return{typeExtendedAction:M,EXTENDED_ACTION_SUBTYPES:I}}}),I0({name:"pdfColorSpacesExtended",dependencies:["pdfErrors","pdfParserObj"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=new Set(["CalGray","CalRGB","Lab","ICCBased","Indexed","Separation","DeviceN","NChannel","Pattern","DeviceGray","DeviceRGB","DeviceCMYK"]);function P(Q){if(F(Q,"name")){if(!I.has(Q.value))return{family:"NamedResource",name:Q.value,raw:Q};return{family:Q.value,raw:Q}}if(!F(Q,"array")||Q.items.length<1)throw new D("pdf/extra/colorspace/bad-shape","color space must be name or non-empty array",{context:{type:Q&&Q.type}});let Z=Q.items[0];if(!F(Z,"name"))throw new D("pdf/extra/colorspace/bad-family","color space array must start with a name");let $=Z.value;if(!I.has($))throw new D("pdf/extra/colorspace/unknown","unknown color-space family",{context:{family:$}});switch($){case"CalGray":return{family:$,...M(Q),raw:Q};case"CalRGB":return{family:$,...j(Q),raw:Q};case"Lab":return{family:$,...W(Q),raw:Q};case"ICCBased":return{family:$,...G(Q),raw:Q};case"Indexed":return{family:$,...H(Q),raw:Q};case"Separation":return{family:$,...X(Q),raw:Q};case"DeviceN":return{family:$,...J(Q),raw:Q};case"NChannel":return{family:$,...J(Q),nChannel:!0,raw:Q};case"Pattern":return{family:$,...z(Q),raw:Q};default:return{family:$,raw:Q}}}function C(Q){if(!F(Q,"dict"))throw new D("pdf/extra/colorspace/cal-no-dict","Cal* parameters dict missing");return{whitePoint:V(Q.entries.WhitePoint,3),blackPoint:V(Q.entries.BlackPoint,3),gamma:Q.entries.Gamma||null,matrix:V(Q.entries.Matrix,9)}}function M(Q){if(Q.items.length<2)throw new D("pdf/extra/colorspace/cal-truncated","CalGray needs dict");return{params:C(Q.items[1])}}function j(Q){if(Q.items.length<2)throw new D("pdf/extra/colorspace/cal-truncated","CalRGB needs dict");return{params:C(Q.items[1])}}function W(Q){if(Q.items.length<2||!F(Q.items[1],"dict"))throw new D("pdf/extra/colorspace/lab-truncated","Lab needs dict");let Z=Q.items[1].entries;return{whitePoint:V(Z.WhitePoint,3),blackPoint:V(Z.BlackPoint,3),range:V(Z.Range,4)}}function G(Q){if(Q.items.length<2||!F(Q.items[1],"stream"))throw new D("pdf/extra/colorspace/icc-no-stream","ICCBased needs a stream");let Z=Q.items[1],$=Z.dict.entries;return{n:$.N&&($.N.type==="int"||$.N.type==="real")?$.N.value|0:null,alt:$.Alternate||null,range:V($.Range,null),metadata:$.Metadata||null,profile:Z}}function H(Q){if(Q.items.length<4)throw new D("pdf/extra/colorspace/indexed-truncated","Indexed needs [base hival lookup]");let Z=Q.items[2];if(!Z||Z.type!=="int"&&Z.type!=="real")throw new D("pdf/extra/colorspace/indexed-bad-hival","Indexed hival must be numeric");return{base:Q.items[1],hival:Z.value|0,lookup:Q.items[3]}}function X(Q){if(Q.items.length<4)throw new D("pdf/extra/colorspace/sep-truncated","Separation needs [name alternate tintTransform]");return{colorant:F(Q.items[1],"name")?Q.items[1].value:null,alternate:Q.items[2],tintTransform:Q.items[3]}}function J(Q){if(Q.items.length<4)throw new D("pdf/extra/colorspace/devn-truncated","DeviceN needs [names alternate tintTransform attributes?]");let Z=null;if(F(Q.items[1],"array"))Z=Q.items[1].items.map(($)=>F($,"name")?$.value:null);return{names:Z,alternate:Q.items[2],tintTransform:Q.items[3],attributes:Q.items[4]||null}}function z(Q){return{base:Q.items[1]||null}}function V(Q,Z){if(!F(Q,"array"))return null;let $=[];for(let q of Q.items){if(!q||q.type!=="int"&&q.type!=="real")return null;$.push(q.value)}if(Z!=null&&$.length!==Z)return null;return $}return{typeColorSpace:P,COLOR_SPACE_FAMILIES:I}}}),I0({name:"pdfShadingTyped",dependencies:["pdfErrors","pdfParserObj"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=($)=>$&&($.type==="int"||$.type==="real");function P($){let q;if(F($,"dict"))q=$;else if(F($,"stream"))q=$.dict;else throw new D("pdf/extra/shading/not-dict-or-stream","Shading must be dict or stream",{context:{type:$&&$.type}});let Y=q.entries;if(!I(Y.ShadingType))throw new D("pdf/extra/shading/missing-type","/ShadingType is required and must be numeric",{context:{type:Y.ShadingType&&Y.ShadingType.type}});let U=Y.ShadingType.value|0;if(U<1||U>7)throw new D("pdf/extra/shading/bad-type","invalid /ShadingType (must be 1..7)",{context:{st:U}});let K={shadingType:U,colorSpace:Y.ColorSpace||null,background:F(Y.Background,"array")?Y.Background.items:null,bbox:F(Y.BBox,"array")?Y.BBox.items.map((k)=>I(k)?k.value:null):null,antiAlias:F(Y.AntiAlias,"bool")?Y.AntiAlias.value:!1,raw:$,_extras:{}},T;switch(U){case 1:T=C(Y);break;case 2:T=M(Y);break;case 3:T=j(Y);break;case 4:T=W(Y);break;case 5:T=G(Y);break;case 6:T=H(Y);break;case 7:T=X(Y);break}Object.assign(K,T);let B=new Set(["ShadingType","ColorSpace","Background","BBox","AntiAlias","Domain","Matrix","Function","Coords","Extend","BitsPerCoordinate","BitsPerComponent","BitsPerFlag","Decode","VerticesPerRow"]);for(let k of Object.keys(Y))if(!B.has(k))K._extras[k]=Y[k];return K}function C($){return{domain:F($.Domain,"array")?V($.Domain):[0,1,0,1],matrix:F($.Matrix,"array")?V($.Matrix):[1,0,0,1,0,0],function:$.Function||null}}function M($){return Q($.Coords,4,"Axial /Coords"),{coords:V($.Coords),domain:F($.Domain,"array")?V($.Domain):[0,1],function:$.Function||null,extend:z($.Extend)}}function j($){return Q($.Coords,6,"Radial /Coords"),{coords:V($.Coords),domain:F($.Domain,"array")?V($.Domain):[0,1],function:$.Function||null,extend:z($.Extend)}}function W($){return J($,!0)}function G($){let q=J($,!1);if(!I($.VerticesPerRow))throw new D("pdf/extra/shading/lattice-missing-vpr","Lattice shading requires /VerticesPerRow");return q.verticesPerRow=$.VerticesPerRow.value|0,q}function H($){return J($,!0)}function X($){return J($,!0)}function J($,q){if(!I($.BitsPerCoordinate)||!I($.BitsPerComponent))throw new D("pdf/extra/shading/mesh-missing-bits","mesh shading requires /BitsPerCoordinate and /BitsPerComponent");if(!F($.Decode,"array"))throw new D("pdf/extra/shading/mesh-missing-decode","mesh shading requires /Decode");let Y={bitsPerCoordinate:$.BitsPerCoordinate.value|0,bitsPerComponent:$.BitsPerComponent.value|0,decode:V($.Decode),function:$.Function||null};if(q){if(!I($.BitsPerFlag))throw new D("pdf/extra/shading/mesh-missing-flag","this mesh shading requires /BitsPerFlag");Y.bitsPerFlag=$.BitsPerFlag.value|0}return Y}function z($){if(!F($,"array")||$.items.length!==2)return[!1,!1];return[F($.items[0],"bool")?$.items[0].value:!1,F($.items[1],"bool")?$.items[1].value:!1]}function V($){if(!F($,"array"))return null;let q=[];for(let Y of $.items){if(!I(Y))return null;q.push(Y.value)}return q}function Q($,q,Y){if(!F($,"array")||$.items.length!==q)throw new D("pdf/extra/shading/bad-coords",`${Y} must be an array of ${q} numbers`,{context:{actualLen:$&&$.items&&$.items.length}})}function Z($){let q;if(F($,"dict"))q=$;else if(F($,"stream"))q=$.dict;else throw new D("pdf/extra/function/not-dict-or-stream","Function must be dict or stream",{context:{type:$&&$.type}});let Y=q.entries;if(!I(Y.FunctionType))throw new D("pdf/extra/function/missing-type","/FunctionType is required");let U=Y.FunctionType.value|0;if(![0,2,3,4].includes(U))throw new D("pdf/extra/function/bad-type","/FunctionType must be 0, 2, 3, or 4",{context:{ft:U}});return{functionType:U,domain:V(Y.Domain),range:V(Y.Range),c0:V(Y.C0),c1:V(Y.C1),n:I(Y.N)?Y.N.value:null,functions:F(Y.Functions,"array")?Y.Functions.items:null,bounds:V(Y.Bounds),encode:V(Y.Encode),size:V(Y.Size),bitsPerSample:I(Y.BitsPerSample)?Y.BitsPerSample.value|0:null,order:I(Y.Order)?Y.Order.value|0:null,decode:V(Y.Decode),raw:$}}return{typeShading:P,typeFunction:Z}}}),I0({name:"pdfTransparencyTyped",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=Object.freeze(["Normal","Compatible","Multiply","Screen","Overlay","Darken","Lighten","ColorDodge","ColorBurn","HardLight","SoftLight","Difference","Exclusion","Hue","Saturation","Color","Luminosity"]),P=(G)=>G&&(G.type==="int"||G.type==="real");function C(G){if(!F(G,"dict"))throw new D("pdf/extra/transparency-group/not-dict","Transparency Group must be a dict",{context:{type:G&&G.type}});let H=G.entries;if(H.Type&&(H.Type.type!=="name"||H.Type.value!=="Group"))throw new D("pdf/extra/transparency-group/bad-type","/Type entry must be /Group",{context:{actual:H.Type.value}});if(!F(H.S,"name")||H.S.value!=="Transparency")throw new D("pdf/extra/transparency-group/bad-s","/S must be /Transparency",{context:{actual:H.S&&H.S.value}});let X=new Set(["Type","S","CS","I","K"]),J={s:"Transparency",cs:H.CS||null,isolated:F(H.I,"bool")?H.I.value:!1,knockout:F(H.K,"bool")?H.K.value:!1,raw:G,_extras:{}};for(let z of Object.keys(H))if(!X.has(z))J._extras[z]=H[z];return J}function M(G){if(!F(G,"dict"))throw new D("pdf/extra/soft-mask/not-dict","Soft Mask must be a dict",{context:{type:G&&G.type}});let H=G.entries;if(H.Type&&(H.Type.type!=="name"||H.Type.value!=="Mask"))throw new D("pdf/extra/soft-mask/bad-type","/Type entry must be /Mask",{context:{actual:H.Type.value}});if(!F(H.S,"name")||H.S.value!=="Alpha"&&H.S.value!=="Luminosity")throw new D("pdf/extra/soft-mask/bad-s","/S must be /Alpha or /Luminosity",{context:{actual:H.S&&H.S.value}});if(!H.G)throw new D("pdf/extra/soft-mask/missing-g","Soft Mask requires /G (transparency group XObject)");let X=new Set(["Type","S","G","BC","TR"]),J={kind:H.S.value,g:H.G,backdrop:F(H.BC,"array")?W(H.BC):null,transfer:H.TR||null,raw:G,_extras:{}};for(let z of Object.keys(H))if(!X.has(z))J._extras[z]=H[z];return J}function j(G){if(!G)return null;if(F(G,"name"))return I.includes(G.value)?G.value:null;if(F(G,"array")){for(let H of G.items)if(F(H,"name")&&I.includes(H.value))return H.value;return null}throw new D("pdf/extra/blend-mode/bad-type","/BM must be name or array of names",{context:{type:G.type}})}function W(G){let H=[];for(let X of G.items){if(!P(X))return null;H.push(X.value)}return H}return{typeTransparencyGroup:C,typeSoftMask:M,resolveBlendMode:j,BLEND_MODES:I}}}),I0({name:"pdfSigPades",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=Object.freeze({"adbe.x509.rsa_sha1":{pades:!1,kind:"legacy"},"adbe.pkcs7.sha1":{pades:!1,kind:"legacy"},"adbe.pkcs7.detached":{pades:!1,kind:"pkcs7-detached"},"ETSI.CAdES.detached":{pades:!0,kind:"pades-cades"},"ETSI.RFC3161":{pades:!0,kind:"doc-timestamp"}});function P(X,J){if(!F(X,"dict"))throw new D("pdf/extra/pades/not-dict","signature dict must be a dictionary",{context:{type:X&&X.type}});let z=X.entries,V=F(z.SubFilter,"name")?z.SubFilter.value:null,Q=V?I[V]:null,Z=!!(Q&&Q.pades),$=!!(V==="ETSI.RFC3161"||z.M&&F(z.M,"string")||J&&J.hasSignatureTimestamp),q=null;if(Z){let Y=!!(J&&J.dss);if(J&&J.hasDocTimestampOverDss)q="B-LTA";else if(Y)q="B-LT";else if($)q="B-T";else q="B-B"}return{subFilter:V,isPades:Z,level:q,hasTimestamp:$}}function C(X){if(!F(X,"array"))throw new D("pdf/extra/pades/bad-reference","/Reference must be an array",{context:{type:X&&X.type}});let J=[];for(let z of X.items){if(!F(z,"dict"))throw new D("pdf/extra/pades/bad-reference-item","/Reference items must be dicts");let V=z.entries;if(V.Type&&(V.Type.type!=="name"||V.Type.value!=="SigRef"))throw new D("pdf/extra/pades/bad-reference-type","/Type of /Reference item must be /SigRef",{context:{actual:V.Type.value}});J.push({transformMethod:F(V.TransformMethod,"name")?V.TransformMethod.value:null,transformParams:F(V.TransformParams,"dict")?V.TransformParams:null,data:V.Data||null,digestMethod:F(V.DigestMethod,"name")?V.DigestMethod.value:null,raw:z})}return J}function M(X){if(!F(X,"dict"))throw new D("pdf/extra/pades/dss-not-dict","DSS must be a dictionary",{context:{type:X&&X.type}});let J=X.entries;if(J.Type&&(J.Type.type!=="name"||J.Type.value!=="DSS"))throw new D("pdf/extra/pades/dss-bad-type","/Type of DSS dict must be /DSS",{context:{actual:J.Type.value}});let z={certs:W(J.Certs,"DSS /Certs"),crls:W(J.CRLs,"DSS /CRLs"),ocsps:W(J.OCSPs,"DSS /OCSPs"),vri:F(J.VRI,"dict")?j(J.VRI):null,raw:X,_extras:{}},V=new Set(["Type","Certs","CRLs","OCSPs","VRI"]);for(let Q of Object.keys(J))if(!V.has(Q))z._extras[Q]=J[Q];return z}function j(X){let J={};for(let z of Object.keys(X.entries)){let V=X.entries[z];if(!F(V,"dict"))continue;let Q=V.entries;J[z]={cert:W(Q.Cert,"VRI /Cert"),crl:W(Q.CRL,"VRI /CRL"),ocsp:W(Q.OCSP,"VRI /OCSP"),tu:F(Q.TU,"string")?Q.TU.value:null,ts:Q.TS||null}}return J}function W(X,J){if(!X)return null;if(!F(X,"array"))throw new D("pdf/extra/pades/dss-bad-array",`${J} must be an array`,{context:{type:X.type}});return X.items}function G(X){let J=[];if(!X||X.transformMethod!=="DocMDP")return J.push({code:"pdf/extra/pades/mdp/wrong-transform",message:"reference is not a DocMDP transform",context:{transformMethod:X&&X.transformMethod}}),{valid:!1,level:null,issues:J};if(!X.transformParams||!F(X.transformParams,"dict"))return J.push({code:"pdf/extra/pades/mdp/missing-params",message:"DocMDP missing /TransformParams dict"}),{valid:!1,level:null,issues:J};let z=X.transformParams.entries,V=null;if(z.P)if(z.P.type!=="int")J.push({code:"pdf/extra/pades/mdp/bad-p-type",message:"/P must be an integer",context:{type:z.P.type}});else if(z.P.value<1||z.P.value>3)J.push({code:"pdf/extra/pades/mdp/bad-p-value",message:"/P must be 1, 2 or 3",context:{value:z.P.value}});else V=z.P.value;else V=2;if(z.V&&z.V.type==="name"&&z.V.value!=="1.2"&&z.V.value!=="2.2")J.push({code:"pdf/extra/pades/mdp/bad-version",message:"unknown DocMDP /V",context:{v:z.V.value}});if(!X.digestMethod)J.push({code:"pdf/extra/pades/mdp/missing-digest",message:"DocMDP reference missing /DigestMethod"});return{valid:J.length===0,level:V,issues:J}}function H(X){if(!Array.isArray(X))throw new D("pdf/extra/pades/chain/bad-input","validateBLtaChain expects an array of steps",{context:{type:typeof X}});let J=[],z=!1,V=!1;for(let Z=0;Z<X.length;Z++){let $=X[Z];if(!$||!$.sigDict)throw new D("pdf/extra/pades/chain/missing-sig","step missing sigDict",{context:{index:Z}});if($.hasDss)z=!0;if($.hasDocTimestamp&&z)V=!0;let q={dss:z?{}:void 0,hasDocTimestampOverDss:V,hasSignatureTimestamp:!!$.hasSignatureTimestamp},Y=P($.sigDict,q);J.push({index:Z,level:Y.level,isPades:Y.isPades})}let Q=J[J.length-1];return{chainLevel:Q?Q.level:null,trace:J}}return{detectPadesProfile:P,typeReferenceArray:C,typeDSS:M,validateDocMdp:G,validateBLtaChain:H,SIG_SUBFILTERS:I}}}),I0({name:"pdfSigAesGcm",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D,EncryptionError:F}=i,{isType:I}=A,P=Object.freeze({None:{cipher:"none",keyBits:0,notes:"identity / stream-as-is"},V2:{cipher:"rc4",keyBits:40,notes:"legacy RC4 (deprecated)"},AESV2:{cipher:"aes",keyBits:128,mode:"cbc",notes:"AES-128 CBC (R4)"},AESV3:{cipher:"aes",keyBits:256,mode:"cbc",notes:"AES-256 CBC (R6, ISO 32000-2)"},AESV4:{cipher:"aes",keyBits:256,mode:"gcm",notes:"AES-256 GCM (ISO/TS 32003)"}}),C=new Set(["Filter","SubFilter","V","Length","CF","StmF","StrF","EFF","R","O","U","OE","UE","Perms","P","EncryptMetadata"]),M=new Set(["Type","CFM","AuthEvent","Length"]);function j(H){if(!I(H,"dict"))throw new D("pdf/extra/sig-aes-gcm/not-dict","/Encrypt must be a dictionary",{context:{type:H&&H.type}});let X=H.entries,J={v:I(X.V,"int")?X.V.value:null,r:I(X.R,"int")?X.R.value:null,length:I(X.Length,"int")?X.Length.value:null,stmF:I(X.StmF,"name")?X.StmF.value:null,strF:I(X.StrF,"name")?X.StrF.value:null,eff:I(X.EFF,"name")?X.EFF.value:null,cf:{},hasAesGcm:!1,raw:H,_extras:{}};if(X.CF!==void 0){if(!I(X.CF,"dict"))throw new D("pdf/extra/sig-aes-gcm/bad-cf","/CF must be a dictionary",{context:{type:X.CF.type}});for(let z of Object.keys(X.CF.entries)){let V=X.CF.entries[z];if(!I(V,"dict"))throw new D("pdf/extra/sig-aes-gcm/bad-cf-entry","/CF entry must be a dictionary",{context:{name:z}});if(J.cf[z]=W(V),J.cf[z].cfm==="AESV4")J.hasAesGcm=!0}}for(let z of Object.keys(X))if(!C.has(z))J._extras[z]=X[z];return J}function W(H){if(!I(H,"dict"))throw new D("pdf/extra/sig-aes-gcm/cf-entry-not-dict","CF entry must be a dictionary",{context:{type:H&&H.type}});let X=H.entries,J=I(X.CFM,"name")?X.CFM.value:null,z={cfm:J,authEvent:I(X.AuthEvent,"name")?X.AuthEvent.value:null,length:I(X.Length,"int")?X.Length.value:null,catalog:J&&P[J]?P[J]:null,raw:H,_extras:{}};for(let V of Object.keys(X))if(!M.has(V))z._extras[V]=X[V];return z}function G(H){if(!(H instanceof Uint8Array))throw new F("pdf/extra/sig-aes-gcm/bad-input","framed input must be a Uint8Array",{context:{type:typeof H}});if(H.length<28)throw new F("pdf/extra/sig-aes-gcm/too-short","AES-GCM framed blob must be at least 28 bytes (IV+tag)",{context:{length:H.length}});return{iv:H.subarray(0,12),ciphertext:H.subarray(12,H.length-16),tag:H.subarray(H.length-16)}}return{typeEncryptForGcm:j,typeCfEntry:W,validateGcmFraming:G,CFM_CATALOG:P}}}),I0({name:"pdfDocumentParts",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=new Set(["Type","Parent","DParts","Start","End","DPM","NodeNameTree"]),P=new Set(["Type","DPartRootNode","RecordLevel","NodeNameList"]);function C(X){if(!F(X,"dict"))throw new D("pdf/extra/dparts/root/not-dict","/DPartRoot must be a dictionary",{context:{type:X&&X.type}});let J=X.entries;if(J.Type&&(J.Type.type!=="name"||J.Type.value!=="DPartRoot"))throw new D("pdf/extra/dparts/root/bad-type","/Type must be /DPartRoot when present",{context:{actual:J.Type.value}});if(!J.DPartRootNode)throw new D("pdf/extra/dparts/root/missing-node","/DPartRoot requires a /DPartRootNode entry");let z={rootNode:J.DPartRootNode,recordLevel:F(J.RecordLevel,"int")?J.RecordLevel.value:null,nodeNameList:H(J.NodeNameList),raw:X,_extras:{}};for(let V of Object.keys(J))if(!P.has(V))z._extras[V]=J[V];return z}function M(X){if(!F(X,"dict"))throw new D("pdf/extra/dparts/node/not-dict","/DPart must be a dictionary",{context:{type:X&&X.type}});let J=X.entries;if(J.Type&&(J.Type.type!=="name"||J.Type.value!=="DPart"))throw new D("pdf/extra/dparts/node/bad-type","/Type must be /DPart when present",{context:{actual:J.Type.value}});let z={parent:J.Parent||null,dParts:G(J.DParts),start:F(J.Start,"int")?J.Start.value:null,end:F(J.End,"int")?J.End.value:null,dpm:F(J.DPM,"dict")?j(J.DPM):null,nodeNameTree:J.NodeNameTree||null,raw:X,_extras:{}};if(J.DPM&&!F(J.DPM,"dict"))throw new D("pdf/extra/dparts/node/bad-dpm","/DPM must be a dictionary",{context:{type:J.DPM.type}});for(let V of Object.keys(J))if(!I.has(V))z._extras[V]=J[V];return z}function j(X){if(!F(X,"dict"))throw new D("pdf/extra/dparts/dpm/not-dict","/DPM must be a dictionary",{context:{type:X&&X.type}});let J=X.entries,z={entries:{},raw:X};for(let V of Object.keys(J))z.entries[V]=J[V];return z}function W(X,J){if(!X)return;if(typeof J!=="function")throw new D("pdf/extra/dparts/walk/bad-visit","walkDParts requires a visit callback");if(J(X),!X.dParts)return;for(let z of X.dParts)if(F(z,"dict"))W(M(z),J)}function G(X){if(!X)return null;if(X.type!=="array")return null;return X.items.slice()}function H(X){if(!X)return null;if(X.type!=="array")return null;let J=[];for(let z of X.items)if(F(z,"name"))J.push(z.value);else J.push(z);return J}return{typeDPartRoot:C,typeDPart:M,typeDPM:j,walkDParts:W}}}),I0({name:"pdfRedactionIso32005",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=new Set(["Type","AppliedAt","Tool","Annotations","RD","RO","IC","MarkedRegions"]),P=Object.freeze({begin:"/Redact BMC",beginPropertyList:"/Redact BDC",end:"EMC",notes:"TS 32005 §6.3 — wraps content removed/overlaid by /RD."});function C(X){if(!F(X,"dict"))throw new D("pdf/extra/redact32005/not-dict","redaction record must be a dictionary",{context:{type:X&&X.type}});let J=X.entries,z={appliedAt:F(J.AppliedAt,"string")?J.AppliedAt.value:null,tool:F(J.Tool,"string")?J.Tool.value:null,annotations:G(J.Annotations),rd:j(J.RD),ro:F(J.RO,"ref")||F(J.RO,"stream")?J.RO:null,ic:W(J.IC),markedRegions:H(J.MarkedRegions),raw:X,_extras:{}};if(J.Annotations&&J.Annotations.type!=="array")throw new D("pdf/extra/redact32005/bad-annotations","/Annotations must be an array",{context:{type:J.Annotations.type}});for(let V of Object.keys(J))if(!I.has(V))z._extras[V]=J[V];return z}function M(X){if(!(X instanceof Uint8Array))throw new D("pdf/extra/redact32005/scan/bad-input","findRedactMarkers requires a Uint8Array",{context:{type:typeof X}});let J=new TextDecoder("latin1").decode(X),z=[],V=/\/Redact\s+(BMC|BDC)/g,Q;while((Q=V.exec(J))!==null){let Z=Q.index,$=J.indexOf("EMC",V.lastIndex);if(z.push({beginOffset:Z,endOffset:$<0?null:$+3,kind:Q[1]}),$>=0)V.lastIndex=$+3}return{regions:z}}function j(X){if(!X||X.type!=="array")return null;let J=[];for(let z of X.items){if(!z||z.type!=="int"&&z.type!=="real")return null;J.push(z.value)}return J}function W(X){if(!X||X.type!=="array")return null;let J=[];for(let z of X.items){if(!z||z.type!=="int"&&z.type!=="real")return null;J.push(z.value)}return J}function G(X){if(!X||X.type!=="array")return null;return X.items.slice()}function H(X){if(!X)return null;if(X.type!=="array")return null;return X.items.slice()}return{typeRedactionRecord:C,findRedactMarkers:M,REDACT_MARKERS:P}}}),I0({name:"pdfXPrepress",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=Object.freeze({"X-1a:2001":{iso:"ISO 15930-1:2001",color:"cmyk+spot",flavor:"closed"},"X-1a:2003":{iso:"ISO 15930-4:2003",color:"cmyk+spot",flavor:"closed"},"X-3:2002":{iso:"ISO 15930-3:2002",color:"any",flavor:"closed"},"X-3:2003":{iso:"ISO 15930-6:2003",color:"any",flavor:"closed"},"X-4":{iso:"ISO 15930-7:2010",color:"any",flavor:"transparency"},"X-4p":{iso:"ISO 15930-7:2010",color:"any",flavor:"external-profile"},"X-5g":{iso:"ISO 15930-8:2010",color:"any",flavor:"external-graphics"},"X-5n":{iso:"ISO 15930-8:2010",color:"n-channel",flavor:"external-profile"},"X-5pg":{iso:"ISO 15930-8:2010",color:"any",flavor:"external-both"},"X-6":{iso:"ISO 15930-9:2020",color:"any",flavor:"pdf-2.0"}}),P=Object.freeze({None:"no transformation",Convert:"convert to OutputIntent profile",Tag:"tag with profile only",Embed:"embed source profile"});function C(W){if(!F(W,"dict"))throw new D("pdf/extra/pdfx/not-dict","OutputIntent must be a dictionary",{context:{type:W&&W.type}});let G=W.entries,H=F(G.S,"name")?G.S.value:null,X=F(G.OutputConditionIdentifier,"string")?new TextDecoder("latin1").decode(G.OutputConditionIdentifier.value):null,J=M(X);return{isPdfX:H==="GTS_PDFX",subtype:H,identifier:X,profile:J,catalog:J?I[J]:null,raw:W}}function M(W){if(!W)return null;let G=W.match(/PDF\/(X-(?:1a:200[13]|3:200[23]|4p?|5(?:g|n|pg)|6))/i);if(!G)return null;let H=G[1].toUpperCase().replace("X-","X-");for(let X of Object.keys(I))if(X.toLowerCase()===H.toLowerCase())return X;return null}function j(W){if(!W||!W.entries)throw new D("pdf/extra/pdfx/lint/bad-page","lintPdfXPage requires a typed page dict",{context:{type:typeof W}});let G=[],H=[],X=W.entries;if(!X.TrimBox&&!X.ArtBox)G.push("page requires /TrimBox or /ArtBox");if(X.TrimBox&&X.ArtBox)G.push("page must not have both /TrimBox and /ArtBox");if(!X.BleedBox)H.push("page has no /BleedBox");return{pass:G.length===0,errors:G,warnings:H}}return{typePdfXOutputIntent:C,lintPdfXPage:j,PDFX_PROFILES:I,COLOR_POLICY:P}}}),I0({name:"pdfWellTagged",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,F=Object.freeze({"wtpdf/artifact":"decorative content must be tagged Artifact","wtpdf/span/empty":"Span used as pseudo-paragraph wrapper","wtpdf/table/empty":"Table must contain at least one TR","wtpdf/table/row":"TR must contain TH or TD children","wtpdf/list/empty":"L must contain at least one LI","wtpdf/list/item":"LI should contain Lbl + LBody","wtpdf/heading/jump":"heading level jump (e.g. H1 -> H3) is discouraged"});function I(j){if(!j||typeof j!=="object")throw new D("pdf/extra/wtpdf/bad-tree","lintWellTagged requires a structure tree object",{context:{type:typeof j}});let W=[],G=[],H=0;function X(J){if(!J||typeof J!=="object"||!J.s)return;switch(J.s){case"Table":P(J,W);break;case"L":C(J,W,G);break;case"Span":if(!J.role)G.push({rule:"wtpdf/span/empty",message:F["wtpdf/span/empty"]});break;case"Artifact":break;default:break}let z=/^H([1-6])$/.exec(J.s);if(z){let V=Number(z[1]);if(H&&V>H+1)G.push({rule:"wtpdf/heading/jump",message:F["wtpdf/heading/jump"],from:H,to:V});H=V}if(Array.isArray(J.k)){for(let V of J.k)if(V&&typeof V==="object")X(V)}}return X(j),{pass:W.length===0,errors:W,warnings:G}}function P(j,W){let G=(j.k||[]).filter((H)=>H&&H.s==="TR");if(G.length===0){W.push({rule:"wtpdf/table/empty",message:F["wtpdf/table/empty"]});return}for(let H of G)if((H.k||[]).filter((X)=>X&&(X.s==="TH"||X.s==="TD")).length===0)W.push({rule:"wtpdf/table/row",message:F["wtpdf/table/row"]})}function C(j,W,G){let H=(j.k||[]).filter((X)=>X&&X.s==="LI");if(H.length===0){W.push({rule:"wtpdf/list/empty",message:F["wtpdf/list/empty"]});return}for(let X of H){let J={Lbl:!1,LBody:!1};for(let z of X.k||[]){if(z&&z.s==="Lbl")J.Lbl=!0;if(z&&z.s==="LBody")J.LBody=!0}if(!J.Lbl||!J.LBody)G.push({rule:"wtpdf/list/item",message:F["wtpdf/list/item"]})}}function M(j){if(!Array.isArray(j))throw new D("pdf/extra/wtpdf/regions/bad-input","checkArtifactPlacement requires an array",{context:{type:typeof j}});let W=[];for(let G of j){if(!G||typeof G!=="object")continue;if(G.tagged===!1&&G.role!=="Artifact")W.push({rule:"wtpdf/artifact",message:F["wtpdf/artifact"],mcid:G.mcid})}return{pass:W.length===0,errors:W,warnings:[]}}return{lintWellTagged:I,checkArtifactPlacement:M,WTPDF_RULES:F}}}),I0({name:"pdfOptionalContentExtended",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=Object.freeze(["And","Or","Not"]);function P(W,G){if(!W)throw new D("pdf/extra/ocgx/ve/null","VE expression is null");if(!(G instanceof Set))throw new D("pdf/extra/ocgx/ve/bad-state","evaluateVE requires a Set of on refs",{context:{type:typeof G}});if(W.type==="ref")return G.has(W.num+" "+W.gen);if(W.type!=="array"||W.items.length===0)throw new D("pdf/extra/ocgx/ve/bad-shape","VE must be an array starting with an operator",{context:{type:W.type}});let H=W.items[0];if(!F(H,"name")||!I.includes(H.value))throw new D("pdf/extra/ocgx/ve/bad-op","VE operator must be /And, /Or or /Not",{context:{actual:H&&H.value}});let X=W.items.slice(1);if(H.value==="Not"){if(X.length!==1)throw new D("pdf/extra/ocgx/ve/not-arity","/Not requires exactly one operand");return!P(X[0],G)}if(H.value==="And")return X.every((J)=>P(J,G));return X.some((J)=>P(J,G))}function C(W){if(!W||W.type!=="array")throw new D("pdf/extra/ocgx/order/not-array","/Order must be an array",{context:{type:W&&W.type}});let G=[];for(let H of W.items){if(!H)continue;if(H.type==="string")G.push({kind:"heading",text:H.value});else if(H.type==="array")G.push({kind:"group",children:C(H)});else if(H.type==="ref")G.push({kind:"ocg",ref:{num:H.num,gen:H.gen}});else G.push({kind:"other",value:H})}return G}function M(W){if(!W||W.type!=="array")throw new D("pdf/extra/ocgx/rbg/not-array","/RBGroups must be an array",{context:{type:W&&W.type}});let G=[];for(let H of W.items){if(!H||H.type!=="array")throw new D("pdf/extra/ocgx/rbg/bad-group","/RBGroups entry must be an array",{context:{type:H&&H.type}});let X=[];for(let J of H.items){if(!J||J.type!=="ref")continue;X.push({num:J.num,gen:J.gen})}G.push(X)}return G}function j(W){if(!W)return{view:!1,design:!1,names:[]};let G=[];if(W.type==="name")G.push(W.value);else if(W.type==="array"){for(let H of W.items)if(F(H,"name"))G.push(H.value)}else throw new D("pdf/extra/ocgx/intent/bad","/Intent must be name or array of names",{context:{type:W.type}});return{view:G.includes("View"),design:G.includes("Design"),names:G}}return{evaluateVE:P,typeOrderTree:C,typeRBGroups:M,classifyOcgIntent:j,VE_OPERATORS:I}}}),I0({name:"pdfEmbeddedFilesPortfolio",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i,D=new Set(["D","T","H","C"]),F=new Set(["S","D","N","F","Desc","ModDate","CreationDate","Size"]),I=new Set(["Type","Schema","D","View","Sort","Navigator","Folders","Colors","Split"]);function P($){return $&&$.type==="dict"}function C($){return $&&$.type==="name"}function M($){return $&&$.type==="string"}function j($){return $&&$.type==="array"}function W($){return $&&$.type==="bool"}function G($){return $&&$.type==="int"}function H($,q){if(!P(q))throw new A("pdf/portfolio/bad-schema-field","/Schema field must be a dictionary",{context:{field:$,type:q&&q.type}});let Y=q.entries,U={name:$,raw:q,_extras:{}};if(Y.Subtype){if(!C(Y.Subtype)||!F.has(Y.Subtype.value))throw new A("pdf/portfolio/bad-schema-subtype","/Subtype on /Schema field must be one of S,D,N,F,Desc,ModDate,CreationDate,Size",{context:{field:$,actual:Y.Subtype.value}});U.subtype=Y.Subtype.value}if(Y.N){if(!M(Y.N))throw new A("pdf/portfolio/bad-schema-n","/N must be a string",{context:{field:$}});U.displayName=Y.N.value}if(Y.O!=null){if(!G(Y.O))throw new A("pdf/portfolio/bad-schema-o","/O must be an integer",{context:{field:$}});U.order=Y.O.value}if(Y.V!=null){if(!W(Y.V))throw new A("pdf/portfolio/bad-schema-v","/V must be boolean",{context:{field:$}});U.visible=Y.V.value}if(Y.E!=null){if(!W(Y.E))throw new A("pdf/portfolio/bad-schema-e","/E must be boolean",{context:{field:$}});U.editable=Y.E.value}let K=new Set(["Subtype","N","O","V","E"]);for(let T of Object.keys(Y))if(!K.has(T))U._extras[T]=Y[T];return U}function X($){if(!P($))throw new A("pdf/portfolio/bad-schema","/Schema must be a dictionary",{context:{type:$&&$.type}});let q={};for(let[Y,U]of Object.entries($.entries))q[Y]=H(Y,U);return{fields:q,raw:$}}function J($){if(!P($))throw new A("pdf/portfolio/bad-sort","/Sort must be a dictionary");let q=$.entries,Y={raw:$,_extras:{}};if(q.S)if(C(q.S))Y.keys=[q.S.value];else if(j(q.S)){let U=[];for(let K of q.S.items){if(!C(K))throw new A("pdf/portfolio/bad-sort-s-item","/Sort /S array items must be names");U.push(K.value)}Y.keys=U}else throw new A("pdf/portfolio/bad-sort-s","/Sort /S must be a name or array of names");if(q.A!=null)if(W(q.A))Y.ascending=[q.A.value];else if(j(q.A)){let U=[];for(let K of q.A.items){if(!W(K))throw new A("pdf/portfolio/bad-sort-a-item","/Sort /A array items must be booleans");U.push(K.value)}Y.ascending=U}else throw new A("pdf/portfolio/bad-sort-a","/Sort /A must be a bool or array of bools");for(let U of Object.keys(q))if(U!=="S"&&U!=="A")Y._extras[U]=q[U];return Y}function z($){if($&&$.type==="ref")return{ref:{num:$.num,gen:$.gen},raw:$};if(!P($))throw new A("pdf/portfolio/bad-navigator","/Navigator must be a dict or ref");return{raw:$,entries:$.entries}}function V($){if(!P($)&&!($&&$.type==="stream"))throw new A("pdf/portfolio/bad-ci","/CI custom icon must be dict or stream",{context:{type:$&&$.type}});return{raw:$}}function Q($){if(!P($))throw new A("pdf/portfolio/not-dict","Collection must be a dictionary",{context:{type:$&&$.type}});let q=$.entries;if(q.Type&&(!C(q.Type)||q.Type.value!=="Collection"))throw new A("pdf/portfolio/bad-type","/Type must be /Collection",{context:{actual:q.Type&&q.Type.value}});let Y={raw:$,_extras:{}};if(q.Schema)Y.schema=X(q.Schema);if(q.D){if(!M(q.D))throw new A("pdf/portfolio/bad-d","/D must be a string");Y.initialDoc=q.D.value}if(q.View){if(!C(q.View)||!D.has(q.View.value))throw new A("pdf/portfolio/bad-view","/View must be one of D, T, H, C",{context:{actual:q.View&&q.View.value}});Y.view=q.View.value}if(q.Sort)Y.sort=J(q.Sort);if(q.Navigator)Y.navigator=z(q.Navigator);for(let U of Object.keys(q))if(!I.has(U))Y._extras[U]=q[U];return Y}function Z($){if(!P($))throw new A("pdf/portfolio/ci-not-dict","/CI item must be a dict");let q={raw:$,fields:{},_extras:{}};for(let[Y,U]of Object.entries($.entries)){if(Y==="Type")continue;if(Y==="CI")q.customIcon=V(U);else q.fields[Y]=U}return q}return{typePortfolio:Q,typeSchema:X,typeSchemaField:H,typeSort:J,typeNavigator:z,typeCustomIcon:V,typeCollectionItem:Z,VIEW_MODES:D,SCHEMA_SUBTYPES:F}}}),I0({name:"pdfAssociatedFiles2",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i,D=new Set(["Source","Data","Alternative","Supplement","EncryptedPayload","FormData","Schema","Unspecified"]),F=new Set(["Catalog","Page","XObject","StructElem","Annot","Mark","DParams"]);function I(J){return J&&J.type==="dict"}function P(J){return J&&J.type==="name"}function C(J){return J&&J.type==="array"}function M(J){return J&&J.type==="ref"}function j(J,z){if(M(J)){if(typeof z==="function")return{resolved:!0,dict:z(J),ref:{num:J.num,gen:J.gen}};return{resolved:!1,ref:{num:J.num,gen:J.gen}}}if(I(J))return{resolved:!0,dict:J};throw new A("pdf/af2/bad-entry","/AF entry must be a dict or indirect reference",{context:{type:J&&J.type}})}function W(J,z,V){let Q=j(J,z);if(!Q.resolved)return{ref:Q.ref,resolved:!1};let Z=Q.dict;if(!I(Z))throw new A("pdf/af2/not-filespec","resolved /AF entry must be a dict",{context:{index:V}});let $=Z.entries;if($.Type&&(!P($.Type)||$.Type.value!=="Filespec"))throw new A("pdf/af2/bad-filespec-type","expected /Type /Filespec",{context:{index:V,actual:$.Type&&$.Type.value}});let q=null,Y=!1;if($.AFRelationship){if(!P($.AFRelationship))throw new A("pdf/af2/bad-relationship","/AFRelationship must be a name",{context:{index:V,type:$.AFRelationship.type}});q=$.AFRelationship.value,Y=D.has(q)}let U={filespec:Z,relationship:q,standard:Y,resolved:!0};if(Q.ref)U.ref=Q.ref;return U}function G(J,z){let V=z&&z.resolveRef,Q=z&&z.carrier;if(Q&&!F.has(Q))throw new A("pdf/af2/bad-carrier","unknown /AF carrier hint",{context:{carrier:Q}});if(!C(J))throw new A("pdf/af2/not-array","/AF must be an array",{context:{type:J&&J.type}});let Z=[];for(let $=0;$<J.items.length;$++)Z.push(W(J.items[$],V,$));return{entries:Z,carrier:Q||null}}function H(J){return D.has(String(J))}function X(){return Array.from(D)}return{typeAf:G,typeAfEntry:W,resolveFileSpec:j,isStandardRelationship:H,listStandardRelationships:X,STANDARD_REL:D,CARRIER_HINTS:F}}}),I0({name:"pdfXmpExtended",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i,D={"http://purl.org/dc/elements/1.1/":"dc","http://ns.adobe.com/xap/1.0/":"xmp","http://ns.adobe.com/xap/1.0/mm/":"xmpMM","http://ns.adobe.com/pdf/1.3/":"pdf","http://www.aiim.org/pdfa/ns/id/":"pdfaid","http://www.aiim.org/pdfua/ns/id/":"pdfuaid"};function F(G){if(typeof G==="string")return G;if(G instanceof Uint8Array)return new TextDecoder("utf-8").decode(G);throw new A("pdf/xmp2/bad-input","XMP input must be string or Uint8Array",{context:{type:typeof G}})}function I(G){let H={},X=/xmlns:([\w-]+)\s*=\s*"([^"]*)"/g,J;while(J=X.exec(G))H[J[1]]=J[2];return H}function P(G){let H={},X=/([\w:-]+)\s*=\s*"([^"]*)"/g,J;while(J=X.exec(G))if(!J[1].startsWith("xmlns"))H[J[1]]=J[2];return H}function C(G){return G.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&")}function M(G){let H=F(G),X=H.length,J=/<\/?([\w:-]+)([^>]*?)\/?>/g,z=[{ns:{}}],V=[],Q=0;while(Q<X){J.lastIndex=Q;let Z=J.exec(H);if(!Z)break;let $=Z.index,q=Z[0],Y=Z[1],U=Z[2]||"",K=q.startsWith("</"),T=q.endsWith("/>");if(K){z.pop(),Q=$+q.length;continue}let B=z[z.length-1].ns,k=Object.assign({},B,I(U)),n=P(U),h=null,d=Y,o=Y.indexOf(":");if(o>=0)h=Y.slice(0,o),d=Y.slice(o+1);let _=h?k[h]:null,f=_?D[_]:null,L=null;if(!T){let O=`</${Y}>`,w=H.indexOf(O,$+q.length);if(w<0)throw new A("pdf/xmp2/unclosed-tag",`unclosed <${Y}>`,{context:{offset:$}});let N=H.slice($+q.length,w);if(!/<[\w]/.test(N))L=C(N.trim());if(z.push({ns:k,qname:Y}),L!==null)z.pop(),Q=w+O.length;else Q=$+q.length}else Q=$+q.length;if(f&&(L!==null||Object.keys(n).length>0))V.push({prefix:f,ns:_,localName:d,value:L,attrs:n})}return V}function j(G){let H={};for(let X of G){if(!H[X.prefix])H[X.prefix]={};let J=H[X.prefix];if(J[X.localName]===void 0)J[X.localName]=X.value;else if(Array.isArray(J[X.localName]))J[X.localName].push(X.value);else J[X.localName]=[J[X.localName],X.value]}return H}function W(G){let H=M(G);return{pairs:H,grouped:j(H)}}return{parsePacket:W,extract:M,group:j,KNOWN_NAMESPACES:D}}}),I0({name:"pdfLinearizationWrite",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{RenderError:D}=i,{obj:F}=A,I=Object.freeze(["Linearized","L","H","O","E","N","T"]);function P(j){if(!j||typeof j!=="object")throw new D("pdf/extra/linwrite/bad-params","buildLinearizedDict requires a parameters object",{context:{type:typeof j}});for(let G of["fileLength","firstPageObj","firstPageEnd","pageCount","mainXrefOffset"])if(!Number.isFinite(j[G]))throw new D("pdf/extra/linwrite/missing-"+G,"parameter "+G+" is required and must be a number",{context:{key:G,type:typeof j[G]}});if(!Number.isFinite(j.hintOffset)||!Number.isFinite(j.hintLength))throw new D("pdf/extra/linwrite/missing-hint","hintOffset and hintLength are required",{context:{hintOffset:j.hintOffset,hintLength:j.hintLength}});let W={Linearized:F.real(j.version!=null?j.version:1),L:F.int(j.fileLength),H:F.array([F.int(j.hintOffset),F.int(j.hintLength)]),O:F.int(j.firstPageObj),E:F.int(j.firstPageEnd),N:F.int(j.pageCount),T:F.int(j.mainXrefOffset)};if(j.firstPage!=null)W.P=F.int(j.firstPage);return F.dict(W)}function C(){let j=F.dict({Length:F.int(0),S:F.int(0)});return F.stream(j,new Uint8Array(0))}function M(j){if(!j||j.type!=="dict")throw new D("pdf/extra/linwrite/validate/not-dict","expected a dict",{context:{type:j&&j.type}});let W=[];for(let H of I)if(!j.entries[H])W.push("missing /"+H);let G=j.entries.H;if(G&&(G.type!=="array"||G.items.length<2))W.push("/H must be an array of at least 2 integers");return{pass:W.length===0,errors:W,warnings:[]}}return{buildLinearizedDict:P,buildHintStreamStub:C,validateLinearizedDict:M,LINEARIZED_KEYS:I}}}),I0({name:"pdf3dRichMedia",dependencies:["pdfErrors","pdfParser"],factory:function(i,A){let{ParseError:D}=i,{isType:F}=A,I=new Set(["Type","Subtype","Rect","3DD","3DV","3DA","3DI","3DB"]),P=new Set(["Type","Subtype","Rect","RichMediaContent","RichMediaSettings"]),C=Object.freeze({A:"active",L:"loaded",U:"uninstantiated"}),M=Object.freeze({XA:"explicit activate",PO:"page open",PV:"page visible"});function j(J){if(!F(J,"dict"))throw new D("pdf/extra/3d/not-dict","3D annotation must be a dictionary",{context:{type:J&&J.type}});let z=J.entries;if(z.Subtype&&(z.Subtype.type!=="name"||z.Subtype.value!=="3D"))throw new D("pdf/extra/3d/bad-subtype","/Subtype must be /3D",{context:{actual:z.Subtype.value}});if(!z["3DD"])throw new D("pdf/extra/3d/missing-3dd","3D annotation requires /3DD entry");let V={threeDD:z["3DD"],threeDV:z["3DV"]||null,threeDA:F(z["3DA"],"dict")?W(z["3DA"]):null,threeDI:F(z["3DI"],"bool")?z["3DI"].value:null,threeDB:z["3DB"]||null,raw:J,_extras:{}};for(let Q of Object.keys(z))if(!I.has(Q))V._extras[Q]=z[Q];return V}function W(J){if(!F(J,"dict"))throw new D("pdf/extra/3d/act/not-dict","/3DA must be a dictionary",{context:{type:J&&J.type}});let z=J.entries;return{a:F(z.A,"name")?z.A.value:null,ais:F(z.AIS,"name")?z.AIS.value:null,d:F(z.D,"name")?z.D.value:null,dis:F(z.DIS,"name")?z.DIS.value:null,tb:F(z.TB,"bool")?z.TB.value:null,np:F(z.NP,"bool")?z.NP.value:null,raw:J}}function G(J){if(!F(J,"dict"))throw new D("pdf/extra/rm/not-dict","RichMedia annotation must be a dictionary",{context:{type:J&&J.type}});let z=J.entries;if(z.Subtype&&(z.Subtype.type!=="name"||z.Subtype.value!=="RichMedia"))throw new D("pdf/extra/rm/bad-subtype","/Subtype must be /RichMedia",{context:{actual:z.Subtype.value}});if(!z.RichMediaContent)throw new D("pdf/extra/rm/missing-content","RichMedia annotation requires /RichMediaContent");let V={content:F(z.RichMediaContent,"dict")?H(z.RichMediaContent):z.RichMediaContent,settings:F(z.RichMediaSettings,"dict")?z.RichMediaSettings:null,raw:J,_extras:{}};for(let Q of Object.keys(z))if(!P.has(Q))V._extras[Q]=z[Q];return V}function H(J){if(!F(J,"dict"))throw new D("pdf/extra/rm/content/not-dict","/RichMediaContent must be a dictionary",{context:{type:J&&J.type}});let z=J.entries;return{assets:z.Assets||null,configurations:z.Configurations||null,views:z.Views||null,raw:J}}function X(J){if(J==null)return null;if(typeof J!=="string")throw new D("pdf/extra/rm/state/bad","state must be a string",{context:{type:typeof J}});return C[J]||null}return{type3DAnnot:j,type3DActivation:W,typeRichMediaAnnot:G,typeRichMediaContent:H,classifyRmInstanceState:X,RM_INSTANCE_STATES:C,ACTIVATION_CONDITIONS:M}}}),I0({name:"pdfJbig2Read",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i,D={0:"symbolDictionary",4:"intermediateTextRegion",6:"immediateTextRegion",7:"immediateLosslessTextRegion",16:"patternDictionary",20:"intermediateHalftoneRegion",22:"immediateHalftoneRegion",23:"immediateLosslessHalftoneRegion",36:"intermediateGenericRegion",38:"immediateGenericRegion",39:"immediateLosslessGenericRegion",40:"intermediateGenericRefinementRegion",42:"immediateGenericRefinementRegion",43:"immediateLosslessGenericRefinementRegion",48:"pageInformation",49:"endOfPage",50:"endOfStripe",51:"endOfFile",52:"profiles",53:"tables",62:"extension"};function F(G,H){return G[H]*16777216+(G[H+1]<<16|G[H+2]<<8|G[H+3])}function I(G,H){let X=G[H]>>>5;if(X!==7)return{count:X,fieldBytes:1};return{count:F(G,H)&536870911,fieldBytes:4}}function P(G){return Math.ceil((G+1)/8)}function C(G){if(G<=255)return 1;if(G<=65535)return 2;return 4}function M(G){if(!(G instanceof Uint8Array))throw new A("pdf/jbig2/bad-input","JBIG2Decode expects Uint8Array");let H=[],X=0,J=0;while(X+11<=G.length){let z=X,V=F(G,X);X+=4;let Q=G[X++],Z=Q&63,$=Q>>6&1,q=Q>>7&1,Y=I(G,X);X+=Y.fieldBytes,X+=P(Y.count);let U=C(Math.max(V,J));if(X+=Y.count*U,X+4>G.length)throw new A("pdf/jbig2/truncated-header","JBIG2 segment header truncated",{context:{segNum:V,offset:z}});if(X+=1,X+4>G.length)throw new A("pdf/jbig2/truncated-data-length","JBIG2 segment data length truncated",{context:{segNum:V,offset:z}});let K=F(G,X);X+=4;let T=X;if(K!==4294967295){if(T+K>G.length)throw new A("pdf/jbig2/truncated-data","JBIG2 segment data truncated",{context:{segNum:V,dataLength:K}});X=T+K}else X=G.length;if(H.push({segmentNumber:V,type:Z,typeName:D[Z]||"unknown",referredCount:Y.count,retain:!!$,deferredNonRetain:!!q,dataOffset:T,dataLength:K===4294967295?null:K,unknownLength:K===4294967295}),J=Math.max(J,V),Z===51)break}return H}function j(G){return M(G).filter((H)=>H.type===36||H.type===38||H.type===39)}function W(G){throw new A("pdf/jbig2/not-implemented","JBIG2Decode full decode not implemented — header-only",{context:{status:"partial"}})}return{parseSegments:M,enumerateGenericRegions:j,decode:W,SEGMENT_TYPES:D,STATUS:"partial — header-only"}}}),I0({name:"pdfMisc",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i,D=new Set(["EnableJavaScripts"]);function F(V){return V&&V.type==="dict"}function I(V){return V&&V.type==="name"}function P(V){return V&&V.type==="array"}function C(V){return V&&V.type==="bool"}function M(V){return V&&V.type==="int"}function j(V){if(!F(V))throw new A("pdf/misc/spider-not-dict","/SpiderInfo must be a dict");let Q=V.entries,Z={raw:V,_extras:{}};if(Q.V){if(!M(Q.V)&&!(Q.V&&Q.V.type==="real"))throw new A("pdf/misc/spider-bad-V","/SpiderInfo /V must be numeric");Z.version=Q.V.value}if(Q.C){if(!P(Q.C))throw new A("pdf/misc/spider-bad-C","/SpiderInfo /C must be an array");Z.commands=Q.C.items}let $=new Set(["V","C"]);for(let q of Object.keys(Q))if(!$.has(q))Z._extras[q]=Q[q];return Z}function W(V){if(!P(V))throw new A("pdf/misc/threads-not-array","/Threads must be an array");let Q=[];for(let Z=0;Z<V.items.length;Z++){let $=V.items[Z];if($.type!=="ref"&&!F($))throw new A("pdf/misc/thread-bad-entry","/Threads entry must be a dict or ref",{context:{index:Z}});Q.push($)}return Q}function G(V){if(!F(V))throw new A("pdf/misc/legal-not-dict","/Legal must be a dict");let Q=V.entries,Z={raw:V,flags:{},_extras:{}},$=new Set(["JavaScriptActions","LaunchActions","URIActions","MovieActions","SoundActions","HiddenAnnotations","NonEmbeddedFonts","DevDepGS_OP","DevDepGS_HT","DevDepGS_TR","DevDepGS_UCR","DevDepGS_FL","DevDepGS_BG","Annotations","ExternalRefXobjects","ExternalOPIdicts","ExternalStreams","TrueTypeFonts","AlternateImages"]);for(let[q,Y]of Object.entries(Q))if($.has(q)){if(!M(Y))throw new A("pdf/misc/legal-bad-flag",`/Legal /${q} must be an integer count`,{context:{key:q}});Z.flags[q]=Y.value}else if(q==="Attestation"){if(Y.type!=="string")throw new A("pdf/misc/legal-bad-attestation","/Attestation must be a string");Z.attestation=Y.value}else Z._extras[q]=Y;return Z}function H(V){if(!P(V))throw new A("pdf/misc/req-not-array","/Requirements must be an array");let Q=[];for(let Z=0;Z<V.items.length;Z++){let $=V.items[Z];if(!F($))throw new A("pdf/misc/req-bad-entry","/Requirements entry must be a dict",{context:{index:Z}});let q=$.entries;if(!q.S||!I(q.S))throw new A("pdf/misc/req-missing-S","/Requirements entry needs /S name",{context:{index:Z}});Q.push({raw:$,s:q.S.value,standard:D.has(q.S.value),rh:q.RH})}return Q}function X(V){if(!F(V))throw new A("pdf/misc/docmdp-not-dict","/DocMDP transform params must be a dict");let Q=V.entries,Z={raw:V,_extras:{}};if(Q.P){if(!M(Q.P)||Q.P.value<1||Q.P.value>3)throw new A("pdf/misc/docmdp-bad-P","/DocMDP /P must be 1, 2, or 3");Z.permission=Q.P.value}if(Q.V){if(!I(Q.V))throw new A("pdf/misc/docmdp-bad-V","/DocMDP /V must be a name");Z.version=Q.V.value}let $=new Set(["Type","P","V"]);for(let q of Object.keys(Q))if(!$.has(q))Z._extras[q]=Q[q];return Z}function J(V){if(!F(V))throw new A("pdf/misc/perms-not-dict","/Perms must be a dict");let Q=V.entries,Z={raw:V,_extras:{}};if(Q.DocMDP)Z.docMDP=Q.DocMDP;if(Q.UR3)Z.ur3=Q.UR3;if(Q.UR)Z.ur=Q.UR;let $=new Set(["DocMDP","UR3","UR"]);for(let q of Object.keys(Q))if(!$.has(q))Z._extras[q]=Q[q];return Z}function z(V){if(!C(V))throw new A("pdf/misc/needsrendering-bad","/NeedsRendering must be boolean");return V.value}return{typeSpiderInfo:j,typeThreads:W,typeLegal:G,typeRequirements:H,typeDocMdpParams:X,typePerms:J,typeNeedsRendering:z,REQUIREMENT_S_VALUES:D}}}),I0({name:"pdfInfoDictDeprecated",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i,D={Title:{ns:"dc",field:"title"},Author:{ns:"dc",field:"creator"},Subject:{ns:"dc",field:"description"},Keywords:{ns:"pdf",field:"Keywords"},Creator:{ns:"xmp",field:"CreatorTool"},Producer:{ns:"pdf",field:"Producer"},CreationDate:{ns:"xmp",field:"CreateDate"},ModDate:{ns:"xmp",field:"ModifyDate"},Trapped:{ns:"pdf",field:"Trapped"}};function F(W){return W&&W.type==="dict"}function I(W){if(typeof W==="string")return W;if(W&&W.type==="name")return W.value;if(W&&W.type==="string"){let G=W.value;if(G instanceof Uint8Array)return new TextDecoder("latin1").decode(G);return String(G)}if(typeof W==="number")return String(W);throw new A("pdf/info-deprecated/bad-version","PDF version must be string or PDF name",{context:{type:W&&W.type}})}function P(W){let G=/^(\d+)\.(\d+)/.exec(W||"");if(!G)return!1;return parseInt(G[1],10)>=2}function C(W){if(!F(W))return[];let G=[];for(let H of Object.keys(W.entries)){let X=D[H];if(X)G.push({infoKey:H,xmpNamespace:X.ns,xmpField:X.field});else G.push({infoKey:H,xmpNamespace:null,xmpField:null,note:"no standard XMP equivalent"})}return G}function M(W){W=W||{};let G=I(W.version),H=W.info,X=!!W.xmpPresent,J=[];if(H!=null){if(!F(H))throw new A("pdf/info-deprecated/bad-info","/Info must be a dict",{context:{type:H&&H.type}})}let z=P(G);if(z&&H)J.push({code:"pdf/info-deprecated",severity:"warn",message:"/Info is deprecated in PDF 2.0 — use the XMP metadata stream instead",suggestions:C(H)});if(z&&H&&!X)J.push({code:"pdf/info-without-xmp",severity:"warn",message:"PDF 2.0 document carries /Info but no XMP /Metadata stream"});return{version:G,isPdf2:z,hasInfo:H!=null,xmpPresent:X,warnings:J}}function j(W){return D[W]||null}return{lint:M,mapInfoKey:j,suggestionsFor:C,INFO_TO_XMP:D,isVersion2OrHigher:P}}}),I0({name:"pdfSandbox",dependencies:["pdfErrors"],factory:function(i){let{ContractError:A}=i,D={Launch:{severity:"error",message:"/Launch action present — external execution "+"requested by document"},JavaScript:{severity:"error",message:"/JavaScript action present — script "+"execution requested by document"},ImportData:{severity:"error",message:"/ImportData action present — file-system "+"read requested by document"},SubmitForm:{severity:"warning",message:"/SubmitForm action present — network "+"submission requested by document"},Rendition:{severity:"warning",message:"/Rendition action carries /JS payload"},URI:{severity:"warning",message:"/URI action present — external navigation "+"requested by document"}};function F(P){if(!P||typeof P!=="object")return null;if(P.kind==="Rendition"&&!P.sandboxed)return null;let C=D[P.kind];if(!C)return null;return{kind:P.kind,code:"pdf/sandbox/active-"+P.kind.toLowerCase(),severity:C.severity,message:C.message,context:{sandboxed:P.sandboxed===!0}}}function I(P){if(!P||typeof P[Symbol.iterator]!=="function")throw new A("pdf/sandbox/bad-input","lintActions expects an iterable of action records");let C=[],M=!1;for(let j of P){let W=F(j);if(W){if(C.push(W),W.severity==="error")M=!0}}return{sandboxed:!0,issues:C,hasActiveContent:C.length>0,hasErrors:M}}return{lintAction:F,lintActions:I,ACTIVE_KINDS:D}}}),I0({name:"pdfLegacyXfaRead",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i,D=new Set(["xdp","preamble","config","template","localeSet","datasets","form","connectionSet","sourceSet","stylesheet","xmpmeta","signature","postamble","pdf"]);function F(G){return G&&G.type==="stream"}function I(G){return G&&G.type==="string"}function P(G){return G&&G.type==="array"}function C(G){if(!F(G))throw new A("pdf/xfa/bad-packet","XFA packet must be a stream",{context:{type:G&&G.type}});return G.raw}function M(G){if(!I(G))throw new A("pdf/xfa/bad-key","XFA array key must be a PDF string",{context:{type:G&&G.type}});let H=G.value;if(H instanceof Uint8Array)return new TextDecoder("latin1").decode(H);return String(H)}function j(G){if(F(G))return{_legacy:{xfa:{shape:"stream",xdp:C(G)}}};if(P(G)){if(G.items.length%2!==0)throw new A("pdf/xfa/odd-array","XFA array must have even item count (key/stream pairs)",{context:{length:G.items.length}});let H={},X=[],J=[];for(let z=0;z<G.items.length;z+=2){let V=M(G.items[z]),Q=C(G.items[z+1]);if(H[V]=Q,X.push(V),!D.has(V))J.push(V)}return{_legacy:{xfa:{shape:"array",packets:H,order:X,unknownPackets:J}}}}throw new A("pdf/xfa/bad-shape","/XFA must be a stream or array",{context:{type:G&&G.type}})}function W(G){return D.has(String(G))}return{readXfa:j,isKnownPacket:W,KNOWN_PACKETS:D}}}),I0({name:"pdfLegacyRc4Read",dependencies:["pdfErrors"],factory:function(i){let{EncryptionError:A}=i,D=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);function F(J,z){if(!(J instanceof Uint8Array)||!(z instanceof Uint8Array))throw new A("pdf/rc4/bad-input","RC4 expects Uint8Array key and data");let V=new Uint8Array(256);for(let Y=0;Y<256;Y++)V[Y]=Y;let Q=0;for(let Y=0;Y<256;Y++){Q=Q+V[Y]+J[Y%J.length]&255;let U=V[Y];V[Y]=V[Q],V[Q]=U}let Z=new Uint8Array(z.length),$=0,q=0;for(let Y=0;Y<z.length;Y++){$=$+1&255,q=q+V[$]&255;let U=V[$];V[$]=V[q],V[q]=U;let K=V[V[$]+V[q]&255];Z[Y]=z[Y]^K}return Z}function I(J){if(!(J instanceof Uint8Array))throw new A("pdf/md5/bad-input","md5 expects Uint8Array");function z(d,o){return d<<o|d>>>32-o|0}let V=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],Q=[3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107603335,1163531501,2850285829,4243563512,1735328473,2368359562,4294588738,2272392833,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787259,3951481745],Z=J.length,$=new Uint8Array((Z+8>>6<<6)+64);$.set(J),$[Z]=128;let q=Z*8>>>0,Y=Math.floor(Z*8/4294967296)>>>0,U=new DataView($.buffer);U.setUint32($.length-8,q,!0),U.setUint32($.length-4,Y,!0);let K=1732584193,T=-271733879,B=-1732584194,k=271733878;for(let d=0;d<$.length;d+=64){let o=Array(16);for(let w=0;w<16;w++)o[w]=U.getUint32(d+w*4,!0);let _=K,f=T,L=B,O=k;for(let w=0;w<64;w++){let N,x;if(w<16)N=f&L|~f&O,x=w;else if(w<32)N=O&f|~O&L,x=(5*w+1)%16;else if(w<48)N=f^L^O,x=(3*w+5)%16;else N=L^(f|~O),x=7*w%16;let R=_+N+Q[w]+o[x]|0;_=O,O=L,L=f,f=f+z(R,V[w])|0}K=K+_|0,T=T+f|0,B=B+L|0,k=k+O|0}let n=new Uint8Array(16),h=new DataView(n.buffer);return h.setUint32(0,K,!0),h.setUint32(4,T,!0),h.setUint32(8,B,!0),h.setUint32(12,k,!0),n}function P(J){if(typeof J==="string")J=new TextEncoder().encode(J);if(!(J instanceof Uint8Array))throw new A("pdf/rc4/bad-password","password must be string or Uint8Array");let z=new Uint8Array(32),V=Math.min(32,J.length);return z.set(J.subarray(0,V)),z.set(D.subarray(0,32-V),V),z}function C(J,z){let{O:V,P:Q,idFirst:Z,revision:$,keyLength:q,encryptMetadata:Y}=z;if(!(V instanceof Uint8Array)||V.length!==32)throw new A("pdf/rc4/bad-O","/O must be a 32-byte Uint8Array");if(!(Z instanceof Uint8Array))throw new A("pdf/rc4/bad-id","first /ID element required");let U=P(J),K=$>=4&&Y===!1?4:0,T=new Uint8Array(68+Z.length+K),B=0;if(T.set(U,B),B+=32,T.set(V,B),B+=32,new DataView(T.buffer).setInt32(B,Q|0,!0),B+=4,T.set(Z,B),B+=Z.length,K)T[B++]=255,T[B++]=255,T[B++]=255,T[B]=255;let k=I(T),n=q/8;if($>=3)for(let h=0;h<50;h++)k=I(k.subarray(0,n));return k.subarray(0,n)}function M(J,z,V){if(V===2)return F(J,D);let Q=new Uint8Array(D.length+z.length);Q.set(D,0),Q.set(z,D.length);let Z=I(Q);Z=F(J,Z);for(let q=1;q<=19;q++){let Y=new Uint8Array(J.length);for(let U=0;U<J.length;U++)Y[U]=J[U]^q;Z=F(Y,Z)}let $=new Uint8Array(32);return $.set(Z,0),$}function j(J,z,V){let Q=V===void 0?Math.min(J.length,z.length):V;for(let Z=0;Z<Q;Z++)if(J[Z]!==z[Z])return!1;return!0}function W(J,z){let V=C(J,z),Q=M(V,z.idFirst,z.revision);return(z.revision===2?j(Q,z.U,32):j(Q,z.U,16))?{ok:!0,fileKey:V}:{ok:!1}}function G(J,z,V){let Q=new Uint8Array(J.length+5);return Q.set(J,0),Q[J.length+0]=z&255,Q[J.length+1]=z>>8&255,Q[J.length+2]=z>>16&255,Q[J.length+3]=V&255,Q[J.length+4]=V>>8&255,I(Q).subarray(0,Math.min(J.length+5,16))}function H(J,z,V,Q){return F(G(J,z,V),Q)}function X(J,z,V,Q){return F(G(J,z,V),Q)}return{rc4:F,md5:I,padPassword:P,computeFileKey:C,computeU:M,validateUserPassword:W,objectKey:G,decryptString:H,decryptStream:X,PASSWORD_PADDING:D}}}),I0({name:"pdfCcittFaxDecoder",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i,D=["00110101","000111","0111","1000","1011","1100","1110","1111","10011","10100","00111","01000","001000","000011","110100","110101","101010","101011","0100111","0001100","0001000","0010111","0000011","0000100","0101000","0101011","0010011","0100100","0011000","00000010","00000011","00011010","00011011","00010010","00010011","00010100","00010101","00010110","00010111","00101000","00101001","00101010","00101011","00101100","00101101","00000100","00000101","00001010","00001011","01010010","01010011","01010100","01010101","00100100","00100101","01011000","01011001","01011010","01011011","01001010","01001011","00110010","00110011","00110100"],F={64:"11011",128:"10010",192:"010111",256:"0110111",320:"00110110",384:"00110111",448:"01100100",512:"01100101",576:"01101000",640:"01100111",704:"011001100",768:"011001101",832:"011010010",896:"011010011",960:"011010100",1024:"011010101",1088:"011010110",1152:"011010111",1216:"011011000",1280:"011011001",1344:"011011010",1408:"011011011",1472:"010011000",1536:"010011001",1600:"010011010",1664:"011000",1728:"010011011"},I=["0000110111","010","11","10","011","0011","0010","00011","000101","000100","0000100","0000101","0000111","00000100","00000111","000011000","0000010111","0000011000","0000001000","00001100111","00001101000","00001101100","00000110111","00000101000","00000010111","00000011000","000011001010","000011001011","000011001100","000011001101","000001101000","000001101001","000001101010","000001101011","000011010010","000011010011","000011010100","000011010101","000011010110","000011010111","000001101100","000001101101","000011011010","000011011011","000001010100","000001010101","000001010110","000001010111","000001100100","000001100101","000001010010","000001010011","000000100100","000000110111","000000111000","000000100111","000000101000","000001011000","000001011001","000000101011","000000101100","000001011010","000001100110","000001100111"],P={64:"0000001111",128:"000011001000",192:"000011001001",256:"000001011011",320:"000000110011",384:"000000110100",448:"000000110101",512:"0000001101100",576:"0000001101101",640:"0000001001010",704:"0000001001011",768:"0000001001100",832:"0000001001101",896:"0000001110010",960:"0000001110011",1024:"0000001110100",1088:"0000001110101",1152:"0000001110110",1216:"0000001110111",1280:"0000001010010",1344:"0000001010011",1408:"0000001010100",1472:"0000001010101",1536:"0000001011010",1600:"0000001011011",1664:"0000001100100",1728:"0000001100101"},C={1792:"00000001000",1856:"00000001100",1920:"00000001101",1984:"000000010010",2048:"000000010011",2112:"000000010100",2176:"000000010101",2240:"000000010110",2304:"000000010111",2368:"000000011100",2432:"000000011101",2496:"000000011110",2560:"000000011111"},M={"0001":"P","001":"H","1":"V0","011":"VR1","010":"VL1","000011":"VR2","000010":"VL2","0000011":"VR3","0000010":"VL3","0000001":"EXT2D"};function j(R,S){let E=new Map;for(let y=0;y<R.length;y++)E.set(R[y],{kind:S,run:y,terminating:!0});return E}function W(R,S){let E=new Map;for(let y of Object.keys(R))E.set(R[y],{kind:S,run:y|0,terminating:!1});return E}let G=new Map([...j(D,"W"),...W(F,"W"),...W(C,"W")]),H=new Map([...j(I,"B"),...W(P,"B"),...W(C,"B")]),X=13;function J(R){let S=0,E=0;return{readBit(){if(S>=R.length)return-1;let y=R[S]>>>7-E&1;if(E++,E===8)E=0,S++;return y},alignToByte(){if(E!==0)E=0,S++},eof(){return S>=R.length},pos(){return{bytePos:S,bitPos:E}},seek(y){S=y.bytePos,E=y.bitPos}}}function z(R,S){let E=0;for(;;){let y="",l=null;for(let J0=0;J0<X;J0++){let $0=R.readBit();if($0<0)return-1;if(y+=$0,l=S.get(y),l)break}if(!l)throw new A("pdf/ccitt/bad-runcode","unrecognised CCITT run-length code",{context:{bits:y}});if(E+=l.run,l.terminating)return E}}function V(R){let S="";for(let E=0;E<7;E++){let y=R.readBit();if(y<0)return null;S+=y;let l=M[S];if(l)return l}throw new A("pdf/ccitt/bad-2d-mode","unrecognised CCITT 2D mode code",{context:{bits:S}})}function Q(R){let S=R.pos(),E=0;for(let y=0;y<24;y++){let l=R.readBit();if(l<0)return R.seek(S),!1;if(l===0){E++;continue}if(l===1&&E>=11)return!0;return R.seek(S),!1}return R.seek(S),!1}function Z(R,S){let E=R.pos(),y=!0;for(let l=0;l<S;l++)if(!Q(R)){y=!1;break}return R.seek(E),y}function $(R){let S=0;for(;;){let E=R.readBit();if(E<0)return!1;if(E===0){S++;continue}if(E===1&&S>=11)return!0;S=0}}function q(R,S){let E=new Uint8Array(S),y=0,l=0;while(y<S){let J0=z(R,l===0?G:H);if(J0<0)return null;let $0=Math.min(y+J0,S);if(l===1)for(let Q0=y;Q0<$0;Q0++)E[Q0]=1;y=$0,l^=1}return E}function Y(R,S,E){let y=new Uint8Array(E),l=-1,J0=0;while(l<E){let $0=T(S,l,J0,E),Q0=B(S,$0,E),e=V(R);if(e===null)return null;if(e==="P"){let Y0=l<0?0:l;U(y,Y0,Q0,J0),l=Q0}else if(e==="H"){let Y0=z(R,J0===0?G:H),v=z(R,J0===0?H:G);if(Y0<0||v<0)return null;let q0=l<0?0:l;U(y,q0,Math.min(q0+Y0,E),J0),U(y,Math.min(q0+Y0,E),Math.min(q0+Y0+v,E),J0^1),l=q0+Y0+v}else{let Y0;if(e==="V0")Y0=0;else if(e==="VR1")Y0=1;else if(e==="VR2")Y0=2;else if(e==="VR3")Y0=3;else if(e==="VL1")Y0=-1;else if(e==="VL2")Y0=-2;else if(e==="VL3")Y0=-3;else throw new A("pdf/ccitt/unsupported-2d-mode","unsupported 2D mode",{context:{mode:e}});let v=$0+Y0,q0=l<0?0:l;U(y,q0,Math.min(Math.max(v,0),E),J0),l=v,J0^=1}}return y}function U(R,S,E,y){if(y===0)return;let l=Math.max(0,S),J0=Math.min(R.length,E);for(let $0=l;$0<J0;$0++)R[$0]=1}function K(R,S){if(S<0||S>=R.length)return 0;return R[S]}function T(R,S,E,y){let l=S<0?0:S+1,J0=S<0?0:K(R,S);for(let $0=l;$0<y;$0++){let Q0=R[$0];if(Q0!==J0){if(Q0!==E)return $0;J0=Q0}}return y}function B(R,S,E){if(S>=E)return E;let y=Math.max(0,S),l=y<E?R[y]:0;for(let J0=y+1;J0<E;J0++)if(R[J0]!==l)return J0;return E}function k(R,S){let E=R.length,y=new Uint8Array(E+7>>>3);for(let l=0;l<E;l++)if(S?R[l]:R[l]^1)y[l>>>3]|=1<<7-(l&7);return y}function n(R,S){if(!(R instanceof Uint8Array))throw new A("pdf/ccitt/bad-input","CCITT input must be Uint8Array");let E=S.Columns|0;if(E<=0||E>65535)throw new A("pdf/ccitt/bad-columns","CCITT /Columns out of range",{context:{columns:E}});let y=S.Rows|0,l=S.K|0,J0=J(R),$0=[],Q0=new Uint8Array(E);function e(){if(S.EndOfLine){if(!Q(J0)){if(!$(J0))return!1}return!0}return Q(J0),!0}function Y0(){if(S.EncodedByteAlign)J0.alignToByte()}let v=0,q0=0;try{while(y===0||v<y){if(Y0(),l<0){if(Z(J0,2))break}else if(l>0||S.EndOfLine){let b=J0.pos();if(Q(J0)){if(l>0){if(J0.readBit()<0){J0.seek(b);break}}let t=Q(J0);if(J0.seek(b),t)break}else J0.seek(b)}let m;if(l<0)m=!0;else if(l===0)if(m=!1,S.EndOfLine){if(!e())break}else Q(J0);else if(q0===0)if(S.EndOfLine){if(!e())break;let b=J0.readBit();if(b<0)break;m=b===0}else{Q(J0);let b=J0.readBit();if(b<0)break;m=b===0}else if(S.EndOfLine){if(!e())break;let b=J0.readBit();if(b<0)break;m=b===0}else{Q(J0);let b=J0.readBit();if(b<0)break;m=b===0}let p;if(m)p=Y(J0,Q0,E);else p=q(J0,E);if(p===null){if(y===0)break;if((S.DamagedRowsBeforeError|0)>0)p=new Uint8Array(E);else throw new A("pdf/ccitt/truncated","CCITT stream truncated mid-line",{context:{row:v}})}if($0.push(p),Q0=p,v++,l>0)q0=(q0+1)%l;if(J0.eof())break}}catch(m){if(m instanceof A)throw m;throw new A("pdf/ccitt/decode-failed","CCITT decoder error: "+m.message,{cause:m})}let U0=!!S.BlackIs1,g=E+7>>>3,u=new Uint8Array(g*$0.length);for(let m=0;m<$0.length;m++){let p=k($0[m],U0);u.set(p,m*g)}return u}function h(){let R=[],S=0,E=0;function y(e){if(S=S<<1|e&1,E++,E===8)R.push(S&255),S=0,E=0}function l(e){for(let Y0=0;Y0<e.length;Y0++)y(e.charCodeAt(Y0)-48)}function J0(){while(E!==0)y(0)}function $0(){if(E>0)S<<=8-E,R.push(S&255),S=0,E=0;return new Uint8Array(R)}function Q0(){return R.length*8+E}return{writeBit:y,writeBits:l,alignToByte:J0,flush:$0,bitCount:Q0}}let d=Object.keys(F).map((R)=>R|0).sort((R,S)=>S-R),o=Object.keys(P).map((R)=>R|0).sort((R,S)=>S-R),_=Object.keys(C).map((R)=>R|0).sort((R,S)=>S-R),f=_[0];function L(R,S){let E=S===0?D:I,y=S===0?F:P,l=S===0?d:o,J0="";while(R>=f+64)J0+=C[f],R-=f;if(R>=1792)for(let $0=0;$0<_.length;$0++){let Q0=_[$0];if(Q0<=R){J0+=C[Q0],R-=Q0;break}}if(R>=64)for(let $0=0;$0<l.length;$0++){let Q0=l[$0];if(Q0<=R){J0+=y[Q0],R-=Q0;break}}return J0+=E[R],J0}function O(R,S,E){let y=0,l=0;while(y<S){let J0=0;while(y+J0<S&&(R[y+J0]|0)===l)J0++;E.writeBits(L(J0,l)),y+=J0,l^=1}}function w(R,S,E,y){let l=-1,J0=0;while(l<E){let $0=N(R,l,J0,E),Q0=T(S,l,J0,E),e=B(S,Q0,E);if(e<$0)y.writeBits("0001"),l=e;else{let Y0=$0-Q0;if(Y0>=-3&&Y0<=3){if(Y0===0)y.writeBits("1");else if(Y0===1)y.writeBits("011");else if(Y0===2)y.writeBits("000011");else if(Y0===3)y.writeBits("0000011");else if(Y0===-1)y.writeBits("010");else if(Y0===-2)y.writeBits("000010");else if(Y0===-3)y.writeBits("0000010");l=$0,J0^=1}else{let v=N(R,$0,J0^1,E),q0=$0-(l<0?0:l),U0=v-$0;y.writeBits("001"),y.writeBits(L(q0,J0)),y.writeBits(L(U0,J0^1)),l=v}}}}function N(R,S,E,y){let l=S<0?0:S+1,J0=S<0?0:R[S]|0;for(let $0=l;$0<y;$0++){let Q0=R[$0]|0;if(Q0!==J0){if(Q0!==E)return $0;J0=Q0}}return y}function x(R,S){let E=(S&&S.Columns)|0||1728,y=S&&S.K!=null?S.K|0:0,l=!!(S&&S.EndOfLine),J0=!!(S&&S.EncodedByteAlign),$0=!S||S.EndOfBlock!==!1,Q0=l||y>0,e=h(),Y0=new Uint8Array(E);for(let v=0;v<R.length;v++){let q0=R[v];if(J0)e.alignToByte();if(Q0)if(e.writeBits("000000000001"),y>0){let U0=v%y===0;if(e.writeBit(U0?1:0),U0)O(q0,E,e);else w(q0,Y0,E,e)}else if(y===0)O(q0,E,e);else w(q0,Y0,E,e);else if(y<0)w(q0,Y0,E,e);else O(q0,E,e);Y0=q0}if($0){if(y<0){if(J0)e.alignToByte();e.writeBits("000000000001"),e.writeBits("000000000001")}else if(Q0){if(J0)e.alignToByte();for(let v=0;v<6;v++)if(e.writeBits("000000000001"),y>0)e.writeBit(1)}}return e.flush()}return{decode:n,encode:x,_internals:{WHITE_MAP:G,BLACK_MAP:H,MODE_CODES:M,EOL_BITS:"000000000001",codeForRun:L,encode1DLine:O,encode2DLine:w,decode1DLine:q,decode2DLine:Y,makeBitReader:J,makeBitWriter:h,findB1:T,findNextChange:B,findChangeFrom:N}}}}),I0({name:"pdfLegacyDeprecatedFilters",dependencies:["pdfErrors","lzw","pdfCcittFaxDecoder"],factory:function(i,A,D){let{ParseError:F}=i,I=new Set(["K","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","DamagedRowsBeforeError"]);if(!A||typeof A.decode!=="function"||typeof A.encode!=="function")throw new F("pdf/filters/missing-lzw","legacy-deprecated-filters requires the @awacloud/fw lzw factory output");if(!D||typeof D.decode!=="function")throw new F("pdf/filters/missing-ccitt","legacy-deprecated-filters requires the pdfCcittFaxDecoder factory output");function P(X){if(X instanceof Uint8Array)return X;throw new F("pdf/filters/bad-input","filter input must be Uint8Array",{context:{type:typeof X}})}function C(X,J){P(X);let z=J&&J.EarlyChange!=null?J.EarlyChange:1;if(z!==0&&z!==1)throw new F("pdf/lzw/bad-earlychange","/EarlyChange must be 0 or 1",{context:{value:z}});try{return A.decode(X,{bigEndian:!0,minCodeBits:8,maxBits:12,useClearEnd:!0})}catch(V){throw new F("pdf/lzw/decode-failed","LZWDecode failed: "+V.message,{cause:V})}}function M(X){P(X);try{return A.encode(X,{bigEndian:!0,minCodeBits:8,maxBits:12,useClearEnd:!0})}catch(J){throw new F("pdf/lzw/encode-failed","LZWEncode failed: "+J.message,{cause:J})}}function j(X){if(X==null)return{K:0};if(typeof X!=="object")throw new F("pdf/ccitt/bad-parms","CCITT DecodeParms must be an object");for(let J of Object.keys(X))if(!I.has(J))throw new F("pdf/ccitt/unknown-parm","unknown CCITT DecodeParm",{context:{key:J}});return{K:X.K!=null?X.K|0:0,EndOfLine:!!X.EndOfLine,EncodedByteAlign:!!X.EncodedByteAlign,Columns:X.Columns!=null?X.Columns|0:1728,Rows:X.Rows!=null?X.Rows|0:0,EndOfBlock:X.EndOfBlock!==!1,BlackIs1:!!X.BlackIs1,DamagedRowsBeforeError:X.DamagedRowsBeforeError|0}}function W(X,J){P(X);let z=j(J);return D.decode(X,z)}function G(X){if(P(X),X.length>=2&&(X[0]!==255||X[1]!==216))throw new F("pdf/dct/bad-soi","DCTDecode input missing JPEG SOI marker");return X}function H(X){if(P(X),X.length>=2){if(X[0]===255&&X[1]===79)return X;if(X.length>=12&&X[4]===106&&X[5]===80&&X[6]===32&&X[7]===32)return X}throw new F("pdf/jpx/bad-signature","JPXDecode input does not look like JPEG 2000")}return{lzwDecode:C,lzwEncode:M,validateCcittParms:j,ccittFaxDecode:W,dctDecode:G,jpxDecode:H,CCITT_KEYS:I}}}),I0({name:"pdfLegacyDeprecatedAnnots",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i,D=new Set(["Mono","Stereo"]),F=new Set(["Once","Open","Repeat","Palindrome"]);function I(V){return V&&V.type==="dict"}function P(V){return V&&V.type==="name"}function C(V){return V&&V.type==="string"}function M(V){return V&&V.type==="stream"}function j(V){return V&&V.type==="bool"}function W(V){return V&&(V.type==="int"||V.type==="real")}function G(V,Q){if(!I(V))throw new A("pdf/legacy-annot/not-dict","annotation must be a dictionary",{context:{expected:Q}});let Z=V.entries.Subtype;if(!P(Z)||Z.value!==Q)throw new A("pdf/legacy-annot/bad-subtype",`/Subtype must be /${Q}`,{context:{actual:Z&&Z.value,expected:Q}})}function H(V){G(V,"Sound");let Q=V.entries,Z={subtype:"Sound",raw:V,_extras:{}};if(!Q.Sound)throw new A("pdf/legacy-annot/sound-missing","Sound annot requires /Sound stream");if(!M(Q.Sound)&&Q.Sound.type!=="ref")throw new A("pdf/legacy-annot/sound-bad-stream","/Sound must be a stream or ref",{context:{type:Q.Sound.type}});if(Z.sound=Q.Sound,Q.Name){if(!P(Q.Name))throw new A("pdf/legacy-annot/sound-bad-name","/Name must be a name");Z.iconName=Q.Name.value}let $=new Set(["Type","Subtype","Sound","Name"]);for(let q of Object.keys(Q))if(!$.has(q))Z._extras[q]=Q[q];return Z}function X(V){if(!M(V))throw new A("pdf/legacy-annot/sound-stream","sound payload must be a stream");let Q=V.dict?V.dict.entries:{},Z={raw:V,_extras:{}};if(Q.R){if(!W(Q.R))throw new A("pdf/legacy-annot/sound-bad-R","/R must be numeric");Z.samplingRate=Q.R.value}if(Q.C){if(!W(Q.C))throw new A("pdf/legacy-annot/sound-bad-C","/C must be numeric");Z.channels=Q.C.value}if(Q.B){if(!W(Q.B))throw new A("pdf/legacy-annot/sound-bad-B","/B must be numeric");Z.bitsPerSample=Q.B.value}if(Q.E){if(!P(Q.E))throw new A("pdf/legacy-annot/sound-bad-E","/E must be a name");Z.encoding=Q.E.value}if(Q.CO){if(!P(Q.CO))throw new A("pdf/legacy-annot/sound-bad-CO","/CO must be a name");Z.compression=Q.CO.value}if(Q.Mode){if(!P(Q.Mode)||!D.has(Q.Mode.value))throw new A("pdf/legacy-annot/sound-bad-mode","/Mode must be Mono or Stereo");Z.mode=Q.Mode.value}let $=new Set(["Type","R","C","B","E","CO","Mode","Length","Filter","DecodeParms"]);for(let q of Object.keys(Q))if(!$.has(q))Z._extras[q]=Q[q];return Z}function J(V){G(V,"Movie");let Q=V.entries,Z={subtype:"Movie",raw:V,_extras:{}};if(!Q.Movie)throw new A("pdf/legacy-annot/movie-missing","Movie annot requires /Movie dict");if(!I(Q.Movie))throw new A("pdf/legacy-annot/movie-bad","/Movie must be a dict");if(Z.movie=Q.Movie,Q.T){if(!C(Q.T))throw new A("pdf/legacy-annot/movie-bad-T","/T must be a text string");Z.title=Q.T.value}if(Q.A){if(!j(Q.A)&&!I(Q.A))throw new A("pdf/legacy-annot/movie-bad-A","/A must be bool or dict");if(j(Q.A))Z.activation={auto:Q.A.value};else{let q=Q.A.entries,Y={raw:Q.A};if(q.Mode&&P(q.Mode)){if(!F.has(q.Mode.value))throw new A("pdf/legacy-annot/movie-bad-mode","/Mode must be Once, Open, Repeat or Palindrome");Y.mode=q.Mode.value}Z.activation=Y}}let $=new Set(["Type","Subtype","Movie","T","A"]);for(let q of Object.keys(Q))if(!$.has(q))Z._extras[q]=Q[q];return Z}function z(V){G(V,"Screen");let Q=V.entries,Z={subtype:"Screen",raw:V,_extras:{}};if(Q.T){if(!C(Q.T))throw new A("pdf/legacy-annot/screen-bad-T","/T must be a string");Z.title=Q.T.value}if(Q.MK){if(!I(Q.MK))throw new A("pdf/legacy-annot/screen-bad-MK","/MK must be a dict");Z.mk=Q.MK}if(Q.A){if(!I(Q.A))throw new A("pdf/legacy-annot/screen-bad-A","/A must be an action dict");Z.action=Q.A}if(Q.AA){if(!I(Q.AA))throw new A("pdf/legacy-annot/screen-bad-AA","/AA must be a dict");Z.additionalActions=Q.AA}if(Q.P){if(Q.P.type!=="ref"&&!I(Q.P))throw new A("pdf/legacy-annot/screen-bad-P","/P must be a page ref or dict");Z.page=Q.P}let $=new Set(["Type","Subtype","T","MK","A","AA","P","Rect","Contents"]);for(let q of Object.keys(Q))if(!$.has(q))Z._extras[q]=Q[q];return Z}return{typeSoundAnnot:H,typeSoundStream:X,typeMovieAnnot:J,typeScreenAnnot:z,SOUND_MODES:D,MOVIE_OP_MODES:F}}}),I0({name:"pdfBuilder",dependencies:["pdfErrors","pdfParserObj","pdfWriter"],factory:function(i,A,D){let{RenderError:F}=i,I=A.obj,P=D.writeDocument,C=new TextEncoder,M=new Set(["Title","Author","Subject","Keywords","Creator","Producer"]),j=new Set(["CreationDate","ModDate"]);function W($){if($ instanceof Uint8Array)return $;if(typeof $==="string")return C.encode($);throw new F("pdf/builder/bad-bytes","expected string or Uint8Array",{context:{typeof:typeof $}})}function G($){return I.string(C.encode(String($)),"lit")}function H($){return Number.isInteger($)?I.int($):I.real($)}function X($){if(!Array.isArray($)||$.length!==4)throw new F("pdf/builder/bad-box","box must be a 4-element array",{context:{box:$}});return I.array($.map(H))}function J($,q){let Y=$&&$.type==="dict"&&$.entries?$.entries:{},U={};for(let K of Object.keys(Y))U[K]=Y[K];for(let K of Object.keys(q))U[K]=q[K];return I.dict(U)}function z($){return!!($&&$.type==="dict"&&$.entries)}function V($){if(!$||typeof $!=="object")return!1;if(!($.fontFile instanceof Uint8Array))return!1;if(!z($.descriptor))return!1;if(!$.toUnicodeStream||$.toUnicodeStream.type!=="stream")return!1;let q=z($.fontDict),Y=z($.type0Dict)&&z($.cidFontDict);return q!==Y}function Q($){if($ instanceof Uint8Array)return $;if(typeof $!=="string")throw new F("pdf/builder/bad-id","id parts must be hex string or Uint8Array");let q=$.replace(/[^0-9a-fA-F]/g,"");if(q.length%2!==0)throw new F("pdf/builder/bad-id-hex","hex id must have even length");let Y=new Uint8Array(q.length/2);for(let U=0;U<Y.length;U++)Y[U]=parseInt(q.substr(U*2,2),16);return Y}function Z(){let $=1,q=[],Y=[],U=new WeakMap,K=new Map,T=null,B="2.0",k=null,n={};function h(){return $++}function d(v,q0){q.push({num:v,gen:0,value:q0})}function o(v){let q0=v||{},U0={num:h(),mediaBox:q0.mediaBox||[0,0,612,792],cropBox:q0.cropBox||null,rotate:Number.isFinite(q0.rotate)?q0.rotate|0:null,fonts:{},xobjects:{},extraResources:q0.resources||null,contents:[]};return Y.push(U0),T=U0,Y0}function _(v){if(!T)throw new F("pdf/builder/no-page","addContent requires a page (call addPage first)");let q0=W(v),U0=h();return d(U0,I.stream(I.dict({}),q0)),T.contents.push(U0),Y0}let f=Object.freeze(["WinAnsiEncoding","MacRomanEncoding","StandardEncoding"]);function L(v){return new F("pdf/builder/bad-font","addFont requires { name, baseFont, subtype? } or { name, embedded }",{context:v})}function O(v){let q0=U.get(v);if(q0)return q0.num;let U0=typeof v.fontFileKey==="string"?v.fontFileKey:"FontFile2",g={Length1:I.int(v.fontFile.length)};if(U0==="FontFile3")g.Subtype=I.name("OpenType");let u=h();d(u,I.stream(I.dict(g),v.fontFile));let m=h();d(m,J(v.descriptor,{[U0]:I.ref(u,0)}));let p=h();d(p,v.toUnicodeStream);let b;if(z(v.fontDict))b=h(),d(b,J(v.fontDict,{FontDescriptor:I.ref(m,0),ToUnicode:I.ref(p,0)}));else{let t=h();d(t,J(v.cidFontDict,{FontDescriptor:I.ref(m,0)})),b=h(),d(b,J(v.type0Dict,{DescendantFonts:I.array([I.ref(t,0)]),ToUnicode:I.ref(p,0)}))}return U.set(v,{num:b}),b}function w(v){if(!T)throw new F("pdf/builder/no-page","addFont requires a page (call addPage first)");if(!v||typeof v!=="object"||!v.name)throw L({spec:v});let q0=!!v.embedded,U0=!!v.baseFont;if(q0===U0)throw L({name:v.name,hasBaseFont:U0,hasEmbedded:q0});if(v.encoding!==void 0&&(q0||!f.includes(v.encoding)))throw L({name:v.name,encoding:v.encoding});let g;if(q0){if(!V(v.embedded))throw L({name:v.name,embeddedKeys:v.embedded&&typeof v.embedded==="object"?Object.keys(v.embedded):typeof v.embedded});g=O(v.embedded)}else{let u=v.subtype||"Type1",m={Type:I.name("Font"),Subtype:I.name(u),BaseFont:I.name(String(v.baseFont))};if(v.encoding!==void 0)m.Encoding=I.name(v.encoding);let p=String(v.baseFont)+"\x00"+u+"\x00"+(v.encoding??"");if(g=K.get(p),g===void 0)g=h(),d(g,I.dict(m)),K.set(p,g)}return T.fonts[String(v.name)]={num:g,gen:0},Y0}function N(v){return new F("pdf/builder/bad-image","addImage requires { name, width, height, colorSpace, bitsPerComponent, data, filter?, decodeParms?, sMask? }",{context:v})}function x(v){return Number.isSafeInteger(v)&&v>0}function R(v){return typeof v==="string"&&v.length>0}function S(v,q0){if(!v||typeof v!=="object")throw N({spec:v===null?"null":typeof v,sMask:q0});let U0=[];if(!q0&&!R(v.name))U0.push("name");if(!x(v.width))U0.push("width");if(!x(v.height))U0.push("height");if(!R(v.colorSpace))U0.push("colorSpace");if(!x(v.bitsPerComponent))U0.push("bitsPerComponent");if(!(v.data instanceof Uint8Array))U0.push("data");if(v.filter!==void 0&&!R(v.filter))U0.push("filter");if(v.decodeParms!==void 0&&!z(v.decodeParms))U0.push("decodeParms");if(q0&&v.sMask!==void 0)U0.push("sMask");if(U0.length>0){let p={keys:U0,sMask:q0};if(typeof v.name==="string")p.name=v.name;throw N(p)}let g=null;if(v.sMask!==void 0)g=S(v.sMask,!0);let u={Type:I.name("XObject"),Subtype:I.name("Image"),Width:I.int(v.width),Height:I.int(v.height),ColorSpace:I.name(String(v.colorSpace)),BitsPerComponent:I.int(v.bitsPerComponent)};if(v.filter!==void 0)u.Filter=I.name(String(v.filter));if(v.decodeParms!==void 0)u.DecodeParms=v.decodeParms;if(g!==null)u.SMask=I.ref(g,0);let m=h();return d(m,I.stream(I.dict(u),v.data)),m}function E(v){if(!T)throw new F("pdf/builder/no-page","addImage requires a page (call addPage first)");let q0=S(v,!1);return T.xobjects[String(v.name)]={num:q0,gen:0},Y0}function y(v){if(!v||typeof v!=="object")throw new F("pdf/builder/bad-metadata","addMetadata requires an object");for(let q0 of Object.keys(v))n[q0]=v[q0];return Y0}function l(v){if(typeof v!=="string"||!/^\d\.\d$/.test(v))throw new F("pdf/builder/bad-version",'version must look like "x.y"',{context:{version:v}});return B=v,Y0}function J0(v,q0){let U0=Q(v),g=q0!==void 0?Q(q0):U0;return k=[U0,g],Y0}function $0(v,q0){let U0={Type:I.name("Page"),Parent:I.ref(q0,0),MediaBox:X(v.mediaBox)};if(v.cropBox)U0.CropBox=X(v.cropBox);if(v.rotate!==null)U0.Rotate=I.int(v.rotate);let g={},u=Object.keys(v.fonts);if(u.length>0){let p={};for(let b of u){let t=v.fonts[b];p[b]=I.ref(t.num,t.gen)}g.Font=I.dict(p)}let m=Object.keys(v.xobjects);if(m.length>0){let p={};for(let b of m){let t=v.xobjects[b];p[b]=I.ref(t.num,t.gen)}g.XObject=I.dict(p)}if(v.extraResources&&v.extraResources.type==="dict"){for(let p of Object.keys(v.extraResources.entries))if(!g[p])g[p]=v.extraResources.entries[p]}if(U0.Resources=I.dict(g),v.contents.length===1)U0.Contents=I.ref(v.contents[0],0);else if(v.contents.length>1)U0.Contents=I.array(v.contents.map((p)=>I.ref(p,0)));return I.dict(U0)}function Q0(){let v=Object.keys(n);if(v.length===0)return null;let q0={};for(let U0 of v){let g=n[U0];if(g===null||g===void 0)continue;if(M.has(U0)||j.has(U0))q0[U0]=G(g);else if(typeof g==="string")q0[U0]=G(g)}if(Object.keys(q0).length===0)return null;return I.dict(q0)}function e(){if(Y.length===0)throw new F("pdf/builder/no-pages","build requires at least one page");let v=h(),q0=h(),U0=[];for(let p of Y)d(p.num,$0(p,q0)),U0.push(I.ref(p.num,0));d(v,I.dict({Type:I.name("Catalog"),Pages:I.ref(q0,0)})),d(q0,I.dict({Type:I.name("Pages"),Kids:I.array(U0),Count:I.int(Y.length)}));let g=null,u=Q0();if(u){let p=h();d(p,u),g={num:p,gen:0}}let m={indirects:q,root:{num:v,gen:0},version:B};if(g)m.info=g;if(k)m.id=k;return P(m)}let Y0={addPage:o,addContent:_,addFont:w,addImage:E,addMetadata:y,setVersion:l,setId:J0,build:e};return Y0}return{builder:Z}}}),I0({name:"pdfIncrementalWriter",dependencies:["pdfErrors","pdfSerializer","pdfTokenizer","pdfParser","pdfXref","pdfTrailer"],factory:function(i,A,D,F,I,P){let{RenderError:C,ParseError:M}=i,j=A.serializeIndirect,W=A.serializeObject,G=I.locateStartXref,H=I.readStartXref,X=I.parseXrefTable,J=I.parseTrailerDict,z=I.readXrefStreamDict,V=I.buildXrefStream,Q=P.typeTrailer,Z=new Set(["Prev","XRefStm","Type","W","Index","Length","Filter","DecodeParms","F","FFilter","FDecodeParms","DL"]),$=new TextEncoder;function q(N){return String(N).padStart(10,"0")}function Y(N){let x="<";for(let R=0;R<N.length;R++)x+="0123456789ABCDEF"[N[R]>>4]+"0123456789ABCDEF"[N[R]&15];return x+">"}function U(N){let x=0;for(let E of N)x+=E.length;let R=new Uint8Array(x),S=0;for(let E of N)R.set(E,S),S+=E.length;return R}function K(N,x){let R=Array.from(N.keys()).sort((l,J0)=>l-J0),S=[];S.push({first:0,count:1,entries:[`0000000000 65535 f
|
|
33
|
+
`]});let E=0;while(E<R.length){let l=E;while(l+1<R.length&&R[l+1]===R[l]+1)l++;let J0=[];for(let $0=E;$0<=l;$0++){let Q0=R[$0],e=x.get(Q0)|0;J0.push(`${q(N.get(Q0))} ${String(e).padStart(5,"0")} n
|
|
34
|
+
`)}S.push({first:R[E],count:l-E+1,entries:J0}),E=l+1}let y=`xref
|
|
35
|
+
`;for(let l of S){y+=`${l.first} ${l.count}
|
|
36
|
+
`;for(let J0 of l.entries)y+=J0}return $.encode(y)}function T(N){let x=[`trailer
|
|
37
|
+
<< /Size ${N.size}`];if(x.push(` /Root ${N.root.num} ${N.root.gen|0} R`),N.info)x.push(` /Info ${N.info.num} ${N.info.gen|0} R`);if(N.id)x.push(" /ID ["),x.push(Y(N.id[0])),x.push(Y(N.id[1])),x.push("]");let R=null;if(N.encrypt)if(Number.isInteger(N.encrypt.num))x.push(` /Encrypt ${N.encrypt.num} ${N.encrypt.gen|0} R`);else R=W(N.encrypt);let S=` /Prev ${N.prev} >>
|
|
38
|
+
startxref
|
|
39
|
+
${N.xrefOffset}
|
|
40
|
+
%%EOF
|
|
41
|
+
`;if(R)return x.push(" /Encrypt "),U([$.encode(x.join("")),R,$.encode(S)]);return x.push(S),$.encode(x.join(""))}function B(N,x){let R=x<0?0:x;while(R<N.length){let S=N[R];if(S===0||S===9||S===10||S===12||S===13||S===32){R++;continue}break}return R}function k(N,x){let R=B(N,x);return N[R]===120&&N[R+1]===114&&N[R+2]===101&&N[R+3]===102}function n(N,x){let R=[],S=new Set,E=x;for(let y=0;y<32&&E>=0;y++){if(S.has(E))break;S.add(E);let l,J0;try{if(k(N,E)){let Q0=X(N,E);J0=J(N,Q0.end).dict,l="table"}else J0=z(N,E).dict,l="stream"}catch(Q0){break}R.push({at:E,kind:l,dict:J0});let $0=J0&&J0.type==="dict"&&J0.entries.Prev;if($0&&$0.type==="int"&&$0.value>=0&&$0.value!==E)E=$0.value;else break}return R}function h(N){let x={};for(let R of N){if(!R.dict||R.dict.type!=="dict")continue;for(let S of Object.keys(R.dict.entries)){if(Z.has(S))continue;if(!(S in x))x[S]=R.dict.entries[S]}}return{type:"dict",entries:x}}function d(N){for(let x of N){let R=x.kind==="table"&&x.dict&&x.dict.type==="dict"&&x.dict.entries.XRefStm;if(R)throw new C("pdf/incremental/hybrid-base",`appendIncremental refuses a hybrid-reference base: the classical xref section at offset ${x.at} carries /XRefStm (a companion cross-reference stream); updating it could resolve differently in table-only and stream-aware readers`,{context:{offset:x.at,xrefStm:R.value}})}}function o(N){let x=G(N);if(x<0)throw new M("pdf/incremental/no-startxref","pdfBytes has no startxref — not a valid PDF");let R=H(N,x),S={xrefOffset:R,trailer:null,form:"table"};if(k(N,R)){try{let y=X(N,R),{dict:l}=J(N,y.end);S.trailer=Q(l)}catch(y){}return d(n(N,R)),S}try{z(N,R)}catch(y){throw new M("pdf/incremental/unsupported-base",`appendIncremental cannot extend this base: startxref designates offset ${R}, which starts neither a classical xref table nor a /Type /XRef cross-reference stream`,{context:{offset:R,cause:y&&y.code}})}let E=n(N,R);d(E),S.form="stream";try{S.trailer=Q(h(E))}catch(y){}return S}function _(N){let x=0;for(let R of N)if(R&&Number.isFinite(R.num)&&R.num>x)x=R.num;return x}function f(N){if(!(N instanceof Uint8Array))throw new C("pdf/incremental/bad-input","readBaseTrailer expects a Uint8Array");let x=o(N),R=null;try{R=Q(h(n(N,x.xrefOffset)))}catch(S){}return{form:x.form,xrefOffset:x.xrefOffset,trailer:R}}function L(N,x){return w(N,x).bytes}function O(N,x){return w(N,x)}function w(N,x){if(!(N instanceof Uint8Array))throw new C("pdf/incremental/bad-input","appendIncremental expects (Uint8Array, opts)");if(!x||!Array.isArray(x.updates))throw new C("pdf/incremental/no-updates","opts.updates must be an array");let R=x.updates.slice().sort((u,m)=>u.num-m.num);for(let u of R)if(!u||!Number.isFinite(u.num)||u.num<1)throw new C("pdf/incremental/bad-update","each update needs num >= 1",{context:{item:u}});let S=o(N),E=x.root||S.trailer&&S.trailer.root||null;if(!E||!Number.isFinite(E.num))throw new C("pdf/incremental/no-root","opts.root required when previous trailer cannot be read");let y=x.info||S.trailer&&S.trailer.info||null,l=x.id||S.trailer&&S.trailer.id||null,J0=S.trailer&&Number.isFinite(S.trailer.size)?S.trailer.size:0,$0=[N],Q0=N.length,e=new Map,Y0=new Map,v=$.encode(`
|
|
42
|
+
`);$0.push(v),Q0+=v.length;for(let{num:u,gen:m,value:p}of R){e.set(u,Q0),Y0.set(u,m|0);let b=j(u,m|0,p);$0.push(b),Q0+=b.length}let q0=Q0,U0=_(R),g=x.size|0||Math.max(J0,U0+1);if(S.form==="stream"){let u=Math.max(g,J0,U0+1),m=[];for(let[p,b]of e)m.push({num:p,offset:b,gen:Y0.get(p)});return $0.push(V({num:u,offset:q0,entries:m,size:u+1,prev:S.xrefOffset,root:E,info:y,id:l,encrypt:x.encrypt})),$0.push($.encode(`startxref
|
|
43
|
+
${q0}
|
|
44
|
+
%%EOF
|
|
45
|
+
`)),{bytes:U($0),offsets:e,xrefOffset:q0}}return $0.push(K(e,Y0)),$0.push(T({size:g,root:E,info:y,id:l,encrypt:x.encrypt,prev:S.xrefOffset,xrefOffset:q0})),{bytes:U($0),offsets:e,xrefOffset:q0}}return{appendIncremental:L,appendIncrementalWithOffsets:O,readBaseTrailer:f}}}),I0({name:"pdfXrefStreamWriter",dependencies:["pdfErrors","pdfSerializer","pdfFlate"],factory:function(i,A,D){let{RenderError:F}=i,I=A.serializeIndirect,P=A.serializeObject,C=D&&D.encode,M=new TextEncoder;function j(Z){let $=0;for(let U of Z)$+=U.length;let q=new Uint8Array($),Y=0;for(let U of Z)q.set(U,Y),Y+=U.length;return q}function W(Z){let $="<";for(let q=0;q<Z.length;q++)$+="0123456789ABCDEF"[Z[q]>>4]+"0123456789ABCDEF"[Z[q]&15];return $+">"}function G(Z){if(Z<=0)return 1;let $=0;while(Z>0)Z=Z>>>8,$++;return $}function H(Z,$,q,Y){for(let U=Y-1;U>=0;U--)Z[$+U]=q&255,q=q/256|0}function X(Z){let $=new Set;for(let q of Z){if(!q||!Number.isFinite(q.num)||q.num<1)throw new F("pdf/xrefstm-writer/bad-indirect","each indirect requires num >= 1");if($.has(q.num))throw new F("pdf/xrefstm-writer/duplicate-num","duplicate object number",{context:{num:q.num}});$.add(q.num)}}function J(Z){if(!Z||typeof Z.type!=="string")return!1;if(Z.type==="stream")return!1;return!0}function z(Z,$){let q=[],Y=Array(Z.length),U=0;for(let h=0;h<Z.length;h++){let d=Z[h],o=P(d.value);Y[h]=U,q.push(o),q.push(M.encode(`
|
|
46
|
+
`)),U+=o.length+1}let K="";for(let h=0;h<Z.length;h++){if(h>0)K+=" ";K+=`${Z[h].num} ${Y[h]}`}K+=`
|
|
47
|
+
`;let T=M.encode(K),B=j([T,...q]),k=C(B),n={type:"dict",entries:{Type:{type:"name",value:"ObjStm"},N:{type:"int",value:Z.length},First:{type:"int",value:T.length},Filter:{type:"name",value:"FlateDecode"}}};return{num:$,gen:0,value:{type:"stream",dict:n,raw:k}}}function V(Z){let{num:$,size:q,root:Y,info:U,id:K,w:T,indexPairs:B,payload:k}=Z,n={Type:{type:"name",value:"XRef"},Size:{type:"int",value:q},W:{type:"array",items:[{type:"int",value:T[0]},{type:"int",value:T[1]},{type:"int",value:T[2]}]},Root:{type:"ref",num:Y.num,gen:Y.gen|0},Filter:{type:"name",value:"FlateDecode"}};if(U)n.Info={type:"ref",num:U.num,gen:U.gen|0};if(K)n.ID={type:"array",items:[{type:"string",value:K[0],syntax:"hex"},{type:"string",value:K[1],syntax:"hex"}]};n.Index={type:"array",items:[]};for(let[h,d]of B)n.Index.items.push({type:"int",value:h}),n.Index.items.push({type:"int",value:d});return{num:$,gen:0,value:{type:"stream",dict:{type:"dict",entries:n},raw:k}}}function Q(Z){if(!Z||!Array.isArray(Z.indirects))throw new F("pdf/xrefstm-writer/bad-input","writeXrefStreamDocument expects { indirects: [...] }");if(!Z.root||!Number.isFinite(Z.root.num))throw new F("pdf/xrefstm-writer/no-root","opts.root required");if(typeof C!=="function")throw new F("pdf/xrefstm-writer/no-flate","pdfFlate.encode is required to emit xref-streams");let $=Z.version||"2.0";if(!/^\d\.\d$/.test($))throw new F("pdf/xrefstm-writer/bad-version",'version must look like "x.y"');let q=Z.indirects.slice().sort(($0,Q0)=>$0.num-Q0.num);X(q);let Y=(q.length?q[q.length-1].num:0)+1,U=new Map;U.set(0,{type:0,f2:0,f3:65535});let K=[],T=!!Z.useObjStm,B=Z.objStmCapacity|0||64;if(T){let $0=[],Q0=[];for(let e of q)if(J(e.value)&&(e.gen|0)===0)$0.push(e);else Q0.push(e);for(let e=0;e<$0.length;e+=B){let Y0=$0.slice(e,e+B),v=Y++,q0=z(Y0,v);K.push(q0);for(let U0=0;U0<Y0.length;U0++)U.set(Y0[U0].num,{type:2,f2:v,f3:U0})}for(let e of Q0)K.push(e)}else for(let $0 of q)K.push($0);K.sort(($0,Q0)=>$0.num-Q0.num);let k=[],n=0;function h($0){k.push($0),n+=$0.length}h(M.encode(`%PDF-${$}
|
|
48
|
+
`)),h(new Uint8Array([37,226,227,207,211,10]));for(let $0 of K)U.set($0.num,{type:1,f2:n,f3:$0.gen|0}),h(I($0.num,$0.gen|0,$0.value));let d=Y,o=n;U.set(d,{type:1,f2:o,f3:0});let _=Array.from(U.keys()).sort(($0,Q0)=>$0-Q0),f=[],L=0;while(L<_.length){let $0=L;while($0+1<_.length&&_[$0+1]===_[$0]+1)$0++;f.push([_[L],$0-L+1]),L=$0+1}let O=0,w=0,N=0;for(let $0 of U.values()){if($0.type>O)O=$0.type;if($0.f2>w)w=$0.f2;if($0.f3>N)N=$0.f3}let x=[Math.max(1,G(O)),Math.max(1,G(w)),Math.max(1,G(N))],R=x[0]+x[1]+x[2],S=new Uint8Array(_.length*R),E=0;for(let $0 of _){let Q0=U.get($0);H(S,E,Q0.type,x[0]),H(S,E+x[0],Q0.f2,x[1]),H(S,E+x[0]+x[1],Q0.f3,x[2]),E+=R}let y=C(S),l=d+1,J0=V({num:d,size:l,root:Z.root,info:Z.info,id:Z.id,w:x,indexPairs:f,payload:y});return h(I(J0.num,J0.gen,J0.value)),h(M.encode(`startxref
|
|
49
|
+
${o}
|
|
50
|
+
%%EOF
|
|
51
|
+
`)),j(k)}return{writeXrefStreamDocument:Q}}}),I0({name:"pdfAesGcm",dependencies:["pdfErrors","aes","gcm","bitArray"],factory:function(i,A,D,F){let{EncryptionError:I}=i;function P(W,G,H){let X=H>>>2,J=Array(X);for(let z=0;z<X;z++){let V=G+(z<<2);J[z]=W[V]<<24|W[V+1]<<16|W[V+2]<<8|W[V+3]|0}return J}if(!A||!D||!F)throw new I("pdf/crypto/gcm/missing-fw","pdfAesGcm requires aes, gcm, bitArray fw modules");function C(W){if(!(W instanceof Uint8Array)||W.length!==32)throw new I("pdf/crypto/gcm/bad-fek","File Encryption Key must be 32 bytes (AES-256)",{context:{length:W&&W.length}});let G=A.fn(P(W,0,32),!1);if(G===!1)throw new I("pdf/crypto/gcm/aes-schedule-failed","AES-256 key schedule failed");return G}function M(W,G){if(!(G instanceof Uint8Array)||G.length<28)throw new I("pdf/crypto/gcm/bad-input","AES-GCM framed input must be at least 28 bytes (IV + tag)");let H=C(W),X=G.subarray(0,12),J=G.subarray(G.length-16),z=G.subarray(12,G.length-16),V=D.decrypt(H,F.ui8_to_ba(z),F.ui8_to_ba(X),[],F.ui8_to_ba(J),128);if(V===!1)throw new I("pdf/crypto/gcm/tag-mismatch","AES-GCM authentication tag mismatch");return F.ba_to_ui8(V)}function j(W,G,H){if(!(G instanceof Uint8Array))throw new I("pdf/crypto/gcm/bad-plaintext","plaintext must be Uint8Array");if(typeof H!=="function")throw new I("pdf/crypto/gcm/bad-iv-provider","ivProvider must be a function returning 12 bytes");let X=H();if(!(X instanceof Uint8Array)||X.length!==12)throw new I("pdf/crypto/gcm/bad-iv","ivProvider must return exactly 12 bytes (96-bit nonce)",{context:{length:X&&X.length}});let J=C(W),z=D.encrypt(J,F.ui8_to_ba(G),F.ui8_to_ba(X),[],128);if(z===!1)throw new I("pdf/crypto/gcm/encrypt-failed","AES-GCM encryption failed");let V=F.ba_to_ui8(z.ct),Q=F.ba_to_ui8(z.tag),Z=new Uint8Array(12+V.length+16);return Z.set(X,0),Z.set(V,12),Z.set(Q,12+V.length),Z}return{encryptObjectGcm:j,decryptObjectGcm:M}}}),I0({name:"pdfStandardV5",dependencies:["pdfErrors","aes","cbc","sha256","bitArray","pdfAesGcm"],factory:function(i,A,D,F,I,P){let{EncryptionError:C}=i;if(!A||!D||!F||!I)throw new C("pdf/crypto/v5/missing-fw","pdfStandardV5 requires aes, cbc, sha256, bitArray fw modules");let M=new Uint8Array(16);function j(h,d,o){let _=o>>>2,f=Array(_);for(let L=0;L<_;L++){let O=d+(L<<2);f[L]=h[O]<<24|h[O+1]<<16|h[O+2]<<8|h[O+3]|0}return f}function W(h,d,o){for(let _=0;_<h.length;_++){let f=o+(_<<2);d[f]=h[_]>>>24&255,d[f+1]=h[_]>>>16&255,d[f+2]=h[_]>>>8&255,d[f+3]=h[_]&255}}function G(h){if(h===void 0||h===null||h==="")return new Uint8Array(0);if(h instanceof Uint8Array)return h.length>127?h.subarray(0,127):h;if(typeof h==="string"){let d=new TextEncoder().encode(h);return d.length>127?d.subarray(0,127):d}throw new C("pdf/crypto/v5/bad-password","password must be string or Uint8Array")}function H(h){let d=I.ui8_to_ba(h),o=F.hash(d);return I.ba_to_ui8(o)}function X(h){let d=0;for(let f of h)d+=f.length;let o=new Uint8Array(d),_=0;for(let f of h)o.set(f,_),_+=f.length;return o}function J(h,d,o){if(o.length%16!==0)throw new C("pdf/crypto/v5/bad-ciphertext-len","AES-CBC ciphertext length must be a multiple of 16",{context:{length:o.length}});let _=A.fn(j(h,0,32),!0);if(_===!1)throw new C("pdf/crypto/v5/aes-schedule-failed","AES-256 key schedule failed");let f=j(o,0,o.length),L=j(d,0,16),O=D.decrypt(_,f,L);if(O===!1)throw new C("pdf/crypto/v5/cbc-decrypt-failed","AES-256-CBC decryption failed");let w=new Uint8Array(o.length);return W(O,w,0),w}function z(h){if(h.length===0)return h;let d=h[h.length-1];if(d<1||d>16||d>h.length)return h;for(let o=h.length-d;o<h.length;o++)if(h[o]!==d)return h;return h.subarray(0,h.length-d)}function V(h,d,o){let{O:_,U:f,OE:L,UE:O}=h;if(!(_ instanceof Uint8Array)||_.length<48||!(f instanceof Uint8Array)||f.length<48)throw new C("pdf/crypto/v5/bad-O-U","/O and /U must be at least 48 bytes for v5");let w=G(d),N=o?_:f,x=N.subarray(32,40),R=N.subarray(40,48),S;if(o){S=H(X([w,x,f.subarray(0,48)]));for(let l=0;l<32;l++)if(S[l]!==_[l])return{fileEncryptionKey:null}}else{S=H(X([w,x]));for(let l=0;l<32;l++)if(S[l]!==f[l])return{fileEncryptionKey:null}}let E=o?H(X([w,R,f.subarray(0,48)])):H(X([w,R])),y=o?L:O;if(!(y instanceof Uint8Array)||y.length!==32)throw new C("pdf/crypto/v5/bad-OE-UE","/OE and /UE must be exactly 32 bytes for v5",{context:{length:y&&y.length}});return{fileEncryptionKey:J(E,M,y)}}function Q(h,d){let o=h&&h.method;if(o==="AESV3"||o==="AESV4")return o;return d||"AESV3"}function Z(){if(!P||typeof P.decryptObjectGcm!=="function")throw new C("pdf/crypto/v5/missing-gcm","AESV4 requires pdfAesGcm dependency");return P}function $(h,d,o,_,f){if(Q(h,"AESV3")==="AESV4")return Z().decryptObjectGcm(d,f);if(!(f instanceof Uint8Array)||f.length<32)throw new C("pdf/crypto/v5/bad-string","AES-256 encrypted string must be at least 32 bytes (IV+1 block)");let L=f.subarray(0,16),O=f.subarray(16),w=J(d,L,O);return z(w)}function q(h,d,o,_,f){return $(h,d,o,_,f)}function Y(h,d,o){if(o.length%16!==0)throw new C("pdf/crypto/v5/bad-pt-len","AES-CBC plaintext length must be a multiple of 16",{context:{length:o.length}});let _=A.fn(j(h,0,h.length),!1);if(_===!1||typeof _.encrypt!=="function")throw new C("pdf/crypto/v5/aes-encrypt-schedule","AES key schedule failed for encrypt");let f=j(o,0,o.length),L=j(d,0,16),O=D.encrypt(_,f,L);if(O===!1)throw new C("pdf/crypto/v5/cbc-encrypt-failed","AES-CBC encryption failed");let w=new Uint8Array(o.length);return W(O,w,0),w}function U(h){let d=16-h.length%16,o=new Uint8Array(h.length+d);o.set(h);for(let _=h.length;_<o.length;_++)o[_]=d;return o}function K(h,d,o,_,f,L){if(!(f instanceof Uint8Array))throw new C("pdf/crypto/v5/encrypt-bad-input","plaintext must be Uint8Array");if(Q(h,"AESV3")==="AESV4"){if(!(L instanceof Uint8Array)||L.length!==12)throw new C("pdf/crypto/v5/encrypt-bad-iv","AESV4 IV must be a 12-byte Uint8Array");return Z().encryptObjectGcm(d,f,()=>L)}if(!(L instanceof Uint8Array)||L.length!==16)throw new C("pdf/crypto/v5/encrypt-bad-iv","IV must be a 16-byte Uint8Array");let O=U(f),w=Y(d,L,O),N=new Uint8Array(16+w.length);return N.set(L,0),N.set(w,16),N}function T(h,d,o,_,f,L){return K(h,d,o,_,f,L)}function B(h,d,o,_){let f=G(h),L=H(X([f,o])),O=new Uint8Array(48);O.set(L,0),O.set(o,32),O.set(_,40);let w=H(X([f,_])),N=Y(w,M,d);return{U:O,UE:N}}function k(h,d,o,_,f){let L=G(h),O=H(X([L,_,o])),w=new Uint8Array(48);w.set(O,0),w.set(_,32),w.set(f,40);let N=H(X([L,f,o])),x=Y(N,M,d);return{O:w,OE:x}}function n(h,d,o,_){let f=new Uint8Array(16),L=h|0;f[0]=L&255,f[1]=L>>>8&255,f[2]=L>>>16&255,f[3]=L>>>24&255,f[4]=255,f[5]=255,f[6]=255,f[7]=255,f[8]=o?84:70,f[9]=97,f[10]=100,f[11]=98;let O=_(4);f[12]=O[0],f[13]=O[1],f[14]=O[2],f[15]=O[3];let w=A.fn(j(d,0,32),!1);if(w===!1||typeof w.encrypt!=="function")throw new C("pdf/crypto/v5/perms-schedule","AES-256-ECB schedule failed for /Perms");let N=w.encrypt(j(f,0,16)),x=new Uint8Array(16);return W(N,x,0),x}return{tryPassword:V,decryptString:$,decryptStream:q,encryptString:K,encryptStream:T,buildUUE:B,buildOOE:k,buildPerms:n}}}),I0({name:"pdfStandardV6",dependencies:["pdfErrors","aes","cbc","sha256","sha384","sha512","bitArray","pdfAesGcm"],factory:function(i,A,D,F,I,P,C,M){let{EncryptionError:j}=i;if(!A||!D||!F||!I||!P||!C)throw new j("pdf/crypto/v6/missing-fw","pdfStandardV6 requires aes, cbc, sha256, sha384, sha512, bitArray");let W=new Uint8Array(16),G=Array(4);function H(L,O,w,N){let x=w>>>2,R=N&&N.length>=x?N:Array(x);for(let S=0;S<x;S++){let E=O+(S<<2);R[S]=L[E]<<24|L[E+1]<<16|L[E+2]<<8|L[E+3]|0}if(R.length!==x&&R!==N)R.length=x;if(N&&R===N)R.length=x;return R}function X(L,O,w,N){let x=N===void 0?L.length:N;for(let R=0;R<x;R++){let S=w+(R<<2);O[S]=L[R]>>>24&255,O[S+1]=L[R]>>>16&255,O[S+2]=L[R]>>>8&255,O[S+3]=L[R]&255}}function J(L){let O=0;for(let x of L)O+=x.length;let w=new Uint8Array(O),N=0;for(let x of L)w.set(x,N),N+=x.length;return w}function z(L){if(L===void 0||L===null||L==="")return new Uint8Array(0);if(L instanceof Uint8Array)return L.length>127?L.subarray(0,127):L;if(typeof L==="string"){let O=new TextEncoder().encode(L);return O.length>127?O.subarray(0,127):O}throw new j("pdf/crypto/v6/bad-password","password must be string or Uint8Array")}function V(L,O,w){let N=C.ui8_to_ba(O),x=L.hash(N),R=C.ba_to_ui8(x);return R.length===w?R:R.subarray(0,w)}function Q(L,O,w){if(w.length%16!==0)throw new j("pdf/crypto/v6/bad-pt-len","AES-CBC plaintext length must be a multiple of 16",{context:{length:w.length}});let N=A.fn(H(L,0,L.length,G),!1);if(N===!1)throw new j("pdf/crypto/v6/aes-schedule-failed","AES key schedule failed");let x=new Uint8Array(w.length),R=O[0]<<24|O[1]<<16|O[2]<<8|O[3],S=O[4]<<24|O[5]<<16|O[6]<<8|O[7],E=O[8]<<24|O[9]<<16|O[10]<<8|O[11],y=O[12]<<24|O[13]<<16|O[14]<<8|O[15];for(let l=0;l<w.length;l+=16){let J0=w[l]<<24|w[l+1]<<16|w[l+2]<<8|w[l+3],$0=w[l+4]<<24|w[l+5]<<16|w[l+6]<<8|w[l+7],Q0=w[l+8]<<24|w[l+9]<<16|w[l+10]<<8|w[l+11],e=w[l+12]<<24|w[l+13]<<16|w[l+14]<<8|w[l+15],Y0=N.encrypt([J0^R,$0^S,Q0^E,e^y]);R=Y0[0],S=Y0[1],E=Y0[2],y=Y0[3],X(Y0,x,l,4)}return x}function Z(L,O,w){if(w.length%16!==0)throw new j("pdf/crypto/v6/bad-ct-len","AES-CBC ciphertext length must be a multiple of 16");let N=A.fn(H(L,0,L.length),!0);if(N===!1||typeof N.decrypt!=="function")throw new j("pdf/crypto/v6/aes-decrypt-schedule","AES-256 decrypt key schedule failed");let x=H(w,0,w.length),R=H(O,0,16),S=D.decrypt(N,x,R);if(S===!1)throw new j("pdf/crypto/v6/cbc-decrypt-failed","AES-256-CBC decryption failed");let E=new Uint8Array(w.length);return X(S,E,0,S.length),E}function $(L){if(L.length===0)return L;let O=L[L.length-1];if(O<1||O>16||O>L.length)return L;for(let w=L.length-O;w<L.length;w++)if(L[w]!==O)return L;return L.subarray(0,L.length-O)}function q(L,O,w){let N=V(F,J([L,O,w]),32),x=0;while(!0){let R=J([L,N,w]),S=new Uint8Array(R.length*64);for(let e=0;e<64;e++)S.set(R,e*R.length);let E=N.subarray(0,16),y=N.subarray(16,32),l=Q(E,y,S),J0=0;for(let e=0;e<16;e++)J0=(J0+l[e])%3;let $0,Q0;if(J0===0)$0=F,Q0=32;else if(J0===1)$0=I,Q0=48;else $0=P,Q0=64;if(N=V($0,l,Q0),x++,x>=64&&l[l.length-1]<=x-32)break;if(x>1024)throw new j("pdf/crypto/v6/hardening-runaway","Algorithm 2.B exceeded 1024 rounds",{context:{round:x}})}return N.subarray(0,32)}function Y(L,O,w){let{O:N,U:x,OE:R,UE:S}=L;if(!(N instanceof Uint8Array)||N.length<48||!(x instanceof Uint8Array)||x.length<48)throw new j("pdf/crypto/v6/bad-O-U","/O and /U must be at least 48 bytes for v6");let E=z(O),y=w?N:x,l=y.subarray(32,40),J0=y.subarray(40,48),$0=w?x.subarray(0,48):new Uint8Array(0),Q0=q(E,l,$0);for(let v=0;v<32;v++)if(Q0[v]!==y[v])return{fileEncryptionKey:null};let e=q(E,J0,$0),Y0=w?R:S;if(!(Y0 instanceof Uint8Array)||Y0.length!==32)throw new j("pdf/crypto/v6/bad-OE-UE","/OE and /UE must be exactly 32 bytes for v6");return{fileEncryptionKey:Z(e,W,Y0)}}function U(L,O){let w=L&&L.method;if(w==="AESV3"||w==="AESV4")return w;return O||"AESV3"}function K(){if(!M||typeof M.decryptObjectGcm!=="function")throw new j("pdf/crypto/v6/missing-gcm","AESV4 requires pdfAesGcm dependency");return M}function T(L,O,w,N,x){if(U(L,"AESV3")==="AESV4")return K().decryptObjectGcm(O,x);if(!(x instanceof Uint8Array)||x.length<32)throw new j("pdf/crypto/v6/bad-string","AES-256 encrypted string must be at least 32 bytes");let R=x.subarray(0,16),S=x.subarray(16),E=Z(O,R,S);return $(E)}function B(L,O,w,N,x){return T(L,O,w,N,x)}function k(L,O,w){return Q(L,O,w)}function n(L){let O=16-L.length%16,w=new Uint8Array(L.length+O);w.set(L);for(let N=L.length;N<w.length;N++)w[N]=O;return w}function h(L,O,w,N,x,R){if(!(x instanceof Uint8Array))throw new j("pdf/crypto/v6/encrypt-bad-input","plaintext must be Uint8Array");if(U(L,"AESV3")==="AESV4"){if(!(R instanceof Uint8Array)||R.length!==12)throw new j("pdf/crypto/v6/encrypt-bad-iv","AESV4 IV must be a 12-byte Uint8Array");return K().encryptObjectGcm(O,x,()=>R)}if(!(R instanceof Uint8Array)||R.length!==16)throw new j("pdf/crypto/v6/encrypt-bad-iv","IV must be a 16-byte Uint8Array");let S=n(x),E=k(O,R,S),y=new Uint8Array(16+E.length);return y.set(R,0),y.set(E,16),y}function d(L,O,w,N,x,R){return h(L,O,w,N,x,R)}function o(L,O,w,N){let x=z(L),R=q(x,w,new Uint8Array(0)),S=new Uint8Array(48);S.set(R,0),S.set(w,32),S.set(N,40);let E=q(x,N,new Uint8Array(0)),y=k(E,W,O);return{U:S,UE:y}}function _(L,O,w,N,x){let R=z(L),S=q(R,N,w),E=new Uint8Array(48);E.set(S,0),E.set(N,32),E.set(x,40);let y=q(R,x,w),l=k(y,W,O);return{O:E,OE:l}}function f(L,O,w,N){let x=new Uint8Array(16),R=L|0;x[0]=R&255,x[1]=R>>>8&255,x[2]=R>>>16&255,x[3]=R>>>24&255,x[4]=255,x[5]=255,x[6]=255,x[7]=255,x[8]=w?84:70,x[9]=97,x[10]=100,x[11]=98;let S=N(4);x[12]=S[0],x[13]=S[1],x[14]=S[2],x[15]=S[3];let E=A.fn(H(O,0,32,G),!1);if(E===!1||typeof E.encrypt!=="function")throw new j("pdf/crypto/v6/perms-schedule","AES-256-ECB schedule failed for /Perms");let y=E.encrypt(H(x,0,16)),l=new Uint8Array(16);return X(y,l,0,4),l}return{tryPassword:Y,decryptString:T,decryptStream:B,encryptString:h,encryptStream:d,buildUUE:o,buildOOE:_,buildPerms:f}}}),I0({name:"pdfStandardV4",dependencies:["pdfErrors","aes","cbc","bitArray"],factory:function(i,A,D,F){let{EncryptionError:I}=i;if(!A||!D||!F)throw new I("pdf/crypto/v4/missing-fw","pdfStandardV4 requires aes, cbc, bitArray fw modules");let P=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]),C=new Uint8Array([115,65,108,84]);function M(_,f,L){let O=L>>>2,w=Array(O);for(let N=0;N<O;N++){let x=f+(N<<2);w[N]=_[x]<<24|_[x+1]<<16|_[x+2]<<8|_[x+3]|0}return w}function j(_,f,L){for(let O=0;O<_.length;O++){let w=L+(O<<2);f[w]=_[O]>>>24&255,f[w+1]=_[O]>>>16&255,f[w+2]=_[O]>>>8&255,f[w+3]=_[O]&255}}function W(_,f){let L=new Uint8Array(256);for(let R=0;R<256;R++)L[R]=R;let O=0;for(let R=0;R<256;R++){O=O+L[R]+_[R%_.length]&255;let S=L[R];L[R]=L[O],L[O]=S}let w=new Uint8Array(f.length),N=0,x=0;for(let R=0;R<f.length;R++){N=N+1&255,x=x+L[N]&255;let S=L[N];L[N]=L[x],L[x]=S;let E=L[L[N]+L[x]&255];w[R]=f[R]^E}return w}function G(_){function f(e,Y0){return e<<Y0|e>>>32-Y0|0}let L=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],O=[3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107603335,1163531501,2850285829,4243563512,1735328473,2368359562,4294588738,2272392833,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787259,3951481745],w=_.length,N=new Uint8Array((w+8>>6<<6)+64);N.set(_),N[w]=128;let x=w*8>>>0,R=Math.floor(w*8/4294967296)>>>0,S=new DataView(N.buffer);S.setUint32(N.length-8,x,!0),S.setUint32(N.length-4,R,!0);let E=1732584193,y=-271733879,l=-1732584194,J0=271733878;for(let e=0;e<N.length;e+=64){let Y0=Array(16);for(let u=0;u<16;u++)Y0[u]=S.getUint32(e+u*4,!0);let v=E,q0=y,U0=l,g=J0;for(let u=0;u<64;u++){let m,p;if(u<16)m=q0&U0|~q0&g,p=u;else if(u<32)m=g&q0|~g&U0,p=(5*u+1)%16;else if(u<48)m=q0^U0^g,p=(3*u+5)%16;else m=U0^(q0|~g),p=7*u%16;let b=v+m+O[u]+Y0[p]|0;v=g,g=U0,U0=q0,q0=q0+f(b,L[u])|0}E=E+v|0,y=y+q0|0,l=l+U0|0,J0=J0+g|0}let $0=new Uint8Array(16),Q0=new DataView($0.buffer);return Q0.setUint32(0,E,!0),Q0.setUint32(4,y,!0),Q0.setUint32(8,l,!0),Q0.setUint32(12,J0,!0),$0}function H(_){if(_===void 0||_===null)_="";if(typeof _==="string")_=new TextEncoder().encode(_);if(!(_ instanceof Uint8Array))throw new I("pdf/crypto/v4/bad-password","password must be string or Uint8Array");let f=new Uint8Array(32),L=Math.min(32,_.length);return f.set(_.subarray(0,L)),f.set(P.subarray(0,32-L),L),f}function X(_,f,L,O,w){if(!(f instanceof Uint8Array)||f.length!==32)throw new I("pdf/crypto/v4/bad-O","/O must be a 32-byte Uint8Array");if(!(O instanceof Uint8Array))throw new I("pdf/crypto/v4/bad-id","first /ID element required");let N=H(_),x=w===!1?4:0,R=new Uint8Array(68+O.length+x),S=0;if(R.set(N,S),S+=32,R.set(f,S),S+=32,new DataView(R.buffer).setInt32(S,L|0,!0),S+=4,R.set(O,S),S+=O.length,x)R[S++]=255,R[S++]=255,R[S++]=255,R[S]=255;let E=G(R),y=16;for(let l=0;l<50;l++)E=G(E.subarray(0,y));return E.subarray(0,y)}function J(_,f){let L=new Uint8Array(P.length+f.length);L.set(P,0),L.set(f,P.length);let O=G(L);O=W(_,O);for(let N=1;N<=19;N++){let x=new Uint8Array(_.length);for(let R=0;R<_.length;R++)x[R]=_[R]^N;O=W(x,O)}let w=new Uint8Array(32);return w.set(O,0),w}function z(_,f){let L=H(_&&_.length?_:f),O=G(L);for(let x=0;x<50;x++)O=G(O);let w=O.subarray(0,16),N=W(w,H(f));for(let x=1;x<=19;x++){let R=new Uint8Array(16);for(let S=0;S<16;S++)R[S]=w[S]^x;N=W(R,N)}return N}function V(_,f,L){let O=L===void 0?Math.min(_.length,f.length):L;for(let w=0;w<O;w++)if(_[w]!==f[w])return!1;return!0}function Q(_,f,L,O){let w=O?4:0,N=new Uint8Array(_.length+5+w);if(N.set(_,0),N[_.length+0]=f&255,N[_.length+1]=f>>8&255,N[_.length+2]=f>>16&255,N[_.length+3]=L&255,N[_.length+4]=L>>8&255,O)N.set(C,_.length+5);return G(N).subarray(0,Math.min(_.length+5,16))}function Z(_,f,L){if(L.length%16!==0)throw new I("pdf/crypto/v4/bad-ciphertext-len","AES-CBC ciphertext length must be a multiple of 16");let O=A.fn(M(_,0,_.length),!0);if(O===!1)throw new I("pdf/crypto/v4/aes-schedule-failed","AES-128 key schedule failed");let w=M(L,0,L.length),N=M(f,0,16),x=D.decrypt(O,w,N);if(x===!1)throw new I("pdf/crypto/v4/cbc-decrypt-failed","AES-128-CBC decryption failed");let R=new Uint8Array(L.length);return j(x,R,0),R}function $(_,f,L){if(L.length%16!==0)throw new I("pdf/crypto/v4/bad-pt-len","AES-CBC plaintext length must be a multiple of 16");let O=A.fn(M(_,0,_.length),!1);if(O===!1||typeof O.encrypt!=="function")throw new I("pdf/crypto/v4/aes-encrypt-schedule","AES-128 key schedule failed for encrypt");let w=M(L,0,L.length),N=M(f,0,16),x=D.encrypt(O,w,N);if(x===!1)throw new I("pdf/crypto/v4/cbc-encrypt-failed","AES-128-CBC encryption failed");let R=new Uint8Array(L.length);return j(x,R,0),R}function q(_){let f=16-_.length%16,L=new Uint8Array(_.length+f);L.set(_);for(let O=_.length;O<L.length;O++)L[O]=f;return L}function Y(_){if(_.length===0)return _;let f=_[_.length-1];if(f<1||f>16||f>_.length)return _;for(let L=_.length-f;L<_.length;L++)if(_[L]!==f)return _;return _.subarray(0,_.length-f)}function U(_,f,L){let{O,U:w,idFirst:N}=_,x=_.P|0,R=_.EncryptMetadata!==!1;if(!(O instanceof Uint8Array)||O.length!==32||!(w instanceof Uint8Array)||w.length!==32)throw new I("pdf/crypto/v4/bad-O-U","/O and /U must be 32 bytes for v4");if(!(N instanceof Uint8Array))throw new I("pdf/crypto/v4/bad-id","idFirst is required for v4 key derivation");let S;if(L){let l=H(f),J0=G(l);for(let e=0;e<50;e++)J0=G(J0);let $0=J0.subarray(0,16),Q0=O;for(let e=19;e>=0;e--){let Y0=new Uint8Array(16);for(let v=0;v<16;v++)Y0[v]=$0[v]^e;Q0=W(Y0,Q0)}S=Q0}else S=f;let E=X(S,O,x,N,R),y=J(E,N);return V(y,w,16)?{fileEncryptionKey:E}:{fileEncryptionKey:null}}function K(_,f,L,O,w){let N=_&&_.method;if(N==="AESV2"){if(w.length<16)throw new I("pdf/crypto/v4/bad-string","AESV2 string must be at least 16 bytes (IV)");let x=Q(f,L,O,!0),R=w.subarray(0,16),S=w.subarray(16);if(S.length===0)return S;let E=Z(x,R,S);return Y(E)}if(N==="V2"||N==="RC4"){let x=Q(f,L,O,!1);return W(x,w)}throw new I("pdf/crypto/v4/bad-method","V4 method must be AESV2 or V2",{context:{method:N}})}function T(_,f,L,O,w){return K(_,f,L,O,w)}function B(_,f,L,O,w){return K(_,f,L,O,w)}function k(_,f,L,O,w,N){return n(_,f,L,O,w,N)}function n(_,f,L,O,w,N){let x=_&&_.method;if(!(w instanceof Uint8Array))throw new I("pdf/crypto/v4/encrypt-bad-input","plaintext must be Uint8Array");if(x==="AESV2"){if(!(N instanceof Uint8Array)||N.length!==16)throw new I("pdf/crypto/v4/encrypt-bad-iv","AESV2 IV must be 16 bytes");let R=Q(f,L,O,!0),S=q(w),E=$(R,N,S),y=new Uint8Array(16+E.length);return y.set(N,0),y.set(E,16),y}if(x==="V2"||x==="RC4"){let R=Q(f,L,O,!1);return W(R,w)}throw new I("pdf/crypto/v4/bad-method","V4 method must be AESV2 or V2",{context:{method:x}})}function h(_,f,L,O,w,N){return n(_,f,L,O,w,N)}function d(_,f,L,O,w){if(!(O instanceof Uint8Array))throw new I("pdf/crypto/v4/bad-id","idFirst required to build /O and /U");let N=z(_,f),x=X(f,N,L,O,w),R=J(x,O);return{O:N,U:R,fek:x}}function o(){return null}return{tryPassword:U,decryptString:K,decryptStream:T,decryptEmbeddedFile:B,encryptEmbeddedFile:k,encryptString:n,encryptStream:h,buildOU:d,buildPerms:o,computeFileKey:X,computeU:J,computeO:z,objectKey:Q,rc4:W,md5:G,padPassword:H,PASSWORD_PADDING:P}}}),I0({name:"pdfEncryptedWriter",dependencies:["pdfErrors","pdfWriter","pdfStandardV5","pdfStandardV6","pdfStandardV4","pdfAesGcm"],factory:function(i,A,D,F,I,P){let{EncryptionError:C,RenderError:M}=i,j=A&&A.writeDocument;if(typeof j!=="function")throw new C("pdf/crypto/enc-writer/missing-writer","pdfEncryptedWriter requires pdfWriter.writeDocument");function W(T){if(T.randomBytes)return T.randomBytes;if(globalThis.crypto&&typeof globalThis.crypto.getRandomValues==="function")return(B)=>globalThis.crypto.getRandomValues(new Uint8Array(B));throw new C("pdf/crypto/enc-writer/no-random","no cryptographic random source: pass opts.encrypt.randomBytes (crypto.getRandomValues is unavailable)")}function G(T,B){if(T===5&&B===5)return D;if(T===5&&B===6)return F;if(T===4&&B===4){if(!I)throw new C("pdf/crypto/enc-writer/missing-v4","V=4 requires pdfStandardV4");return I}throw new C("pdf/crypto/enc-writer/unsupported-version","encrypted write supports V=4 R=4, V=5 R=5, or V=5 R=6",{context:{version:T,revision:B}})}function H(T){return{type:"string",value:T,syntax:"hex"}}function X(T){return{type:"int",value:T|0}}function J(T){return{type:"name",value:T}}function z(T){return{type:"bool",value:!!T}}function V(T){if(!T||T.type!=="stream")return!1;let B=T.dict;if(!B||B.type!=="dict"||!B.entries)return!1;let k=B.entries.Type;if(!k)return!1;if(k.type==="name")return k.value==="EmbeddedFile";if(typeof k==="string")return k==="EmbeddedFile";return!1}function Q(T,B,k){if(!T||typeof T!=="object")return T;switch(T.type){case"string":return{type:"string",value:B(T.value),syntax:"hex"};case"array":{let n=Array(T.items.length);for(let h=0;h<T.items.length;h++)n[h]=Q(T.items[h],B,k);return{type:"array",items:n}}case"dict":{let n={};for(let h of Object.keys(T.entries))n[h]=Q(T.entries[h],B,k);return{type:"dict",entries:n}}case"stream":{let n=Q(T.dict,B,k),h=k&&V(T)?k:B,d=T.raw instanceof Uint8Array?h(T.raw):T.raw;return{type:"stream",dict:n,raw:d}}default:return T}}function Z(T){let B={Filter:J("Standard"),V:X(T.V),R:X(T.R),Length:X(T.keyBits),P:X(T.P),O:H(T.O),U:H(T.U),EncryptMetadata:z(T.encryptMetadata!==!1)};if(T.OE)B.OE=H(T.OE);if(T.UE)B.UE=H(T.UE);if(T.Perms)B.Perms=H(T.Perms);let{cfm:k,cfLength:n}=T,h={StdCF:{type:"dict",entries:{CFM:J(k),AuthEvent:J("DocOpen"),Length:X(n)}}},d=T.effCfm,o=d&&d!==k;if(o)h.StdEFF={type:"dict",entries:{CFM:J(d),AuthEvent:J("DocOpen"),Length:X(T.effCfLength|0||n)}};if(B.CF={type:"dict",entries:h},B.StmF=J("StdCF"),B.StrF=J("StdCF"),o)B.EFF=J("StdEFF");return{type:"dict",entries:B}}function $(T){let B=0;for(let k of T)if(k&&Number.isFinite(k.num)&&k.num>B)B=k.num;return B+1}function q(T){if(!T||typeof T!=="object")throw new M("pdf/crypto/enc-writer/bad-input","writeEncryptedDocument requires opts");let B=T.encrypt;if(!B||typeof B!=="object")throw new M("pdf/crypto/enc-writer/no-encrypt","opts.encrypt is required");let k=B.version|0,n=B.revision|0,h=G(k,n),d=W(B),o=B.encryptMetadata!==!1,_=B.permissions|0,f=B.method;if(!f)f=k===4?"AESV2":"AESV3";if(k===4&&f!=="AESV2"&&f!=="V2")throw new M("pdf/crypto/enc-writer/bad-method","V=4 method must be AESV2 or V2",{context:{method:f}});if(k===5&&f!=="AESV3"&&f!=="AESV4")throw new M("pdf/crypto/enc-writer/bad-method","V=5 method must be AESV3 or AESV4",{context:{method:f}});if(f==="AESV4"&&!P)throw new C("pdf/crypto/enc-writer/missing-gcm","AESV4 (GCM) requires pdfAesGcm");let L=B.effMethod||null;if(L){if(k===4&&L!=="AESV2"&&L!=="V2")throw new M("pdf/crypto/enc-writer/bad-eff-method","V=4 effMethod must be AESV2 or V2",{context:{effMethod:L}});if(k===5&&L!=="AESV3"&&L!=="AESV4")throw new M("pdf/crypto/enc-writer/bad-eff-method","V=5 effMethod must be AESV3 or AESV4",{context:{effMethod:L}});if(L==="AESV4"&&!P)throw new C("pdf/crypto/enc-writer/missing-gcm","AESV4 (GCM) effMethod requires pdfAesGcm")}let O=k===4?16:32,w=B.keyBits|0||O*8,N=T.id;if(!N){let g=d(16),u=d(16);N=[g,u]}let x=N[0]instanceof Uint8Array?N[0]:new Uint8Array(N[0]),R,S,E,y,l,J0;if(k===4){let g=h.buildOU(B.ownerPassword,B.userPassword,_,x,o);S=g.O,E=g.U,R=g.fek,y=null,l=null,J0=null}else{R=d(32);let g=d(8),u=d(8),m=d(8),p=d(8),b=h.buildUUE(B.userPassword,R,g,u);E=b.U,l=b.UE;let t=h.buildOOE(B.ownerPassword,R,E,m,p);S=t.O,y=t.OE,J0=h.buildPerms(_,R,o,d)}function $0(g){let u={V:k,R:n,method:g};return function(p,b){if(g==="AESV4")return function(Z0){let X0=()=>d(12);return P.encryptObjectGcm(R,Z0,X0)};if(k===4){let t=g===L&&L!==null&&typeof h.encryptEmbeddedFile==="function";return function(X0){let z0=g==="AESV2"?d(16):null;return t?h.encryptEmbeddedFile(u,R,p,b,X0,z0):h.encryptStream(u,R,p,b,X0,z0)}}return function(Z0){let X0=d(16);return h.encryptStream(u,R,p,b,Z0,X0)}}}let Q0=$0(f),e=L?$0(L):null,Y0=T.indirects||[],v=Array(Y0.length);for(let g=0;g<Y0.length;g++){let u=Y0[g],m=Q0(u.num|0,u.gen|0),p=e?e(u.num|0,u.gen|0):null;v[g]={num:u.num,gen:u.gen,value:Q(u.value,m,p)}}let q0=$(v),U0=k===4?16:32;return v.push({num:q0,gen:0,value:Z({V:k,R:n,keyBits:w,P:_,O:S,U:E,OE:y,UE:l,Perms:J0,encryptMetadata:o,cfm:f,cfLength:U0,effCfm:L||null,effCfLength:L?U0:0})}),{bytes:K({indirects:v,root:T.root,info:T.info,id:N,version:T.version,encryptRef:{num:q0,gen:0}}),encryptObjNum:q0,fek:R,id:N,O:S,U:E,OE:y,UE:l,Perms:J0,version:k,revision:n,method:f,effMethod:L}}let Y=new TextEncoder;function U(T){let B=0;for(let h of T)B+=h.length;let k=new Uint8Array(B),n=0;for(let h of T)k.set(h,n),n+=h.length;return k}function K(T){let B=j({indirects:T.indirects,root:T.root,info:T.info,id:T.id,version:T.version}),k=Y.encode(`trailer
|
|
52
|
+
<<`),n=-1;for(let L=B.length-256;L<B.length-k.length;L++){if(L<0)continue;let O=!0;for(let w=0;w<k.length;w++)if(B[L+w]!==k[w]){O=!1;break}if(O){n=L;break}}if(n<0)$:for(let L=0;L<B.length-k.length;L++){for(let O=0;O<k.length;O++)if(B[L+O]!==k[O])continue $;n=L;break}if(n<0)throw new M("pdf/crypto/enc-writer/no-trailer","base writer output did not contain a trailer");let h=Y.encode(` >>
|
|
53
|
+
`),d=-1;for(let L=n;L<B.length-h.length;L++){let O=!0;for(let w=0;w<h.length;w++)if(B[L+w]!==h[w]){O=!1;break}if(O){d=L;break}}if(d<0)throw new M("pdf/crypto/enc-writer/no-trailer-close","base writer output did not contain a closing trailer dict");let o=Y.encode(` /Encrypt ${T.encryptRef.num} ${T.encryptRef.gen|0} R`),_=B.subarray(0,d),f=B.subarray(d);return U([_,o,f])}return{writeEncryptedDocument:q}}}),I0({name:"pdfSigOids",dependencies:["asn1Oid"],factory:function(i){let A=["2.16.840.1.101.3.4.2.1","2.16.840.1.101.3.4.2.2","2.16.840.1.101.3.4.2.3","1.3.14.3.2.26"],D={};for(let q of A){let Y=i.lookup(q);if(Y)D[q]=Y.name}let F=Object.freeze(D),I=[["1.2.840.113549.1.1.1","rsa"],["1.2.840.113549.1.1.11","rsa"],["1.2.840.113549.1.1.12","rsa"],["1.2.840.113549.1.1.13","rsa"],["1.2.840.113549.1.1.10","rsa-pss"],["1.2.840.10045.2.1","ecc"],["1.2.840.10045.4.3.2","ecc"],["1.2.840.10045.4.3.3","ecc"],["1.2.840.10045.4.3.4","ecc"],["1.3.101.112","ed25519"]],P={};for(let[q,Y]of I)if(i.lookup(q))P[q]=Y;let C=Object.freeze(P),M=[["1.2.840.113549.1.1.1","rsa"],["1.2.840.10045.2.1","ecc"],["1.3.101.112","ed25519"],["1.3.101.113","ed448"]],j={};for(let[q,Y]of M)if(i.lookup(q))j[q]=Y;let W=Object.freeze(j),G={"1.2.840.113549.1.1.5":"sha1WithRSAEncryption","1.2.840.113549.1.1.11":"sha256WithRSAEncryption","1.2.840.113549.1.1.12":"sha384WithRSAEncryption","1.2.840.113549.1.1.13":"sha512WithRSAEncryption","1.2.840.113549.1.1.10":"rsassa-pss","1.2.840.10045.4.3.2":"ecdsa-with-SHA256","1.2.840.10045.4.3.3":"ecdsa-with-SHA384","1.2.840.10045.4.3.4":"ecdsa-with-SHA512","1.3.101.112":"ed25519","1.3.101.113":"ed448"};for(let q of Object.keys(G))if(!i.lookup(q))delete G[q];let H=Object.freeze(G),X="1.2.840.113549.1.9.16.1.4",J="1.2.840.113549.1.9.16.2.14";function z(q){let Y=i.lookup(q);if(Y&&Y.category==="x509-dn")return Y.shortName;if(q==="1.2.840.113549.1.9.1")return"E";return q}function V(q){return F[q]||null}function Q(q){return C[q]||null}function Z(q){return W[q]||null}function $(q){return H[q]||null}return{DIGEST_OIDS:F,SIG_DISPATCH_OIDS:C,KEY_ALG_OIDS:W,SIG_ALG_OIDS_VERBOSE:H,OID_TST_INFO:X,OID_AA_TIMESTAMP:J,lookupDigest:V,lookupSigAlg:Q,lookupKeyAlg:Z,lookupSigVerbose:$,shortOid:z}}}),I0({name:"pdfByteRange",dependencies:["pdfErrors"],factory:function(i){let{ParseError:A}=i,D=new Uint8Array([47,67,111,110,116,101,110,116,115]),F=new Uint8Array([101,110,100,111,98,106]);function I(H,X,J,z){let V=X.length,Q=z-V;$:for(let Z=J;Z<=Q;Z++){for(let $=0;$<V;$++)if(H[Z+$]!==X[$])continue $;return Z}return-1}function P(H,X){let J=I(H,F,X,H.length);return J<0?H.length:J}function C(H){return H===0||H===9||H===10||H===12||H===13||H===32}function M(H,X,J,z){if(!(H instanceof Uint8Array))throw new A("pdf/sig/byterange/bad-input","documentBytes must be a Uint8Array");let V=H.length;if(!Number.isInteger(X)||X<0||X>V)throw new A("pdf/sig/byterange/bad-offset","contentsOffset out of range",{context:{contentsOffset:X,total:V}});if(!Number.isInteger(J)||J<0)throw new A("pdf/sig/byterange/bad-length","contentsLength must be a non-negative integer",{context:{contentsLength:J}});let Q=X+J;if(Q>V)throw new A("pdf/sig/byterange/overflow","/Contents extends past end of document",{context:{end:Q,total:V}});if(z&&z.token){let Z=z.token.offset,$=z.token.length,q=Z+$;if(!Number.isInteger(Z)||!Number.isInteger($)||Z!==X-1||q!==Q+1||Z<0||q>V||H[Z]!==60||H[q-1]!==62)throw new A("pdf/sig/byterange/bad-token",'token span must be the "<…>" token enclosing the '+"/Contents hex digits",{context:{token:{offset:Z,length:$},contentsOffset:X,contentsLength:J}});return[0,Z,q,V-q]}return[0,X,Q,V-Q]}function j(H,X){if(!(H instanceof Uint8Array))throw new A("pdf/sig/byterange/bad-input","documentBytes must be a Uint8Array");if(!X||X.length!==4)throw new A("pdf/sig/byterange/bad-shape","byteRange must have 4 entries",{context:{length:X&&X.length}});let J=X[0]|0,z=X[1]|0,V=X[2]|0,Q=X[3]|0;if(J<0||z<0||V<0||Q<0||J+z>H.length||V+Q>H.length||V<J+z)throw new A("pdf/sig/byterange/inconsistent","byteRange entries inconsistent with documentBytes",{context:{a:J,b:z,c:V,d:Q,total:H.length}});let Z=new Uint8Array(z+Q);return Z.set(H.subarray(J,J+z),0),Z.set(H.subarray(V,V+Q),z),Z}function W(H,X,J){if(!(H instanceof Uint8Array))throw new A("pdf/sig/byterange/bad-input","documentBytes must be a Uint8Array");if(!X||X.length!==4)throw new A("pdf/sig/byterange/bad-shape","byteRange must have 4 entries",{context:{length:X&&X.length}});let z=[],V=X[0]|0,Q=X[1]|0,Z=X[2]|0,$=X[3]|0,q=H.length;if(V!==0)z.push({code:"pdf/sig/byterange/non-zero-start",message:"first range does not start at offset 0",context:{a:V}});if(Z<V+Q)z.push({code:"pdf/sig/byterange/self-overlap",message:"second range starts before first range ends",context:{firstEnd:V+Q,secondStart:Z}});if(V+Q>q||Z+$>q)z.push({code:"pdf/sig/byterange/out-of-bounds",message:"range extends past document end",context:{firstEnd:V+Q,secondEnd:Z+$,total:q}});let Y=null;if(J&&J.contents){let U=J.contents.offset|0,K=J.contents.length|0,T=U-1,B=U+K+1;if(V+Q===T&&Z===B)Y="token";else if(V+Q===U&&Z===U+K)Y="digits";if(Y===null&&V+Q!==T)z.push({code:"pdf/sig/byterange/gap-start-mismatch",message:"first range end does not align with /Contents literal start",context:{firstEnd:V+Q,expected:T}});if(Y===null&&Z!==B)z.push({code:"pdf/sig/byterange/gap-end-mismatch",message:"second range start does not align with /Contents literal end",context:{secondStart:Z,expected:B}})}if(J&&Array.isArray(J.others))for(let U=0;U<J.others.length;U++){let K=J.others[U];if(!K||K.length!==4)continue;let T=[[V,V+Q],[Z,Z+$]],B=K[0]|0,k=K[1]|0,n=K[2]|0,h=K[3]|0,d=[[B,B+k],[n,n+h]];for(let o of T)for(let _ of d)if(o[0]<_[1]&&_[0]<o[1])z.push({code:"pdf/sig/byterange/cross-overlap",message:"byteRange overlaps with another signature ByteRange",context:{thisRange:o,otherRange:_,otherIndex:U}})}if(J&&J.requireFullCoverage&&Z+$!==q)z.push({code:"pdf/sig/byterange/incomplete-coverage",message:"byteRange does not cover the document up to its end",context:{secondEnd:Z+$,total:q}});return{ok:z.length===0,issues:z,gapForm:Y}}function G(H,X){if(!(H instanceof Uint8Array))throw new A("pdf/sig/byterange/bad-input","documentBytes must be a Uint8Array");if(!Number.isInteger(X)||X<0||X>=H.length)throw new A("pdf/sig/byterange/bad-offset","sigObjectOffset out of range");let J=P(H,X),z=I(H,D,X,J);if(z<0)throw new A("pdf/sig/byterange/no-contents","/Contents key not found in signature object",{context:{sigObjectOffset:X}});let V=z+D.length;while(V<J&&C(H[V]))V++;if(V>=J||H[V]!==60)throw new A("pdf/sig/byterange/contents-not-hex","/Contents must be a hex literal");let Q=V+1,Z=Q;while(Z<J&&H[Z]!==62)Z++;if(Z>=J)throw new A("pdf/sig/byterange/contents-unterminated","/Contents hex literal not terminated before endobj");return{offset:Q,length:Z-Q}}return{computeByteRange:M,extractSignedBytes:j,findContentsField:G,auditByteRange:W}}}),I0({name:"pdfSha1",dependencies:["bitArray","utf8"],factory:function(i,A){let D=[1732584193,4023233417,2562383102,271733878,3285377520],F=[1518500249,1859775393,2400959708,3395469782];function I(C){let M,j,W;function G(){return M=D.slice(0),j=[],W=0,z}function H(V){let Q=M[0],Z=M[1],$=M[2],q=M[3],Y=M[4],U=Array(80);for(let K=0;K<16;K++)U[K]=V[K]|0;for(let K=16;K<80;K++){let T=U[K-3]^U[K-8]^U[K-14]^U[K-16];U[K]=T<<1|T>>>31}for(let K=0;K<80;K++){let T,B;if(K<20)T=Z&$|~Z&q,B=F[0];else if(K<40)T=Z^$^q,B=F[1];else if(K<60)T=Z&$|Z&q|$&q,B=F[2];else T=Z^$^q,B=F[3];let k=(Q<<5|Q>>>27)+T+Y+B+U[K]|0;Y=q,q=$,$=Z<<30|Z>>>2|0,Z=Q,Q=k}M[0]=M[0]+Q|0,M[1]=M[1]+Z|0,M[2]=M[2]+$|0,M[3]=M[3]+q|0,M[4]=M[4]+Y|0}function X(V){if(typeof V==="string")V=i.ui8_to_ba(A.toBytes(V));j=i.concat(j,V);let Q=W,Z=W=Q+i.bitLength(V);if(Z>9007199254740991)return console.warn("[crypto] INVALID: sha1: cannot hash more than 2^53 - 1 bits"),!1;let $=new Uint32Array(j),q=0;for(let Y=512+Q-(512+Q&511);Y<=Z;Y+=512)H($.subarray(16*q,16*(q+1))),q+=1;return j.splice(0,16*q),z}function J(){j=i.concat(j,[i.partial(1,1)]);for(let Q=j.length+2;Q&15;Q++)j.push(0);j.push(Math.floor(W/4294967296)),j.push(W|0);while(j.length)H(j.splice(0,16));let V=M;return G(),V}let z={blockSize:512,reset:G,update:X,finalize:J,get _h(){return M},get _buffer(){return j},get _length(){return W}};if(C)M=C._h.slice(0),j=C._buffer.slice(0),W=C._length;else G();return z}function P(C){return I().update(C).finalize()}return{fn:I,hash:P}}}),I0({name:"pdfDssBuilder",dependencies:["pdfErrors","pdfSha1","bitArray"],factory:function(i,A,D){let{ContractError:F}=i;function I(Q){let Z=A.hash(D.ui8_to_ba(Q));return D.ba_to_ui8(Z)}function P(Q){let Z=Q instanceof Date?Q:new Date;function $(q){return(q<10?"0":"")+q}return"(D:"+Z.getUTCFullYear()+$(Z.getUTCMonth()+1)+$(Z.getUTCDate())+$(Z.getUTCHours())+$(Z.getUTCMinutes())+$(Z.getUTCSeconds())+"+00'00')"}function C(Q){let Z="";for(let $=0;$<Q.length;$++){let q=Q[$];Z+=(q<16?"0":"")+q.toString(16).toUpperCase()}return Z}function M(Q){let Z="",$=32768;for(let K=0;K<Q.length;K+=$)Z+=String.fromCharCode.apply(null,Q.subarray(K,Math.min(K+$,Q.length)));let q=[],Y=/(\d+)\s+(\d+)\s+obj\s*<<([\s\S]*?)>>\s*endobj/g,U;while((U=Y.exec(Z))!==null){let K=U[3];if(!/\/Type\s*\/(?:Sig|DocTimeStamp)\b/.test(K))continue;let T=K.match(/\/Contents\s*<([0-9A-Fa-f]*)>/);if(!T)continue;q.push(T[1])}return q}function j(Q,Z){return{type:"ref",num:Q|0,gen:Z|0}}function W(Q){return{type:"int",value:Q|0}}function G(Q){return{type:"name",value:String(Q)}}function H(Q){return{type:"name",value:String(Q)}}function X(Q){return{type:"array",items:Q}}function J(Q){return{type:"dict",entries:Q}}function z(Q,Z){return{type:"stream",dict:J({Type:G(Z)}),raw:Q}}function V(Q){Q=Q||{};let Z=Q.startNum|0;if(!Number.isFinite(Z)||Z<2)throw new F("pdf/dss/bad-startNum","buildDss requires opts.startNum >= 2",{context:{startNum:Z}});let $=Array.isArray(Q.certs)?Q.certs:[],q=Array.isArray(Q.ocsps)?Q.ocsps:[],Y=Array.isArray(Q.crls)?Q.crls:[];for(let _ of $)if(!(_ instanceof Uint8Array))throw new F("pdf/dss/bad-cert","each cert must be a Uint8Array (DER)");for(let _ of q)if(!(_ instanceof Uint8Array))throw new F("pdf/dss/bad-ocsp","each ocsp must be a Uint8Array (DER)");for(let _ of Y)if(!(_ instanceof Uint8Array))throw new F("pdf/dss/bad-crl","each crl must be a Uint8Array (DER)");let U=[],K=Z,T=[];for(let _ of $)T.push(K),U.push({num:K,gen:0,value:z(_,"CertVal")}),K++;let B=[];for(let _ of q)B.push(K),U.push({num:K,gen:0,value:z(_,"OCSPVal")}),K++;let k=[];for(let _ of Y)k.push(K),U.push({num:K,gen:0,value:z(_,"CRLVal")}),K++;let n=Q.vri;if(Q.autoVri&&Q.parentBytes instanceof Uint8Array){let _=M(Q.parentBytes),f=n&&typeof n==="object"?Object.assign({},n):{},L=$.map((R,S)=>S),O=q.map((R,S)=>S),w=Y.map((R,S)=>S),N=Q.vriTime instanceof Date?Q.vriTime:new Date,x=P(N);for(let R of _){let S=new Uint8Array(R.length>>>1);for(let l=0;l<S.length;l++)S[l]=parseInt(R.substr(l*2,2),16);let E=C(I(S));if(f[E])continue;let y={tu:x};if(L.length)y.certs=L;if(O.length)y.ocsps=O;if(w.length)y.crls=w;f[E]=y}n=f}let h=null;if(n&&typeof n==="object"){h={};for(let _ of Object.keys(n)){let f=function(R,S){if(!Array.isArray(R))return null;let E=[];for(let y of R)if(typeof y==="number"){if(y<0||y>=S.length)throw new F("pdf/dss/vri-bad-index","VRI index out of bounds",{context:{index:y}});E.push(j(S[y],0))}else if(y instanceof Uint8Array){let l=K++;U.push({num:l,gen:0,value:z(y,"CertVal")}),E.push(j(l,0))}return X(E)},L=n[_]||{},O={},w=f(L.certs,T),N=f(L.ocsps,B),x=f(L.crls,k);if(w)O.Cert=w;if(N)O.OCSP=N;if(x)O.CRL=x;if(typeof L.tu==="string")O.TU={type:"string",value:new TextEncoder().encode(L.tu)};if(L.ts instanceof Uint8Array){let R=K++;U.push({num:R,gen:0,value:z(L.ts,"TS")}),O.TS=j(R,0)}h[_]=J(O)}}let d={Type:G("DSS")};if(T.length)d.Certs=X(T.map((_)=>j(_,0)));if(B.length)d.OCSPs=X(B.map((_)=>j(_,0)));if(k.length)d.CRLs=X(k.map((_)=>j(_,0)));if(h)d.VRI=J(h);let o=K++;return U.push({num:o,gen:0,value:J(d)}),{updates:U,dssNum:o,lastNum:K-1,certNums:T,ocspNums:B,crlNums:k}}return{buildDss:V,_refObj:j,_intObj:W,_nameObj:G,_strHexObj:H,_arrayObj:X,_dictObj:J,_streamObj:z,_sha1:I,_toHexUpper:C,_scanSignatureContentsHex:M,_pdfDate:P}}}),I0({name:"pdfSecurity",dependencies:["pdfErrors"],factory:function(i){let{EncryptionError:A}=i;function D(J){if(J==null)return;if(J instanceof Uint8Array)return J;if(typeof J==="string"){let z=new Uint8Array(J.length);for(let V=0;V<J.length;V++)z[V]=J.charCodeAt(V)&255;return z}if(Array.isArray(J))return new Uint8Array(J);return}function F(J){if(J==null||typeof J!=="object")throw new A("pdf/crypto/encrypt-dict/bad-input","/Encrypt must be a dictionary");let z=($)=>J instanceof Map?J.get($):J[$],V=z("V"),Q=z("R"),Z=z("Filter");if(V===void 0||Q===void 0)throw new A("pdf/crypto/encrypt-dict/missing-V-R","/Encrypt requires both /V and /R",{context:{V,R:Q}});if(typeof V!=="number"||typeof Q!=="number")throw new A("pdf/crypto/encrypt-dict/bad-V-R-type","/V and /R must be integers",{context:{V,R:Q}});return{V,R:Q,Filter:Z,SubFilter:z("SubFilter"),Length:z("Length"),CF:z("CF"),StmF:z("StmF"),StrF:z("StrF"),EFF:z("EFF"),O:D(z("O")),U:D(z("U")),OE:D(z("OE")),UE:D(z("UE")),Perms:D(z("Perms")),EncryptMetadata:z("EncryptMetadata")!==!1,P:z("P"),raw:J}}function I(J){if(J==null)return null;if(typeof J==="string")return J;if(typeof J==="object"&&J.type==="name")return J.value;return null}function P(J,z){if(J==null)return;if(J instanceof Map)return J.get(z);if(typeof J==="object"&&J.type==="dict"&&J.entries)return J.entries[z];if(typeof J==="object")return J[z];return}function C(J){let z=I(J.StmF)||"Identity",V=I(J.StrF)||"Identity",Q=I(J.EFF)||z,Z;if(z==="Identity")if(V==="Identity")Z="Identity";else Z=M(J,V);else Z=M(J,z);let $=V==="Identity"?"Identity":M(J,V),q=Q==="Identity"?"Identity":M(J,Q);return{method:Z,strMethod:$,effMethod:q}}function M(J,z){let V=J.CF,Q=P(V,z);if(!Q)throw new A("pdf/crypto/v4/missing-cf-entry","V=4 requires /CF /"+z+" entry",{context:{filterName:z}});let Z=I(P(Q,"CFM"));if(Z!=="AESV2"&&Z!=="V2")throw new A("pdf/crypto/v4/bad-cfm","V=4 CFM must be AESV2 or V2",{context:{cfm:Z}});return Z}function j(J){let z=I(J.StmF)||"Identity",V=I(J.StrF)||"Identity",Q=I(J.EFF)||z,Z=z==="Identity"?"Identity":W(J,z),$=V==="Identity"?"Identity":W(J,V),q=Q==="Identity"?"Identity":W(J,Q);return{method:Z,strMethod:$,effMethod:q}}function W(J,z){let V=J.CF,Q=P(V,z);if(!Q)return"AESV3";let Z=I(P(Q,"CFM"));if(Z==null)return"AESV3";if(Z!=="AESV3"&&Z!=="AESV4")throw new A("pdf/crypto/v5/bad-cfm","V=5 CFM must be AESV3 or AESV4",{context:{cfm:Z}});return Z}function G(J,z){if(!J||typeof J!=="object")throw new A("pdf/crypto/security/bad-typed","selectHandler requires a typed /Encrypt");let{V,R:Q}=J;if(V<4)throw new A("pdf/crypto/unsupported-version","Security Handler V="+V+" is not supported at this level",{context:{V,R:Q}});if(V===4){if(Q!==4)throw new A("pdf/crypto/unsupported-version","Standard handler V=4 requires R=4",{context:{V,R:Q}});if(!z||!z.v4)throw new A("pdf/crypto/missing-handler","no v4 handler provided");let Z=C(J);return{handler:z.v4,revision:4,method:Z.method,strMethod:Z.strMethod,effMethod:Z.effMethod}}if(V!==5)throw new A("pdf/crypto/unsupported-version","Security Handler V="+V+" is unknown",{context:{V,R:Q}});if(Q===5){if(!z||!z.v5)throw new A("pdf/crypto/missing-handler","no v5 handler provided");let Z=j(J);return{handler:z.v5,revision:5,method:Z.method,strMethod:Z.strMethod,effMethod:Z.effMethod}}if(Q===6){if(!z||!z.v6)throw new A("pdf/crypto/missing-handler","no v6 handler provided");let Z=j(J);return{handler:z.v6,revision:6,method:Z.method,strMethod:Z.strMethod,effMethod:Z.effMethod}}throw new A("pdf/crypto/unsupported-version","Standard handler revision R="+Q+" is not supported",{context:{V,R:Q}})}function H(J){if(!J||J.type!=="stream")return!1;let z=J.dict;if(!z||z.type!=="dict"||!z.entries)return!1;let V=z.entries.Type;if(!V)return!1;if(V.type==="name")return V.value==="EmbeddedFile";if(typeof V==="string")return V==="EmbeddedFile";return!1}function X(J,z,V,Q,Z,$){if(!J||typeof J!=="object"||!J.handler)throw new A("pdf/crypto/security/bad-selection","dispatchDecryptStream requires a selection from selectHandler");let q=J.handler,Y=H(z);if((Y?J.effMethod:J.method)==="Identity")return $;if(Y){let K={method:J.effMethod};if(typeof q.decryptEmbeddedFile==="function")return q.decryptEmbeddedFile(K,V,Q,Z,$);if(typeof q.decryptStream==="function")return q.decryptStream(K,V,Q,Z,$);throw new A("pdf/crypto/security/no-eff","selected handler lacks decryptEmbeddedFile and decryptStream")}if(typeof q.decryptStream!=="function")throw new A("pdf/crypto/security/no-stream","selected handler lacks decryptStream");let U={method:J.method};return q.decryptStream(U,V,Q,Z,$)}return{typeEncryptDict:F,selectHandler:G,isEmbeddedFileStream:H,dispatchDecryptStream:X}}}),I0({name:"pdfSign",dependencies:["pdfErrors","pdfSigOids","pdfByteRange","pdfDssBuilder","pdfIncrementalWriter","pdfParser","asn1","rsa","ecc","ed25519","sha256","sha384","sha512","bitArray","pdfDocument","pdfSecurity","pdfStandardV4","pdfStandardV5","pdfStandardV6"],factory:function(i,A,D,F,I,P,C,M,j,W,G,H,X,J,z,V,Q,Z,$){let{EncryptionError:q,ContractError:Y}=i,{computeByteRange:U}=D,K={sha256:{mod:G,oid:"2.16.840.1.101.3.4.2.1",len:32},sha384:{mod:H,oid:"2.16.840.1.101.3.4.2.2",len:48},sha512:{mod:X,oid:"2.16.840.1.101.3.4.2.3",len:64}};function T(c){let a=c.replace(/[^0-9a-fA-F]/g,""),s=new Uint8Array(a.length>>>1);for(let r=0;r<s.length;r++)s[r]=parseInt(a.substr(r*2,2),16);return s}function B(c){let a="";for(let s=0;s<c.length;s++)a+=c[s].toString(16).padStart(2,"0").toUpperCase();return a}function k(c,a){let s=new c.fn;s.update(J.ui8_to_ba(a));let r=s.finalize();if(r instanceof Uint8Array)return r;return J.ba_to_ui8(r)}function n(c){if(c instanceof Uint8Array)return c;if(typeof c!=="string")throw new Y("pdf/sign/bad-input","cert/privateKey must be Uint8Array (DER) or PEM string");let a=c.replace(/-----BEGIN [^-]+-----/g,"").replace(/-----END [^-]+-----/g,"").replace(/\s+/g,""),s=typeof atob==="function"?atob(a):Buffer.from(a,"base64").toString("binary"),r=new Uint8Array(s.length);for(let G0=0;G0<s.length;G0++)r[G0]=s.charCodeAt(G0);return r}function h(c){let a=C.parseOne(c,0);if(!a)throw new Y("pdf/sign/cert-parse","failed to parse cert top-level SEQUENCE");let s=C.parseChildren(a.value);if(!s||s.length<1)throw new Y("pdf/sign/cert-parse","cert lacks tbsCertificate");let r=C.parseChildren(s[0].value);if(!r)throw new Y("pdf/sign/cert-parse","failed to parse TBSCertificate fields");let G0=0;if(r[G0]&&r[G0].tag===160)G0++;let j0=r[G0],L0=r[G0+1],H0=r[G0+2];if(!j0||!H0)throw new Y("pdf/sign/cert-parse","failed to locate serialNumber/issuer");let C0=d(2,j0.value),K0=d(48,H0.value);return{serialDer:C0,issuerDer:K0}}function d(c,a){let s=o(a.length),r=new Uint8Array(1+s.length+a.length);return r[0]=c,r.set(s,1),r.set(a,1+s.length),r}function o(c){if(c<128)return Uint8Array.of(c);if(c<=255)return Uint8Array.of(129,c);if(c<=65535)return Uint8Array.of(130,c>>>8&255,c&255);if(c<=16777215)return Uint8Array.of(131,c>>>16&255,c>>>8&255,c&255);return Uint8Array.of(132,c>>>24&255,c>>>16&255,c>>>8&255,c&255)}function _({certDer:c,sigBytes:a,hashAlg:s,signatureAlg:r,signedAttrsTlv:G0,unsignedAttrsTlv:j0}){let L0=K[s];if(!L0)throw new Y("pdf/sign/unknown-hash","unknown hashAlg: "+s);let{issuerDer:H0,serialDer:C0}=h(c),K0=C.encodeSequence([C.encodeOid(L0.oid),C.encodeNull()]),R0=C.encodeSet([K0]),M0=C.encodeSequence([C.encodeOid("1.2.840.113549.1.7.1")]),w0=f(160,c),T0=C.encodeSequence([H0,C0]),P0;if(r==="rsa-pss"){let h0=C.encodeSequence([C.encodeOid(L0.oid),C.encodeNull()]),c0=C.encodeSequence([C.encodeOid(L0.oid),C.encodeNull()]),b0=C.encodeSequence([C.encodeOid("1.2.840.113549.1.1.8"),c0]),y0=C.encodeInteger(L0.len),f0=C.encodeSequence([C.encodeExplicit(0,h0),C.encodeExplicit(1,b0),C.encodeExplicit(2,y0)]);P0=C.encodeSequence([C.encodeOid("1.2.840.113549.1.1.10"),f0])}else if(r==="ecdsa"){let h0=s==="sha256"?"1.2.840.10045.4.3.2":s==="sha384"?"1.2.840.10045.4.3.3":"1.2.840.10045.4.3.4";P0=C.encodeSequence([C.encodeOid(h0)])}else if(r==="ed25519")P0=C.encodeSequence([C.encodeOid("1.3.101.112")]);else throw new Y("pdf/sign/unknown-sigalg","unsupported signatureAlg: "+r);let _0=[C.encodeInteger(1),T0,K0];if(G0){let h0=new Uint8Array(G0.length);h0.set(G0),h0[0]=160,_0.push(h0)}if(_0.push(P0),_0.push(C.encodeOctetString(a)),j0){let h0=new Uint8Array(j0.length);h0.set(j0),h0[0]=161,_0.push(h0)}let O0=C.encodeSequence(_0),E0=C.encodeSet([O0]),l0=C.encodeSequence([C.encodeInteger(1),R0,M0,w0,E0]);return C.encodeSequence([C.encodeOid("1.2.840.113549.1.7.2"),C.encodeExplicit(0,l0)])}function f(c,a){let s=o(a.length),r=new Uint8Array(1+s.length+a.length);return r[0]=c,r.set(s,1),r.set(a,1+s.length),r}let L=2147483647,O="["+Array(4).fill(L).join(" ")+"]";function w(c){let a;try{a=I.readBaseTrailer(c)}catch(s){let r=s&&s.code;if(r==="pdf/incremental/no-startxref"||r==="pdf/xref/no-startxref")throw new Y("pdf/sign/no-startxref","base PDF has no startxref",{context:{cause:r}});if(r==="pdf/xref/bad-startxref")throw new Y("pdf/sign/bad-startxref","startxref does not parse",{context:{cause:r}});throw s}if(!a.trailer||!Number.isInteger(a.trailer.size))throw new Y("pdf/sign/no-trailer","no cross-reference section of the base supplies a usable "+"/Size and /Root — cannot allocate or chain an update");return a.trailer}function N(c){return Math.max(c.size,1)}function x(c){if(!c||typeof c!=="object")return c;switch(c.type){case"int":case"real":case"bool":case"string":return c.value;case"dict":{let a={};for(let s of Object.keys(c.entries))a[s]=x(c.entries[s]);return a}case"array":return c.items.map(x);default:return c}}function R(c,a){return new Y("pdf/sign/encrypted-unsupported",c,{context:a})}function S(c,a,s){if(s=s||{},!V||!Q||!Z||!$)throw new Y("pdf/sign/no-security-handler","signing an encrypted base requires the pdfSecurity, pdfStandardV4, pdfStandardV5 and pdfStandardV6 deps");if(s.password===void 0||s.password===null)throw new Y("pdf/sign/encrypted-password-required","the base is encrypted; pass opts.password (use '' for an empty user password)");let r=z.readDocument(c,{allowEncrypted:!0}),G0=r.trailer.encrypt,j0=G0&&G0.type==="dict"?G0:r._raw.resolve($0(G0.num,G0.gen)),L0;try{L0=V.typeEncryptDict(j0&&j0.type==="dict"?x(j0):null)}catch(O0){throw R("the base /Encrypt dictionary cannot be read",{cause:O0&&O0.code})}let H0=L0.Filter&&L0.Filter.type==="name"?L0.Filter.value:L0.Filter;if(H0!=="Standard")throw R("only the standard security handler (/Filter /Standard) is supported",{filter:H0});let{V:C0,R:K0}=L0;if(C0<4)throw R("RC4 encryption (V < 4) is not supported; only AES bases can be signed",{V:C0,R:K0,reason:"rc4"});let R0;try{R0=V.selectHandler(L0,{v4:Q,v5:Z,v6:$})}catch(O0){throw R("the base encryption is not supported",{V:C0,R:K0,cause:O0&&O0.code})}for(let O0 of[R0.strMethod,R0.method]){if(O0==="V2")throw R("an RC4 crypt filter (CFM /V2) is not supported; only AES bases can be signed",{V:C0,R:K0,reason:"rc4"});if(O0==="AESV4")throw R("AES-GCM encryption (CFM /AESV4, ISO/TS 32003) is not supported",{V:C0,R:K0,reason:"aes-gcm"})}let M0=a.id?a.id[0]:void 0;if(C0===4&&!(M0 instanceof Uint8Array))throw R("a V=4 base needs the trailer /ID to derive its key",{V:C0,R:K0,reason:"no-id"});let w0=Object.assign({},L0,{idFirst:M0,method:R0.strMethod}),T0=R0.handler.tryPassword(w0,s.password,!0),P0=!!T0.fileEncryptionKey;if(!P0)T0=R0.handler.tryPassword(w0,s.password,!1);if(!T0.fileEncryptionKey)throw new Y("pdf/sign/encrypted-bad-password","opts.password is neither the owner nor the user password of the base");if(!P0){let O0=L0.P|0;if(!(O0&32&&O0&8))throw new Y("pdf/sign/encrypted-permission-denied","the user password does not grant the permissions a signature field needs (modify + annotations/forms); pass the owner password",{context:{P:O0,required:["modify","annot"]}})}let _0=s.randomBytes||(globalThis.crypto&&typeof globalThis.crypto.getRandomValues==="function"?(O0)=>globalThis.crypto.getRandomValues(new Uint8Array(O0)):null);if(!_0)throw new q("pdf/sign/no-random","no random source for the string IV: pass opts.randomBytes (crypto.getRandomValues is unavailable)");return{typedForPw:w0,handler:R0.handler,strMethod:R0.strMethod,stmMethod:R0.method,fek:T0.fileEncryptionKey,randomBytes:_0}}let E=132,y=3,l="Signature",J0=64,$0=(c,a)=>({type:"ref",num:c,gen:a|0}),Q0=(c)=>({type:"name",value:c});function e(c){if(!c||c.type!=="string"||!(c.value instanceof Uint8Array))return null;let a=c.value;if(a.length>=2&&a[0]===254&&a[1]===255){let s="";for(let r=2;r+1<a.length;r+=2)s+=String.fromCharCode(a[r]<<8|a[r+1]);return s}return t(a)}function Y0(c,a){let s=new Set;function r(G0,j0){if(!G0||G0.type!=="ref"||j0>J0)return null;let L0=G0.num+":"+G0.gen;if(s.has(L0))return null;s.add(L0);let H0=a(G0);if(!H0||H0.type!=="dict")return null;let C0=H0.entries.Type,K0=H0.entries.Kids;if(C0&&C0.type==="name"&&C0.value==="Page"||!K0&&!C0)return $0(G0.num,G0.gen);let R0=K0&&K0.type==="array"?K0.items:[];for(let M0 of R0){let w0=r(M0,j0+1);if(w0)return w0}return null}return r(c.entries.Pages,0)}function v(c,a,s,r,G0){let j0=c[a];if(j0&&j0.type==="ref"){let L0=r(j0);if(L0&&L0.type==="array")return G0.set(j0.num,{num:j0.num,gen:j0.gen|0,value:{type:"array",items:L0.items.concat([s])}}),L0.items}else if(j0&&j0.type==="array")return c[a]={type:"array",items:j0.items.concat([s])},j0.items;return c[a]={type:"array",items:[s]},[]}function q0(){return{type:"dict",entries:{Type:{type:"name",value:"DeveloperExtensions"},BaseVersion:{type:"name",value:"2.0"},ExtensionLevel:{type:"int",value:32002},ExtensionRevision:{type:"string",value:Uint8Array.from(":2022",(c)=>c.charCodeAt(0))},URL:{type:"string",value:Uint8Array.from("https://www.iso.org/standard/45875.html",(c)=>c.charCodeAt(0))}}}}function U0(c){let a=c.entries.ExtensionLevel;return!!a&&a.type==="int"&&a.value===32002}function g(c,a,s,r){if(!r||r.strMethod==="Identity"||!a||a.num===s.num&&(a.gen|0)===(s.gen|0))return c;let{handler:G0,typedForPw:j0,fek:L0,randomBytes:H0}=r;function C0(K0){if(!K0||typeof K0!=="object")return K0;switch(K0.type){case"string":{if(!(K0.value instanceof Uint8Array))return K0;let R0;try{R0=G0.decryptString(j0,L0,a.num,a.gen|0,K0.value)}catch(M0){return K0}return{type:"string",syntax:"hex",value:G0.encryptString(j0,L0,s.num,s.gen|0,R0,H0(16))}}case"array":return{type:"array",items:K0.items.map(C0)};case"dict":{let R0={};for(let M0 of Object.keys(K0.entries))R0[M0]=C0(K0.entries[M0]);return{type:"dict",entries:R0}}default:return K0}}return C0(c)}function u(c,a,s,r){let G0=()=>s?V0(q0(),r.num,r.gen|0,s):q0(),j0=(T0,P0)=>T0&&T0.type==="ref"?{value:a(T0),holder:T0}:{value:T0,holder:P0},L0=(T0)=>T0===null||T0===void 0||T0.type==="null",H0=(T0)=>g(T0.value,T0.holder,r,s),C0=(T0)=>new Y("pdf/sign/bad-extensions","the Catalog /Extensions is not an extensions dictionary whose ISO_ entry is a developer extensions dictionary or an array of them (ISO 32000-2 section 7.12)",{context:{shape:L0(T0)?"null":T0.type}}),K0=j0(c.Extensions,null);if(L0(K0.value))return c.Extensions={type:"dict",entries:{ISO_:G0()}},!0;if(K0.value.type!=="dict")throw C0(K0.value);let R0=j0(K0.value.entries.ISO_,K0.holder),M0;if(L0(R0.value))M0=G0();else if(R0.value.type==="dict"){if(U0(R0.value))return!1;M0={type:"array",items:[H0(R0),G0()]}}else if(R0.value.type==="array"){let T0=[],P0=!1;for(let _0 of R0.value.items){let O0=j0(_0,R0.holder);if(L0(O0.value)||O0.value.type!=="dict")throw C0(O0.value);if(U0(O0.value))P0=!0;T0.push(H0(O0))}if(P0)return!1;T0.push(G0()),M0={type:"array",items:T0}}else throw C0(R0.value);let w0={};for(let T0 of Object.keys(K0.value.entries))if(T0!=="ISO_")w0[T0]=H0({value:K0.value.entries[T0],holder:K0.holder});return w0.ISO_=M0,c.Extensions={type:"dict",entries:w0},!0}function m(c,a,s){let r=(L0)=>{let H0=typeof L0==="string"?/^\s*(\d+)\.(\d+)/.exec(L0):null;return H0?[parseInt(H0[1],10),parseInt(H0[2],10)]:null},G0=c.Version;if(G0&&G0.type==="ref")G0=a(G0);let j0=(G0&&G0.type==="name"?r(G0.value):null)||r(s);if(j0&&j0[0]>=2)return!1;return c.Version={type:"name",value:"2.0"},!0}function p(c,a,s,r,G0,j0){if(!(z&&typeof z.readDocument==="function"))throw new Y("pdf/sign/no-document-reader","signing requires the pdfDocument dep (the Catalog and page 1 are resolved through readDocument)");let L0=a.encrypt?j0||S(c,a,G0):null,H0=z.readDocument(c,L0?{allowEncrypted:!0}:void 0),C0=H0._raw.resolve,K0=H0.trailer.root,R0=C0($0(K0.num,K0.gen));if(!R0||R0.type!=="dict")throw new Y("pdf/sign/catalog-not-found",`the trailer /Root (object ${K0.num} ${K0.gen}) does not resolve to a Catalog dictionary`,{context:{root:K0}});let M0=new Map,w0=$0(r,0),T0=Object.assign({},R0.entries),P0=!1;if(G0&&G0.algorithm==="ed25519"){let v0={num:K0.num,gen:K0.gen|0};if(P0=u(T0,C0,L0,v0),m(T0,C0,H0.version))P0=!0}let _0=T0.AcroForm,O0=null,E0=null;if(_0&&_0.type==="ref"){let v0=C0(_0);if(v0&&v0.type==="dict")O0=_0,E0=v0}else if(_0&&_0.type==="dict")E0=_0;let l0=Object.assign({},E0?E0.entries:{}),h0=l0.Fields,c0=h0&&h0.type==="ref"&&(C0(h0)||{}).type==="array"?h0:O0||K0,b0=v(l0,"Fields",w0,C0,M0);l0.SigFlags={type:"int",value:y};let y0={type:"dict",entries:l0};if(O0){if(M0.set(O0.num,{num:O0.num,gen:O0.gen|0,value:y0}),P0)M0.set(K0.num,{num:K0.num,gen:K0.gen|0,value:{type:"dict",entries:T0}})}else T0.AcroForm=y0,M0.set(K0.num,{num:K0.num,gen:K0.gen|0,value:{type:"dict",entries:T0}});let f0=new Set;for(let v0 of b0){let d0=v0&&v0.type==="ref"?C0(v0):v0,n0=d0&&d0.type==="dict"?d0.entries.T:null;if(L0&&L0.strMethod!=="Identity"&&n0&&n0.type==="string"&&n0.value instanceof Uint8Array){let t0=v0.type==="ref"?v0:c0;try{n0={type:"string",value:L0.handler.decryptString(L0.typedForPw,L0.fek,t0.num,t0.gen|0,n0.value)}}catch(N$){n0=null}}let s0=e(n0);if(s0!==null)f0.add(s0)}let m0=1;while(f0.has(l+m0))m0++;let u0=l+m0,g0=Y0(R0,C0);if(g0){let v0=C0(g0),d0=Object.assign({},v0.entries),n0=d0.Annots&&d0.Annots.type==="ref"&&(C0(d0.Annots)||{}).type==="array";if(v(d0,"Annots",w0,C0,M0),!n0)M0.set(g0.num,{num:g0.num,gen:g0.gen,value:{type:"dict",entries:d0}})}let p0=new TextEncoder().encode(u0),i0={type:"string",value:p0};if(L0&&L0.strMethod!=="Identity"){let v0=L0.randomBytes(16);i0={type:"string",syntax:"hex",value:L0.handler.encryptString(L0.typedForPw,L0.fek,r,0,p0,v0)}}let a0={type:"dict",entries:{Type:Q0("Annot"),Subtype:Q0("Widget"),FT:Q0("Sig"),T:i0,V:$0(s,0),Rect:{type:"array",items:[0,0,0,0].map((v0)=>({type:"int",value:v0}))},F:{type:"int",value:E}}};if(g0)a0.entries.P=g0;return M0.set(r,{num:r,gen:0,value:a0}),{updates:Array.from(M0.values()),fieldNum:r,fieldName:u0}}function b(c,a,s,r,G0,j0){if(s=s||"adbe.pkcs7.detached",!I||typeof I.appendIncrementalWithOffsets!=="function"||typeof I.readBaseTrailer!=="function")throw new Y("pdf/sign/no-incremental-writer","signing requires the pdfIncrementalWriter dep");let L0=w(c),H0=N(L0);if(L0.encrypt&&j0===void 0)j0=S(c,L0,G0);let C0=p(c,L0,H0,H0+1,G0,j0),K0=r?"DocTimeStamp":"Sig",R0=(p0)=>({type:"name",value:p0}),M0={type:"dict",entries:{Type:R0(K0),Filter:R0("Adobe.PPKLite"),SubFilter:R0(s),ByteRange:{type:"array",items:[0,1,2,3].map(()=>({type:"int",value:L}))},Contents:{type:"string",syntax:"hex",value:new Uint8Array(a)}}},w0=[{num:H0,gen:0,value:M0}];w0.push(...C0.updates);let T0=I.appendIncrementalWithOffsets(c,{updates:w0,root:L0.root,info:L0.info,id:L0.id,encrypt:L0.encrypt}),P0=T0.bytes,_0=T0.offsets.get(H0),O0=T0.xrefOffset;for(let p0 of T0.offsets.values())if(p0>_0&&p0<O0)O0=p0;let E0=t(P0.subarray(_0,O0)),l0="/ByteRange "+O,h0="/Contents <",c0=E0.indexOf(l0),b0=E0.indexOf(h0),y0=a*2;if(!E0.startsWith(`${H0} 0 obj`)||c0<0||b0<0||E0[b0+h0.length+y0]!==">")throw new Y("pdf/sign/br-placeholder-missing","ByteRange / Contents placeholder not found in the signature object",{context:{sigObjNum:H0,sigObjStart:_0}});let f0=_0+b0+h0.length,m0=U(P0,f0,y0,{token:{offset:f0-1,length:y0+2}}),u0=`[${m0[0]} ${m0[1]} ${m0[2]} ${m0[3]}]`,g0;if(u0.length<O.length)g0=u0.slice(0,u0.length-1)+" ".repeat(O.length-u0.length)+"]";else if(u0.length===O.length)g0=u0;else throw new Y("pdf/sign/br-overflow","real ByteRange does not fit in 10-digit placeholder");return P0.set(new TextEncoder().encode(g0),_0+c0+11),{bytes:P0,contentsOffset:f0,contentsLength:y0,byteRange:m0,sigObjNum:H0,fieldObjNum:C0.fieldNum,fieldName:C0.fieldName,encrypted:!!L0.encrypt}}function t(c){let a="",s=32768;for(let r=0;r<c.length;r+=s)a+=String.fromCharCode.apply(null,c.subarray(r,Math.min(r+s,c.length)));return a}function Z0({algorithm:c,privateKey:a,message:s,hashMod:r}){if(c==="rsa-pss"){if(!M||typeof M.pssSign!=="function")throw new q("pdf/sign/no-rsa","fw rsa.pssSign unavailable");if(!a||!a.n||!a.e||!a.d)throw new Y("pdf/sign/bad-rsa-key","RSA privateKey requires { n, e, d }");let G0=M.pssSign(a,s,r);if(!G0)throw new q("pdf/sign/rsa-failed","rsa.pssSign returned false");return G0}if(c==="ecdsa"){if(!j||!j.ecdsa)throw new q("pdf/sign/no-ecc","fw ecc.ecdsa unavailable");if(!a||!a.curve||!a.secretKey)throw new Y("pdf/sign/bad-ecdsa-key","ECDSA privateKey requires { curve, secretKey: <ecc.ecdsa.secretKey> }");let G0=r.hash(J.ui8_to_ba(s)),j0=J.ba_to_ui8(a.secretKey.sign(G0)),L0=j0.length>>>1;return C.encodeSequence([C.encodeInteger(j0.subarray(0,L0)),C.encodeInteger(j0.subarray(L0))])}if(c==="ed25519"){if(!W||typeof W.sign!=="function")throw new q("pdf/sign/no-ed25519","fw ed25519.sign unavailable");if(!(a instanceof Uint8Array)||a.length!==64)throw new Y("pdf/sign/bad-ed25519-key","Ed25519 privateKey must be 64 bytes (seed || pub)");let G0=W.sign(a,s);if(!G0)throw new q("pdf/sign/ed25519-failed","ed25519.sign returned false");return G0}throw new Y("pdf/sign/unknown-algorithm","unsupported algorithm: "+c)}function X0({messageDigest:c,certDigestSha256:a,signingTime:s}){let r=[];r.push(C.encodeSequence([C.encodeOid("1.2.840.113549.1.9.3"),C.encodeSet([C.encodeOid("1.2.840.113549.1.7.1")])])),r.push(C.encodeSequence([C.encodeOid("1.2.840.113549.1.9.4"),C.encodeSet([C.encodeOctetString(c)])]));let G0=s instanceof Date?s:new Date,j0=F0(G0);r.push(C.encodeSequence([C.encodeOid("1.2.840.113549.1.9.5"),C.encodeSet([j0])]));let L0=C.encodeSequence([C.encodeOctetString(a)]),H0=C.encodeSequence([C.encodeSequence([L0])]);return r.push(C.encodeSequence([C.encodeOid("1.2.840.113549.1.9.16.2.47"),C.encodeSet([H0])])),C.encodeSet(z0(r))}function z0(c){return c.slice().sort((a,s)=>{let r=Math.min(a.length,s.length);for(let G0=0;G0<r;G0++)if(a[G0]!==s[G0])return a[G0]-s[G0];return a.length-s.length})}function F0(c){let a=String(c.getUTCFullYear()%100).padStart(2,"0"),s=String(c.getUTCMonth()+1).padStart(2,"0"),r=String(c.getUTCDate()).padStart(2,"0"),G0=String(c.getUTCHours()).padStart(2,"0"),j0=String(c.getUTCMinutes()).padStart(2,"0"),L0=String(c.getUTCSeconds()).padStart(2,"0"),H0=a+s+r+G0+j0+L0+"Z",C0=new TextEncoder().encode(H0),K0=new Uint8Array(2+C0.length);return K0[0]=23,K0[1]=C0.length,K0.set(C0,2),K0}function N0(c){let a=C.encodeSequence([C.encodeOid("1.2.840.113549.1.9.16.2.14"),C.encodeSet([c])]);return C.encodeSet([a])}function x0(c,a){if(!(c instanceof Uint8Array))throw new Y("pdf/sign/bad-input","pdfBytes must be a Uint8Array");if(!a||typeof a!=="object")throw new Y("pdf/sign/bad-opts","opts object required");let s=a.level||"B";if(s!=="B"&&s!=="T"&&s!=="LT"&&s!=="LTA")throw new Y("pdf/sign/level-not-implemented","unknown PAdES level: "+s,{context:{level:s}});if((s==="LT"||s==="LTA")&&!F)throw new Y("pdf/sign/no-dss-builder","levels LT/LTA require the pdfDssBuilder dep",{context:{level:s}});if(!I)throw new Y("pdf/sign/no-incremental-writer","signing requires the pdfIncrementalWriter dep",{context:{level:s}});if(!(z&&typeof z.readDocument==="function"))throw new Y("pdf/sign/no-document-reader","signing requires the pdfDocument dep (the Catalog and page 1 are resolved through readDocument)",{context:{level:s}});let r=a.algorithm;if(!r)throw new Y("pdf/sign/no-algorithm","opts.algorithm required (rsa-pss|ecdsa|ed25519)");let G0=a.hashAlg||(r==="ed25519"?"sha512":"sha256"),j0=K[G0];if(!j0)throw new Y("pdf/sign/bad-hash-alg","unknown hashAlg: "+G0);if(r==="ed25519"&&G0!=="sha512")throw new Y("pdf/sign/ed25519-requires-sha512",'Ed25519 CMS signatures use SHA-512 (RFC 8419 section 3.1); omit opts.hashAlg or pass "sha512"',{context:{hashAlg:G0}});if((s==="T"||s==="LT"||s==="LTA")&&typeof a.tsaSign!=="function")throw new Y("pdf/sign/tsa-required-for-level-T","levels T/LT/LTA require opts.tsaSign({digest,hashAlg}) callback returning the RFC 3161 TimeStampToken bytes",{context:{level:s}});let L0=s!=="B"||!!a.useSignedAttrs,H0=n(a.cert),C0=a.placeholderBytes||8192,K0;if(typeof I.readBaseTrailer==="function"){let g0=w(c);K0=g0.encrypt?S(c,g0,a):null}let R0=b(c,C0,a.subFilter||"adbe.pkcs7.detached",a.docTimeStamp,a,K0),{bytes:M0,contentsOffset:w0,contentsLength:T0,byteRange:P0}=R0,_0=new Uint8Array(P0[1]+P0[3]);_0.set(M0.subarray(P0[0],P0[0]+P0[1]),0),_0.set(M0.subarray(P0[2],P0[2]+P0[3]),P0[1]);let O0=k(j0.mod,_0),E0=null,l0=_0;if(L0){let g0=k(G,H0);E0=X0({messageDigest:O0,certDigestSha256:g0,signingTime:a.signingTime}),l0=E0}let h0=Z0({algorithm:r,privateKey:a.privateKey,message:l0,hashMod:j0.mod}),c0=null;if(s==="T"||s==="LT"||s==="LTA"){let g0=k(j0.mod,h0),p0=a.tsaSign({digest:g0,hashAlg:G0});if(!(p0 instanceof Uint8Array))throw new Y("pdf/sign/tsa-bad-result","opts.tsaSign must return a Uint8Array (RFC 3161 TimeStampToken DER bytes)");c0=N0(p0)}let b0=_({certDer:H0,sigBytes:h0,hashAlg:G0,signatureAlg:r,signedAttrsTlv:E0,unsignedAttrsTlv:c0});if(b0.length>C0)throw new Y("pdf/sign/pkcs7-too-large","PKCS#7 blob exceeds placeholder",{context:{pkcs7Length:b0.length,placeholder:C0}});let y0=B(b0),f0=new TextEncoder().encode(y0),m0=T0-f0.length;if(m0<0)throw new Y("pdf/sign/hex-overflow","PKCS#7 hex exceeds /Contents placeholder");M0.set(f0,w0);for(let g0=0;g0<m0;g0++)M0[w0+f0.length+g0]=48;if(s!=="LT"&&s!=="LTA")return M0;let u0=D0(M0,a,K0);if(s==="LT")return u0;return B0(u0,a,G0,K0)}function V0(c,a,s,r){let{handler:G0,typedForPw:j0,fek:L0,randomBytes:H0}=r,C0=Object.assign({},j0,{method:r.strMethod}),K0=Object.assign({},j0,{method:r.stmMethod});function R0(M0){if(!M0||typeof M0!=="object")return M0;switch(M0.type){case"string":{if(r.strMethod==="Identity"||!(M0.value instanceof Uint8Array))return M0;return{type:"string",syntax:"hex",value:G0.encryptString(C0,L0,a,s,M0.value,H0(16))}}case"array":return{type:"array",items:M0.items.map(R0)};case"dict":{let w0={};for(let T0 of Object.keys(M0.entries))w0[T0]=R0(M0.entries[T0]);return{type:"dict",entries:w0}}case"stream":{let w0=R0(M0.dict),T0=r.stmMethod==="Identity"||!(M0.raw instanceof Uint8Array)?M0.raw:G0.encryptStream(K0,L0,a,s,M0.raw,H0(16));return{type:"stream",dict:w0,raw:T0}}default:return M0}}return R0(c)}function D0(c,a,s){let r=a.dss||{},G0=Array.isArray(r.certs)?r.certs.map(n):[],j0=Array.isArray(r.ocsps)?r.ocsps.slice():[],L0=Array.isArray(r.crls)?r.crls.slice():[],H0=w(c),C0=N(H0),K0=F.buildDss({certs:G0,ocsps:j0,crls:L0,vri:r.vri,autoVri:!!r.autoVri,parentBytes:c,startNum:C0}),R0=W0(c,K0.dssNum),M0=s?K0.updates.map((w0)=>({num:w0.num,gen:w0.gen|0,value:V0(w0.value,w0.num,w0.gen|0,s)})):K0.updates.slice();return M0.push(R0),I.appendIncremental(c,{updates:M0,root:{num:R0.num,gen:R0.gen},info:H0.info,id:H0.id,encrypt:H0.encrypt})}function B0(c,a,s,r){let G0=K[s],j0=a.docTimeStampPlaceholder||a.placeholderBytes||8192,L0=b(c,j0,"ETSI.RFC3161",!0,a,r),{bytes:H0,contentsOffset:C0,contentsLength:K0,byteRange:R0}=L0,M0=new Uint8Array(R0[1]+R0[3]);M0.set(H0.subarray(R0[0],R0[0]+R0[1]),0),M0.set(H0.subarray(R0[2],R0[2]+R0[3]),R0[1]);let w0=k(G0.mod,M0),T0=a.tsaSign({digest:w0,hashAlg:s});if(!(T0 instanceof Uint8Array))throw new Y("pdf/sign/tsa-bad-result-lta","opts.tsaSign must return a Uint8Array (RFC 3161 TimeStampToken DER) for the LTA DocTimeStamp");if(T0.length>j0)throw new Y("pdf/sign/tst-too-large","TimeStampToken exceeds DocTimeStamp /Contents placeholder",{context:{tstLength:T0.length,placeholder:j0}});let P0=B(T0),_0=new TextEncoder().encode(P0),O0=K0-_0.length;if(O0<0)throw new Y("pdf/sign/dts-hex-overflow","TimeStampToken hex exceeds /Contents placeholder");H0.set(_0,C0);for(let E0=0;E0<O0;E0++)H0[C0+_0.length+E0]=48;return H0}function W0(c,a){let s=z.readDocument(c,{allowEncrypted:!0}),r=s.trailer.root,G0=s._raw.resolve({type:"ref",num:r.num,gen:r.gen});if(!G0||G0.type!=="dict")throw new Y("pdf/sign/catalog-not-found",`the trailer /Root (object ${r.num} ${r.gen}) does not resolve to a Catalog dictionary`,{context:{root:r}});let j0=Object.assign({},G0.entries);return j0.DSS={type:"ref",num:a|0,gen:0},{num:r.num,gen:r.gen|0,value:{type:"dict",entries:j0}}}return{sign:x0,_buildPkcs7:_,_buildSignedAttrs:X0,_sortDerSetOf:z0,_buildUnsignedAttrsTsa:N0,_extractIssuerSerial:h,_emitWithPlaceholder:b,_hashBytes:k,_toDer:n,HASH_TABLE:K}}}),I0({name:"pdfSignature",dependencies:["pdfErrors","pdfParser","pdfSigOids","asn1","rsa","ecc","ed25519","sha256","sha384","sha512","bitArray"],factory:function(i,A,D,F,I,P,C,M,j,W,G){let{EncryptionError:H,ParseError:X}=i,{isType:J}=A,{DIGEST_OIDS:z,SIG_DISPATCH_OIDS:V}=D,Q={asn1:F,rsa:I,ecc:P,ed25519:C,sha256:M,sha384:j,sha512:W,bitArray:G},Z=new Set(["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1","ETSI.CAdES.detached","ETSI.RFC3161"]);function $(g,u){let m=u?{objNum:u.objNum,objGen:u.objGen}:null;function p(z0){if(!m&&!z0)return;return Object.assign({},m,z0)}if(!J(g,"dict"))throw new X("pdf/sig/not-dict","signature must be a dictionary",{context:p({type:g&&g.type})});let b=g.entries,t=b.Type&&b.Type.type==="name"?b.Type.value:null;if(t&&t!=="Sig"&&t!=="DocTimeStamp")throw new X("pdf/sig/bad-type","/Type must be /Sig or /DocTimeStamp",{context:p({actual:t})});if(!b.Filter||b.Filter.type!=="name")throw new X("pdf/sig/missing-filter","signature missing /Filter",m?{context:m}:void 0);if(!b.SubFilter||b.SubFilter.type!=="name")throw new X("pdf/sig/missing-subfilter","signature missing /SubFilter",m?{context:m}:void 0);if(!Z.has(b.SubFilter.value))throw new X("pdf/sig/unknown-subfilter","unknown /SubFilter",{context:p({subFilter:b.SubFilter.value})});if(!b.Contents||b.Contents.type!=="string")throw new X("pdf/sig/missing-contents","/Contents (hex PKCS#7 blob) missing",m?{context:m}:void 0);if(!b.ByteRange||b.ByteRange.type!=="array")throw new X("pdf/sig/missing-byterange","/ByteRange missing",m?{context:m}:void 0);let Z0=b.ByteRange.items.map((z0)=>z0&&typeof z0.value==="number"?z0.value:0);if(Z0.length!==4)throw new X("pdf/sig/bad-byterange","/ByteRange must have exactly 4 integers",{context:p({length:Z0.length})});function X0(z0){let F0=b[z0];if(!F0)return;if(F0.type==="string")return F0.value;if(F0.type==="name")return F0.value;return}return{kind:t||"Sig",filter:b.Filter.value,subFilter:b.SubFilter.value,contents:b.Contents.value,byteRange:Z0,reference:b.Reference&&b.Reference.type==="array"?b.Reference.items:void 0,cert:b.Cert,name:X0("Name"),m:X0("M"),location:X0("Location"),reason:X0("Reason"),contactInfo:X0("ContactInfo"),v:b.V&&b.V.type==="int"?b.V.value:void 0,propBuild:b.Prop_Build,propAuthTime:b.Prop_AuthTime&&b.Prop_AuthTime.type==="int"?b.Prop_AuthTime.value:void 0,propAuthType:X0("Prop_AuthType"),raw:g}}function q(g,u){let m=u||F;if(!(g instanceof Uint8Array))return!1;let p=m.parseOne(g,0);if(!p)return!1;let b=m.parseChildren(p.value);if(!b||b.length<2)return!1;let t=b[1],Z0=m.parseOne(t.value,0);if(!Z0)return!1;return m.parseChildren(Z0.value)}function Y(g,u){let[m,p,b,t]=u,Z0=g.length;if(m<0||p<0||b<0||t<0||m+p>Z0||b+t>Z0||b<m+p)throw new X("pdf/sig/byterange/inconsistent","_concatRange refusing inconsistent ByteRange",{context:{a:m,b:p,c:b,d:t,total:Z0}});let X0=new Uint8Array(p+t);return X0.set(g.subarray(m,m+p),0),X0.set(g.subarray(b,b+t),p),X0}function U(g,u,m,p){let b=p||G;if(m&&typeof m.fn==="function"&&b&&typeof b.ui8_to_ba==="function"){let Z0=u[0]|0,X0=u[1]|0,z0=u[2]|0,F0=u[3]|0,N0=g.length;if(Z0<0||X0<0||z0<0||F0<0||Z0+X0>N0||z0+F0>N0||z0<Z0+X0)throw new X("pdf/sig/byterange/inconsistent","_hashByteRange refusing inconsistent ByteRange",{context:{a:Z0,b:X0,c:z0,d:F0,total:N0}});let x0=new m.fn;x0.update(b.ui8_to_ba(g.subarray(Z0,Z0+X0))),x0.update(b.ui8_to_ba(g.subarray(z0,z0+F0)));let V0=x0.finalize();return V0 instanceof Uint8Array?V0:b.ba_to_ui8(V0)}if(!b||typeof b.ui8_to_ba!=="function"||typeof b.ba_to_ui8!=="function")throw new X("pdf/sig/byterange/no-bitarray","_hashByteRange fallback requires a live bitArray API (ui8_to_ba/ba_to_ui8) to hash identical bit content to the streaming path",{context:{hasBitArrayApi:!!b}});let t=m.hash(b.ui8_to_ba(Y(g,u)));return t instanceof Uint8Array?t:b.ba_to_ui8(t)}let K="pdf/sig/byterange/gap-start-mismatch",T="pdf/sig/byterange/gap-end-mismatch";function B(g){return g===0||g===9||g===10||g===12||g===13||g===32}function k(g){return g>=48&&g<=57||g>=65&&g<=70||g>=97&&g<=102||B(g)}function n(g,u,m){let p=g.length;if(!(u>=0&&m>u&&m<=p))return null;let b=u+(m-u>>1);if(g[b]===62)b--;while(b>=0&&k(g[b]))b--;if(b<0||g[b]!==60)return null;let t=b,Z0=t+1;while(Z0<p&&k(g[Z0]))Z0++;if(Z0>=p||g[Z0]!==62)return null;let X0=t-1;while(X0>=0&&B(g[X0]))X0--;let z0="/Contents",F0=X0-z0.length+1;if(F0<0)return null;for(let N0=0;N0<z0.length;N0++)if(g[F0+N0]!==z0.charCodeAt(N0))return null;return{offset:t+1,length:Z0-t-1}}function h(g,u){let m=(g[0]|0)+(g[1]|0),p=g[2]|0,b=u?u.offset-1:null,t=u?u.offset+u.length+1:null;if(u&&m===b&&p===t)return{issues:[],gapForm:"token"};if(u&&m===u.offset&&p===u.offset+u.length)return{issues:[],gapForm:"digits"};let Z0=[];if(m!==b)Z0.push({code:K,message:"first range end does not align with /Contents literal start",context:{firstEnd:m,expected:b}});if(p!==t)Z0.push({code:T,message:"second range start does not align with /Contents literal end",context:{secondStart:p,expected:t}});return{issues:Z0,gapForm:null}}function d(g,u,m,p,b,t,Z0){return{verified:!!g,valid:!!g,pkVerified:!!t,errors:u,signerCerts:m,hashAlg:p,signatureAlg:b,computedDigest:Z0||null}}function o(g,u,m){return _(g,u,m,null)}function _(g,u,m,p){let b=m||Q;if(!b||!b.asn1)throw new H("pdf/sig/missing-fw","verifySignature requires fwBundle.asn1");let t=[],Z0=q(g.contents,b.asn1);if(!Z0)return t.push({code:"pdf/sig/pkcs7-malformed",message:"PKCS#7 SignedData parse failed"}),d(!1,t,[],null,null,!1);let X0=U0(Z0,null,b,"pdf/sig",{byteRangeDocument:u,byteRange:g.byteRange});for(let x0 of X0.errors)t.push(x0);let z0=g.byteRange,F0=p||(u instanceof Uint8Array&&Array.isArray(z0)?n(u,(z0[0]|0)+(z0[1]|0),z0[2]|0):null),N0=h(z0||[],F0).issues;for(let x0 of N0)t.push(x0);return d(X0.verified&&N0.length===0,t,X0.signerCerts,X0.hashAlg,X0.signatureAlg,X0.pkVerified,X0.computedDigest)}function f(g){if(!g||g.length<5)return{ok:!1,code:"pdf/sig/signer-info-short",message:"SignerInfo has fewer than 5 fields"};let u=g[0],m=g[1],p=g[2],b=3,t=null;if(g[b]&&g[b].tag===160)t=g[b],b++;let Z0=g[b];b++;let X0=g[b];if(b++,!X0||X0.tag!==4)return{ok:!1,code:"pdf/sig/no-encrypted-digest",message:"SignerInfo signature OCTET STRING missing"};let z0=null;if(g[b]&&g[b].tag===161)z0=g[b];let F0=null,N0=null;if(t)N0=t.value,F0=L(t.tag,t.value);return{ok:!0,sid:m,encryptedDigest:new Uint8Array(X0.value),signedAttrsRaw:F0,signedAttrsValueBytes:N0}}function L(g,u){let m=O(u.length),p=new Uint8Array(1+m.length+u.length);return p[0]=g,p.set(m,1),p.set(u,1+m.length),p}function O(g){if(g<128)return Uint8Array.of(g);if(g<=255)return Uint8Array.of(129,g);if(g<=65535)return Uint8Array.of(130,g>>>8&255,g&255);if(g<=16777215)return Uint8Array.of(131,g>>>16&255,g>>>8&255,g&255);return Uint8Array.of(132,g>>>24&255,g>>>16&255,g>>>8&255,g&255)}function w(g,u,m){let p=m.parseChildren(g);if(!p)return{ok:!1,code:"pdf/sig/signed-attrs-parse-failed",message:"failed to parse signedAttrs SET"};let b="1.2.840.113549.1.9.4";for(let t=0;t<p.length;t++){let Z0=m.parseChildren(p[t].value);if(!Z0||Z0.length<2)continue;if(m.readOid(Z0[0])!==b)continue;let X0=m.parseChildren(Z0[1].value);if(!X0||!X0.length||X0[0].tag!==4)continue;let z0=X0[0].value;if(!u)return{ok:!1,code:"pdf/sig/digest-not-computed",message:"recomputed digest unavailable for signedAttrs comparison"};if(z0.length!==u.length)return{ok:!1,code:"pdf/sig/digest-length-mismatch",message:"messageDigest length mismatch"};for(let F0=0;F0<z0.length;F0++)if(z0[F0]!==u[F0])return{ok:!1,code:"pdf/sig/digest-mismatch",message:"signedAttrs.messageDigest does not match ByteRange digest"};return{ok:!0}}return{ok:!1,code:"pdf/sig/no-message-digest-attr",message:"signedAttrs lacks messageDigest attribute"}}function N(g,u,m){let p=null;for(let z0=0;z0<g.length;z0++)if(g[z0].tag===160){p=g[z0];break}if(!p)return null;let b=m.parseChildren(p.value);if(!b)return null;let t=u&&u.tag===48?m.parseChildren(u.value):null,Z0=t&&t[0]?t[0].value:null,X0=t&&t[1]?t[1].value:null;for(let z0=0;z0<b.length;z0++){if(b[z0].tag!==48)continue;let F0=x(b[z0],p.value);if(!Z0||!X0)return{der:F0};if(R(F0,Z0,X0,m))return{der:F0}}for(let z0=0;z0<b.length;z0++)if(b[z0].tag===48)return{der:x(b[z0],p.value)};return null}function x(g,u){let m=g.length,p;if(m<128)p=1;else if(m<256)p=2;else if(m<65536)p=3;else if(m<16777216)p=4;else p=5;return u.subarray(g.valueOff-1-p,g.next)}function R(g,u,m,p){let b=p.parseOne(g,0);if(!b)return!1;let t=p.parseChildren(b.value);if(!t||!t[0])return!1;let Z0=p.parseChildren(t[0].value);if(!Z0)return!1;let X0=0;if(Z0[X0]&&Z0[X0].tag===160)X0++;let z0=Z0[X0];X0++,X0++;let F0=Z0[X0];if(!z0||!F0)return!1;if(z0.value.length!==m.length)return!1;for(let N0=0;N0<z0.value.length;N0++)if(z0.value[N0]!==m[N0])return!1;if(F0.value.length!==u.length)return!1;for(let N0=0;N0<F0.value.length;N0++)if(F0.value[N0]!==u[N0])return!1;return!0}function S(g,u,m){let p=m.parseOne(g,0);if(!p)return{ok:!1,code:"pdf/sig/spki-cert-parse",message:"cert parse failed"};let b=m.parseChildren(p.value);if(!b||!b[0])return{ok:!1,code:"pdf/sig/spki-cert-parse",message:"cert lacks tbsCertificate"};let t=m.parseChildren(b[0].value);if(!t)return{ok:!1,code:"pdf/sig/spki-cert-parse",message:"tbsCertificate parse failed"};let Z0=0;if(t[Z0]&&t[Z0].tag===160)Z0++;Z0+=5;let X0=t[Z0];if(!X0||X0.tag!==48)return{ok:!1,code:"pdf/sig/spki-not-found",message:"SubjectPublicKeyInfo missing"};let z0=m.parseChildren(X0.value);if(!z0||z0.length<2)return{ok:!1,code:"pdf/sig/spki-malformed",message:"SPKI structure malformed"};let F0=m.parseChildren(z0[0].value),N0=F0&&F0[0]?m.readOid(F0[0]):null,x0=z0[1].value;if(x0.length<1)return{ok:!1,code:"pdf/sig/spki-bitstring-empty",message:"SPKI BIT STRING empty"};let V0=x0.subarray(1);if(u==="rsa-pss"||u==="rsa"){let D0=m.parseOne(V0,0);if(!D0)return{ok:!1,code:"pdf/sig/spki-rsa-parse",message:"RSAPublicKey parse failed"};let B0=m.parseChildren(D0.value);if(!B0||B0.length<2)return{ok:!1,code:"pdf/sig/spki-rsa-fields",message:"RSAPublicKey lacks n/e"};return{ok:!0,pubKey:{n:E(B0[0].value),e:E(B0[1].value)}}}if(u==="ecc"){if(V0.length<1||V0[0]!==4)return{ok:!1,code:"pdf/sig/spki-ecc-not-uncompressed",message:"ECC point not uncompressed SEC1"};let D0="c256";if(F0&&F0[1]&&F0[1].tag===6){let B0=m.readOid(F0[1]);if(B0==="1.2.840.10045.3.1.7")D0="c256";else if(B0==="1.3.132.0.34")D0="c384";else if(B0==="1.3.132.0.35")D0="c521"}return{ok:!0,pubKey:{curve:D0,point:V0.subarray(1)}}}if(u==="ed25519"){if(V0.length!==32)return{ok:!1,code:"pdf/sig/spki-ed25519-bad-len",message:"Ed25519 pubkey must be 32 bytes",actual:V0.length};return{ok:!0,pubKey:V0}}return{ok:!1,code:"pdf/sig/spki-unsupported-alg",message:"unsupported keyAlgorithm: "+N0}}function E(g){if(g.length>1&&g[0]===0)return g.subarray(1);return g}function y(g,u,m){let p=null;if(g.length>0&&g[0]===48&&m){let b=m.parseOne(g,0);if(b&&b.next===g.length){let t=m.parseChildren(b.value);if(t&&t.length===2&&t[0].tag===2&&t[1].tag===2)p=t}}if(p){let b=new Uint8Array(2*u);for(let t=0;t<2;t++){let Z0=p[t].value;if(Z0.length===u+1&&Z0[0]===0)Z0=Z0.subarray(1);if(Z0.length>u)return{ok:!1,code:"pdf/sig/verify-pk/bad-ecdsa-sig",error:"ECDSA-Sig-Value INTEGER longer than "+u+" bytes"};b.set(Z0,t*u+(u-Z0.length))}return{ok:!0,rs:b}}if(g.length!==2*u)return{ok:!1,code:"pdf/sig/verify-pk/bad-ecdsa-sig",error:"ECDSA signature is neither a DER ECDSA-Sig-Value nor a "+2*u+"-byte raw r||s"};return{ok:!0,rs:g}}function l(g){let u=Q;if(!g||typeof g!=="object")return{verified:!1,code:"pdf/sig/verify-pk/bad-args",error:"verifyPk requires an args object"};let{algorithm:m,pubKey:p,signature:b,message:t,digest:Z0,hashMod:X0,sLen:z0}=g;if(!m)return{verified:!1,code:"pdf/sig/verify-pk/no-alg",error:"algorithm required"};if(!(b instanceof Uint8Array))return{verified:!1,code:"pdf/sig/verify-pk/bad-sig",error:"signature must be a Uint8Array"};try{if(m==="rsa-pss"){if(!u.rsa||typeof u.rsa.pssVerify!=="function")return{verified:!1,code:"pdf/sig/verify-pk/no-rsa",error:"fw rsa.pssVerify unavailable"};if(!p||!p.n||!p.e)return{verified:!1,code:"pdf/sig/verify-pk/bad-rsa-key",error:"RSA pubKey requires { n, e }"};if(!(t instanceof Uint8Array))return{verified:!1,code:"pdf/sig/verify-pk/no-message",error:"PSS verify requires message bytes"};if(!X0||typeof X0.hash!=="function")return{verified:!1,code:"pdf/sig/verify-pk/no-hash",error:"PSS verify requires hashMod"};return{verified:!!u.rsa.pssVerify(p,t,b,X0,z0)}}if(m==="rsa-v15"||m==="rsa")return{verified:!1,code:"pdf/sig/rsa-pkcs1v15-deprecated",error:"RSA PKCS#1 v1.5 signature scheme is deprecated by NIST SP 800-131A Rev.2 (Table 5) and refused by fw rsa; use RSA-PSS instead"};if(m==="ecdsa"||m==="ecc"){if(!u.ecc||!u.ecc.ecdsa||!u.ecc.curves||!u.bitArray)return{verified:!1,code:"pdf/sig/verify-pk/no-ecc",error:"fw ecc unavailable"};if(!p||!p.curve||!p.point)return{verified:!1,code:"pdf/sig/verify-pk/bad-ecc-key",error:"ECDSA pubKey requires { curve, point }"};let F0=u.ecc.curves[p.curve];if(!F0)return{verified:!1,code:"pdf/sig/verify-pk/unknown-curve",error:"unknown ECC curve: "+p.curve};let N0=u.bitArray,x0=N0.ui8_to_ba(p.point),V0=F0.fromBits?F0.fromBits(x0):null;if(!V0)return{verified:!1,code:"pdf/sig/verify-pk/bad-ecc-point",error:"ECC point reconstruction failed"};let D0=new u.ecc.ecdsa.publicKey(F0,V0),B0;if(Z0 instanceof Uint8Array)B0=N0.ui8_to_ba(Z0);else{if(!(t instanceof Uint8Array)||!X0||typeof X0.hash!=="function")return{verified:!1,code:"pdf/sig/verify-pk/no-digest",error:"ECDSA verify needs digest or (message, hashMod)"};B0=X0.hash(N0.ui8_to_ba(t))}let W0=y(b,p.point.length/2,u.asn1);if(!W0.ok)return{verified:!1,code:W0.code,error:W0.error};let c=N0.ui8_to_ba(W0.rs);return{verified:!!D0.verify(B0,c)}}if(m==="ed25519"){if(!u.ed25519||typeof u.ed25519.verify!=="function")return{verified:!1,code:"pdf/sig/verify-pk/no-ed25519",error:"fw ed25519 unavailable"};if(!(p instanceof Uint8Array)||p.length!==32)return{verified:!1,code:"pdf/sig/verify-pk/bad-ed25519-key",error:"Ed25519 pubKey must be 32 bytes"};if(!(t instanceof Uint8Array))return{verified:!1,code:"pdf/sig/verify-pk/no-message",error:"Ed25519 verify requires message"};return{verified:!!u.ed25519.verify(p,t,b)}}return{verified:!1,code:"pdf/sig/verify-pk/unknown-alg",error:"unsupported algorithm: "+m}}catch(F0){return{verified:!1,code:"pdf/sig/verify-pk/throw",error:"primitive threw: "+(F0&&F0.message)}}}function J0(g,u){let m=u||Q,p=$0(g),b={signatures:[],timestamps:[]};for(let t of p)if(t.kind==="Sig"){let Z0={kind:"Sig",filter:t.filter,subFilter:t.subFilter,contents:t.contents,byteRange:t.byteRange},X0=_(Z0,g,m,t.contentsSpan);b.signatures.push(Object.assign({objNum:t.num,objGen:t.gen},X0))}else{let Z0=Y0(t,g,m);b.timestamps.push(Object.assign({objNum:t.num,objGen:t.gen},Z0))}return b}function $0(g){let u=Q0(g),m=[],p=/(\d+)\s+(\d+)\s+obj\s*<<([\s\S]*?)>>\s*endobj/g,b;while((b=p.exec(u))!==null){let X0=b[3],z0=X0.match(/\/Type\s*\/(Sig|DocTimeStamp)\b/);if(!z0)continue;let F0=z0[1],N0=X0.match(/\/Filter\s*\/([A-Za-z0-9._]+)/),x0=X0.match(/\/SubFilter\s*\/([A-Za-z0-9._]+)/),V0=X0.match(/\/ByteRange\s*\[\s*(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s*\]/);if(!V0)continue;let D0=[parseInt(V0[1],10),parseInt(V0[2],10),parseInt(V0[3],10),parseInt(V0[4],10)],B0=b.index,W0=u.slice(B0,B0+b[0].length).match(/\/Contents\s*<([0-9A-Fa-f]*)>/);if(!W0)continue;let c=W0[1],a=e(c),s=B0+W0.index+W0[0].indexOf("<");m.push({num:parseInt(b[1],10),gen:parseInt(b[2],10),kind:F0,filter:N0?N0[1]:null,subFilter:x0?x0[1]:null,byteRange:D0,contents:a,contentsSpan:{offset:s+1,length:c.length}})}let t=new Set,Z0=[];for(let X0 of m){let z0=`${X0.num}:${X0.byteRange.join(",")}`;if(t.has(z0))continue;t.add(z0),Z0.push(X0)}return Z0}function Q0(g){let u="",m=32768;for(let p=0;p<g.length;p+=m)u+=String.fromCharCode.apply(null,g.subarray(p,Math.min(p+m,g.length)));return u}function e(g){let u=g.replace(/[^0-9A-Fa-f]/g,""),m=new Uint8Array(u.length>>>1);for(let p=0;p<m.length;p++)m[p]=parseInt(u.substr(p*2,2),16);return m}function Y0(g,u,m){let p=[];function b(W0,c,a,s){let r={code:W0,message:c};if(a)r.context=a;if(s)r.cause=s;p.push(r)}let t=h(g.byteRange||[],g.contentsSpan||null),Z0={verified:!1,valid:!1,kind:"DocTimeStamp",subFilter:g.subFilter,hashAlg:null,tstInfo:null,imprintVerified:!1,tsaVerified:!1,gapForm:t.gapForm,errors:p,signerCerts:[]},X0=g.contents;if(!(X0 instanceof Uint8Array)||X0.length===0)return b("pdf/ts/empty-contents","DocTimeStamp /Contents is empty"),Z0;let z0;try{z0=v(X0,m.asn1)}catch(W0){return b("pdf/ts/parse-failed","TimeStampToken parse failed: "+(W0&&W0.message),null,W0),Z0}Z0.tstInfo=z0;let F0=z0.hashAlg;Z0.hashAlg=F0;let N0=F0&&m[F0];if(!N0||typeof N0.hash!=="function")return b("pdf/ts/unknown-hash","unsupported messageImprint hashAlg",{hashAlg:F0}),Z0;let x0;try{x0=U(u,g.byteRange,N0,m.bitArray)}catch(W0){return b("pdf/ts/byterange-failed","failed to digest ByteRange: "+(W0&&W0.message),null,W0),Z0}let V0=z0.imprint;if(!V0||V0.length!==x0.length)return b("pdf/ts/imprint-length-mismatch","TSTInfo messageImprint length differs from digest",{expectedLen:V0&&V0.length,actualLen:x0.length}),Z0;let D0=!0;for(let W0=0;W0<x0.length;W0++)if(x0[W0]!==V0[W0]){D0=!1;break}if(!D0)return b("pdf/ts/imprint-mismatch","TSTInfo messageImprint does not match DocTimeStamp ByteRange digest"),Z0;Z0.imprintVerified=!0;let B0=q0(X0,m);if(Z0.tsaVerified=!!B0.verified,B0.signerCerts)Z0.signerCerts=B0.signerCerts;if(B0.errors&&B0.errors.length)for(let W0 of B0.errors)p.push(W0);for(let W0 of t.issues)p.push(W0);return Z0.verified=t.issues.length===0,Z0.valid=Z0.verified,Z0}function v(g,u){let m=u.parseOne(g,0);if(!m)throw new X("pdf/ts/no-ci","ContentInfo missing");let p=u.parseChildren(m.value);if(!p||p.length<2)throw new X("pdf/ts/short-ci","ContentInfo too short");let b=u.parseOne(p[1].value,0);if(!b)throw new X("pdf/ts/no-sd","SignedData node missing");let t=u.parseChildren(b.value);if(!t)throw new X("pdf/ts/short-sd","SignedData parse failed");let Z0=t[2]&&u.parseChildren(t[2].value);if(!Z0||Z0.length<2)throw new X("pdf/ts/no-eci","encapContentInfo missing");let X0=u.parseOne(Z0[1].value,0);if(!X0)throw new X("pdf/ts/no-econtent","eContent OCTET STRING missing");let z0=u.parseOne(X0.value,0);if(!z0)throw new X("pdf/ts/no-tst","TSTInfo SEQUENCE missing");let F0=u.parseChildren(z0.value);if(!F0||F0.length<4)throw new X("pdf/ts/short-tstinfo","TSTInfo too short");let N0=u.parseChildren(F0[2].value);if(!N0||N0.length<2)throw new X("pdf/ts/no-imprint","messageImprint malformed");let x0=u.parseChildren(N0[0].value),V0=x0&&x0[0]?u.readOid(x0[0]):null;return{hashAlg:z[V0]||null,imprint:N0[1].value,rawSd:t}}function q0(g,u){try{let m=u.asn1.parseOne(g,0),p=m&&u.asn1.parseChildren(m.value),b=p&&p[1]&&u.asn1.parseOne(p[1].value,0),t=b&&u.asn1.parseChildren(b.value);if(!t)return{verified:!1,signerCerts:[],errors:[{code:"pdf/ts/tsa-no-sd",message:"SignedData missing"}]};let Z0=null;if(t[2]&&t[2].tag===48){let X0=u.asn1.parseChildren(t[2].value);if(X0&&X0.length>=2&&X0[1].tag===160){let z0=u.asn1.parseOne(X0[1].value,0);if(z0&&z0.tag===4)Z0=z0.value}}return U0(t,Z0,u,"pdf/ts")}catch(m){return{verified:!1,signerCerts:[],errors:[{code:"pdf/ts/tsa-throw",message:"TSA verify threw: "+(m&&m.message),cause:m}]}}}function U0(g,u,m,p,b){let t=p||"pdf/sig",Z0=b||{},X0=[];function z0(H0,C0){X0.push({code:H0,message:C0})}function F0(H0,C0,K0,R0){return{verified:!1,signerCerts:R0||[],errors:X0,hashAlg:H0||null,signatureAlg:C0||null,computedDigest:K0||null,pkVerified:!1}}let N0=null;for(let H0=g.length-1;H0>=0;H0--)if(g[H0].tag===49){N0=g[H0];break}if(!N0)return z0(t+"/no-signer","no signerInfos SET in SignedData"),F0();let x0=m.asn1.parseChildren(N0.value);if(!x0||!x0.length)return z0(t+"/empty-signers","signerInfos SET is empty"),F0();let V0=m.asn1.parseChildren(x0[0].value);if(!V0)return z0(t+"/bad-signer","signerInfo[0] parse failed"),F0();let D0=null;if(V0[2]&&V0[2].tag===48){let H0=m.asn1.parseChildren(V0[2].value);if(H0&&H0[0]){let C0=m.asn1.readOid(H0[0]);D0=z[C0]||null}}if(!D0)return z0(t+"/unknown-digest","unsupported SignerInfo digestAlgorithm"),F0();let B0=m[D0];if(!B0||typeof B0.hash!=="function")return z0(t+"/no-hash","hash module unavailable: "+D0),F0(D0);let W0=null;for(let H0=3;H0<V0.length-1;H0++)if(V0[H0].tag===48&&V0[H0+1].tag===4){let C0=m.asn1.parseChildren(V0[H0].value);if(C0&&C0[0]){let K0=m.asn1.readOid(C0[0]);W0=V[K0]||null}break}if(!W0)return z0(t+"/unknown-sigalg","unsupported SignerInfo signatureAlgorithm"),F0(D0);let c=f(V0,m.asn1);if(!c.ok)return z0(t+"/"+c.code.replace("pdf/sig/",""),c.message),F0(D0,W0);let a=null;if(Z0.byteRangeDocument instanceof Uint8Array&&Array.isArray(Z0.byteRange))try{a=U(Z0.byteRangeDocument,Z0.byteRange,B0,m.bitArray)}catch(H0){return z0(t+"/digest-failed","failed to recompute ByteRange digest: "+(H0&&H0.message)),F0(D0,W0)}else if(u&&m.bitArray){let H0=m.bitArray,C0=B0.hash(H0.ui8_to_ba(u));a=C0 instanceof Uint8Array?C0:H0.ba_to_ui8(C0)}let s;if(c.signedAttrsRaw){let H0=w(c.signedAttrsValueBytes,a,m.asn1);if(!H0.ok)return z0(t+"/"+H0.code.replace("pdf/sig/",""),H0.message),F0(D0,W0,a);s=new Uint8Array(c.signedAttrsRaw.length),s.set(c.signedAttrsRaw),s[0]=49}else if(u)s=u;else if(Z0.byteRangeDocument instanceof Uint8Array&&Array.isArray(Z0.byteRange))try{s=Y(Z0.byteRangeDocument,Z0.byteRange)}catch(H0){return z0(t+"/byterange-concat-failed","failed to extract ByteRange-covered bytes: "+(H0&&H0.message)),F0(D0,W0,a)}else return z0(t+"/no-econtent","no signedAttrs and no signed payload available"),F0(D0,W0,a);let r=N(g,c.sid,m.asn1);if(!r)return z0(t+"/signer-cert-not-found","unable to match signer cert by IssuerAndSerialNumber"),F0(D0,W0,a);let G0=S(r.der,W0,m.asn1);if(!G0.ok)return z0(t+"/"+G0.code.replace("pdf/sig/",""),G0.message),F0(D0,W0,a,[r]);let j0=null;if(W0==="ecc"&&m.bitArray){let H0=B0.hash(m.bitArray.ui8_to_ba(s));j0=H0 instanceof Uint8Array?H0:m.bitArray.ba_to_ui8(H0)}let L0=l({algorithm:W0==="rsa"?"rsa-v15":W0==="ecc"?"ecdsa":W0,pubKey:G0.pubKey,signature:c.encryptedDigest,message:s,digest:j0,hashMod:B0});if(!L0.verified)return z0(L0.code||t+"/pk-verify-failed",L0.error||"public-key verification failed"),F0(D0,W0,a,[r]);return{verified:!0,signerCerts:[r],errors:X0,hashAlg:D0,signatureAlg:W0,computedDigest:a,pkVerified:!0}}return{typeSignature:$,verifySignature:o,verifyAllSignatures:J0,verifyPk:l,locatePkcs7:q,_hashByteRange:U,_scanSignatureObjects:$0,_verifyPkcs7Signature:U0,_verifyTsaSignature:q0,_ecdsaSigToRaw:y,DIGEST_OIDS:z,SIG_OIDS:V}}});let A0=S0("pdf");return A0.use({name:"pdfContentOpsExtended",register(){return{["pdfContentOpsExtended"]:S0("pdfContentOpsExtended")}}}),A0.use({name:"pdfFontCidTyped",register(){return{["pdfFontCidTyped"]:S0("pdfFontCidTyped")}}}),A0.use({name:"pdfFontColorTagging",register(){return{["pdfFontColorTagging"]:S0("pdfFontColorTagging")}}}),A0.use({name:"pdfTaggedPdfTyped",register(){return{["pdfTaggedPdfTyped"]:S0("pdfTaggedPdfTyped")}}}),A0.use({name:"pdfAnnotExtended",register(){return{["pdfAnnotExtended"]:S0("pdfAnnotExtended")}}}),A0.use({name:"pdfAOutputIntent",register(){return{["pdfAOutputIntent"]:S0("pdfAOutputIntent")}}}),A0.use({name:"pdfUaTagged",register(){return{["pdfUaTagged"]:S0("pdfUaTagged")}}}),A0.use({name:"pdfFormActionsExtended",register(){return{["pdfFormActionsExtended"]:S0("pdfFormActionsExtended")}}}),A0.use({name:"pdfColorSpacesExtended",register(){return{["pdfColorSpacesExtended"]:S0("pdfColorSpacesExtended")}}}),A0.use({name:"pdfShadingTyped",register(){return{["pdfShadingTyped"]:S0("pdfShadingTyped")}}}),A0.use({name:"pdfTransparencyTyped",register(){return{["pdfTransparencyTyped"]:S0("pdfTransparencyTyped")}}}),A0.use({name:"pdfSigPades",register(){return{["pdfSigPades"]:S0("pdfSigPades")}}}),A0.use({name:"pdfSigAesGcm",register(){return{["pdfSigAesGcm"]:S0("pdfSigAesGcm")}}}),A0.use({name:"pdfDocumentParts",register(){return{["pdfDocumentParts"]:S0("pdfDocumentParts")}}}),A0.use({name:"pdfRedactionIso32005",register(){return{["pdfRedactionIso32005"]:S0("pdfRedactionIso32005")}}}),A0.use({name:"pdfXPrepress",register(){return{["pdfXPrepress"]:S0("pdfXPrepress")}}}),A0.use({name:"pdfWellTagged",register(){return{["pdfWellTagged"]:S0("pdfWellTagged")}}}),A0.use({name:"pdfOptionalContentExtended",register(){return{["pdfOptionalContentExtended"]:S0("pdfOptionalContentExtended")}}}),A0.use({name:"pdfEmbeddedFilesPortfolio",register(){return{["pdfEmbeddedFilesPortfolio"]:S0("pdfEmbeddedFilesPortfolio")}}}),A0.use({name:"pdfAssociatedFiles2",register(){return{["pdfAssociatedFiles2"]:S0("pdfAssociatedFiles2")}}}),A0.use({name:"pdfXmpExtended",register(){return{["pdfXmpExtended"]:S0("pdfXmpExtended")}}}),A0.use({name:"pdfLinearizationWrite",register(){return{["pdfLinearizationWrite"]:S0("pdfLinearizationWrite")}}}),A0.use({name:"pdf3dRichMedia",register(){return{["pdf3dRichMedia"]:S0("pdf3dRichMedia")}}}),A0.use({name:"pdfJbig2Read",register(){return{["pdfJbig2Read"]:S0("pdfJbig2Read")}}}),A0.use({name:"pdfMisc",register(){return{["pdfMisc"]:S0("pdfMisc")}}}),A0.use({name:"pdfInfoDictDeprecated",register(){return{["pdfInfoDictDeprecated"]:S0("pdfInfoDictDeprecated")}}}),A0.use({name:"pdfSandbox",register(){return{["pdfSandbox"]:S0("pdfSandbox")}}}),A0.use({name:"pdfLegacyXfaRead",register(){return{["pdfLegacyXfaRead"]:S0("pdfLegacyXfaRead")}}}),A0.use({name:"pdfLegacyRc4Read",register(){return{["pdfLegacyRc4Read"]:S0("pdfLegacyRc4Read")}}}),A0.use({name:"pdfLegacyDeprecatedFilters",register(){return{["pdfLegacyDeprecatedFilters"]:S0("pdfLegacyDeprecatedFilters")}}}),A0.use({name:"pdfLegacyDeprecatedAnnots",register(){return{["pdfLegacyDeprecatedAnnots"]:S0("pdfLegacyDeprecatedAnnots")}}}),A0.use({name:"pdfBuilder",register(){return{["pdfBuilder"]:S0("pdfBuilder")}}}),A0.use({name:"pdfIncrementalWriter",register(){return{["pdfIncrementalWriter"]:S0("pdfIncrementalWriter")}}}),A0.use({name:"pdfXrefStreamWriter",register(){return{["pdfXrefStreamWriter"]:S0("pdfXrefStreamWriter")}}}),A0.use({name:"pdfEncryptedWriter",register(){return{["pdfEncryptedWriter"]:S0("pdfEncryptedWriter")}}}),A0.use({name:"pdfSign",register(){return{["pdfSign"]:S0("pdfSign")}}}),A0.use({name:"pdfSignature",register(){return{["pdfSignature"]:S0("pdfSignature")}}}),A0}};export{S$ as pdfLegacyRwPackage};
|