ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
    gii^                     f   	 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d0dddZd0dZd1d	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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jH                  dd% d&k(  r G d' d(e      Z%ejH                  d)k(  r G d* d+e      Z& G d, d-e      Z'd. Z(e)d/k(  r e(        yy)2    N)Erroropenopen_newopen_new_tabgetregisterc                       e Zd Zy)r   N)__name__
__module____qualname__     #/usr/lib64/python3.12/webbrowser.pyr   r      s    r   r   F	preferredc                   	 t         5  t        
t                ||gt        | j	                         <   |st
        r#|  dt
        k(  rt        j                  d|        nt        j                  |        d d d        y # 1 sw Y   y xY w)Nz.desktopr   )_lock	_tryorderregister_standard_browsers	_browserslower_os_preferred_browserinsertappend)nameklassinstancer   s       r   r   r      sh    '	&(#(("3	$**,
 .dV83DH]3]Q%T" 
s   A*A;;Bc                    	 t         t        5  t         
t                d d d        | | g}nt         }|D ]u  }d|v r:t        j                  |      }|d   dk(  rt        |d d       c S t        |      c S 	 t        |j                            }|d   |d   c S |d   k |d          c S  t        d      # 1 sw Y   xY w# t        $ r t        |      }Y Lw xY w)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    M *,  w 7?kk'*Gr{c!("66%g../#GMMO4 qz%qz!'!wqz|##  $ 3
443 U&  /%g./s   B87C8CCCc                     	 t         t        5  t         
t                d d d        t         D ]"  }t        |      }|j	                  | ||      s" y y# 1 sw Y   5xY w)NTF)r   r   r   r   r   )urlnew	autoraiser   r+   s        r   r   r   H   sX    
  *,  d)<<S),   Us   AAc                     	 t        | d      S Nr"   r   r.   s    r   r   r   ^        Q<r   c                     	 t        | d      S N   r3   r4   s    r   r   r   e   r5   r   c                   	 | j                         d   }t        j                  |      sd d gS t        j                  j                  |      }	 t        |j                            }|d   }|rp|j                         |j
                  k(  rSdd l	}|j                  |      }| |_
        t        j                  j                  |       |_        t        | d ||       d |gS d d gS # t        $ r d d gcY S w xY w)Nr   r"   )r   r   )r$   shutilwhichospathbasenamer   r   r'   copyr   r   )r+   r   cmdr   r,   
controllerr?   s          r   r(   r(   m   s    
 --/!
C<<d|77C DDJJL) Jdjjlj&9&99YYz*
!
 gg..w7
$yIj!!$<  d|s   C   C0/C0c                   @    e Zd Z	 dgZddZd	dZd Zd Zed        Z	y)
BaseBrowserr   c                      || _         || _        y N)r   r>   selfr   s     r   __init__zBaseBrowser.__init__   s    	r   c                     t         rE   )NotImplementedErrorrG   r.   r/   r0   s       r   r   zBaseBrowser.open   s    !!r   c                 &    | j                  |d      S r2   r3   rG   r.   s     r   r   zBaseBrowser.open_new       yya  r   c                 &    | j                  |d      S r7   r3   rM   s     r   r   zBaseBrowser.open_new_tab   rN   r   c                 f    	 | r.| j                         j                  d      rt        d|        y y )N-zInvalid URL: )lstrip
startswith
ValueErrorr4   s    r   
_check_urlzBaseBrowser._check_url   s4    Q3::<**3/}SE233 03r   N) r   T)
r
   r   r   argsrH   r   r   r   staticmethodrU   r   r   r   rC   rC      s4    =6D"!! 4 4r   rC   c                       e Zd Z	 d ZddZy)r&   c                     t        |t              r|| _        dg| _        n|d   | _        |dd  | _        t        j
                  j                  | j                        | _        y )Nr   r   r"   )
