
    PhZ                        d dl Z d dlmZ ddlmZ ddlmZmZmZ ddl	m
Z
mZ ddlmZmZ d	ed
eeeef   fdZ	 d/dededeee   eeef   f   d
ed   fdZi d ed      d ed      d ed      d ed      d ed      d ed      d ed      d ed      d ed      d ed      d ed      d  ed       d! ed!      d" ed"      d# ed#      d$ ed$      d% ed%       ed&       ed'      d(Zd)Z	 d/dededeee   eeef   f   d
ed   fd*Z	 d/d+eeef   dedeee   eeef   f   d
eeef   fd,Zd-ed
efd.Zy)0    N)Union   )_pdfdoc_encoding)
StreamTypelogger_warningread_non_whitespace)STREAM_TRUNCATED_PREMATURELYPdfStreamError   )ByteStringObjectTextStringObjectvaluereturnc                 ,     t         fddD              S )Nc              3   f   K   | ](  }t        j                  d       ||dz    d      dz   * yw)#r      g     o@N)intlstrip).0ir   s     N/var/www/html/saasai/venv/lib/python3.12/site-packages/pypdf/generic/_utils.py	<genexpr>zhex_to_rgb.<locals>.<genexpr>   s2     R	1U\\#&q1q5126>	s   .1)r   r      )tuple)r   s   `r   
hex_to_rgbr   
   s    R	RRR    streamforced_encoding)r   r   c                 h   | j                  d       g }d}	 t        |       }|st        t              |dk(  rn2||z  }t	        |      dk(  r|j                  t        |d             d}Tt	        |      dk(  r|dz  }|dk7  r|j                  t        |d             t        t        |      |      S )Nr   r      >r   r   base   0)	readr   r
   r	   lenappendr   create_string_objectbytes)r   r   arrxtoks        r   read_hex_string_from_streamr-      s     KKN
CA
!&) !=>>$;	Sq6Q;JJs12'A  1v{	T	Cx

3qr?#c
O<<r      n   
   r      t   	   b      f      (   )   /   \       %   <r!      [   ]   #   _   &   $)rC   rD   \   c                    | j                  d      }d}g }	 | j                  d      }|st        t              |dk(  r|dz  }n@|dk(  r|dz  }|dk(  r1nK|dk(  r+| j                  d      }	 |j                  t        |          n|j                  t        |             t        t!        |      |      S # t
        $ r" d|cxk  rdk  rn n| j                         dz
  }t        d      D ]:  }| j                  d      }d|cxk  rdk  r	n n||z  }(| j                  d	d        n t        |d
      }|dkD  r'|j                  t               | j                  |       n|j                  |       Y ^|dv r*| j                  d      }|dvr| j                  d	d       Y d|j                  dd       }	t        |	t               |j                  t               Y [w xY w)Nr   r8   r9   r   r;   r$      7r      r"      s   
zUnexpected escaped string: zutf-8ignore)r%   r
   r	   r'   __ESCAPE_DICT__KeyErrortellrangeseekr   __BACKSLASH_CODE__decoder   __name__ordr(   r)   )
r   r   r,   parenstxtsav_ntokr   msgs
             r   read_string_from_streamr[   >   s    ++a.CF
C
kk!n !=>>$;aKFD[aKF{E\++a.C%/

?3/0H 	

3s8e f  c
O<<I  "/3&$& !++-!+C"1X%{{1~4/4/4KC"KKA.! & Ca(A3w

#56C(

1'> !++a.C')B* 3CJJw4Q3RSsH-

-.E"/s   +B4 4B=G 4+G ":G G stringc                 <   t        | t              rt        |       S t        | t              rt        |t        t
        f      r&d}| D ]  }	 |||   z  } t        |      }| |_        |S t        |t              r3|dk(  rt        |       S t        | j                  |            }| |_        |S 	 | j                  t        j                  t        j                  f      r4t        | j                  d            }| |_        d|_        | dd |_        |S | j                  d      r?t        | j                  d	            }| |_        d|_        t        j                  |_        |S | d
d dk(  r?t        | j                  d            }| |_        d|_        t        j                  |_        |S t        t!        |             }| |_        d|_        |S t'        d      # t        $ r" |t        |f      j                  d      z  }Y w xY w# t$        $ r t        |       cY S w xY w)a?  
    Create a ByteStringObject or a TextStringObject from a string to represent the string.

    Args:
        string: The data being used
        forced_encoding: Typically None, or an encoding string

    Returns:
        A ByteStringObject

    Raises:
        TypeError: If string is not of type str or bytes.

     charmapr)   zutf-16TNr       zutf-16ber   zutf-16lez3create_string_object should have str or unicode arg)
isinstancestrr   r)   listdict	ExceptionrR   _original_bytesr   
startswithcodecsBOM_UTF16_BEBOM_UTF16_LEautodetect_utf16	utf16_bomdecode_pdfdocencodingautodetect_pdfdocencodingUnicodeDecodeError	TypeError)r\   r   outr+   objretvals         r   r(   r(   {   s
   $ &#''&% od|4C9?1--C 
 #3'C"(CJos+')'//"6==#ABC"(CJ	,  &"5"5v7J7J!KL)&--*AB)/&*.'#)"1:   ))&--
*CD)/&*.'#)#6#6 a{g%)&--
*CD)/&*.'#)#6#6  &&;F&CDF%+F"/3F,M MNNW ! 95!;--i88C9P " 	,#F++	,s9   G-A"H AH  AH '#H 'H HHH
byte_arrayc                 n    d}| D ]-  }t         |   }|dk(  rt        dt        |      ddd      ||z  }/ |S )Nr^    pdfdocencodingrH   z#does not exist in translation table)r   ro   	bytearray)rt   rs   bcs       r   rm   rm      sT    FQ=$ !5  	!  Mr   )N)rh   typingr   _codecsr   _utilsr   r   r   errorsr	   r
   _baser   r   rb   r   floatr   rc   rd   r   r-   rT   rL   rQ   r[   r)   r(   rm    r   r   <module>r      sj     & D D A 5Sc SeE5%$78 S DH==4d3ic3h?@= 12=0#e*#e* 	#e* 	#e*	
 	#e* 	#d) 	#d) 	#d) 
3u: 	#d) 	#d) 	#d) 	#d) 	#d) 	#d)  	#d)!" 	#d)#$ d)
d)'*  
 DH:=:=4d3ic3h?@:= 12:=~ DHEO#u*EO4d3ic3h?@EO --.EOPe  r   