§
    ç·jd  ã                   óà  — d 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Zg d¢Z G d„ de	¦  «        Z
 ej        ¦   «         Zi Zdadad4ddœd„Zd4d	„Zd5d„Zd„ Zd„ Zddœd„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 G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZeZ G d„ d e¦  «        Z  G d!„ d"e¦  «        Z! G d#„ d$e¦  «        Z" G d%„ d&e¦  «        Z#d'„ Z$d(„ Z%ej&        dd)…         d*k    r G d+„ d,e¦  «        Z'ej&        d-k    r G d.„ d/e¦  «        Z( G d0„ d1e¦  «        Z)d2„ Z*e+d3k    r e*¦   «          dS dS )6z?Interfaces for launching and remotely controlling web browsers.é    N)ÚErrorÚopenÚopen_newÚopen_new_tabÚgetÚregisterc                   ó   — e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© ó    ú!/usr/lib/python3.11/webbrowser.pyr   r      s   € € € € € Ø€Dr   r   F©Ú	preferredc                ó<  — t           5  t          €t          ¦   «          ||gt          |                      ¦   «         <   |st
          r%| t
          v rt                               d| ¦  «         nt                               | ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zRegister a browser connector.Nr   )Ú_lockÚ	_tryorderÚregister_standard_browsersÚ	_browsersÚlowerÚ_os_preferred_browserÚinsertÚappend)ÚnameÚklassÚinstancer   s       r   r   r      sß   € å	ð #ð #ÝÐÝ&Ñ(Ô(Ð(Ø#(¨(Ð"3�	�$—*’*‘,”,Ñð
 ð 	#Õ.ð 	#°4Õ;PÐ3PÐ3PÝ×Ò˜Q Ñ%Ô%Ð%Ð%å×Ò˜TÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   ˆA<BÂBÂBc                 ó.  — t           €4t          5  t           €t          ¦   «          ddd¦  «         n# 1 swxY w Y   | �| g}nt           }|D ]¼}d|v rJt          j        |¦  «        }|d         dk    rt          |dd…         ¦  «        c S t          |¦  «        c S 	 t          |                     ¦   «                  }n# t          $ r t          |¦  «        }Y nw xY w|d         �
|d         c S |d         � |d         ¦   «         c S Œ½t          d¦  «        ‚)zCReturn a browser launcher instance appropriate for the environment.Nú%séÿÿÿÿú&é   r   z!could not locate runnable browser)r   r   r   ÚshlexÚsplitÚBackgroundBrowserÚGenericBrowserr   r   ÚKeyErrorÚ_synthesizer   )ÚusingÚalternativesÚbrowserÚcommands       r   r   r   &   s„  € åÐÝð 	-ð 	-ÝÐ Ý*Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð ÐØ�wˆˆå ˆØð $ð $ˆØ�7ˆ?ˆ?å”k 'Ñ*Ô*ˆGØ�rŒ{˜cÒ!Ð!Ý(¨°°"°¬Ñ6Ô6Ð6Ð6Ð6å% gÑ.Ô.Ð.Ð.Ð.ð/Ý# G§M¢M¡O¤OÔ4��øÝð /ð /ð /Ý% gÑ.Ô.���ð/øøøà�qŒzÐ%Ø˜q”zÐ!Ð!Ð!Ø˜”Ð'Ø!�w˜q”z‘|”|Ð#Ð#Ð#ð (å
Ð3Ñ
4Ô
4Ð4s   �1±5¸5ÂB<Â<CÃCTc                 óâ   — t           €4t          5  t           €t          ¦   «          ddd¦  «         n# 1 swxY w Y   t           D ]+}t          |¦  «        }|                     | ||¦  «        r dS Œ,dS )a  Display url using the default browser.

    If possible, open url in a location determined by new.
    - 0: the same browser window (the default).
    - 1: a new browser window.
    - 2: a new browser page ("tab").
    If possible, autoraise raises the window (the default) or not.
    NTF)r   r   r   r   r   )ÚurlÚnewÚ	autoraiser   r+   s        r   r   r   H   s¼   € õ ÐÝð 	-ð 	-ÝÐ Ý*Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-õ ð ð ˆÝ�d‘)”)ˆØ�<Š<˜˜S )Ñ,Ô,ð 	Ø�4�4ð	àˆ5s   �1±5¸5c                 ó"   — t          | d¦  «        S )zuOpen url in a new window of the default browser.

    If not possible, then open url in the only browser window.
    r"   ©r   ©r.   s    r   r   r   [   ó   € õ
 ��Q‰<Œ<Ðr   c                 ó"   — t          | d¦  «        S )z…Open url in a new page ("tab") of the default browser.

    If not possible, then the behavior becomes equivalent to open_new().
    é   r2   r3   s    r   r   r   b   r4   r   c                ó  — |                       ¦   «         d         }t          j        |¦  «        sddgS t          j                             |¦  «        }	 t          |                     ¦   «                  }n# t          $ r ddgcY S w xY w|d         }|rx|                     ¦   «         |j        k    r[ddl	}| 	                    |¦  «        }| |_
        t          j                             | ¦  «        |_        t          | d||¬¦  «         d|gS ddgS )a¿  Attempt to synthesize a controller based on existing controllers.

    This is useful to create a controller when a user specifies a path to
    an entry in the BROWSER environment variable -- we can copy a general
    controller to operate using a specific installation of the desired
    browser in this way.

    If we can't create a controller in this way, or if there is no
    executable for the requested browser, return [None, None].

    r   Nr"   )r   r   )r$   ÚshutilÚwhichÚosÚpathÚbasenamer   r   r'   Úcopyr   r   )r+   r   Úcmdr   r,   Ú
