+
    ŠvjŠÕ  ã                   óè  € ^ RI t ^ RIHt ^ RIHtHtHtHt ^ RIHt ^ RI	H
t
HtHtHt ^RIHt ^RIHtHt ^RIHt ^R	IHtHtHt ^R
IHt ^RIHt ^RIHtH t H!t!H"t" ^RIH#t$ ^RIH%t& ^RIH't( ^RIH)t* ^RI+H,t,H-t- ^RI.H/t/ ^RI0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>H?t?H@t@HAtAHBtBHCtC ^RIDHEtE ^RIFHGtGHHtH ^RIIHJtJ R R ltK ! R R]54      tL ! R R4      tM ! R R]]
]
3,          4      tNR# )é    N)Úabstractmethod)Ú	GeneratorÚIterableÚIteratorÚMapping)Údatetime)ÚAnyÚOptionalÚUnionÚcast)Ú
Encryption)Ú
PageObjectÚ_VirtualList)Úindex2label)Údeprecation_with_replacementÚlogger_warningÚparse_iso8824_date)ÚCatalogAttributes)ÚCatalogDictionary)ÚCheckboxRadioButtonAttributesÚGoToActionArgumentsÚPagesAttributesÚUserAccessPermissions)ÚCore)ÚDocumentInformationAttributes)ÚFieldDictionaryAttributes)ÚPageAttributes)ÚPdfReadErrorÚ
PyPdfError)Ú_decompress_with_limit)ÚArrayObjectÚBooleanObjectÚByteStringObjectÚDestinationÚDictionaryObjectÚEncodedStreamObjectÚFieldÚFitÚFloatObjectÚIndirectObjectÚ
NameObjectÚ
NullObjectÚNumberObjectÚ	PdfObjectÚTextStringObjectÚ
TreeObjectÚViewerPreferencesÚcreate_string_objectÚis_null_or_none)ÚEmbeddedFile)ÚOutlineTypeÚPagemodeType)ÚXmpInformationc          
      óx   € V ^8„  d   QhR\         R\        R\        \        \        \        R3,          3,          /# )é   ÚdÚsizeÚreturn.)ÚbytesÚintr   Útupler	   )Úformats   "ÚU/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/pypdf/_doc_common.pyÚ__annotate__rB   Z   s3   € ÷ 0ñ 0”eð 0¤3ð 0¬5´´e¼CÀ¸HµoÐ1EÕ+Fñ 0ó    c                 óš   € V^8”  d   \        R4      hRV ,           p V RR p \        \        \        P                  ! RV 4      ^ ,          4      # )é   zInvalid size in convert_to_ints           Nz>qiøÿÿÿ)r   r   r>   ÚstructÚunpack)r:   r;   s   &&rA   Úconvert_to_intrH   Z   sG   € Øˆa„xÜÐ;Ó<Ð<Ø+¨aÕ/€AØ	ˆ"ˆ#ˆ€AÜ””V—]’] 4¨Ó+¨AÕ.Ó/Ð/rC   c                   ó  a € ] tR t^bt o RtV 3R lR ltV 3R lR lt]V 3R lR l4       t]V 3R lR	 l4       t	]V 3R
 lR l4       t
]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R  lR! l4       t]V 3R" lR# l4       t]V 3R$ lR% l4       tR&tV tR'# )(ÚDocumentInformationaY  
A class representing the basic document metadata provided in a PDF File.
This class is accessible through
:py:class:`PdfReader.metadata<pypdf.PdfReader.metadata>`.

All text properties of the document metadata have
*two* properties, e.g. author and author_raw. The non-raw property will
always return a ``TextStringObject``, making it ideal for a case where the
metadata is being displayed. The raw property can sometimes return a
``ByteStringObject``, if pypdf was unable to decode the string's text
encoding; this requires additional safety in the caller and therefore is not
as commonly accessed.
c                ó   <€ V ^8„  d   QhRR/# ©r9   r<   N© )r@   Ú__classdict__s   "€rA   rB   Ú DocumentInformation.__annotate__q   s   ø€ ÷ (ñ (˜$ñ (rC   c                ó2   € \         P                  ! V 4       R # ©N)r%   Ú__init__©Úselfs   &rA   rR   ÚDocumentInformation.__init__q   s   € Ü×!Ò! $Ö'rC   c                ó6   <€ V ^8„  d   QhRS[ RS[S[ ,          /# ©r9   Úkeyr<   )Ústrr
   )r@   rN   s   "€rA   rB   rO   t   s   ø€ ÷ ñ ™Sð ¡X©c¥]ñ rC   c                óœ   € V P                  VR 4      p\        V\        4      '       d   V# \        V\        4      '       d   \	        V4      # R # rQ   )ÚgetÚ
isinstancer/   r#   rY   )rT   rX   Úretvals   && rA   Ú	_get_textÚDocumentInformation._get_textt   s@   € Ø—‘˜#˜tÓ$ˆÜ�fÔ.×/Ò/ØˆMÜ�fÔ.×/Ò/Ü�v“;ÐÙrC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ©r9   r<   ©r
   rY   )r@   rN   s   "€rA   rB   rO   }   s   ø€ ÷ 
ñ 
‘x¡•}ñ 
rC   c                óø   € V P                  \        P                  4      '       dU   V P                  \        P                  4      ;'       g.    V P                  \        P                  4      P	                  4       # R# )z
Read-only property accessing the document's title.

Returns a ``TextStringObject`` or ``None`` if the title is not
specified.
N)r[   ÚDIÚTITLEr^   Ú
get_objectrS   s   &rA   ÚtitleÚDocumentInformation.title|   sV   € ð �x‰xœŸ™×!Ò!ð �N‰Nœ2Ÿ8™8Ó$×GÐG¨¯©´·±Ó(:×(EÑ(EÓ(Gð	
ð ð	
rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   ‹   s   ø€ ÷ "ñ "™8¡C�=ñ "rC   c                ó@   € V P                  \        P                  4      # )z>The "raw" version of title; can return a ``ByteStringObject``.)r[   rd   re   rS   s   &rA   Ú	title_rawÚDocumentInformation.title_rawŠ   s   € ð �x‰xœŸ™Ó!Ð!rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   �   s   ø€ ÷ )ñ )™¡�ñ )rC   c                ó@   € V P                  \        P                  4      # )z�
Read-only property accessing the document's author.

Returns a ``TextStringObject`` or ``None`` if the author is not
specified.
)r^   rd   ÚAUTHORrS   s   &rA   ÚauthorÚDocumentInformation.author�   s   € ð �~‰~œbŸi™iÓ(Ð(rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   š   s   ø€ ÷ #ñ #™H¡S�Mñ #rC   c                ó@   € V P                  \        P                  4      # )z?The "raw" version of author; can return a ``ByteStringObject``.)r[   rd   ro   rS   s   &rA   Ú
author_rawÚDocumentInformation.author_raw™   s   € ð �x‰xœŸ	™	Ó"Ð"rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   Ÿ   s   ø€ ÷ *ñ *™¡#�ñ *rC   c                ó@   € V P                  \        P                  4      # )zƒ
Read-only property accessing the document's subject.

Returns a ``TextStringObject`` or ``None`` if the subject is not
specified.
)r^   rd   ÚSUBJECTrS   s   &rA   ÚsubjectÚDocumentInformation.subjectž   s   € ð �~‰~œbŸj™jÓ)Ð)rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   ©   ó   ø€ ÷ $ñ $™X¡c�]ñ $rC   c                ó@   € V P                  \        P                  4      # )z@The "raw" version of subject; can return a ``ByteStringObject``.)r[   rd   rx   rS   s   &rA   Úsubject_rawÚDocumentInformation.subject_raw¨   ó   € ð �x‰xœŸ
™
Ó#Ð#rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   ®   s   ø€ ÷ 	*ñ 	*™¡#�ñ 	*rC   c                ó@   € V P                  \        P                  4      # )a3  
Read-only property accessing the document's creator.

If the document was converted to PDF from another format, this is the
name of the application (e.g. OpenOffice) that created the original
document from which it was converted. Returns a ``TextStringObject`` or
``None`` if the creator is not specified.
)r^   rd   ÚCREATORrS   s   &rA   ÚcreatorÚDocumentInformation.creator­   s   € ð �~‰~œbŸj™jÓ)Ð)rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   º   r|   rC   c                ó@   € V P                  \        P                  4      # )z@The "raw" version of creator; can return a ``ByteStringObject``.)r[   rd   rƒ   rS   s   &rA   Úcreator_rawÚDocumentInformation.creator_raw¹   r€   rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   ¿   s   ø€ ÷ 	+ñ 	+™(¡3�-ñ 	+rC   c                ó@   € V P                  \        P                  4      # )a  
Read-only property accessing the document's producer.

If the document was converted to PDF from another format, this is the
name of the application (for example, macOS Quartz) that converted it to
PDF. Returns a ``TextStringObject`` or ``None`` if the producer is not
specified.
)r^   rd   ÚPRODUCERrS   s   &rA   ÚproducerÚDocumentInformation.producer¾   s   € ð �~‰~œbŸk™kÓ*Ð*rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   Ë   ó   ø€ ÷ %ñ %™h¡s�mñ %rC   c                ó@   € V P                  \        P                  4      # )zAThe "raw" version of producer; can return a ``ByteStringObject``.)r[   rd   rŒ   rS   s   &rA   Úproducer_rawÚ DocumentInformation.producer_rawÊ   ó   € ð �x‰xœŸ™Ó$Ð$rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   ©r
   r   )r@   rN   s   "€rA   rB   rO   Ð   s   ø€ ÷ Dñ D™x©Õ1ñ DrC   c                óR   € \        V P                  \        P                  4      4      # )z:Read-only property accessing the document's creation date.)r   r^   rd   ÚCREATION_DATErS   s   &rA   Úcreation_dateÚ!DocumentInformation.creation_dateÏ   s   € ô " $§.¡.´×1AÑ1AÓ"BÓCÐCrC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   Õ   s   ø€ ÷ *ñ *¡8©C¥=ñ *rC   c                ó@   € V P                  \        P                  4      # )z©
The "raw" version of creation date; can return a ``ByteStringObject``.

Typically in the format ``D:YYYYMMDDhhmmss[+Z-]hh'mm`` where the suffix
is the offset from UTC.
)r[   rd   r˜   rS   s   &rA   Úcreation_date_rawÚ%DocumentInformation.creation_date_rawÔ   s   € ð �x‰xœ×(Ñ(Ó)Ð)rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   r–   )r@   rN   s   "€rA   rB   rO   ß   s   ø€ ÷ ?ñ ?¡8©HÕ#5ñ ?rC   c                óR   € \        V P                  \        P                  4      4      # )z|
Read-only property accessing the document's modification date.

The date and time the document was most recently modified.
)r   r^   rd   ÚMOD_DATErS   s   &rA   Úmodification_dateÚ%DocumentInformation.modification_dateÞ   s   € ô " $§.¡.´·±Ó"=Ó>Ð>rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   è   s   ø€ ÷ %ñ %¡x±¥}ñ %rC   c                ó@   € V P                  \        P                  4      # )z­
The "raw" version of modification date; can return a
``ByteStringObject``.

