
    [g                        d dl Z d dlmZmZmZmZ ddlmZ ddlm	Z	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	 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dS )    N)DictListTupleUnion   )_pdfdoc_encoding)
StreamTypeb_logger_warningread_non_whitespace)STREAM_TRUNCATED_PREMATURELYPdfStreamError   )ByteStringObjectTextStringObjectvaluereturnc                 :     t           fddD                       S )Nc              3   z   K   | ]5}t                              d           ||dz            d          dz  V  6dS )#r      g     o@N)intlstrip).0ir   s     P/var/www/pdf_extract/myenv/lib/python3.11/site-packages/PyPDF2/generic/_utils.py	<genexpr>zhex_to_rgb.<locals>.<genexpr>   sK      RR1U\\#&&q1q5y1266>RRRRRR    )r   r      )tuple)r   s   `r   
hex_to_rgbr!   
   s&    RRRR	RRRRRRr   streamforced_encoding)r   r   c                    |                      d           d}d}	 t          |           }|st          t                    |dk    rn<||z  }t	          |          dk    r#|t          t          |d                    z  }d}ht	          |          dk    r|d	z  }t	          |          dk    r!|t          t          |d                    z  }t          t          |          |          S )
Nr    r   T   >r   r   base   0)	readr   r   r   lenchrr   create_string_objectr
   )r"   r#   txtxtoks        r   read_hex_string_from_streamr1      s     KKNNN
CA	!&)) 	? !=>>>$;;	Sq66Q;;3s12'''CA	 1vv{{	T	
1vv{{s3qr???###3999r   c           	         |                      d          }d}g }	 |                      d          }|st          t                    |dk    r|dz  }np|dk    r|dz  }|dk    rntn[|dk    rT|                      d          }i ddd	d
dddddddddddddddddddddddddddddddddd}	 ||         }n# t          $ r d|k    r|d k    r{t	          d!          D ]?}|                      d          }d|k    r|d k    r||z  })|                     d"d            t          t          t          |d#$                              }nc|d%v r2|                      d          }|d%vr|                     d"d           d&}n-d'|	                    d(           }t          |t                     Y nw xY w|                    |           t          d&                    |          |          S ))Nr   T   (   )r      \   n   
   r      t   	   b      f      cs   \c   /       %   <r&      [   ]   #   _   &   $)rH   rI   rJ   r)      7r      r'   s   
r   zUnexpected escaped string: utf8)r*   r   r   KeyErrorrangeseekr
   r,   r   decoder   __name__appendr-   join)	r"   r#   r0   parensr.   escape_dict_ntokmsgs	            r   read_string_from_streamr[   &   s    ++a..CF
C@kk!nn 	? !=>>>$;;aKFFD[[aKF{{ E\\++a..Cee e e	
 e f d d d u d d d d d  d!" d#$ )  K,2!#& 2 2 23;;3$;; #1XX " "%{{1~~4<<DDLL4KCC"KKA...!SSq!1!1!12233CCG^^ !++a..C'))B*** CCMF9K9KMMC"3111728 	

3A@B  ???s    C	 	C4G ?G stringc                 2   t          | t                    rt          |           S t          | t                    rOt          |t          t
          f          rXd}| D ]D}	 |||         z  }# t          $ r) |t          |f                              d          z  }Y Aw xY wt          |          S t          |t                    r7|dk    rt          |           S t          |                     |                    S 	 | 	                    t          j                  r+t          |                     d                    }d|_        |S t          t          |                     }d|_        |S # t          $ r t          |           cY S w xY wt!          d          )z
    Create a ByteStringObject or a TextStringObject from a string to represent the string.

    :param Union[str, bytes] string: A string

    :raises TypeError: If string is not of type str or bytes.
    r%   charmapbyteszutf-16Tz3create_string_object should have str or unicode arg)
isinstancestrr   r_   listdict	ExceptionrR   r   
startswithcodecsBOM_UTF16_BEautodetect_utf16decode_pdfdocencodingautodetect_pdfdocencodingUnicodeDecodeError	TypeError)r\   r#   outr/   retvals        r   r-   r-   q   s    &#  O'''	FE	"	" Ood|44 	0C 9 99?1--CC  9 9 95!;;--i888CCC9#C(((-- 	0'))'///#FMM/$B$BCCC0$$V%899 "-fmmH.E.EFFF.2F+!M ..CF.K.KLLF7;F4!M% 0 0 0'/////0 MNNNs+   A**0BB<A	E+ $E+ +FF
byte_arrayc                     d}| D ]:}t           |         }|dk    r t          dt          |          ddd          ||z  };|S )Nr%    pdfdocencodingrL   z#does not exist in translation table)r   rk   	bytearray)ro   rn   bcs       r   ri   ri      sb    F 
 
Q==$ !5   	!Mr   )N)rf   typingr   r   r   r   _codecsr   _utilsr	   r
   r   r   errorsr   r   _baser   r   ra   floatr!   r   r1   r[   r_   r-   ri    r   r   <module>r}      s/    + + + + + + + + + + + + & & & & & & H H H H H H H H H H H H A A A A A A A A 5 5 5 5 5 5 5 5Sc SeE5%$78 S S S S DH: ::4d3ic3h?@: 12: : : :4 DHH@ H@H@4d3ic3h?@H@ 12H@ H@ H@ H@Z DH+O +O#u*+O4d3ic3h?@+O --.+O +O +O +O\e       r   