§
    ¥eîi8)  ã                   ó*  — d dl Z d dlZd dlZd dlmZ d dlmZ ej        d          dk     r=d dlZg Z	 ej
        ¦   «         D ]&\  ZZZeej        k    re	                     e¦  «         Œ'nd dlmZ ej        Z	eefZ G d„ de¦  «        Z	 dej        vrej        j        d	k    r ed
¦  «        ‚ej        dk    re j        dk    r ed¦  «        ‚d dlmZ  e¦   «         Zej         Z!e "                    e #                    d¦  «        ¦  «        Z$e #                    d¦  «        j%        j&        Z'd„ Z(d„ Z)e)Z*e)Z+e)Z,d„ Z-d/d„Z.d„ Z/d„ Z0d„ Z1 G d„ de¦  «        Z2d„ Z3dZ4n¢# e$ rš d dl5Z5d dl5m6Z6m7Z7m8Z8m)Z)m*Z*m-Z-m.Z.m,Z,m+Z+ d dl9m:Z: d dl5m;Z' dZ!g Z<d„ Z,d „ Z(d!„ Z/d"„ Z0e5j=        Z>d Z?e5j@        jA        ZBe5j@        jC        ZDe5jE        ZF e5jG        e>¦  «        ZH G d#„ d$e5jI        ¦  «        ZJd%„ Z1 G d&„ d'e¦  «        ZKd(„ Z3d)Z4Y nw xY w G d*„ d+e¦  «        ZLd,„ ZMd-„ ZNd.„ ZOdS )0é    N)Úbyte_string)Úpycryptodome_filenameé   )Ú	machineryc                   óN   — e Zd Zej        d„ ¦   «         Zej        d„ ¦   «         ZdS )Ú_VoidPointerc                 ó   — dS )z&Return the memory location we point toN© ©Úselfs    úX/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/Crypto/Util/_raw_api.pyÚgetz_VoidPointer.get:   ó	   € ð 	ˆó    c                 ó   — dS )z$Return a raw pointer to this pointerNr
   r   s    r   Ú
address_ofz_VoidPointer.address_of?   r   r   N)Ú__name__Ú
__module__Ú__qualname__ÚabcÚabstractmethodr   r   r
   r   r   r   r   9   sP   € € € € € ØÔðð ñ Ôðð 	Ôðð ñ Ôðð ð r   r   Ú__pypy__é   z0CFFI with optimize=2 fails due to pycparser bug.)r   é   Úntz2CFFI is not compatible with Python 3.12 on Windows)ÚFFIzconst uint8_t*z
uint8_t[1]c                 ó  — t          t          d¦  «        r:t          j        d¦  «        s&t                               | t          j        ¦  «        }nt                               | ¦  «        }t                               |¦  «         |S )zÔLoad a shared library and return a handle to it.

        @name,  either an absolute path or the name of a library
                in the system search path.

        @cdecl, the C function declarations.
        ÚRTLD_DEEPBINDÚPYCRYPTODOME_DISABLE_DEEPBIND)ÚhasattrÚffiÚosÚgetenvÚdlopenr   Úcdef)ÚnameÚcdeclÚlibs      r   Úload_libr)   ]   se   € õ •3˜Ñ(Ô(ð 	#µ´Ð;ZÑ1[Ô1[ð 	#Ý—*’*˜T¥3Ô#4Ñ5Ô5ˆCˆCå—*’*˜TÑ"Ô"ˆCÝ�Š�‰ŒˆØˆ
r   c                 ó   — | S )z)Convert a Python integer to unsigned longr
   ©Úxs    r   Úc_ulongr-   m   ó   € àˆr   c                 ó   — | S )z"Convert a Python integer to size_tr
   r+   s    r   Úc_size_tr0   u   r.   r   c                 ó  — t          | t          ¦  «        rCt          t          | ¦  «        dz   |¦  «        }t                               d|¦  «        }| |dd…<   n,|rt          d¦  «        ‚t                               d| ¦  «        }|S )z7Allocate the given amount of bytes (initially set to 0)é   z	uint8_t[]Nz Size must be specified once only)Ú
