§
    aÒ³g	'  ã            	      óR  — 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mZ d dl	m
Z
 ddlmZ g Zd6d7d„Zd8d9d„Z G d„ d¦  «        Z G d„ de¦  «        Zej        dk    r ee¦  «          G d„ de¦  «        Zej        dk    r ee¦  «          G d„ de¦  «        Z G d „ d!e¦  «        Z G d"„ d#e¦  «        Z G d$„ d%e¦  «        Z G d&„ d'e¦  «        Z G d(„ d)e¦  «        Zej        d*vr‡ ej        d+¦  «        r ee¦  «          ej        d,¦  «        r ee¦  «          ej        d-¦  «        r ee¦  «          ej        d.¦  «        r ee¦  «          ej        d/¦  «        r ee¦  «          G d0„ d1e¦  «        Z	 d d2lmZ  ee¦  «         n# e$ r Y nw xY we d3k    rƒ e!ej"        ¦  «        d4k     r e#d5¦  «          ej$        ¦   «           ej%        ej"        d         ¦  «        5 Z& e# ee&gej"        d4d…         ¢R Ž ¦  «         ddd¦  «         dS # 1 swxY w Y   dS dS ):é    )ÚannotationsN©Úquote)ÚAnyé   )ÚImageÚviewerútype[Viewer] | ViewerÚorderÚintÚreturnÚNonec                óè   — t          | t          ¦  «        rt          | t          ¦  «        r
 | ¦   «         } |dk    rt                               | ¦  «         dS t                               d| ¦  «         dS )a$  
    The :py:func:`register` function is used to register additional viewers::

        from PIL import ImageShow
        ImageShow.register(MyViewer())  # MyViewer will be used as a last resort
        ImageShow.register(MySecondViewer(), 0)  # MySecondViewer will be prioritised
        ImageShow.register(ImageShow.XVViewer(), 0)  # XVViewer will be prioritised

    :param viewer: The viewer to be registered.
    :param order:
        Zero or a negative integer to prepend this viewer to the list,
        a positive integer to append it.
    r   N)Ú
isinstanceÚtypeÚ
issubclassÚViewerÚ_viewersÚappendÚinsert)r	   r   s     úK/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/PIL/ImageShow.pyÚregisterr      sm   € õ �&�$ÑÔð ¥J¨vµvÑ$>Ô$>ð Ø�‘”ˆØˆq‚y€yÝ�Š˜ÑÔÐÐÐå�Š˜˜6Ñ"Ô"Ð"Ð"Ð"ó    ÚimageúImage.ImageÚtitleú
str | NoneÚoptionsr   Úboolc                ó@   — t           D ]} |j        | fd|i|¤Žr dS ŒdS )a  
    Display a given image.

    :param image: An image object.
    :param title: Optional title. Not all viewers can display the title.
    :param \**options: Additional viewer options.
    :returns: ``True`` if a suitable viewer was found, ``False`` otherwise.
    r   TF)r   Úshow)r   r   r   r	   s       r   r!   r!   3   sE   € õ ð ð ˆØˆ6Œ;�uÐ5Ð5 EÐ5¨WÐ5Ð5ð 	Ø�4�4ð	àˆ5r   c                  ód   — e Zd ZU dZdd„Zd	Zd
ed<   	 i Zded<   	 dd„Zdd„Z	dd„Z
dd„Zdd„Zd	S )r   zBase class for viewers.r   r   r   r   r   r   c                óÊ   — |j         dv sM| j        dk    r	|j         dv s9t          j        |j         ¦  «        }|j         |k    r|                     |¦  «        } | j        |fi |¤ŽS )zƒ
        The main function for displaying an image.
        Converts the given image to the target format and displays it.
        )Ú1ÚRGBAÚPNG)zI;16ÚLA)ÚmodeÚformatr   ÚgetmodebaseÚconvertÚ
show_image)Úselfr   r   Úbases       r   r!   zViewer.showG   st   € ð ŒJ˜-Ð'Ð'Ø”˜uÒ$Ð$¨¬°~Ð)EÐ)EåÔ$ U¤ZÑ0Ô0ˆDØŒz˜TÒ!Ð!ØŸš dÑ+Ô+�àˆtŒ˜uÐ0Ð0¨Ð0Ð0Ð0r   Nr   r)   zdict[str, Any]c                ó   — | j         S )z3Return format name, or ``None`` to save as PGM/PPM.)r)   ©r-   r   s     r   Ú
get_formatzViewer.get_format^   s
   € àŒ{Ðr   ÚfileÚstrc                ó$   — d}t          |¦  «        ‚)zj
        Returns the command used to display the file.
        Not implemented in the base class.
        zunavailable in base viewer)ÚNotImplementedError)r-   r2   r   Úmsgs       r   Úget_commandzViewer.get_commandb   s   € ð
 +ˆÝ! #Ñ&Ô&Ð&r   c                óP   —  |j         dd|                      |¦  «        i| j        ¤ŽS )z+Save to temporary file and return filename.r)   © )Ú_dumpr1   r   r0   s     r   Ú
