
    j:jV.                        % S SK r S SKrS SKJr  S SKJrJrJrJr  SSK	J
r
  SSKJrJr  SSK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Jr  \ R8                  SS S:  a  S SKJr  OS SKJr  \\ \ 4   r!\\"S'   S\#\!   S\4S jr$ " S S\\5      r% " S S\%5      r& " S S\%5      r' " S S\%5      r( " S S\%5      r) " S S\%5      r* " S S\%5      r+ " S  S!\%5      r, " S" S#\%5      r-g)$    N)ABC)AnyLiteralOptionalUnion   )AnnotationFlag)ArrayObjectDictionaryObject)BooleanObjectFloatObjectIndirectObject
NameObjectNumberObjectTextStringObject)RectangleObject)
hex_to_rgb   )NO_FLAGSAnnotationDictionary)   
   )	TypeAliasVertexverticesreturnc                     U S   S   U S   S   p!U S   S   U S   S   pCU  H1  u  pV[        X5      n[        X&5      n[        X55      n[        XF5      nM3     [        XX445      $ )Nr   r   )minmaxr   )r   x_miny_minx_maxy_maxxys          [/var/www/website/venv/lib/python3.13/site-packages/pypdf/annotations/_markup_annotations.py_get_bounding_rectangler'      sr    A;q>8A;q>5A;q>8A;q>5EEEE	 
 E%788    c                   f    \ rS rSrSrSSSSS.S\\   S\\\\	4      S\
S	   S
\\   SS4
S jjrSrg)MarkupAnnotation*   a  
Base class for all markup annotations.

Args:
    title_bar: Text to be displayed in the title bar of the annotation;
        by convention this is the name of the author
    in_reply_to: The annotation that this annotation is "in reply to"
        (PDF 1.5). Can be either an annotation (previously added using
        :meth:`~pypdf.PdfWriter.add_annotation`) or a reference to the
        target annotation.
    reply_type: The relationship between this annotation and the one
        specified by ``in_reply_to``. Either ``"R"`` (a reply, default)
        or ``"Group"`` (grouped with the parent annotation). Raises
        ``ValueError`` if a non-default value is provided without
        ``in_reply_to``.
    annotation_name: A text string uniquely identifying this annotation
        among all annotations on its page. Automatically generated when
        ``in_reply_to`` is set and no name is provided. Raises
        ``ValueError`` if provided without ``in_reply_to``.

NR)	title_barin_reply_to
reply_typeannotation_namer-   r.   r/   )r,   Groupr0   r   c                   Ub  [        U5      U [        S5      '   Ub  Uc  [        S5      eUS:w  a  Uc  [        S5      eUb  [        U[        5      (       a  UnO/[        USS 5      n[        U[        5      (       d  [        S5      eUnXP[        S5      '   [        SU 35      U [        S	5      '   Uc  [        [        R                  " 5       5      n[        U5      U [        S
5      '   g g )Nz/Tz9annotation_name is only supported when in_reply_to is setr,   z5reply_type is only meaningful when in_reply_to is setindirect_referencezUin_reply_to must be a registered annotation (added via writer.add_annotation() first)z/IRT/z/RTz/NM)	r   r   
ValueError
isinstancer   getattrstruuiduuid4)selfr-   r.   r/   r0   refindirect_refs          r&   __init__MarkupAnnotation.__init__A   s      %5i%@DD!"&;+>K  !4G  "+~66&1&{4H$O!,??$D  #'*F#$&01ZL1A&BDE"#&"%djjl"3&6&GDE"# #r(    )__name__
__module____qualname____firstlineno____doc__r   r8   r   r   r   r   r>   __static_attributes__r@   r(   r&   r*   r*   *   su    2 $(IM,/)-!H C=!H e$4n$DEF	!H
 L)!H "#!H 
!H !Hr(   r*   c                   j   ^  \ rS rSrSrS\S.S\\\\	\	\	\	4   4   S\
S\S\S	\S
S4U 4S jjjrSrU =r$ )Texte   z
A text annotation.

Args:
    rect: array of four integers ``[xLL, yLL, xUR, yUR]``
        specifying the clickable rectangular area
    text: The text that is added to the document
    open:
    flags:

F)openflagsrecttextrJ   rK   kwargsr   Nc                  > [         TU ]  " S0 UD6  [        S5      U [        S5      '   [        U5      U [        S5      '   [	        U5      U [        S5      '   [        U5      U [        S5      '   [        U5      U [        S5      '   g )Nz/Text/Subtype/Rect	/Contentsz/Openz/Flagsr@   )superr>   r   r   r   r   r   )r;   rL   rM   rJ   rK   rN   	__class__s         r&   r>   Text.__init__r   sy     	"6"'1'':Z
#$$3D$9Z !(8(>Z$%$1$$7Z !%1%%8Z!"r(   r@   )rA   rB   rC   rD   rE   r   r   r   tuplefloatr8   boolintr   r>   rF   __classcell__rT   s   @r&   rH   rH   e   sn    
" 9 OU5%+E%FFG9 	9
 9 9 9 
9 9r(   rH   c                      ^  \ rS rSrSrSSSSSSSS.S	\S
\\\\	\	\	\	4   4   S\S\
S\
S\S\S\\   S\\   S\SS4U 4S jjjrSrU =r$ )FreeText   zA FreeText annotation	HelveticaF14pt000000ffffff)fontbolditalic	font_size
font_colorborder_colorbackground_colorrM   rL   rc   rd   re   rf   rg   rh   ri   rN   r   Nc       	           > [         TU ]  " S0 U
D6  [        S5      U [        S5      '   [        U5      U [        S5      '   SnU(       a  U S3nOU S3nU(       a  U S3nOU S3nU U SU 3nU S	U 3nS
nU(       a  [	        U5       H
  nU U S3nM     U S3nU R                  [        S5      [        S5      [        S5      [        U5      [        S5      [        U5      [        S5      [        U5      [        S5      [        U5      05        Uc+  [        [        S5      [        S5      05      U [        S5      '   U	b;  [        [	        U	5       Vs/ s H  n[        U5      PM     sn5      U [        S5      '   g g s  snf )Nz	/FreeTextrP   rQ   zfont: zitalic znormal zbold  z;text-align:left;color:# rgrR   z/DSz/DAz/Wr   z/BS/Cr@   )rS   r>   r   r   r   updater   r   r   r
   r   )r;   rM   rL   rc   rd   re   rf   rg   rh   ri   rN   font_strdefault_appearance_stringstnrT   s                  r&   r>   FreeText.__init__   s    	"6"'1+'>Z
#$$3D$9Z ! "7+H"7+H"5)H"7+HZ	{!D62Z7
|D$&! ./H.I"Q,O) /+D*ER(H%:&
;(?7#_T%:;')9$)?5!#3H#=5!#34M#N		
 &6 t$l1o'DE"# '%0)34D)EF)EAQ)EF&DD!" (Fs   E?r@   )rA   rB   rC   rD   rE   r8   r   r   rV   rW   rX   r   r   r>   rF   rZ   r[   s   @r&   r]   r]      s      "&.*2: : OU5%+E%FFG	:
 : : : : : sm: #3-: : 
: :r(   r]   c                   b   ^  \ rS rSr SS\S\S\\\\\\\4   4   S\	S\
SS4U 4S	 jjjrS
rU =r$ )Line   p1p2rL   rM   rN   r   Nc                   > [         TU ]  " S0 UD6  U R                  [        S5      [        S5      [        S5      [	        U5      [        S5      [        [        US   5      [        US   5      [        US   5      [        US   5      /5      [        S5      [        [        S5      [        S5      /5      [        S	5      [        [        S
5      [        S
5      [        S
5      /5      [        S5      [        U5      05        g )NrP   z/LinerQ   z/Lr   r   z/LEz/None/ICg      ?rR   r@   )rS   r>   ro   r   r   r
   r   r   )r;   rx   ry   rL   rM   rN   rT   s         r&   r>   Line.__init__   s     	"6":&
7(;7#_T%:4 +#BqE*#BqE*#BqE*#BqE*	# 5!;"7+"7+$ 5!;#C(#C(#C($ ;')9$)?1	
r(   r@   )rl   )rA   rB   rC   rD   r   r   r   rV   rW   r8   r   r>   rF   rZ   r[   s   @r&   rv   rv      sd     $
$
 $
 OU5%+E%FFG	$

 $
 $
 
$
 $
r(   rv   c                   >   ^  \ rS rSrS\\   S\SS4U 4S jjrSrU =r	$ )PolyLine   r   rN   r   Nc                   > [         TU ]  " S0 UD6  [        U5      S:X  a  [        S5      e/ nU H9  u  pEUR	                  [        U5      5        UR	                  [        U5      5        M;     U R                  [        S5      [        S5      [        S5      [        U5      [        S5      [        [        U5      5      05        g )Nr   z7A polyline needs at least 1 vertex with two coordinatesrP   z	/PolyLine	/VerticesrQ   r@   rS   r>   lenr5   appendr   ro   r   r
   r   r'   r;   r   rN   
coord_listr$   r%   rT   s         r&   r>   PolyLine.__init__   s    
 	"6"x=AVWW
DAl1o.l1o.  	:&
;(?;'Z)@7#_5LX5V%W	
r(   r@   )
rA   rB   rC   rD   listr   r   r>   rF   rZ   r[   s   @r&   r~   r~      s-    
v,
 
 
	
 
r(   r~   c            	       b   ^  \ rS rSrSS.S\\\\\\\4   4   S\\	   S\
SS4U 4S jjjrS	rU =r$ )
	Rectanglei  Ninterior_colorrL   r   rN   r   c          
      N  > [         TU ]  " S0 UD6  U R                  [        S5      [        S5      [        S5      [        S5      [        S5      [	        U5      05        U(       a;  [        [        U5       Vs/ s H  n[        U5      PM     sn5      U [        S5      '   g g s  snf )N/Type/AnnotrP   z/SquarerQ   r{   r@   rS   r>   ro   r   r   r
   r   r   r;   rL   r   rN   rs   rT   s        r&   r>   Rectangle.__init__  s     	"6"7#Z%9:&
9(=7#_T%:	
 &1)3N)CD)CAQ)CD'DE"# D   8B"r@   rA   rB   rC   rD   r   r   rV   rW   r   r8   r   r>   rF   rZ   r[   s   @r&   r   r     sT    
 )-	OU5%+E%FFG !	
  
 r(   r   c                   f   ^  \ rS rSrSSS.S\\\\\\\4   4   S\S\	S\
S	\S
S4U 4S jjjrSrU =r$ )	Highlighti  ff0000F)highlight_colorprintingrL   quad_pointsr   r   rN   r   Nc                `  > [         TU ]  " S0 UD6  U R                  [        S5      [        S5      [        S5      [	        U5      [        S5      U[        S5      [        [        U5       Vs/ s H  n[        U5      PM     sn5      05        U(       a  [        R                  U l
        g g s  snf )NrP   z
/HighlightrQ   z/QuadPointsrn   r@   )rS   r>   ro   r   r   r
   r   r   r	   PRINTrK   )r;   rL   r   r   r   rN   rs   rT   s          r&   r>   Highlight.__init__  s     	"6":&
<(@7#_T%:=);4 +-7-HI-H[^-HI#			
 '--DJ 	 Js   ,B+)rK   )rA   rB   rC   rD   r   r   rV   rW   r
   r8   rX   r   r>   rF   rZ   r[   s   @r&   r   r     si      (. OU5%+E%FFG. !	.
 . . . 
. .r(   r   c            	       b   ^  \ rS rSrSS.S\\\\\\\4   4   S\\	   S\
SS4U 4S jjjrS	rU =r$ )
Ellipsei1  Nr   rL   r   rN   r   c          
      N  > [         TU ]  " S0 UD6  U R                  [        S5      [        S5      [        S5      [        S5      [        S5      [	        U5      05        U(       a;  [        [        U5       Vs/ s H  n[        U5      PM     sn5      U [        S5      '   g g s  snf )Nr   r   rP   z/CirclerQ   r{   r@   r   r   s        r&   r>   Ellipse.__init__2  s     	"6"7#Z%9:&
9(=7#_T%:	
 &1)3N)CD)CAQ)CD'DE"# Dr   r@   r   r[   s   @r&   r   r   1  sT    
 )-	OU5%+E%FFG !	
  
 r(   r   c                   H   ^  \ rS rSrS\\\\4      S\SS4U 4S jjrSr	U =r
$ )PolygoniI  r   rN   r   Nc                   > [         TU ]  " S0 UD6  [        U5      S:X  a  [        S5      e/ nU H9  u  pEUR	                  [        U5      5        UR	                  [        U5      5        M;     U R                  [        S5      [        S5      [        S5      [        S5      [        S5      [        U5      [        S5      [        S	5      [        S
5      [        [        U5      5      05        g )Nr   z6A polygon needs at least 1 vertex with two coordinatesr   r   rP   z/Polygonr   z/ITz/PolygonCloudrQ   r@   r   r   s         r&   r>   Polygon.__init__J  s    
 	"6"x=AUVV
DAl1o.l1o.  	7#Z%9:&
:(>;'Z)@5!:o#>7#_5LX5V%W	
r(   r@   )rA   rB   rC   rD   r   rV   rW   r   r>   rF   rZ   r[   s   @r&   r   r   I  s7    
uUE\*+
 
 
	
 
r(   r   ).sysr9   abcr   typingr   r   r   r   	constantsr	   genericr
   r   generic._baser   r   r   r   r   r   generic._rectangler   generic._utilsr   _baser   r   version_infor   typing_extensionsrV   rW   r   __annotations__r   r'   r*   rH   r]   rv   r~   r   r   r   r   r@   r(   r&   <module>r      s    
   0 0 & 3  1 ' 1BQ7"  , %,'	 '9d6l 9 98H+S 8Hv9 9<= =@%
 %
P
 
,  ..  .2 0
 
r(   