HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/__pycache__/imagesize.cpython-310.pyc
o

Վ�a(4�
@s�ddlZddlZddlZddlZddlmZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZdddd	ddddd	dd	dd
�Zdd�Zdd�Zdd�Zdd�ZdS)�N)�ElementTree����������������)rrrr	r
r�r�	�
��cCs�|tkrt|dd�S|tkrt|dd�S|tkr$t|dd�S|tkr0t|dd�S|tkr<t|dd�S|tkrHt|dd�S|tkrTt|dd�S|tkr\|d	S|t	krd|d
S|t
krl|dS|S)Ng�5��B��>g�?g��t�i�0?g����d?g�
F%u�?g��K7�A�?�R���Q@gffffff9@�i�	i8c)�_UNIT_KM�int�
_UNIT_100M�	_UNIT_10M�_UNIT_1M�
_UNIT_10CM�_UNIT_CM�_UNIT_MM�_UNIT_0_1MM�_UNIT_0_01MM�_UNIT_UM)�density�unit�r!�+/usr/lib/python3/dist-packages/imagesize.py�
_convertToDPI#s*r#cCs�t�d|�}|std|��|��\}}|dkrt|�S|dkr(t|�ddS|dkr6t|�dddS|d	kr@t|�dS|d
krLt|�ddS|dkrXt|�ddS|d
kr`t|�Std|��)Nz(\d+(?:\.\d+)?)?([a-z]*)$zunknown length value: %s��cm�`r�mmr�in�pcr�pt�pxzunknown unit type: %s)�re�match�
ValueError�groups�float)�value�matched�lengthr r!r!r"�_convertToPx;s&r4c	Cs�d}d}t|tj�r
|}nt|d�}�z�|�d�}t|�}|dkrE|dd�dvrEzt�d|dd��\}}W�nStjyDt	d	��w|dkrr|�
d
�rr|dd�d
krrzt�d|dd��\}}W�n/tjyqt	d��w|dkr�|�
d
�r�zt�d|dd��\}}W�ntjy�t	d��w|dk�r|�
d��rzj|�d�d}d}d|kr�dkr�nn|dvr�|�|d�|�d�}t|�dkr�|�d�}t|�dks�t|�}t�d|�d��dd}d|kr�dkr�nq�|dvs�|�dd�t�d|�d��\}}W�n�tjt
f�yt	d��w|dk�rH|�
d��rH|�d�zt�d|�d��\}}W�nutj�yGt	d��w|dk�r�|�
d ��r�t�d!|dd��d}|�|�t�d|�d��d}	t|	�D]V}
t�d"|�d��\}}}
}|d#k�r�|d$k�r�t|d%�}n)|dk�r�|}n!t	d&��|d'k�r�|d$k�r�t|d%�}n|dk�r�|}nt	d(��|dk�r�|dk�r�n�qs|dk�s�|dk�r�t	d)���n�|dk�rA|�
d*��rAt�d+|dd��d}|�|�t�d,|�d��d}	t|	�D]+}
t�d-|�d��\}}}
}|d#k�r|}n|d'k�r#|}|dk�r/|dk�r/n�q|dk�s;|dk�r?t	d)���n�|dk�r�|�
d.��r�t�d+|dd��d}|dk�rdt	d/�|���t�d0|dd��d}|�|�t�d0|�d��d}	t|	�D]+}
t�d1|�d2��\}}}
}|d#k�r�|}n|d'k�r�|}|dk�r�|dk�r�n�q�|dk�s�|dk�r�t	d3���n|d4k�r
|�
d5��s�|�
d6��r
|�d�|�d7�}z|�d8�}t�d9|��d�}t�d:|��d�}Wnt�yt	d;��wt|�}t|�}n�|dd�d<k�r�|dd�d=v�r�|�d�g}	|�d�}|���r0�q#|d?k�r9t	d@��|dAk�rD|���q#|���sMt	dB��|}|�d�}|���rg||7}|�d�}|���sY|�t|��t|�dk�rvn	|�dtj��q$|\}}W|��||fSW|��||fSW|��||fSW|��||fSW|��||fSW|��||fSW|��||fSW|��||fSW|��||fSW|��||fSW|��||fSW|��||fS|��w)Cz�
    Return (width, height) for a given img file content
    no requirements
    :type filepath: Union[bytes, str, pathlib.Path]
    :rtype Tuple[int, int]
    r�rb�rNr�sGIF87asGIF89az<hhzInvalid GIF file��PNG