isinstanceÚbytesÚmaxÚlenr!   ÚnewÚ
ValueError)Úinit_or_sizeÚsizeÚresults      r   Úcreate_string_bufferr<   y   s„   € õ �l¥EÑ*Ô*ð 	8Ý•s˜<Ñ(Ô(¨1Ñ,¨dÑ3Ô3ˆDÝ—W’W˜[¨$Ñ/Ô/ˆFØ$ˆF�1�1�1‰IˆIàð EÝ Ð!CÑDÔDÐDÝ—W’W˜[¨,Ñ7Ô7ˆFØˆr   c                 ó6   — t                                | ¦  «        S )z.Convert a C string into a Python byte sequence)r!   Ústring©Úc_strings    r   Úget_c_stringrA   †   s   € å�zŠz˜(Ñ#Ô#Ð#r   c                 óF   — t                                | ¦  «        dd…         S )z.Convert a C buffer into a Python byte sequenceN)r!   Úbuffer©Úbufs    r   Úget_raw_bufferrF   Š   s   € å�zŠz˜#‰Œ˜q˜q˜qÔ!Ð!r   c                 ó&  — t          | t          ¦  «        r8t                               t          t                               | ¦  «        ¦  «        S t          | ¦  «        st          | t          ¦  «        r| S t          dt          | ¦  «        z  ¦  «        ‚©Nz)Object type %s cannot be passed to C code)
r3   Ú_buffer_typer!   ÚcastÚuint8_t_typeÚfrom_bufferr   Ú_ArrayÚ	TypeErrorÚtype)Údatas    r   Úc_uint8_ptrrQ   Ž   sw   € Ý�d�LÑ)Ô)ð 	Vå—8’8�L­#¯/ª/¸$Ñ*?Ô*?Ñ@Ô@Ð@Ý˜ÑÔð 	V¥*¨Tµ6Ñ":Ô":ð 	VØˆKåÐGÍ$ÈtÉ*Ì*ÑTÑUÔUÐUr   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚVoidPointer_cffiú'Model a newly allocated pointer to voidc                 óD   — t                                d¦  «        | _        d S )Nz	void *[1])r!   r7   Ú_ppr   s    r   Ú__init__zVoidPointer_cffi.__init__š   s   € Ý—w’w˜{Ñ+Ô+ˆDŒHˆHˆHr   c                 ó   — | j         d         S )Nr   ©rV   r   s    r   r   zVoidPointer_cffi.get�   s   € Ø”8˜A”;Ðr   c                 ó   — | j         S ©NrY   r   s    r   r   zVoidPointer_cffi.address_of    s	   € Ø”8ˆOr   N©r   r   r   Ú__doc__rW   r   r   r
   r   r   rS   rS   —   sG   € € € € € Ø5Ð5ð	,ð 	,ð 	,ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	r   rS   c                  ó   — t          ¦   «         S r[   )rS   r
   r   r   ÚVoidPointerr_   £   s   € ÝÑ!Ô!Ð!r   Úcffi)	ÚCDLLÚc_void_pÚbyrefr-   Úc_ulonglongr0   r<   Úc_ubyteÚc_uint)Úfind_library)ÚArrayc                 ód   — d| cxk    rdk     sn t          ¦   «         ‚t          j        | ¦  «        S )Nr   é   )ÚOverflowErrorÚctypesre   )Úcs    r   re   re   ³   s3   € Ø�Q��’�˜’���Ý‘/”/Ð!ÝŒ~˜aÑ Ô Ð r   c                 ó  — t           s"dd l}|                     ¦   «         t           d d …<   t           \  }}d| vr:|                     d¦  «        s%t	          | ¦  «        }|€t          d| z  ¦  «        ‚|} t          | ¦  «        S )Nr   ú.ÚWinzCannot load library '%s')Úcached_architectureÚplatformÚarchitectureÚ
