ó
    Ö›‘h  ã                  ób  • S r SSKJr  SSKrSSKJr  SSKJrJr  SSK	J
rJr  SSKJrJr  SSKJrJr  SS	KJr  S
 r
S r " S S\R,                  \R.                  5      r\(       d  \R2                  S:¼  a  \\\\\4   4   rO\r " S S\\R:                  5      r " S S\R:                  5      rg)z1
Postfix mail transport agent related protocols.
é    )ÚannotationsN)ÚUserDict)ÚTYPE_CHECKINGÚUnion)ÚquoteÚunquote)ÚdeferÚprotocol)ÚbasicÚpolicies)Úlogc                óh   • [        U 5      n[        U[        5      (       a  UR                  S5      nU$ ©NÚascii)Ú_quoteÚ
isinstanceÚstrÚencode©ÚsÚquoteds     Ú]C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/protocols/postfix.pyr   r      s+   € Ü�A‹Y€FÜ�&œ#×ÑØ—‘˜wÓ'ˆØ€Mó    c                ó†   • [        U [        5      (       a  U R                  S5      n [        U 5      nUR	                  S5      $ r   )r   ÚbytesÚdecodeÚ_unquoter   r   s     r   r   r      s5   € Ü�!”U×ÑØ�H‰H�WÓˆÜ�a‹[€FØ�=‰=˜Ó!Ð!r   c                  óN   • \ rS rSrSrSrSrS rSS jrS r	S r
S	 rS
 rS rSrg)ÚPostfixTCPMapServeré$   ac  
Postfix mail transport agent TCP map protocol implementation.

Receive requests for data matching given key via lineReceived,
asks it's factory for the data with self.factory.get(key), and
returns the data to the requester. None means no entry found.

You can use postfix's postmap to test the map service::

/usr/sbin/postmap -q KEY tcp:localhost:4242

iX  ó   
c                ó:   • U R                  U R                  5        g ©N)Ú
setTimeoutÚtimeout)Úselfs    r   ÚconnectionMadeÚ"PostfixTCPMapServer.connectionMade5   s   € Ø�‰˜Ÿ™Õ%r   c                ób   • U R                  [        U5      R                  S5      S-   U-   5        g)z(
Send an SMTP-like code with a message.
r   ó    N)ÚsendLiner   r   )r&   ÚcodeÚmessages      r   ÚsendCodeÚPostfixTCPMapServer.sendCode8   s)   € ð 	�‰”c˜$“i×&Ñ& wÓ/°$Ñ6¸Ñ@ÕAr   c                óÀ  • U R                  5          UR                  S S5      u  p# [        U SUR	                  S5      -   5      n U" U5        g ! [         a    UnS n N9f = f! [
         aN    [        [        R                  " 5       S   5      R                  S5      nU R                  SSU-   S-   U-   5         g f = f! [         a    U R                  SS5         g f = f)Né   Údo_r   é�  s   Command s	    failed: s   unknown command)ÚresetTimeoutÚsplitÚ
ValueErrorÚgetattrr   ÚBaseExceptionr   ÚsysÚexc_infor   r.   ÚAttributeError)r&   ÚlineÚrequestÚparamsÚfÚexcInfos         r   ÚlineReceivedÚ PostfixTCPMapServer.lineReceived>   sÛ   € Ø×ÑÔð	Ø"Ÿj™j¨¨qÓ1‰OˆGð		SÜ˜˜e g§n¡n°WÓ&=Ñ=Ó>ˆAðSÙ�&•	øô ó 	ØˆGØŠFð	ûô !ó SÜœcŸlšl›n¨QÑ/Ó0×7Ñ7¸Ó@�Ø—‘˜c ;°Ñ#8¸<Ñ#GÈ'Ñ#QÖRðSûô ó 	3Ø�M‰M˜#Ð1Ö2ð	3ús5   ’A §B> ÁA# ÁA ÁA Á#AB;Â:B;Â>CÃCc                ó  • Uc  U R                  SS5        g [        R                  " U R                  R                  U5      nUR                  U R                  U R                  5        UR                  [        R                  5        g )Nr3   s!   Command 'get' takes 1 parameters.)r.   r	   ÚmaybeDeferredÚfactoryÚgetÚaddCallbacksÚ_cbGotÚ_cbNotÚ
addErrbackr   Úerr)r&   ÚkeyÚds      r   Údo_getÚPostfixTCPMapServer.do_getP   sX   € Ø‰;Ø�M‰M˜#ÐCÕDä×#Ò# D§L¡L×$4Ñ$4°cÓ:ˆAØ�N‰N˜4Ÿ;™;¨¯©Ô4Ø�L‰LœŸ™Õ!r   c                óf   • UR                  5       R                  S5      nU R                  SU5        g )Nr   r3   )ÚgetErrorMessager   r.   )r&   ÚfailÚmsgs      r   rI   ÚPostfixTCPMapServer._cbNotX   s)   € Ø×"Ñ"Ó$×+Ñ+¨GÓ4ˆØ�‰�c˜3Õr   c                ód   • Uc  U R                  S5        g U R                  S[        U5      5        g )Néô  éÈ   )r.   r   )r&   Úvalues     r   rH   ÚPostfixTCPMapServer._cbGot\   s%   € Ø‰=Ø�M‰M˜#Õà�M‰M˜#œu U›|Õ,r   c                óÂ   • Uc  U R                  SS5        g  UR                  S S5      u  p#U R                  SS5        g ! [         a    U R                  SS5         g f = f)Nr3   s!   Command 'put' takes 2 parameters.r1   rV   s   put is not implemented yet.)r.   r5   r6   )r&   ÚkeyAndValuerL   rX   s       r   Údo_putÚPostfixTCPMapServer.do_putb   sd   € ØÑØ�M‰M˜#ÐCÕDðCØ(×.Ñ.¨t°QÓ7‘
�ð —‘˜cÐ#AÕBøô ó IØ—‘˜cÐ#GÖHðIús   ˜? ¿AÁA© N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r%   Ú	delimiterr'   r.   rA   rN   rI   rH   r\   Ú__static_attributes__r^   r   r   r   r   $   s9   † ñð €GØ€Iò&ôBòSò$"ò ò-õ	Cr   r   )é   é	   c                  ó   • \ rS rSrSr\rSrg)ÚPostfixTCPMapDictServerFactoryét   ú:
An in-memory dictionary factory for PostfixTCPMapServer.
r^   N)r_   r`   ra   rb   rc   r   r
   re   r^   r   r   ri   ri   t   s   † ñð #ƒHr   ri   c                  ó,   • \ rS rSrSr\rSS jrS rSr	g)Ú'PostfixTCPMapDeferringDictServerFactoryé|   rk   Nc                óP   • 0 U l         Ub  U R                   R                  U5        g g r#   )ÚdataÚupdate)r&   rp   s     r   Ú__init__Ú0PostfixTCPMapDeferringDictServerFactory.__init__ƒ   s&   € ØˆŒ	ØÑØ�I‰I×Ñ˜TÕ"ð r   c                ó`   • [         R                  " U R                  R                  U5      5      $ r#   )r	   Úsucceedrp   rF   )r&   rL   s     r   rF   Ú+PostfixTCPMapDeferringDictServerFactory.getˆ   s   € Ü�}Š}˜TŸY™YŸ]™]¨3Ó/Ó0Ð0r   )rp   r#   )
r_   r`   ra   rb   rc   r   r
   rr   rF   re   r^   r   r   rm   rm   |   s   † ñð #€Hô#õ
1r   rm   ) rc   Ú
__future__r   r9   Úcollectionsr   Útypingr   r   Úurllib.parser   r   r   r   Útwisted.internetr	   r
   Útwisted.protocolsr   r   Útwisted.pythonr   ÚLineReceiverÚTimeoutMixinr   Úversion_infor   r   Ú_PostfixTCPMapDictÚServerFactoryri   rm   r^   r   r   Ú<module>rƒ      s¥   ðñ
õ #ã 
Ý  ß 'ß =ç ,ß -Ý ò
ò"ôGC˜%×,Ñ,¨h×.CÑ.Cô GCöT �C×$Ñ$¨Ó.Ø! %¨¨s°E¨zÑ):Ð":Ñ;Ñà!Ðô#Ð%7¸×9OÑ9Oô #ô1¨h×.DÑ.Dõ 1r   