save_imagezViewer.save_imagej   s-   € àˆuŒ{ÐIÐI $§/¢/°%Ñ"8Ô"8ÐI¸D¼LÐIÐIÐIr   c                óD   —  | j         |                      |¦  «        fi |¤ŽS )zDisplay the given image.)Ú	show_filer;   ©r-   r   r   s      r   r,   zViewer.show_imagen   s(   € àˆtŒ~˜dŸošo¨eÑ4Ô4Ð@Ð@¸Ð@Ð@Ð@r   Úpathc                ó’   — t           j                             |¦  «        st          ‚t          j         | j        |fi |¤Ž¦  «         dS )ú%
        Display given file.
        r   )Úosr?   ÚexistsÚFileNotFoundErrorÚsystemr7   ©r-   r?   r   s      r   r=   zViewer.show_filer   sK   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#Ý
Œ	Ð"�$Ô" 4Ð3Ð3¨7Ð3Ð3Ñ4Ô4Ð4Øˆqr   ©r   r   r   r   r   r   )r   r   r   r   ©r2   r3   r   r   r   r3   )r   r   r   r3   ©r?   r3   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r)   Ú__annotations__r   r1   r7   r;   r,   r=   r9   r   r   r   r   B   sÆ   € € € € € € Ø!Ð!ð1ð 1ð 1ð 1ð$ €FÐÐÐÑØ/Ø €GÐ Ð Ð Ñ Ø7ðð ð ð ð'ð 'ð 'ð 'ðJð Jð Jð JðAð Að Að Aðð ð ð ð ð r   r   c                  ó0   — e Zd ZdZdZdddœZdd„Zdd„ZdS )ÚWindowsViewerzNThe default viewer on Windows is the default system application for PNG files.r&   r   T©Úcompress_levelÚsave_allr2   r3   r   r   r   c                ó   — d|› d|› d�S )Nzstart "Pillow" /WAIT "z)" && ping -n 4 127.0.0.1 >NUL && del /f "ú"r9   ©r-   r2   r   s      r   r7   zWindowsViewer.get_command…   s*   € ð" Tð "ð "àð"ð "ð "ð	
r   r?   r   c                ó¾   — t           j                             |¦  «        st          ‚t	          j         | j        |fi |¤Ždt          t          d¦  «        ¬¦  «         dS )rA   TÚCREATE_NO_WINDOW)ÚshellÚcreationflagsr   )rB   r?   rC   rD   Ú
subprocessÚPopenr7   ÚgetattrrF   s      r   r=   zWindowsViewer.show_fileŒ   sj   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ÝÔØˆDÔ˜TÐ-Ð- WÐ-Ð-ØÝ!¥*Ð.@ÑAÔAð	
ñ 	
ô 	
ð 	
ð
 ˆqr   NrH   rI   ©rJ   rK   rL   rM   r)   r   r7   r=   r9   r   r   rP   rP      sT   € € € € € ØXÐXà€FØ!"°Ð5Ð5€Gð
ð 
ð 
ð 
ðð ð ð ð ð r   rP   Úwin32c                  ó0   — e Zd ZdZdZdddœZdd„Zdd„ZdS )Ú	MacViewerz2The default viewer on macOS using ``Preview.app``.r&   r   TrQ   r2   r3   r   r   r   c                óV   — d}d|› dt          |¦  «        › dt          |¦  «        › d�}|S )Nzopen -a Preview.appú(ú z; sleep 20; rm -f z)&r   ©r-   r2   r   Úcommands       r   r7   zMacViewer.get_command¤   s:   € ð (ˆØN�gÐNÐN¥ d¡¤ÐNÐN½uÀT¹{¼{ÐNÐNÐNˆØˆr   r?   r   c                óö   — t           j                             |¦  «        st          ‚t	          j        ddd|g¦  «         t          j        pt          j	        d¦  «        }|rt	          j
        |dd|g¦  «         dS )rA   Úopenz-azPreview.appÚpython3z-cz<import os, sys, time; time.sleep(20); os.remove(sys.argv[1])r   )rB   r?   rC   rD   r[   ÚcallÚsysÚ
executableÚshutilÚwhichr\   )r-   r?   r   rl   s       r   r=   zMacViewer.show_file«   s„   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ÝŒ˜  }°dÐ;Ñ<Ô<Ð<Ý”^Ð>¥v¤|°IÑ'>Ô'>ˆ
Øð 	ÝÔàØØRØð	ñô ð ð ˆqr   NrH   rI   r^   r9   r   r   ra   ra   ž   sT   € € € € € Ø<Ð<à€FØ!"°Ð5Ð5€Gðð ð ð ðð ð ð ð ð r   ra   Údarwinc                  óF   — e Zd ZdZdddœZej        dd„¦   «         Zdd„ZdS )Ú
UnixViewerr&   r   TrQ   r2   r3   r   r   r   útuple[str, str]c                ó   — d S ©Nr9   rV   s      r   Úget_command_exzUnixViewer.get_command_exÇ   s   € àˆr   c                óR   —  | j         |fi |¤Žd         }|› dt          |¦  «        › �S )Nr   rd   )ru   r   re   s       r   r7   zUnixViewer.get_commandË   s;   € Ø%�$Ô% dÐ6Ð6¨gÐ6Ð6°qÔ9ˆØÐ)Ð)�E $™KœKÐ)Ð)Ð)r   N©r2   r3   r   r   r   rr   rH   )	rJ   rK   rL   r)   r   ÚabcÚabstractmethodru   r7   r9   r   r   rq   rq   Ã   s\   € € € € € Ø€FØ!"°Ð5Ð5€GàÔðð ð ñ Ôðð*ð *ð *ð *ð *ð *r   rq   c                  ó"   — e Zd ZdZdd„Zdd„ZdS )Ú	XDGViewerz3
    The freedesktop.org ``xdg-open`` command.
    r2   r3   r   r   r   rr   c                ó   — dx}}||fS )Núxdg-openr9   )r-   r2   r   rf   rl   s        r   ru   zXDGViewer.get_command_exÕ   s   € Ø)Ð)ˆ�*Ø˜