r�sIHDRz>LL�Invalid PNG filerr���r���)������r��>Hz>HHr	�Invalid JPEG file�jP  
�
�0�Invalid JPEG2000 filesMM*�>Lz>HHLL�riz?Invalid TIFF file: width column data type should be SHORT/LONG.iz@Invalid TIFF file: height column data type should be SHORT/LONG.z?Invalid TIFF file: width and/or height IDS entries are missing.sII*z<Lz<Hz<HHLLsII+z@Invalid BigTIFF file: Expected offset to be 8, found {} instead.z<Qz<HHQQ�zBInvalid BigTIFF file: width and/or height IDS entries are missing.r
s<?xmls<svgizutf-8z[^-]width="(.*?)"z[^-]height="(.*?)"zInvalid SVG file�Ps123456T�zInvalid Netpbm file�#z&Invalid character found on Netpbm file)�
isinstance�io�BytesIO�open�read�len�struct�unpack�errorr.�
startswith�seek�ord�	TypeError�ranger�format�decoder,�search�group�	Exceptionr4�isspace�readline�isdigit�append�os�SEEK_CUR�close)�filepath�height�width�fhandle�head�size�ftype�byte�offset�ifdsize�i�tag�datatype�count�data�bytesize_offset�sizes�next_chrr!r!r"�getSs~

�"��
 

� ��
�






��


��



��"


�
$









��
������	�v�o�U�G�5�$�'�$
�rycCs�d}d}t|t�s
t|�}t|d���,}|�d�}t|�}|dkr+|dd�dvr+�n�|dkr�|�d�r�d	}|d	d�}	|dd	�}|dkruzt�d
|d	d��\}	}
}Wntj	ybt
d��w|rpt|	t�}t|
t�}n|	}|
}n0|dkrzn+z
t�d|dd��\}Wntj	y�t
d��w||d7}|�
|�|�d�}q=�nf|dk�rE|�d��rEz�|�
d�d}d}
d|
kr�dk�s6n|
dkr�|�
dd�t�d|�d��\}}	}
|dks�|dkr�|	}|
}n|dkr�t|	t�}t|
t�}n<|�
|d�|�d�}t|�dk�r|�d�}t|�dk�st|�}
t�d|�d��dd}d|
k�r4dkr�nq�Wn�tj	�yDt
d��w|dk�r|�d ��r+|�
d!�t�d|�d��dd	}|�
dd�d"}z�|dk�r�|�d	�}|dd�}|d#k�r�d
}|d	8}nt�d|dd��\}|�
|d	d�||8}|dk�sp|�r�|dk�r�|�d	�}|dd�}|d$k�r�t�d%|�d��\}
}	}}t|	|�}t|
|�}nt�d|dd��\}|�
|d	d�||8}|dk�s�WnDtj	�y}zt
d&��d}~wwWd�||fSWd�||fSWd�||fSWd�||fSWd�||fSWd�||fS1�sCwY||fS)'z�
    Return (x DPI, y DPI) for a given img file content
    no requirements
    :type filepath: Union[bytes, str, pathlib.Path]
    :rtype Tuple[int, int]
    rr5r6rNrr7r8rTr	spHYsz>LLBr:sIDATrGrr�rr;r<r=��r
rz>BHHr
rArBrCrD� Fsres sresdz>HHBBrF)rM�bytes�strrPrQrRrVrSrTrUr.r#rrWrrX)rg�xDPI�yDPIrjrkrl�chunkOffset�chunk�	chunkType�xDensity�yDensityr �dataSizermrn�
headerSize�foundResBox�	boxHeader�boxType�boxSize�yUnit�xUnit�er!r!r"�getDPIs�

�
�

��




����




�






�����
�\�
�\�
�\�
�\�
�\�
�\�\r�)rNrdr,rS�	xml.etreerrrrrrrrrrr�
_UNIT_INCH�_TIFF_TYPE_SIZESr#r4ryr�r!r!r!r"�<module>sD�1