controllerr=   s          r   r(   r(   j   s  € ð �-Š-‰/Œ/˜!Ô
€CÝŒ<˜ÑÔð Ø�dˆ|ÐÝŒ7×Ò˜CÑ Ô €DðÝ˜DŸJšJ™LœLÔ)ˆˆøÝð ð ð Ø�dˆ|ÐÐÐðøøøð ˜”€JØð "�d—j’j‘l”l jÔ&9Ò9Ð9ØˆˆˆØ—Y’Y˜zÑ*Ô*ˆ
Ø!ˆ
ŒÝ œg×.Ò.¨wÑ7Ô7ˆ
ÔÝ�˜$¨¸yÐIÑIÔIÐIØ�jÐ!Ð!Ø�$ˆ<Ðs   ÁA3 Á3BÂBc                   óJ   — e Zd ZdZdgZdd„Zdd„Zd„ Zd	„ Ze	d
„ ¦   «         Z
dS )ÚBaseBrowserz3Parent class for all browsers. Do not use directly.r   Ú c                 ó"   — || _         || _        d S ©N)r   r<   ©Úselfr   s     r   Ú__init__zBaseBrowser.__init__‘   s   € ØˆŒ	ØˆŒˆˆr   r   Tc                 ó   — t           ‚rD   )ÚNotImplementedError©rF   r.   r/   r0   s       r   r   zBaseBrowser.open•   s   € Ý!Ð!r   c                 ó.   — |                       |d¦  «        S )Nr"   r2   ©rF   r.   s     r   r   zBaseBrowser.open_new˜   ó   € Ø�yŠy˜˜aÑ Ô Ð r   c                 ó.   — |                       |d¦  «        S )Nr6   r2   rL   s     r   r   zBaseBrowser.open_new_tab›   rM   r   c                 ó€   — | r9|                       ¦   «                              d¦  «        rt          d| ›�¦  «        ‚dS dS )zCEnsures that the URL is safe to pass to subprocesses as a parameterú-z'Invalid URL (leading dash disallowed): N)ÚlstripÚ
startswithÚ
ValueErrorr3   s    r   Ú
_check_urlzBaseBrowser._check_urlž   sZ   € ð ð 	P�3—:’:‘<”<×*Ò*¨3Ñ/Ô/ð 	PÝÐNÀsÐNÐNÑOÔOÐOð	Pð 	Pð 	Pð 	Pr   N)rB   ©r   T)r
   r   r   Ú__doc__ÚargsrG   r   r   r   ÚstaticmethodrT   r   r   r   rA   rA   Œ   s‡   € € € € € Ø=Ð=àˆ6€Dðð ð ð ð"ð "ð "ð "ð!ð !ð !ð!ð !ð !ð ðPð Pñ „\ðPð Pð Pr   rA   c                   ó    — e Zd ZdZd„ Zdd„ZdS )r&   zVClass for all browsers started with a command
       and without remote functionality.c                 óÚ   — t          |t          ¦  «        r|| _        dg| _        n|d         | _        |dd …         | _        t          j                             | j        ¦  «        | _        d S )Nr   r   r"   )Ú
isinstanceÚstrr   rW   r:   r;   r<   rE   s     r   rG   zGenericBrowser.__init__©   s_   € Ý�d�CÑ Ô ð 	!ØˆDŒIØ˜ˆDŒIˆIð ˜QœˆDŒIØ˜Q˜R˜RœˆDŒIÝœ×(Ò(¨¬Ñ3Ô3ˆŒˆˆr   r   Tc                 ód  ‡— t          j        d‰¦  «         |                      ‰¦  «         | j        gˆfd„| j        D ¦   «         z   }	 t           j        d d…         dk    rt          j        |¦  «        }nt          j        |d¬¦  «        }|                     ¦   «          S # t          $ r Y dS w xY w)Núwebbrowser.openc                 ó<   •— g | ]}|                      d ‰¦  «        ‘ŒS ©r   ©Úreplace©Ú.0Úargr.   s     €r   ú
<listcomp>z'GenericBrowser.open.<locals>.<listcomp>¶   ó7   ø€ ð !7ð !7ð !7Ø%(ð "%§¢¨T°3Ñ!7Ô!7ð !7ð !7ð !7r   é   ÚwinT)Ú	close_fdsF)
ÚsysÚauditrT   r   rW   ÚplatformÚ
subprocessÚPopenÚwaitÚOSError©rF   r.   r/   r0   ÚcmdlineÚps    `    r   r   zGenericBrowser.open³   sÒ   ø€ ÝŒ	Ð# SÑ)Ô)Ð)Ø�Š˜ÑÔÐØ”9�+ð !7ð !7ð !7ð !7Ø,0¬Ið!7ñ !7ô !7ñ 7ˆð	ÝŒ|˜B˜Q˜BÔ 5Ò(Ð(ÝÔ$ WÑ-Ô-��åÔ$ W¸Ð=Ñ=Ô=�Ø—v’v‘x”x�<ÐøÝð 	ð 	ð 	Ø�5�5ð	øøøs   Á	AB! Â!
B/Â.B/NrU   ©r
   r   r   rV   rG   r   r   r   r   r&   r&   ¥   sA   € € € € € ð,ð ,ð4ð 4ð 4ðð ð ð ð ð r   r&   c                   ó   — e Zd ZdZdd„ZdS )r%   zHClass for all browsers which are to be started in the
       background.r   Tc                 óh  ‡— | j         gˆfd„| j        D ¦   «         z   }t          j        d‰¦  «         |                      ‰¦  «         	 t          j        d d…         dk    rt          j        |¦  «        }nt          j        |dd¬¦  «        }|                     ¦   «         d u S # t          $ r Y dS w xY w)Nc                 ó<   •— g | ]}|                      d ‰¦  «        ‘ŒS r`   ra   rc   s     €r   rf   z*BackgroundBrowser.open.<locals>.<listcomp>Ç   rg   r   r^   rh   ri   T)rj   Ústart_new_sessionF)
