§
    Ètºfð0  ã                   ó~  — d dd…         Z ddlmZ ddlmZ  G d„ d¦  «        Z G d„ d	¦  «        Z G d
„ de¦  «        Z G d„ dej        ¦  «        Z	 G d„ d¦  «        Z
 G d„ d¦  «        Z G d„ de
ej        ¦  «        Z G d„ de
ej        ¦  «        Z G d„ deej        ¦  «        Z G d„ deej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ d¦  «        Z G d „ d!eej        ¦  «        Z G d"„ d#eej        ¦  «        Z G d$„ d%ej        ¦  «        Z G d&„ d'ej        ¦  «        Zd(S ))z$Revision: 1.5 $é   éþÿÿÿé    )Úpcp)Úunittestc                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚDummyTransportz A dumb transport to wrap around.c                 ó   — g | _         d S ©N)Ú_writes©Úselfs    úT/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/test/test_pcp.pyÚ__init__zDummyTransport.__init__%   s   € ØˆŒˆˆó    c                 ó:   — | j                              |¦  «         d S r
   )r   Úappend©r   Údatas     r   ÚwritezDummyTransport.write(   s   € ØŒ×Ò˜DÑ!Ô!Ð!Ð!Ð!r   c                 ó6   — d                      | j        ¦  «        S )NÚ )Újoinr   r   s    r   ÚgetvaluezDummyTransport.getvalue+   s   € Ø�wŠw�t”|Ñ$Ô$Ð$r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   © r   r   r   r   "   sG   € € € € € Ø*Ð*ðð ð ð"ð "ð "ð%ð %ð %ð %ð %r   r   c                   ó2   — e Zd ZdZdZdZd„ Zd„ Zd„ Zd„ Z	dS )ÚDummyProducerFc                 ó   — || _         d S r
   )Úconsumer)r   r"   s     r   r   zDummyProducer.__init__4   s   € Ø ˆŒˆˆr   c                 ó"   — d| _         d| _        d S )NTF)ÚresumedÚpausedr   s    r   ÚresumeProducingzDummyProducer.resumeProducing7   s   € ØˆŒØˆŒˆˆr   c                 ó   — d| _         d S ©NT)r%   r   s    r   ÚpauseProducingzDummyProducer.pauseProducing;   s   € ØˆŒˆˆr   c                 ó   — d| _         d S r(   )Ústoppedr   s    r   ÚstopProducingzDummyProducer.stopProducing>   s   € ØˆŒˆˆr   N)
r   r   r   r$   r+   r%   r   r&   r)   r,   r   r   r   r    r    /   s_   € € € € € Ø€GØ€GØ€Fð!ð !ð !ðð ð ðð ð ðð ð ð ð r   r    c                   ó,   — e Zd ZdZdZdZd„ Zd„ Zd„ ZdS )ÚDummyConsumerNFTc                 ó   — ||f| _         d S r
   )Úproducer)r   r0   Ú	streamings      r   ÚregisterProducerzDummyConsumer.registerProducerG   s   € Ø! 9Ð-ˆŒˆˆr   c                 ó   — d| _         d S r(   )Úunregisteredr   s    r   ÚunregisterProducerz DummyConsumer.unregisterProducerJ   s   € Ø ˆÔÐÐr   c                 ó   — d| _         d S r(   )Úfinishedr   s    r   ÚfinishzDummyConsumer.finishM   s   € ØˆŒˆˆr   )	r   r   r   r0   r7   r4   r2   r5   r8   r   r   r   r.   r.   B   sP   € € € € € Ø€HØ€HØ€Lð.ð .ð .ð!ð !ð !ðð ð ð ð r   r.   c                   ó(   — e Zd Zej        Zd„ Zd„ ZdS )ÚTransportInterfaceTestsc                 ój   — t          ¦   «         | _        |                      | j        ¦  «        | _        d S r
   )r.   Ú
