
    iu%                        % 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  SSK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  \ R2                  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OptionalUnion   )AnnotationFlag)ArrayObjectDictionaryObject)BooleanObjectFloatObject
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          _/home/james-whalen/.local/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                   8    \ rS rSrSrSS.S\\   SS4S jjrSrg)	MarkupAnnotation(   z
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

N)	title_barr*   r   c                :    Ub  [        U5      U [        S5      '   g g )Nz/T)r   r   )selfr*   s     r$   __init__MarkupAnnotation.__init__2   s!     %5i%@DD!" !r&    )	__name__
__module____qualname____firstlineno____doc__r   strr-   __static_attributes__r/   r&   r$   r(   r(   (   s,     6: AXc] Ad A A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$ )Text7   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textr:   r;   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,   r<   r=   r:   r;   r>   	__class__s         r$   r-   Text.__init__D   sy     	"6"'1'':Z
#$$3D$9Z !(8(>Z$%$1$$7Z !%1%%8Z!"r&   r/   )r0   r1   r2   r3   r4   r   r   r   tuplefloatr5   boolintr   r-   r6   __classcell__rD   s   @r$   r8   r8   7   sn    
" 9 OU5%+E%FFG9 	9
 9 9 9 
9 9r&   r8   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$ )FreeTextU   zA FreeText annotation	HelveticaF14pt000000ffffff)fontbolditalic	font_size
font_colorborder_colorbackground_colorr=   r<   rS   rT   rU   rV   rW   rX   rY   r>   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	/FreeTextr@   rA   zfont: zitalic znormal zbold  z;text-align:left;color:# rgrB   z/DSz/DAz/Wr   z/BS/Cr/   )rC   r-   r   r   r   updater   r
   r   r	   r   )r,   r=   r<   rS   rT   rU   rV   rW   rX   rY   r>   font_strdefault_appearance_stringstnrD   s                  r$   r-   FreeText.__init__X   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/   )r0   r1   r2   r3   r4   r5   r   r   rF   rG   rH   r   r   r-   r6   rJ   rK   s   @r$   rM   rM   U   s      "&.*2: : OU5%+E%FFG	:
 : : : : : sm: #3-: : 
: :r&   rM   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p2r<   r=   r>   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 )Nr@   z/LinerA   z/Lr   r   z/LEz/None/ICg      ?rB   r/   )rC   r-   r_   r   r   r	   r   r   )r,   rh   ri   r<   r=   r>   rD   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/   )r\   )r0   r1   r2   r3   r   r   r   rF   rG   r5   r   r-   r6   rJ   rK   s   @r$   rf   rf      sd     $
$
 $
 OU5%+E%FFG	$

 $
 $
 
$
 $
r&   rf   c                   >   ^  \ rS rSrS\\   S\SS4U 4S jjrSrU =r	$ )PolyLine   r   r>   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   6A polygon needs at least 1 vertex with two coordinatesr@   z	/PolyLine	/VerticesrA   r/   rC   r-   len
ValueErrorappendr   r_   r   r	   r   r%   r,   r   r>   
coord_listr"   r#   rD   s         r$   r-   PolyLine.__init__   s    
 	"6"x=AUVV
DAl1o.l1o.  	:&
;(?;'Z)@7#_5LX5V%W	
r&   r/   )
r0   r1   r2   r3   listr   r   r-   r6   rJ   rK   s   @r$   rn   rn      s-    
v,
 
 
	
 
r&   rn   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$ )
	Rectangle   Ninterior_colorr<   r   r>   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/Annotr@   z/SquarerA   rk   r/   rC   r-   r_   r   r   r	   r   r   r,   r<   r   r>   rc   rD   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/   r0   r1   r2   r3   r   r   rF   rG   r   r5   r   r-   r6   rJ   rK   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$ )	Highlight   ff0000F)highlight_colorprintingr<   quad_pointsr   r   r>   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 )Nr@   z
/HighlightrA   z/QuadPointsr^   r/   )rC   r-   r_   r   r   r	   r   r   r   PRINTr;   )r,   r<   r   r   r   r>   rc   rD   s          r$   r-   Highlight.__init__   s     	"6":&
<(@7#_T%:=);4 +-7-HI-H[^-HI#			
 '--DJ 	 Js   ,B+)r;   )r0   r1   r2   r3   r   r   rF   rG   r	   r5   rH   r   r-   r6   rJ   rK   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$ )
Ellipsei  Nr~   r<   r   r>   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   r@   z/CirclerA   rk   r/   r   r   s        r$   r-   Ellipse.__init__  s     	"6"7#Z%9:&
9(=7#_T%:	
 &1)3N)CD)CAQ)CD'DE"# Dr   r/   r   rK   s   @r$   r   r     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
$ )Polygoni  r   r>   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   rq   r   r   r@   z/Polygonrr   z/ITz/PolygonCloudrA   r/   rs   rw   s         r$   r-   Polygon.__init__  s    
 	"6"x=AUVV
DAl1o.l1o.  	7#Z%9:&
:(>;'Z)@5!:o#>7#_5LX5V%W	
r&   r/   )r0   r1   r2   r3   rz   rF   rG   r   r-   r6   rJ   rK   s   @r$   r   r     s7    
uUE\*+
 
 
	
 
r&   r   )+sysabcr   typingr   r   r   	constantsr   genericr	   r
   generic._baser   r   r   r   r   generic._rectangler   generic._utilsr   _baser   r   version_infor   typing_extensionsrF   rG   r   __annotations__rz   r%   r(   r8   rM   rf   rn   r|   r   r   r   r/   r&   r$   <module>r      s    
  ' ' & 3  1 ' 1BQ7"  , %,'	 '9d6l 9 9A+S A9 9<= =@%
 %
P
 
,  ..  .2 0
 
r&   