§
    Ètºfç  ã                   ó  — d dl Z d dlmZ d dlmZ d dlmZ dZdZdZ	da
dad	ad	ad	ad	ad	ad	ad	ad	ad	a	 d
Zg d¢ZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ# G d„ dej$        ¦  «        Z%dZ&d„ Z'd„ Z(d„ Z)e*dk    r e)¦   «          dS dS ) é    N)Úreactor)ÚFactory)ÚbasicÚtestÚtwistediL  TFs(   +OK POP3 localhost v2003.83 server ready)s   TOPs   LOGIN-DELAY 180ó   USERs
   SASL LOGINó   STLSó   UIDLs   -ERR Unknown requests   +OK Command Completeds   -ERR LOGIN faileds   +OK Mailbox open, 0 messagess*   -ERR server side error start TLS handshakes   +OK quit completeds'   -ERR Unknown AUHORIZATION state commands   +OK 0 0s    +OK Unique-ID listing follows
.s#   +OK Mailbox scan listing follows
.s   +OK Capability list follows:c                   óL   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ ZdS )ÚPOP3TestServerNc                 ó>   — d| _         d | _        d | _        || _        d S )NF)ÚloggedInÚcapsÚtmpUserÚctx)ÚselfÚcontextFactorys     ú_/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/mail/test/pop3testserver.pyÚ__init__zPOP3TestServer.__init__6   s"   € ØˆŒØˆŒ	ØˆŒØ!ˆŒˆˆó    c                 ó:   — |                       t          ¦  «         d S ©N)ÚsendLineÚSTAT©r   Úreqs     r   ÚsendSTATRespzPOP3TestServer.sendSTATResp<   ó   € Ø�Š•dÑÔÐÐÐr   c                 ó:   — |                       t          ¦  «         d S r   )r   ÚUIDLr   s     r   ÚsendUIDLRespzPOP3TestServer.sendUIDLResp?   r   r   c                 ó:   — |                       t          ¦  «         d S r   )r   ÚLISTr   s     r   ÚsendLISTRespzPOP3TestServer.sendLISTRespB   r   r   c                 óv  — | j         €t          g| _         t          r| j                              t          ¦  «         t
          r| j                              t          ¦  «         t          D ]}| j                              |¦  «         Œd                     | j         ¦  «        }|dz  }|  	                    |¦  «         d S )Ns   
s   
.)
r   Ú	CAP_STARTÚUIDL_SUPPORTÚappendÚCAPABILITIES_UIDLÚSSL_SUPPORTÚCAPABILITIES_SSLÚCAPABILITIESÚjoinr   )r   ÚcapÚresps      r   ÚsendCapabilitieszPOP3TestServer.sendCapabilitiesE   s®   € ØŒ9ÐÝ"˜ˆDŒIåð 	0ØŒI×ÒÕ.Ñ/Ô/Ð/åð 	/ØŒI×ÒÕ-Ñ.Ô.Ð.åð 	"ð 	"ˆCØŒI×Ò˜SÑ!Ô!Ð!Ð!Ø�|Š|˜DœIÑ&Ô&ˆØ�Ñˆà�Š�dÑÔÐÐÐr   c                 ó®   — t           r|                      ¦   «          d S t          rt          j        d| j        ¦  «         d S |                      ¦   «          d S )Né   )ÚDENY_CONNECTIONÚ
disconnectÚSLOW_GREETINGr   Ú	callLaterÚsendGreeting©r   s    r   ÚconnectionMadezPOP3TestServer.connectionMadeV   s]   € Ýð 	Ø�OŠOÑÔÐØˆFåð 	 ÝÔ˜b $Ô"3Ñ4Ô4Ð4Ð4Ð4ð ×ÒÑÔÐÐÐr   c                 ó:   — |                       t          ¦  «         d S r   )r   ÚCONNECTION_MADEr8   s    r   r7   zPOP3TestServer.sendGreetinga   s   € Ø�Š•oÑ&Ô&Ð&Ð&Ð&r   c                 ód  ‡— |                      ¦   «         Šˆfd„}t          rdS t          r|                      ¦   «          dS  |d¦  «        r9t          r|                      t          ¦  «         dS |                      ¦   «          dS  |d¦  «        rt          r|  	                    ¦   «          dS  |d¦  «        r|t          r|                      t          ¦  «         dS d}	 |                     d¦  «        d         | _        t          }n# t          $ r
 t          }Y nw xY w|                      |¦  «         dS  |d¦  «        r�d}	 |                     d¦  «        d         }| j        �|€t          }n1| j        t           k    r|t"          k    rt$          }d	| _        nt          }n# t          $ r
 t          }Y nw xY w|                      |¦  «         dS  |d