isinstancestrr   rX   r<   r=   r>   rF   s     r   rH   zGenericBrowser.__init__   sP    dC DIDI QDIQRDI((3r   c                    t        j                  d|       | j                  |       | j                  g| j                  D cg c]  }|j                  d|       c}z   }	 t         j                  d d dk(  rt        j                  |      }nt        j                  |d      }|j                          S c c}w # t        $ r Y yw xY w)Nwebbrowser.openr      winT)	close_fdsF)sysauditrU   r   rX   replaceplatform
subprocessPopenwaitOSErrorrG   r.   r/   r0   argcmdlineps          r   r   zGenericBrowser.open   s    		#S)99+,0II!7,5S "%T3!7,5!7 7	||BQ5($$W-$$W=vvx<!7  		s   B5!AB: :	CCNrW   r
   r   r   rH   r   r   r   r   r&   r&      s    ,4r   r&   c                       e Zd Z	 ddZy)r%   c                    | j                   g| j                  D cg c]  }|j                  d|       c}z   }t        j                  d|       | j                  |       	 t        j                  d d dk(  rt        j                  |      }nt        j                  |dd      }|j                         d u S c c}w # t        $ r Y yw xY w)Nr   r_   r`   ra   T)rb   start_new_sessionF)r   rX   re   rc   rd   rU   rf   rg   rh   pollrj   rk   s          r   r   zBackgroundBrowser.open   s    99+,0II!7,5S "%T3!7,5!7 7		#S)	||BQ5($$W-$$W7;=FFH$%!7  		s   B7!AB< <	CCNrW   r
   r   r   r   r   r   r   r%   r%      s    r   r%   c                   >    e 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y)
UnixBrowserNFT%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                  xr |xs d |d      }	|r	 |	j                  d      }
|
 S | j                  r|	j                         yy|	j                          S # t        j                  $ r Y yw xY w)NTrb   stdinstdoutstderrrr      F)
raise_optsintr   
backgroundrg   DEVNULLrh   redirect_stdoutri   TimeoutExpiredrs   )rG   rX   remoter0   r.   	raise_optoptrm   inoutrn   rcs              r   _invokezUnixBrowser._invoke   s    	dooII//),CI99+	)D0T__&&E EWE%)%9%9%Ce%Kt$)TC VVAYv __vvxvvx< ,, s   C C-,C-c                    t        j                  d|       |dk(  r| j                  }nN|dk(  r| j                  }n<|dk(  r&| j                  | j                  }n| j                  }nt        dd|z  z         | j                  |j                  d|             | j                  D cg c]$  }|j                  d|      j                  d|      & }}|D cg c]  }|s|	 }}| j                  |d	||      }|s<| j                  D cg c]  }|j                  d|       }}| j                  |d
d
      S y	c c}w c c}w c c}w )Nr_   r   r"   r8   zBad 'new' parameter to open(); zexpected 0, 1, or 2, got %srw   r   TF)rc   rd   remote_actionremote_action_newwinremote_action_newtabr   rU   re   remote_argsr   rX   )rG   r.   r/   r0   actionrl   rX   successs           r   r   zUnixBrowser.open  sH   		#S)!8''FAX..FAX((0222295;< = = 	Iv67  ++-+C Iv.66tSA+ 	 -#+tst+,,tT9c:6:ii@isCKKc*iD@<<eU33-+ As   &)D6D;D;E rE   rW   )r
   r   r   r~   r   r   r   r   r   r   r   r   r   r   r   rv   rv      s<    GJJO d#KM! Fr   rv   c                   &    e Zd Z	 ddgZdZdZdZdZy)Mozillarw   r   rV   z-new-windowz-new-tabTNr
   r   r   r   r   r   r   r   r   r   r   r   r   *  s%    .d#KM(%Jr   r   c                   *    e Zd Z	 ddgZddgZdZdZdZy)	Epiphanyz-noraiserV   rw   r   -nz-wTN)r
   r   r   r~   r   r   r   r   r   r   r   r   r   4  s)    .b!Jd#KMJr   r   c                   &    e Zd Z	 ddgZdZdZdZdZy)Chromerw   r   rV   --new-windowTNr   r   r   r   r   r   >  s%    /d#KM)Jr   r   c                   &    e Zd Z	 ddgZdZdZdZdZy)Operarw   r   rV   r   TNr   r   r   r   r   r   J  s%    'd#KM)Jr   r   c                   *    e Zd Z	 ddgZdZdZdZdZdZy)Elinksz-remotezopenURL(%s%action)rV   z,new-windowz,new-tabFN)	r
   r   r   r   r   r   r   r   r   r   r   r   r   r   T  s-    )23KM(%J Or   r   c                       e Zd Z	 ddZy)	Konquerorc                    t        j                  d|       | j                  |       |dk(  rd}nd}t        j                  }	 t        j
                  d||gd|||      }|j                          y# t        $ r Y nw xY w	 t        j
                  dd	|gd|||d
      }|j                         y# t        $ r Y nw xY w	 t        j
                  dd|gd|||d
      }|j                         d u S # t        $ r Y yw xY w)Nr_   r8   newTabopenURL	kfmclientT)rb   rz   r{   r|   	konquerorz--silentry   kfmz-dF)	rc   rd   rU   rg   r   rh   ri   rj   rs   )rG   r.   r/   r0   r   devnullrn   s          r   r   zKonqueror.openi  s&   		#S)!8FF$$
	  +vs!;+/w(/AA FFH  			  +z3!?+/w(/379A vvx  			&  %s!3+/w(/379A FFH$%  		s6   A1 1	A=<A=B0 0	B<;B< C0 0	C<;C<NrW   rt   r   r   r   r   r   b  s    ,&r   r   c                   &    e Zd Z	 ddgZdZdZdZdZy)Edgerw   r   rV   r   TNr   r   r   r   r   r     s%    0d#KM)Jr   r   c                     t        j                  d      rt        dd t        d             t        j                  d      rt        dd t        g d             dt        j
                  v r+t        j                  d      rt        dd t        d             dt        j
                  v r/t        j                  d      rt        dt        t        d             t        j                  d      rt        dd t        d             d	D ].  } t        j                  |       st        | d t        |              0 t        j                  d
      rt        d
