
    Rf/>                       d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZddlm	Z	m
Z
 ddlmZ ddlmZ  ej        d          Z ej        d          Zdadad	 ZddZ G d d          Zd Z G d de
j
                  ZddZ e	j        ej        ee            e	j        ej        e            e	j        ej        ddg            e	j        ej        d           dS )    )annotationsN   )Image	ImageFile)i32le)	deprecatez^%%([^:]*):[ \t]*(.*)[ \t]*$z^%[%!\w]([^:]*)[ \t]*$c                 6   t           t          j                            d          r3t          $dd l} dD ]}|                     |          |a ndat          a n8	 t          j        ddgt          j	                   da n# t          $ r da Y nw xY wt           duS )Nwinr   )gswin32cgswin64cgsFr   z	--version)stdout)	gs_binarysysplatform
startswithgs_windows_binaryshutilwhich
subprocess
check_callDEVNULLOSError)r   binarys     D/var/www/html/env/lib/python3.11/site-packages/PIL/EpsImagePlugin.pyhas_ghostscriptr   -   s    <""5)) 	" (< . .F||F++7,2) 8 ).%)II"%t[&9*BTUUUU 		 " " "!			"E!!s   $B   BBFc                   t                      sd}t          |          | d         \  }} }}|\  }	}
t          |          pd}|d         |z  }|d         |z  }d|z  |
d         |
d         z
  z  }d|z  |
d         |
d         z
  z  }t          j                    \  }}t          j        |           d}t          |d          r,t
          j        	                    |j
                  r|j
        }nt          j                    \  }}t          j        |           |}t          |d	          5 }|                    dt          j                   |                                }|                    d           |}|dk    rS|                    t#          |d
                    }|sn-|t%          |          z  }|                    |           |dk    Sddd           n# 1 swxY w Y   |rdnd}t(          dd|dd|dd|dd|ddddd| d| d|
d           d|
d           dd|ddg}	 d}t*          j                            d          r-t1          j                    }|xj        t0          j        z  c_        t1          j        ||           t;          j        |          }|                                 	 t          j        |           |rt          j        |           nQ# t          $ r Y nEw xY w# 	 t          j        |           |rt          j        |           w w # t          $ r Y w w xY wxY w|j         !                                }|                                 |S )z!Render an image using Ghostscriptz%Unable to locate Ghostscript on pathsr   r   g      R@      Nnamewbi  pngalphappmrawz-qz-gdxz-rfz-dBATCHz	-dNOPAUSEz-dSAFERz	-sDEVICE=z-sOutputFile=z-c z
 translatez-fshowpager
   )startupinfo)"r   r   inttempfilemkstemposclosehasattrpathexistsr    openseekioSEEK_ENDtellreadminlenwriter   r   r   r   r   STARTUPINFOdwFlagsSTARTF_USESHOWWINDOWr   r   loadunlinkimcopy)tilesizefpscaletransparencymsgdecoderoffsetdatalengthbboxwidthheightres_xres_yout_fdoutfileinfile_tempinfilein_fdr&   fsize
lengthfilesdevicecommandr)   out_imr@   s                                r   Ghostscriptr\   D   s     5cll #'q'GT64LFD JJO!EGeOE!Wu_F5LDGd1g-.E6MT!WtAw./E&((OFGHVKr6 rw~~bg66 %-//{

 +t$$ 	GGAr{###GGIIE GGAJJJJq..GGC
J7788 c!ff$



 q..	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 (5ZZXF 	!U!!!v!!! U   u   F!!!G8**tAwh***#G*<""5)) 	C$022K:#BBg;????G$$	Ig '	+&&& 	 	 	D			Ig '	+&&&&' 	 	 	D	 
		B
LLNNNIsV   +B%GG #G .BK6 ;*K& &
K32K36L48*L$"L4$
L1.L40L11L4c                  2    e Zd ZdZd Zej        fdZd ZdS )PSFilez
    Wrapper for bytesio object that treats either CR or LF as end of line.
    This class is no longer used internally, but kept for backwards compatibility.
    c                F    t          ddd           || _        d | _        d S )Nr^      zSIf you need the functionality of this class you will need to implement it yourself.)action)r   rD   char)selfrD   s     r   __init__zPSFile.__init__   s8    6	
 	
 	
 	
 			    c                J    d | _         | j                            ||           d S N)rb   rD   r3   )rc   rI   whences      r   r3   zPSFile.seek   s%    	VV$$$$$re   c                   | j         pdg}d | _         | j                            d          }|dvrQt          |          rB|                    |           | j                            d          }|dvrt          |          B| j                            d          | _         | j         dv rd | _         d                    |                              d          S )Nre   r      