r   rW   rk   rl   rT   rm   rn   ro   Úpollrq   rr   s    `    r   r   zBackgroundBrowser.openÆ   sÞ   ø€ Ø”9�+ð !7ð !7ð !7ð !7Ø,0¬Ið!7ñ !7ô !7ñ 7ˆåŒ	Ð# SÑ)Ô)Ð)Ø�Š˜ÑÔÐð	ÝŒ|˜B˜Q˜BÔ 5Ò(Ð(ÝÔ$ WÑ-Ô-��åÔ$ W¸Ø7;ð=ñ =ô =�à—F’F‘H”H Ð$Ð%øÝð 	ð 	ð 	Ø�5�5ð	øøøs   Á	AB# Â#
B1Â0B1NrU   ©r
   r   r   rV   r   r   r   r   r%   r%   Â   s2   € € € € € ðð ðð ð ð ð ð r   r%   c                   óB   — e Zd ZdZdZdZdZddgZdZdZ	dZ
d
d„Zdd	„ZdS )ÚUnixBrowserz=Parent class for all Unix browsers with remote functionality.NFTú%actionr   c                 ó¶  — g }|r(| j         r!t          |¦  «        }| j         |         }|r|g}| j        g|z   |z   }|s| j        rt          j        }nd }t	          j        |d|| j        r|pd |d¬¦  «        }	|r/	 |	                     d¦  «        }
|
 S # t          j	        $ r Y dS w xY w| j        r|	 
                    ¦   «         €dS dS |	                     ¦   «          S )NT©rj   ÚstdinÚstdoutÚstderrry   é   F)Ú
raise_optsÚintr   Ú
backgroundrn   ÚDEVNULLro   Úredirect_stdoutrp   ÚTimeoutExpiredrz   )rF   rW   Úremoter0   r.   Ú	raise_optÚoptrs   Úinoutrt   Úrcs              r   Ú_invokezUnixBrowser._invokeç   s!  € Øˆ	Øð 	&�d”oð 	&å˜I™œˆIØ”/ )Ô,ˆCØÐ%  �Ià”9�+ 	Ñ)¨DÑ0ˆàð 	�T”_ð 	ÝÔ&ˆEˆEð ˆEÝÔ˜W°¸EØ%)Ô%9Ð%C¸eÐ%KÀtØ$)¸TðCñ Cô Cˆð ð 	 ðØ—V’V˜A‘Y”Y�à�v�øÝÔ,ð ð ð Ø�t�tðøøøàŒ_ð 	 Ø�vŠv‰xŒxÐØ�tà�uà—v’v‘x”x�<Ðs   Á9B ÂB$Â#B$r   c                 óê  ‡‡— t          j        d‰¦  «         |dk    r| j        Šn@|dk    r| j        Šn2|dk    r| j        €| j        Šn| j        Šnt          dd|z  z   ¦  «        ‚|                      ‰                     d‰¦  «        ¦  «         ˆˆfd„| j        D ¦   «         }d	„ |D ¦   «         }|  	                    |d
|‰¦  «        }|s*ˆfd„| j
        D ¦   «         }|  	                    |dd¦  «        S d
S )Nr^   r   r"   r6   zBad 'new' parameter to open(); zexpected 0, 1, or 2, got %sr~   c                 ód   •— g | ],}|                      d ‰¦  «                              d‰¦  «        ‘Œ-S )r~   r   ra   )rd   re   Úactionr.   s     €€r   rf   z$UnixBrowser.open.<locals>.<listcomp>  sG   ø€ ð -ð -ð -Øð —’˜I vÑ.Ô.×6Ò6°t¸SÑAÔAð -ð -ð -r   c                 ó   — g | ]}|¯|‘ŒS r   r   )rd   re   s     r   rf   z$UnixBrowser.open.<locals>.<listcomp>  s   € Ð+Ð+Ð+˜ sÐ+�Ð+Ð+Ð+r   Tc                 ó<   •— g | ]}|                      d ‰¦  «        ‘ŒS r`   ra   rc   s     €r   rf   z$UnixBrowser.open.<locals>.<listcomp>!  s'   ø€ Ð@Ð@Ð@¨s�C—K’K  cÑ*Ô*Ð@Ð@Ð@r   F)rk   rl   Úremote_actionÚremote_action_newwinÚremote_action_newtabr   rT   rb   Úremote_argsr�   rW   )rF   r.   r/   r0   rW   Úsuccessr“   s    `    @r   r   zUnixBrowser.open
  s?  øø€ ÝŒ	Ð# SÑ)Ô)Ð)Ø�!Š8ˆ8ØÔ'ˆFˆFØ�AŠXˆXØÔ.ˆFˆFØ�AŠXˆXØÔ(Ð0ØÔ2��àÔ2��åÐ9Ø5¸Ñ;ñ<ñ =ô =ð =ð 	�Š˜Ÿš I¨vÑ6Ô6Ñ7Ô7Ð7ð-ð -ð -ð -ð -ØÔ+ð-ñ -ô -ˆà+Ð+˜tÐ+Ñ+Ô+ˆØ—,’,˜t T¨9°cÑ:Ô:ˆØð 	à@Ð@Ð@Ð@°d´iÐ@Ñ@Ô@ˆDØ—<’<  e¨UÑ3Ô3Ð3à�4r   rD   rU   )r
   r   r   rV   r…   r‡   r‰   r™   r–   r—   r˜   r�   r   r   r   r   r}   r}   Ö   so   € € € € € ØGÐGà€JØ€JØ€Oð ˜dÐ#€KØ€MØÐØÐð! ð ! ð ! ð ! ðFð ð ð ð ð r   r}   c                   ó*   — e Zd ZdZddgZdZdZdZdZdS )	ÚMozillaz$Launcher class for Mozilla browsers.r~   r   rB   z-new-windowz-new-tabTN©	r
   r   r   rV   r™   r–   r—   r˜   r‡   r   r   r   rœ   rœ   '  s4   € € € € € Ø.Ð.à˜dÐ#€KØ€MØ(ÐØ%ÐØ€J€J€Jr   rœ   c                   ó2   — e Zd ZdZddgZddgZdZdZdZd	Z	d