¦  «        r7d| _        |                      t(          ¦  «         |                      ¦   «          dS t*          r|                      t          ¦  «         dS | j        s|                      t,          ¦  «         dS  |d¦  «        r|                      t          ¦  «         dS  |d¦  «        r%t.          rdS |                      t0          ¦  «         dS  |d¦  «        r%t.          rdS |                      t2          ¦  «         dS  |d¦  «        rHt.          rdS t4          s|                      t          ¦  «         dS |                      t6          ¦  «         dS dS )zError Conditionsc                 ó6   •— ‰                      | ¦  «        dk    S )Néÿÿÿÿ)Úfind)ÚsÚulines    €r   ú<lambda>z-POP3TestServer.lineReceived.<locals>.<lambda>h   s   ø€ ˜Ÿš A™œ¨"Ò,€ r   Ns   CAPAr	   r   ú é   s   PASSTs   QUITFs   NOOPs   STATs   LISTr
   )ÚupperÚTIMEOUT_RESPONSEÚDROP_CONNECTIONr4   ÚINVALID_CAPABILITY_RESPONSEr   ÚINVALID_RESPONSEr0   r*   ÚstartTLSÚINVALID_LOGIN_RESPONSEÚsplitr   ÚVALID_RESPONSEÚBaseExceptionÚAUTH_DECLINEDÚUSERÚPASSÚAUTH_ACCEPTEDr   ÚLOGOUT_COMPLETEÚINVALID_SERVER_RESPONSEÚNOT_LOGGED_INÚTIMEOUT_DEFERREDr   r#   r'   r    )r   Úliner?   r/   ÚpwdrA   s        @r   ÚlineReceivedzPOP3TestServer.lineReceivedd   so  ø€ ð —