Ð"Ð"r   r?   r   c                ó~   — t           j                             |¦  «        st          ‚t	          j        d|g¦  «         dS )rA   r}   r   ©rB   r?   rC   rD   r[   r\   rF   s      r   r=   zXDGViewer.show_fileÙ   s;   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ÝÔ˜* dÐ+Ñ,Ô,Ð,Øˆqr   Nrw   rI   ©rJ   rK   rL   rM   ru   r=   r9   r   r   r{   r{   Ð   sF   € € € € € ðð ð#ð #ð #ð #ðð ð ð ð ð r   r{   c                  ó&   — e Zd ZdZ	 ddd„Zdd„ZdS )ÚDisplayViewerz`
    The ImageMagick ``display`` command.
    This viewer supports the ``title`` parameter.
    Nr2   r3   r   r   r   r   r   rr   c                ó@   — dx}}|r|dt          |¦  «        › �z  }||fS )NÚdisplayz -title r   ©r-   r2   r   r   rf   rl   s         r   ru   zDisplayViewer.get_command_exé   s:   € ð  )Ð(ˆ�*Øð 	1ØÐ0¥%¨¡,¤,Ð0Ð0Ñ0ˆGØ˜
Ð"Ð"r   r?   r   c                óæ   — t           j                             |¦  «        st          ‚dg}|                     d¦  «        }|r|d|gz  }|                     |¦  «         t          j        |¦  «         dS )rA   r„   r   z-titler   ©rB   r?   rC   rD   Úgetr   r[   r\   ©r-   r?   r   Úargsr   s        r   r=   zDisplayViewer.show_fileñ   sw   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#Øˆ{ˆØ—’˜GÑ$Ô$ˆØð 	&Ø�X˜uÐ%Ñ%ˆDØ�Š�DÑÔÐåÔ˜ÑÔÐØˆqr   rt   ©r2   r3   r   r   r   r   r   rr   rI   r€   r9   r   r   r‚   r‚   ã   sP   € € € € € ðð ð .2ð#ð #ð #ð #ð #ðð ð ð ð ð r   r‚   c                  ó"   — e Zd ZdZdd„Zdd„ZdS )ÚGmDisplayViewerz*The GraphicsMagick ``gm display`` command.r2   r3   r   r   r   rr   c                ó   — d}d}||fS )NÚgmz
gm displayr9   ©r-   r2   r   rl   rf   s        r   ru   zGmDisplayViewer.get_command_ex  s   € Øˆ
ØˆØ˜
Ð"Ð"r   r?   r   c                ó€   — t           j                             |¦  «        st          ‚t	          j        dd|g¦  «         dS )rA   r�   r„   r   r   rF   s      r   r=   zGmDisplayViewer.show_file	  s=   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ÝÔ˜$ 	¨4Ð0Ñ1Ô1Ð1Øˆqr   Nrw   rI   r€   r9   r   r   r�   r�     sB   € € € € € Ø4Ð4ð#ð #ð #ð #ð
ð ð ð ð ð r   r�   c                  ó"   — e Zd ZdZdd„Zdd„ZdS )Ú	EogViewerz'The GNOME Image Viewer ``eog`` command.r2   r3   r   r   r   rr   c                ó   — d}d}||fS )NÚeogzeog -nr9   r�   s        r   ru   zEogViewer.get_command_ex  s   € Øˆ
ØˆØ˜
Ð"Ð"r   r?   r   c                ó€   — t           j                             |¦  «        st          ‚t	          j        dd|g¦  «         dS )rA   r•   z-nr   r   rF   s      r   r=   zEogViewer.show_file  s=   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ÝÔ˜%  tÐ,Ñ-Ô-Ð-Øˆqr   Nrw   rI   r€   r9   r   r   r“   r“     sB   € € € € € Ø1Ð1ð#ð #ð #ð #ð
ð ð ð ð ð r   r“   c                  ó&   — e Zd ZdZ	 ddd„Zdd„ZdS )ÚXVViewerzX
    The X Viewer ``xv`` command.
    This viewer supports the ``title`` parameter.
    Nr2   r3   r   r   r   r   r   rr   c                ó@   — dx}}|r|dt          |¦  «        › �z  }||fS )NÚxvz -name r   r…   s         r   ru   zXVViewer.get_command_ex+  s:   € ð
  $Ð#ˆ�*Øð 	0ØÐ/¥ u¡¤Ð/Ð/Ñ/ˆGØ˜
