
    li
                     z    d dl Z d dlZd dlmZ d Zd Zd ZddZd Z	 G d d      Z
 G d	 d
      Zd Zd Zd Zy)    Nc                     t        |       dk7  rt        d      t        d | D              st        d      | \  }}}}|r||||fn||||f}d}d}|D ]  }	||	|z  z  }|dz  } |S )N   z'Color must consist of exactly 4 values.c              3   <   K   | ]  }d |cxk  xr dk  nc   yw)r      N ).0cs     U/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pypdfium2/internal/utils.py	<genexpr>zcolor_tohex.<locals>.<genexpr>   s     ,qA}}},s   zColor value exceeds boundaries.r         )len
ValueErrorall)
colorrev_byteorderrgbachannelsc_colorshiftr	   s
             r
   color_tohexr   	   s    
5zQBCC,e,,:;; JAq!Q,1a|1aA,HGE 1:
 N    c                 P    t        | | t        t        | |            |             y N)setattrtypegetattr)structfnamecallbacks      r
   set_callbackr$      s"    FE94!79(CDr   c                     |j                         D ]+  \  }}t        | | t        t        | |            |             - y r   )itemsr   r   r    )r!   kwargsr"   r#   s       r
   set_callbacksr(       s=    !<<> Ix=tWVU%;=hGHIr   c                      g }t        |      j                  t        d            sJ d|v r|g dz  }d|v r|dgz  }t         fd|D              S )Nrwr   )seektellreadreadintowwritec              3   J   K   | ]  }t        t        |d               y wr   )callabler    )r   r   bufs     r
   r   zis_stream.<locals>.<genexpr>,   s     @1xQ-.@s    #)setissubsetr   )r3   specmethodss   `  r
   	is_streamr8   %   sZ    Gt9s4y***
d{77
d{G9@@@@r   c                 z    | j                   }t        |      |z  j                  t        j                  |            S r   )contentsr   from_addressctypes	addressof)ptrsizeobjs      r
   
get_bufferrA   /   s0    
,,CI**F,<,<S,ACCr   c                       e Zd Zd Zd Zy)_buffer_readerc                     || _         y r   	py_bufferselfrF   s     r
   __init__z_buffer_reader.__init__6   	    "r   c                     t        ||      }| j                  j                  |       | j                  j                  |       yN   )rA   rF   r+   r.   )rH   _positionp_buf_firstr?   c_buffers         r
   __call__z_buffer_reader.__call__9   s5    k40H%)r   N__name__
__module____qualname__rI   rR   r   r   r
   rC   rC   4   s    #r   rC   c                       e Zd Zd Zd Zy)_buffer_writerc                     || _         y r   rE   rG   s     r
   rI   z_buffer_writer.__init__B   rJ   r   c                     t        j                  |t        j                  t         j                              }t	        ||      }| j
                  j                  |       yrL   )r<   castPOINTERc_ubyterA   rF   r0   )rH   rN   p_data_firstr?   rQ   s        r
   rR   z_buffer_writer.__call__E   s@    {{<1OPlD1X&r   NrS   r   r   r
   rX   rX   @   s    #r   rX   c                     | j                  dt        j                        }| j                  d       t        j                         }||_        t        |dt        |              d |_        |j                  f}||fS )Nr   
m_GetBlock)
r+   osSEEK_ENDpdfium_cFPDF_FILEACCESS	m_FileLenr$   rC   m_Paramr`   )bufferfile_lenreaderto_holds       r
   get_bufreaderrk   M   sg    {{1bkk*H
KKN%%'FF~f'=>FN  #G7?r   c                 ^    t        j                  d      }t        |dt        |              |S )NrM   )version
WriteBlock)rc   FPDF_FILEWRITEr$   rX   )rg   writers     r
   get_bufwriterrq   \   s(    $$Q/F~f'=>Mr   c                     | syt        |       }t        j                  |z  | D cg c]  }|j                   c} }||fS c c}w )N)Nr   )r   rc   	FPDF_PAGEraw)pagescountpc_arrays       r
   pages_c_arrayry   b   sE    JE!!E)E,BqQUU,BCGE> -Cs   A )r   )ra   r<   pypdfium2.rawrt   rc   r   r$   r(   r8   rA   rC   rX   rk   rq   ry   r   r   r
   <module>r{      sP    
   (EI
AD
	 	
 
r   