
    i92i@                     $   S r SSKrSSKJr  SSKJrJrJr  SSKJr  SSK	J
r
JrJrJr  SSKJrJrJrJrJrJrJr  SS	KJr  SS
KJr  SSKJr  \
R8                  4r " S S5      r " S S\\5      r " S S\5      r  " S S\5      r! " S S\5      r"g)zK
Usage documentation at: <https://py-pdf.github.io/fpdf2/Annotations.html>
    N)datetime)OptionalTupleUnion   )Action)AnnotationFlagAnnotationNameAssociatedFileRelationshipFileAttachmentAnnotationName)build_obj_dictDestinationNamePDFContentStreamPDFDate	PDFObject	PDFString)create_dictionary_string)create_list_string)iobj_refc            '           \ rS rSr\SSSSSSSSSSSSSS4S\S\S\S\S	\S
\\\	   \\   4   S\S\
S\S\S\S\S\S\S\\\4   S\\   S\S\S\4&S jjrSrg)AnnotationMixin"   Nr    subtypexywidthheightflagscontentsdestactioncolormodification_timetitlequad_pointsborder_widthnameink_list	file_spec
field_typedefault_appearancec           	         [        S5      U l        [        U5      U l        SUS SX5-
  S SX$-   S SUS S3	U l        SU S3U l        U(       a  [        U5      OS U l        UU l        [        [        S U 5       5      5      U l	        U(       a
  [        USS	9OS U l        Xl        Xl        U
(       a  SU
S
    SU
S    SU
S    S3OS U l        U(       a
  [        USS	9OS U l        U(       a
  [!        USS	9OS U l        U(       a  [%        S U 5       5      OS U l        S U l        Xl        U(       a  S[%        S U 5       5      -   S-   OS U l        UU l        UU l        g )NAnnot[.2f ]z[0 0 c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fN)r	   coerce).0flags     J/home/james-whalen/.local/lib/python3.13/site-packages/fpdf/annotations.py	<genexpr>+AnnotationMixin.__init__.<locals>.<genexpr>@   s     I54>00665s   #%T)encryptr   r      c              3   (   #    U  H  oS  v   M
     g7fr1   Nr   )r7   
quad_points     r9   r:   r;   H   s     G;Z3'(;   c              3   (   #    U  H  oS  v   M
     g7fr?   r   )r7   coords     r9   r:   r;   O   s     AuSkNrA   )r   typer   rectborderf_tvsumtuplefr   r!   ar"   ctr   mpdf_listr'   pr)   r*   f_sd_a)selfr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   valuer-   s                        r9   __init__AnnotationMixin.__init__#   s\   . M	G}#wa
3/q3q3qI	l^1-'14
#tUI5IIJ=E	(D94	:?1U1XJaaz58*A6T385$/d=N*D9TX  G;GG 	
 	  8AAAACG 	
 %    )rL   rF   rM   r!   rS   r"   rK   rR   rG   r*   rO   r)   rQ   r'   rE   r   rN   rD   rH   )__name__
__module____qualname____firstlineno__DEFAULT_ANNOT_FLAGSstrintr   r   r	   r   r   rJ   r   r
   r   rV   __static_attributes__r   rX   r9   r   r   "   s    ;N &*!DH!"&+1&1& 1& 	1&
 1& 1& U>*E#J671& 1& 1& 1& 1& $1& 1& 1& 1&  N$@@A!1&" *#1&$ %1&& '1&*  +1& 1&rX   r   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )PDFAnnotationW   z?A PDF annotation that get serialized as an obj<</>>endobj blockc                 &   > [         TU ]  " U0 UD6  g r5   )superrV   )rT   argskwargs	__class__s      r9   rV   PDFAnnotation.__init__Z   s    $)&)rX   r   )rY   rZ   r[   r\   __doc__rV   r`   __classcell__rh   s   @r9   rb   rb   W   s    E* *rX   rb   c                   ,    \ rS rSrSrSrSS jrS rSrg)	AnnotationDict^   z@A PDF annotation that get serialized as an inline <<dictionary>>)rD   r   rE   rF   rG   rH   rK   r!   rL   r"   rM   rN   r'   rQ   r)   r*   rR   rS   Nc           
      ~    [        [        U 5       Vs0 s H  o3[        X5      _M     snUUS9n[        U5      $ s  snf )N)_security_handler_obj_id)r   dirgetattrpdf_dict)rT   rq   rr   keyobj_dicts        r9   	serializeAnnotationDict.serializev   sB    !03D	:	'$$$	:/

 !!	 ;s   :c                 4   [        U 5       Vs/ s H  oR                  S5      (       a  M  UPM     nnU Vs0 s H  o[        X5      _M     nnUR                  5        VVs0 s H  u  p[	        U5      (       a  M  X_M     nnnSU S3$ s  snf s  snf s  snnf )N__zAnnotationDict(**))rs   
startswithrt   itemscallable)rT   rv   keysdrU   s        r9   __repr__AnnotationDict.__repr__~   s    "4yEyt0DyE045'$$$5*+'')K)JC8E?ZSZ)K"1#Q'' F5Ks   B
B
B!B;Br   NN)	rY   rZ   r[   r\   rj   	__slots__rx   r   r`   r   rX   r9   rn   rn   ^   s    FI*"(rX   rn   c                      ^  \ rS rSr       SS\S\S\S\\   S\\   S\\   S\\   S	\	S
\	4U 4S jjjr
S rS rS rS rSrU =r$ )PDFEmbeddedFile   basenamer!   desccreation_datemodification_date	mime_typeaf_relationshipcompresschecksumc
                   > [         TU ]  X(S9  [        S5      U l        S[	        U5      0n
U(       a  [        USS9R                  5       U
S'   U(       a  [        USS9R                  5       U
S'   U	(       aI  [        R                  " SS	S
9nUR                  U R                  5        UR                  5       nSU S3U
S'   U(       a  [        U5      U l        [        U
5      U l        Xl        X0l        SU l        Xpl        S U l        g )N)r!   r   EmbeddedFilez/SizeT)with_tzz/CreationDatez/ModDatemd5F)usedforsecurity<>z	/CheckSum)re   rV   r   rD   lenr   rx   hashlibnewupdate	_contents	hexdigestr   ru   params	_basename_desc_globally_enclosed_af_relationship
_file_spec)rT   r   r!   r   r   r   r   r   r   r   r   	file_hashhash_hexrh   s                r9   rV   PDFEmbeddedFile.__init__   s     	(>(	3x=)&-mT&J&T&T&VF?#!():D!I!S!S!UF:E5AIT^^, **,H$%hZq/F;	?DLv&!
"& /rX   c                     U R                   $ r5   r   rT   s    r9   globally_enclosed!PDFEmbeddedFile.globally_enclosed   s    &&&rX   c                     Xl         g r5   r   )rT   rU   s     r9   set_globally_enclosed%PDFEmbeddedFile.set_globally_enclosed   s    "'rX   c                     U R                   $ r5   )r   r   s    r9   r   PDFEmbeddedFile.basename   s    ~~rX   c                     U R                   (       d0  [        X R                  U R                  U R                  5      U l         U R                   $ r5   )r   FileSpecr   r   r   r   s    r9   r+   PDFEmbeddedFile.file_spec   s6    &nndjj$2G2GDO rX   )r   r   r   r   r   r   r   rD   ) NNNNFF)rY   rZ   r[   r\   r^   bytesr   r   r   boolrV   r   r   r   r+   r`   rk   rl   s   @r9   r   r      s    
 ,004#'@D  	
  ) $H- C= ""<=   B'( rX   r   c            
       `   ^  \ rS rSr  S	S\S\S\\   S\\   4U 4S jjjr\	S 5       r
SrU =r$ )
r      embedded_filer   r   r   c                    > [         TU ]  5         [        S5      U l        [	        U5      U l        [	        U5      U l        U(       a  [	        U5      U l        U(       a  [        UR                  5      U l	        Xl
        g )NFilespec)re   rV   r   rD   r   rK   u_fr   rU   a_f_relationship_embedded_file)rT   r   r   r   r   rh   s        r9   rV   FileSpec.__init__   s^     	$	8$X&!$DI$()>)>$?D!+rX   c                 V    [        S[        U R                  R                  5      05      $ )Nz/F)ru   pdf_refr   idr   s    r9   e_fFileSpec.e_f   s#    wt':':'='=>?@@rX   )r   r   r   rK   rD   r   r   )rY   rZ   r[   r\   r   r^   r   r   rV   propertyr   r`   rk   rl   s   @r9   r   r      s[     #@D,&, , sm	,
 ""<=, ," A ArX   r   )#rj   r   r   typingr   r   r   actionsr   enumsr	   r
   r   r   syntaxr   r   r   r   r   r   r   r   ru   r   rP   r   r   PRINTr]   r   rb   rn   r   r   r   rX   r9   <module>r      s      ) )     9 2 ' &++- 2& 2&j*OY *$(_ $(N0& 0fAy ArX   