latin-1)rb   rD   r7   r9   appendjoindecode)rc   rX   cs      r   readlinezPSFile.readline   s    Y#	GLLOOSVVHHQKKKQA SVV GLLOO	9DIxx{{!!),,,re   N)	__name__
__module____qualname____doc__rd   r4   SEEK_SETr3   rp    re   r   r^   r^      sW         
   #%+ % % % %- - - - -re   r^   c                j    | d d         dk    p%t          |           dk    ot          |           dk    S )N      %!PS   P )r9   i32)prefixs    r   _acceptr}      s5    "1": TS[[A%5%S#f++:STre   c                  B    e Zd ZdZdZdZdddddZd	 Zd
 ZddZ	d Z
dS )EpsImageFilez.EPS File Parser for the Python Imaging LibraryEPSzEncapsulated PostscriptLLABRGBCMYK)r   r   r   rx   c                                           j                  \   j                                       d _        d  _        t          d          }t          |          }d}d}dd fd} fd}	  j                            d          }|d	k    r	|dk    rnn]|d
v r|dk    r5nQ|dk    r:|d         t          d          k    rd}t          |          |r |             d}d}|d         ||<   |dz  }|r|d         t          d          k    s|d d         dk    r |             d}t          |d |         d          }	 ||	          s{t                              |	          }
|
rA|
                    d          }|d d         dk    r|dd           j        d<   nd j        |<   n|	d         dk    rnd}t          |          n|d d         dk    r{|d|                             d d          }d |d d         D             \  }}}}|dk    rd _        n+|dk    r$	  j        |          _        n# t$          $ r Y n[w xY wnV||f _        d S r5r3|d d         dk    rn8t          |d |         d          }	 ||	           n|d d         dk    rdd}/ |              j        sd}t          |          d S )Nr      r   TFc                 p    dj         vrd} t          |           dj         vrd} t          |           d S )NPS-Adobez'EPS header missing "%!PS-Adobe" commentBoundingBoxz*EPS header missing "%%BoundingBox" comment)infoSyntaxError)rG   rc   s    r   check_required_header_commentsz:EpsImageFile._open.<locals>.check_required_header_comments   sK    **?!#&&&DI--B!#&&& .-re   c                   	 t                               |           }n)# t          j        $ r}d}t	          |          |d }~ww xY w|r|                    dd          \  }}|
j        |<   |dk    r|dk    rd	nx
j        rro	rm	 d |                                 D             }|d         |d         z
  |d	         |d         z
  f
_        d
d
j        z   |ffg
_	        n# t          $ r Y nw xY wdS d S )Nnot an EPS filer   r   r   z(atend)Tc                F    g | ]}t          t          |                    S rv   )r*   float).0is     r   
<listcomp>z=EpsImageFile._open.<locals>._read_comment.<locals>.<listcomp>  s$    "D"D"DQ3uQxx=="D"D"Dre   r   r   epsr   r   )splitmatchreerrorr   groupr   _sizerC   rB   	Exception)rX   merG   kvboxrK   rI   reading_trailer_commentsrc   trailer_reacheds          r   _read_commentz)EpsImageFile._open.<locals>._read_comment   sJ   .KKNN8 . . .'!#&&A-.  wwq!}}1 	!%%I~~3700!Z !'!,D!
! #E"D!''))"D"D"DC),Q#a&#a&3q6/)IDJ!&(:FVSM R)DII  ) ! ! ! D!t) s%    A?AAC# #
C0/C0r   re   rj   %r      s   %%EndCommentsrk      r   	    zbad EPS headerr`   s   %ImageData:   c              3  4   K   | ]}t          |          V  d S rg   )r*   )r   values     r   	<genexpr>z%EpsImageFile._open.<locals>.<genexpr>W  s9       5 5#(CJJ5 5 5 5 5 5re   rx   1   s   %%EOFs	   %%Trailerz!cannot determine EPS bounding box)_find_offsetrD   r3   _moder   	bytearray
memoryviewr7   ordr   strfieldr   r   r   r   r   mode_map
ValueError)rc   byte_arrbytes_mv
bytes_readreading_header_commentsr   r   byterG   rX   r   r   image_data_valuescolumnsrows	bit_depthmode_idrK   rI   r   r   s   `                @@@@r   _openzEpsImageFile._open   s   ,,TW55 	V

