
    HAi-              	          S SK JrJrJrJrJrJr  SSKJrJ	r	J
r
JrJr  \(       a  SSKJr  SSKJr  SSKJr   " S S	5      r " S
 S5      r\\\4   rSSSSS\\\\4      4S jrS\
SSS\\   4S jrS\SSS\\   4S jrg)    )TYPE_CHECKINGListOptionalTupleUnioncast   )ArrayObjectDictionaryObjectIndirectObject	PdfObjectTextStringObject   )
PageObject)	PdfReader)	PdfWriterc                   \    \ rS rSrSrS\SSSS4S jrS\\S4   4S	 jr	S
SS\SS4S jr
Srg)NamedReferenceLink)   zGNamed reference link being preserved until we can resolve it correctly.	reference
source_pdfr   returnNc                     Xl         X l        g)z0reference: TextStringObject with named referenceN
_reference_source_pdf)selfr   r   s      O/var/www/html/land-ocr/venv/lib/python3.13/site-packages/pypdf/generic/_link.py__init__NamedReferenceLink.__init__,   s    #%    c                     U R                   R                  R                  [        U R                  5      5      nU(       a  UR
                  $ S $ N)r   named_destinationsgetstrr   page)r   destinations     r   find_referenced_page'NamedReferenceLink.find_referenced_page1   s:    &&99==c$//>RS#.{8D8r!   
target_pdfr   new_pagec                     [        U R                  5      UR                  ;  a0  UR                  [        U R                  5      UR                  5        gg)2target_pdf: PdfWriter which the new link went intoN)r&   r   r$   add_named_destinationpage_numberr   r+   r,   s      r   patch_reference"NamedReferenceLink.patch_reference5   s@     tz'D'DD,,S-A8CWCWX Er!   r   )__name__
__module____qualname____firstlineno____doc__r   r   r   r   r)   r2   __static_attributes__ r!   r   r   r   )   sV    Q&"2 & &PT &
9eND,@&A 9Y+ Y YTX Yr!   r   c                   N    \ rS rSrSrS\SS4S jrS\4S jrSS	S
\SS4S jr	Sr
g)DirectReferenceLink<   zHDirect reference link being preserved until we can resolve it correctly.r   r   Nc                     Xl         g)zIreference: an ArrayObject whose first element is the Page indirect objectNr   )r   r   s     r   r   DirectReferenceLink.__init__?   s    #r!   c                      U R                   S   $ )Nr   r?   )r   s    r   r)   (DirectReferenceLink.find_referenced_pageC   s    q!!r!   r+   r   r,   c                      X R                   S'   g)r.   r   Nr?   r1   s      r   r2   #DirectReferenceLink.patch_referenceF   s    %r!   r?   )r4   r5   r6   r7   r8   r
   r   r   r)   r2   r9   r:   r!   r   r<   r<   <   s?    R$+ $$ $"n "&+ & &TX &r!   r<   r,   r   old_pager   c                 4   U R                  S/ 5       Vs/ s H  n[        X 5      PM     nnUR                  S/ 5       Vs/ s H  n[        X!5      PM     nn[        X45       VVs/ s H  u  pVU(       d  M  U(       d  M  XV4PM     snn$ s  snf s  snf s  snnf )zExtracts links from two pages on the assumption that the two pages are
the same. Produces one list of (new link, old link) tuples.
z/Annots)r%   _build_linkzip)r,   rE   link	new_links	old_linksnew_linkold_links          r   extract_linksrN   N   s     :BiQS9TU9TT,9TIU9AiQS9TU9TT,9TIU y$$ "6( 	  	$  VUs   B
 B%B6B?Bindirect_objectr'   c                 h   [        SUR                  5      n[        [        U R                  5       5      n[	        U[        5      (       a  UR                  S5      S:w  a  g SU;   a8  [        [        US   5      nUR                  S5      S:w  a  g [        US   U5      $ SU;   a  [        US   U5      $ g )	Nr   z/Subtypez/Linkz/Az/Sz/GoToz/Dz/Dest)r   pdfr   
get_object
isinstancer%   _create_link)rO   r'   srcrI   actions        r   rG   rG   \   s    
{DHH
%C /"<"<">?Dt-..488J3G73Rt|&T
3::dw&F4L#..$DM3//r!   r   r   r   c                     [        U [        5      (       a  [        X5      $ [        U [        5      (       a  [	        U 5      $ g r#   )rS   r   r   r
   r<   )r   r   s     r   rT   rT   o   s6    )-..!)88)[))"9--r!   N)typingr   r   r   r   r   r    r
   r   r   r   r   _pager   _readerr   _writerr   r   r<   ReferenceLinkrN   rG   rT   r:   r!   r   <module>r^      s   > E D X X"##Y Y&& & (*==>L L T%P]_lPlJmEn  | Q^H_ &I ; (=BY r!   