startswithrg   ÚOSErrorra   )r&   r'   rr   ÚbitsÚlinkageÚ	full_names         r   r)   r)   ¸   sŒ   € Ý"ð 	=ð ˆOˆOˆOØ%-×%:Ò%:Ñ%<Ô%<Õ   Ñ"Ý+‰ˆˆgØ�dˆ?ˆ? 7×#5Ò#5°eÑ#<Ô#<ˆ?Ý$ TÑ*Ô*ˆIØÐ ÝÐ8¸4Ñ?Ñ@Ô@Ð@ØˆDÝ�D‰zŒzÐr   c                 ó   — | j         S r[   )Úvaluer?   s    r   rA   rA   Æ   s
   € ØŒ~Ðr   c                 ó   — | j         S r[   )ÚrawrD   s    r   rF   rF   É   s	   € ØŒwˆr   c                   óØ   — e Zd Zdefdej        fdefdefdej        fdej        fdej        fde	fd	e	fd
e	fdefgZ
ej        d         dk    re
                     ddedz  f¦  «         dS dS )Ú
_Py_bufferrE   Úobjr6   ÚitemsizeÚreadonlyÚndimÚformatÚshapeÚstridesÚ
suboffsetsÚinternalr   r   éÿÿÿÿÚ
smalltableN)r   r   r   rb   rl   Ú	py_objectÚ
_c_ssize_tÚc_intÚc_char_pÚ
_c_ssize_pÚ_fields_ÚsysÚversion_infoÚinsertr
   r   r   r~   r~   Ø   s²   € € € € € à˜HÐ%Ø˜FÔ,Ð-Ø˜JÐ'Ø˜JÐ'Ø˜FœLÐ)Ø˜FœLÐ)Ø˜FœOÐ,Ø˜JÐ'Ø˜JÐ'Ø˜JÐ'Ø˜HÐ%ð
ˆð Ô˜AÔ !Ò#Ð#Ø�OŠO˜B ¨z¸A©~Ð >Ñ?Ô?Ð?Ð?Ð?ð $Ð#r   r~   c                 ó  — t          | ¦  «        st          | t          ¦  «        r| S t          | t          ¦  «        r¬t	          | ¦  «        }t          ¦   «         }t          |t          |¦  «        t          ¦  «         	 t          j
        |j        z  }|                     |j        ¦  «        t          t          |¦  «        ¦  «         S # t          t          |¦  «        ¦  «         w xY wt          dt!          | ¦  «        z  ¦  «        ‚rH   )r   r3   rM   rI   Ú
_py_objectr~   Ú_PyObject_GetBufferrc   Ú_PyBUF_SIMPLErl   re   r6   Úfrom_addressrE   Ú_PyBuffer_ReleaserN   rO   )rP   r   rE   Úbuffer_types       r   rQ   rQ   ë   sÝ   € Ý�tÑÔð 	V¥
¨4µÑ 8Ô 8ð 	VØˆKÝ˜�lÑ+Ô+ð 
	VÝ˜TÑ"Ô"ˆCÝ‘,”,ˆCÝ ¥U¨3¡Z¤ZµÑ?Ô?Ð?ð.Ý$œn¨s¬wÑ6�Ø"×/Ò/°´Ñ8Ô8å!¥%¨¡*¤*Ñ-Ô-Ð-Ð-øÕ!¥%¨¡*¤*Ñ-Ô-Ð-Ð-øøøåÐGÍ$ÈtÉ*Ì*ÑTÑUÔUÐUs   Á=-C ÃC%c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚVoidPointer_ctypesrT   c                 ó,   — t          ¦   «         | _        d S r[   )rb   Ú_pr   s    r   rW   zVoidPointer_ctypes.__init__ÿ   s   € Ý‘j”jˆDŒGˆGˆGr   c                 ó   — | j         S r[   )r�   r   s    r   r   zVoidPointer_ctypes.get  s	   € Ø”7ˆNr   c                 ó*   — t          | j        ¦  «        S r[   )rc   r�   r   s    r   r   zVoidPointer_ctypes.address_of  s   € Ý˜œ‘>”>Ð!r   Nr\   r
   r   r   r›   r›   ü   sG   € € € € € Ø5Ð5ð	!ð 	!ð 	!ð	ð 	ð 	ð	"ð 	"ð 	"ð 	"ð 	"r   r›   c                  ó   — t          ¦   «         S r[   )r›   r
   r   r   r_   r_     s   € Ý!Ñ#Ô#Ð#r   rl   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚSmartPointerz+Class to hold a non-managed piece of memoryc                 ó"   — || _         || _        d S r[   )Ú_raw_pointerÚ_destructor)r   Úraw_pointerÚ
