ó
    Ö›‘hµ  ã                   óÀ   • S r SSKJr   " S S\5      r " S S\5      r " S S\5      r " S	 S
\5      r " S S5      r " S S5      r	 " S S\5      r
 " S S\5      rg)z
Parser for inetd.conf files
é    )ÚOptionalc                   ó   • \ rS rSrSrSrg)ÚInvalidConfErroré   z
Invalid configuration file
© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Ú\C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/runner/inetdconf.pyr   r      ó   † ôr   r   c                   ó   • \ rS rSrSrSrg)ÚInvalidInetdConfErroré   z
Invalid inetd.conf file
r   Nr   r   r   r   r   r      r   r   r   c                   ó   • \ rS rSrSrSrg)ÚInvalidServicesConfErroré   z
Invalid services file
r   Nr   r   r   r   r   r      r   r   r   c                   ó   • \ rS rSrSrSrg)ÚUnknownServiceé   z
Unknown service name
r   Nr   r   r   r   r   r      r   r   r   c                   óH   • \ rS rSr% SrSrSr\\   \	S'   S
S jr
S rS rS	rg)ÚSimpleConfFileé%   z¾
Simple configuration file parser superclass.

Filters out comments and empty lines (which includes lines that only
contain comments).

To use this class, override parseLine or parseFields.
Ú#NÚdefaultFilenamec                 ó˜  • SnUc(  U R                   (       a  [        U R                   5      nSn UR                  5        HS  nUR                  U R                  5      nUS:w  a  USU nUR                  5       nU(       d  MB  U R                  U5        MU     U(       a  UR                  5         gg! U(       a  UR                  5         f f = f)zw
Parse a configuration file

If file is None and self.defaultFilename is set, it will open
defaultFilename and use it.
FNTéÿÿÿÿ)r   ÚopenÚ	readlinesÚfindÚcommentCharÚstripÚ	parseLineÚclose)ÚselfÚfiler(   ÚlineÚcomments        r   Ú	parseFileÚSimpleConfFile.parseFile2   s­   € ð ˆØ‰<˜D×0×0Ü˜×,Ñ,Ó-ˆDØˆEð	ØŸ™Ö(�àŸ)™) D×$4Ñ$4Ó5�Ø˜b“=Ø  ˜>�Dð —z‘z“|�ö Ùà—‘˜tÖ$ñ )ö Ø—
‘
•ð øŽuØ—
‘
•ð ús   ¯A'B/ Â/C	c                 óŠ   •  U R                   " UR                  5       6   g! [         a    [        S[	        U5      -   5      ef = f)zu
Override this.

By default, this will split the line on whitespace and call
self.parseFields (catching any errors).
zInvalid line: N)ÚparseFieldsÚsplitÚ
ValueErrorr   Úrepr)r)   r+   s     r   r'   ÚSimpleConfFile.parseLineQ   sB   € ð	GØ×Ò˜dŸj™j›lÒ+øÜó 	GÜ'Ð(8¼4À»:Ñ(EÓFÐFð	Gús	   ‚   "Ac                 ó   • g)z
Override this.
Nr   )r)   Úfieldss     r   r0   ÚSimpleConfFile.parseFields]   s   � r   r   ©N)r	   r
   r   r   r   r%   r   r   ÚstrÚ__annotations__r-   r'   r0   r   r   r   r   r   r   %   s,   ‡ ñð €KØ%)€O�X˜c‘]Ó)ôò>