underlyingÚ
proxyClassÚ	transportr   s    r   ÚsetUpzTransportInterfaceTests.setUpT   s&   € Ý'™/œ/ˆŒØŸš¨¬Ñ9Ô9ˆŒˆˆr   c                 ó:   — | j                              d¦  «         d S ©Nz
some bytes)r>   r   r   s    r   Ú	testWritez!TransportInterfaceTests.testWriteX   s   € ØŒ×Ò˜\Ñ*Ô*Ð*Ð*Ð*r   N)r   r   r   r   ÚBasicProducerConsumerProxyr=   r?   rB   r   r   r   r:   r:   Q   s:   € € € € € ØÔ/€Jð:ð :ð :ð+ð +ð +ð +ð +r   r:   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚConsumerInterfaceTestzõTest ProducerConsumerProxy as a Consumer.

    Normally we have ProducingServer -> ConsumingTransport.

    If I am to go between (Server -> Shaper -> Transport), I have to
    play the role of Consumer convincingly for the ProducingServer.
    c                 óœ   — t          ¦   «         | _        |                      | j        ¦  «        | _        t	          | j        ¦  «        | _        d S r
   )r.   r<   r=   r"   r    r0   r   s    r   r?   zConsumerInterfaceTest.setUpe   s7   € Ý'™/œ/ˆŒØŸš¨¬Ñ8Ô8ˆŒÝ% d¤mÑ4Ô4ˆŒˆˆr   c                 ó„   — | j                              | j        d¦  «         |                      | j        j        ¦  «         d S r(   )r"   r2   r0   ÚassertFalser$   r   s    r   ÚtestRegisterPushz&ConsumerInterfaceTest.testRegisterPushj   s;   € ØŒ×&Ò& t¤}°dÑ;Ô;Ð;à×Ò˜œÔ.Ñ/Ô/Ð/Ð/Ð/r   c                 ó   — | j                              | j        d¦  «         | j                              ¦   «          d| j        _        | j                              ¦   «          |                      | j        j        ¦  «         d S ©NF)r"   r2   r0   r5   r$   r&   rH   r   s    r   ÚtestUnregisterz$ConsumerInterfaceTest.testUnregisterv   so   € ØŒ×&Ò& t¤}°eÑ<Ô<Ð<ØŒ×(Ò(Ñ*Ô*Ð*ð
 !&ˆŒÔØŒ×%Ò%Ñ'Ô'Ð'Ø×Ò˜œÔ.Ñ/Ô/Ð/Ð/Ð/r   c                 ó   — | j                              | j        d¦  «         | j                              ¦   «          d| j        _        | j                              ¦   «          |                      | j        j        ¦  «         d S rK   )r"   r2   r0   r8   r$   r&   rH   r   s    r   Ú
testFinishz ConsumerInterfaceTest.testFinish�   sm   € ØŒ×&Ò& t¤}°eÑ<Ô<Ð<ØŒ×ÒÑÔÐà %ˆŒÔØŒ×%Ò%Ñ'Ô'Ð'Ø×Ò˜œÔ.Ñ/Ô/Ð/Ð/Ð/r   N)r   r   r   r   r?   rI   rL   rN   r   r   r   rE   rE   \   sZ   € € € € € ðð ð5ð 5ð 5ð
0ð 0ð 0ð	0ð 	0ð 	0ð0ð 0ð 0ð 0ð 0r   rE   c                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚProducerInterfaceTestzøTest ProducerConsumerProxy as a Producer.

    Normally we have ProducingServer -> ConsumingTransport.

    If I am to go between (Server -> Shaper -> Transport), I have to
    play the role of Producer convincingly for the ConsumingTransport.
    c                 ój   — t          ¦   «         | _        |                      | j        ¦  «        | _        d S r
   )r.   r"   r=   r0   r   s    r   r?   zProducerInterfaceTest.setUp“   s&   € Ý%™œˆŒØŸš¨¬Ñ6Ô6ˆŒˆˆr   c                 ó\   — |                       | j        j        d         | j        ¦  «         d S )Nr   )ÚassertEqualr"   r0   r   s    r   ÚtestRegistersProducerz+ProducerInterfaceTest.testRegistersProducer—   s*   € Ø×Ò˜œÔ/°Ô2°D´MÑBÔBÐBÐBÐBr   c                 óÆ   — | j                              ¦   «          | j                              d¦  «         |                      | j                             ¦   «         d¦  «         d S )Núyakkity yakz*Paused producer should not have sent data.)r0   r)   r   rH   r"   r   r   s    r   Ú	testPausezProducerInterfaceTest.testPauseš   sb   € ØŒ×$Ò$Ñ&Ô&Ð&ØŒ×Ò˜MÑ*Ô*Ð*Ø×ÒØŒM×"Ò"Ñ$Ô$Ð&Rñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óø   — | j                              ¦   «          | j                              ¦   «          | j                              d¦  «         |                      | j                             ¦   «         d¦  «         d S )NrV   )r0   r)   r&   r   rS   r"   r   r   s    r   Ú
