
    ,hhw                         S SK r S SKrSS/rS rS r " S S\5      r " S S5      r " S	 S5      r\	S
:X  a  \
" \" 5       5        gg)    NnetrcNetrcParseErrorc                  V    [         R                  S:H  =(       a    [        [         S5      $ )Nposixgetuid)osnamehasattr     ./opt/python-3.13.8/usr/lib/python3.13/netrc.py_can_security_checkr   
   s    77g7'"h"77r   c                 j     SS K nUR                  U 5      S   $ ! [        [        4 a    SU  3s $ f = f)Nr   zuid )pwdgetpwuidImportErrorLookupError)uidr   s     r   	_getpwuidr      s>    ||C ##% cU|s    22c                   $    \ rS rSrSS jrS rSrg)r      Nc                 R    X l         X0l        Xl        [        R	                  X5        g N)filenamelinenomsg	Exception__init__)selfr   r   r   s       r   r   NetrcParseError.__init__   s     4%r   c                 Z    U R                   < SU R                  < SU R                  < S3$ )Nz (z, line ))r   r   r   )r   s    r   __str__NetrcParseError.__str__   s    %)XXt}}dkkJJr   )r   r   r   )NN)__name__
__module____qualname____firstlineno__r   r#   __static_attributes__r   r   r   r   r      s    &Kr   c                   ,    \ rS rSrS rS rS rS rSrg)	_netrclex#   c                 :    SU l         Xl        SU l        / U l        g )N   z
	 )r   instream
whitespacepushback)r   fps     r   r   _netrclex.__init__$   s    #r   c                 r    U R                   R                  S5      nUS:X  a  U =R                  S-  sl        U$ )Nr.   
)r/   readr   )r   chs     r   
_read_char_netrclex._read_char*   s0    ]]":KK1K	r   c                    U R                   (       a  U R                   R                  S5      $ Sn[        U R                  S5      nU H  nX0R                  ;   a  M  US:X  a1  U H)  nUS:X  a  Us  s  $ US:X  a  U R                  5       nX-  nM+     MK  US:X  a  U R                  5       nX-  nU H2  nX0R                  ;   a  Us  s  $ US:X  a  U R                  5       nX-  nM4     M     U$ )Nr    "\)r1   popiterr8   r0   )r   tokenfiterr7   s       r   	get_token_netrclex.get_token0   s    ====$$Q''T__b)B__$SyBSy$t!__.KE   :*BB__,$t!__.KE   ( r   c                 :    U R                   R                  U5        g r   )r1   append)r   r@   s     r   
push_token_netrclex.push_tokenK   s    U#r   )r/   r   r1   r0   N)	r%   r&   r'   r(   r   r8   rB   rF   r)   r   r   r   r+   r+   #   s    6$r   r+   c                   6    \ rS rSrS	S jrS rS rS rS rSr	g)
r   O   Nc                    US L nUc=  [         R                  R                  [         R                  R                  S5      S5      n0 U l        0 U l         [        USS9 nU R                  XU5        S S S 5        g ! , (       d  f       g = f! [         a:    [        USS9 nU R                  XU5        S S S 5         g ! , (       d  f        g = ff = f)N~z.netrczutf-8)encodinglocale)	r   pathjoin
expanduserhostsmacrosopen_parseUnicodeDecodeError)r   filedefault_netrcr2   s       r   r   netrc.__init__P   s    <77<< 2 23 7BD
	5dW-Dm4 .--! 	5dX."Dm4 /...	5sH   
B A:1B :
BB B CB<2C<
C	CCc                    [        U5      n UR                  nUR                  5       =pgU(       d  g US   S:X  a;  UR                  U:X  a)  [        U5      S:X  a  UR                  R                  5         Mj  US:X  a  UR                  5       nOUS:X  a  SnOUS:X  a  UR                  5       n/ U R                  U'    UR                  R                  5       n	U	(       d  [        SXR                  5      eU	S:X  a  O U R                  U   R                  U	5        M^  GM  [        S	U-  XR                  5      eU(       d  [        S
U-  XR                  5      eS=n
=p0 U R                  U'    UR                  nUR                  5       nUR                  S5      (       a,  UR                  U:X  a  UR                  R                  5         M_  US;   a#  XU4U R                  U'   UR                  U5        OfUS:X  d  US:X  a  UR                  5       n
OGUS:X  a  UR                  5       nO0US:X  a  UR                  5       nO[        SU-  XR                  5      eM  U R                  X#U R                  U   S   5        GMp  )Nr.   r   #machinedefaultmacdefz.Macro definition missing null line terminator.r5   zbad toplevel token %rzmissing %r namer;   >   r;   r]   r\   r[   loginuseraccountpasswordzbad follower token %r)r+   r   rB   lenr/   readlinerR   r   rE   rQ   
startswithrF   _security_check)r   rV   r2   rW   lexersaved_linenotopleveltt	entrynameliner^   r`   ra   prev_linenos                 r   rT   netrc._parse]   sN   " <<L!OO--HA#<<</CGqLNN++-y!OO-	y%	x!OO-	)+I& >>224D-L ,,0 0 t| KK	*11$7  %+b0$F F %&7"&<dLLQQ *,+E+G$&DJJy!#ll__&==%%||{2//1==-2X,FDJJy)$$R(7]bFl!OO-E9_#oo/G:%$0H)*AB*F*.> >% (   DJJy4I!4LMy r   c                    [        5       (       a  U(       a  US:w  a  [        R                  " UR                  5       5      n[        R                  " 5       nUR
                  U:w  a2  [        UR
                  5      n[        U5      n[        SU SU S35      eUR                  [        R                  [        R                  -  -  (       a  [        S5      eg g g g )N	anonymousz~/.netrc file owner (z, z) does not match current userzY~/.netrc access too permissive: access permissions must restrict access to only the owner)r   r   fstatfilenor   st_uidr   r   st_modestatS_IRWXGS_IRWXO)r   r2   rW   r^   propcurrent_user_idfownerr_   s           r   re   netrc._security_check   s      ]u7K88BIIK(D iikO{{o-"4;;/ 1%,VHBtf =% %' ' t|| ;<%!" " = 8L] r   c                 ~    XR                   ;   a  U R                   U   $ SU R                   ;   a  U R                   S   $ g )Nr\   )rQ   )r   hosts     r   authenticatorsnetrc.authenticators   s9    ::::d##$**$::i((r   c                 ^   SnU R                   R                  5        HC  nU R                   U   nUSU SUS    S3-  nUS   (       a  USUS    S3-  nUSUS	    S3-  nME     U R                  R                  5        H+  nUS
U S3-  nU R                  U    H  nX-  nM	     US-  nM-     U$ )Nr;   zmachine z
	login r   r5   r.   z		account z
	password    zmacdef )rQ   keysrR   )r   repr|   attrsmacrork   s         r   __repr__netrc.__repr__   s    JJOO%DJJt$EXdV:eAhZr::CQxE!H:R00[q
"--C & [[%%'EWUG2&&CE* +4KC	 (
 
r   )rQ   rR   r   )
r%   r&   r'   r(   r   rT   re   r}   r   r)   r   r   r   r   r   O   s    5>N@" r   __main__)r   rt   __all__r   r   r   r   r+   r   r%   printr   r   r   <module>r      s]   
 %
&8
	Ki 	K)$ )$Xu un z	%'N r   