S )ÚNetscapez$Launcher class for Netscape browser.ú-noraisez-raiseú-remoteúopenURL(%s%action)rB   ú,new-windowú,new-tabTN)
r
   r   r   rV   r…   r™   r–   r—   r˜   r‡   r   r   r   rŸ   rŸ   1  s?   € € € € € Ø.Ð.à˜hÐ'€JØÐ2Ð3€KØ€MØ(ÐØ%ÐØ€J€J€Jr   rŸ   c                   ó.   — e Zd ZdZddgZddgZdZdZdZd	S )
ÚGaleonz,Launcher class for Galeon/Epiphany browsers.r    rB   r~   r   ú-nz-wTN)	r
   r   r   rV   r…   r™   r–   r—   r‡   r   r   r   r¦   r¦   <  s8   € € € € € Ø6Ð6à˜bÐ!€JØ˜dÐ#€KØ€MØÐØ€J€J€Jr   r¦   c                   ó*   — e Zd ZdZddgZdZdZdZdZdS )ÚChromez)Launcher class for Google Chrome browser.r~   r   rB   ú--new-windowTNr�   r   r   r   r©   r©   F  s4   € € € € € Ø/Ð/à˜dÐ#€KØ€MØ)ÐØÐØ€J€J€Jr   r©   c                   ó*   — e Zd ZdZddgZdZdZdZdZdS )ÚOperaz!Launcher class for Opera browser.r~   r   rB   rª   TNr�   r   r   r   r¬   r¬   R  s4   € € € € € Ø'Ð'à˜dÐ#€KØ€MØ)ÐØÐØ€J€J€Jr   r¬   c                   ó.   — e Zd ZdZddgZdZdZdZdZdZ	dS )	ÚElinksz#Launcher class for Elinks browsers.r¡   r¢   rB   r£   r¤   FN)
r
   r   r   rV   r™   r–   r—   r˜   r‡   r‰   r   r   r   r®   r®   \  s<   € € € € € Ø)Ð)àÐ2Ð3€KØ€MØ(ÐØ%ÐØ€Jð €O€O€Or   r®   c                   ó   — e Zd ZdZdd„ZdS )Ú	Konquerorz±Controller for the KDE File Manager (kfm, or Konqueror).

    See the output of ``kfmclient --commands``
    for more information on the Konqueror remote-control interface.
    r   Tc                 ó  — t          j        d|¦  «         |                      |¦  «         |dk    rd}nd}t          j        }	 t          j        d||gd|||¬¦  «        }|                     ¦   «          dS # t          $ r Y nw xY w	 t          j        dd	|gd|||d¬
¦  «        }|                     ¦   «         €dS n# t          $ r Y nw xY w	 t          j        dd|gd|||d¬
¦  «        }|                     ¦   «         d u S # t          $ r Y dS w xY w)Nr^   r6   ÚnewTabÚopenURLÚ	kfmclientT)rj   r�   r‚   rƒ   Ú	konquerorz--silentr€   Úkfmz-dF)	rk   rl   rT   rn   rˆ   ro   rp   rq   rz   )rF   r.   r/   r0   r“   Údevnullrt   s          r   r   zKonqueror.openq  s…  € ÝŒ	Ð# SÑ)Ô)Ð)Ø�Š˜ÑÔÐà�!Š8ˆ8ØˆFˆFàˆFåÔ$ˆð
	ÝÔ  +¨v°sÐ!;Ø+/°wØ(/¸ðAñ Aô AˆAð �FŠF‰HŒHˆHà�4øõ ð 	ð 	ð 	àˆDð	øøøð	ÝÔ  +¨z¸3Ð!?Ø+/°wØ(/¸Ø37ð9ñ 9ô 9ˆAð �vŠv‰xŒxÐà�tð  øõ	 ð 	ð 	ð 	àˆDð	øøøð	&ÝÔ  %¨¨sÐ!3Ø+/°wØ(/¸Ø37ð9ñ 9ô 9ˆAð —F’F‘H”H Ð$Ð%øõ ð 	ð 	ð 	Ø�5�5ð	øøøs6   ÁA5 Á5
BÂBÂB: Â:
CÃCÃC> Ã>
DÄDNrU   r{   r   r   r   r°   r°   j  s2   € € € € € ðð ð,&ð ,&ð ,&ð ,&ð ,&ð ,&r   r°   c                   ó"   — e Zd Zd„ Zd„ Zdd„ZdS )ÚGrailc                 óŽ  — dd l }dd l}dd l}dd l}t          j                             |                     ¦   «         d¦  «        }|                     t	          j	        ¦   «         ¦  «        d         }t          j                             | 
                    |¦  «        | 
                    |¦  «        dz   ¦  «        }|                      |¦  «        }|sd S |                     |j        |j        ¦  «        }	|D ]Q}
	 |	                     |
