HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux srvntsweb01 6.8.0-55-generic #57-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 12 23:42:21 UTC 2025 x86_64
User: admntserv (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //snap/certbot/5370/lib/python3.12/site-packages/packaging/__pycache__/_elffile.cpython-312.pyc
�

���i�����dZddlmZddlZddlZddlZddlmZGd�de�Z	Gd�dej�ZGd	�d
ej�ZGd�dej�Z
Gd
�d�Zy)z�
ELF file parser.

This provides a class ``ELFFile`` that parses an ELF executable in a similar
interface to ``ZipFile``. Only the read interface is implemented.

ELF header: https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.eheader.html
�)�annotationsN)�IOc��eZdZy)�
ELFInvalidN)�__name__�
__module__�__qualname__����/build/snapcraft-certbot-817459ae66b3942307a8b35b87e7f45e/parts/certbot/install/lib/python3.12/site-packages/packaging/_elffile.pyrrs��rrc��eZdZdZdZy)�EIClass��N)rrr	�C32�C64r
rrrr���
�C�
�Crrc��eZdZdZdZy)�EIDatarrN)rrr	�Lsb�Msbr
rrrrrrrc� �eZdZdZdZdZdZdZy)�EMachine���(�>�N)rrr	�I386�S390�Arm�X8664�AArc64r
rrrr s���D�
�D�
�C��E�
�Frrc�2�eZdZdZdd�Zdd�Zedd��Zy)	�ELFFilez.
    Representation of an ELF executable.
    c
�v�||_	|jd�}t|dd�}|dk7rt	d|����|d|_|d|_	ddd	d
d�|j|jf\}|_|_		|j|�\
}|_}}|_}|_
}|_|_y#tj$r}t	d�|�d}~wwxYw#t$r,}t	d|j�d
|j�d��|�d}~wwxYw#tj$r}t	d�|�d}~wwxYw)N�16Bzunable to parse identification�sELFzinvalid magic: �)z<HHIIIIIHHHz	<IIIIIIII�rrr()z>HHIIIIIHHHz	>IIIIIIIIr*)z<HHIQQQIHHHz	<IIQQQQQQ�rrr))z>HHIQQQIHHHz	>IIQQQQQQr+))rr)rr)rr)rrzunrecognized capacity (z) or encoding (�)z/unable to parse machine and section information)�_f�_read�struct�errorr�bytes�capacity�encoding�_p_fmt�_p_idx�KeyError�machine�_e_phoff�flags�_e_phentsize�_e_phnum)�self�f�ident�e�magic�e_fmt�_s       r�__init__zELFFile.__init__-sg�����	F��J�J�u�%�E��e�B�Q�i� ���J����u�i�8�9�9��a���
��a���
�
	�
@�?�?�?�	/�
�}�}�d�m�m�,�/.�+�E�4�;���	W��
�
�5�!�
�������
���
���!��
��G�|�|�	F��=�>�A�E��	F��&�	��)�$�-�-����
�
��VW�X���
��	��$�|�|�	W��N�O�UV�V��	W�sG�B5�.C�?5D�5C�C�C�	D�%'D�D�D8�'D3�3D8c��tj||jjtj|���S)N)r/�unpackr-�read�calcsize)r<�fmts  rr.z
ELFFile._readZs)���}�}�S�$�'�'�,�,�v���s�/C�"D�E�Erc�*�t|j�D]�}|jj|j|j
|zz�	|j
|j�}||jddk7r�j|jj||jd�tj|jj||jd��jd�cSy#tj$rY��wxYw)zH
        The path recorded in the ``PT_INTERP`` section header.
        rrrr�N)�ranger;r-�seekr8r:r.r4r/r0r5�os�fsdecoderF�strip)r<�index�datas   r�interpreterzELFFile.interpreter]s���
�4�=�=�)�		O�E��G�G�L�L�����):�):�U�)B�B�C�
��z�z�$�+�+�.���D�K�K��N�#�q�(���G�G�L�L��d�k�k�!�n�-�.��;�;�t�w�w�|�|�D����Q��,@�A�B�H�H��N�N�		O���
�<�<�
��
�s�C<�<D�DN)r=z	IO[bytes]�return�None)rH�strrSztuple[int, ...])rSz
str | None)rrr	�__doc__rCr.�propertyrRr
rrr%r%(s(���+W�ZF����rr%)rV�
__future__r�enumrMr/�typingr�
ValueErrorr�IntEnumrrrr%r
rr�<module>r]sc���#��	�
��	��	��d�l�l��
�T�\�\��
�t�|�|��D�Dr