t        t        d
             n/t        j                  d      rt        dt        t        d             t        j                  d      rt        dd t        d             dD ].  } t        j                  |       st        | d t        |              0 t        j                  d      rt        dd t        d             t        j                  d      rt        dd t        d             y y )Nzxdg-opengio)r   r   z--r   GNOME_DESKTOP_SESSION_IDz	gvfs-openKDE_FULL_SESSIONr   zx-www-browser)firefox	iceweasel	seamonkeyzmozilla-firefoxmozillar   r   epiphany)zgoogle-chromechromechromiumzchromium-browseroperamicrosoft-edge)r:   r;   r   r%   r<   environr   r   r   r   r   r   )r+   s    r   register_X_browsersr     s    ||JT#4Z#@A ||E/0KLM "RZZ/FLL4Md$5k$BC RZZ'FLL,Ei;)?@ ||O$$(9/(JK<< WdGG$45 ||E	9U#34	k	"i;)?@ ||JT8J#78 O<< WdF7O4 O
 ||G$g/ ||$%!4.>)?@ &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(  rt        dt               t        j                  j                  t        j                  j                  dd      d      } t        j                  j                  t        j                  j                  dd      d      }ddddd| |fD ].  }t        j                  |      st        |d t        |             0 t        j                  d      rt        dd t        d             nt        j                  j                  d      st        j                  j                  d      r`	 dj                         }t!        j"                  |t         j$                        }|j'                         j)                         }|at5                t        j                  j                  d      rt        j                  d      rt        dd t7        d             t        j                  d      rt        dd t7        d             t        j                  d      rt        dd t9        d             t        j                  d      rt        dd t7        d             t        j                  d      rt        dd t7        d             d t        j                  v ryt        j                  d    j                  t        j:                        }|j=                          |D ]3  }|d!k7  s	t?        |d"#      }|d$   t        |d t7        |      d"#       5 y y # t,        t         j.                  t0        t2        f$ r Y w xY w)%NdarwinMacOSXdefaultr   r   safari
serenityosBrowserr`   ra   zwindows-defaultzPROGRAMFILES(x86)zC:\Program Files (x86)z%Microsoft\Edge\Application\msedge.exePROGRAMFILESzC:\Program Filesr   r   r   zMicrosoftEdge.exer   DISPLAYWAYLAND_DISPLAYz$xdg-settings get default-web-browser)r|   TERMzwww-browserlinkselinkslynxw3mBROWSERrV   Tr   r"   ) r   rc   rf   r   MacOSXOSAScriptr%   WindowsDefaultr<   r=   joinr   r   r:   r;   r   r$   rg   check_outputr   decodestripr   FileNotFoundErrorCalledProcessErrorPermissionErrorNotADirectoryErrorr   r&   r   pathsepreverser(   )edge64edge32r+   r@   
raw_resultresultuserchoicesrm   s           r   r   r     s   I
||x4!;<4!:;D/)"<=4!:; |||#D"3I">?
||BQ5 "N3 bjjnn-@B[\HJ bjjnn^=PQHJ!;	81G||G$$(9'(BC1 <<+,%tT2E-FG ::>>)$

7H(I/<BBD'44SASAST
#**,224
 )/%! ::>>&!||M*n].KL||G$$w(?@||H%4)9:||F#~f'=>||E"nU&;< BJJjj+11"**= #G"}!'T:q6>WdN7,CtT	 # 7 &z'D'DoWij s    AO #O('O(r`   ra   c                       e Zd ZddZy)r   c                     t        j                  d|       | j                  |       	 t        j                  |       y# t
        $ r Y yw xY w)Nr_   TF)rc   rd   rU   r<   	startfilerj   rK   s       r   r   zWindowsDefault.open6  sI    II'-OOC S!    s   ? 	A