S>>h''
"&#( 	' 	' 	' 	' 	'	 	 	 	 	 	 	 	 	<f	7<<??Ds{{?? # ?? #
 $$  {c#hh../)#...2 <::<<<6;3 &'
'+Aw$a
& E' A;#c((**hssm?O.O.O22444.3+*-y99$}Q'' +AA +GGAJJRaR5J..45abbEDIj11+-DIaLL1 .%cll*+ #2#.00 %-R
]$;$A$A$$J$J!5 5,=bqb,A5 5 51y' >>!$DJJ!^^%)]7%;

%    $d]
  '%= '
 BQB<8++*-y99a    "1"--"&JMf	P 	'&(((z 	5C#,,	 	s   5I 
IIc                `   |                     d          }|dk    r7|                    dt          j                   |                                }d}nYt          |          dk    r5|                     d          }t          |          }t          |d          }nd}t          |          ||fS )Nrx   ry   r   rz   r   r   )r7   r3   r4   r5   r6   r{   r   )rc   rD   rX   rK   rI   rG   s         r   r   zEpsImageFile._find_offset{  s    GGAJJ<<GGAr{###WWYYFFFVVz!! 

AVVFAYYFF#Cc"""v~re   r   Fc                    | j         rPt          | j         | j        | j        ||          | _        | j        j        | _        | j        j        | _        g | _         t          j        	                    |           S rg   )
rB   r\   rC   rD   r@   moder   r   r   r>   )rc   rE   rF   s      r   r>   zEpsImageFile.load  s\    9 	!$)TYUUDGDJDJDI{%%%re   c                    d S rg   rv   )rc   argskwargss      r   	load_seekzEpsImageFile.load_seek  s	     	re   Nr   F)rq   rr   rs   rt   formatformat_descriptionr   r   r   r>   r   rv   re   r   r   r      s{        88F25Uv66Hb b bH  .& & & &    re   r   c                J   |                                   | j        dk    rd}n-| j        dk    rd}n| j        dk    rd}nd}t          |          |r|                    d           |                    d	           |                    d
| j        z             |                    d           |                    d           |                    d           |                    d| j        z             |                    d|z             |                    d           |                    d           |                    d| j        d         |d         z  z             |                    d| j        z             |                    d| j        z             |                    d| j        d         | j        d         | j        d         fz             |                    d           |                    |d         dz              t          |d          r|                                 t          j        | |dd| j        z   ddfg           |                    d           |                    d            t          |d          r|                                 dS dS )!z*EPS Writer for the Python Imaging Library.r   )r   r   s   imager   )r   r   s   false 3 colorimager   )r   rx   s   false 4 colorimagezimage mode is not supporteds   %!PS-Adobe-3.0 EPSF-3.0
s   %%Creator: PIL 0.1 EpsEncode
s   %%%%BoundingBox: 0 0 %d %d
s   %%Pages: 1
s   %%EndComments
s   %%Page: 1 1
s   %%ImageData: %d %d s   %d %d 0 1 1 "%s"
s   gsave
s   10 dict begin
s   /buf %d string def
r   r   s   %d %d scale
s   %d %d 8
s   [%d 0 0 -%d 0 %d]
s+   { currentfile buf readhexstring pop } bind
r      
flushr   r   Ns   
%%%%EndBinary
s   grestore end
)	r>   r   r   r:   rC   r/   r   r   _save)r@   rD   filenamer   operatorrG   s         r   r   r     s    GGIII 
w#~~#	E		0	F		0+oo
 
3
-...
2333
027:;;;
!!!
#$$$
!"""
'"'1222
&1222 HHZHH   HH$
Xa[(@ABBBHH'(((HH\BG#$$$HH#rwqz271:rwqz&JJKKKHH<===HHXa[5 !!!r7 



OBeVbg%5q$?@AAAHH!"""HHr7 





 re   z.psz.epszapplication/postscriptr   )r   ) 
__future__r   r4   r-   r   r   r   r+   r   r   r   _binaryr   r{   
_deprecater   compiler   r   r   r   r   r\   r^   r}   r   r   register_openr   register_saveregister_extensionsregister_mimerv   re   r   <module>r      s  , # " " " " " 				 				 				     



          ! ! ! ! ! ! ! ! ! ! ! !
 	
233
,--	 " " ".Z Z Z Zz"- "- "- "- "- "- "- "-JU U UO O O O O9& O O Oj. . . .h  L'w ? ? ?  L' / / /  ,-v ? ? ?  L')A B B B B Bre   