
    ;3hw	                         d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
 ddlmZ deeef   defd	Zd
edefdZdeeeef      dee   fdZdedefdZdedee   fdZdedefdZy)    )AnyListOptionalUnion)	PDFObjRef)	PSLiteralPDFDocEncoding   )MalformedPDFExceptionsreturnc                     t        | t              r!| j                  d      rt        | dd dd      S 	 d | D        }dj	                  d |D              S # t
        $ r t        |       cY S w xY w)	zg
    Decodes a PDFDocEncoding string to Unicode.
    Adds py3 compatibility to pdfminer's version.
    s      Nzutf-16beignorec              3   V   K   | ]!  }t        |t              rt        |      n| # y wN)
isinstancestrord).0cs     ]/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/pdfplumber/utils/pdfinternals.py	<genexpr>zdecode_text.<locals>.<genexpr>   s"     ?*Q,A!3?s   ') c              3   .   K   | ]  }t         |     y wr   r	   )r   os     r   r   zdecode_text.<locals>.<genexpr>   s     7Q~a(7s   )r   bytes
startswithr   join
IndexError)r   ordss     r   decode_textr#   
   sj    
 !U[ 91QR5*h//?Q?ww7$777 1vs    A A+*A+objc                    t        | d      r| j                         } t        | t              rt        t	        t
        |             S t        | t              rt        | j                        S t        | t        t        f      rt        |       S t        | t              r(| j                         D ]  \  }}t        |      | |<    | S | S )z(Recursively resolve the metadata values.resolve)hasattrr&   r   listmapresolve_and_decoder   r#   namer   r   dictitems)r$   kvs      r   r*   r*      s    sIkkm#tC*C011	C	#388$$	C#u	&3	C	IIK 	+DAq'*CF	+
J    _listc                 v    | D cg c])  }t        |t              rt        |j                        n|+ c}S c c}w r   )r   r   r#   r+   )r1   values     r   decode_psl_listr4   *   s;      $.eY#?EJJUJ  s   .6xc                 F    t        | t              r| j                         S | S r   )r   r   r&   )r5   s    r   r&   r&   1   s    !Yyy{r0   dc                     t        | t              sy | j                  d      }t        |t              rt	        |j
                        S |S )NType)r   r,   getr   r#   r+   )r7   ts     r   get_dict_typer<   8   s:    a	fA!Y166""r0   c                    t        | t              r,| j                         }t        |      dk(  r| S 	 t	        |      S t        | t        t        f      r t        |       d | D              S t        | t              rFt        |       dk(  rdgng }| j                         D ci c]  \  }}|||v r|n
t	        |       c}}S | S # t
        $ r}t        |      d}~ww xY wc c}}w )zF
    Recursively resolves the given object and all the internals.
    PageNc              3   2   K   | ]  }t        |        y wr   )resolve_all)r   r/   s     r   r   zresolve_all.<locals>.<genexpr>R   s     1!{1~1s   AnnotParent)r   r   r&   r<   r@   RecursionErrorr   r(   tupletyper,   r-   )r5   resolvede
exceptionsr.   r/   s         r   r@   r@   B   s     !Y99; "f,H	+x(( 
Ae}	%tAw1q111	At	#0#3w#>hZB
HI	R1Z1[^;RR  	+'**	+ Ss   
C !C	CCCN)typingr   r   r   r   pdfminer.pdftypesr   pdfminer.psparserr   pdfminer.utilsr
   rH   r   r   r   r#   r*   r4   r&   r<   r@    r0   r   <module>rN      s    - - ' ' ) -5$  C C $4in 56 49 s s S Xc] 3 3 r0   