’
‘”ˆØ,Ð,Ð,Ð,ˆåð 	àˆFåð K	 Ø�OŠOÑÔÐØˆFàˆT�'‰]Œ]ð G	 Ý*ð (Ø—’Õ.Ñ/Ô/Ð/Ð/Ð/à×%Ò%Ñ'Ô'Ð'Ð'Ð'àˆT�'‰]Œ]ð A	 �{ð A	 Ø�MŠM‰OŒOˆOˆOˆOàˆT�'‰]Œ]ð >	 Ý%ð Ø—’Õ.Ñ/Ô/Ð/Ø�àˆDð%Ø#Ÿzšz¨#™œ¨qÔ1�”Ý%��øÝ ð %ð %ð %Ý$���ð%øøøð �MŠM˜$ÑÔÐÐÐàˆT�'‰]Œ]ð 0	 ØˆDð%Ø—j’j ‘o”o aÔ(�à”<Ð'¨3¨;Ý(�D�DØ”\¥TÒ)Ð)¨cµTªk¨kÝ(�DØ$(�D”M�Må(�DøøÝ ð %ð %ð %Ý$���ð%øøøð �MŠM˜$ÑÔÐÐÐàˆT�'‰]Œ]ð 	 Ø!ˆDŒMØ�MŠM�/Ñ*Ô*Ð*Ø�OŠOÑÔÐÐÐå$ð 	 Ø�MŠMÕ*Ñ+Ô+Ð+Ð+Ð+à”ð 	 Ø�MŠM�-Ñ(Ô(Ð(Ð(Ð(àˆT�'‰]Œ]ð 	 Ø�MŠM�.Ñ)Ô)Ð)Ð)Ð)àˆT�'‰]Œ]ð 	 Ýð Ø�Ø�MŠM�$ÑÔÐÐÐàˆT�'‰]Œ]ð 	 Ýð Ø�Ø�MŠM�$ÑÔÐÐÐàˆT�'‰]Œ]ð 	 Ýð Ø�Ý!ð Ø—’Õ.Ñ/Ô/Ð/Ø�à�MŠM�$ÑÔÐÐÐð	 ð 	 s%   Ã'D ÄDÄDÅAF  Æ F4Æ3F4c                 ó¸   — t           r=| j        �6|                      d¦  «         | j                             | j        ¦  «         d S |                      d¦  «         d S )Ns   +OK Begin TLS negotiation nows   -ERR TLS not available)r*   r   r   Ú	transportrJ   r8   s    r   rJ   zPOP3TestServer.startTLS»   s[   € Ýð 	5˜4œ8Ð/Ø�MŠMÐ:Ñ;Ô;Ð;ØŒN×#Ò# D¤HÑ-Ô-Ð-Ð-Ð-à�MŠMÐ3Ñ4Ô4Ð4Ð4Ð4r   c                 ó8   — | j                              ¦   «          d S r   )r[   ÚloseConnectionr8   s    r   r4   zPOP3TestServer.disconnectÂ   s   € ØŒ×%Ò%Ñ'Ô'Ð'Ð'Ð'r   r   )Ú__name__Ú
__module__Ú__qualname__r   r   r!   r$   r0   r9   r7   rY   rJ   r4   © r   r   r   r   5   s³   € € € € € ð"ð "ð "ð "ðð ð ðð ð ðð ð ðð ð ð"	 ð 	 ð 	 ð'ð 'ð 'ðU ð U ð U ðn5ð 5ð 5ð(ð (ð (ð (ð (r   r   aü  popServer.py [arg] (default is Standard POP Server with no messages)
no_ssl  - Start with no SSL support
no_uidl - Start with no UIDL support
bad_resp - Send a non-RFC compliant response to the Client
bad_cap_resp - send a non-RFC compliant response when the Client sends a 'CAPABILITY' request
bad_login_resp - send a non-RFC compliant response when the Client sends a 'LOGIN' request
deny - Deny the connection
drop - Drop the connection after sending the greeting
bad_tls - Send a bad response to a STARTTLS
timeout - Do not return a response to a Client request
to_deferred - Do not return a response on a 'Select' request. This
              will test Deferred callback handling