testResumez ProducerInterfaceTest.testResume¡   sj   € ØŒ×$Ò$Ñ&Ô&Ð&ØŒ×%Ò%Ñ'Ô'Ð'ØŒ×Ò˜MÑ*Ô*Ð*Ø×Ò˜œ×/Ò/Ñ1Ô1°=ÑAÔAÐAÐAÐAr   c                 óÆ   — | j                              ¦   «          | j                              ¦   «          |                      t	          | j        j        ¦  «        dd¦  «         d S )Nr   z Resume triggered an empty write.)r0   r)   r&   rS   Úlenr"   r   r   s    r   ÚtestResumeNoEmptyWritez,ProducerInterfaceTest.testResumeNoEmptyWrite§   sa   € ØŒ×$Ò$Ñ&Ô&Ð&ØŒ×%Ò%Ñ'Ô'Ð'Ø×ÒÝ�”Ô%Ñ&Ô&¨Ð+Mñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óø   — | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          |                      | j                             ¦   «         d¦  «         d S )Nzbuffer this)r0   r)   r   r&   rS   r"   r   r   s    r   ÚtestResumeBufferz&ProducerInterfaceTest.testResumeBuffer®   sj   € ØŒ×$Ò$Ñ&Ô&Ð&ØŒ×Ò˜MÑ*Ô*Ð*ØŒ×%Ò%Ñ'Ô'Ð'Ø×Ò˜œ×/Ò/Ñ1Ô1°=ÑAÔAÐAÐAÐAr   c                 óÆ   — | j                              ¦   «          | j                              d¦  «         |                      | j                             ¦   «         d¦  «         d S )NrV   z+Stopped producer should not have sent data.)r0   r,   r   rH   r"   r   r   s    r   ÚtestStopzProducerInterfaceTest.testStop´   sb   € ØŒ×#Ò#Ñ%Ô%Ð%ØŒ×Ò˜MÑ*Ô*Ð*Ø×ÒØŒM×"Ò"Ñ$Ô$Ð&Sñ	
ô 	
ð 	
ð 	
ð 	
r   N)r   r   r   r   r?   rT   rW   rY   r\   r^   r`   r   r   r   rP   rP   Š   s�   € € € € € ðð ð7ð 7ð 7ðCð Cð Cð
ð 
ð 
ðBð Bð Bð
ð 
ð 
ðBð Bð Bð
ð 
ð 
ð 
ð 
r   rP   c                   ó   — e Zd Zej        ZdS )ÚPCP_ConsumerInterfaceTestsN©r   r   r   r   rC   r=   r   r   r   rb   rb   ¼   ó   € € € € € ØÔ/€J€J€Jr   rb   c                   ó   — e Zd Zej        ZdS )ÚPCPII_ConsumerInterfaceTestsN©r   r   r   r   ÚProducerConsumerProxyr=   r   r   r   rf   rf   À   ó   € € € € € ØÔ*€J€J€Jr   rf   c                   ó   — e Zd Zej        ZdS )ÚPCP_ProducerInterfaceTestsNrc   r   r   r   rk   rk   Ä   rd   r   rk   c                   ó   — e Zd Zej        ZdS )ÚPCPII_ProducerInterfaceTestsNrg   r   r   r   rm   rm   È   ri   r   rm   c                   ó,   — e Zd ZdZej        Zd„ Zd„ ZdS )ÚProducerProxyTestszAProducer methods on me should be relayed to the Producer I proxy.c                 ó¬   — |                       d ¦  «        | _        t          | j        ¦  «        | _        | j                             | j        d¦  «         d S r(   )r=   Úproxyr    ÚparentProducerr2   r   s    r   r?   zProducerProxyTests.setUpÑ   sH   € Ø—_’_ TÑ*Ô*ˆŒ
Ý+¨D¬JÑ7Ô7ˆÔØŒ
×#Ò# DÔ$7¸Ñ>Ô>Ð>Ð>Ð>r   c                 óv   — | j                              ¦   «          |                      | j        j        ¦  «         d S r
   )rq   r,   Ú
assertTruerr   r+   r   s    r   r`   zProducerProxyTests.testStopÖ   s4   € ØŒ
× Ò Ñ"Ô"Ð"Ø�Š˜Ô+Ô3Ñ4Ô4Ð4Ð4Ð4r   N)	r   r   r   r   r   rC   r=   r?   r`   r   r   r   ro   ro   Ì   s@   € € € € € ØKÐKàÔ/€Jð?ð ?ð ?ð
5ð 5ð 5ð 5ð 5r   ro   c                   ó8   — e Zd ZdZej        Zd„ Zd„ Zd„ Z	d„ Z
dS )ÚConsumerProxyTestszAConsumer methods on me should be relayed to the Consumer I proxy.c                 ój   — t          ¦   «         | _        |                      | j        ¦  «        | _        d S r
   )r.   r<   r=   r"   r   s    r   r?   zConsumerProxyTests.setUpà   s&   € Ý'™/œ/ˆŒØŸš¨¬Ñ8Ô8ˆŒˆˆr   c                 ó”   — | j                              d¦  «         |                      | j                             ¦   «         d¦  «         d S rA   )r"   r   rS   r<   r   r   s    r   rB   zConsumerProxyTests.testWriteä   sB   € àŒ×Ò˜LÑ)Ô)Ð)Ø×Ò˜œ×1Ò1Ñ3Ô3°\ÑBÔBÐBÐBÐBr   c                 óv   — | j                              ¦   «          |                      | j        j        ¦  «         d S r
   )r"   r8   rt   r<   r7   r   s    r   rN   zConsumerProxyTests.testFinishé   s3   € ØŒ×ÒÑÔÐØ�Š˜œÔ0Ñ1Ô1Ð1Ð1Ð1r   c                 óv   — | j                              ¦   «          |                      | j        j        ¦  «         d S r
   )r"   r5   rt   r<   r4   r   s    r   rL   z!ConsumerProxyTests.testUnregisterí   s3   € ØŒ×(Ò(Ñ*Ô*Ð*Ø�Š˜œÔ4Ñ5Ô5Ð5Ð5Ð5r   N)r   r   r   r   r   rC   r=   r?   rB   rN   rL   r   r   r   rv   rv   Û   sa   € € € € € ØKÐKàÔ/€Jð9ð 9ð 9ðCð Cð Cð