Ð"Ð"r   r?   r   c                óæ   — t           j                             |¦  «        st          ‚dg}|                     d¦  «        }|r|d|gz  }|                     |¦  «         t          j        |¦  «         dS )rA   rš   r   z-namer   r‡   r‰   s        r   r=   zXVViewer.show_file5  sw   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ØˆvˆØ—’˜GÑ$Ô$ˆØð 	%Ø�W˜eÐ$Ñ$ˆDØ�Š�DÑÔÐåÔ˜ÑÔÐØˆqr   rt   r‹   rI   r€   r9   r   r   r˜   r˜   %  sP   € € € € € ðð ð .2ð#ð #ð #ð #ð #ðð ð ð ð ð r   r˜   )r_   ro   r}   r„   r�   r•   rš   c                  ó   — e Zd ZdZd
d„Zd	S )ÚIPythonViewerz!The viewer for IPython frontends.r   r   r   r   r   r   c                ó$   — t          |¦  «         dS )Nr   )Úipython_displayr>   s      r   r,   zIPythonViewer.show_imageU  s   € Ý˜ÑÔÐØˆqr   NrG   )rJ   rK   rL   rM   r,   r9   r   r   r�   r�   R  s.   € € € € € Ø+Ð+ðð ð ð ð ð r   r�   )r„   Ú__main__é   z.Syntax: python3 ImageShow.py imagefile [title])r   )r	   r
   r   r   r   r   rt   )r   r   r   r   r   r   r   r   )'Ú
__future__r   rx   rB   rm   r[   rk   Úshlexr   Útypingr   Ú r   r   r   r!   r   rP   Úplatformra   rq   r{   r‚   r�   r“   r˜   rn   r�   ÚIPython.displayr„   rŸ   ÚImportErrorrJ   ÚlenÚargvÚprintÚexitrh   Úimr9   r   r   ú<module>r®      s˜  ðð #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à€ð#ð #ð #ð #ð #ð,ð ð ð ð ð7ð 7ð 7ð 7ð 7ñ 7ô 7ð 7ðzð ð ð ð �Fñ ô ð ð6 „<�7ÒÐØ€Hˆ]ÑÔÐðð ð ð ð �ñ ô ð ðB „<�8ÒÐØ€HˆYÑÔÐð
*ð 
*ð 
*ð 
*ð 
*�ñ 
*ô 
*ð 
*ðð ð ð ð �
ñ ô ð ð&ð ð ð ð �Jñ ô ð ð<ð ð ð ð �jñ ô ð ð$ð ð ð ð �
ñ ô ð ð$ð ð ð ð ˆzñ ô ð ð@ „<Ð*Ð*Ð*Ø€v„|�JÑÔð Øˆ�ÑÔÐØ€v„|�IÑÔð  Øˆ�ÑÔÐØ€v„|�DÑÔð "Øˆ�Ñ!Ô!Ð!Ø€v„|�EÑÔð Øˆ�ÑÔÐØ€v„|�DÑÔð Øˆ�ÑÔÐðð ð ð ð �Fñ ô ð ðØ:Ð:Ð:Ð:Ð:Ð:ð €Hˆ]ÑÔÐÐøð ð 	ð 	ð 	Ø€Dð	øøøð ˆzÒÐØ
€sˆ3Œ8�}„}�qÒÐØˆÐ>Ñ?Ô?Ð?ØˆŒ‰
Œ
ˆ
à	ˆŒ�C”H˜Q”KÑ	 Ô	 ð ' BØˆˆdˆd�2Ð%˜œ   œÐ%Ð%Ð%Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'ð Ðs$   ÆF ÆFÆFÇ- HÈHÈ!H