403Webshell
Server IP : 54.37.205.81  /  Your IP : 216.73.216.76
Web Server : nginx/1.22.1
System : Linux vps-249481fa 6.1.0-50-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.176-1 (2026-07-02) x86_64
User : debian ( 1000)
PHP Version : 8.2.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/reportlab/graphics/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/reportlab/graphics/__pycache__/renderPS.cpython-311.pyc
�

}G�b1���|�dZdZddlZddlmZmZddlmZmZm	Z	ddl
mZmZm
Z
mZmZddlmZddlmZmZmZdd	lmZdd
lmZddlmZiZed��D]YZed
ksedkr	dezee<�eed��ed��ed��fvrde e��zee<�Ke e��ee<�Z[d�Z!dZ"Gd�d��Z#	ddlTddej$fd�Z%d�Z&Gd�de��Z'ej$fd�Z(ej$fd�Z)d%d �Z*e+d!kr7ddl,Z,e-e,j.��d"kre,j.d"Z/ndZ/e*e/d#�$��dSdS)&z3.3.0z$Render drawing objects in Postscript�N)�BytesIO�StringIO)�getFont�stringWidth�
unicode2T1)�asBytes�char2int�rawBytes�asNative�	isUnicode)�fp_str)�Renderer�
getStateDelta�renderScaledDrawing)�STATE_DEFAULTS)�	rl_config)�
FILL_EVEN_ODD�� �z\%03o�\�(�)c��t|��}g}|j}d}|D]L}tt|��}||��|t	|��z
}|dkr
d}|d���Md�|��S)Nr��z\
�)r�append�_ESCAPEDICTr	�len�join)�s�R�aR�n�cs     �=/usr/lib/python3/dist-packages/reportlab/graphics/renderPS.py�_escape_and_limitr's�����
�
�A�
�A�	
��B�	�A�
���������$��
��1����	�S��V�V����c�6�6��A��B�v�J�J�J��
�7�7�1�:�:��a?
/RE { %def
  findfont begin
  currentdict dup length dict begin
 { %forall
   1 index /FID ne { def } { pop pop } ifelse
 } forall
 /FontName exch def dup length 0 ne { %if
   /Encoding Encoding 256 array copy def
   0 exch { %forall
     dup type /nametype eq { %ifelse
       Encoding 2 index 2 index put
       pop 1 add
     }{ %else
       exch pop
     } ifelse
   } forall
 } if pop
  currentdict dup end end
  /FontName get exch definefont pop
} bind def

/WinAnsiEncoding [
  39/quotesingle 96/grave 128/euro 130/quotesinglbase/florin/quotedblbase
  /ellipsis/dagger/daggerdbl/circumflex/perthousand
  /Scaron/guilsinglleft/OE 145/quoteleft/quoteright
  /quotedblleft/quotedblright/bullet/endash/emdash
  /tilde/trademark/scaron/guilsinglright/oe/dotlessi
  159/Ydieresis 164/currency 166/brokenbar 168/dieresis/copyright
  /ordfeminine 172/logicalnot 174/registered/macron/ring
  177/plusminus/twosuperior/threesuperior/acute/mu
  183/periodcentered/cedilla/onesuperior/ordmasculine
  188/onequarter/onehalf/threequarters 192/Agrave/Aacute
  /Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
  /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute
  /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute
  /Ocircumflex/Otilde/Odieresis/multiply/Oslash
  /Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
  /germandbls/agrave/aacute/acircumflex/atilde/adieresis
  /aring/ae/ccedilla/egrave/eacute/ecircumflex
  /edieresis/igrave/iacute/icircumflex/idieresis
  /eth/ntilde/ograve/oacute/ocircumflex/otilde
  /odieresis/divide/oslash/ugrave/uacute/ucircumflex
  /udieresis/yacute/thorn/ydieresis
] def
c�\�eZdZd;d�Zd�Zd<d�Zd�Zd�Zd=d	�Zd
�Z	d�Z
d<d�Zd
�Zd�Z
gdfd�Zd�Zd�Zd�Zd�Zd�Zd=d�Zd�Zd�Zd>d�Zd>d�Zd?d�Zd@d�ZdAd �Zd>d!�ZdBd#�ZdCd%�Zd&�Zd'�Z dDd)�Z!d*�Z"dEd+�Z#d<d,�Z$d-�Z%d.�Z&d/�Z'd0�Z(d1�Z)d>d2�Z*dFd3�Z+d4�Z,d5�Z-d6�Z.d7�Z/d<d8�Z0d9�Z1d<d:�Z2dS)G�PSCanvas��,r,�c�^�|\|_|_g}|j|_|j|_d|_g|_|jj|_d|_	dx|_
x|_x|_x|_
x|_x|_x|_|_g|_|�t(dt(d��|�t(d��|�d��|�d��|�d��||_t4|_dS)Nr�
�fontName�fontSize�strokeColorr-�)�width�heightr�_xtraState_push�pop�_xtraState_pop�comments�code�code_append�_sep�_strokeColor�
_fillColor�
_lineWidth�_font�	_fontSize�_lineCap�	_lineJoin�_color�
_fontsUsed�setFontr�setStrokeColor�
setLineCap�setLineJoin�setLineWidth�PostScriptLevelr�	_fillMode)�self�sizerK�	xtraStates    r&�__init__zPSCanvas.__init__[s$��"&���
�D�K��	�(�/���'�m�����
���	��9�+�����	�,0�	0���	0�D�O�	0�d�o�	0��J�	0���	0�*.�-�	0��N�T�[�������^�J�/��z�0J�K�K�K����N�=�9�:�:�:������������������!����,���&����r(c�H�|jr|�d|z��dSdS)N�%)r9r;)rM�msgs  r&�commentzPSCanvas.commentqs-���=�3�$�*�*�3�s�7�3�3�3�3�3�3�3r(Nc���|jdkr|�|||||��dS|jdkr|�|||||��dStd|jz���)Nr3r-zUnsupported Postscript Level %s)rK�_drawImageLevel1�_drawImageLevel2�
ValueError)rM�image�x1�y1r4r5s      r&�	drawImagezPSCanvas.drawImagetsy�����"�"��!�!�%��B��v�>�>�>�>�>�
�
!�1�
$�
$��!�!�%��R���?�?�?�?�?��>��AU�U�V�V�Vr(c�0�|�d��dS)N�showpage�r;�rMs r&�clearzPSCanvas.clear}s������$�$�$�$�$r(c�N�|jsdSg}|jD]?}t|��}|js'|jdkr|�d|�d|�d����@|rP|�dt��|j�d|j�	|����dSdS)N�WinAnsiEncodingzWinAnsiEncoding /z /z RErr3)
rEr�_dynamicFont�encNamer�insert�PS_WinAnsiEncodingr:r<r )rM�Cr0�fontObjs    r&�
_t1_re_encodezPSCanvas._t1_re_encode�s�����&�������	N�	N�H��h�'�'�G��'�
N�G�O�=N�,N�,N��������8�8�8�L�M�M�M���	3�
�H�H�Q�)�*�*�*��I���Q��	���q� 1� 1�2�2�2�2�2�	3�	3r(c���t|d��st|d��}n|}|jddkr|���|j�dd|j|jfz��|���|�t|j
�|j������||ur*|���ddl
m}||dd	�
��dSdS)N�write�wb���r^rz�%%!PS-Adobe-3.0 EPSF-3.0
%%%%BoundingBox: 0 0 %d %d
%%%% Initialization:
/m {moveto} bind def
/l {lineto} bind def
/c {curveto} bind def
)�markfilename�XPR3�EPSF)�creatorcode�filetype)�hasattr�openr:rarfr4r5rjrlr
r<r �close�reportlab.lib.utilsro)rM�f�_fros    r&�savez
PSCanvas.save�s���q��!�!�	��a����B�B��B��9�R�=�*�$�$�d�j�j�l�l�l��	������z�$�+���	 �	 �	 �	
������
����$�)�.�.���3�3�4�4�5�5�5�
�Q�;�;��H�H�J�J�J�8�8�8�8�8�8��L��v�v�>�>�>�>�>�>��;r(c�f�|�|jf��|�d��dS)N�gsave)r6�_fontCodeLocr;r`s r&�	saveStatezPSCanvas.saveState�s6�����d�/�1�2�2�2�����!�!�!�!�!r(c�f�|�d��|���\|_dS)N�grestore)r;r8r}r`s r&�restoreStatezPSCanvas.restoreState�s3������$�$�$�!�0�0�2�2�����r(c�H�|p|j}|p|j}t|||��S)zlReturn the logical width of the string if it were drawn
        in the current font (defaults to self.font).)r@rAr)rMr!�fontr1s    r&rzPSCanvas.stringWidth�s.���!�t�z���-�t�~���1�d�H�-�-�-r(c�^�|j|kr!||_|�d|z��dSdS)Nz