2ð 2ð 2ð6ð 6ð 6ð 6ð 6r   rv   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚPullProducerTestc                 óÜ   — t          ¦   «         | _        |                      | j        ¦  «        | _        t	          | j        ¦  «        | _        | j                             | j        d¦  «         d S r(   )r.   r<   r=   rq   r    rr   r2   r   s    r   r?   zPullProducerTest.setUpó   sU   € Ý'™/œ/ˆŒØ—_’_ T¤_Ñ5Ô5ˆŒ
Ý+¨D¬JÑ7Ô7ˆÔØŒ
×#Ò# DÔ$7¸Ñ>Ô>Ð>Ð>Ð>r   c                 ó”   — | j                              d¦  «         |                      | j                             ¦   «         d¦  «         d S )NÚhelloz+Pulling Consumer got data before it pulled.)rq   r   rH   r<   r   r   s    r   ÚtestHoldWriteszPullProducerTest.testHoldWritesù   sN   € ØŒ
×Ò˜Ñ!Ô!Ð!à×ÒØŒO×$Ò$Ñ&Ô&Ð(Uñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óÆ   — | j                              d¦  «         | j                              ¦   «          |                      | j                             ¦   «         d¦  «         d S )Nr   )rq   r   r&   rS   r<   r   r   s    r   ÚtestPullzPullProducerTest.testPull   sV   € ØŒ
×Ò˜Ñ!Ô!Ð!ØŒ
×"Ò"Ñ$Ô$Ð$Ø×Ò˜œ×1Ò1Ñ3Ô3°WÑ=Ô=Ð=Ð=Ð=r   c                 ób  — | j                              d¦  «         | j                              d¦  «         | j                              ¦   «          t          | j        j        ¦  «        }|                      |dd|fz  ¦  «         |                      | j                             ¦   «         d¦  «         d S )Nzhello Úsunshineé   z(Pull resulted in %d writes instead of 1.zhello sunshine)rq   r   r&   r[   r<   r   rS   r   )r   Únwritess     r   ÚtestMergeWritesz PullProducerTest.testMergeWrites  s¨   € ØŒ
×Ò˜Ñ"Ô"Ð"ØŒ
×Ò˜Ñ$Ô$Ð$ØŒ
×"Ò"Ñ$Ô$Ð$Ý�d”oÔ-Ñ.Ô.ˆØ×ÒØ�QÐEÈÈ
ÑRñ	
ô 	
ð 	
ð 	×Ò˜œ×1Ò1Ñ3Ô3Ð5EÑFÔFÐFÐFÐFr   c                 óÆ   — | j                              ¦   «          | j                              d¦  «         |                      | j                             ¦   «         d¦  «         d S )Nr   )rq   r&   r   rS   r<   r   r   s    r   ÚtestLateWritezPullProducerTest.testLateWrite  sV   € àŒ
×"Ò"Ñ$Ô$Ð$ØŒ
×Ò˜Ñ Ô Ð à×Ò˜œ×1Ò1Ñ3Ô3°VÑ<Ô<Ð<Ð<Ð<r   N)r   r   r   r?   r€   r‚   r‡   r‰   r   r   r   r|   r|   ò   sb   € € € € € ð?ð ?ð ?ð
ð 
ð 
ð>ð >ð >ð
Gð Gð Gð=ð =ð =ð =ð =r   r|   c                   ó4   — e Zd Z G d„ dej        ¦  «        ZdS )ÚPCP_PullProducerTestsc                   ó   — e Zd ZdZdS )ú PCP_PullProducerTests.proxyClassFN©r   r   r   ÚiAmStreamingr   r   r   r=   r�     ó   € € € € € Øˆˆˆr   r=   Nrc   r   r   r   r‹   r‹     sA   € € € € € ðð ð ð ð �SÔ3ñ ô ð ð ð r   r‹   c                   ó4   — e Zd Z G d„ dej        ¦  «        ZdS )ÚPCPII_PullProducerTestsc                   ó   — e Zd ZdZdS )ú"PCPII_PullProducerTests.proxyClassFNrŽ   r   r   r   r=   r”     r�   r   r=   Nrg   r   r   r   r’   r’     sA   € € € € € ðð ð ð ð �SÔ.ñ ô ð ð ð r   r’   c                   óD   — e Zd ZdZej        Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ ZdS )	ÚBufferedConsumerTestsz=As a consumer, ask the producer to pause after too much data.c                 óô   — t          ¦   «         | _        |                      | j        ¦  «        | _        d| j        _        t          | j        ¦  «        | _        | j                             | j        d¦  «         d S )Néd   T©r.   r<   r=   rq   Ú
bufferSizer    rr   r2   r   s    r   r?   zBufferedConsumerTests.setUp)  s_   € Ý'™/œ/ˆŒØ—_’_ T¤_Ñ5Ô5ˆŒ
Ø #ˆŒ
Ôå+¨D¬JÑ7Ô7ˆÔØŒ
×#Ò# DÔ$7¸Ñ>Ô>Ð>Ð>Ð>r   c                 ó„   — | j                              | j        d¦  «         |                      | j        j        ¦  «         d S rK   )rq   r2   rr   rt   r$   r   s    r   ÚtestRegisterPullz&BufferedConsumerTests.testRegisterPull1  s;   € ØŒ
×#Ò# DÔ$7¸Ñ?Ô?Ð?à�Š˜Ô+Ô3Ñ4Ô4Ð4Ð4Ð4r   c                 óv   — | j                              ¦   «          |                      | j        j        ¦  «         d S r
   )rq   r)   rH   rr   r%   r   s    r   ÚtestPauseInterceptz(BufferedConsumerTests.testPauseIntercept6  s6   € ØŒ
×!Ò!Ñ#Ô#Ð#Ø×Ò˜Ô,Ô3Ñ4Ô4Ð4Ð4Ð4r   c                 ó¨   — | j                              ¦   «          | j                              ¦   «          |                      | j        j        ¦  «         d S r
   )rq   r)   r&   rH   rr   r$   r   s    r   ÚtestResumeInterceptz)BufferedConsumerTests.testResumeIntercept:  sL   € ØŒ