¦  «         |	c S # t          $ r) 	 t	          j        |
¦  «         n# t          $ r Y nw xY wY ŒNw xY wd S )Nr   z.grail-unixz-*)ÚglobÚpwdÚsocketÚtempfiler:   r;   ÚjoinÚ
gettempdirÚgetpwuidÚgetuidÚescapeÚAF_UNIXÚSOCK_STREAMÚconnectrq   Úunlink)rF   r»   r¼   r½   r¾   ÚtempdirÚuserÚfilenameÚmaybesÚsÚfns              r   Ú_find_grail_rczGrail._find_grail_rc¤  s[  € ØˆˆˆØˆ
ˆ
ˆ
ØˆˆˆØˆˆˆÝ”'—,’,˜x×2Ò2Ñ4Ô4Ø,ñ.ô .ˆà�|Š|�BœI™KœKÑ(Ô(¨Ô+ˆÝ”7—<’< §¢¨GÑ 4Ô 4°d·k²kÀ$Ñ6GÔ6GÈ$Ñ6NÑOÔOˆØ—’˜8Ñ$Ô$ˆØð 	Ø�4Ø�MŠM˜&œ.¨&Ô*<Ñ=Ô=ˆØð 	ð 	ˆBð	Ø—	’	˜"‘”�ð ���øõ ð ð ð ðÝ”I˜b‘M”M�M�MøÝð ð ð Ø�Dðøøøøøð	øøøð		ð 	s6   Ã6DÄ
EÄD/Ä.EÄ/
D<Ä9EÄ;D<Ä<EÅEc                 óˆ   — |                       ¦   «         }|sdS |                     |¦  «         |                     ¦   «          dS )Nr   r"   )rÎ   ÚsendÚclose)rF   r“   rÌ   s      r   Ú_remotezGrail._remote¾  sA   € Ø×ÒÑ!Ô!ˆØð 	Ø�1Ø	�Šˆv‰ŒˆØ	�Š‰	Œ	ˆ	Øˆqr   r   Tc                 óÀ   — t          j        d|¦  «         |                      |¦  «         |r|                      d|z   ¦  «        }n|                      d|z   ¦  «        }|S )Nr^   zLOADNEW zLOAD )rk   rl   rT   rÒ   )rF   r.   r/   r0   Úoks        r   r   z
Grail.openÆ  sa   € ÝŒ	Ð# SÑ)Ô)Ð)Ø�Š˜ÑÔÐØð 	-Ø—’˜j¨3Ñ.Ñ/Ô/ˆBˆBà—’˜g¨™mÑ,Ô,ˆBØˆ	r   NrU   )r
   r   r   rÎ   rÒ   r   r   r   r   r¹   r¹      sF   € € € € € ðð ð ð4ð ð ðð ð ð ð ð r   r¹   c                  óZ  — t          j        d¦  «        rt          dd t          d¦  «        ¦  «         t          j        d¦  «        r t          dd t          g d¢¦  «        ¦  «         dt          j        v r2t          j        d¦  «        rt          dd t          d¦  «        ¦  «         dt          j        v r7t          j        d¦  «        r#t          dt          t          d¦  «        ¦  «         t          j        d¦  «        rt          dd t          d¦  «        ¦  «         d	D ]4} t          j        | ¦  «        rt          | d t          | ¦  «        ¦  «         Œ5d
