HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/packaging/__pycache__/_elffile.cpython-310.pyc
o

�N�g��@s�dZddlZddlZddlZddlmZmZmZGdd�de�Z	Gdd�dej
�ZGdd	�d	ej
�ZGd
d�dej
�Z
Gdd
�d
�ZdS)a;
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.

Based on: https://gist.github.com/lyssdod/f51579ae8d93c8657a5564aefc2ffbca
ELF header: https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.eheader.html
�N)�IO�Optional�Tuplec@seZdZdS)�
ELFInvalidN)�__name__�
__module__�__qualname__�r	r	�F/opt/saltstack/salt/lib/python3.10/site-packages/packaging/_elffile.pyrsrc@�eZdZdZdZdS)�EIClass��N)rrrZC32ZC64r	r	r	r
r�rc@r)�EIDatar
rN)rrrZLsbZMsbr	r	r	r
rrrc@s eZdZdZdZdZdZdZdS)�EMachine���(�>�N)rrrZI386ZS390ZArmZX8664ZAArc64r	r	r	r
rsrc@sVeZdZdZdeeddfdd�Zdedee	dffd	d
�Z
edeefdd��Z
dS)
�ELFFilez.
    Representation of an ELF executable.
    �f�returnNc
Cs||_z|�d�}Wntjytd��wt|dd��}|dkr*td|����|d|_|d|_zddd	d
d�|j|jf\}|_|_	Wnt
y\td|j�d
|j�d���wz|�|�\
}|_}}|_}|_
}|_|_WdStjy�}ztd�|�d}~ww)NZ16Bzunable to parse identification�sELFzinvalid magic: �)z<HHIIIIIHHHz	<IIIIIIII�rr
r)z>HHIIIIIHHHz	>IIIIIIIIr)z<HHIQQQIHHHz	<IIQQQQQQ�rrr)z>HHIQQQIHHHz	>IIQQQQQQr))r
r
)r
r)rr
)rrzunrecognized capacity (z) or encoding (�)z/unable to parse machine and section information)�_f�_read�struct�errorr�bytesZcapacity�encoding�_p_fmt�_p_idx�KeyError�machine�_e_phoff�flags�_e_phentsize�_e_phnum)�selfr�ident�magicZe_fmt�_�er	r	r
�__init__,sV�

�
�
����

��zELFFile.__init__�fmt.cCst�||j�t�|���S)N)r!�unpackr�read�calcsize)r-r3r	r	r
r Zsz
ELFFile._readc	Cs�t|j�D]H}|j�|j|j|�z|�|j�}Wn
tj	y%Yqw||j
ddkr0q|j�||j
d�t�|j�
||j
d���d�SdS)zH
        The path recorded in the ``PT_INTERP`` section header.
        rrr
r�N)�ranger,r�seekr)r+r r%r!r"r&�os�fsdecoder5�strip)r-�index�datar	r	r
�interpreter]s�&zELFFile.interpreter)rrr�__doc__rr#r2�strr�intr �propertyrr?r	r	r	r
r's.r)r@�enumr:r!�typingrrr�
ValueErrorr�IntEnumrrrrr	r	r	r
�<module>s