Gõr   r   c                   óB   • \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrS rSrg)ÚInetdServiceéc   z+
A simple description of an inetd service.
Nc
                 óp   • Xl         X l        X0l        X@l        XPl        X`l        Xpl        X€l        X�l        g r8   )	ÚnameÚportÚ
socketTypeÚprotocolÚwaitÚuserÚgroupÚprogramÚprogramArgs)
r)   r?   r@   rA   rB   rC   rD   rE   rF   rG   s
             r   Ú__init__ÚInetdService.__init__r   s2   € ð Œ	ØŒ	Ø$ŒØ ŒØŒ	ØŒ	ØŒ
ØŒØ&Õr   )	rE   r?   r@   rF   rG   rB   rA   rD   rC   )r	   r
   r   r   r   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   r   r   r   r   r<   r<   c   s;   † ñð €DØ€DØ€JØ€HØ€DØ€DØ€EØ€GØ€Kõ'r   r<   c                   ó,   • \ rS rSrSrSrSS jrS rSrg)	Ú	InetdConfé€   z6
Configuration parser for a traditional UNIX inetd(8)
z/etc/inetd.confNc                 óX   • / U l         Uc  [        5       nUR                  5         Xl        g r8   )ÚservicesÚServicesConfr-   ÚknownServices)r)   rP   s     r   rH   ÚInetdConf.__init__‡   s(   € ØˆŒàÑ Ü(›NˆMØ×#Ñ#Ô%Ø*Õr   c                 ót  • UR                  S5      S/-   SS u  pXU R                  R                  R                  X4S5      n	U	(       d$  UR	                  S5      (       d   [        U5      n	SnU R                  R                  [        UU	UUUUUUU5	      5        g! [         a    [        SU SU S35      ef = f)	z`
Parse an inetd.conf file.

Implemented from the description in the Debian inetd.conf man page.
Ú.Né   zrpc/ÚunknownzUnknown service: z (Ú))
r1   rP   rN   ÚgetÚ
startswithÚintÚBaseExceptionr   Úappendr<   )
r)   ÚserviceNamerA   rB   rC   rD   rF   rG   rE   r@   s
             r   r0   ÚInetdConf.parseFields�   sÒ   € ð —z‘z #“¨$¨Ñ/°°!Ð4‰ˆð ×!Ñ!×*Ñ*×.Ñ.°Ð/FÈÓMˆÞ˜H×/Ñ/°×7Ñ7ðUÜ˜;Ó'�Ø'�ð 	�‰×ÑÜØØØØØØØØØó
õ	
øô !ó UÜ$Ð'8¸¸ÀRÈÀzÐQRÐ%SÓTÐTðUús   Á B ÂB7)rP   rN   r8   ©	r	   r
   r   r   r   r   rH   r0   r   r   r   r   rK   rK   €   s   † ñð (€Oô+õ"
r   rK   c                   ó(   • \ rS rSrSrSrS rS rSrg)rO   é´   z^
/etc/services parser

@ivar services: dict mapping service names to (port, protocol) tuples.
z/etc/servicesc                 ó   • 0 U l         g r8   ©rN   )r)   s    r   rH   ÚServicesConf.__init__½   s	   € Øˆ�r   c                 óÚ   •  UR                  S5      u  pE[        U5      nX@R
                  X4'   U H  nX@R
                  Xe4'   M     g ! [         a    [        S[	        U5       35      ef = f)NÚ/zInvalid port/protocol: )r1   rY   rZ   r   r3   rN   )r)   r?   ÚportAndProtocolÚaliasesr@   rB   Úaliass          r   r0   ÚServicesConf.parseFieldsÀ   sz   € ð	Ø,×2Ñ2°3Ó7‰NˆDÜ�t“9ˆDð +/�‰�tÐ&Ñ'ÛˆEØ/3�M‰M˜5Ð+Ó,ò øô ó 	Ü*Ø)¬$¨Ó*?Ð)@ÐAóð ð	ús   ‚A Á"A*rb   Nr^   r   r   r   rO   rO   ´   s   † ñð &€Oòõ4r   rO   N)r   Útypingr   Ú	Exceptionr   r   r   r   r   r<   rK   rO   r   r   r   Ú<module>rl      so   ðñ
õ ô�yô ôÐ,ô ôÐ/ô ô�Yô ÷;ñ ;÷|'ñ 'ô:1
�ô 1
ôh4�>õ 4r   