D ]4} t          j        | ¦  «        rt          | d t          | ¦  «        ¦  «         Œ5t          j        d¦  «        r$t          dt          t          d¦  «        ¦  «         n7t          j        d¦  «        r#t          dt          t          d¦  «        ¦  «         dD ]4} t          j        | ¦  «        rt          | d t          | ¦  «        ¦  «         Œ5t          j        d¦  «        rt          dd t          d¦  «        ¦  «         dD ]4} t          j        | ¦  «        rt          | d t          | ¦  «        ¦  «         Œ5t          j        d¦  «        rt          dd t          d¦  «        ¦  «         t          j        d¦  «        rt          dd t          d¦  «        ¦  «         t          j        d¦  «        rt          dt          d ¦  «         d S d S )Nzxdg-openÚgio)rÖ   r   z--r   ÚGNOME_DESKTOP_SESSION_IDz	gvfs-openÚKDE_FULL_SESSIONr´   zx-www-browser)ÚfirefoxÚ	iceweaselÚiceapeÚ	seamonkey)zmozilla-firefoxzmozilla-firebirdÚfirebirdÚmozillaÚnetscaper¶   rµ   )ÚgaleonÚepiphanyÚ	skipstone)zgoogle-chromeÚchromeÚchromiumzchromium-browserÚoperaÚmosaicÚgrail)r8   r9   r   r%   r:   Úenvironr°   rœ   rŸ   r¦   r©   r¬   r¹   )r+   s    r   Úregister_X_browsersré   ×  s   € õ „|�JÑÔð BÝ�˜TÕ#4°ZÑ#@Ô#@ÑAÔAÐAõ „|�EÑÔð NÝ�˜Õ/Ð0KÐ0KÐ0KÑLÔLÑMÔMÐMð "¥R¤ZÐ/Ð/µF´LÀÑ4MÔ4MÐ/Ý�˜dÕ$5°kÑ$BÔ$BÑCÔCÐCð �RœZÐ'Ð'­F¬L¸Ñ,EÔ,EÐ'Ý��i­°;Ñ)?Ô)?Ñ@Ô@Ð@å„|�OÑ$Ô$ð LÝ� $Õ(9¸/Ñ(JÔ(JÑKÔKÐKð Cð 6ð 6ˆÝŒ<˜Ñ Ô ð 	6Ý�W˜d¥G¨GÑ$4Ô$4Ñ5Ô5Ð5øð+ð 7ð 7ˆõ Œ<˜Ñ Ô ð 	7Ý�W˜d¥H¨WÑ$5Ô$5Ñ6Ô6Ð6øõ „|�EÑÔð AÝ��	¥9¨UÑ#3Ô#3Ñ4Ô4Ð4Ð4Ý	Œ�kÑ	"Ô	"ð AÝ��i­°;Ñ)?Ô)?Ñ@Ô@Ð@ð *ð 5ð 5ˆÝŒ<˜Ñ Ô ð 	5Ý�W˜d¥F¨7¡O¤OÑ4Ô4Ð4øõ „|�KÑ Ô ð DÝ�˜dÕ$5°kÑ$BÔ$BÑCÔCÐCð Oð 5ð 5ˆÝŒ<˜Ñ Ô ð 	5Ý�W˜d¥F¨7¡O¤OÑ4Ô4Ð4øõ „|�GÑÔð 0Ý�˜$¥ g¡¤Ñ/Ô/Ð/õ „|�HÑÔð >Ý�˜4Õ!2°8Ñ!<Ô!<Ñ=Ô=Ð=õ „|�GÑÔð 'Ý��% Ñ&Ô&Ð&Ð&Ð&ð'ð 'r   c                  óÐ  — g a t          j        dk    rxt          dd t	          d¦  «        ¦  «         t          dd t	          d¦  «        ¦  «         t          dd t	          d¦  «        ¦  «         t          dd t	          d¦  «        ¦  «         t          j        dk    rt          dd t          d¦  «        ¦  «         t          j        d d	…         d
k    r“t          dt          ¦  «         t          j         	                    t          j
                             dd¦  «        d¦  «        } dddddd| fD ]4}t          j        |¦  «        rt          |d t          |¦  «        ¦  «         Œ5�nët          j
                             d¦  «        st          j
                             d¦  «        r”	 d                     ¦   «         }t          j        |t          j        ¬¦  «        }|                     ¦   «                              ¦   «         }|an(# t*          t          j        t.          t0          f$ r Y nw xY wt3          ¦   «          t          j
                             d¦  «        rút          j        d¦  «        rt          dd t5          d¦  «        ¦  «         t          j        d¦  «        rt          dd t5          d¦  «        ¦  «         t          j        d¦  «        rt          dd t7          d¦  «        ¦  «         t          j        d¦  «        rt          dd t5          d¦  «        ¦  «         t          j        d¦  «        rt          dd t5          d¦  «        ¦  «         dt          j
        v r‡t          j
        d                              t          j        ¦  «        }|                     ¦   «          |D ]C}|dk    r9t=          |d ¬!¦  «        }|d"         € t          |d t5          |¦  «        d ¬!¦  «         ŒBd S d S )#NÚdarwinÚMacOSXÚdefaultrã   rÙ   ÚsafariÚ
serenityosÚBrowserrh   ri   zwindows-defaultÚPROGRAMFILESzC:\Program FileszInternet Explorer\IEXPLORE.EXErÝ   rÜ   rÞ   rß   rå   ÚDISPLAYÚWAYLAND_DISPLAYz$xdg-settings get default-web-browser)rƒ   ÚTERMzwww-browserÚlinksÚelinksÚlynxÚw3mÚBROWSERrB   Tr   r"   )r   rk   rm   r   ÚMacOSXOSAScriptr%   ÚWindowsDefaultr:   r;   r¿   rè   r   r8   r9   r$   rn   Úcheck_outputrˆ   ÚdecodeÚstripr   ÚFileNotFoundErrorÚCalledProcessErrorÚPermissionErrorÚNotADirectoryErrorré   r&   r®   ÚpathsepÚreverser(   )Úiexplorer+   r>   Ú
raw_resultÚresultÚuserchoicesrs   s          r   r   r     s³  € à€Iå
„|�xÒÐÝ�˜4¥°Ñ!;Ô!;Ñ<Ô<Ð<Ý�˜4¥°Ñ!:Ô!:Ñ;Ô;Ð;Ý�˜D¥/°)Ñ"<Ô"<Ñ=Ô=Ð=Ý�˜4¥°Ñ!:Ô!:Ñ;Ô;Ð;õ „|�|Ò#Ð#å�˜DÕ"3°IÑ">Ô">Ñ?Ô?Ð?å
„|�B�Q�BÔ˜5Ò Ð åÐ"¥NÑ3Ô3Ð3õ ”7—<’<¥¤
§¢¨~Ð?RÑ SÔ SØ AñCô Cˆà! :¨{¸IØ" G¨Xð7ð 	Dð 	DˆGåŒ|˜GÑ$Ô$ð DÝ˜ $Õ(9¸'Ñ(BÔ(BÑCÔCÐCøñ	Dõ Œ:�>Š>˜)Ñ$Ô$ð 	"­¬
¯ªÐ7HÑ(IÔ(Ið 	"ð/Ø<×BÒBÑDÔD�Ý'Ô4°SÅÔASÐTÑTÔT�
Ø#×*Ò*Ñ,Ô,×2Ò2Ñ4Ô4�ð
 )/Ð%Ð%øõ	 &¥zÔ'DÅoÕWiÐjð ð ð Ø�ðøøøõ  Ñ!Ô!Ð!õ Œ:�>Š>˜&Ñ!Ô!ð 	=ÝŒ|˜MÑ*Ô*ð MÝ˜¨­n¸]Ñ.KÔ.KÑLÔLÐLåŒ|˜GÑ$Ô$ð AÝ˜ $­°wÑ(?Ô(?Ñ@Ô@Ð@ÝŒ|˜HÑ%Ô%ð ;Ý˜ 4­°Ñ)9Ô)9Ñ:Ô:Ð:åŒ|˜FÑ#Ô#ð ?Ý˜ ¥~°fÑ'=Ô'=Ñ>Ô>Ð>åŒ|˜EÑ"Ô"ð =Ý˜ ¥n°UÑ&;Ô&;Ñ<Ô<Ð<ð •B”JÐÐÝ”j Ô+×1Ò1µ"´*Ñ=Ô=ˆØ×ÒÑÔÐð #ð 	Uð 	UˆGØ˜"Š}ˆ}Ý! '°TÐ:Ñ:Ô:�Ø�q”6�>Ý˜W d­N¸7Ñ,CÔ,CÈtÐTÑTÔTÐTøð Ðð	Uð 	Us   Æ#AH  È "H%È$H%rh   ri   c                   ó   — e Zd Zdd„ZdS )rû   r   Tc                 ó¦   — t          j        d|¦  «         |                      |¦  «         	 t          j        |¦  «         dS # t
          $ r Y dS w xY w)Nr^   TF)rk   rl   rT   r:   Ú	startfilerq   rJ   s       r   r   zWindowsDefault.openj  si   € ÝŒIÐ'¨Ñ-Ô-Ð-Ø�OŠO˜CÑ Ô Ð ðÝ”˜SÑ!Ô!Ð!ð �tøõ ð ð ð ð �u�uðøøøs   ¬A Á
