???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5d^  ã                   @   sæ  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ddddgZG dd„ deƒZe 	¡ Z
i Zdadad;d	d
œdd„Zd<dd„Zd=dd„Zdd„ Zdd„ Zd	d
œdd„ZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd „ d eƒZG d!d"„ d"eƒZeZG d#d$„ d$eƒZG d%d&„ d&eƒZG d'd(„ d(eƒZ G d)d*„ d*eƒZ!d+d,„ Z"d-d.„ Z#ej$dd/… d0kržG d1d2„ d2eƒZ%ej$d3krÊG d4d5„ d5eƒZ&G d6d7„ d7eƒZ'd8d9„ Z(e)d:krâe(ƒ  dS )>é    NÚErrorÚopenÚopen_newÚopen_new_tabÚgetÚregisterc                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r   r   ú"/usr/lib64/python3.8/webbrowser.pyr      s   F©Ú	preferredc             	   C   sZ   t L td krtƒ  ||gt|  ¡ < |s4trB| tkrBt d| ¡ n
t | ¡ W 5 Q R X d S )Nr   )Ú_lockÚ	_tryorderÚregister_standard_browsersÚ	_browsersÚlowerÚ_os_preferred_browserÚinsertÚappend)ÚnameÚklassÚinstancer   r   r   r   r      s    c              	   C   sð   t d kr&t t d krtƒ  W 5 Q R X | d k	r6| g}nt }|D ]¤}d|kr‚t |¡}|d dkrtt|d d… ƒ  S t|ƒ  S q>zt| ¡  }W n t	k
r®   t
|ƒ}Y nX |d d k	rÈ|d   S |d d k	r>|d ƒ   S q>tdƒ‚d S )Nú%séÿÿÿÿú&é   r   z!could not locate runnable browser)r   r   r   ÚshlexÚsplitÚBackgroundBrowserÚGenericBrowserr   r   ÚKeyErrorÚ_synthesizer   )ZusingZalternativesÚbrowserÚcommandr   r   r   r   %   s,    
Tc              	   C   sP   t d kr&t t d krtƒ  W 5 Q R X t D ] }t|ƒ}| | ||¡r* dS q*dS )NTF)r   r   r   r   r   )ÚurlÚnewÚ	autoraiser   r$   r   r   r   r   G   s    	c                 C   s
   t | dƒS ©Nr   ©r   ©r&   r   r   r   r   Z   s    c                 C   s
   t | dƒS ©Né   r*   r+   r   r   r   r   a   s    c                C   s¸   |   ¡ d }t |¡sd d gS tj |¡}zt| ¡  }W n tk
rV   d d g Y S X |d }|r°| ¡ |jkr°dd l	}| 	|¡}| |_
tj | ¡|_t| d ||d d |gS d d gS )Nr   r   )r   r   )r   ÚshutilÚwhichÚosÚpathÚbasenamer   r   r"   Úcopyr   r   )r$   r   Úcmdr   r%   Z
controllerr3   r   r   r   r#   i   s"    

r#   c                   @   s6   e Zd ZdgZddd„Zddd„Zd	d
„ Zdd„ ZdS )ÚBaseBrowserr   Ú c                 C   s   || _ || _d S ©N)r   r2   ©Úselfr   r   r   r   Ú__init__   s    zBaseBrowser.__init__r   Tc                 C   s   t ‚d S r7   )ÚNotImplementedError©r9   r&   r'   r(   r   r   r   r   ”   s    zBaseBrowser.openc                 C   s   |   |d¡S r)   r*   ©r9   r&   r   r   r   r   —   s    zBaseBrowser.open_newc                 C   s   |   |d¡S r,   r*   r=   r   r   r   r   š   s    zBaseBrowser.open_new_tabN)r6   )r   T)r   r	   r
   Úargsr:   r   r   r   r   r   r   r   r5   ‹   s
   

r5   c                   @   s   e Zd Zdd„ Zddd„ZdS )	r!   c                 C   sF   t |tƒr|| _dg| _n|d | _|dd … | _tj | j¡| _d S )Nr   r   r   )Ú
isinstanceÚstrr   r>   r0   r1   r2   r8   r   r   r   r:   ¢   s    


zGenericBrowser.__init__r   Tc                    s|   t  dˆ ¡ | jg‡ fdd„| jD ƒ }z8t jd d… dkrHt |¡}ntj|dd}| ¡  W S  tk
rv   Y dS X d S )	Núwebbrowser.openc                    s   g | ]}|  d ˆ ¡‘qS ©r   ©Úreplace©Ú.0Úargr+   r   r   Ú
<listcomp>®   s   ÿz'GenericBrowser.open.<locals>.<listcomp>é   ÚwinT)Ú	close_fdsF)	ÚsysÚauditr   r>   ÚplatformÚ
subprocessÚPopenÚwaitÚOSError©r9   r&   r'   r(   ÚcmdlineÚpr   r+   r   r   ¬   s    ÿzGenericBrowser.openN)r   T©r   r	   r
   r:   r   r   r   r   r   r!   ž   s   