%d setlinecap)rBr;�rM�vs  r&rHzPSCanvas.setLineCap�s=���=�!����D�M����_�Q�.�/�/�/�/�/��r(c�^�|j|kr!||_|�d|z��dSdS)Nz%d setlinejoin)rCr;r�s  r&rIzPSCanvas.setLineJoin�s>���>�1����D�N����-�a�/�0�0�0�0�0��r(rc�j�d}t|ttf��r |�d|�d|�d|����dSt|tt
f��rX|dks
Jd���d�tt|����}|�d|�d|�d|����dSdS)	z7Two notations.  pass two numbers, or an array and phase�setdash�[� z] 0 rzphase is a length in user spacez] N)	�
isinstance�float�intr;�tuple�listr �map�str)rM�array�phase�psoperation�	textarrays     r&�setDashzPSCanvas.setDash�s��� ���e�U�3�K�(�(�	M�����u�u�u�e�e�e�[�[�I�J�J�J�J�J�
��u�T�l�
+�
+�	M��A�:�:�:�@�:�:�:�����S�%���1�1�I�����Y�Y�Y����{�{�K�L�L�L�L�L�	M�	Mr(c�>�||_|�|��dS�N)r=�setColor�rM�colors  r&rGzPSCanvas.setStrokeColor�s"��!����
�
�e�����r(c	�>�|j|kr�||_|r�t|d��r>|�dt|j|j|j|j��z��dS|�dt|j|j	|j
��z��dSdSdS)N�cyanz%s setcmykcolorz%s setrgbcolor)rDrtr;r
r��magenta�yellow�black�red�green�bluer�s  r&r�zPSCanvas.setColor�s����;�����D�K��
d��5�&�)�)�d��$�$�%6���
�E�M�[`�[g�in�it�9u�9u�%u�v�v�v�v�v��$�$�%5��u�y�%�+�W\�Wa�8b�8b�%b�c�c�c�c�c�
��
d�
dr(c�>�||_|�|��dSr�)r>r�r�s  r&�setFillColorzPSCanvas.setFillColor�s!������
�
�e�����r(c��||_dSr�)rLr�s  r&�setFillModezPSCanvas.setFillMode�s
������r(c�^�||jkr!||_|�d|z��dSdS)Nz%s setlinewidth)r?r;)rMr4s  r&rJzPSCanvas.setLineWidth�s>���D�O�#�#�#�D�O����.��6�7�7�7�7�7�$�#r(c��|j|ks|j|kr>t|j��|_||_||_|�d��dSdS)Nr)r@rArr:r}r;)rMr�r1�leadings    r&rFzPSCanvas.setFont�s[���:�t���t�~�x�7�7� #�D�I���D���D�J�%�D�N����R� � � � � �	 8�7r(c���|jdkrS|�|j��|�t||���dt||���d���dSdS)Nz m z	 l stroke)r=r�r;r
�rMrZr[�x2�y2s     r&�linez
PSCanvas.line�sd�����$�$��M�M�$�+�,�,�,����6�"�b�>�>�>�>�6�"�b�>�>�>�>�R�S�S�S�S�S�%�$r(c�j�	t|��S#tdt|��z���xYw)z{
        return a copy of string s with special characters in postscript strings
        escaped with backslashes.
        zcannot escape %s)r'rX�ascii)rMr!s  r&�_escapezPSCanvas._escape�s8��
	<�$�Q�'�'�'��	<��/�%��(�(�:�;�;�;���s��!2c���|dkrdSt||��}|�|��}|dkr7|�|j��|�|�d|�d���dS|dkp|dkp|dkp|dk}|dkp|dkp|d	kp|dk}|dk}|r�|r�|j�d
}	nd}	|�|j��|�|�d|�d|	����|�d
��|j�1|�|j��|�d��dSdS|�|j��|�|�d|�d���dS)N�rz m (z) show r-��r3�rzfill z) true charpath gsave z	grestore zstroke z) true charpath stroke )r
r�r�r>r;r=)
rM�x�yr!�textRenderMode�xy�fill�stroke�	addToClip�ops
          r&�_textOutzPSCanvas._textOut�s����1���f�f�
�A�a�[�[���L�L��O�O���1����M�M�$�/�*�*�*����"�"�"�Q�Q�Q�7�8�8�8��F��q� �_�N�A�$5�_���9J�_�n�^_�N_����"�a�n�a�&7�a�>�1�;L�a�P^�`a�Pa��"�A�%�	��
	I�F�
	I���&�������
�
�d�o�.�.�.����2�2�2�a�a�a���K�L�L�L����[�)�)�)�� �,��
�
�d�/�0�0�0�� � ��+�+�+�+�+�-�,�
�M�M�$�+�,�,�,����"�"�"�Q�Q�Q�G�H�H�H�H�Hr(c�R�|}|j}|j}|j}	|j}
t	|��s�	|�d��}nr#t$re}|jdd�\}}
t
|jdd�|jd�d||dz
|��d|||
��d||
|
dz���fz��d}~wwxYwt||g|j	z��D]�\}}||krSt|jj��}|d|�d	t|���d
���||	vr|	�|��|}|�||||��||�|�|j��|��z
}��||kr)d|_|�|jj|��dSdS)N�utf8r-r�r/�
z-->z<--r�) findfont � scalefont setfont)r;rArEr�r�decode�UnicodeDecodeError�argsr�substitutionFontsr�face�namer
rr�rrer@rF)rMrir�r�r!r��fcr;r1�	fontsUsed�escape�e�i�jrx�t�psNames                 r&�_issueT1StringzPSCanvas._issueT1Strings���
���&���>���O�	������|�|�	w�
w��H�H�V�$�$����%�
w�
w�
w��f�Q�q�S�k���!�(�1�6�"�1�"�:�Q�V�TU�Y�Y�Y�WX�YZ�[]�Y]�^_�Y_�W`�W`�W`�ab�cd�ef�cf�ag�ag�ag�hi�jk�lm�np�lp�jp�hq�hq�7r�6t�+t�v�v�����
w�����q�'��7�+D�!D�E�E�	=�	=�D�A�q��"�u�u�!�!�&�+�.�.�����F�F�F�6�RZ�K[�K[�K[�K[�\�]�]�]���*�*��$�$�V�,�,�,����M�M�!�A�a��/�/�/�
����q�x�x��	�2�2�8�<�<�<�A�A��B�;�;��D�J��L�L���*�8�4�4�4�4�4��;s�A�
B4�A B/�/B4�leftc�f�|dv}|dv}|s|�r�|dkr\t||j|j��}	|dkr||	z}n5|dkr	||	dzz}n&|dkr |t|||	|j|j��z}t	|j��}
|j|jsdt|
jj	��}d|�d	t|j���d
�|j|j<||jvr|j�|��|dkr;|�
dt||���d
t|���d���dx}}|j}|
jr|�||||���n|�|
||||���|�|��|dkr|�
d��dSdSdS)N)rr-r�r�)r3r-r�r�r��end�middle�@�numericrr�r�rzgsave z translate z rotate�r�r�)rr@rA�
numericXShiftrr:r}rr�r�r
rErr;rDrdr�r�r�)
rMr�r�r!�angle�text_anchorr��needFill�
needStroke�textLenrir��oldColors
             r&�
drawStringzPSCanvas.drawString+s���!�Y�.��#�y�0�
��	-�z�	-��F�"�"�%�a���D�N�C�C����%�%���L�A�A� �(�*�*�����O�A�A� �)�+�+���{�1�W�T�Z���W�W�W�A��d�j�)�)�G��9�T�.�/�
3�!�'�,�"3�4�4���U[�U[�U[�\b�cg�cq�\r�\r�\r�\r�-s��	�$�+�,����0�0��O�*�*�6�2�2�2��a�x�x�� � � �6�!�A�;�;�;�;�v�V[�}�}�}�}�!]�^�^�^��	��A��{�H��#�
R��
�
�a��A�n�
�E�E�E�E��#�#�G�A�a��.�#�Q�Q�Q��M�M�(�#�#�#��a�x�x�� � ��,�,�,�,�,�3	-�	-�0�xr(r�c�:�|�|||||���dS�N)r�r��r�)rMr�r��textr�r�s      r&�drawCentredStringzPSCanvas.drawCentredStringIs$���O�O�A�a��+�n�O�]�]�]�]�]r(r�c�:�|�|||||���dSr�r�)rMr�r�r�r�r�s      r&�drawRightStringzPSCanvas.drawRightStringLs$������Q�q�[���X�X�X�X�Xr(c
	�d�d}
t||��t||||||��f}|jdkr5|�|j��|�|
|zdz��|jdkr>|�|j��|�|
|z|	rdpdzdz��dSdS)Nz%s m %s curvetoz eofillz
 closepathrz stroke)r
r>r�r;r=)rMrZr[r�r��x3�y3�x4�y4�closed�codeline�datas            r&�	drawCurvezPSCanvas.drawCurveOs���$���r�2����r�2�r�2�r�2� >� >�?���?�d�"�"��M�M�$�/�*�*�*����h��o��:�;�;�;����$�$��M�M�$�+�,�,�,����h��o� &� 7�<�>�B�@�'�(�
)�
)�
)�
)�
)�%�$r(r3c���t||��t||��}}t||��t||��}}|�||f||f||f||ffd||���dS)z)Draw a rectangle between x1,y1, and x2,y2r3)r�r�r�N)�min�max�polygon)rMrZr[r�r�r�r�s       r&�rectz
PSCanvas.rect]sp���R����S��R�[�[�B���R����S��R�[�[�B�����r�"�g�r�"�g�r�"�g�r�"�g�6�q��X\��]�]�]�]�]r(�c	��t||��t||��}}t||��t||��}}d}dg}|j}	|	|||z||z||ddfz��|	|||z||z
||ddfz��|	|||z
||z
||ddfz��|	|||z
||z||ddfz��|	d��|�|��d	S)
z�Draw a rounded rectangle between x1,y1, and x2,y2,
        with corners inset as ellipses with x radius rx and y radius ry.
        These should have x1<x2, y1<y2, rx>0, and ry>0.zJmatrix currentmatrix %s %s translate %s %s scale 0 0 1 %s %s arc setmatrix�newpath�Z�i�hr�	closepathN)r�r�r�_fillAndStroke)
rMrZr[r�r��rx�ry�ellipsePath�rr�as
          r&�	roundRectzPSCanvas.roundRectes%���R����S��R�[�[�B���R����S��R�[�[�B��c���[���I��	��+��B���2��r�B�3��C�8�
8�9�9�9�	��+��B���2��r�B�3��S�9�
9�:�:�:�	��+��B���2��r�B�3��S�9�
9�:�:�:�	��+��B���2��r�B�3��B�7�
7�9�9�9�	��+�������B�����r(c�6�|�||||��dS)zqDraw an orthogonal ellipse inscribed within the rectangle x1,y1,x2,y2.
        These should have x1<x2 and y1<y2.N)�drawArcr�s     r&�ellipsezPSCanvas.ellipse�s"��	
���R��B�r�"�"�"�"�"r(c�N�|�||z
||z
||z||z��dSr�)r
)rM�xc�yc�rs    r&�circlezPSCanvas.circle�s0�����R��T�"�Q�$��1��R��T�*�*�*�*�*r(r�c��||zdz||zdz}	}||z
dz||z
dz}}
|�||||||��}tj|zdz}
tj|zdz}|
|z}d}|jdkr�|�|j��|�|��d}|jdkr|�d��|�||	��|�d��|jdkr|�d��|jdkr�|�|j��||
tj|
��zz|	|tj	|
��zz}}|s|�|��|rA|�||	��|�||��|�d	��|�d
��dSdS)z�Draw a partial ellipse inscribed within the rectangle x1,y1,x2,y2,
        starting at startAng degrees and covering extent degrees.   Angles
        start with 0 to the right (+x) and increase counter-clockwise.
        These should have x1<x2 and y1<y2.r�g�f@rNr3r|�eofillr�rr�)
�_genArcCode�math�pir>r�r;r=�lineTo�cos�sin)rMrZr[r�r��startAng�extent�
fromcenter�cx�cyrrr��startAngleRadians�
extentRadians�endAngleRadians�codelineAppended�startx�startys                   r&r	zPSCanvas.drawArc�s���R�%���r�"�u�c�k�B���R�%���r�"�u�c�k�B���#�#�B��B��H�f�E�E�� �G�H�,�U�2������u�,�
�+�m�;�����?�d�"�"��M�M�$�/�*�*�*����X�&�&�&� ��� �$�&�&��(8�(8��(A�(A�(A��K�K��2�������X�&�&�&�� �$�&�&��(8�(8��(D�(D�(D����$�$��M�M�$�+�,�,�,� "�2�d�h�/@�&A�&A�#A� A�2�b���Rc�Id�Id�Fd�Cd�V�V�#�
+�� � ��*�*�*��
.����B�r�"�"�"����F�F�+�+�+�� � ��-�-�-����X�&�&�&�&�&�%�$r(c��t||z
dz��}t||z
dz��}||zdz||zdz}
}	d}|dkrd}nd}|	|
|||||z|f}
||
zS)zOCalculate the path for an arc inscribed in rectangle defined by (x1,y1),(x2,y2)r�zImatrix currentmatrix %s %s translate %s %s scale 0 0 1 %s %s %s setmatrixr�arc�arcn)�abs)rMrZr[r�r�rr�xScale�yScaler�r�r�r$r�s              r&rzPSCanvas._genArcCode�s����b��e�S�[�!�!���b��e�S�[�!�!���2��s�{�R��U�C�K�1��^���Q�;�;��C�C��C��!�V�V�X�x����D���$��r(c�6�t|��dks
Jd���|d}|dd�}g}|j}|dt|��z��|D]}|dt|��z���|r|d��|�|||���dS)	Nr-z"Polygon must have 2 or more pointsrr3�%s m�%s lr)r�r�)rrr
r)	rM�pr�r�r��start�polyr�points	         r&r�zPSCanvas.polygon�s����1�v�v��{�{�{�@�{�{�{��!���
�a�b�b�E�����K��	��&�6�%�=�=�
 �!�!�!��	&�	&�E�
�A�f�v�e�}�}�$�%�%�%�%��	�
�A�k�N�N�N����D��D��9�9�9�9�9r(c	���|jdkra|�|j��d}|D]D}|�|t|d��t|d��fz���CdSdS)Nz%s m %s l strokerr3)r=�	_setColorr;r
)rM�lineListr�r4r�r�s      r&�lineszPSCanvas.lines�s������$�$��N�N�4�,�-�-�-�)�H� �
O�
O��� � ��V�D��G�_�_�V�D��G�_�_�,M�!M�N�N�N�N�	%�$�
O�
Or(c�R�|�dt||��z��dS)Nr*�r;r
�rMr�r�s   r&�moveTozPSCanvas.moveTo��)������&��A�,�,�.�/�/�/�/�/r(c�R�|�dt||��z��dS)Nr+r5r6s   r&rzPSCanvas.lineTo�r8r(c�Z�|�dt||||||��z��dS)Nz%s cr5)rMrZr[r�r�r�r�s       r&�curveTozPSCanvas.curveTo�s3������&��B�r�"�R��";�";�;�<�<�<�<�<r(c�0�|�d��dS)Nrr_r`s r&�	closePathzPSCanvas.closePath�s������%�%�%�%�%r(c�r�t|��dks
Jd���|jdkr�|�|j��|�|dd|dd��|dd�D]$}|�|d|d���%|�d��dSdS)Nr3z#Polyline must have 1 or more pointsrr�)rr=r�r7rr;)rMr,r�s   r&�polyLinezPSCanvas.polyLine�s����1�v�v��{�{�{�A�{�{�{����$�$��M�M�$�+�,�,�,��K�K��!��Q���1��a��)�)�)��q�r�r�U�
(�
(�����A�a�D�!�A�$�'�'�'�'����X�&�&�&�&�&�%�$r(c�:�g}|j}d}|D�]i}|d}t|dd���}|tkro|r&d}|dt|dd���z��n#|dt|dd���z��|dt|dd���z����|tkr7d}|dd�\}	}
}}}
}||�|	|
|||
|������|tkrp|r&d}|dt|dd���z��n#|dt|dd���z��|dt|dd���z����Ytd|z���|r|d	��|�|��dS)
Nr3rr*r-r+r�z
%s curvetozunknown figure operator: r)	rr��
figureLiner
�	figureArcr�figureCurve�	TypeErrorr)rM�partListr��
figureCoder�first�partr�r�rZr[r�r��
startAnglers               r&�
drawFigurezPSCanvas.drawFigure�s����
�������	@�	@�D��a��B���Q�R�R��>�>�D��Z����1��E��A�f�v�d�2�A�2�h�/�/�/�0�0�0�0��A�f�v�d�2�A�2�h�/�/�/�0�0�0���&�6�$�q�r�r�(�+�+�+�,�,�,�,��y�����04�R�a�R��-��2�b��J�v���$�"�"�2�b��B�z�&�A�A�B�B�B�B��{�"�"��1��E��A�f�v�d�2�A�2�h�/�/�/�0�0�0�0��A�f�v�d�2�A�2�h�/�/�/�0�0�0���,���Q�R�R��!1�!1�1�2�2�2�2�� ;�B� >�?�?�?��	�
�A�k�N�N�N����J�'�'�'�'�'r(c�|�|jo|}|jo|}|s|s|�r |j�|��|rw|�|j}|s|r|�d��|�|j��|�|tkrdnd��|s|r|�d��|r]|r|�d��|�|j��|�d��|r|�d��|r.|�d��|�d��dSdSdS)Nr|rr�r�r��clipr�)r>r=r:�extendrLr;r�r)rMr:rLr�r��fillModes      r&rzPSCanvas._fillAndStrokes|����'�4���"�-�v���	,�6�	,�T�	,��I���T�"�"�"��
@��#�#�~�H��<�T�<�4�#3�#3�G�#<�#<�#<��
�
�d�o�.�.�.�� � �X�}�-D�-D���&�Q�Q�Q��?�T�?�4�#3�#3�J�#?�#?�#?��
6��2��)�)�'�2�2�2��
�
�d�/�0�0�0�� � ��*�*�*��5��)�)�*�5�5�5��
,�� � ��(�(�(�� � ��+�+�+�+�+�!	,�	,�
,�
,r(c�R�|�dt||��z��dS)Nz%s translater5r6s   r&�	translatezPSCanvas.translate,s)������&��1�+�+�5�6�6�6�6�6r(c�R�|�dt||��z��dS)Nz%s scaler5r6s   r&�scalezPSCanvas.scale/s)������f�Q�q�k�k�1�2�2�2�2�2r(c�Z�|�dt||||||��z��dS)Nz[%s] concatr5)rMr�br%�dr�rxs       r&�	transformzPSCanvas.transform2s3��������!�A�a��!�)<�)<�<�=�=�=�=�=r(c�$�||c|_|_dS)z1if this is used we're probably in the wrong worldN)r4r5)rM�w�hs   r&�_drawTimeResizezPSCanvas._drawTimeResize5s��"#�Q���
�D�K�K�Kr(c��d}|�d��}|j\}}	|s|}|s|	}|j�d|�d|�d�|�d|�d�d|zg��|j�|�d|	�d|��d|�dd	�dd	�d|	�dd	�d|	�d
�
ddg��t	|d
��r|jn|j��}
|�|
��}t|��}|�	d��}
|
dkr0|�
|
��|�	d��}
|
dk�0|�
d��|�
d��dS)Nr��RGBr|r��
 translate� scalez/scanline %d 3 mul string defr�r�]z2{ currentfile scanline readhexstring pop } false 3zcolorimage �tobytes�Nrz% end of image datar�)�convertrNr:rMrtr`�tostring�_AsciiHexEncoder�readr;)rMrYrZr[r4r5�component_depth�myimage�imgwidth�	imgheight�rawimage�hex_encoded�	outstream�datalines              r&rVzPSCanvas._drawImageLevel19s������-�-��&�&��%�l���)��	��E��	��F�&	
�	����!#���B�B�B�'�"�U�U�6�6�6�*�+�h�6�	�	�	�	�	
�	���"�(�(�I�I�I���?�?�%-�X�X�q�q�q�!�!�!�i�Z�Z�Z����I�I�I�N�@��	�	�	�	�X�w�w�y�'A�'A�W�G�O�O�w�GW�Z�Z���*�*�8�4�4���[�)�)�	��>�>�"�%�%���"�n�n����X�&�&�&��n�n�R�(�(�H��"�n�n�	
���.�/�/�/�����$�$�$�$�$r(c��t��}t|��D]'}|�dt|��z���(|���S)zHelper function used by imagesz%02x)rrrlr	�getvalue)rM�input�output�chars    r&rdzPSCanvas._AsciiHexEncodewsP�������E�N�N�	2�	2�D��L�L��(�4�.�.�0�1�1�1�1���� � � r(c	��|jdkrd}d}|}n>|jdkr|�d��}d}|}n|�d��}d}d}|j\}	}
|s|	}|s|
}|j�d|�d|�d	�|�d|�d
�g��|dkr|�d��n|dkr|�d��|�d
|	|
|fz��|dkr|�d��|dkr|�d��|j�d|	�d|
�d|
�d�dddg��t
|d��r|jn|j��}|�	|��}t|��}
|
�d��}|dkr0|�|��|
�d��}|dk�0|�d��|�d��dS)z"At present we're handling only PIL�Lr�r3�1r\r�r|r�r]r^z/DeviceRGB setcolorspacez/DeviceGray setcolorspacezY
<<
/ImageType 1
/Width %d /Height %d  %% dimensions of source image
/BitsPerComponent %dz
/Decode [0 1]z6/Decode [0 1 0 1 0 1]  %% decode color values normallyz/ImageMatrix [z 0 0 z 0 r_z./DataSource currentfile /ASCIIHexDecode filterz>> % End image dictionaryrYr`rarz> % end of image datar�N)�moderbrNr:rMr;rtr`rcrdrre)rMrYrZr[r4r5�imBitsPerComponent�imNumComponentsrg�imwidth�imheightrjrkrlrms               r&rWzPSCanvas._drawImageLevel2~s����:�s�?�?�!"���O��G�G�
�Z�3�
�
��m�m�C�(�(�G��O��G�G��m�m�E�*�*�G��O�!"��#�L�����	��E��	��F��	����!#���B�B�B�'�"�U�U�6�6�6�*�,�	-�	-�	-�
�a������7�8�8�8�8�
��
!�
!����8�9�9�9�����#�H�.@�A�	B�	D�	D�	D��a������_�-�-�-��a������U�V�V�V��	����w�w�w��	�	�	�S[�S[�S[�\�L�7�#�%�	&�	&�	&�
X�w�w�y�'A�'A�W�G�O�O�w�GW�Z�Z���*�*�8�4�4���[�)�)�	��>�>�"�%�%���"�n�n����X�&�&�&��n�n�R�(�(�H��"�n�n�	
���0�1�1�1�����$�$�$�$�$r()r+r-)NNr�)r)rr�r)r�r)r�r)r3r3)r�r�)rr�r)rr3r3)rr3r3N)3�__name__�
__module__�__qualname__rPrTr\rarjrzr~r�rrHrIr�rGr�r�r�rJrFr�r�r�r�r�r�r�r�r�rr
rr	rr�r3r7rr;r=r?rJrrPrRrVrZrVrdrW�r(r&r*r*Zsy������'�'�'�'�,4�4�4�W�W�W�W�%�%�%�
3�
3�
3�?�?�?�?�,"�"�"�3�3�3�.�.�.�.�0�0�0�
1�1�1�
�a�	M�	M�	M�	M����d�d�d�������8�8�8�
!�!�!�!�T�T�T�
<�<�<�I�I�I�I�85�5�5�5�4-�-�-�-�<^�^�^�^�Y�Y�Y�Y�
)�
)�
)�
)�^�^�^�^� � � � �8#�#�#�+�+�+�)'�)'�)'�)'�V���$:�:�:�:� O�O�O�O�0�0�0�0�0�0�=�=�=�&�&�&�'�'�'�"(�"(�"(�"(�H,�,�,�,�*7�7�7�3�3�3�>�>�>�'�'�'�;%�;%�;%�;%�|!�!�!�:%�:%�:%�:%�:%�:%r(r*)�*c�p�t��}|�t|��||||���dS)z
As it says��showBoundaryN)�_PSRenderer�drawr)�drawing�canvasr�r�r�r"s      r&r�r��s6���
�
�A��F�F��w�'�'���A�L�F�Q�Q�Q�Q�Qr(c��g}|j}tdt|��d��D]}|||||dzf���|S)zo
    given a list of coordinates [x0, y0, x1, y1....]
    produce a list of points [(x0,y0), (y1,y0),....]
    rr-r3)r�ranger)rt�Prr�s    r&�_pointsFromListr��sY��
	�A�	��A�
�1�S��V�V�A�
�
����	��1�Q�4��!�A�#��-������Hr(c�p�eZdZdZd�Zddddddd	d
�Zd�Zd�Zd
�Zd�Z	d�Z
d�Zd�Zd�Z
dd�Zd�Zd�ZdS)r�z�This draws onto a EPS document.  It needs to be a class
    rather than a function, as some EPS-specific state tracking is
    needed outside of the state info in the SVG model.c���|j�d|z��|jj}t|t��r|js|j���t|��}|j�	|��|�
|i��|�|��|j���}t|t��r|js|j�
��|j�d|z��||j_|���D]/\}}||jvr!t!|j|j||���0dS)zEThis is the recursive method called for each node
        in the treez
begin node %rzend node %rN)�_canvasrTrDr��Path�
isClipPathr~r�_tracker�push�applyStateChanges�drawNodeDispatcherr7r��items�	_restores�setattr)rM�noder��deltas�rDeltas�kr�s       r&�drawNodez_PSRenderer.drawNode�s`��	
����_�T�1�2�2�2���#���4��&�&�	%�4�?�	%��L�"�"�$�$�$��t�$�$���
���6�"�"�"����v�r�*�*�*�	
����%�%�%��-�#�#�%�%���4��&�&�	(�4�?�	(��L�%�%�'�'�'�����]�4�/�0�0�0�#�����M�M�O�O�	:�	:�D�A�q��D�N�"�"����T�^�A�%6�q�9�9�9��	:�	:r(r=r?rBrCr>r@rA)r2�strokeWidth�
strokeLineCap�strokeLineJoin�	fillColorr0r1c�Z�|j|jcxkrdkrFnnC|j�|j|j|j|jz|j|jz��dS|j�|j|j|j|jz|j|jz|j|j��dS)Nr)	rrr�r�r�r�r4r5r)rMr�s  r&�drawRectz_PSRenderer.drawRect�s����7�d�g�"�"�"�"��"�"�"�"�"��L����F�D�F��F�4�:�%�t�v�d�k�'9�
;�
;�
;�
;�
;�
�L�"�"��F�D�F��F�4�:�%�t�v�d�k�'9�4�7�D�G�
�
�
�
�
r(c��|jjr3|j�|j|j|j|j��dSdSr�)r�r=r�rZr[r�r�)rMr�s  r&�drawLinez_PSRenderer.drawLine
sF���<�$�	B��L���d�g�t�w�����A�A�A�A�A�	B�	Br(c�\�|j�|j|j|j��dSr�)r�rrrr)rMrs  r&�
drawCirclez_PSRenderer.drawCircles(������V�Y��	�6�8�<�<�<�<�<r(c	��|���\}}}|dks|�f|dks|�^|jsW|j}|j}|j}|j}|j}	||z
}
|j�||	z
||z
||	z||z||
d���dS|�	��}t|t��r|�|��dS|�
|��dS)Nrr3)r)�
_xtraRadii�annular�startangledegrees�endangledegrees�centerx�centery�radiusr�r	�	asPolygonr�r��drawPath�drawPolygon)rM�wedge�yradius�radius1�yradius1r�r�r�r�r�rr�s            r&�	drawWedgez_PSRenderer.drawWedges��%*�%5�%5�%7�%7�"���(��Q�J�J�'�/��!���x�?O�Y^�Yf�?O� %� 7��#�3�O��]�G��m�G��\�F�$�'8�8�F��L� � �������'�&�.�RY�Za�Ra�!�6�a�
!�
9�
9�
9�
9�
9����!�!�A��!�D�!�!�
$��
�
�a� � � � � �� � ��#�#�#�#�#r(c�z�|jjr.|j�t|j����dSdSr�)r�r=r?r��points�rMr,s  r&�drawPolyLinez_PSRenderer.drawPolyLine#s?���<�$�	=��L�!�!�/�!�(�";�";�<�<�<�<�<�	=�	=r(c��|j|jz
}|j|jz}|j|jz
}|j|jz}|j�||||��dSr�)rrrrr�r
)rMr
rZr�r[r�s      r&�drawEllipsez_PSRenderer.drawEllipse's\��
�Z�'�*�
$��
�Z�'�*�
$��
�Z�'�*�
$��
�Z�'�*�
$������R��2�b�)�)�)�)�)r(c�b�|j�t|j��d���dS)Nr3)r�)r�r�r�r�r�s  r&r�z_PSRenderer.drawPolygon/s-������_�Q�X�6�6�q��A�A�A�A�Ar(c	���t|dd��}|jjs|r�|j���}|d|j|j|jf\}}}}|dvrz|d|d}	}t|||	��}
|dkr||
z}nM|dkr	||
d	zz}n>|d
kr|t|||
||	d���z}ntd
t|��z���|j�||||���dSdS)Nr�r�
textAnchor)r-�	inheritedr0r1r�r�r-r��winansi)�encodingzbad value for text_anchor r�)
�getattrr�r>r��getStater�r�r�rr�rXr�r�)rM�	stringObjr��Sr�r�r�r�r�r1r�s           r&r�z_PSRenderer.drawString2s6�� ��+;�A�>�>���<�"�	M�n�	M��
�&�&�(�(�A�&'��o�y�{�9�;�y�~�&]�#�K��A�t��"7�7�7�!"�:���*�
�h��%�d�D��:�:����%�%���L�A�A� �(�*�*�����N�A�A� �)�+�+���{�4���X�W`�a�a�a�a�A�A�$�%A�#�k�BR�BR�%R�S�S�S��L�#�#�A�a��^�#�L�L�L�L�L�	M�	Mr(Nc�J�����
�ddlm�|j��j�j�j�jf�
t�dd��}��
�fd�}��t�d�j����j	du}�j
du}�j}��fd�}��fd�}	�fd	�}
|d
kr|��||||���dS|dkr>|r|d
���||||���dS|s|r|��||d|���dSdS|r|d
���r|��dS|s|r|��||d|���dSdS)Nr)�_renderPath�	autocloserc������fi|��Sr�r~)�kwdsr��	drawFuncs�paths ���r&�rPz _PSRenderer.drawPath.<locals>.rPIs����;�t�Y�7�7�$�7�7�7r(rNc�$���jgfd�i|��S)NrN�r)r�r%rNs ��r&�<lambda>z&_PSRenderer.drawPath.<locals>.<lambda>Ps"���-�Q�-�b�L�L�8�L�t�L�L�r(c�4����gd����S)Nr)r�rNr�)r%rNs��r&r�z&_PSRenderer.drawPath.<locals>.<lambda>Qs���A�,�,�R��H�,�M�M�r(c�2����gd���S)Nr)r�r�)r%s�r&r�z&_PSRenderer.drawPath.<locals>.<lambda>Rs���a�.�.�r��.�:�:�r(�svg)r�r�rL�pdfT)�
forceClose)�	countOnly)�reportlab.graphics.shapesr�r�r7rr;r=r�rLr>r=r�)rMr�rNr�r�r�r�rL�fas�pathFill�
pathStroker�r%r�s ``        @@@r&r�z_PSRenderer.drawPathDs��������9�9�9�9�9�9��L���X�q�x���A�K�@�	��D��R�0�0�	�	8�	8�	8�	8�	8�	8�	8����t�J�q�{�;�;�H��|�4�'����t�+�����L�L�L�L�L��M�M�M�M�M��:�:�:�:�
��e����B�D�D�D��C�v�4�T�2�2�2�2�2�2�
��
�
��
4���d�#�#�#�#���6�t��6�6�6�6�6�6��
4�4�
4��������6�q�d�3�3�3�3�3�3�
4�
4��
4���T�*�*�*�
4���������
4�4�
4��������6�q�d�3�3�3�3�3�3�
4�
4r(c
�$�|���D�]�\}}|dkrD|j�|d|d|d|d|d|d���P|dkr|j�|���q|d	kr|j�|����|d
kr|j�|����|dkr|j�|����|dkr�|r�t|ttf��rFt|��dkr3t|dttf��r|d}|d}nd}|j�||����]|j�����x|d
kr|j�|�����|dvr[|�
d|jj��}|�
d|jj��}|j�||�����dS)z\This takes a set of states, and outputs the operators
        needed to set those propertiesrVrr3r-r�r�r�r2r�r�r��strokeDashArrayr�)r1r0r0r1N)r�r�rVrGrJrHrIr�r�r�rr�r��getr@rArF)rM�delta�newState�key�valuer��fontname�fontsizes        r&r�z_PSRenderer.applyStateChangesds,�� �+�+�-�-�*	9�*	9�J�C���k�!�!���&�&�u�Q�x��q��5��8�!&�q��5��8�U�1�X�?�?�?�?��
�%�%���+�+�E�2�2�2�2��
�%�%���)�)�%�0�0�0�0���'�'���'�'��.�.�.�.��(�(�(���(�(��/�/�/�/��)�)�)��+�!�%��e��5�5�"�#�e�*�*�a�-�-�J�W\�]^�W_�af�gk�`l�Lm�Lm�-� %�a��� %�a���� !���L�(�(��u�5�5�5�5��L�(�(�*�*�*�*���#�#���)�)�%�0�0�0�0�
�0�0�0�!�9�9�Z���1C�D�D�� �9�9�Z���1G�H�H����$�$�X�x�8�8�8��U*	9�*	9r(c��ddlm}||j��}|j�|j|j|j|j|j	��dS)Nr)�ImageReader)
rwr�r�r�r\�_imager�r�r4r5)rMrYr��ims    r&r\z_PSRenderer.drawImage�sS��3�3�3�3�3�3�
�[���
$�
$������r�y�������U�\�R�R�R�R�Rr(r�)r{r|r}�__doc__r�r�r�r�r�r�r�r�r�r�r�r�r\r~r(r&r�r��s������:�:�:�:�:�< .�\�Zd�!,��QX�&�(�(�I����B�B�B�=�=�=�$�$�$�$=�=�=�*�*�*�B�B�B�M�M�M�$4�4�4�4�@-9�-9�-9�^S�S�S�S�Sr(r�c��t|��}t|j|jf��}t	||dd|���|�|��dS)Nrr�)rr*r4r5r�rz)rU�fnr��kwdr%s     r&�
drawToFiler��sQ���A���A��!�'�!�(�#�$�$�A���A�q�!�,�/�/�/�/��F�F�2�J�J�J�J�Jr(c�j�t��}t|||���|���S)z=Returns a PS as a string in memory, without touching the diskr�)rr�ro)rUr�r!s   r&�drawToStringr��s.���	�	�A��q�!�,�/�/�/�/��:�:�<�<�r(�epsoutFc�p�ddlm}ddlm}|jdd�}gd�|jdd�<	ddl}|j�|��s|�|��g}t|��D]R}|dd�dkrBt||��}|��}	t|dd��}
|�|	|
f���Sd}|D]Q\}}
||jzd	|zz}
t||
��|s|d
krtdt|
��z��|dz
}�R	||jdd�<dS#||jdd�<wxYw)
Nr)�
testshapes)�verbose)zTimes-Romanz
Times-BoldzTimes-ItaliczTimes-BoldItalic�Courierr��
getDrawingr�rzrenderPS_%d.epsr-zrenderPS test saved %sr3)�reportlab.graphicsr��reportlab.rl_configr��_FONTS�osr��isdir�mkdir�dirr�r�sepr��printr�)�outDir�shoutr�r��OLDFONTSr��drawings�funcname�funcr��	docstringr�rU�filenames              r&�testr�s���-�-�-�-�-�-�+�+�+�+�+�+�� ����#�H�d�d�d�J��a�a�a��(��	�	�	��w�}�}�V�$�$�	��H�H�V�������J���	6�	6�H���"��~��-�-��z�(�3�3���$�&�&��#�D��2�6�6�	�����)� 4�5�5�5��
��&�	�	�N�Q�	�����):�1�)<�<�H��q��"�"�"��T���	�	�5�)A�E�(�O�O�)S�#T�#T�#T�
��F�A�A�		� (�
��!�!�!�����x�
��!�!�!��'�'�'�'s�C-D'�'D5�__main__r3T)r�)r�F)0�__version__r�r�iorr�reportlab.pdfbase.pdfmetricsrrrrwrr	r
rr�reportlab.lib.rl_accelr
�reportlab.graphics.renderbaserrrr�r�	reportlabr�reportlab.pdfgen.canvasrrr�r%�ord�chrr'rgr*r�r�r�r�r�r�rr{�sysr�argv�outdirr~r(r&�<module>rs���
��2������ � � � � � � � �I�I�I�I�I�I�I�I�I�I�P�P�P�P�P�P�P�P�P�P�P�P�P�P�)�)�)�)�)�)�V�V�V�V�V�V�V�V�V�V�4�4�4�4�4�4�������1�1�1�1�1�1���	��s��� � �A���t�t�q�#�v�v� �1���A���	
�s�s�4�y�y���S���#�#�c�(�(�+�	+�	+��c�c�!�f�f���A�����Q����A������� -��^^	%�^	%�^	%�^	%�^	%�^	%�^	%�^	%�B1�(�'�'�'����1G�R�R�R�R�
	
�	
�	
�AS�AS�AS�AS�AS�(�AS�AS�AS�F#,�"8�����"+�!7�����(�(�(�(�:�Z����J�J�J�
�s�3�8�}�}�Q�����!�������D��d�������
�r(

Youez - 2016 - github.com/yon3zu
LinuXploit