AÁANrU   )r
   r   r   r   r   r   r   rû   rû   i  s(   € € € € € ð
	ð 
	ð 
	ð 
	ð 
	ð 
	r   rû   rë   c                   ó    — e Zd ZdZd„ Zdd„ZdS )rì   a{  Launcher class for Aqua browsers on Mac OS X

        Optionally specify a browser name on instantiation.  Note that this
        will not work for Aqua browsers if the user has moved the application
        package after installation.

        If no browser is specified, the default browser, as specified in the
        Internet System Preferences panel, will be used.
        c                 óf   — t          j        | j        j        › d�t          d¬¦  «         || _        d S )Nz3 is deprecated in 3.11 use MacOSXOSAScript instead.r6   ©Ú
stacklevel©ÚwarningsÚwarnÚ	__class__r
   ÚDeprecationWarningr   rE   s     r   rG   zMacOSX.__init__†  sF   € ÝŒM˜Tœ^Ô4ð :ð :ð :Ý;MÐZ[ð]ñ ]ô ]ð ]àˆDŒIˆIˆIr   r   Tc                 ó   — t          j        d|¦  «         |                      |¦  «         d|vsJ ‚d|vrd|z   }t          t	          |¦  «        ¦  «        }| j        dk    rd|                     dd¦  «        z  }n@| j        d	k    rd
}nd|dz
  z  }d|                     dd¦  «        z  }d| j        ›d|›d|›d�}t          j        dd¦  «        }|€dS | 	                    |¦  «         | 
                    ¦   «         }| S )Nr^   ú'ú:zfile:rí   úopen location "%s"ú"ú%22ÚOmniWebrB   ztoWindow %dr"   zOpenURL "%s"ztell application "zK"
                                activate
                                ú z%
                            end tellÚ	osascriptÚwF)rk   rl   rT   r†   Úboolr   rb   r:   ÚpopenÚwriterÑ   )	rF   r.   r/   r0   ÚscriptÚtoWindowr>   Úosapiper�   s	            r   r   zMacOSX.open‹  s"  € ÝŒIÐ'¨Ñ-Ô-Ð-Ø�OŠO˜CÑ Ô Ð Ø˜c�>�>�>�>à˜#�:�:Ø˜c‘k�õ •d˜3‘i”i‘.”.ˆCØŒy˜IÒ%Ð%à-°·²¸CÀÑ0GÔ0GÑG��ð ”9 	Ò)Ð)Ø!�H�Hð  -°°a±Ñ8�HØ$ s§{¢{°3¸Ñ'>Ô'>Ñ>��ð ,0¬9¨9¨9°c°c°c¸8¸8¸8ðE�õ
 ”h˜{¨CÑ0Ô0ˆGØˆØ�uà�MŠM˜&Ñ!Ô!Ð!Ø—’‘”ˆBØ�6ˆMr   NrU   ru   r   r   r   rì   rì   |  sA   € € € € € ð	ð 	ð	ð 	ð 	ð
!	ð !	ð !	ð !	ð !	ð !	r   rì   c                   ó^   ‡ — e Zd Zdˆ fd„	Zed„ ¦   «         Zej        d„ ¦   «         Zd	d„Zˆ xZS )
rú   rí   c                 óJ   •— t          ¦   «                              |¦  «         d S rD   )ÚsuperrG   )rF   r   r  s     €r   rG   zMacOSXOSAScript.__init__¯  s!   ø€ Ý‰GŒG×Ò˜TÑ"Ô"Ð"Ð"Ð"r   c                 ó|   — t          j        | j        j        › d| j        j        › d�t          d¬¦  «         | j        S ©Nz!._name is deprecated in 3.11 use z.name instead.r6   r  r  )rF   s    r   Ú_namezMacOSXOSAScript._name²  sW   € åŒM˜Tœ^Ô4ð Jð JØ"&¤.Ô"9ðJð Jð Jå,¸ð<ñ <ô <ð <ð ”9Ðr   c                 ó€   — t          j        | j        j        › d| j        j        › d�t          d¬¦  «         || _        d S r)  r  )rF   Úvals     r   r*  zMacOSXOSAScript._name¹  sZ   € åŒM˜Tœ^Ô4ð Jð JØ"&¤.Ô"9ðJð Jð Jå,¸ð<ñ <ô <ð <ð ˆDŒIˆIˆIr   r   Tc                 ó@  — |                       |¦  «         | j        dk    rd|                     dd¦  «        z  }n d| j        |                     dd¦  «        fz  }t          j        dd¦  «        }|€dS |                     |¦  «         |                     ¦   «         }| S )	Nrí   r  r  r  zž
                   tell application "%s"
                       activate
                       open location "%s"
                   end
                   r  r  F)rT   r   rb   r:   r   r!  rÑ   )rF   r.   r/   r0   r"  r$  r�   s          r   r   zMacOSXOSAScript.openÀ  s¤   € Ø�OŠO˜CÑ Ô Ð ØŒy˜IÒ%Ð%Ø-°·²¸CÀÑ0GÔ0GÑG��ðð
 œ	 3§;¢;¨s°EÑ#:Ô#:Ð;ñ<�õ ”h˜{¨CÑ0Ô0ˆGØˆØ�uà�MŠM˜&Ñ!Ô!Ð!Ø—’‘”ˆBØ�6ˆMr   )rí   rU   )	r
   r   r   rG   Úpropertyr*  Úsetterr   Ú__classcell__)r  s   @r   rú   rú   ®  s‰   ø€ € € € € ð	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 