r!   c                   @   s   e Zd Zddd„ZdS )r    r   Tc                    s€   | j g‡ fdd„| jD ƒ }t dˆ ¡ z<tjd d… dkrHt |¡}ntj|ddd}| ¡ d kW S  tk
rz   Y dS X d S )	Nc                    s   g | ]}|  d ˆ ¡‘qS rB   rC   rE   r+   r   r   rH   ¿   s   ÿz*BackgroundBrowser.open.<locals>.<listcomp>rA   rI   rJ   T)rK   Ústart_new_sessionF)	r   r>   rL   rM   rN   rO   rP   ÚpollrR   rS   r   r+   r   r   ¾   s    ÿÿzBackgroundBrowser.openN)r   T©r   r	   r
   r   r   r   r   r   r    º   s   r    c                   @   s@   e Zd ZdZdZdZddgZdZdZdZ	ddd„Z
dd	d
„ZdS )ÚUnixBrowserNFTú%actionr   c                 C   sÌ   g }|r*| j r*t|ƒ}| j | }|r*|g}| jg| | }|sD| jrLtj}nd }tj|d|| jrd|pfd |dd}	|r¢z|	 d¡}
|
 W S  tj	k
rž   Y dS X n&| jr¾|	 
¡ d kr¸dS dS n
|	 ¡  S d S )NT©rK   ÚstdinÚstdoutÚstderrrW   é   F)Ú
raise_optsÚintr   Ú
backgroundrO   ÚDEVNULLrP   Úredirect_stdoutrQ   ZTimeoutExpiredrX   )r9   r>   Zremoter(   r&   Z	raise_optÚoptrT   ZinoutrU   Úrcr   r   r   Ú_invokeÞ   s4    

 

 þ

zUnixBrowser._invoker   c                    sÀ   t  dˆ¡ |dkr| j‰ nB|dkr,| j‰ n2|dkrN| jd krF| j‰ q^| j‰ ntdd|  ƒ‚‡ ‡fdd„| jD ƒ}d	d„ |D ƒ}|  |d
|ˆ¡}|s¸‡fdd„| jD ƒ}|  |dd¡S d
S d S )NrA   r   r   r-   zBad 'new' parameter to open(); zexpected 0, 1, or 2, got %sc                    s    g | ]}|  d ˆ¡  dˆ ¡‘qS )r   r[   rC   rE   ©Úactionr&   r   r   rH     s   ÿz$UnixBrowser.open.<locals>.<listcomp>c                 S   s   g | ]}|r|‘qS r   r   rE   r   r   r   rH     s      Tc                    s   g | ]}|  d ˆ ¡‘qS rB   rC   rE   r+   r   r   rH     s     F)	rL   rM   Úremote_actionÚremote_action_newwinÚremote_action_newtabr   Úremote_argsrh   r>   )r9   r&   r'   r(   r>   Zsuccessr   ri   r   r     s*    
ÿÿzUnixBrowser.open)N)r   T)r   r	   r
   ra   rc   re   rn   rk   rl   rm   rh   r   r   r   r   r   rZ   Í   s   
#rZ   c                   @   s$   e Zd ZddgZdZdZdZdZdS )ÚMozillar[   r   r6   z-new-windowz-new-tabTN©r   r	   r
   rn   rk   rl   rm   rc   r   r   r   r   ro     s
   ro   c                   @   s,   e Zd ZddgZddgZdZdZdZdZd	S )
ÚNetscapeú-noraisez-raiseú-remoteúopenURL(%s%action)r6   ú,new-windowú,new-tabTN)	r   r	   r
   ra   rn   rk   rl   rm   rc   r   r   r   r   rq   &  s   rq   c                   @   s(   e Zd ZddgZddgZdZdZdZdS )	ÚGaleonrr   r6   r[   r   ú-nz-wTN)r   r	   r
   ra   rn   rk   rl   rc   r   r   r   r   rw   1  s
   rw   c                   @   s$   e Zd ZddgZdZdZdZdZdS )ÚChromer[   r   r6   ú--new-windowTNrp   r   r   r   r   ry   ;  s
   ry   c                   @   s$   e Zd ZddgZdZdZdZdZdS )ÚOperar[   r   r6   rz   TNrp   r   r   r   r   r{   G  s
   r{   c                   @   s(   e Zd ZddgZdZdZdZdZdZdS )ÚElinksrs   rt   r6   ru   rv   FN)	r   r	   r
   rn   rk   rl   rm   rc   re   r   r   r   r   r|   Q  s   r|   c                   @   s   e Zd Zddd„ZdS )Ú	Konquerorr   Tc                 C   sò   t  d|¡ |dkrd}nd}tj}ztjd||gd|||d}W n tk
