403Webshell
Server IP : 146.190.157.162  /  Your IP : 216.73.216.182
Web Server : Apache
System : Linux ubuntu-s-2vcpu-4gb-amd-sfo3-01-KIT-DIGITAL 6.5.0-44-generic #44-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 7 15:10:09 UTC 2024 x86_64
User : businessweek ( 639)
PHP Version : 8.2.10-2ubuntu2.2
Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_signal,pcntl_signal_dispatch,pcntl_getpriority,pcntl_setpriority,dl,putenv,parse_ini_file,show_source
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/python3/dist-packages/PIL/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/PIL/__pycache__/PdfParser.cpython-311.pyc
�

D#�da��	��ddlZddlZddlZddlZddlZddlZddlZddlZd�Zidd�dd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�d#d$�id%d&�d'd(�d)d*�d+d,�d-d.�d/d0�d1d2�d3d4�d5d6�d7d8�d9d:�d;d<�d=d>�d?d@�dAdB�dCdD�dEdF��dGdHdIdJdKdLdMdN��Z	dO�Z
GdP�dQe��ZdR�Z
GdS�dTejdUdVdWg����ZGdX�dYe��ZGdZ�d[��ZGd\�d]��ZGd^�d_e��ZGd`�daej��ZGdb�dc��ZGdd�de��Zdf�ZGdg�dh��ZdS)i�Nc�F�tj|�d��zS)N�	utf_16_be)�codecs�BOM_UTF16_BE�encode)�ss �//usr/lib/python3/dist-packages/PIL/PdfParser.py�encode_textr

s�������+�!6�!6�6�6����u˘�uˇ�uˆ�u˙�u˝�u˛�u˚�u˜�u•�u†�u‡�u…�u—�u–�uƒ�u⁄�u‹�u›�u−�u‰�u„�u“�u”�u‘�u’�u‚�u™�ufi�ufl�uŁ�uŒ�uŠ�uŸuŽuıułuœušužu€)�������c��|dttj���tjkr4|ttj��d��d��Sd�d�|D����S)Nr�c3�fK�|],}t�|t|����V��-dS�N)�PDFDocEncoding�get�chr)�.0�bytes  r	�	<genexpr>zdecode_text.<locals>.<genexpr>Bs8����I�I�t�~�)�)�$��D�	�	�:�:�I�I�I�I�I�Ir)�lenrr�decode�join)�bs r	�decode_textrD>sq���	#�3�v�"�#�#�	#�$��(;�;�;���V�(�)�)�+�+�,�3�3�K�@�@�@��w�w�I�I�q�I�I�I�I�I�Irc��eZdZdZdS)�PdfFormatErrorz\An error that probably indicates a syntactic or semantic error in the
    PDF file structureN)�__name__�
__module__�__qualname__�__doc__�rr	rFrFEs��������	�DrrFc�(�|st|���dSr9)rF)�	condition�
error_messages  r	�check_format_conditionrOLs"���,��]�+�+�+�,�,rc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�IndirectReferencec��d|zS)Nz%s %s RrK��selfs r	�__str__zIndirectReference.__str__Ts
���4��rc�P�|����d��S�N�us-ascii)rUrrSs r	�	__bytes__zIndirectReference.__bytes__Ws���|�|�~�~�$�$�Z�0�0�0rc�^�|j|juo|j|jko|j|jkSr9)�	__class__�	object_id�
generation�rT�others  r	�__eq__zIndirectReference.__eq__Zs6���O�t�~�-�
4���4�>�1�
4�� �D�O�3�	
rc��||kSr9rKr^s  r	�__ne__zIndirectReference.__ne__as���E�M�"�"rc�8�t|j|jf��Sr9)�hashr\r]rSs r	�__hash__zIndirectReference.__hash__ds���T�^�T�_�5�6�6�6rN)rGrHrIrUrYr`rbrerKrr	rQrQQs_������ � � �1�1�1�
�
�
�#�#�#�7�7�7�7�7rrQ�IndirectReferenceTupler\r]c��eZdZd�ZdS)�IndirectObjectDefc��d|zS)Nz	%s %s objrKrSs r	rUzIndirectObjectDef.__str__is
���T�!�!rN)rGrHrIrUrKrr	rhrhhs#������"�"�"�"�"rrhc�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�	XrefTablec�B�i|_i|_ddi|_d|_dS)NriF)�existing_entries�new_entries�deleted_entries�reading_finishedrSs r	�__init__zXrefTable.__init__ns,�� "������ !�5�z��� %����rc�d�|jr||j|<n
||j|<||jvr
|j|=dSdSr9)rprnrmro�rT�key�values   r	�__setitem__zXrefTable.__setitem__tsQ��� �	/�$)�D��S�!�!�).�D�!�#�&��$�&�&�&��$�S�)�)�)�'�&rc�X�	|j|S#t$r|j|cYSwxYwr9)rn�KeyErrorrm�rTrts  r	�__getitem__zXrefTable.__getitem__|sD��	.��#�C�(�(���	.�	.�	.��(��-�-�-�-�	.���s��)�)c�6�||jvr*|j|ddz}|j|=||j|<dS||jvr"|j|ddz}||j|<dS||jvr|j|}dSdt|��zdz}t	|���)N�z
object ID z+ cannot be deleted because it doesn't exist)rnrorm�str�
IndexError)rTrtr]�msgs    r	�__delitem__zXrefTable.__delitem__�s����$�"�"�"��)�#�.�q�1�A�5�J�� ��%�(2�D� ��%�%�%�
�D�)�
)�
)��.�s�3�A�6��:�J�(2�D� ��%�%�%�
�D�(�
(�
(��-�c�2�J�J�J��s�3�x�x�'�*W�W�
��S�/�/�!rc�&�||jvp||jvSr9)rmrnrys  r	�__contains__zXrefTable.__contains__�s���d�+�+�F�s�d�6F�/F�Frc��tt|j�����t|j�����zt|j�����z��Sr9)r@�setrm�keysrnrorSs r	�__len__zXrefTable.__len__�sl�����%�*�*�,�,�-�-��$�"�'�'�)�)�*�*�
+��$�&�+�+�-�-�.�.�
/�
�
�	
rc���t|j�����t|j�����z
t|j�����zSr9)r�rmr�rornrSs r	r�zXrefTable.keys�s\����%�*�*�,�,�-�-��D�4H�4M�4M�4O�4O�0P�0P�P��� �%�%�'�'�(�(�)�	)rc��tt|j�����t|j�����z��}tt|j�������}|���}|�d��|�rd}t|��D](\}}|�	|dz|kr|}�|d|�}||d�}n|}d}|�d|dt|��fz��|D]�}	|	|jvr$|�d|j|	z���/|�	d��}
t|	|
kd|	�d|
����	|d}n#t$rd}YnwxYw|�d||j|	fz����|��|S)	Nsxref
r|s%d %d
rs%010d %05d n 
z*expected the next deleted object ID to be z, instead found s%010d %05d f 
)�sortedr�rnr�ro�tell�write�	enumerater@�poprOr~)rT�fr��deleted_keys�	startxref�prev�indexrt�contiguous_keysr\�this_deleted_object_id�next_in_linked_lists            r	r�zXrefTable.write�s'���c�$�*�/�/�1�1�2�2�S��9M�9R�9R�9T�9T�5U�5U�U�V�V���c�$�"6�";�";�"=�"=�>�>�?�?���F�F�H�H�	�	���	�����	��D�'��o�o�	
�	
�
��s��<�4�!�8�s�?�?��D�D�&*�6�E�6�l�O�����<�D��E�"&����
�G�G�J�/�!�"4�c�/�6J�6J�!K�K�L�L�L�,�
�
�	��� 0�0�0��G�G�.��1A�)�1L�L�M�M�M�M�-9�-=�-=�a�-@�-@�*�*�!�%;�;�B�Y�B�B�)?�B�B����
0�.:�1�o�+�+��%�0�0�0�./�+�+�+�0�����G�G�*�.��0D�Y�0O�P�Q�����9�	�@�s�F�F�FN)rGrHrIrqrvrzr�r�r�r�r�rKrr	rkrkms�������&�&�&�*�*�*�.�.�.�"�"�"� G�G�G�
�
�
�)�)�)�
%�%�%�%�%rrkc��eZdZd�Zd�Zd�Zd�Zd�Zed���Z	e
edd����d	�d
D��z
Zd�Z
dS)
�PdfNamec��t|t��r|j|_dSt|t��r	||_dS|�d��|_dSrW)�
isinstancer��name�bytesr)rTr�s  r	rqzPdfName.__init__�sU���d�G�$�$�	0��	�D�I�I�I�
��e�
$�
$�	0��D�I�I�I����J�/�/�D�I�I�Irc�6�|j�d��SrW)r�rArSs r	�name_as_strzPdfName.name_as_str�s���y���
�+�+�+rc�b�t|t��o|j|jkp
||jkSr9)r�r�r�r^s  r	r`zPdfName.__eq__�s1���u�g�&�&�B�5�:���+B� �
�d�i�
�	 rc�*�t|j��Sr9)rdr�rSs r	rezPdfName.__hash__�s���D�I���rc�2�dt|j���d�S)NzPdfName(�))�reprr�rSs r	�__repr__zPdfName.__repr__�s��,�$�t�y�/�/�,�,�,�,rc�H�|t�|����Sr9)�	PdfParser�interpret_name)�cls�datas  r	�from_pdf_streamzPdfName.from_pdf_stream�s ���s�9�+�+�D�1�1�2�2�2r�!�c�,�h|]}t|����SrK)�ord)r=�cs  r	�	<setcomp>zPdfName.<setcomp>�s��*I�*I�*I�a�3�q�6�6�*I�*I�*Irz#%/()<>[]{}c��td��}|jD]9}||jvr|�|���!|�d|z���:t|��S)N�/s#%02X)�	bytearrayr��
allowed_chars�append�extendr�)rT�resultrCs   r	rYzPdfName.__bytes__�sf���4������	,�	,�A��D�&�&�&��
�
�a� � � � ��
�
�h��l�+�+�+�+��V�}�}�rN)rGrHrIrqr�r`rer��classmethodr�r��ranger�rYrKrr	r�r��s�������0�0�0�,�,�,� � � �
���-�-�-��3�3��[�3��C���b�#���'�'�*I�*I�=�*I�*I�*I�I�M�����rr�c��eZdZd�ZdS)�PdfArrayc�L�dd�d�|D����zdzS)Ns[ � c3�4K�|]}t|��V��dSr9)�pdf_repr)r=�xs  r	r?z%PdfArray.__bytes__.<locals>.<genexpr>�s(���� ;� ;���!��� ;� ;� ;� ;� ;� ;rs ])rBrSs r	rYzPdfArray.__bytes__�s-���t�y�y� ;� ;�d� ;� ;� ;�;�;�;�e�C�CrN)rGrHrIrYrKrr	r�r��s(������D�D�D�D�Drr�c� �eZdZd�Zd�Zd�ZdS)�PdfDictc��|dkr#tj�|||��dS|||�d��<dS)Nr�rX)�collections�UserDict�__setattr__rrss   r	r�zPdfDict.__setattr__�sH���&�=�=�� �,�,�T�3��>�>�>�>�>�+0�D����J�'�'�(�(�(rc��	||�d��}n"#t$r}t|��|�d}~wwxYwt|t��rt|��}|�d���r|�d��r
|dd�}d}t|��dkrO|d}t|dd���d	z}t|��d
kr|t|dd
���z
}ddt|��dz
�}tj|dt|��dz�|��}|d
vr9|d	z}|dkr|dz}tjtj|��|z��}|S)NrX�DatezD:��Z����<��z%Y%m%d%H%M%S)�+�-r����)rrx�AttributeErrorr�r�rD�endswith�
startswithr@�int�time�strptime�gmtime�calendar�timegm)rTrtru�e�relationship�offset�formats       r	�__getattr__zPdfDict.__getattr__�s���	-�����J�/�/�0�E�E���	-�	-�	-� ��%�%�1�,�����	-�����e�U�#�#�	'���&�&�E��<�<����	E�����%�%�
"��a�b�b�	���L��5�z�z�B���$�R�y���U�2�b�5�\�*�*�R�/���u�:�:��?�?��c�%��2��,�/�/�/�F�#�$4�c�%�j�j�1�n�$4�5�F��M�%�(9�#�f�+�+��/�(9�":�F�C�C�E��z�)�)��"����3�&�&��b�L�F���H�O�E�$:�$:�V�$C�D�D���s��
=�8�=c��td��}|���D]�\}}|��t|��}|�d��|�t	t|������|�d��|�|����|�d��t	|��S)N�<<�
r�s
>>)r��itemsr�r�r�r�)rT�outrtrus    r	rYzPdfDict.__bytes__s���������*�*�,�,�	�	�J�C���}���U�O�O�E��J�J�u�����J�J�u�W�S�\�\�*�*�+�+�+��J�J�t�����J�J�u������
�
�7�����S�z�z�rN)rGrHrIr�r�rYrKrr	r�r��sA������1�1�1����6����rr�c��eZdZd�Zd�ZdS)�	PdfBinaryc��||_dSr9)r�)rTr�s  r	rqzPdfBinary.__init__&s
����	�	�	rc�P�dd�d�|jD����zS)Ns<%s>rc3� K�|]	}d|zV��
dS)s%02XNrK�r=rCs  r	r?z&PdfBinary.__bytes__.<locals>.<genexpr>*s&����!A�!A�!�'�A�+�!A�!A�!A�!A�!A�!Ar)rBr�rSs r	rYzPdfBinary.__bytes__)s*������!A�!A�t�y�!A�!A�!A�A�A�A�ArN)rGrHrIrqrYrKrr	r�r�%s7���������B�B�B�B�Brr�c��eZdZd�Zd�ZdS)�	PdfStreamc�"�||_||_dSr9)�
dictionary�buf)rTr�r�s   r	rqzPdfStream.__init__.s��$�������rc�T�	|jj}n#t$r
|jcYSwxYw|dkrR	|jj}n#t$r|jj}YnwxYwt
j|jt|�����Sdt|jj���d�}t|���)NsFlateDecode)�bufsizezstream filter z unknown/unsupported)r��Filterr�r��DL�Length�zlib�
decompressr�r��NotImplementedError)rT�filter�expected_lengthrs    r	rAzPdfStream.decode2s���	��_�+�F�F���	�	�	��8�O�O�O�	�����^�#�#�
9�"&�/�"4����!�
9�
9�
9�"&�/�"8����
9�����?�4�8�S��5I�5I�J�J�J�J�U�4���(>�#?�#?�U�U�U�C�%�c�*�*�*s��#�#�:�A�AN)rGrHrIrqrArKrr	r�r�-s2���������
+�
+�
+�
+�
+rr�c��|durdS|durdS|�dSt|ttttf��rt|��St|ttf��r"t|���	d��St|tj��r.dtjd|���	d��zd	zSt|t��rtt|����St|t��rtt|����St|t��rtt!|����St|t
��rJ|�d
d��}|�dd
��}|�d	d��}d|zd	zSt|��S)NTstrueFsfalsesnullrXs(D:z
%Y%m%d%H%M%SZ�)�\s\\�(�\(s\))r�r�r�r�r�r�r��floatr}rr��struct_time�strftime�dict�listr�r
�replace)r�s r	r�r�Bs����D�y�y��w�	
�e����x�	
���w�	�A���(�I�>�	?�	?���Q�x�x��	�A��U�|�	$�	$���1�v�v�}�}�Z�(�(�(�	�A�t�'�	(�	(����
�o�q�9�9�@�@��L�L�L�t�S�S�	�A�t�	�	�
��W�Q�Z�Z� � � �	�A�t�	�	���X�a�[�[�!�!�!�	�A�s�	�	�	���A���'�'�'�	�A�u�	�	��
�I�I�e�W�%�%��
�I�I�d�F�#�#��
�I�I�d�F�#�#���a�x�$����Q�x�x�rc�z�eZdZdZdWd�Zd�Zd�Zd�Zd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
d�ZdXd�Zd�Zd�Zd�Zed���Zd�ZdXd�ZdZdZdZdZedzZedzZdZdZeezezZe j!edzezd zezd!zezd"zezd#zezd$ze j"��Z#e j!edzezd%zezd!zezd"zezd#zeze j"��Z$d&�Z%d'�Z&e j!e��Z'e j!ed(zezd)z��Z(e j!ed*z��Z)e j!ed+zez��Z*e+d,���Z,e j!d-��Z-e+dYd/���Z.e j!ed0zezd)z��Z/e j!ed1zezd)z��Z0e j!ed2zezd)z��Z1e j!ed3zezd)z��Z2e j!ed4zezd)z��Z3e j!ed5z��Z4e j!ed6z��Z5e j!ed7zezd8z��Z6e j!ed9z��Z7e j!ed:zezd:zezd;zezd)z��Z8e j!ed:zezd:zezd<zezd)z��Z9e j!ed=zezd)z��Z:e j!d>ezd?zezd@z��Z;e j!edAz��Z<e j!edBzezd)z��Z=e+dZdD���Z>e j!dE��Z?idFdG�dHdI�dJdK�dLdM�dNdO�d>d>�d)d)�dPdP�e@dF��dG�e@dH��dI�e@dJ��dK�e@dL��dM�e@dN��dO�e@d>��d>�e@d)��d)�e@dP��dP�ZAe+dQ���ZBe j!edRzez��ZCe j!ed"zezd"zezez��ZDe j!dS��ZEdT�ZFd[dU�ZGdXdV�ZHdS)\r�z|Based on
    https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf
    Supports PDF up to 1.4
    Nr�rbc���|r|rd}t|���||_||_||_||_d|_d|_|� |�t||��x|_}d|_|�A|�|��x|_}d|_|st|d��r|j
|_i|_|r|���ndx|_
|_t��|_d|_t��|_d|_i|_g|_g|_d|_d|_i|_t5��|_d|j_|r|���dSdS)Nz4specify buf or f or filename, but not both buf and fFTr�r)�RuntimeError�filenamer�r��start_offset�should_close_buf�should_close_file�open�get_buf_from_file�hasattrr��cached_objects�
read_pdf_info�file_size_total�file_size_thisr��root�root_ref�info�info_ref�page_tree_root�pages�
orig_pages�	pages_ref�last_xref_section_offset�trailer_dictrk�
xref_tablerp�seek_end)rTr
r�r�r�moders       r	rqzPdfParser.__init__es����	$�1�	$�H�C��s�#�#�#� ��
�������(��� %���!&�����A�I��h��-�-�-�D�F�Q�%)�D�"��=�!�3�3�A�6�6�6�D�H�s�$(�D�!��
'���6� 2� 2�
'� !���
� ����	*���� � � � �9:�:�D� �4�#6��	�	�D�I� �D�M��	�	�D�I� �D�M�"$�D���D�J� �D�O�!�D�N�,0�D�)� "�D��'�k�k�D�O�+/���(��	��M�M�O�O�O�O�O�	�	rc��|Sr9rKrSs r	�	__enter__zPdfParser.__enter__�s���rc�.�|���dS)NF)�close)rT�exc_type�	exc_value�	tracebacks    r	�__exit__zPdfParser.__exit__�s���
�
�����urc�V�|���|���dSr9)�	close_bufr rSs r	�
start_writingzPdfParser.start_writing�s#���������
�
�����rc�j�	|j���n#t$rYnwxYwd|_dSr9)r�r%r�rSs r	r+zPdfParser.close_buf�sG��	��H�N�N�������	�	�	��D�	��������s��
)�)c��|jr|���|j�)|jr$|j���d|_dSdSdSr9)rr+r�r
r%rSs r	r%zPdfParser.close�sU��� �	��N�N�����6��$�"8���F�L�L�N�N�N��D�F�F�F����rc�P�|j�dtj��dS)Nr)r��seek�os�SEEK_ENDrSs r	r zPdfParser.seek_end�s ������A�r�{�#�#�#�#�#rc�:�|j�d��dS)Ns	%PDF-1.4
)r�r�rSs r	�write_headerzPdfParser.write_header�s������]�#�#�#�#�#rc�f�|j�d|�d������dS)Nz% �
)r�r�r)rTrs  r	�
write_commentzPdfParser.write_comment�s0������Z�!�Z�Z�Z�&�&�(�(�)�)�)�)�)rc���|���|�|j�����|_|�d��|_|���|�|jtd��|j���|�|jtd��t|j
��|j
���|jS)Nr�Catalog)�Type�Pages�Pages)r:�Count�Kids)�del_root�next_object_idr�r�rr�
rewrite_pages�	write_objr�r@rrSs r	�
write_catalogzPdfParser.write_catalog�s����
�
�����+�+�D�F�K�K�M�M�:�:��
��,�,�Q�/�/������������t�}�7�:�+>�+>�d�n��U�U�U�����N���"�"��d�j�/�/���		�	
�	
�	
��}�rc�Z�g}t|j��D]�\}}|j|}|j|j=|�|t
d����||jvr�Qi}|���D]\}}|||�	��<�|j
|d<|jdi|��}t|j��D]\}	}
|
|kr
||j|	<���|D]D}|r@|j|}|j|jvr
|j|j=|�dd��}|�@�Eg|_dS)NsParent�Parentr9)
r�rrrr\r�r�rr�r�r�
write_pager;)
rT�pages_tree_nodes_to_delete�i�page_ref�	page_info�stringified_page_infortru�new_page_ref�j�cur_page_ref�pages_tree_node_ref�pages_tree_nodes
             r	rAzPdfParser.rewrite_pages�s���%'�"�$�T�_�5�5�	1�	1�K�A�x��+�H�5�I���� 2�3�&�-�-�i��	�8J�8J�.K�L�L�L��t�z�)�)��$&�!�'�o�o�/�/�
A�
A�
��U�;@�%�c�o�o�&7�&7�8�8�.2�n�!�(�+�*�4�?�I�I�3H�I�I�L�#,�T�Z�#8�#8�
1�
1���<��8�+�+�$0�D�J�q�M��
1�
$>�	K�	K��%�
K�"&�"5�6I�"J��&�0�D�O�C�C���(;�(E�F�&5�&9�&9�)�T�&J�&J�#�	&�
K��
����rc���|r|���||_|jr |�d|j��|_|j�|j��}t|j��}|j|d�}|j	�
|j	|d<|jr
|j|d<||_	|j�dtt|����zd|zz��dS)N)�Root�Size�Prev�Infostrailer
s
startxref
%d
%%%%EOF)r?rrrBrrr�r�r@rr�r�)rT�new_root_ref�
start_xref�num_entriesrs     r	�write_xref_and_trailerz PdfParser.write_xref_and_trailer�s����	)��M�M�O�O�O�(�D�M��9�	<� �N�N�4���;�;�D�M��_�*�*�4�6�2�2�
��$�/�*�*��!%���E�E���(�4�$(�$A�L��!��9�	2�$(�M�L��!�(2��%�������G�L�)�)�*�*�
+�)�J�6�
7�	
�	
�	
�	
�	
rc��t|t��r
|j|}d|vrtd��|d<d|vr
|j|d<|j|g|�Ri|��S)Nr:�PagerE)r�r�rr�rrB)rT�ref�objs�dict_objs    r	rFzPdfParser.write_page�su���c�3���	"��*�S�/�C���!�!�&�w�/�/�H�V���8�#�#�!%��H�X���t�~�c�5�D�5�5�5�H�5�5�5rc��|j}|�(|�|�����}n(|���|jf|j|j<|�tt|�����|�	dd��}|�t|��|d<|r"|�t|����|D]$}|�t|�����%|�?|�d��|�|��|�d��|�d��|S)N�streamr�sstream
s
endstream
sendobj
)r�r@r�r]rr\r�r�rhr�r@r�)rTr\r]r^r�r`�objs       r	rBzPdfParser.write_obj�s.���F���;��%�%�a�f�f�h�h�/�/�C�C�./�f�f�h�h���-G�D�O�C�M�*�	����'��-�.�.�/�/�/����h��-�-����!$�V���H�X���	(�
�G�G�H�X�&�&�'�'�'��	#�	#�C�
�G�G�H�S�M�M�"�"�"�"���
�G�G�K� � � �
�G�G�F�O�O�O�
�G�G�$�%�%�%�	��������
rc�l�|j�dS|j|jj=|j|jdj=dS)Nr<)rrr\rrSs r	r?zPdfParser.del_root
s8���=� ��F��O�D�M�3�4��O�D�I�h�/�9�:�:�:rc��t|d��r|���St|d��r|���S	tj|���dtj���S#t$rYdSwxYw)N�	getbuffer�getvaluer)�accessr)rrdre�mmap�fileno�ACCESS_READ�
ValueError)r�s r	rzPdfParser.get_buf_from_files����1�k�"�"�	��;�;�=�=� �
�Q�
�
#�
#�	��:�:�<�<��
��y������Q�t�7G�H�H�H�H���
�
�
��s�s�
���s�
2A=�=
B�
Bc��t|j��|_|j|jz
|_|���|jd|_|j�dd��|_	t|�|j����|_|j	�t��|_
n,t|�|j	����|_
td|jvd��t|jddkd��td|jvd��tt|jdt ��d	��|jd|_|�|j��|_|�|j��|_|jdd�|_dS)
NrRrU�Typez/Type missing in Rootr9z/Type in Root is not /Catalogr<z/Pages missing in Rootz+/Pages in Root is not an indirect reference)r@r�rrr�read_trailerrrr;rr��
read_indirectrrrOr�rQrr�linearize_page_treerrrSs r	rzPdfParser.read_pdf_infos���"�4�8�}�}���"�2�T�5F�F����������)�'�2��
��)�-�-�g�t�<�<��
��D�.�.�t�}�=�=�>�>��	��=� ��	�	�D�I�I��� 2� 2�4�=� A� A�B�B�D�I��w�$�)�3�5L�M�M�M���I�g��*�,�.M�	
�	
�	
�	�x�4�9�4�6N�O�O�O���t�y��*�,=�>�>�9�	
�	
�	
���8�,���"�0�0���@�@����-�-�d�.A�B�B��
��*�Q�Q�Q�-����rc���	tt|j�����dzd��}n #t$rtdd��}YnwxYw|�|df|j|j<|S)Nr|r)rQ�maxrr�rjr\)rTr��	references   r	r@zPdfParser.next_object_id8s���	0�)�#�d�o�.B�.B�.D�.D�*E�*E��*I�1�M�M�I�I���	0�	0�	0�)�!�Q�/�/�I�I�I�	0������4:�A�;�D�O�I�/�0��s�7:�A�As[][()<>{}/%]s$[][()<>{}/%\000\011\012\014\015\040]s[\000\011\012\014\015\040]s#[\000\011\012\014\015\0400-9a-fA-F]�*�+s[\000\011\014\040]*s[\r\n]+strailers<<(.*>>)s	startxrefs([0-9]+)s%%EOF�$s	<<(.*?>>)c��t|j��dz
}||jkr|j}|j�|j|��}t|d��|}|r9|}|j�|j|���dz��}|�9|s|}|�d��}t|�d����|_	|�
|��|_t��|_
|�|j	���d|jvr"|�|jd��dSdS)N�@ztrailer end not found�r|r���xref_section_offsetrT)r@r�r�re_trailer_end�searchrO�start�groupr�r�interpret_trailerrrkr�read_xref_table�read_prev_trailer)rT�search_start_offset�m�
last_match�trailer_datas     r	rmzPdfParser.read_trailerjsE��!�$�(�m�m�e�3����!2�2�2�"&�"3����&�&�t�x�1D�E�E���q�"9�:�:�:��
��	E��J��#�*�*�4�8�Q�W�W�Y�Y��^�D�D�A��	E��	��A��w�w�q�z�z��(+�A�G�G�A�J�J����%� �2�2�<�@�@���#�+�+�������1N��O�O�O��d�'�'�'��"�"�4�#4�W�#=�>�>�>�>�>�(�'rc��|�|���}|j�|j||dz���}t	|d��|�d��}t	t
|�d����|kd��|�|��}d|vr|�|d��dSdS)Nryrwzprevious trailer not foundr|r�zGxref section offset in previous trailer doesn't match what was expectedrT)	r��re_trailer_prevr|r�rOr~r�rr�)rTrz�trailer_offsetr�r�rs      r	r�zPdfParser.read_prev_trailers����-�-�BU�-�V�V��� �'�'��H�^�n�u�&<�<�=�
�
��	�q�">�?�?�?��w�w�q�z�z��������
�
�O�O�2�2�U�	
�	
�	
��-�-�l�;�;���l�"�"��"�"�<��#8�9�9�9�9�9�#�"rs/([!-$&'*-.0-;=?-Z\\^-z|~]+)(?=r�r�s>>c	��i}d}	|j�||��}|si|j�||��}t|o$|���t|��kdt
||d���z��nY|�|�d����}|�	||�����\}}|||<��td|vot|dt��d��td|vot|dt��d��|S)	NrTz+name not found in trailer, remaining data: r|rSz&/Size not in trailer or not an integerrRz1/Root not in trailer or not an indirect reference)
�re_name�match�re_dict_endrO�endr@r�r�r~�	get_valuer�r�rQ)r�r��trailerr�r�rtrus       r	rzPdfParser.interpret_trailer�sO������	!���!�!�,��7�7�A��
��O�)�)�,��?�?��&��6�!�%�%�'�'�S��%6�%6�6�A��<����0�1�1�2����
��$�$�Q�W�W�Q�Z�Z�0�0�C��M�M�,������@�@�M�E�6� �G�C�L�	!�	��w��D�:�g�g�.>��#D�#D�4�	
�	
�	
�	��w��R�:�g�g�.>�@Q�#R�#R�?�	
�	
�	
��rs([^#]*)(#([0-9a-fA-F]{2}))?Fc��d}|j�|��D]�}|�d��rZ||�d��t�|�d���d����zz
}�q||�d��z
}��|r|�d��St
|��S)Nr�r|rXzutf-8)�re_hashes_in_name�finditerr~r��fromhexrAr�)r��raw�as_textr�r�s     r	r�zPdfParser.interpret_name�s������&�/�/��4�4�	#�	#�A��w�w�q�z�z�
#������
�
�Y�%6�%6�q�w�w�q�z�z�7H�7H��7T�7T�%U�%U�U�U��������
�
�"����	��;�;�w�'�'�'���;�;�rsnull(?=strue(?=sfalse(?=s([-+]?[0-9]+)(?=s)([-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+))(?=s\[�]s<(s*)>r�s
([-+]?[0-9]+)sR(?=sobj(?=s	endobj(?=r�s	%[^\r\n]*s)*sstream\r?\nsendstream(?=r�c�Z�|dkrdS|j�||��}|r|���}|j�||��}|�rEt	t|�d����dkd��t	t|�d����dkd��t	|dupS|tt|�d����t|�d������kd��|�||���|dz
���\}}|�|dfS|j	�||��}t	|d	��||���fSt	|d
��|j
�||��}|r�t	t|�d����dkd��t	t|�d����dkd��tt|�d����t|�d������|���fS|j�||��}|�r�|���}i}|j�||��}|sj|�|||dz
���\}}|�|dfS|�|||dz
���\}	}|	||<|�|dfS|j�||��}|�j|���}|j
�||��}|�r	t|d
��}
nH#ttt f$r.}d|�d
d��z}t%|��|�d}~wwxYw||���|���|
z�}
|j�||���|
z��}t	|d��|���}t)t+|��|
��}nt+|��}||fS|j�||��}|r�|���}g}|j�||��}|sV|�|||dz
���\}	}|�|	��|�|dfS|j�||��}|�V||���fS|j�||��}|rd|���fS|j�||��}|rd|���fS|j�||��}|rd|���fS|j�||��}|rIt;|�|�d������|���fS|j�||��}|r6t|�d����|���fS|j �||��}|r6tC|�d����|���fS|j"�||��}|r�tGd�|�d��D����}tI|��dzdkr"|�tKd����tF�&|�'d����|���fS|j(�||��}|r(|�)||�����SdtU|||dz���z}t%|���)Nr)NNr|z<indirect object definition: object ID must be greater than 0r�z;indirect object definition: generation must be non-negativez2indirect object definition different than expected)�max_nestingz(indirect object definition end not foundz$indirect object definition not foundz;indirect object reference: object ID must be greater than 0z:indirect object reference: generation must be non-negativesLengthz)bad or missing Length in stream dict (%r)zstream end not foundTFc3�"K�|]
}|dv�|V��dS)s0123456789abcdefABCDEFNrKr�s  r	r?z&PdfParser.get_value.<locals>.<genexpr>`s6����#�#���.G�)G�)G��)G�)G�)G�)G�#�#r�0rXzunrecognized object: � )+�
re_commentr�r��re_indirect_def_startrOr�r~rQr��re_indirect_def_end�re_indirect_reference�
re_dict_startr��re_stream_start�	TypeErrorrxrjr;rF�
re_stream_endr�r��re_array_start�re_array_endr��re_null�re_true�re_falser�r�r��re_int�re_realr�
re_string_hexr�r@r�r�rA�
re_string_lit�get_literal_stringr�)r�r�r��expect_indirectr�r��objectr�rtru�
stream_lenr�r�stream_data�
hex_strings               r	r�zPdfParser.get_value�s����!����:��N� � ��v�.�.���	��U�U�W�W�F��%�+�+�D�&�9�9���	#�"��A�G�G�A�J�J���!�#�N�
�
�
�
#��A�G�G�A�J�J���1�$�M�
�
�
�
#��4�'�G�"�$�S�������_�_�c�!�'�'�!�*�*�o�o�F�F�G�D�	
�
�
�!�]�]�4������k�TU�o�]�V�V�N�F�F��~��t�|�#��'�-�-�d�F�;�;�A�"�1�&P�Q�Q�Q��1�5�5�7�7�?�"����!G�	
�	
�	
�
�%�+�+�D�&�9�9���		P�"��A�G�G�A�J�J���!�#�M�
�
�
�
#��A�G�G�A�J�J���1�$�L�
�
�
�%�S�������_�_�c�!�'�'�!�*�*�o�o�F�F������O�O���#�#�D�&�1�1���	"��U�U�W�W�F��F���%�%�d�F�3�3�A��
8�!�m�m�D�&�k�TU�o�m�V�V���V��>�!�4�<�'� #�
�
�d�F��VW��
� X� X�
��v�#��s���>�!�4�<�'��O�)�)�$��7�7���
8��U�U�W�W�F��#�)�)�$��7�7�A��
)�5�!$�V�I�%6�!7�!7�J�J��!�8�Z�8�5�5�5�E��
�
�!�4�I�I��C�)��-�-�1�4�����	5����
#�1�5�5�7�7�Q�U�U�W�W�z�-A�#A�B���%�+�+�D�!�%�%�'�'�J�2F�G�G��&�q�*@�A�A�A�������"�7�6�?�?�K�@�@��� ������6�>�!���$�$�T�6�2�2���
	#��U�U�W�W�F��F�� �&�&�t�V�4�4�A��
9� #�
�
�d�F��VW��
� X� X�
��v��
�
�e�$�$�$��>�!�4�<�'��$�*�*�4��8�8���
9��1�5�5�7�7�?�"��K���d�F�+�+���	!�������=� ��K���d�F�+�+���	!�������=� ��L���t�V�,�,���	"��!�%�%�'�'�>�!��K���d�F�+�+���	D��3�-�-�a�g�g�a�j�j�9�9�:�:�A�E�E�G�G�C�C��J���T�6�*�*���	,��q�w�w�q�z�z�?�?�A�E�E�G�G�+�+��K���d�F�+�+���	.��������$�$�a�e�e�g�g�-�-���#�#�D�&�1�1���	M�"�#�#��7�7�1�:�:�#�#�#���J��:����"�a�'�'��!�!�#�d�)�)�,�,�,��$�$�Z�%6�%6�z�%B�%B�C�C�Q�U�U�W�W�L�L���#�#�D�&�1�1���	9��)�)�$������8�8�8�%��T�&�6�B�;�2F�-G�(H�(H�H���S�!�!�!s�N�O �2)O�O sF(\\[nrtbf()\\])|(\\[0-9]{1,3})|(\\(\r\n|\r|\n))|(\r\n|\r|\n)|(\()|(\))�nr��r�
�t�	�b��f�r�c���d}t��}|j�||��D�]�}|�|||������|�d��r;|�|j|�d��d���n|�d��r?|�t|�d��dd�d����n�|�d��rn�|�d��r|�d��n�|�d��r|�d	��|dz
}nZ|�d
��rE|dkr%t|��|�
��fcS|�d��|dz}|�
��}���d}t|���)
Nrr|r��r��r��r��r�zunfinished literal string)r��re_lit_str_tokenr�r�r}r~�
escaped_charsr�r�r�r�rF)r�r�r��
nesting_depthr�r�rs       r	r�zPdfParser.get_literal_string�s����
������%�.�.�t�V�<�<�	�	�A��M�M�$�v����	�	�1�2�3�3�3��w�w�q�z�z�
#��
�
�c�/�����
�
�1�
�>�?�?�?�?�������

#��
�
�c�!�'�'�!�*�*�Q�R�R�.�!�4�4�5�5�5�5�������
#��������	
#��
�
�e�$�$�$�$�������
#��
�
�d�#�#�#���"�
�
�������
#� �A�%�%� ��=�=�!�%�%�'�'�1�1�1�1��
�
�d�#�#�#���"�
��U�U�W�W�F�F�)���S�!�!�!rsxrefs+([0-9]{10}) ([0-9]{5}) ([fn])( \r| \n|\r\n)c�`�d}|j�|j||jz��}t	|d��|���}	|j�|j|��}|st	|d���n*d}|���}t|�d����}t|�d����}t|||z��D]�}|j
�|j|��}t	|d��|���}|�d��d	k}|sYt|�d����}	t|�d����|	f}
||jvr
|
|j|<����^|S)
NFzxref section start not foundTzxref subsection start not foundr|r�zxref entry not foundr�r�)�re_xref_section_startr�r�rrOr��re_xref_subsection_startr�r~r��
re_xref_entryr)rTrz�subsection_foundr�r��first_object�num_objectsrH�is_freer]�	new_entrys           r	r�zPdfParser.read_xref_table�s��� ���&�,�,��H�)�D�,=�=�
�
��	�q�"@�A�A�A�������	7��-�3�3�D�H�f�E�E�A��
�&�$�&G�����#���U�U�W�W�F��q�w�w�q�z�z�?�?�L��a�g�g�a�j�j�/�/�K��<���)C�D�D�	
7�	
7���&�,�,�T�X�v�>�>��&�q�*@�A�A�A��������'�'�!�*�*��,���7�!$�Q�W�W�Q�Z�Z���J�!$�Q�W�W�Q�Z�Z���*� =�I����/�/�-6����*��)	7�*�
rc��|j|d\}}t||dkd|d�d|d�d|�d|����|�|j||jzt|�|���d}||j|<|S)Nrr|zexpected to find generation z for object ID z) in xref table, instead found generation z at offset )r�r�)rrOr�r�rrQr)rTr\r�r�r]rus      r	rnzPdfParser.read_indirect�s���!�_�S��V�4���
���#�a�&� �
O�3�q�6�
O�
O�#�a�&�
O�
O�/9�
O�
O�FL�
O�
O�	
�	
�	
�
����H��T�&�&�-�s�3�#�	�
�
�
�
��$)���C� ��rc�&�|�|j}t|ddkd��g}|dD]b}|�|��}|ddkr|�|���9|�|�|������c|S)Nrlr<z%/Type of page tree node is not /PagessKidsr[)�node)rrOrnr�r�ro)rTr�r�kid�
kid_objects     r	rozPdfParser.linearize_page_tree�s����<��&�D����M�X�%�'N�	
�	
�	
�����=�	H�	H�C��+�+�C�0�0�J��'�"�g�-�-����S�!�!�!�!����T�5�5�:�5�F�F�G�G�G�G��r)NNNrrr9)F)Nr�)r�)IrGrHrIrJrqr#r)r,r+r%r r4r7rCrArYrFrBr?�staticmethodrrr@�	delimiter�delimiter_or_ws�
whitespace�whitespace_or_hex�whitespace_optional�whitespace_mandatory�whitespace_optional_no_nl�newline_only�newline�re�compile�DOTALLr{r�rmr��re_whitespace_optionalr�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rnrorKrr	r�r�_s���������
$�$�$�$�L���������������$�$�$�$�$�$�*�*�*�������:
�
�
�
�(6�6�6����*;�;�;��	�	��\�	�(�(�(�8����!�I�>�O�/�J�?��$�t�+��%��,�� 7���L�'�,�6�9R�R�G��R�Z��
�	�
�	��	��		�
�	��
	��	��	��		��
	��	�	�	���N�!�b�j��
�	�
�	��	��		�
�	��
	��	��	��		��
	�	�	�
�
�O�?�?�?�*
:�
:�
:�(�R�Z�(;�<�<���b�j��
-�	.�
�	��	���G��B�J�2�V�;�<�<�M��"�*�0�6�9�<O�O�P�P�K�����[��4#��
�#B�C�C���
�
�
��[�
��b�j�,�{�:�_�L�u�T�U�U�G��b�j�,�{�:�_�L�u�T�U�U�G��r�z�-��<��N�QV�V�W�W�H�
�R�Z��2�2�_�D�u�L���F��b�j��
7�	8�
�	��	���G� �R�Z� 3�f� <�=�=�N��2�:�1�E�9�:�:�L��B�J��f�$�'8�8�7�B���M��B�J�2�V�;�<�<�M�&�B�J��
�	�
�	��	��		�
�	��
	��	�	�	��'�B�J��
�	�
�	��	��		�
�	��
	��	�	�	��%�"�*��m�+�o�=��E�������
�#�#�m�3�g�=��F���J�!�b�j�!4��!F�G�G�O��B�J��.�.��@�5�H���M��x"�x"�x"��[�x"�t"�r�z�R������e���e��	
�e��	
�e�	�
	
�e��	
�d�
�	
�d��	�u��	��D�	�	�5��	��D�	�	�5��	��D�	�	�5��	��D�	�	�5��	��D�	�	�5��	��D�	�	�4��	��D�	�	�4�� 	��E�
�
�E�!�M�&�"�"��[�"�2'�B�J�':�X�'E��'O�P�P��)�r�z��
�	�
�	��	��		�
�	� � ���B�J�N�O�O�M����<���� 
�
�
�
�
�
rr�)r�rr�rgr1r�r�r�r
r:rDr	rFrO�
namedtuplerQrhrkr�rr�r�r�r�r�r�r�rKrr	�<module>r�sF������
�
�
�
���������	�	�	�	�	�	�	�	���������
7�7�7�*��(�*��(�*�	�(�*�	�(�	*�
	�(�*�	�(�
*�	�(�*�	�(�*�	�(�*�	�(�*�	�(�*�	�(�*�	�(�*�	�(�*�	�(�*� 	�(�!*�"	�(�#*�*�$	�(�%*�&	�(�'*�(	�(�)*�*	�(�+*�,	�(�-*�.	�(�/*�0	�(�1*�2	�(�3*�4	�(�5*�6	�(�7*�8	�(�9*�:	�(�;*�<	�(�=*�>	�(�?*�@	�(�A*�B	�(�C*�D	�(�E*�*�F�
�
�
�
�
�
�S*�*�*��ZJ�J�J�	�	�	�	�	�\�	�	�	�,�,�,�
7�7�7�7�7��K��3�k�<�5P�Q�Q�7�7�7�."�"�"�"�"�)�"�"�"�
Y�Y�Y�Y�Y�Y�Y�Y�x$�$�$�$�$�$�$�$�ND�D�D�D�D�t�D�D�D�
-�-�-�-�-�k�"�-�-�-�`B�B�B�B�B�B�B�B�+�+�+�+�+�+�+�+�*���:E
�E
�E
�E
�E
�E
�E
�E
�E
�E
r

Youez - 2016 - github.com/yon3zu
LinuXploit