ð	ð 	ñ 
Œð	ð 
Œð	ð 	ñ 
Œð	ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r   rú   c                  ó\  — dd l } dt          j        d         z  }	 |                       t          j        dd …         d¦  «        \  }}na# | j        $ rT}t	          |t          j        ¬¦  «         t	          |t          j        ¬¦  «         t          j        d¦  «         Y d }~nd }~ww xY wd}|D ]\  }}|dk    rd}Œ|dk    rd}Œt          |¦  «        dk    r/t	          |t          j        ¬¦  «         t          j        d¦  «         |d         }t          ||¦  «         t	          d	¦  «         d S )
Nr   zDUsage: %s [-n | -t] url
    -n: open new window
    -t: open new tabr"   Úntd)Úfiler§   z-tr6   ú)	Úgetoptrk   ÚargvÚerrorÚprintrƒ   ÚexitÚlenr   )	r5  ÚusageÚoptsrW   ÚmsgÚnew_winÚoÚar.   s	            r   ÚmainrA  Õ  s:  € Ø€M€M€Mðåœ( 1œ+ñ&€EðØ—]’]¥3¤8¨A¨B¨B¤<°Ñ7Ô7‰
ˆˆdˆdøØŒ<ð ð ð Ýˆc�œ
Ð#Ñ#Ô#Ð#Ýˆe�#œ*Ð%Ñ%Ô%Ð%ÝŒ�‰Œˆˆˆˆˆˆøøøøðøøøð €GØð $ð $‰ˆˆ1Ø�Š9ˆ9 �g�gØ�$ŠYˆY !˜øÝ
ˆ4�y„y�A‚~€~Ýˆe�#œ*Ð%Ñ%Ô%Ð%ÝŒ�‰Œˆà
ˆqŒ'€CÝˆˆgÑÔÐå	ˆ$�K„K€K€K€Ks   ›+A Á
B%ÁA
B Â B%Ú__main__rD   rU   ),rV   r:   r#   r8   rk   rn   Ú	threadingr  Ú__all__Ú	Exceptionr   ÚRLockr   r   r   r   r   r   r   r   r   r(   ÚobjectrA   r&   r%   r}   rœ   rŸ   r¦   r©   ÚChromiumr¬   r®   r°   r¹   ré   r   rm   rû   rì   rú   rA  r
   r   r   r   ú<module>rI     sC  ðà EÐ Eð 
€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€à
JÐ
JÐ
J€ð	ð 	ð 	ð 	ð 	ˆIñ 	ô 	ð 	ð 	ˆ	ŒÑÔ€Ø€	Ø€	ØÐ ð#°eð #ð #ð #ð #ð #ð5ð 5ð 5ð 5ðDð ð ð ð&ð ð ðð ð ð ',ð ð ð ð ð ðDPð Pð Pð Pð P�&ñ Pô Pð Pð2ð ð ð ð �[ñ ô ð ð:ð ð ð ð ˜ñ ô ð ð(Nð Nð Nð Nð N�+ñ Nô Nð Nðbð ð ð ð ˆkñ ô ð ðð ð ð ð ˆ{ñ ô ð ðð ð ð ð ˆ[ñ ô ð ðð ð ð ð ˆ[ñ ô ð ð €ðð ð ð ð ˆKñ ô ð ðð ð ð ð ˆ[ñ ô ð ð3&ð 3&ð 3&ð 3&ð 3&�ñ 3&ô 3&ð 3&ðl-ð -ð -ð -ð -ˆKñ -ô -ð -ðn@'ð @'ð @'ðDFUð FUð FUð^ „<���Ô�uÒÐðð ð ð ð ˜ñ ô ð ð" „<�8ÒÐð0ð 0ð 0ð 0ð 0�ñ 0ô 0ð 0ðd$ð $ð $ð $ð $˜+ñ $ô $ð $ðNð ð ð0 ˆzÒÐØ€D�F„F€F€F€Fð Ðr   