rV   Y nX | ¡  dS z tjdd	|gd|||dd
}W n tk
r˜   Y nX | ¡ d krªdS z tjdd|gd|||dd
}W n tk
rà   Y dS X | ¡ d kS d S )NrA   r-   ZnewTabZopenURLÚ	kfmclientT)rK   r]   r^   r_   Ú	konquerorz--silentr\   Úkfmz-dF)rL   rM   rO   rd   rP   rR   rQ   rX   )r9   r&   r'   r(   rj   ÚdevnullrU   r   r   r   r   f  sN      þ
  ý
  ý
zKonqueror.openN)r   TrY   r   r   r   r   r}   _  s   r}   c                   @   s&   e Zd Zdd„ Zdd„ Zd
dd„Zd	S )ÚGrailc                 C   sâ   dd l }dd l}dd l}dd l}tj | ¡ d¡}| t 	¡ ¡d }tj | 
|¡| 
|¡d ¡}|  |¡}|std S | |j|j¡}	|D ]T}
z|	 |
¡ W n8 tk
rÒ   zt |
¡ W n tk
rÌ   Y nX Y qˆX |	  S qˆd S )Nr   z.grail-unixz-*)ÚglobÚpwdÚsocketÚtempfiler0   r1   ÚjoinZ
gettempdirÚgetpwuidÚgetuidÚescapeZAF_UNIXZSOCK_STREAMZconnectrR   Úunlink)r9   rƒ   r„   r…   r†   ZtempdirÚuserÚfilenameZmaybesÚsÚfnr   r   r   Ú_find_grail_rc˜  s,    ÿ
zGrail._find_grail_rcc                 C   s&   |   ¡ }|sdS | |¡ | ¡  dS )Nr   r   )r   ÚsendÚclose)r9   rj   rŽ   r   r   r   Ú_remote²  s    
zGrail._remoter   Tc                 C   s2   t  d|¡ |r |  d| ¡}n|  d| ¡}|S )NrA   zLOADNEW zLOAD )rL   rM   r“   )r9   r&   r'   r(   Úokr   r   r   r   º  s
    z
Grail.openN)r   T)r   r	   r
   r   r“   r   r   r   r   r   r‚   ”  s   r‚   c                  C   sâ  t  d¡rtdd tdƒƒ dtjkr>t  d¡r>tdd tdƒƒ dtjkrbt  d¡rbtdd tdƒƒ dtjkr†t  d¡r†tdttdƒƒ t  d¡r tdd tdƒƒ dD ]} t  | ¡r¤t| d t| ƒƒ q¤d	D ]} t  | ¡rÈt| d t| ƒƒ qÈt  d
¡rtd
ttd
ƒƒ nt  d¡r"tdttdƒƒ dD ]"} t  | ¡r&t| d t	| ƒƒ q&t  d¡rftdd tdƒƒ dD ]"} t  | ¡rjt| d t
| ƒƒ qjt  d¡rªtdd tdƒƒ t  d¡rÆtdd tdƒƒ t  d¡rÞtdtd ƒ d S )Nzxdg-openZGNOME_DESKTOP_SESSION_IDz	gvfs-openz
gnome-openZKDE_FULL_SESSIONr~   zx-www-browser)ÚfirefoxZ	iceweaselZiceapeÚ	seamonkey)zmozilla-firefoxzmozilla-firebirdÚfirebirdÚmozillaÚnetscaper€   r   )ZgaleonZepiphanyZ	skipstone)zgoogle-chromeÚchromeZchromiumzchromium-browserÚoperaZmosaicZgrail)r.   r/   r   r    r0   Úenvironr}   ro   rq   rw   ry   r{   r‚   )r$   r   r   r   Úregister_X_browsersÊ  sD    