Typically in the format ``D:YYYYMMDDhhmmss[+Z-]hh'mm`` where the suffix
is the offset from UTC.
)r[   rd   r¡   rS   s   &rA   Úmodification_date_rawÚ)DocumentInformation.modification_date_rawç   s   € ð �x‰xœŸ™Ó$Ð$rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   ó   s   ø€ ÷ +ñ +™(¡3�-ñ +rC   c                ó@   € V P                  \        P                  4      # )z‚
Read-only property accessing the document's keywords.

Returns a ``TextStringObject`` or ``None`` if keywords are not
specified.
)r^   rd   ÚKEYWORDSrS   s   &rA   ÚkeywordsÚDocumentInformation.keywordsò   s   € ð �~‰~œbŸk™kÓ*Ð*rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   rO   ý   r�   rC   c                ó@   € V P                  \        P                  4      # )zAThe "raw" version of keywords; can return a ``ByteStringObject``.)r[   rd   rª   rS   s   &rA   Úkeywords_rawÚ DocumentInformation.keywords_rawü   r”   rC   rM   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rR   r^   Úpropertyrg   rk   rp   rt   ry   r~   r„   rˆ   r�   r’   r™   r�   r¢   r¦   r«   r¯   Ú__static_attributes__Ú__classdictcell__©rN   s   @rA   rJ   rJ   b   s`  ø‡ € ñ÷(ð (÷ð ð ÷
ó ð
ð ÷"ó ð"ð ÷)ó ð)ð ÷#ó ð#ð ÷*ó ð*ð ÷$ó ð$ð ÷	*ó ð	*ð ÷$ó ð$ð ÷	+ó ð	+ð ÷%ó ð%ð ÷Dó ðDð ÷*ó ð*ð ÷?ó ð?ð ÷%ó ð%ð ÷+ó ð+ð ÷%ó ö%rC   rJ   c                   ó  a € ] tR tRt o RtRtRtRtRt]	]
V 3R lR l4       4       t]	]
V 3R lR l4       4       t]
V 3R	 lR
 l4       t]
V 3R lR l4       t]	]
V 3R lR l4       4       t]	V 3R lR l4       t]	V 3R lR l4       t]	V 3R lR l4       tV 3R lR ltV 3R lR ltV 3R lR lt]	V 3R lR l4       tV 3R lR ltRiV 3R lR  lltRjV 3R! lR" lltV 3R# lR$ ltV 3R% lR& ltV 3R' lR( ltV 3R) lR* ltRkV 3R+ lR, lltV 3R- lR. lt]	V 3R/ lR0 l4       t ] PB                  V 3R1 lR2 l4       t ]	V 3R3 lR4 l4       t"RlV 3R5 lR6 llt#]	V 3R7 lR8 l4       t$]
V 3R9 lR: l4       t%V 3R; lR< lt&V 3R= lR> lt'V 3R? lR@ lt(V 3RA lRB lt)]	V 3RC lRD l4       t*]	V 3RE lRF l4       t+]	V 3RG lRH l4       t,]	V 3RI lRJ l4       t-RmV 3RK lRL llt.RkV 3RM lRN llt/V 3RO lRP lt0V 3RQ lRR lt1]	V 3RS lRT l4       t2]	V 3RU lRV l4       t3]	]
V 3RW lRX l4       4       t4]	V 3RY lRZ l4       t5]	V 3R[ lR\ l4       t6]	V 3R] lR^ l4       t7V 3R_ lR` lt8V 3Ra lRb lt9RnV 3Rc lRd llt:]
RiV 3Re lRf ll4       t;V 3Rg lt<Rht=V t>R# )oÚPdfDocCommoni  za
Common functions from PdfWriter and PdfReader objects.

This root class is strongly abstracted.
FNc                ó    <€ V ^8„  d   QhRS[ /# ra   )r%   )r@   rN   s   "€rA   rB   ÚPdfDocCommon.__annotate__  s   ø€ ÷ ñ Ñ-ñ rC   c                ó   € R # rQ   rM   rS   s   &rA   Úroot_objectÚPdfDocCommon.root_object  ó   € ñ 	rC   c                ó    <€ V ^8„  d   QhRS[ /# ra   ©rY   )r@   rN   s   "€rA   rB   r½     s   ø€ ÷ ñ ™Cñ rC   c                ó   € R # rQ   rM   rS   s   &rA   Ú
pdf_headerÚPdfDocCommon.pdf_header  rÁ   rC   c                óL   <€ V ^8„  d   QhRS[ S[S[3,          RS[S[,          /# )r9   Úindirect_referencer<   )r   r>   r*   r
   r.   )r@   rN   s   "€rA   rB   r½     s,   ø€ ÷ ñ Ù"'©©^Ð(;Õ"<ðá	‘)Õ	ñrC   c                ó   € R # rQ   rM   ©rT   rÈ   s   &&rA   rf   ÚPdfDocCommon.get_object  ó   € ñ 	rC   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r9   ÚindirectÚobjr<   )r*   r.   )r@   rN   s   "€rA   rB   r½   "  s"   ø€ ÷ ñ ©ð ¹Yð É9ñ rC   c                ó   € R # rQ   rM   )rT   rÎ   rÏ   s   &&&rA   Ú_replace_objectÚPdfDocCommon._replace_object!  ó   € árC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   )r
   r%   )r@   rN   s   "€rA   rB   r½   '  s   ø€ ÷ ñ ‘xÑ 0Õ1ñ rC   c                ó   € R # rQ   rM   rS   s   &rA   Ú_infoÚPdfDocCommon._info%  rÁ   rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   )r
   rJ   )r@   rN   s   "€rA   rB   r½   +  s   ø€ ÷ ñ ™(Ñ#6Õ7ñ rC   c                óp   € \        4       pV P                  f   R# VP                  V P                  4       V# )zç
Retrieve the PDF file's document information dictionary, if it exists.

Note that some PDF files use metadata streams instead of document
information dictionaries, and these metadata streams will not be
accessed by this function.
N)rJ   rÖ   Úupdate)rT   r]   s   & rA   ÚmetadataÚPdfDocCommon.metadata*  s.   € ô %Ó&ˆØ�:‰:ÒÙØ�‰�d—j‘jÔ!ØˆrC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   )r
   r7   )r@   rN   s   "€rA   rB   r½   :  s   ø€ ÷ ñ ™h¡~Õ6ñ rC   c                ó   € R # rQ   rM   rS   s   &rA   Úxmp_metadataÚPdfDocCommon.xmp_metadata9  rÓ   rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   )r
   r1   )r@   rN   s   "€rA   rB   r½   >  s   ø€ ÷ ñ ¡HÑ->Õ$?ñ rC   c                óŽ  € V P                   P                  \        P                  R4      pVf   R# VP	                  4       p\        V\        4      '       go   \        V4      p\        VR4      '       d-   VP                  e   V P                  VP                  V4       V# WP                   \        \        P                  4      &   V# )zCReturns the existing ViewerPreferences as an overloaded dictionary.NrÈ   )r¿   r[   ÚCDÚVIEWER_PREFERENCESrf   r\   r1   ÚhasattrrÈ   rÑ   r+   )rT   Úos   & rA   Úviewer_preferencesÚPdfDocCommon.viewer_preferences=  s¥   € ð ×Ñ× Ñ ¤×!6Ñ!6¸Ó=ˆØŠ9ÙØ�L‰L‹NˆÜ˜!Ô.×/Ò/Ü! !Ó$ˆAÜ�qÐ.×/Ò/°A×4HÑ4HÒ4TØ×$Ñ$ Q×%9Ñ%9¸1Ô=ð ˆð GH× Ñ ¤¬B×,AÑ,AÓ!BÑCØˆrC   c                ó    <€ V ^8„  d   QhRS[ /# ra   ©r>   )r@   rN   s   "€rA   rB   r½   L  s   ø€ ÷ )ñ )™sñ )rC   c                óö   € V P                   '       d   V P                  R,          R,          # V P                  f   V P                  V P                  4       V P                  f   Q h\        V P                  4      # )z¬
Calculate the number of pages in this PDF file.

Returns:
    The number of pages of the parsed PDF file.

Raises:
    PdfReadError: If restrictions prevent this action.

ú/Pagesú/Count)Úis_encryptedr¿   Úflattened_pagesÚ_flattenÚ	_readonlyÚlenrS   s   &rA   Úget_num_pagesÚPdfDocCommon.get_num_pagesL  se   € ð ××ÐØ×#Ñ# HÕ-¨hÕ7Ð7Ø×ÑÒ'Ø�M‰M˜$Ÿ.™.Ô)Ø×#Ñ#Ò/Ð/Ð/Ü�4×'Ñ'Ó(Ð(rC   c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r9   Úpage_numberr<   )r>   r   )r@   rN   s   "€rA   rB   r½   a  s   ø€ ÷ 1ñ 1¡Cð 1©Jñ 1rC   c                ó¤   € V P                   f   V P                  V P                  4       V P                   f   Q R4       hV P                   V,          # )zÿ
Retrieve a page by number from this PDF file.
Most of the time ``.pages[page_number]`` is preferred.

Args:
    page_number: The page number to retrieve
        (pages begin at zero)

Returns:
    A :class:`PageObject<pypdf._page.PageObject>` instance.

zhint for mypy)rï   rð   rñ   )rT   r÷   s   &&rA   Úget_pageÚPdfDocCommon.get_pagea  sH   € ð ×ÑÒ'Ø�M‰M˜$Ÿ.™.Ô)Ø×#Ñ#Ò/Ð@°Ó@Ð/Ø×#Ñ# KÕ0Ð0rC   c                ó<   <€ V ^8„  d   QhRS[ RS[S[S[ 3,          /# rö   )r>   r?   r%   )r@   rN   s   "€rA   rB   r½   s  s*   ø€ ÷ #ñ #áð#ñ 
Ñ¡Ð$Õ	%ñ#rC   c                ó¶   aaa€ \        \        V P                  R,          4      oR VVV3R lloS! S^ 4      w  r#\        V\        4      '       g   Q R4       hW#3# )z—
Retrieve the node and position within the /Kids containing the page.
If page_number is greater than the number of pages, it returns the top node, -1.
rì   c                ót   € V ^8„  d   QhR\         R\        R\        \        \        ,          \        3,          /# )r9   ÚnodeÚmir<   )r%   r>   r?   r
   r.   )r@   s   "rA   rB   Ú4PdfDocCommon._get_page_in_node.<locals>.__annotate__}  s8   € ÷ 	Cñ 	CÜ"ð	CÜ(+ð	Cä”8œIÕ&¬Ð+Õ,ñ	CrC   c                 ó¸  <€ \        \        V P                  R ^4      4      pV R,          R8X  d   SV8X  d   V R3# RV^,           3# SV,
          V8¼  d   V S	8X  d   S	R3# RW,           3# \        \        \        V R,          4      4       FD  w  r4\        \
        VP                  4       4      pS! WA4      w  rVVe   V^ 8  d   W3u # WV3u # TpKF  	  \        R4      h)rí   z/Typeú/PageNú/Kidsz"Unexpectedly cannot find the node.éÿÿÿÿ)r   r>   r[   Ú	enumerater!   r%   rf   r   )
rþ   rÿ   ÚmaÚidxÚkidÚnÚir÷   Úrecursive_callÚtops
   &&     €€€rA   r  Ú6PdfDocCommon._get_page_in_node.<locals>.recursive_call}  sÛ   ø€ ô ”c˜4Ÿ8™8 H¨aÓ0Ó1ˆBØ�G�} Ô'Ø "Ô$Ø ˜8�OØ˜R !�V�|Ð#Ø˜bÕ  RÔ'Ø˜3”;Ø ˜7�NØ˜R�W�}Ð$Ü%¤d¬;¸¸W½Ó&FÖG‘�ÜÔ+¨S¯^©^Ó-=Ó>�Ù% cÓ.‘�Ø’=Ø˜1”uØ#˜yÒ(à˜4’KØ’ñ Hô ÐAÓBÐBrC   Úmypy)r   r%   r¿   r\   )rT   r÷   rþ   r  r  r  s   &f  @@rA   Ú_get_page_in_nodeÚPdfDocCommon._get_page_in_nodes  sZ   ú€ ô Ô# T×%5Ñ%5°hÕ%?Ó@ˆ÷	Cò 	Cñ. # 3¨Ó*‰	ˆÜ˜$Ô 0×1Ò1Ð9°6Ó9Ð1ØˆyÐrC   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# ra   )ÚdictrY   r$   )r@   rN   s   "€rA   rB   r½   ™  s   ø€ ÷ .ñ .¡D©©kÐ)9Õ$:ñ .rC   c                ó"   € V P                  4       # )z8A read-only dictionary which maps names to destinations.)Ú_get_named_destinationsrS   s   &rA   Únamed_destinationsÚPdfDocCommon.named_destinations˜  s   € ð ×+Ñ+Ó-Ð-rC   c                ó    <€ V ^8„  d   QhRS[ /# ra   )r!   )r@   rN   s   "€rA   rB   r½   �  s   ø€ ÷ ñ ¡[ñ rC   c                óÞ  € \        4       p\        P                  V P                  9   Ed    \	        V P                  \        P                  ,          \
        4      '       Edj   \        \
        V P                  \        P                  ,          4      p\        P                  V9   dÁ   \	        V\        P                  ,          \
        4      '       d–   \        \
        V\        P                  ,          4      pVP                  p\        P                  V9   d(   \        \         V\        P                  ,          4      pV# \        4       pW\        \        P                  4      &    V# \        V R 4      '       dR   \        4       pV P                  V4      pWB\        \        P                  4      &   W\        \        P                  4      &   V# \        V R 4      '       d’   \        4       pV P                  V4      pWPP                  \        \        P                  4      &   \        4       pV P                  V4      pWB\        \        P                  4      &   W\        \        P                  4      &   V# )Ú_add_object)r!   ÚCAÚNAMESr¿   r\   r%   r   ÚDESTSrÈ   r+   rå   r  )rT   Ú
named_destÚnamesÚdestsÚ	dests_refÚ	names_refs   &     rA   Úget_named_dest_rootÚ PdfDocCommon.get_named_dest_root�  s´  € Ü “]ˆ
Ü�8‰8�t×'Ñ'Õ'¬JØ×ÑœRŸX™XÕ&Ô(8÷-
ó -
ô Ô)¨4×+;Ñ+;¼B¿H¹HÕ+EÓFˆEÜ�x‰x˜5Ô ¤Z°´b·h±hµÔAQ×%RÒ%RäÔ-¨u´R·X±X­Ó?�Ø!×4Ñ4�	Ü—8‘8˜uÔ$ä!%¤k°5¼¿¹µ?Ó!C�Jð& Ðô# "-£�JØ2<œ*¤R§X¡XÓ.Ò/ð  Ðô ˜˜}×-Ò-Ü(Ó*�Ø ×,Ñ,¨UÓ3�	Ø.7”j¤§¡Ó*Ñ+Ø.8”j¤§¡Ó*Ñ+ð Ðô �T˜=×)Ò)Ü$Ó&ˆEØ×(Ñ(¨Ó/ˆIØ5>×ÑœZ¬¯©Ó1Ñ2Ü$Ó&ˆEØ×(Ñ(¨Ó/ˆIØ*3”*œRŸX™XÓ&Ñ'Ø*4”*œRŸX™XÓ&Ñ'àÐrC   c                ó|   <€ V ^8„  d   QhRS[ S[R3,          RS[S[S[S[3,          ,          RS[S[S[3,          /# )r9   ÚtreeNr]   r<   )r   r0   r
   r  rY   r$   )r@   rN   s   "€rA   rB   r½   ¿  sQ   ø€ ÷ Gñ Gá‘J Ð$Õ%ðGñ ™™c¡;Ð.Õ/Õ0ðGñ 
‰c‘;ÐÕ	ñ	GrC   c                óÎ  € Vf¾   / pV P                   p\        P                  V9   d'   \        \        V\        P                  ,          4      pMt\        P
                  V9   d`   \        \        V\        P
                  ,          4      p\        P                  V9   d&   \        \        V\        P                  ,          4      p\        V4      '       d   V# Vf   Q R4       h\        P                  V9   dO   \        \        V\        P                  ,          4       F#  pV P                  VP                  4       V4       K%  	  V# \        P
                  V9   Ed    \        \        V\        P
                  ,          4      p^ pV\        V4      8  dÆ   WF,          P                  4       pV^,          p\        V\        \         34      '       g   KM   WF,          P                  4       pT^,          p\        T\        4      '       d   RT9   d   TR,          pMK–  T P%                  Yx4      p	T	f   K­  Y’\        \         T	R,          4      &   Y’\!        T4      &   KÕ   V# VP'                  4        Fg  w  r«VP                  4       p\        V\        4      '       d"   RV9   d   VR,          P                  4       pMKL  V P%                  W¬4      p	V	f   Kc  W’V
