
    j                        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     ^/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/pypdf/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  }nz|dk    r|dz  }|dk    rn~ne|dk    r^|                      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|cxk    rd k    rn nt	          d!          D ]C}|                      d          }d|cxk    rd k    r	n n||z  }-|                     d"d            t          t          t          |d#$                              }nd|d%v r2|                      d          }|d%vr|                     d"d           d&}n.d'|	                    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: zutf-8ignore)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&&&&$&&&&& #1XX " "%{{1~~4////4/////4KCC"KKA...!SSq!1!1!12233CCG^^ !++a..C'))B*** CCV

788T8TVVC"3111728 	

3A@B  ???s    C
 
C=G
	G
stringc                 J   t          | t                    rt          |           S t          | t                    r[t          |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        t          j        f          r+t          |                     d                    }d|_        |S t          t          |                     }d|_        |S # t           $ r t          |           cY S w xY wt#          d          )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.
    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BOM_UTF16_LE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$$f&96;N%OPP "-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E7 $E7 7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   rl   	bytearray)rp   ro   bcs       r   rj   rj      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-   rj    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2O 2O#u*2O4d3ic3h?@2O --.2O 2O 2O 2Oje       r   