ANrW   rt   r   r   r   r   r   5  s    
	r   r   r   c                       e Zd Z	 d ZddZy)r   c                 x    t        j                  | j                  j                   dt        d       || _        y )Nz3 is deprecated in 3.11 use MacOSXOSAScript instead.r8   
stacklevelwarningswarn	__class__r
   DeprecationWarningr   rF   s     r   rH   zMacOSX.__init__R  s5    MMT^^445 6: :;MZ[]DIr   c                    t        j                  d|       d|vrd|z   }t        t        |            }| j                  dk(  rd|j                  dd      z  }nE| j                  dk(  rd	}nd
|dz
  z  }d|j                  dd      z  }d| j                  d|d|d}t        j                  dd      }|y|j                  |       |j                         }| S )Nr_   :zfile:r   open location "%s""%22OmniWebrV   ztoWindow %dr"   zOpenURL "%s"ztell application "zK"
                                activate
                                 z%
                            end tell	osascriptwF)
rc   rd   r   boolr   re   r<   popenwriteclose)	rG   r.   r/   r0   scripttoWindowr@   osapiper   s	            r   r   zMacOSX.openW  s    II'- #:ck d3i.CyyI%-C0GG 99	)!H  -a8H$s{{3'>> ,099c8E
 hh{C0GMM&!B6Mr   NrW   ro   r   r   r   r   r   H  s    		
 	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   c                 $    t         |   |       y rE   )superrH   )rG   r   r   s     r   rH   zMacOSXOSAScript.__init__z  s    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.r8   r   r   )rG   s    r   _namezMacOSXOSAScript._name}  sK    MMT^^445 6""&.."9"9!:.J,< 99r   c                     t        j                  | j                  j                   d| j                  j                   dt        d       || _        y r   r   )rG   vals     r   r   zMacOSXOSAScript._name  sH    MMT^^445 6""&.."9"9!:.J,< DIr   c                 V   t        j                  d|       | j                  |       | j                  dk(  rd|j	                  dd      z  }n!d| j                  |j	                  dd      fz  }t        j                  dd      }|y	|j                  |       |j                         }| S )
Nr_   r   r   r   r   z
                   tell application "%s"
                       activate
                       open location "%s"
                   end
                   r   r   F)	rc   rd   rU   r   re   r<   r   r   r   )rG   r.   r/   r0   r   r   r   s          r   r   zMacOSXOSAScript.open  s    II'-OOC yyI%-C0GG
 		3;;sE#:;< hh{C0GMM&!B6Mr   )r   rW   )	r
   r   r   rH   propertyr   setterr   __classcell__)r   s   @r   r   r   y  s9    	# 
	 
	 
	 
		r   r   c                     dd l } dt        j                  d   z  }	 | j                  t        j                  dd  ddg      \  }}d}D ]O  \  }}|dk(  rd}|dk(  rd	}|d
k(  s|dk(  s!t	        |t        j
                         t        j                          Q t              dk7  r0t	        |t        j
                         t        j                  d       |d   }t        ||       t	        d       y # | j                  $ rV}t	        |t        j
                         t	        |t        j
                         t        j                  d       Y d }~d }~ww xY w)Nr   zcUsage: %s [-n | -t | -h] url
    -n: open new window
    -t: open new tab
    -h, --help: show helpr"   ntdhhelp)filer   z-tr8   z-hz--help)	getoptrc   argverrorprintr|   exitlenr   )	r  usageoptsrX   msgnew_winoar.   s	            r   mainr    s     #xx{+E]]388AB<A
d
 G19g$Y!$Y!x-%cjj)HHJ  4yA~e#**%
q'Cg	$K% << c

#e#**%s   (C5 5EAEE__main__rE   rW   )*r<   r#   r:   rc   rg   	threadingr   __all__	Exceptionr   RLockr   r   r   r   r   r   r   r   r   r(   objectrC   r&   r%   rv   r   r   r   Chromiumr   r   r   r   r   r   rf   r   r   r   r  r
   r   r   r   <module>r     s|   E 
   
   
J	I 	 				 #e #5D, ', D4& 42[ : (N+ Nbk { [  K [ 3& 3&l; "2AjMUl <<u " <<8/ /b%+ %P8 zF r   