&   Ki  	  V#   \"         d     T# i ; i)zß
Retrieve the named destinations present in the document.

Args:
    tree: The current tree.
    retval: The previously retrieved destinations for nested calls.

Returns:
    A dictionary which maps names to destinations.

r  ú/Dú/Title)r¿   r  r  r   r0   r  r%   r3   r   ÚKIDSr!   r  rf   rò   r\   r=   rY   Ú
IndexErrorÚ_build_destinationÚitems)rT   r%  r]   Úcatalogr  r  r
  rX   ÚvalueÚdestÚk__Úv__Úvals   &&&          rA   r  Ú$PdfDocCommon._get_named_destinations¿  sU  € ð  Š>ØˆFØ×&Ñ&ˆGô �x‰x˜7Ô"ÜœJ¨´·±Õ(9Ó:‘Ü—‘˜WÔ$ÜÔ-¨w´r·x±xÕ/@ÓA�Ü—8‘8˜uÔ$Ü¤
¨E´"·(±(­OÓ<�Dä˜4× Ò ØˆMØÒÐ' Ó'Ðä×Ñ 4Ô'äœK¨¬o×.BÑ.BÕ)CÖD�Ø×,Ñ,¨S¯^©^Ó-=¸vÖFñ EðJ ˆôE �X‰X˜ÕÜÔ)¨4´·±­>Ó:ˆEØˆAØ”c˜%“j”.Ø•h×)Ñ)Ó+�Ø�Q•�Ü! #¬¬s |×4Ò4ÙðØ!�H×/Ñ/Ó1�Eð �Q•�Ü˜eÔ%5×6Ò6Ø˜u”}Ø % d¥™á Ø×.Ñ.¨sÓ:�ØÔ#Ø8<œ4¤ T¨(¥^Ó4Ñ5à'+œ3˜s›8Ó$ð' !ð> ˆð !ŸJ™JžL‘�Ø—n‘nÓ&�Ü˜cÔ#3×4Ò4Ø˜s”{Ø! $�i×2Ñ2Ó4™á Ø×.Ñ.¨sÓ8�ØÔ#Ø"&˜3“Kñ )ð ˆøô1 "ô Øð. ˆð1ús   ÇK ËK$Ë#K$c                óÄ   <€ V ^8„  d   QhRS[ S[,          RS[ S[S[S[3,          ,          RS[ S[,          RS[ S[S[,          ,          RS[ S[S[S[3,          ,          /# )r9   r%  r]   ÚfileobjÚstackr<   )r
   r0   r  r	   Úlistr.   rY   )r@   rN   s   "€rA   rB   r½     si   ø€ ÷ 0ñ 0á‘zÕ"ð0ñ ™™c¡3˜h�Õ(ð0ñ ™#•ð	0ñ
 ™™Y�Õ(ð0ñ 
‘$‘s™C�x•.Õ	!ñ0rC   c                óˆ  a€ \         P                  ! 4       pVP                  \        P                  ! 4       4       VfY   / pV P                  p. p\
        P                  V9   d2   \        \        \        ,          V\
        P                  ,          4      oMR# Sf   V# Vf   Q hRS9   dF   \        \        SR,          4      pV F&  pVP                  4       p	V P                  W’W5V4       K(  	  V# \        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   V P                  SW#WT4       V# )aW  
Extract field data if this PDF contains interactive form fields.

The *tree*, *retval*, *stack* parameters are for recursive use.

Args:
    tree: Current object to parse.
    retval: In-progress list of fields.
    fileobj: A file object (usually a text file) to write
        a report to on all interactive form fields found.
    stack: List of already parsed objects.

Returns:
    A dictionary where each key is a field name, and each
    value is a :class:`Field<pypdf.generic.Field>` object. By
    default, the mapping name is used for keys.
    ``None`` if form data could not be located.

Nz/Fieldsc              3   ó,   <"  € T F	  qS9   x € K  	  R # 5irQ   rM   )Ú.0Úattrr%  s   & €rA   Ú	<genexpr>Ú*PdfDocCommon.get_fields.<locals>.<genexpr>8  s   øé € Ð;Ñ*: $˜–Ó*:ùó   ƒTF)ÚFAÚattributes_dictrÚ   r   r¿   rã   Ú	ACRO_FORMr   r
   r0   r!   rf   Ú_build_fieldÚany)
rT   r%  r]   r5  r6  Úfield_attributesr-  ÚfieldsÚfÚfields
   &f&&&     rA   Ú