destructors      r   rW   zSmartPointer.__init__  s   € Ø'ˆÔØ%ˆÔÐÐr   c                 ó   — | j         S r[   ©r¤   r   s    r   r   zSmartPointer.get  s   € ØÔ Ð r   c                 ó$   — | j         d c}| _         |S r[   r©   )r   Úrps     r   ÚreleasezSmartPointer.release  s   € Ø $Ô 1°4ÐˆˆDÔØˆ	r   c                 ó~   — 	 | j         �#|                      | j         ¦  «         d | _         d S d S # t          $ r Y d S w xY wr[   )r¤   r¥   ÚAttributeErrorr   s    r   Ú__del__zSmartPointer.__del__  sa   € ð	ØÔ Ð,Ø× Ò  Ô!2Ñ3Ô3Ð3Ø$(�Ô!Ð!Ð!ð -Ð,øõ ð 	ð 	ð 	ØˆDˆDð	øøøs   ‚(. ®
<»<N)r   r   r   r]   rW   r   r¬   r¯   r
   r   r   r¢   r¢     sV   € € € € € Ø5Ð5ð&ð &ð &ð!ð !ð !ðð ð ðð ð ð ð r   r¢   c           
      óô  — |                       d¦  «        }|dd…         |d         }}g }t          D ] }	 ||z   }t          ||¦  «        }t          j                             |¦  «        s|                     d|z  ¦  «         ŒPt          ||¦  «        c S # t          $ r2}	|                     d|›dt          |	¦  «        ›�¦  «         Y d}	~	Œ™d}	~	ww xY wt          d| ›dd 
                    |¦  «        ›�¦  «        ‚)	zÙLoad a shared library and return a handle to it.

    @name,  the name of the library expressed as a PyCryptodome module,
            for instance Crypto.Cipher._raw_cbc.

    @cdecl, the C function declarations.
    ro   Nrˆ   zNot found '%s'zCannot load 'z': zCannot load native module 'z, )ÚsplitÚextension_suffixesr   r"   ÚpathÚisfileÚappendr)   ru   ÚstrÚjoin)
r&   r'   r±   Ú	dir_compsÚbasenameÚattemptsÚextÚfilenamerx   Úexps
             r   Úload_pycryptodome_raw_libr¾   %  s"  € ð �JŠJ�s‰OŒO€EØ   œ* e¨B¤iˆx€IØ€HÝ!ð 	Kð 	Kˆð	KØ #‘~ˆHÝ-¨i¸ÑBÔBˆIÝ”7—>’> )Ñ,Ô,ð Ø—’Ð 0°8Ñ ;Ñ<Ô<Ð<ØÝ˜I uÑ-Ô-Ð-Ð-Ð-øÝð 	Kð 	Kð 	KØ�OŠOˆO°h°h°hÅÀCÁÄÀÐIÑJÔJÐJÐJÐJÐJÐJÐJøøøøð	Køøøå