r   c                  C   s.  g a tjdkrNtdd tdƒƒ tdd tdƒƒ tdd tdƒƒ 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 ]}t |¡r”t|d t|ƒƒ q”ntj	 
d¡sÒtj	 
d¡r&z(d ¡ }tj|tjd}| ¡  ¡ }W n  ttjttfk
r   Y nX |atƒ  tj	 
d¡rÀt d¡rPtdd tdƒƒ t d¡rltdd tdƒƒ t d¡rˆtdd tdƒƒ t d¡r¤tdd tdƒƒ t d¡rÀtdd tdƒƒ dtj	kr*tj	d  tj¡}| ¡  |D ]>}|dkrêt|dd}|d  d krêt|d t|ƒdd qêd S )!NÚdarwinÚMacOSXÚdefaultrš   r•   ZsafarirI   rJ   zwindows-defaultZPROGRAMFILESzC:\Program FileszInternet Explorer\IEXPLORE.EXEr—   r–   r˜   r™   r›   ZDISPLAYZWAYLAND_DISPLAYz$xdg-settings get default-web-browser)r_   ZTERMzwww-browserZlinksZelinksZlynxZw3mZBROWSERr6   Tr   r   )r   rL   rN   r   ÚMacOSXOSAScriptÚWindowsDefaultr0   r1   r‡   rœ   r   r.   r/   r    r   rO   Zcheck_outputrd   ÚdecodeÚstripÚFileNotFoundErrorZCalledProcessErrorÚPermissionErrorÚNotADirectoryErrorr   r   r!   r|   ÚpathsepÚreverser#   )Ziexplorer$   r4   Z
raw_resultÚresultZuserchoicesrT   r   r   r   r     s\    

ÿ  ÿ

r   rI   rJ   c                   @   s   e Zd Zddd„ZdS )r¢   r   Tc                 C   s:   t  d|¡ zt |¡ W n tk
r0   Y dS X dS d S )NrA   FT)rL   rM   r0   Z	startfilerR   r<   r   r   r   r   X  s    zWindowsDefault.openN)r   TrY   r   r   r   r   r¢   W  s   r¢   rž   c                   @   s   e Zd Zdd„ Zddd„ZdS )	rŸ   c                 C   s
   || _ d S r7   )r   r8   r   r   r   r:   s  s    zMacOSX.__init__r   Tc           	      C   s°   t  d|¡ d|krd| }tt|ƒƒ}| jdkrDd| dd¡ }n<| jdkrTd	}nd
|d  }d| dd¡ }d| j||f }t dd¡}|d kr˜dS | |¡ | 	¡ }| S )NrA   ú:zfile:r    úopen location "%s"ú"ú%22ZOmniWebr6   ztoWindow %dr   zOpenURL "%s"z‰tell application "%s"
                                activate
                                %s %s
                            end tellÚ	osascriptÚwF)
rL   rM   rb   Úboolr   rD   r0   ÚpopenÚwriter’   )	r9   r&   r'   r(   ÚscriptZtoWindowr4   Úosapiperg   r   r   r   r   v  s&    


ý
zMacOSX.openN)r   TrV   r   r   r   r   rŸ   i  s   
rŸ   c                   @   s   e Zd Zdd„ Zddd„ZdS )	r¡   c                 C   s
   || _ d S r7   )Ú_namer8   r   r   r   r:   ™  s    zMacOSXOSAScript.__init__r   Tc                 C   sb   | j dkrd| dd¡ }nd| j | dd¡f }t dd¡}|d krJdS | |¡ | ¡ }| S )	Nr    r¬   r­   r®   zž
                   tell application "%s"
                       activate
                       open location "%s"
                   end
                   r¯   r°   F)r¶   rD   r0   r²   r³   r’   )r9   r&   r'   r(   r´   rµ   rg   r   r   r   r   œ  s    
û
zMacOSXOSAScript.openN)r   TrV   r   r   r   r   r¡   ˜  s   r¡   c            	   
   C   sî   dd l } dtjd  }z|   tjdd … d¡\}}W nJ | jk
r~ } z*t|tjd t|tjd t d¡ W 5 d }~X Y nX d}|D ]"\}}|dkržd}qˆ|dkrˆd}qˆt|ƒdkrÐt|tjd t d¡ |d }t||ƒ td	ƒ d S )
Nr   zDUsage: %s [-n | -t] url
    -n: open new window
    -t: open new tabr   Zntd)Úfilerx   z-tr-   ú)	ÚgetoptrL   ÚargvÚerrorÚprintr_   ÚexitÚlenr   )	r¹   ZusageZoptsr>   ÚmsgZnew_winÚoÚar&   r   r   r   Úmain°  s,    þ  

rÂ   Ú__main__)N)N)r   T)*r0   r   r.   rL   rO   Z	threadingÚ__all__Ú	Exceptionr   ÚRLockr   r   r   r   r   r   r   r   r   r#   Úobjectr5   r!   r    rZ   ro   rq   rw   ry   ZChromiumr{   r|   r}   r‚   r   r   rN   r¢   rŸ   r¡   rÂ   r   r   r   r   r   Ú<module>   sP   
"
"O

	
56AK/