slow - Wait 20 seconds after the connection is made to return a Server Greeting
c                 ó*   — t          d| z  ¦  «         d S )NzServer Starting in %s mode)Úprint)Úmsgs    r   ÚprintMessagere   Ö   s   € Ý	Ð
&¨Ñ
,Ñ-Ô-Ð-Ð-Ð-r   c                 óˆ  — |                       ¦   «         dk    rdat          d¦  «         d S |                       ¦   «         dk    rdat          d¦  «         d S |                       ¦   «         dk    rdat          d¦  «         d S |                       ¦   «         d	k    rdat          d
¦  «         d S |                       ¦   «         dk    rdat          d
¦  «         d S |                       ¦   «         dk    rdat          d¦  «         d S |                       ¦   «         dk    rdat          d¦  «         d S |                       ¦   «         dk    rda	t          d¦  «         d S |                       ¦   «         dk    rda
t          d¦  «         d S |                       ¦   «         dk    rdat          d¦  «         d S |                       ¦   «         dk    rdat          d¦  «         d S |                       ¦   «         dk    r)t          t          ¦  «         t          j        ¦   «          d S t          t          ¦  «         t          j        ¦   «          d S )NÚno_sslFzNON-SSLÚno_uidlzNON-UIDLÚbad_respTzInvalid Server ResponseÚbad_cap_respzInvalid Capability ResponseÚbad_login_respÚdenyzDeny ConnectionÚdropzDrop ConnectionÚbad_tlszBad TLS ResponseÚtimeoutzTimeout ResponseÚto_deferredzTimeout Deferred ResponseÚslowzSlow Greetingz--help)Úlowerr*   re   r'   rT   rH   rK   r3   rG   ÚBAD_TLS_RESPONSErF   rV   r5   rc   ÚusageÚsysÚexit)Úargs    r   Ú
processArgrx   Ú   s>  € Ø
‡y‚y�{„{�hÒÐàˆÝ�YÑÔÐÐÐà	�Š‰Œ˜	Ò	!Ð	!àˆÝ�ZÑ Ô Ð Ð Ð à	�Š‰Œ˜
Ò	"Ð	"à"&ÐÝÐ.Ñ/Ô/Ð/Ð/Ð/à	�Š‰Œ˜Ò	&Ð	&à&*Ð#ÝÐ2Ñ3Ô3Ð3Ð3Ð3à	�Š‰ŒÐ(Ò	(Ð	(à!%ÐÝÐ2Ñ3Ô3Ð3Ð3Ð3à	�Š‰Œ˜Ò	Ð	àˆÝÐ&Ñ'Ô'Ð'Ð'Ð'à	�Š‰Œ˜Ò	Ð	àˆÝÐ&Ñ'Ô'Ð'Ð'Ð'à	�Š‰Œ˜	Ò	!Ð	!àÐÝÐ'Ñ(Ô(Ð(Ð(Ð(à	�Š‰Œ˜	Ò	!Ð	!àÐÝÐ'Ñ(Ô(Ð(Ð(Ð(à	�Š‰Œ˜Ò	%Ð	%àÐÝÐ0Ñ1Ô1Ð1Ð1Ð1à	�Š‰Œ˜Ò	Ð	àˆÝ�_Ñ%Ô%Ð%Ð%Ð%à	�Š‰Œ˜Ò	 Ð	 Ý�e‰ŒˆÝŒ‰
Œ
ˆ
ˆ
ˆ
õ 	�e‰ŒˆÝŒ‰
Œ
ˆ
ˆ
ˆ
r   c                  ó>  — t          t          j        ¦  «        dk     rt          d¦  «         n(t          j        dd …         } | D ]}t	          |¦  «         Œt          ¦   «         }t          |_        t          j	        t          |¦  «         t          j        ¦   «          d S )Né   zPOP3 with no messagesrD   )Úlenru   Úargvre   rx   r   r   Úprotocolr   Ú	listenTCPÚPORTÚrun)Úargsrw   Úfs      r   Úmainrƒ     s„   € Ý
�3Œ8�}„}�qÒÐÝÐ,Ñ-Ô-Ð-Ð-åŒx˜˜˜Œ|ˆàð 	ð 	ˆCÝ�s‰OŒOˆOˆOå‰	Œ	€AÝ€A„JÝÔ•d˜AÑÔÐÝ„K�M„M€M€M€Mr   Ú__main__)+ru   Útwisted.internetr   Útwisted.internet.protocolr   Útwisted.protocolsr   rP   rQ   r   r*   r'   rT   rH   rK   r3   rG   rs   rF   rV   r5   r;   r,   r+   r)   rI   rM   rO   rR   Ú	TLS_ERRORrS   rU   r   r    r#   r&   ÚLineReceiverr   rt   re   rx   rƒ   r^   ra   r   r   ú<module>rŠ      sz  ðð €
€
€
à $Ð $Ð $Ð $Ð $Ð $Ø -Ð -Ð -Ð -Ð -Ð -Ø #Ð #Ð #Ð #Ð #Ð #à€Ø€à€à€Ø€ØÐ Ø#Ð ØÐ Ø€Ø€ØÐ ØÐ ØÐ Ø€à Ø=€àCÐCÐC€àÐ ØÐ ð +Ð Ø)€Ø$€Ø/€Ø9€	Ø'€Ø:€Ø€Ø,€Ø/€Ø+€	ðN(ð N(ð N(ð N(ð N(�UÔ'ñ N(ô N(ð N(ðb	€ð .ð .ð .ð>ð >ð >ðBð ð ð ˆzÒÐØ€D�F„F€F€F€Fð Ðr   