get_fieldsÚPdfDocCommon.get_fields  s  ø€ ô4 ×-Ò-Ó/ÐØ×ÑÔ =× MÒ MÓ OÔPØŠ>ØˆFØ×&Ñ&ˆGØˆEä�|‰|˜wÔ&ÜœH¤ZÕ0°'¼"¿,¹,Õ2GÓH‘áØŠ<ØˆMØÒ Ð Ð Ø˜ÔÜœ+ t¨I¥Ó7ˆFÛ�ØŸ™›�Ø×!Ñ! %°ÈEÖRñ ð ˆ÷ ‹SÔ;Ñ*:Ó;�S�SŠSÔ;Ñ*:Ó;×;Ò;à×Ñ˜d FÐ5EÔMØˆrC   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r9   Úparentr<   )r%   rY   )r@   rN   s   "€rA   rB   r½   =  s   ø€ ÷ /ñ /Ñ0@ð /ÁSñ /rC   c                ó0  € R V9   d   \        \        VR ,          4      # RV9   dS   V P                  \        \        VR,          4      4      R,           \        \        VP	                  RR4      4      ,           # \        \        VP	                  RR4      4      # )ú/TMú/ParentÚ.ú/TÚ )r   rY   Ú_get_qualified_field_namer%   r[   )rT   rK  s   &&rA   rR  Ú&PdfDocCommon._get_qualified_field_name=  s…   € Ø�FŒ?Üœ˜V E�]Ó+Ð+Ø˜Ôà×.Ñ.ÜÔ)¨6°)Õ+<Ó=óð õô ”s˜FŸJ™J t¨RÓ0Ó1õ	2ðô ”C˜Ÿ™ D¨"Ó-Ó.Ð.rC   c                óx   <€ V ^8„  d   QhRS[ S[S[3,          RS[S[S[3,          RS[RS[RS[S[,          RR/# )r9   rG  r]   r5  rD  r6  r<   N)r   r0   r%   r  r	   r7  r.   )r@   rN   s   "€rA   rB   r½   J  s^   ø€ ÷ (8ñ (8á‘ZÑ!1Ð1Õ2ð(8ñ ‘S™#�X•ð(8ñ ð	(8ñ
 ð(8ñ ‘I�ð(8ð 
ñ(8rC   c                óJ  a€ \         ;QJ d    V3R  lR 4       F  '       d   K   RM	  RM! V3R  lR 4       4      '       d   R# V P                  S4      pV'       d%   V P                  VSV4       VP                  R4       \	        S4      W&&   W&,          P
                  P                  4       pVP                  \        P                  R4      R8X  da   VP                  \        \        P                  4      4      '       d3   V\        \        P                  4      ,          W&,          \        R4      &   VP                  \        P                  R4      R8X  d�   R	V9   d‰   \        \        VR	,          R
,          P                  4       4      4      W&,          \        R4      &   RW&,          R,          9  d1   W&,          \        R4      ,          P                  \        R4      4       EM©VP                  \        P                  R4      R8X  Ed„   VP                  \        P                   ^ 4      \        P"                  P$                  ,          ^ 8w  Ed?   . p\        V4      W&,          \        R4      &   VP                  \        P&                  / 4       Fw  p	V	P                  4       p	\        V	R	,          R
,          P                  4       4       F  p
W¨9  g   K  VP                  V
4       K  	  \        V4      W&,          \        R4      &   Ky  	  VP                  \        P                   ^ 4      \        P"                  P(                  ,          ^ 8w  dA   RW&,          R,          9   d-   W&,          R,          W&,          R,          P+                  R4       V P-                  SW#V4       R# )c              3   ó,   <"  € T F	  qS9  x € K  	  R # 5irQ   rM   )r:  r;  rG  s   & €rA   r<  Ú,PdfDocCommon._build_field.<locals>.<genexpr>R  s   øé € Ð;©] T˜5Ö «]ùr>  FTNÚ
rQ  ú/Chz	/_States_ú/Btnz/APz/Nz/Off)rP  rM  )ÚallrR  Ú_write_fieldÚwriter'   rÈ   rf   r[   r?  ÚFTr+   ÚOptr!   r7  ÚkeysÚappendÚFfÚFfBitsÚRadioÚKidsÚNoToggleToOffÚindexÚ_check_kids)rT   rG  r]   r5  rD  r6  rX   rÏ   ÚstatesÚkÚss   &f&&&&     rA   rB  ÚPdfDocCommon._build_fieldJ  su  ø€ ÷ ‹3Ô;©]Ó;�3�3Š3Ô;©]Ó;×;Ò;ÙØ×,Ñ,¨UÓ3ˆßØ×Ñ˜g uÐ.>Ô?Ø�M‰M˜$ÔÜ˜E“lˆ‰Ø�k×,Ñ,×7Ñ7Ó9ˆØ�7‰7”2—5‘5˜"Ó Ô&¨3¯7©7´:¼b¿f¹fÓ3E×+FÒ+FØ36´zÄ"Ç&Á&Ó7IÕ3JˆF�Kœ
 ;Ó/Ñ0Ø�7‰7”2—5‘5˜"Ó Ô'¨E°S¬Lä3>Ü�S˜•Z Õ%×*Ñ*Ó,Ó-ó4ˆF�Kœ
 ;Ó/Ñ0ð ˜V�[¨Õ5Ô5Ø•œJ {Ó3Õ4×;Ñ;¼JÀvÓ<NÔOùØ�W‰W”R—U‘U˜BÓ 6Õ)¨c¯g©g´b·e±e¸QÓ.?Ä"Ç)Á)Ç/Á/Õ.QÐUVÕ.VØ "ˆFÜ3>¸vÓ3FˆF�Kœ
 ;Ó/Ñ0Ø—W‘WœRŸW™W bÖ)�Ø—L‘L“N�Ü˜a �h t�n×1Ñ1Ó3Ö4�AØ–ØŸ™ aÖ(ñ 5ô 8CÀ6Ó7J�•œJ {Ó3Ó4ñ *ð —‘œŸ™˜qÓ!¤B§I¡I×$;Ñ$;Õ;¸qÔ@Ø˜f�k¨+Õ6Ô6à•K Õ,¨V­[¸Õ-E×-KÑ-KÈFÓ-SÐTà×Ñ˜ °Ö7rC   c          
      ó\   <€ V ^8„  d   QhRS[ S[S[3,          RS[RS[RS[S[,          RR/# )r9   r%  r]   r5  r6  r<   N)r   r0   r%   r	   r7  r.   )r@   rN   s   "€rA   rB   r½   t  sL   ø€ ÷ =ñ =á‘JÑ 0Ð0Õ1ð=ñ ð=ñ ð	=ñ
 ‘I�ð=ð 
ñ=rC   c                ó(  € W9   d$   \        R \        V P                  V4      R7       R# VP                  V4       \        P
                  V9   dC   V\        P
                  ,           F%  pVP                  4       pV P                  WRW44       K'  	  R# R# )z%(field_name)s already parsed)ÚsourceÚ
field_nameN)r   r±   rR  ra  r   r)  rf   rH  )rT   r%  r]   r5  r6  r  s   &&&&& rA   rh  ÚPdfDocCommon._check_kidst  s{   € ð Œ=ÜØ/ÜØ×9Ñ9¸$Ó?õñ
 Ø�‰�TÔÜ×Ñ 4Ô'àœO×0Ñ0×1Ð1�Ø—n‘nÓ&�Ø—‘ ¨WÖ<ó 2ñ (rC   c                ó0   <€ V ^8„  d   QhRS[ RS[ RS[ RR/# )r9   r5  rG  rD  r<   N©r	   )r@   rN   s   "€rA   rB   r½   ‰  s)   ø€ ÷ #ñ #¡Cð #±ð #Ásð #Ètñ #rC   c           	     óÖ  € \         P                  ! 4       pV\        P                  ! 4       ,           pV Fð  pV\         P                  \         P                  39   d   K*  W5,          p V\         P
                  8X  d@   R RRRRRRR/pW%,          V9   d'   VP                  V RWrV,          ,           R	24       K…  K‡  V\         P                  8X  d8    W%,          \         P                  ,          pVP                  V RV R	24       KÓ  VP                  V RW%,           R	24       Kò  	  R
#   \         d!    Y%,          \         P                  ,          p Lfi ; i  \         d     EK3  i ; i)rZ  ÚButtonú/TxÚTextrY  ÚChoicez/SigÚ	Signatureú: rX  N)r?  Ú
attributesr   re  ÚAAr^  r]  ÚParentÚTMÚKeyErrorÚT)	rT   r5  rG  rD  Úfield_attributes_tupler;  Ú	attr_nameÚtypesÚnames	   &&&&     rA   r\  ÚPdfDocCommon._write_field‰  sC  € Ü!#§¢£Ðà"Ô%B×%MÒ%MÓ%OÕOð 	ó +ˆDØÜ—‘Ü—‘ðô ñ Ø(Õ.ˆIðØœ2Ÿ5™5”=ð  Ø˜vØ˜xØ ð	�Eð •{ eÔ+ØŸ™¨¨°2°eÀ$½KÕ6HÐ5IÈÐ&LÖMñ ,àœRŸY™YÔ&ð1Ø$�{¬2¯5©5Õ1˜ð —M‘M Y K¨r°$°°rÐ":Ö;à—M‘M Y K¨r°%µ+°¸bÐ"AÖBó5 +øô, $ô 1Ø$�{¬2¯4©4Õ0šð1ûô
 ô ãðúsC   Á'AEÂ;EÃD*Ã.EÄEÄ*(EÅEÅEÅEÅE(Å'E(c                ó<   <€ V ^8„  d   QhRS[ RS[S[S[3,          /# )r9   Úfull_qualified_namer<   )Úboolr  rY   r	   )r@   rN   s   "€rA   rB   r½   ®  s$   ø€ ÷ $ñ $¹ð $ÉÉcÑSVÈhÍñ $rC   c           
     ó<  € R R lpV P                  4       pVf   / # / pVP                  4        Fi  w  rVVP                  R4      R8X  g   K  V'       d   VP                  R4      WE&   K:  VP                  R4      WB! \        \        VR,          4      V4      &   Kk  	  V# )a_  
Retrieve form fields from the document with textual data.

Args:
    full_qualified_name: to get full name

Returns:
    A dictionary. The key is the name of the form field,
    the value is the content of the field.

    If the document contains multiple form fields with the same name, the
    second and following will get the suffix .2, .3, ...

c                ó^   € V ^8„  d   QhR\         R\        \        \        3,          R\         /# )r9   rj  rE  r<   )rY   r  r	   )r@   s   "rA   rB   Ú7PdfDocCommon.get_form_text_fields.<locals>.__annotate__¾  s)   € ÷ 	ñ 	œ3ð 	¬¬S´#¨X­ð 	¼3ñ 	rC   c                 ó|   a € S V9  d   S # S R ,           \        \        V 3R lV 4       4      ^,           4      ,           # )rO  c              3   óf   <"  € T F&  qP                  SR ,           4      '       g   K"  ^x € K(  	  R# 5i)rO  N)Ú
startswith)r:  Úkkrj  s   & €rA   r<  ÚIPdfDocCommon.get_form_text_fields.<locals>.indexed_key.<locals>.<genexpr>Ä  s    øé € ÐG¡f ·±¸aÀ#½g×0FŸ!š!£fùs   ƒ1§
1)rY   Úsum)rj  rE  s   f&rA   Úindexed_keyÚ6PdfDocCommon.get_form_text_fields.<locals>.indexed_key¾  s=   ø€ Ø˜ŒØ�àØõä”cÔG¡fÓGÓGÈ!ÕKÓLõMðrC   ú/FTrv  z/VrP  )rH  r,  r[   r   rY   )rT   r‡  r’  Ú
formfieldsÚffrG  r.  s   &&     rA   Úget_form_text_fieldsÚ!PdfDocCommon.get_form_text_fields®  sˆ   € õ 	ð —_‘_Ó&ˆ
ØÒØˆIØˆØ&×,Ñ,Ö.‰LˆEØ�y‰y˜Ó 5Ö(ß&Ø %§	¡	¨$£�B“IàBGÇ)Á)ÈDÃ/�B�{¤4¬¨U°4­[Ó#9¸2Ó>Ó?ñ /ð ˆ	rC   c                óP   <€ V ^8„  d   QhRS[ S[S[S[3,          RS[S[,          /# )r9   rG  r<   )r   r'   r.   r*   r7  r   )r@   rN   s   "€rA   rB   r½   Ô  s2   ø€ ÷ D
ñ D
Ù™5¡)©^Ð;Õ<ðD
á	‰jÕ	ñD
rC   c           
     ó  a€ R V3R llo \        \        VP                  P                  4       4      p\        S! TR4      4      '       d   \        R4      h. pTP                  RR4      R	8X  d`   R
T9   d   TR
,          P                  4       .pMùT P                   Uu. uF(  pTP                  TP                  RR4      9   g   K&  TNK*  	  ppMºTP                  RR4      pT F¢  pTP                  4       pTP                  RR4      R	8X  g   K,  RT9  g   K5  R
T9   d!   Y6R
,          P                  4       .,          pK\  TT P                   Uu. uF(  pTP                  TP                  RR4      9   g   K&  TNK*  	  up,          pK¤  	  T Uu. uFG  p\        T\        4      '       d   TM+T P                  T P                  TP                  4      ,          NKI  	  up#   \         d   p\        R4      ThRp?ii ; iu upi u upi u upi )a  
Provides list of pages where the field is called.

Args:
    field: Field Object, PdfObject or IndirectObject referencing a Field

Returns:
    List of pages:
        - Empty list:
            The field has no widgets attached
            (either hidden field or ancestor field).
        - Single page list:
            Page where the widget is present
            (most common).
        - Multi-page list:
            Field with multiple kids widgets
            (example: radio buttons, field repeated on multiple pages).

c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r9   rÏ   rX   r<   )r%   rY   r	   )r@   s   "rA   rB   Ú:PdfDocCommon.get_pages_showing_field.<locals>.__annotate__ë  s"   € ÷ 	ñ 	Ô 0ð 	´sð 	¼sñ 	rC   c                 óŠ   <€ W9   d	   W,          # R V 9   d-   S! \        \        V R ,          P                  4       4      V4      # R# )rN  N)r   r%   rf   )rÏ   rX   Ú_get_inheriteds   &&€rA   rž  Ú<PdfDocCommon.get_pages_showing_field.<locals>._get_inheritedë  sC   ø€ ØŒzØ•x�Ø˜CÔÙ%ÜÔ)¨3¨y­>×+DÑ+DÓ+FÓGÈóð ñ rC   zField type is invalidNr”  zField is not validz/SubtyperQ  z/Widgetz/Pz/Annotsr  rP  rM   )r   r%   rÈ   rf   Ú	ExceptionÚ
ValueErrorr3   r[   Úpagesr\   r   Ú_get_page_number_by_indirect)	rT   rG  ÚexcÚretÚpÚkidsrj  Úxrž  s	   &&      @rA   Úget_pages_showing_fieldÚ$PdfDocCommon.get_pages_showing_fieldÔ  sî  ø€ ÷.	ð 	ð	?äÔ)¨5×+CÑ+C×+NÑ+NÓ+PÓQˆEô ™>¨%°Ó7×8Ò8ÜÐ1Ó2Ð2ØˆØ�9‰9�Z Ó$¨	Ô1Ø�uŒ}Ø˜T•{×-Ñ-Ó/Ð0‘ð "ŸZšZóá'˜Ø×/Ñ/°1·5±5¸ÀBÓ3GÑG÷ �AÙ'ð ð �ð —9‘9˜W bÓ)ˆDÛ�Ø—L‘L“N�Ø—E‘E˜* bÓ)¨YÖ6¸TÈ¾]à˜q”yØ $¥× 2Ñ 2Ó 4Ð5Õ5šàà%)§Z¢Zó á%/ Ø ×3Ñ3°q·u±u¸YÈÓ7KÑK÷ ˜AÙ%/ñ õ šñ ñ  ó	
ñ �ô ˜!œZ×(Ò(ñ à—*‘*˜T×>Ñ>¸q×?SÑ?SÓTÕUòWñ ñ	
ð 	
øô9 ô 	?ÜÐ4Ó5¸3Ð>ûð	?üòùò ùò

s6   Œ(G Â#G<ÃG<Å#HÅ6HÆAHÇG9Ç(G4Ç4G9c                ó<   <€ V ^8„  d   QhRS[ RS[S[S[3,          /# rL   )r   r$   r/   r#   )r@   rN   s   "€rA   rB   r½     s%   ø€ ÷ ñ á	ˆt‘[Ñ"2Ñ4DÐDÕ	EñrC   c                ó   € RV P                   9  d   R# V P                   R,          p\        V\        4      '       d   VP                  4       p\        V\        4      '       d   \        V4      # \        V\        4      '       d'    Vvr#p\        V\        V4      4      p\        RW%4      # R#   \         d   p\        RT RT 24      hRp?ii ; i)zÍ
Property to access the opening destination (``/OpenAction`` entry in
the PDF catalog). It returns ``None`` if the entry does not exist
or is not set.

Raises:
    Exception: If a destination is invalid.

z/OpenActionNÚ
OpenActionzInvalid Destination rz  )r¿   r\   r=   ÚdecoderY   r2   r!   r(   r?   r$   r   )rT   ÚoaÚpageÚtypÚarrayÚfitr¤  s   &      rA   Úopen_destinationÚPdfDocCommon.open_destination  sÁ   € ð  × 0Ñ 0Ô0ÙØ×"Ñ" =Õ1ˆÜ�bœ%× Ò Ø—‘“ˆBÜ�bœ#×ÒÜ'¨Ó+Ð+Ü�bœ+×&Ò&ðDØ$&Ð!�˜EÜ˜#œu U›|Ó,�Ü" <°Ó;Ð;ñ øô ô DÜÐ"6°r°d¸"¸S¸EÐ BÓCÐCûðDús   Â$B, Â,CÂ7CÃCc                ó@   <€ V ^8„  d   QhRS[ RS[S[S[3,          RR/# )r9   r/  Nr<   )r   rY   r$   r   )r@   rN   s   "€rA   rB   r½   9  s.   ø€ ÷ Dñ D¡U¨4±±kÁ:Ð+MÕ%Nð DÐSWñ DrC   c                ó   € \        R 4      h)zNo setter for open_destination)ÚNotImplementedError)rT   r/  s   &&rA   r´  rµ  8  s   € ä!Ð"BÓCÐCrC   c                ó    <€ V ^8„  d   QhRS[ /# ra   )r5   )r@   rN   s   "€rA   rB   r½   =  s   ø€ ÷ #ñ #™ñ #rC   c                ó"   € V P                  4       # )z‰
Read-only property for the outline present in the document
(i.e., a collection of 'outline items' which are also known as
'bookmarks').
)Ú_get_outlinerS   s   &rA   ÚoutlineÚPdfDocCommon.outline<  s   € ð × Ñ Ó"Ð"rC   c                ór   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          RS[ S[S[,          ,          RS[/# )r9   rþ   r¼  Úvisitedr<   )r
   r%   r	   Úsetr>   r5   )r@   rN   s   "€rA   rB   r½   E  sF   ø€ ÷ 8ñ 8áÑ'Õ(ð8ñ ™#•ð8ñ ™#™c�(Õ#ð	8ñ
 
ñ8rC   c                ó:  € Vf¥   . pV P                   p\        P                  V9   dm   \        \        V\        P                  ,          4      p\        V\        4      '       d   V# \        V4      '       g   RV9   d   \        \        VR,          4      pV P                  4       V n	        Vf   V# Vf   \        4       p \        V4      pWc9   d   \        R\        VR7        V# VP                  V4       V P                  V4      pV'       d   VP!                  V4       RV9   dU   . pVP#                  4       p	V P%                  \        \        VR,          4      VV	R7       V'       d   VP!                  V4       RV9  d    V# \        \        VR,          4      pKà  )Nz/Firstz0Detected cycle in outline structure for %(node)s)ro  rþ   )rþ   r¼  r¿  z/Next)r¿   ÚCOÚOUTLINESr   r%   r\   r,   r3   r  Ú_named_destinationsrÀ  Úidr   r±   ÚaddÚ_build_outline_itemra  Úcopyr»  )
rT   rþ   r¼  r¿  r-  ÚlinesÚnode_idÚoutline_objÚsub_outlineÚinner_visiteds
   &&&&      rA   r»  ÚPdfDocCommon._get_outlineE  sm  € ð Š?ØˆGØ×&Ñ&ˆGô �{‰{˜gÔ%ÜÔ-¨w´r·{±{Õ/CÓD�ä˜e¤Z×0Ò0Ø"�Nô ' u×-Ò-°(¸eÔ2CÜÔ 0°%¸µ/ÓB�DØ'+×'CÑ'CÓ'EˆDÔ$àŠ<ØˆNð Š?Ü“eˆGØÜ˜“hˆGØÔ!ÜÐQÔZbÐimÕnØð0 ˆð/ �K‰K˜Ô à×2Ñ2°4Ó8ˆKßØ—‘˜{Ô+ð ˜4ÔØ)+�à '§¡£�Ø×!Ñ!ÜÔ.°°XµÓ?Ø'Ø)ð "ô ÷
 Ø—N‘N ;Ô/à˜dÔ"Øð ˆô Ô(¨$¨w­-Ó8ŠDrC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   )r
   r!   )r@   rN   s   "€rA   rB   r½   €  s   ø€ ÷ ñ ™¡+Õ.ñ rC   c                óŠ   € V P                   p\        P                  V9   d"   \        RV\        P                  ,          4      # R# )uþ  
Read-only property for the list of threads.

See Â§12.4.3 from the PDF 1.7 or 2.0 specification.

It is an array of dictionaries with "/F" (the first bead in the thread)
and "/I" (a thread information dictionary containing information about
the thread, such as its title, author, and creation date) properties or
None if there are no articles.

Since PDF 2.0 it can also contain an indirect reference to a metadata
stream containing information about the thread, such as its title,
author, and creation date.
r!   N)r¿   rÂ  ÚTHREADSr   )rT   r-  s   & rA   ÚthreadsÚPdfDocCommon.threads  s4   € ð  ×"Ñ"ˆÜ�:‰:˜Ô Ü˜ w¬r¯z©zÕ':Ó;Ð;ÙrC   c                óR   <€ V ^8„  d   QhRS[ RS[S[S[3,          RS[S[,          /# )r9   rÈ   Nr<   )r   r>   r,   r*   r
   )r@   rN   s   "€rA   rB   r½   •  s/   ø€ ÷ ñ Ù"'¨©c±:¹~Ð(MÕ"Nðá	‘#�ñrC   c                ó   € R # rQ   rM   rÊ   s   &&rA   r£  Ú)PdfDocCommon._get_page_number_by_indirect”  rÌ   rC   c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )r9   r°  r<   )r   r
   r>   )r@   rN   s   "€rA   rB   r½   š  s#   ø€ ÷ Jñ J¡Jð J±8¹Cµ=ñ JrC   c                ó8   € V P                  VP                  4      # )zä
Retrieve page number of a given PageObject.

Args:
    page: The page to get page number. Should be
        an instance of :class:`PageObject<pypdf._page.PageObject>`

Returns:
    The page number or None if page is not found

)r£  rÈ   )rT   r°  s   &&rA   Úget_page_numberÚPdfDocCommon.get_page_numberš  s   € ð ×0Ñ0°×1HÑ1HÓIÐIrC   c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )r9   Údestinationr<   )r$   r
   r>   )r@   rN   s   "€rA   rB   r½   ¨  s$   ø€ ÷ Cñ C±{ð CÁxÑPSÅ}ñ CrC   c                ó8   € V P                  VP                  4      # )z­
Retrieve page number of a given Destination object.

Args:
    destination: The destination to get page number.

Returns:
    The page number or None if page is not found

)r£  r°  )rT   rÜ  s   &&rA   Úget_destination_page_numberÚ(PdfDocCommon.get_destination_page_number¨  s   € ð ×0Ñ0°×1AÑ1AÓBÐBrC   c                ó‚   <€ V ^8„  d   QhRS[ S[S[3,          RS[S[S[ S[S[RS[S[3,          ,          ,          RS[	/# )r9   rg   r²  Nr<   )
r   rY   r=   r
   r7  r-   r*   r,   r%   r$   )r@   rN   s   "€rA   rB   r½   µ  sX   ø€ ÷ Eñ Eá‘S™%�ZÕ ðEñ ÙÙ‘l¡N°D¹*ÑFVÐVÕWõõ
ðEñ 
ñErC   c           	     ó   € R R rC\        V\        \        34      '       g+   \        V\        4      '       d   \	        V4      ^ 8X  g   Vf*   \        4       p\        W\        P                  ! 4       4      # Vvr4p \        W\        WBR7      4      #   \         du    \        R\        YR7       T P                  '       d   h T P                  ^ ,          P                  pTf   \        4       MTp\        Y\        P                  ! 4       4      u # i ; i)N)Úfit_typeÚfit_argsz(Unknown destination: %(title)r %(array)s)ro  rg   r²  )r\   r,   rY   r!   rò   r$   r(   r³  r   r   r±   Ústrictr¢  rÈ   )rT   rg   r²  r°  r±  ÚtmprÈ   s   &&&    rA   r+  ÚPdfDocCommon._build_destinationµ  sÖ   € ð ˜$ˆcô �uœz¬3Ð/×0Ò0Ü˜5¤+×.Ò.´3°u³:À´?ØŠ}ä“<ˆDÜ˜u¬C¯GªG«IÓ6Ð6Ø!Ðˆ�Eð		EÜ˜u¬C¸Ô,MÓNÐNøÜô 	EÜÐEÌhÐ^cÕqØ�{�{ˆ{Øà—*‘*˜Q•-×2Ñ2ˆCØ14²¤¤À#ÐÜ˜u¼#¿'º'»)ÓDÒDð	Eús   Á8B ÂA<DÄDc                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )r9   rþ   r<   )r%   r
   r$   )r@   rN   s   "€rA   rB   r½   Ó  s%   ø€ ÷ Lñ LÑ(8ð L¹XÁkÕ=Rñ LrC   c                ó–  € R R R rCp \        RVR,          4      pRV9   d“   \        \        VR,          4      p\        \
        V\        P                  ,          4      pVR8X  dO   \        P                  V9   d   V\        P                  ,          pMXV P                  '       d   \        RV: 24      hM6RV9   d0   VR,          p\        V\        4      '       d   R	V9   d
   VR	,          p\        V\        4      '       d   V P                  W24      pMŸ\        V\        4      '       d/    V P                  W0P                  V,          P                  4      pM[Vf   V P                  W24      pMEV P                  '       d   \        R
V: 24      h\        R\         VR7       V P                  VR 4      pV'       d�   RV9   d&   \        R VR,           4       4      V\        R4      &   RV9   d   VR,          V\        R4      &   RV9   d   VR,          V\        R4      &   \#        VP%                  R^ 4      ^ 8¬  4      V\        R4      &   Wn         VP(                  Vn        V#   \         d(    T P                  '       d   \        RT: 24      hRp ELwi ; i  \         d    T P                  TR 4      p ELi ; i  \*         d     T# i ; i)NrY   r(  z(Outline Entry Missing /Title attribute: rQ  z/Az/GoToz%Outline Action Missing /D attribute: z/Destr'  zUnexpected destination z8Removed unexpected destination %(dest)r from destination)ro  r/  z/Cc              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irQ   )r)   )r:  Úcs   & rA   r<  Ú3PdfDocCommon._build_outline_item.<locals>.<genexpr>  s   é € Ð<`ÑU_ÐPQ¼[È¿^¸^ÓU_ùs   ‚z/Frí   z
/%is_open%)r   r  rä  r   r%   r+   r   ÚSÚDr\   r!   r+  rY   rÄ  Ú
dest_arrayr   r±   r"   r[   rþ   rÈ   ÚAttributeError)rT   rþ   r/  rg   Úoutline_itemÚactionÚaction_types   &&     rA   rÇ  Ú PdfDocCommon._build_outline_itemÓ  s”  € Ø$(¨$°�\ˆð	Ü˜  X¥Ó/ˆEð �4Œ<äÔ*¨D°­JÓ7ˆFÜœz¨6Ô2E×2GÑ2GÕ+HÓIˆKØ˜gÔ%Ü&×(Ñ(¨FÔ2Ø!Ô"5×"7Ñ"7Õ8‘DØ—[—[�[Ü&Ð)NÈtÉhÐ'WÓXÐXøØ˜Œ_à˜•=ˆDä˜$Ô 0×1Ò1°d¸d´lØ˜D•z�ä�dœK×(Ò(Ø×2Ñ2°5Ó?‰LÜ˜œc×"Ò"ðDØ#×6Ñ6Ø×3Ñ3°DÕ9×DÑDó ‘ð Š\ð  ×2Ñ2°5Ó?‰Là�{�{ˆ{Ü"Ð%<¸T¹HÐ#EÓFÐFÜØJÜØõð
  ×2Ñ2°5¸$Ó?ˆL÷ Ø�tŒ|ä1<Ñ<`ÐUYÐZ^ÖU_Ó<`Ó1`�œZ¨Ó-Ñ.Ø�tŒ|ð 26°dµ�œZ¨Ó-Ñ.Ø˜4Ôð 6:¸(µ^�œZ¨Ó1Ñ2ä5BØ—‘˜ 1Ó%¨Ñ*ó6ˆLœ LÓ1Ñ2ð !Ôð	Ø.2×.EÑ.EˆLÔ+ð ÐøôK ô 	Ø�{�{ˆ{Ü"Ð%MÈdÉXÐ#VÓWÐWØ‹Eð	ûô< ô Dà#×6Ñ6°u¸dÓC“ðDûôJ ô 	ØØÐð	ús;   ‡I  Ä(,J ÉJ9 É JÉ=JÊJÊJ6Ê5J6Ê9KËKc                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   )r7  r   )r@   rN   s   "€rA   rB   r½   "  s   ø€ ÷ ?ñ ?‘t™JÕ'ñ ?rC   c                óB   € \        V P                  V P                  4      # )a  
Property that emulates a list of :class:`PageObject<pypdf._page.PageObject>`.
This property allows to get a page or a range of pages.

Note:
    For PdfWriter only: Provides the capability to remove a page/range of
    page from the list (using the del operator). Remember: Only the page
    entry is removed, as the objects beneath can be used elsewhere. A
    solution to completely remove them - if they are not used anywhere - is
    to write to a buffer/temporary file and then load it into a new
    PdfWriter.

)r   ró   rù   rS   s   &rA   r¢  ÚPdfDocCommon.pages!  s   € ô ˜D×.Ñ.°·±Ó>Ð>rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   ©r7  rY   )r@   rN   s   "€rA   rB   r½   3  s   ø€ ÷ Pñ P™T¡#�Yñ PrC   c                óz   € \        \        V P                  4      4       Uu. uF  p\        W4      NK  	  up# u upi )z’
A list of labels for the pages in this document.

This property is read-only. The labels are in the order that the pages
appear in the document.
)Úrangerò   r¢  Úpage_index2page_label)rT   r
  s   & rA   Úpage_labelsÚPdfDocCommon.page_labels2  s1   € ô 9>¼cÀ$Ç*Á*»oÔ8NÓOÑ8N°1Ô% dÖ.Ñ8NÑOÐOùÒOs   ¡8c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rb   )r@   rN   s   "€rA   rB   r½   =  s   ø€ ÷ ñ ™X¡c�]ñ rC   c                ó†   €  \        \        V P                  \        P                  ,          4      #   \
         d     R# i ; i)a_  
Get the page layout currently being used.

.. list-table:: Valid ``layout`` values
   :widths: 50 200

   * - /NoLayout
     - Layout explicitly not specified
   * - /SinglePage
     - Show one page at a time
   * - /OneColumn
     - Show one column at a time
   * - /TwoColumnLeft
     - Show pages in two columns, odd-numbered pages on the left
   * - /TwoColumnRight
     - Show pages in two columns, odd-numbered pages on the right
   * - /TwoPageLeft
     - Show two pages at a time, odd-numbered pages on the left
   * - /TwoPageRight
     - Show two pages at a time, odd-numbered pages on the right
N)r   r+   r¿   rã   ÚPAGE_LAYOUTr  rS   s   &rA   Úpage_layoutÚPdfDocCommon.page_layout<  s5   € ð.	Üœ
 D×$4Ñ$4´R·^±^Õ$DÓEÐEøÜô 	Úð	ús   ‚.1 ±A ¿A c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   )r
   r6   )r@   rN   s   "€rA   rB   r½   Y  s   ø€ ÷ ñ ™8¡LÕ1ñ rC   c                óN   €  V P                   R,          #   \         d     R# i ; i)a²  
Get the page mode currently being used.

.. list-table:: Valid ``mode`` values
   :widths: 50 200

   * - /UseNone
     - Do not show outline or thumbnails panels
   * - /UseOutlines
     - Show outline (aka bookmarks) panel
   * - /UseThumbs
     - Show page thumbnails panel
   * - /FullScreen
     - Fullscreen view
   * - /UseOC
     - Show Optional Content Group (OCG) panel
   * - /UseAttachments
     - Show attachments panel
z	/PageModeN)r¿   r  rS   s   &rA   Ú	page_modeÚPdfDocCommon.page_modeX  s*   € ð*	Ø×#Ñ# KÕ0Ð0øÜô 	Úð	ús   ‚ •$£$c          
      ó„   <€ V ^8„  d   QhRS[ RS[RS[S[3,          RS[S[S[S[3,          ,          RS[S[,          RR/# )r9   Ú	list_onlyr¢  NÚinheritrÈ   r<   )	rˆ  r   r%   r   r
   r  rY   r	   r*   )r@   rN   s   "€rA   rB   r½   r  sc   ø€ ÷ T2ñ T2áðT2ñ �TÑ+©ZÐ7Õ8ðT2ñ ™$™s¡C˜x�.Õ)ð	T2ñ
 %¡^Õ4ðT2ð 
ñT2rC   c                ó  € \        \        P                  4      \        \        P                  4      \        \        P                  4      \        \        P
                  4      3pVf   / p\        V4      '       dT   V P                  pVP                  R4      P                  4       p\        V\        4      '       g   \        R4      h. V n        Vf   Q R4       h\        P                  V9   d'   \!        \"        V\        P                  ,          4      pM\        P$                  V9  d   RpMRpVR8X  dÏ   V F  pW‚9   g   K  W(,          W8&   K  	  \'        VR\)        4       4      p	\!        \*        V\        P$                  ,          4       Fs  p
\'        V
R\)        4       4      V	8X  d   \        R4      h/ p\        V
\,        4      '       d   W«R&   V
P                  4       pV'       g   K^   V P.                  ! WV3/ VB  Ku  	  R# VR8X  dg   VP3                  4        F  w  rÞWÒ9  g   K  WâV&   K  	  \5        W4      pV'       g   VP7                  V4       V P                  P9                  V4       R# R#   \0         d    \        R4      hi ; i)	aJ  
Process the document pages to ease searching.

Attributes of a page may inherit from ancestor nodes
in the page tree. Flattening means moving
any inheritance data into descendant nodes,
effectively removing the inheritance dependency.

Note: It is distinct from another use of "flattening" applied to PDFs.
Flattening a PDF also means combining all the contents into one single layer
and making the file less editable.

Args:
    list_only: Will only list the pages within _flatten_pages.
    pages:
    inherit:
    indirect_reference: Used recursively to flatten the /Pages object.

Nrì   zInvalid object in /Pagesr  r  rÈ   z Detected cyclic page references.z7Maximum recursion depth reached during page flattening.)r+   ÚPGÚ	RESOURCESÚMEDIABOXÚCROPBOXÚROTATEr3   r¿   r[   rf   r\   r%   r   rï   r   ÚTYPEr   rY   r)  ÚgetattrÚobjectr!   r*   rð   ÚRecursionErrorr,  r   rÚ   ra  )rT   r  r¢  r	  rÈ   Úinheritable_page_attributesr-  Útr;  Úpages_referencer°  ÚaddtrÏ   Úattr_inr.  Úpage_objs   &&&&&           rA   rð   ÚPdfDocCommon._flattenr  s  € ô6 ”r—|‘|Ó$Ü”r—{‘{Ó#Ü”r—z‘zÓ"Ü”r—y‘yÓ!ð	'
Ð#ð Š?ØˆGÜ˜5×!Ò!ð ×&Ñ&ˆGØ—K‘K Ó)×4Ñ4Ó6ˆEÜ˜eÔ%5×6Ò6Ü"Ð#=Ó>Ð>Ø#%ˆDÔ ØÒ Ð( &Ó(Ð ä×Ñ 5Ô(Ü”S˜%¤× 4Ñ 4Õ5Ó6‰Aä×!Ñ!¨Ô.Ø‰AàˆAà�Œ=Û3�Ø–=Ø$)¥K�G“Mñ 4ô & eÐ-AÄ6Ã8ÓLˆOÜœ[¨%´×0DÑ0DÕ*EÖF�Ü˜4Ð!5´v³xÓ@ÀOÔSÜ&Ð'IÓJÐJà�Ü˜d¤N×3Ò3Ø15Ð-Ñ.Ø—o‘oÓ'�ß‘3ðØŸš i°gÑFÀÔFó Gð  �'Œ\Ø")§-¡-¦/‘�ð Ö'Ø%*˜'“Nñ	 #2ô
 " $Ó;ˆHßØ—‘ Ô&ð × Ñ ×'Ñ'¨Ö1ñ øô	 *ô Ü*ØUóð ðús   Ç(I1É1Jc                óD   <€ V ^8„  d   QhRS[ S[S[S[3,          RS[RR/# )r9   r°  Úcleanr<   N)r   r>   r   r*   rˆ  )r@   rN   s   "€rA   rB   r½   È  s5   ø€ ÷ *4ñ *4á‘C™¡^Ð3Õ4ð*4ñ ð*4ð 
ñ	*4rC   c                óÚ  € V P                   f   V P                  V P                  4       V P                   f   Q h\        V\        4      '       d<   VP                  4       p\        V\        4      '       g   \        R\        R7       R# Tp\        V\        4      '       g    V P                   P                  V4      p^ Tu;8:  d   \        V P                   4      8  g   M \        R\        R7       R# V P                  V,          P                  pV P                  V V'       d#   Ve   V P                  V\!        4       4       R# R# R#   \         d    \        R\        R7        R# i ; i)a¿  
Remove page from pages list.

Args:
    page:
        * :class:`int`: Page number to be removed.
        * :class:`~pypdf._page.PageObject`: page to be removed. If the page appears many times
          only the first one will be removed.
        * :class:`~pypdf.generic.IndirectObject`: Reference to page to be removed.

    clean: replace PageObject with NullObject to prevent annotations
        or destinations to reference a detached page.

Nz(IndirectObject is not referencing a page)ro  zCannot find page in pageszPage number is out of range)rï   rð   rñ   r\   r*   rf   r   r   r±   r>   rg  r¡  rò   r¢  rÈ   rÑ   r,   )rT   r°  r  r¦  Úinds   &&&  rA   Úremove_pageÚPdfDocCommon.remove_pageÈ  s  € ð& ×ÑÒ'Ø�M‰M˜$Ÿ.™.Ô)Ø×#Ñ#Ò/Ð/Ð/Ü�dœN×+Ò+Ø—‘Ó!ˆAÜ˜a¤×,Ò,ÜÐIÔRZÕ[ÙØˆDä˜$¤×$Ò$ðØ×+Ñ+×1Ñ1°$Ó7�ð �TÖ5œC × 4Ñ 4Ó5Ö5ÜÐ8ÄÕJÙà�j‰j˜Õ×1Ñ1ˆØ�J‰J�tÐß�S’_Ø× Ñ  ¤j£lÖ3ñ %‰5øô ô ÜÐ:Ä8ÕLÚðús   Â"E
 Å
E*Å)E*c                ó<   <€ V ^8„  d   QhRS[ RS[ RS[S[,          /# )r9   ÚnumÚgenr<   )r>   r
   r.   )r@   rN   s   "€rA   rB   r½   ô  s'   ø€ ÷ ;ñ ;©ð ;±#ð ;¹(Á9Õ:Mñ ;rC   c                ó6   € \        WV 4      P                  4       # )zð
Used to ease development.

This is equivalent to generic.IndirectObject(num,gen,self).get_object()

Args:
    num: The object number of the indirect object.
    gen: The generation number of the indirect object.

Returns:
    A PdfObject

)r*   rf   )rT   r"  r#  s   &&&rA   Ú_get_indirect_objectÚ!PdfDocCommon._get_indirect_objectô  s   € ô ˜c¨Ó-×8Ñ8Ó:Ð:rC   c                ó<   <€ V ^8„  d   QhRS[ RS[S[S[3,          /# )r9   Úpermissions_coder<   )r>   r  rY   rˆ  )r@   rN   s   "€rA   rB   r½     s%   ø€ ÷ 
ñ 
Ù #ð
á	‰c‘4ˆi�ñ
rC   c                óŠ  € \        RRRR7       R\        P                  R\        P                  R\        P                  R\        P
                  R	\        P                  R
\        P                  R\        P                  R\        P                  /pVP                  4        UUu/ uF  w  r4W1V,          ^ 8g  bK  	  upp# u uppi )z>Take the permissions as an integer, return the allowed access.Údecode_permissionsÚuser_access_permissionsz5.0.0)Úold_nameÚnew_nameÚ
removed_inÚprintÚmodifyrÈ  ÚannotationsÚformsÚaccessabilityÚassembleÚprint_high_quality)r   r   ÚPRINTÚMODIFYÚEXTRACTÚADD_OR_MODIFYÚFILL_FORM_FIELDSÚEXTRACT_TEXT_AND_GRAPHICSÚASSEMBLE_DOCÚPRINT_TO_REPRESENTATIONr,  )rT   r(  Úpermissions_mappingrX   Úflags   &&   rA   r*  ÚPdfDocCommon.decode_permissions  s¾   € ô 	%Ø)Ø.Øõ	
ð Ô*×0Ñ0ØÔ+×2Ñ2ØÔ)×1Ñ1ØÔ0×>Ñ>ØÔ*×;Ñ;àÔ2×LÑLØÔ-×:Ñ:Ø Ô"7×"OÑ"Oð

Ðð 1×6Ñ6Ô8ô
á8‘	�ð  DÕ(¨AÑ-Ò-Ù8ò
ð 	
ùó 
s   Â$B?c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   )r
   r   )r@   rN   s   "€rA   rB   r½      s   ø€ ÷ 9ñ 9©Ñ2GÕ)Hñ 9rC   c                ó`   € V P                   f   R# \        V P                   P                  4      # )aR  
Get the user access permissions for encrypted documents.
Returns None if not encrypted.

.. warning::

    For AES-256 encrypted documents (R=5/R=6), the returned
    permissions are derived from the ``/P`` field, which is
    only trustworthy if the ``/Perms`` integrity check passed.
    Check :attr:`are_permissions_valid` to verify.
N)Ú_encryptionr   ÚPrS   s   &rA   r+  Ú$PdfDocCommon.user_access_permissions  s*   € ð ×ÑÒ#ÙÜ$ T×%5Ñ%5×%7Ñ%7Ó8Ð8rC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   )r
   rˆ  )r@   rN   s   "€rA   rB   r½   1  s   ø€ ÷ 7ñ 7¡x±¥~ñ 7rC   c                ó’   € V P                   f   R# V P                   P                  4       '       g   R# V P                   P                  # )aò  
Whether the ``/Perms`` integrity check passed for this document.

For AES-256 encrypted documents (R=5/R=6), the ``/Perms`` field
is an encrypted copy of the permissions that can be verified
independently. Returns ``False`` if this check fails (the ``/P``
permissions may have been tampered with).

Returns ``None`` if the document is not encrypted or has not yet
been decrypted via :meth:`decrypt()<pypdf.PdfReader.decrypt>`.
Returns ``True`` for non-AES-256 encryption (no ``/Perms`` to check).
N)rC  Úis_decryptedÚ_are_permissions_validrS   s   &rA   Úare_permissions_validÚ"PdfDocCommon.are_permissions_valid0  s=   € ð ×ÑÒ#ÙØ×Ñ×,Ñ,×.Ò.ÙØ×Ñ×6Ñ6Ð6rC   c                ó    <€ V ^8„  d   QhRS[ /# ra   )rˆ  )r@   rN   s   "€rA   rB   r½   F  s   ø€ ÷ ñ ™dñ rC   c                ó   € R# )zÈ
Read-only boolean property showing whether this PDF file is encrypted.

Note that this property, if true, will remain true even after the
:meth:`decrypt()<pypdf.PdfReader.decrypt>` method is called.
NrM   rS   s   &rA   rî   ÚPdfDocCommon.is_encryptedD  s   € ñ 	rC   c                óF   <€ V ^8„  d   QhRS[ S[S[S[3,          ,          /# ra   )r
   r  rY   r	   )r@   rN   s   "€rA   rB   r½   P  s!   ø€ ÷ ñ ‘X™d¡3© 8�nÕ-ñ rC   c                óÆ  € / pV P                   pR V9  g   VR ,          '       g   R# \        \        VR ,          4      pRV9   d�   \        \        VR,          4      p\	        V4      pV Ft  pTp\        V4      p\        V\        4      '       g   K(  \        \        \        ,          VP                  4       4      pV'       g   K[  \        VP                  4      p	W‘V&   Kv  	  V# )z	/AcroFormNz/XFA)r¿   r   r0   r!   ÚiterÚnextr\   r*   r
   r&   rf   r    Ú_data)
rT   r]   r-  r%  rE  r
  rF  ÚtagrG  Úess
   &         rA   ÚxfaÚPdfDocCommon.xfaO  s¶   € à!#ˆØ×"Ñ"ˆà˜gÔ%¨W°[×-AÔ-AÙä”J ¨Õ 4Ó5ˆà�TŒ>Üœ+ t¨F¥|Ó4ˆFÜ�V“ˆAÛ�Ø�Ü˜“G�Ü˜a¤×0Ô0Ü ¤Ô*=Õ!>ÀÇÁÃÓO�Eß‘uÜ3°E·K±KÓ@˜Ø&(˜s›ñ ð ˆrC   c                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# ra   )r   rY   r7  r=   )r@   rN   s   "€rA   rB   r½   g  s"   ø€ ÷ 
ñ 
™W¡S©$©u­+Ð%5Õ6ñ 
rC   c                óv   € \        V P                  4        Uu/ uF  pWP                  V3bK  	  up4      # u upi )z1Mapping of attachment filenames to their content.)ÚLazyDictÚ_list_attachmentsÚ_get_attachment_list)rT   r„  s   & rA   ÚattachmentsÚPdfDocCommon.attachmentsf  sJ   € ô ð !×2Ñ2Ô4óá4�Dð ×0Ñ0°$Ð7Ò7Ù4ñó
ð 	
ùòs   ˜6c                ó6   <€ V ^8„  d   QhRS[ S[RR3,          /# rL   )r   r4   )r@   rN   s   "€rA   rB   r½   q  s    ø€ ÷ 8ñ 8¡©<¸¸tÐ+CÕ!Dñ 8rC   c              #  ób   "  € \         P                  ! V P                  4       Rj  x€L
  R#  L5i)zIterable of attachment objects.N)r4   Ú_loadr¿   rS   s   &rA   Úattachment_listÚPdfDocCommon.attachment_listp  s!   é € ô  ×%Ò% d×&6Ñ&6Ó7×7Ô7ùs   ‚$/¦-§/c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   rø  )r@   rN   s   "€rA   rB   r½   u  s   ø€ ÷ ñ ¡4©¥9ñ rC   c                óØ   € . pV P                    FW  pVP                  VP                  4       VP                  ;q2P                  8w  g   K<  V'       g   KF  VP                  V4       KY  	  V# )zW
Retrieves the list of filenames of file attachments.

Returns:
    list of filenames

)rb  ra  r„  Úalternative_name)rT   r  Úentryr„  s   &   rA   r[  ÚPdfDocCommon._list_attachmentsu  sU   € ð ˆØ×)Ô)ˆEØ�L‰L˜Ÿ™Ô$Ø×.Ñ.Ð.�·:±:Ö=Ç$Á$Ø—‘˜TÖ"ñ *ð ˆrC   c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )r9   r„  r<   )rY   r7  r=   )r@   rN   s   "€rA   rB   r½   „  s   ø€ ÷ ñ ©ð ±±eµñ rC   c                óh   € V P                  V4      V,          p\        V\        4      '       d   V# V.# rQ   )Ú_get_attachmentsr\   r7  )rT   r„  Úouts   && rA   r\  Ú!PdfDocCommon._get_attachment_list„  s0   € Ø×#Ñ# DÓ)¨$Õ/ˆÜ�cœ4× Ò ØˆJØˆuˆrC   c          	      ór   <€ V ^8„  d   QhRS[ S[,          RS[S[S[S[S[S[,          3,          3,          /# )r9   Úfilenamer<   )r
   rY   r  r   r=   r7  )r@   rN   s   "€rA   rB   r½   Š  s9   ø€ ÷ (ñ (Ù ¡�ð(á	‰c‘5™¡¡U¥Ð+Õ,Ð,Õ	-ñ(rC   c                óâ  € / pV P                    FÜ  p\        4       pVP                  pVeE   WP                  V09   d1   WP                  8X  d   VP                  MTpVP	                  V4       MKa  VP                  V0pV Fg  pVf   K	  Wb9   dK   \        W&,          \        4      '       g   W&,          .W&&   W&,          P                  VP                  4       KY  VP                  W&&   Ki  	  KÞ  	  V# )a;  
Retrieves all or selected file attachments of the PDF as a dictionary of file names
and the file data as a bytestring.

Args:
    filename: If filename is None, then a dictionary of all attachments
        will be returned, where the key is the filename and the value
        is the content. Otherwise, a dictionary with just a single key
        - the filename - and its content will be returned.

Returns:
    dictionary of filename -> Union[bytestring or List[ByteString]]
    If the filename exists multiple times a list of the different versions will be provided.

)	rb  rÀ  rf  r„  rÆ  r\   r7  ra  Úcontent)rT   ro  r]  rg  r  rf  r„  s   &&     rA   rk  ÚPdfDocCommon._get_attachmentsŠ  sÓ   € ð$ =?ˆØ×)Ô)ˆEÜ“EˆEØ$×5Ñ5ÐØÒ#Ø§
¡
Ð,<Ð=Ô=Ø)1·Z±ZÔ)?˜5Ÿ:š:ÐEU�DØ—I‘I˜d•OáàŸ™Ð%5Ð6�ã�Ø’<ÙØÔ&Ü% kÕ&7¼×>Ò>Ø-8Õ->Ð,?˜Ñ)ØÕ%×,Ñ,¨U¯]©]Ö;à(-¯©�KÓ%ó ñ *ð* ÐrC   c                óŠ   <€ V ^8„  d   QhRS[ RS[S[,          3,          RS[ RS[S[,          3,          RS[S[S[3,          /# )r9   ÚincludeNÚexcluder<   )r   r   rY   r  r	   )r@   rN   s   "€rA   rB   r½   µ  sM   ø€ ÷ ñ á�t™X¡c�]Ð*Õ+ðñ �t™X¡c�]Ð*Õ+ðñ 
‰c‘3ˆh�ñ	rC   c                ó   € R# )zÈ
Integration into Jupyter Notebooks.

This method returns a dictionary that maps a mime-type to its
representation.

.. seealso::

    https://ipython.readthedocs.io/en/stable/config/integrating.html
NrM   )rT   rt  ru  s   &&&rA   Ú_repr_mimebundle_ÚPdfDocCommon._repr_mimebundle_´  s   € ñ  	rC   c                óz   <€ V ^8„  d   Qh/ S[ ;R&   S[S[S[,          ,          ;R&   S[S[,          ;R&   S[ ;R&   # )r9   rä  rï   rC  rñ   )rˆ  r
   r7  r   r   )r@   rN   s   "€rA   rB   r½     sH   ø‡ ‚ ñ Ññ ñ ™d¡:Õ.Õ/Ñ6ñ ñ ™*Õ%Ñ,ñ ñ Ñò rC   )rÄ  rï   )NN)NNNN)F)NNN)FNNNrQ   )?r±   r²   r³   r´   rµ   rä  rï   rC  rñ   r¶   r   r¿   rÅ   rf   rÑ   rÖ   rÛ   rß   rç   ró   rù   r  r  r"  r  rH  rR  rB  rh  r\  r—  r©  r´  Úsetterr¼  r»  rÒ  r£  rÙ  rÞ  r+  rÇ  r¢  rü  r  r  rð   r  r%  r*  r+  rJ  rî   rV  r]  rb  r[  r\  rk  rw  Ú__annotate_func__r·   r¸   r¹   s   @rA   r»   r»     sT  ø‡ € ñð €Fà26€Oà(,€Kà€IàØ÷ó ó ðð Ø÷ó ó ðð ÷ó ðð
 ÷ó ðð Ø÷ó ó ðð ÷ó ðð ÷ó ðð ÷ó ð÷)ð )÷*1ð 1÷$#ð #ðJ ÷.ó ð.÷ð ÷DGò G÷X0ò 0÷d/ð /÷(8ð (8÷T=ð =÷*#ð #÷J$ò $÷LD
ð D
ðL ÷ó ðð: ×Ñ÷Dó ðDð ÷#ó ð#÷8ò 8ðt ÷ó ðð( ÷ó ð÷
Jð J÷Cð C÷Eð E÷<Lð Lð\ ÷?ó ð?ð  ÷Pó ðPð ÷ó ðð6 ÷ó ð÷2T2ò T2÷l*4ò *4÷X;ð ;÷ 
ð 
ð6 ÷9ó ð9ð  ÷7ó ð7ð& Ø÷ó ó ðð ÷ó ðð, ÷
ó ð
ð ÷8ó ð8÷ð ÷ð ÷(ò (ðT ÷ñ ó ð÷g% ƒ rC   r»   c                   óz   a € ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR ltRt	V t
R# )rZ  iÇ  c                ó*   <€ V ^8„  d   QhRS[ RS[ RR/# )r9   ÚargsÚkwargsr<   Nrs  )r@   rN   s   "€rA   rB   ÚLazyDict.__annotate__È  s"   ø€ ÷ /ñ /™cð /©Sð /°Tñ /rC   c                ó&   € \        V/ VB V n        R # rQ   )r  Ú	_raw_dict)rT   r~  r  s   &*,rA   rR   ÚLazyDict.__init__È  s   € Ü˜tÐ. vÑ.ˆŽrC   c                ó&   <€ V ^8„  d   QhRS[ RS[/# rW   )rY   r	   )r@   rN   s   "€rA   rB   r€  Ë  s   ø€ ÷ ñ ™sð ¡sñ rC   c                óL   € V P                   P                  V4      w  r#V! V4      # rQ   )r‚  Ú__getitem__)rT   rX   ÚfuncÚargs   &&  rA   r†  ÚLazyDict.__getitem__Ë  s"   € Ø—N‘N×.Ñ.¨sÓ3‰	ˆÙ�C‹yÐrC   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ra   )r   r	   )r@   rN   s   "€rA   rB   r€  Ï  s   ø€ ÷ $ñ $™(¡3�-ñ $rC   c                ó,   € \        V P                  4      # rQ   )rQ  r‚  rS   s   &rA   Ú__iter__ÚLazyDict.__iter__Ï  s   € Ü�D—N‘NÓ#Ð#rC   c                ó    <€ V ^8„  d   QhRS[ /# ra   rê   )r@   rN   s   "€rA   rB   r€  Ò  s   ø€ ÷ #ñ #™ñ #rC   c                ó,   € \        V P                  4      # rQ   )rò   r‚  rS   s   &rA   Ú__len__ÚLazyDict.__len__Ò  s   € Ü�4—>‘>Ó"Ð"rC   c                ó    <€ V ^8„  d   QhRS[ /# ra   rÃ   )r@   rN   s   "€rA   rB   r€  Õ  s   ø€ ÷ 5ñ 5™ñ 5rC   c                ó<   € R \        V P                  4       4       R2# )zLazyDict(keys=Ú))r7  r`  rS   s   &rA   Ú__str__ÚLazyDict.__str__Õ  s   € Ø¤ T§Y¡Y£[Ó 1Ð2°!Ð4Ð4rC   )r‚  N)r±   r²   r³   r´   rR   r†  rŒ  r�  r•  r·   r¸   r¹   s   @rA   rZ  rZ  Ç  s7   ø‡ € ÷/ð /÷ð ÷$ð $÷#ð #÷5ö 5rC   rZ  )OrF   Úabcr   Úcollections.abcr   r   r   r   r   Útypingr	   r
   r   r   rC  r   Ú_pager   r   Ú_page_labelsr   rû  Ú_utilsr   r   r   Ú	constantsr   r  r   rã   r   r   r   r   r   rÂ  r   rd   r   r?  r   r  Úerrorsr   r   Úfiltersr    Úgenericr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   Úgeneric._filesr4   rƒ  r5   r6   Úxmpr7   rH   rJ   r»   rZ  rM   rC   rA   Ú<module>r£     s»   ðó> Ý ß BÓ BÝ ÷ó õ $ß +Ý >÷ñ õ
 /Ý .÷ó õ "Ý :Ý 6Ý +ß ,Ý +÷÷ ÷ ÷ ÷ ñ õ* )ß ,Ý õ0ô]%Ð*ô ]%÷@Bñ BôJ&5ˆw�s˜C�xÕ ö 5rC   