ˆ'¸$¸$¸$ÀÇ	Â	È(Ñ@SÔ@SÐ@SÐTÑ
UÔ
UÐUs   ´ABÂBÂ
CÂ(C
Ã
Cc                 óF   — t          | t          t          t          f¦  «        S )z5Return True if object x supports the buffer interface)r3   r4   Ú	bytearrayÚ
memoryviewr+   s    r   Ú	is_bufferrÂ   >  s   € å�a�%¥­JÐ7Ñ8Ô8Ð8r   c                 óf   — t          | t          ¦  «        pt          | t          ¦  «        o| j         S r[   )r3   rÀ   rÁ   r�   r+   s    r   Úis_writeable_bufferrÄ   C  s/   € Ý�q�)Ñ$Ô$ð ;Ý˜�:Ñ&Ô&Ð9¨q¬z¨>ð<r   r[   )Pr"   r   r�   ÚCrypto.Util.py3compatr   ÚCrypto.Util._file_systemr   r‘   Úimpr²   Úget_suffixesr»   ÚmodÚtypÚC_EXTENSIONrµ   Ú	importlibr   ÚEXTENSION_SUFFIXESrÀ   rÁ   rI   Úobjectr   Úbuiltin_module_namesÚflagsÚoptimizeÚImportErrorr&   r`   r   r!   ÚNULLÚnull_pointerÚtypeofr7   rK   Ú	__class__Ú	__bases__rM   r)   r-   rd   rf   re   r0   r<   rA   rF   rQ   rS   r_   Úbackendrl   ra   rb   rc   Úctypes.utilrg   rh   rq   Ú	c_ssize_tr‹   r–   Ú	pythonapiÚPyObject_GetBufferr•   ÚPyBuffer_Releaser˜   rŠ   r”   ÚPOINTERrŽ   Ú	Structurer~   r›   r¢   r¾   rÂ   rÄ   r
   r   r   ú<module>rà      s´  ðð> 
€	€	€	Ø 
€
€
€
Ø 
€
€
€
Ø -Ð -Ð -Ð -Ð -Ð -Ø :Ð :Ð :Ð :Ð :Ð :ð
 Ô�AÔ˜ÒÐà€J€J€JØÐØ)˜Ô)Ñ+Ô+ð +ð +‰ˆˆS�#Ø�#”/Ò!Ð!Ø×%Ò% cÑ*Ô*Ð*øð+ð $Ð#Ð#Ð#Ð#Ð#Ø"Ô5Ðð ˜:Ð&€ð	ð 	ð 	ð 	ð 	�6ñ 	ô 	ð 	ðFð ˜Ô1Ð1Ð1°c´iÔ6HÈAÒ6MÐ6MØˆkÐLÑMÔMÐMð
 Ô˜7Ò"Ð" r¤w°$¢ ØˆkÐNÑOÔOÐOàÐÐÐÐÐà
ˆ#‰%Œ%€CØ”8€LØ—:’:˜cŸgšgÐ&6Ñ7Ô7Ñ8Ô8€Là�WŠW�\Ñ"Ô"Ô,Ô6€Fðð ð ð ð ð ð €KØ€FØ€Gðð ð ðð ð ð ð$ð $ð $ð"ð "ð "ðVð Vð Vð
ð 
ð 
ð 
ð 
˜<ñ 
ô 
ð 
ð"ð "ð "ð €G€Gøàð cð cð cà€M€M€Mð?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?à(Ð(Ð(Ð(Ð(Ð(Ø&Ð&Ð&Ð&Ð&Ð&à€LØÐð!ð !ð !ð
ð ð ðð ð ðð ð ð
 Ô!€Jà€MØ Ô*Ô=ÐØÔ(Ô9ÐØÔ!€JØ�” 
Ñ+Ô+€Jð@ð @ð @ð @ð @�VÔ%ñ @ô @ð @ð&Vð Vð Vð"
"ð 
"ð 
"ð 
"ð 
"˜\ñ 
"ô 
"ð 
"ð$ð $ð $ð €G€G€GðGcøøøðLð ð ð ð �6ñ ô ð ð.Vð Vð Vð29ð 9ð 9ð
<ð <ð <ð <ð <s   ÂCE ÅBG9Ç8G9