HEX
Server: LiteSpeed
System: Linux srv146.niagahoster.com 4.18.0-553.30.1.lve.el8.x86_64 #1 SMP Tue Dec 3 01:21:19 UTC 2024 x86_64
User: kodi1989 (1633)
PHP: 8.1.34
Disabled: symlink,shell_exec,exec,popen,system,dl,passthru,escapeshellarg,escapeshellcmd,show_source,pcntl_exec
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/packaging/__pycache__/_elffile.cpython-37.pyc
B

��f��@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	�C/opt/alt/python37/lib/python3.7/site-packages/packaging/_elffile.pyrsrc@seZdZdZdZdS)�EIClass��N)rrrZC32ZC64r	r	r	r
rsrc@seZdZdZdZdS)�EIDatarr
N)rrrZLsbZMsbr	r	r	r
rsrc@s eZdZdZdZdZdZdZdS)�EMachine���(�>�N)rrrZI386ZS390ZArmZX8664ZAArc64r	r	r	r
rs
rc@sReZdZdZeedd�dd�Zeee	dfd�dd	�Z
eeed
�dd��Z
dS)
�ELFFilez.
    Representation of an ELF executable.
    N)�f�returnc
Cs(||_y|�d�}Wntjk
r2td��YnXt|dd��}|dkrZtd|����|d|_|d|_y(ddd	d
d�|j|jf\}|_|_	Wn.t
k
r�td|j�d
|j�d���YnXy,|�|�\
}|_}}|_}|_
}|_|_Wn0tjk
�r"}ztd�|�Wdd}~XYnXdS)NZ16Bzunable to parse identification�sELFzinvalid magic: �)z<HHIIIIIHHHz	<IIIIIIII)rrr)z>HHIIIIIHHHz	>IIIIIIII)rrr)z<HHIQQQIHHHz	<IIQQQQQQ)rr
r)z>HHIQQQIHHHz	>IIQQQQQQ)rr
r))rr)rr
)r
r)r
r
zunrecognized 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)�selfr�ident�magicZe_fmt�_�er	r	r
�__init__,s.

,zELFFile.__init__.)�fmtrcCst�||j�t�|���S)N)r�unpackr�read�calcsize)r*r0r	r	r
rZsz
ELFFile._read)rc	Cs�x�t|j�D]�}|j�|j|j|�y|�|j�}Wntj	k
rPwYnX||j
ddkrfq|j�||j
d�t�|j�
||j
d���d�SWdS)zH
        The path recorded in the ``PT_INTERP`` section header.
        rrrr
�N)�ranger)r�seekr&r(rr"rrr#�os�fsdecoder2�strip)r*�index�datar	r	r
�interpreter]s$zELFFile.interpreter)rrr�__doc__rrr/�strr�intr�propertyrr<r	r	r	r
r's
.r)r=�enumr7r�typingrrr�
ValueErrorr�IntEnumrrrrr	r	r	r
�<module>	s