×!Ò!Ñ#Ô#Ð#ØŒ
×"Ò"Ñ$Ô$Ð$ð 	×Ò˜Ô,Ô4Ñ5Ô5Ð5Ð5Ð5r   c                 ó^  — | j                              ¦   «          |                      | j        j        d¦  «         | j                              d¦  «         |                      | j        j        d¦  «         | j                              d¦  «         |                      | j        j        ¦  «         dS )zMake sure I say "when." zdon't pause yetÚ3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxN)rq   r)   rH   rr   r%   r   rt   r   s    r   ÚtestTriggerPausez&BufferedConsumerTests.testTriggerPauseB  sœ   € ð 	Œ
×!Ò!Ñ#Ô#Ð#Ø×Ò˜Ô,Ô3Ð5FÑGÔGÐGØŒ
×Ò˜Ñ"Ô"Ð"Ø×Ò˜Ô,Ô3Ð5FÑGÔGÐGØŒ
×Ò˜Ñ"Ô"Ð"Ø�Š˜Ô+Ô2Ñ3Ô3Ð3Ð3Ð3r   c                 ó\  — | j                              ¦   «          | j                              d¦  «         |                      | j        j        d¦  «         | j                              ¦   «          |                      | j        j        d¦  «         |                      | j         j        ¦  «         dS )z3Make sure I resumeProducing when my buffer empties.Úfxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzshould be pausedzProducer should have resumed.N)	rq   r)   r   rt   rr   r%   r&   rH   ÚproducerPausedr   s    r   ÚtestTriggerResumez'BufferedConsumerTests.testTriggerResumeM  s™   € àŒ
×!Ò!Ñ#Ô#Ð#ØŒ
×Ò˜Ñ#Ô#Ð#Ø�Š˜Ô+Ô2Ð4FÑGÔGÐGØŒ
×"Ò"Ñ$Ô$Ð$ð 	×Ò˜Ô,Ô3Ð5TÑUÔUÐUØ×Ò˜œÔ2Ñ3Ô3Ð3Ð3Ð3r   N)r   r   r   r   r   rh   r=   r?   rœ   rž   r    r£   r§   r   r   r   r–   r–   $  s|   € € € € € ØGÐGàÔ*€Jð?ð ?ð ?ð5ð 5ð 5ð
5ð 5ð 5ð6ð 6ð 6ð	4ð 	4ð 	4ð	4ð 	4ð 	4ð 	4ð 	4r   r–   c                   óF   — e Zd Z G d„ dej        ¦  «        Zd„ Zd„ Zd„ ZdS )ÚBufferedPullTestsc                   ó   — e Zd ZdZd„ ZdS )úBufferedPullTests.proxyClassFc                 óŒ   — t           j                             | |d d…         ¦  «         t          t	          |¦  «        d¦  «        S )Nr˜   )r   rh   Ú_writeSomeDataÚminr[   r   s     r   r­   z+BufferedPullTests.proxyClass._writeSomeData]  s9   € ÝÔ%×4Ò4°T¸4ÀÀÀ¼:ÑFÔFÐFÝ•s˜4‘y”y #Ñ&Ô&Ð&r   N)r   r   r   r�   r­   r   r   r   r=   r«   Z  s(   € € € € € Øˆð	'ð 	'ð 	'ð 	'ð 	'r   r=   c                 óô   — t          ¦   «         | _        |                      | j        ¦  «        | _        d| j        _        t          | j        ¦  «        | _        | j                             | j        d¦  «         d S )Nr˜   Fr™   r   s    r   r?   zBufferedPullTests.setUpa  s_   € Ý'™/œ/ˆŒØ—_’_ T¤_Ñ5Ô5ˆŒ
Ø #ˆŒ
Ôå+¨D¬JÑ7Ô7ˆÔØŒ
×#Ò# DÔ$7¸Ñ?Ô?Ð?Ð?Ð?r   c                 óŽ   — d| j         _        | j                             ¦   «          |                      | j         j        ¦  «         d S rK   )rr   r$   rq   r&   rt   r   s    r   ÚtestResumePullz BufferedPullTests.testResumePulli  sA   € ð ',ˆÔÔ#ØŒ
×"Ò"Ñ$Ô$Ð$Ø�Š˜Ô+Ô3Ñ4Ô4Ð4Ð4Ð4r   c                 ó  — | j                              ¦   «          | j                              d¦  «         |                      | j                             ¦   «         d¦  «         |                      | j         j        dg¦  «         d S )NÚidatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumÚddatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumÚdatum)rq   r&   r   rS   r<   r   Ú_bufferr   s    r   ÚtestLateWriteBufferingz(BufferedPullTests.testLateWriteBufferingp  ss   € àŒ
×"Ò"Ñ$Ô$Ð$ØŒ
×Ò˜Ñ&Ô&Ð&à×Ò˜œ×1Ò1Ñ3Ô3°\ÑBÔBÐBà×Ò˜œÔ+¨g¨YÑ7Ô7Ð7Ð7Ð7r   N)	r   r   r   r   rh   r=   r?   r±   r·   r   r   r   r©   r©   Y  sq   € € € € € ð'ð 'ð 'ð 'ð '�SÔ.ñ 'ô 'ð 'ð@ð @ð @ð5ð 5ð 5ð8ð 8ð 8ð 8ð 8r   r©   N)Ú__version__Útwisted.protocolsr   Útwisted.trialr   r   r    r.   ÚTestCaser:   rE   rP   rb   rf   rk   rm   ro   rv   r|   r‹   r’   r–   r©   r   r   r   ú<module>r¼      s:  ðð !  B Ô'€à !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "ð2
%ð 
%ð 
%ð 
%ð 
%ñ 
%ô 
%ð 
%ðð ð ð ð ñ ô ð ð&ð ð ð ð �Nñ ô ð ð+ð +ð +ð +ð +˜hÔ/ñ +ô +ð +ð+0ð +0ð +0ð +0ð +0ñ +0ô +0ð +0ð\/
ð /
ð /
ð /
ð /
ñ /
ô /
ð /
ðd0ð 0ð 0ð 0ð 0Ð!6¸Ô8Iñ 0ô 0ð 0ð+ð +ð +ð +ð +Ð#8¸(Ô:Kñ +ô +ð +ð0ð 0ð 0ð 0ð 0Ð!6¸Ô8Iñ 0ô 0ð 0ð+ð +ð +ð +ð +Ð#8¸(Ô:Kñ +ô +ð +ð5ð 5ð 5ð 5ð 5˜Ô*ñ 5ô 5ð 5ð6ð 6ð 6ð 6ð 6˜Ô*ñ 6ô 6ð 6ð."=ð "=ð "=ð "=ð "=ñ "=ô "=ð "=ðJð ð ð ð Ð,¨hÔ.?ñ ô ð ð
ð ð ð ð Ð.°Ô0Añ ô ð ð24ð 24ð 24ð 24ð 24˜HÔ-ñ 24ô 24ð 24ðj8ð 8ð 8ð 8ð 8˜Ô)ñ 8ô 8ð 8ð 8ð 8r   