§
    ‹ŸjSÊ  ã                   ó<  — d dl mZ d dlmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZmZ d dlmZ d dlmZ d dlmZm Z m!Z!m"Z"m#Z#m$Z$ d dl%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+m,Z, d dl-Z-d dl.Z.d dl/Z/d dl0Z0d dl1Z1d dl2Z2d dl3Z3d dl4Z4d dl5Z5d dl6Z6d dl7m8Z8 d dl7Z7d„ Z9 G d„ de+¦  «        Z:e) G d„ de!¦  «        ¦   «         Z;e) G d„ de!¦  «        ¦   «         Z<e) G d„ de<¦  «        ¦   «         Z= G d„ dee;¦  «        Z> G d„ de e;¦  «        Z? G d„ d e=¦  «        Z@ G d!„ d"e=¦  «        ZA G d#„ d$e=¦  «        ZB G d%„ d&e!¦  «        ZC G d'„ d(e!¦  «        ZD G d)„ d*e!¦  «        ZEe& G d+„ d,e<e!¦  «        ¦   «         ZF G d-„ d.e7jG        ¦  «        ZHdS )/é    )ÚFuture)Úgen)Únetutil)ÚIOLoop)ÚIOStreamÚSSLIOStreamÚPipeIOStreamÚStreamClosedErrorÚ_StreamBuffer)ÚAsyncHTTPClientÚHTTPResponse)ÚHTTPHeaders)Ú	ConditionÚEvent)Úgen_log)Ússl_options_to_contextÚssl_wrap_socket)ÚAddThreadSelectorEventLoop)Ú	TCPServer)ÚAsyncHTTPTestCaseÚAsyncHTTPSTestCaseÚAsyncTestCaseÚbind_unused_portÚ	ExpectLogÚgen_test)ÚskipIfNonUnixÚrefusing_portÚignore_deprecationÚabstract_base_test)ÚRequestHandlerÚApplicationN)Úmockc                  ó$  — t          t          j                             t          j                             t
          ¦  «        d¦  «        t          j                             t          j                             t
          ¦  «        d¦  «        ¬¦  «        S )Nútest.crtútest.key)ÚcertfileÚkeyfile)ÚdictÚosÚpathÚjoinÚdirnameÚ__file__© ó    úg/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/tornado/test/iostream_test.pyÚ_server_ssl_optionsr1   0   s[   € ÝÝ”—’�bœgŸošo­hÑ7Ô7¸ÑDÔDÝ”—’�RœWŸ_š_­XÑ6Ô6¸
ÑCÔCðñ ô ð r/   c                   ó   — e Zd Zd„ ZdS )ÚHelloHandlerc                 ó0   — |                       d¦  «         d S )NÚHello)Úwrite©Úselfs    r0   ÚgetzHelloHandler.get8   s   € Ø�
Š
�7ÑÔÐÐÐr/   N)Ú__name__Ú
__module__Ú__qualname__r9   r.   r/   r0   r3   r3   7   s#   € € € € € ðð ð ð ð r/   r3   c            	       óÖ   — e Zd Zd„ Zd„ Zdefd„Z	 ddedede	j
        defd	„Zd
„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚTestIOStreamWebMixinc                 ó   — t          ¦   «         ‚©N©ÚNotImplementedErrorr7   s    r0   Ú_make_client_iostreamz*TestIOStreamWebMixin._make_client_iostreamG   ó   € Ý!Ñ#Ô#Ð#r/   c                 ó0   — t          dt          fg¦  «        S )Nú/)r!   r3   r7   s    r0   Úmixin_get_appz"TestIOStreamWebMixin.mixin_get_appJ   s   € Ý˜S¥,Ð/Ð0Ñ1Ô1Ð1r/   Úreturnc                 ó   — t          ¦   «         ‚r@   rA   r7   s    r0   Úget_http_portz"TestIOStreamWebMixin.get_http_portM   rD   r/   Fr*   Úraise_errorÚkwargsc                 ó   — t          ¦   «         ‚r@   rA   )r8   r*   rK   rL   s       r0   ÚfetchzTestIOStreamWebMixin.fetchP   s   € õ "Ñ#Ô#Ð#r/   c                 ó  — t          j        ¦   «         j                             d¦  «        r,t	          j        ¦   «         dk    r|                      d¦  «         |                      dddi¬¦  «        }|                     ¦   «          d S )NÚCurlAsyncHTTPClientÚDarwinz:libcurl doesn't handle closed connections cleanly on macOSrF   Ú
ConnectionÚclose)Úheaders)	r   Úconfigured_classr:   ÚendswithÚplatformÚsystemÚskipTestrN   Úrethrow)r8   Úresponses     r0   Útest_connection_closedz+TestIOStreamWebMixin.test_connection_closedV   s‚   € õ Ô,Ñ.Ô.Ô7×@Ò@ÐAVÑWÔWð	Xå”Ñ!Ô! XÒ-Ð-ð �MŠMÐVÑWÔWÐWØ—:’:˜c¨L¸'Ð+B�:ÑCÔCˆØ×ÒÑÔÐÐÐr/   c              #   ó~  K  — |                       ¦   «         }|                     d|                      ¦   «         f¦  «        V — |                     d¦  «         |                     ¦   «         V —}|                      |                     d¦  «        ¦  «         |                      |                     d¦  «        ¦  «         d S )Nú	127.0.0.1ó   GET / HTTP/1.0

s   HTTP/1.1 200ó   Hello)rC   ÚconnectrJ   r6   Úread_until_closeÚ
assertTrueÚ
startswithrV   )r8   ÚstreamÚdatas      r0   Útest_read_until_closez*TestIOStreamWebMixin.test_read_until_closei   s¬   è è € à×+Ò+Ñ-Ô-ˆØ�nŠn˜k¨4×+=Ò+=Ñ+?Ô+?Ð@ÑAÔAÐAÐAÐAØ�ŠÐ.Ñ/Ô/Ð/à×,Ò,Ñ.Ô.Ð.Ð.ˆØ�Š˜Ÿš¨Ñ8Ô8Ñ9Ô9Ð9Ø�Š˜Ÿš hÑ/Ô/Ñ0Ô0Ð0Ð0Ð0r/   c              #   ó.  K  — |                       ¦   «         | _        | j                             d|                      ¦   «         f¦  «        V — | j                             d¦  «         | j                             d¦  «        V —}|                      |d¦  «         | j                             d¦  «        V —}|                      |d¦  «         | j                             d¦  «        V —}|                      |d¦  «         | j                             ¦   «          d S )	Nr^   r_   é	   s	   HTTP/1.1 r   r/   é   s   200)rC   re   ra   rJ   r6   Ú
read_bytesÚassertEqualrS   )r8   rf   s     r0   Útest_read_zero_bytesz)TestIOStreamWebMixin.test_read_zero_bytess   s  è è € à×0Ò0Ñ2Ô2ˆŒØŒk×!Ò! ;°×0BÒ0BÑ0DÔ0DÐ"EÑFÔFÐFÐFÐFØŒ×ÒÐ3Ñ4Ô4Ð4ð ”[×+Ò+¨AÑ.Ô.Ð.Ð.ˆØ×Ò˜˜|Ñ,Ô,Ð,ð ”[×+Ò+¨AÑ.Ô.Ð.Ð.ˆØ×Ò˜˜sÑ#Ô#Ð#ð ”[×+Ò+¨AÑ.Ô.Ð.Ð.ˆØ×Ò˜˜vÑ&Ô&Ð&àŒ×ÒÑÔÐÐÐr/   c              #   ó®  K  — |                       ¦   «         }|                     d|                      ¦   «         f¦  «        }|                     d¦  «        }|                      |                     ¦   «         ¦  «         t          j        ||¦  «        }g }|                     ¦   «         sD|                     ¦   «         V — | 	                    |j
        ¦  «         |                     ¦   «         ¯D|                      |||g¦  «         |                     ¦   «         V —}|                      |                     d¦  «        ¦  «         |                     ¦   «          d S )Nr^   ó%   GET / HTTP/1.0
Connection: close

r`   )rC   ra   rJ   r6   ÚassertFalseÚdoner   ÚWaitIteratorÚnextÚappendÚcurrent_futurerl   rb   rc   rV   rS   )r8   re   Úconnect_futÚ	write_futÚitÚresolved_orderrf   s          r0   Útest_write_while_connectingz0TestIOStreamWebMixin.test_write_while_connecting‡   s3  è è € à×+Ò+Ñ-Ô-ˆØ—n’n k°4×3EÒ3EÑ3GÔ3GÐ%HÑIÔIˆð —L’LÐ!OÑPÔPˆ	Ø×Ò˜×)Ò)Ñ+Ô+Ñ,Ô,Ð,õ Ô˜k¨9Ñ5Ô5ˆØˆØ—'’'‘)”)ð 	5Ø—'’'‘)”)ˆOˆOˆOØ×!Ò! "Ô"3Ñ4Ô4Ð4ð —'’'‘)”)ð 	5ð 	×Ò˜¨+°yÐ)AÑBÔBÐBà×,Ò,Ñ.Ô.Ð.Ð.ˆØ�Š˜Ÿš hÑ/Ô/Ñ0Ô0Ð0à�Š‰Œˆˆˆr/   c              #   ód  K  — |                       ¦   «         }|                     d|                      ¦   «         f¦  «        V —}|                      ||¦  «         |                     d¦  «        V — |                     d¦  «        V —}|                      |d¦  «         |                     d¦  «        V —}t          j        | 	                    d¦  «        ¦  «        }t          |d         ¦  «        }|                     |¦  «        V —}|                      |d¦  «         |                     ¦   «          d	S )
z3Basic test of IOStream's ability to return Futures.r^   r_   ó   
s   HTTP/1.1 200 OK
ó   

Úlatin1zContent-Lengthr`   N)rC   ra   rJ   ÚassertIsr6   Ú
read_untilrl   r   ÚparseÚdecodeÚintrk   rS   )r8   re   Úconnect_resultÚ
first_lineÚheader_datarT   Úcontent_lengthÚbodys           r0   Útest_future_interfacez*TestIOStreamWebMixin.test_future_interface�   s(  è è € ð ×+Ò+Ñ-Ô-ˆØ%Ÿ~š~¨{¸D×<NÒ<NÑ<PÔ<PÐ.QÑRÔRÐRÐRˆØ�Š�n fÑ-Ô-Ð-Ø�lŠlÐ4Ñ5Ô5Ð5Ð5Ð5Ø!×,Ò,¨WÑ5Ô5Ð5Ð5ˆ
Ø×Ò˜Ð%;Ñ<Ô<Ð<à"×-Ò-¨kÑ:Ô:Ð:Ð:ˆÝÔ# K×$6Ò$6°xÑ$@Ô$@ÑAÔAˆÝ˜WÐ%5Ô6Ñ7Ô7ˆØ×&Ò& ~Ñ6Ô6Ð6Ð6ˆØ×Ò˜˜xÑ(Ô(Ð(Ø�Š‰Œˆˆˆr/   c              #   óp  K  — |                       ¦   «         }|                     d|                      ¦   «         f¦  «        V — |                     d¦  «        V — |                      t
          ¦  «        5  |                     d¦  «        V — d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          d S )Nr^   r_   é   )rC   ra   rJ   r6   ÚassertRaisesr
   rk   rS   ©r8   re   s     r0   Útest_future_close_while_readingz4TestIOStreamWebMixin.test_future_close_while_reading®   sî   è è € à×+Ò+Ñ-Ô-ˆØ�nŠn˜k¨4×+=Ò+=Ñ+?Ô+?Ð@ÑAÔAÐAÐAÐAØ�lŠlÐ4Ñ5Ô5Ð5Ð5Ð5Ø×ÒÕ0Ñ1Ô1ð 	1ð 	1Ø×#Ò# KÑ0Ô0Ð0Ð0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1à�Š‰Œˆˆˆs   Á3BÂBÂBc              #   óÌ  K  — |                       ¦   «         }|                     d|                      ¦   «         f¦  «        V — |                     d¦  «        V — |                     d¦  «        V — |                     ¦   «         V —}|                      |d¦  «         |                      t          ¦  «        5  | 	                    d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr^   ro   r}   r`   é   )
rC   ra   rJ   r6   r€   rb   rl   rŒ   r
   rk   )r8   re   rˆ   s      r0   Útest_future_read_until_closez1TestIOStreamWebMixin.test_future_read_until_close·   s1  è è € ð ×+Ò+Ñ-Ô-ˆØ�nŠn˜k¨4×+=Ò+=Ñ+?Ô+?Ð@ÑAÔAÐAÐAÐAØ�lŠlÐIÑJÔJÐJÐJÐJØ×Ò Ñ,Ô,Ð,Ð,Ð,Ø×,Ò,Ñ.Ô.Ð.Ð.ˆØ×Ò˜˜xÑ(Ô(Ð(ð ×ÒÕ0Ñ1Ô1ð 	!ð 	!Ø×Ò˜aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   Â6CÃCÃ CN)F)r:   r;   r<   rC   rG   rƒ   rJ   ÚstrÚboolÚtypingÚAnyr   rN   r\   r   rg   rm   rz   r‰   rŽ   r‘   r.   r/   r0   r>   r>   <   s>  € € € € € ð$ð $ð $ð2ð 2ð 2ð$˜sð $ð $ð $ð $ð .3ð$ð $Øð$Ø&*ð$Ø>D¼jð$à	ð$ð $ð $ð $ðð ð ð& ð1ð 1ñ „Xð1ð ðð ñ „Xðð& ðð ñ „Xðð* ðð ñ „Xðð  ðð ñ „Xðð ð!ð !ñ „Xð!ð !ð !r/   r>   c                   ó*  — e Zd Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚTestReadWriteMixinc                 ó   — t           ‚r@   rA   )r8   rL   s     r0   Úmake_iostream_pairz%TestReadWriteMixin.make_iostream_pairÌ   s   € Ý!Ð!r/   c                 ó4   —  G d„ d¦  «        } || |¦  «        S )zŠLike make_iostream_pair, but called by ``async with``.

        In py37 this becomes simpler with contextlib.asynccontextmanager.
        c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ú=TestReadWriteMixin.iostream_pair.<locals>.IOStreamPairContextc                 ó"   — || _         || _        d S r@   )ÚtestrL   )r8   rž   rL   s      r0   Ú__init__zFTestReadWriteMixin.iostream_pair.<locals>.IOStreamPairContext.__init__Ö   s   € Ø �”	Ø$�”��r/   c              “   óX   K  —  | j         j        di | j        ¤Žƒ d {V —†| _        | j        S )Nr.   )rž   r™   rL   Úpairr7   s    r0   Ú
__aenter__zHTestReadWriteMixin.iostream_pair.<locals>.IOStreamPairContext.__aenter__Ú   s>   è è € Ø"> $¤)Ô">Ð"MÐ"MÀÄÐ"MÐ"MÐMÐMÐMÐMÐMÐM�”	Ø”yÐ r/   c              “   óF   K  — | j         D ]}|                     ¦   «          Œd S r@   )r¡   rS   )r8   ÚtypÚvalueÚtbÚss        r0   Ú	__aexit__zGTestReadWriteMixin.iostream_pair.<locals>.IOStreamPairContext.__aexit__Þ   s0   è è € Øœð ð �AØ—G’G‘I”I�I�Iðð r/   N)r:   r;   r<   rŸ   r¢   r¨   r.   r/   r0   ÚIOStreamPairContextrœ   Õ   sA   € € € € € ð%ð %ð %ð!ð !ð !ðð ð ð ð r/   r©   r.   )r8   rL   r©   s      r0   Úiostream_pairz TestReadWriteMixin.iostream_pairÏ   s?   € ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð #Ð" 4¨Ñ0Ô0Ð0r/   c              #   óº   K  — |                       ¦   «         V —\  }}|                     d¦  «        V — |                     ¦   «          |                     ¦   «          d S )Nr/   )r™   r6   rS   )r8   ÚrsÚwss      r0   Útest_write_zero_bytesz(TestReadWriteMixin.test_write_zero_bytesä   sW   è è € ð ×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBØ�hŠh�s‰mŒmÐÐÐØ
�Š‰
Œ
ˆ
Ø
�Š‰
Œ
ˆ
ˆ
ˆ
r/   c              #   ó  K  — |                       ¦   «         V —\  }}	 |                     d¦  «         g }|                     |                     d¦  «        V —¦  «         |                     ¦   «          |                     |                     d¦  «        V —¦  «         |                      |ddg¦  «         |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Nó   12r�   ó   1ó   2)r™   r6   rt   rk   rS   rl   )r8   r¬   r­   Úchunkss       r0   Ú"test_future_delayed_close_callbackz5TestReadWriteMixin.test_future_delayed_close_callbackí   së   è è € ð ×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBð		Ø�HŠH�U‰OŒOˆOØˆFØ�MŠM §¢¨qÑ!1Ô!1Ð1Ð1Ñ3Ô3Ð3Ø�HŠH‰JŒJˆJØ�MŠM §¢¨qÑ!1Ô!1Ð1Ð1Ñ3Ô3Ð3Ø×Ò˜V d¨D \Ñ2Ô2Ð2à�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   �BC Ã*Dc              #   ó  K  — |                       d¬¦  «        V —\  }}	 |                     d¦  «         |                     d¦  «        V —}|                      d|¦  «         |                     ¦   «          t          j        d¦  «        V — |                     d¦  «        V —}|                      d|¦  «         |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Né   )Úread_chunk_sizes   AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs   AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg{®Gáz„?)r™   r6   rk   rl   rS   r   Úsleep©r8   r¬   r­   rf   s       r0   Útest_close_buffered_dataz+TestReadWriteMixin.test_close_buffered_dataý   sü   è è € ð ×.Ò.¸sÐ.ÑCÔCÐCÐC‰ˆˆBð	Ø�HŠH�ZÑ Ô Ð ØŸš sÑ+Ô+Ð+Ð+ˆDØ×Ò˜Z¨Ñ.Ô.Ð.Ø�HŠH‰JŒJˆJõ ”)˜D‘/”/Ð!Ð!Ð!ØŸš sÑ+Ô+Ð+Ð+ˆDØ×Ò˜Z¨Ñ.Ô.Ð.à�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   ŸBC" Ã"*Dc              #   óì  K  — |                       ¦   «         V —\  }}	 |                     d¦  «         |                     d¦  «        V —}|                     ¦   «          |                      |d¦  «         |                     ¦   «         V —}|                      |d¦  «         |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Ns   1234r�   r±   s   234)r™   r6   rk   rS   rl   rb   r¹   s       r0   Ú!test_read_until_close_after_closez4TestReadWriteMixin.test_read_until_close_after_close  sã   è è € ð ×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBð	Ø�HŠH�WÑÔÐð Ÿš qÑ)Ô)Ð)Ð)ˆDØ�HŠH‰JŒJˆJØ×Ò˜T 4Ñ(Ô(Ð(Ø×,Ò,Ñ.Ô.Ð.Ð.ˆDØ×Ò˜T 6Ñ*Ô*Ð*à�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   �BC	 Ã	*C3c              #   ód  K  — |                       ¦   «         V —\  }}	 t          |t          ¦  «        r+t          j        ¦   «         dk    rt          j        d¦  «        ‚d}t          |¦  «        D ]}|                     d¦  «         Œ|                     d¦  «         | 	                    d¦  «        V —}|  
                    t          |¦  «        |dz  dz   ¦  «         |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)NÚPyPyz$pypy gc causes problems with opensslé   s   AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr|   é   é   )r™   Ú
isinstancer   rW   Úpython_implementationÚunittestÚSkipTestÚranger6   r€   rl   ÚlenrS   )r8   r¬   r­   ÚNUM_KBÚirf   s         r0   Útest_large_read_untilz(TestReadWriteMixin.test_large_read_until*  s   è è € ð
 ×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBð	õ
 ˜2�{Ñ+Ô+ðPåÔ2Ñ4Ô4¸Ò>Ð>åÔ'Ð(NÑOÔOÐOØˆFÝ˜6‘]”]ð &ð &�Ø—’˜Ñ%Ô%Ð%Ð%Ø�HŠH�WÑÔÐØŸš wÑ/Ô/Ð/Ð/ˆDØ×Ò�S ™YœY¨°©¸Ñ(9Ñ:Ô:Ð:à�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   �B>D Ä*D/c              ƒ   ó¨  K  — |                       ¦   «         4 ƒd {V —†\  }}t          j        |                     d¦  «        ¦  «        }t          j        d¦  «        ƒ d {V —† |                     d¦  «        ƒ d {V —† |                     d¦  «         |                     ¦   «          |ƒ d {V —† d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nó   doneçš™™™™™¹?ó   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)rª   ÚasyncioÚensure_futurer€   r¸   r6   rS   ©r8   r¬   r­   Úrfs       r0   Ú.test_read_until_with_close_after_second_packetzATestReadWriteMixin.test_read_until_with_close_after_second_packetC  sm  è è € ð ×%Ò%Ñ'Ô'ð 		ð 		ð 		ð 		ð 		ð 		ð 		©8¨B°ÝÔ& r§}¢}°WÑ'=Ô'=Ñ>Ô>ˆBõ ”- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø—(’(˜;Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ø�HŠH�WÑÔÐØ�HŠH‰JŒJˆJØˆHˆHˆHˆHˆHˆHˆHð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð 		ð 		s   �BCÃ
CÃCc              ƒ   óØ  K  — |                       ¦   «         4 ƒd {V —†\  }}t          j        |                     d¦  «        ¦  «        }|                     d¦  «        ƒ d {V —† |                     d¦  «         |                     ¦   «          |                      t          ¦  «        5  |ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )NrÌ   rÎ   s   foo)rª   rÏ   rÐ   r€   r6   rS   rŒ   r
   rÑ   s       r0   Ú'test_read_until_unsatisfied_after_closez:TestReadWriteMixin.test_read_until_unsatisfied_after_close[  s³  è è € ð ×%Ò%Ñ'Ô'ð 	ð 	ð 	ð 	ð 	ð 	ð 	©8¨B°ÝÔ& r§}¢}°WÑ'=Ô'=Ñ>Ô>ˆBØ—(’(˜;Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ø�HŠH�VÑÔÐØ�HŠH‰JŒJˆJØ×"Ò"Õ#4Ñ5Ô5ð ð Ø�������ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s6   �B	CÂ&	B;Â/CÂ;B?	Â?CÃB?	ÃCÃ
C#Ã&C#c              #   ó>  K  — d}|                       ¦   «         V —\  }}t          ¦   «         }|                     |j        ¦  «         	 |                     |¦  «         |                     d¦  «        V —}|                      ||¦  «         |                     ¦   «          |                     d¦  «         |                     ¦   «         V — |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Ns   OK
r|   )	r™   r   Úset_close_callbackÚsetr6   r€   rl   rS   Úwait)r8   ÚOKr¬   r­   ÚeventÚress         r0   Ú%test_close_callback_with_pending_readz8TestReadWriteMixin.test_close_callback_with_pending_readi  sý   è è € ð
 ˆØ×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBÝ‘”ˆØ
×Ò˜eœiÑ(Ô(Ð(ð	Ø�HŠH�R‰LŒLˆLØŸš gÑ.Ô.Ð.Ð.ˆCØ×Ò˜S "Ñ%Ô%Ð%à�HŠH‰JŒJˆJØ�MŠM˜'Ñ"Ô"Ð"ð —*’*‘,”,ÐÐÐà�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   ÁBC2 Ã2*Dc              #   óˆ  ‡‡K  — |                       ¦   «         V —\  }}dgŠt          ¦   «         Šˆˆfd„}|                     |¦  «         	 |                     d¦  «         |                     d¦  «        V —}|                      |d¦  «         |                      ‰d         ¦  «         |                     ¦   «          ‰                     ¦   «         V — |  	                    ‰d         ¦  «         |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)NFc                  ó:   •— d‰ d<   ‰                      ¦   «          d S )NTr   )Únotify)ÚclosedÚconds   €€r0   Úclose_callbackzETestReadWriteMixin.test_future_close_callback.<locals>.close_callback‰  s   ø€ ØˆF�1‰IØ�KŠK‰MŒMˆMˆMˆMr/   ó   ar�   r   )
r™   r   r×   r6   rk   rl   rp   rS   rÙ   rc   )r8   r¬   r­   rã   rÜ   rá   râ   s        @@r0   Útest_future_close_callbackz-TestReadWriteMixin.test_future_close_callback�  s9  øøè è € ð ×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBØ�ˆÝ‰{Œ{ˆð	ð 	ð 	ð 	ð 	ð 	ð 	×Ò˜nÑ-Ô-Ð-ð
	Ø�HŠH�T‰NŒNˆNØŸš aÑ(Ô(Ð(Ð(ˆCØ×Ò˜S $Ñ'Ô'Ð'Ø×Ò˜V AœYÑ'Ô'Ð'Ø�HŠH‰JŒJˆJØ—)’)‘+”+ÐÐÐØ�OŠO˜F 1œIÑ&Ô&Ð&à�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   ÁB"D Ä*Ec              #   óŠ  K  — |                       ¦   «         V —\  }}	 |                     d¦  «        }|                     t          d¦  «        ¦  «         |V —}|                      |d¦  «         |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Né   ó   hellos   hell)r™   rk   r6   Ú
memoryviewrl   rS   ©r8   r¬   r­   Úfutrf   s        r0   Útest_write_memoryviewz(TestReadWriteMixin.test_write_memoryviewš  s°   è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBð	Ø—-’- Ñ"Ô"ˆCØ�HŠH•Z Ñ)Ô)Ñ*Ô*Ð*Ø�9�9ˆDØ×Ò˜T 7Ñ+Ô+Ð+à�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   �AB Â*Cc              #   ó^  K  — |                       ¦   «         V —\  }}	 |                     dd¬¦  «        }|                     d¦  «         |V —}|                      |d¦  «         |                     dd¬¦  «        }|                     d¦  «         |V —}|                      |d¦  «         |                     dd¬¦  «        V —}|                      |d	¦  «         |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)
Né2   T©Úpartialrè   rj   s   worldó   worr   r/   )r™   rk   r6   rl   rS   rê   s        r0   Útest_read_bytes_partialz*TestReadWriteMixin.test_read_bytes_partial¦  s'  è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBð	à—-’- ¨D�-Ñ1Ô1ˆCØ�HŠH�XÑÔÐØ�9�9ˆDØ×Ò˜T 8Ñ,Ô,Ð,ð —-’- ¨4�-Ñ0Ô0ˆCØ�HŠH�XÑÔÐØ�9�9ˆDØ×Ò˜T 6Ñ*Ô*Ð*ð Ÿš q°$˜Ñ7Ô7Ð7Ð7ˆDØ×Ò˜T 3Ñ'Ô'Ð'à�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   �B;D Ä*D,c              #   óF  K  — |                       ¦   «         V —\  }}t          ¦   «         }|                     |j        ¦  «         	 |                     dd¬¦  «        }|                     d¦  «         |V —}|                      |d¦  «         |                     dd¬¦  «        }|                     d¦  «         |V —}|                      |d¦  «         t          t          dt          j
        ¬¦  «        5  |                     dd¬¦  «        }|                     d	¦  «         |                     ¦   «         V — d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w©
Nó   defrî   ©Ú	max_bytesó   abcdefé   úUnsatisfiable read©Úlevelé   ó   123456)r™   r   r×   rØ   r€   r6   rl   r   r   ÚloggingÚINFOrÙ   rS   ©r8   r¬   r­   rá   rë   rf   s         r0   Útest_read_until_max_bytesz,TestReadWriteMixin.test_read_until_max_bytes¿  s¿  è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBÝ‘”ˆØ
×Ò˜fœjÑ)Ô)Ð)ð	à—-’- °"�-Ñ5Ô5ˆCØ�HŠH�YÑÔÐØ�9�9ˆDØ×Ò˜T 9Ñ-Ô-Ð-ð —-’- °!�-Ñ4Ô4ˆCØ�HŠH�YÑÔÐØ�9�9ˆDØ×Ò˜T 9Ñ-Ô-Ð-õ �7Ð$8ÅÄÐMÑMÔMð $ð $Ø—m’m F°a�mÑ8Ô8�Ø—’˜Ñ#Ô#Ð#Ø—k’k‘m”mÐ#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð
 �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøó2   ÁB-E6 Ã2AEÄ5E6 ÅEÅE6 ÅEÅ	E6 Å6*F c              #   ó–  K  — |                       ¦   «         V —\  }}t          ¦   «         }|                     |j        ¦  «         	 |                     d¦  «         t          t          dt          j        ¬¦  «        5  |  	                    t          ¦  «        5  |                     dd¬¦  «        V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         V — |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w©Nrþ   rú   rû   rõ   rý   rö   )r™   r   r×   rØ   r6   r   r   rÿ   r   rŒ   r
   r€   rÙ   rS   ©r8   r¬   r­   rá   s       r0   Ú test_read_until_max_bytes_inlinez3TestReadWriteMixin.test_read_until_max_bytes_inlineÛ  s¢  è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBÝ‘”ˆØ
×Ò˜fœjÑ)Ô)Ð)ð	ð
 �HŠH�YÑÔÐÝ�7Ð$8ÅÄÐMÑMÔMð =ð =Ø×&Ò&Õ'8Ñ9Ô9ð =ð =ØŸ-š-¨¸!˜-Ñ<Ô<Ð<Ð<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð —+’+‘-”-ÐÐÐà�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøsT   Á6D Á;CÂB<Â0CÂ<C 	Ã CÃC 	ÃCÃD ÃCÃD ÃCÃD Ä*Ec              #   ó.  K  — |                       ¦   «         V —\  }}t          ¦   «         }|                     |j        ¦  «         	 |                     d¦  «         t          t          dt          j        ¬¦  «        5  | 	                    dd¬¦  «         | 
                    ¦   «         V — d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w©Nrø   rú   rû   rõ   rý   rö   )r™   r   r×   rØ   r6   r   r   rÿ   r   r€   rÙ   rS   r  s       r0   Ú'test_read_until_max_bytes_ignores_extraz:TestReadWriteMixin.test_read_until_max_bytes_ignores_extraî  s2  è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBÝ‘”ˆØ
×Ò˜fœjÑ)Ô)Ð)ð
	ð �HŠH�YÑÔÐÝ�7Ð$8ÅÄÐMÑMÔMð $ð $Ø—’˜f°�Ñ2Ô2Ð2Ø—k’k‘m”mÐ#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøó0   Á6C* Á;.B5Â)C* Â5B9Â9C* Â<B9Â=C* Ã**Dc              #   óF  K  — |                       ¦   «         V —\  }}t          ¦   «         }|                     |j        ¦  «         	 |                     dd¬¦  «        }|                     d¦  «         |V —}|                      |d¦  «         |                     dd¬¦  «        }|                     d¦  «         |V —}|                      |d¦  «         t          t          dt          j
        ¬¦  «        5  |                     dd¬¦  «         |                     d	¦  «         |                     ¦   «         V — d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY wrô   )r™   r   r×   rØ   Úread_until_regexr6   rl   r   r   rÿ   r   rÙ   rS   r  s         r0   Útest_read_until_regex_max_bytesz2TestReadWriteMixin.test_read_until_regex_max_bytesÿ  sÉ  è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBÝ‘”ˆØ
×Ò˜fœjÑ)Ô)Ð)ð	à×%Ò% f¸Ð%Ñ;Ô;ˆCØ�HŠH�YÑÔÐØ�9�9ˆDØ×Ò˜T 9Ñ-Ô-Ð-ð ×%Ò% f¸Ð%Ñ:Ô:ˆCØ�HŠH�YÑÔÐØ�9�9ˆDØ×Ò˜T 9Ñ-Ô-Ð-õ �7Ð$8ÅÄÐMÑMÔMð $ð $Ø×#Ò# F°aÐ#Ñ8Ô8Ð8Ø—’˜Ñ#Ô#Ð#Ø—k’k‘m”mÐ#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð
 �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøør  c              #   ó.  K  — |                       ¦   «         V —\  }}t          ¦   «         }|                     |j        ¦  «         	 |                     d¦  «         t          t          dt          j        ¬¦  «        5  | 	                    dd¬¦  «         | 
                    ¦   «         V — d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY wr  ©r™   r   r×   rØ   r6   r   r   rÿ   r   r  rÙ   rS   r  s       r0   Ú&test_read_until_regex_max_bytes_inlinez9TestReadWriteMixin.test_read_until_regex_max_bytes_inline  s5  è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBÝ‘”ˆØ
×Ò˜fœjÑ)Ô)Ð)ð	ð
 �HŠH�YÑÔÐÝ�7Ð$8ÅÄÐMÑMÔMð $ð $Ø×#Ò# F°aÐ#Ñ8Ô8Ð8Ø—k’k‘m”mÐ#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøør  c              #   ó.  K  — |                       ¦   «         V —\  }}t          ¦   «         }|                     |j        ¦  «         	 |                     d¦  «         t          t          dt          j        ¬¦  «        5  | 	                    dd¬¦  «         | 
                    ¦   «         V — d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY wr	  r  r  s       r0   Ú-test_read_until_regex_max_bytes_ignores_extraz@TestReadWriteMixin.test_read_until_regex_max_bytes_ignores_extra-  s5  è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBÝ‘”ˆØ
×Ò˜fœjÑ)Ô)Ð)ð
	ð �HŠH�YÑÔÐÝ�7Ð$8ÅÄÐMÑMÔMð $ð $Ø×#Ò# F°aÐ#Ñ8Ô8Ð8Ø—k’k‘m”mÐ#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøør  c              #   óœ  K  — |                       d¬¦  «        V —\  }}	 |                     ddz  ¦  «         t          d¦  «        D ]/}|                     d¦  «        V —}|                      |d¦  «         Œ0	 |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Né (  ©Úmax_buffer_sizes   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaéd   rÀ   )r™   r6   rÆ   rk   rl   rS   ©r8   r¬   r­   rÉ   rf   s        r0   Ú"test_small_reads_from_large_bufferz5TestReadWriteMixin.test_small_reads_from_large_buffer>  sÐ   è è € ð
 ×.Ò.¸yÐ.ÑIÔIÐIÐI‰ˆˆBð	Ø�HŠH�[ 3Ñ&Ñ'Ô'Ð'Ý˜3‘Z”Zð 4ð 4�ØŸ]š]¨4Ñ0Ô0Ð0Ð0�Ø× Ò   {Ñ3Ô3Ð3Ð3ð4ð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   ŸAB! Â!*Cc              #   ó   K  — |                       d¬¦  «        V —\  }}	 |                     ddz  ¦  «         t          d¦  «        D ]1}|                     dd¬¦  «        V —}|                      |d¦  «         Œ2	 |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Nr  r  s   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
r  ó   
r¿   rö   )r™   r6   rÆ   r€   rl   rS   r  s        r0   Ú(test_small_read_untils_from_large_bufferz;TestReadWriteMixin.test_small_read_untils_from_large_bufferM  sÖ   è è € ð
 ×.Ò.¸yÐ.ÑIÔIÐIÐI‰ˆˆBð	Ø�HŠHÐ)¨SÑ0Ñ1Ô1Ð1Ý˜3‘Z”Zð <ð <�ØŸ]š]¨5¸D˜]ÑAÔAÐAÐA�Ø× Ò  Ð':Ñ;Ô;Ð;Ð;ð<ð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   ŸAB# Â#*Cc              #   óÔ  K  — d}|                       d|z  ¬¦  «        V —\  }}	 |                     d|z  ¦  «         |                     |¦  «        V — t          j        d¦  «        V — t          d¦  «        D ]}|                     |¦  «        V — Œ	 |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Nr‹   rý   r  s
   aaaaaaaaaarÍ   ri   )r™   r6   rk   r   r¸   rÆ   rS   )r8   ÚMBr¬   r­   rÉ   s        r0   Útest_flow_controlz$TestReadWriteMixin.test_flow_control\  sï   è è € àˆØ×.Ò.¸qÀ2¹vÐ.ÑFÔFÐFÐF‰ˆˆBð	à�HŠH�Y ‘^Ñ$Ô$Ð$à—-’- Ñ#Ô#Ð#Ð#Ð#Ý”)˜C‘.”.Ð Ð Ð õ ˜1‘X”Xð (ð (�Ø—m’m BÑ'Ô'Ð'Ð'Ð'Ð'ð(ð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   ¤A.B= Â=*C'c              #   óª  ‡ K  — ‰                       ¦   «         V —\  }}ˆ fd„}	 t          d¦  «        }|                     |¦  «        }|                     d¦  «         t	          j        d¦  «        V — ‰                      |                     ¦   «         ¦  «         |                     d¦  «         |V —}‰                      |                     ¦   «         ¦  «         ‰  	                    |d¦  «         ‰  	                    t          |¦  «        d¦  «         |                     |¦  «        }t	          j        d¦  «        V — ‰                      |                     ¦   «         ¦  «         |                     d¦  «         |V —}‰                      |                     ¦   «         ¦  «         ‰  	                    |d¦  «         ‰  	                    t          |¦  «        d¦  «         t          d	¦  «        }|                     d
¦  «         |                     |¦  «        V —}‰  	                    |d	¦  «         ‰  	                    t          |¦  «        d¦  «         |                     d¦  «        V —}‰  	                    |d¦  «         |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Nc                  ó>   •— ‰ j                              d„ ¦  «         d S )Nc                  ó*   — t          j        d¦  «        S )Nçš™™™™™©?)r   r¸   r.   r/   r0   ú<lambda>zGTestReadWriteMixin.test_read_into.<locals>.sleep_some.<locals>.<lambda>s  s   € ­#¬)°D©/¬/€ r/   )Úio_loopÚrun_syncr7   s   €r0   Ú
sleep_somez5TestReadWriteMixin.test_read_into.<locals>.sleep_somer  s#   ø€ ØŒL×!Ò!Ð"9Ð"9Ñ:Ô:Ð:Ð:Ð:r/   é
   rè   r$  s   world!!s
   helloworlds
   1234567890s
   !!12345678rç   s	   abcdefghis   90abé   s   cdefghi)r™   Ú	bytearrayÚ	read_intor6   r   r¸   rc   Úreadingrp   rl   Úbytesrk   rS   )r8   r¬   r­   r(  Úbufrë   rf   s   `      r0   Útest_read_intoz!TestReadWriteMixin.test_read_inton  s„  øè è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBð	;ð 	;ð 	;ð 	;ð 	;ð!	Ý˜B‘-”-ˆCØ—,’,˜sÑ#Ô#ˆCØ�HŠH�XÑÔÐÝ”)˜D‘/”/Ð!Ð!Ð!Ø�OŠO˜BŸJšJ™LœLÑ)Ô)Ð)Ø�HŠH�ZÑ Ô Ð Ø�9�9ˆDØ×Ò˜RŸZšZ™\œ\Ñ*Ô*Ð*Ø×Ò˜T 2Ñ&Ô&Ð&Ø×Ò�U 3™ZœZ¨Ñ7Ô7Ð7ð —,’,˜sÑ#Ô#ˆCÝ”)˜D‘/”/Ð!Ð!Ð!Ø�OŠO˜BŸJšJ™LœLÑ)Ô)Ð)Ø�HŠH�]Ñ#Ô#Ð#Ø�9�9ˆDØ×Ò˜RŸZšZ™\œ\Ñ*Ô*Ð*Ø×Ò˜T 2Ñ&Ô&Ð&Ø×Ò�U 3™ZœZ¨Ñ7Ô7Ð7õ ˜A‘,”,ˆCØ�HŠH�\Ñ"Ô"Ð"ØŸš cÑ*Ô*Ð*Ð*ˆDØ×Ò˜T 1Ñ%Ô%Ð%Ø×Ò�U 3™ZœZ¨Ñ1Ô1Ð1àŸš qÑ)Ô)Ð)Ð)ˆDØ×Ò˜T :Ñ.Ô.Ð.à�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   £IJ( Ê(*Kc              #   ó˜  K  — |                       ¦   «         V —\  }}	 t          d¦  «        }|                     |d¬¦  «        }|                     d¦  «         |V —}|                      |                     ¦   «         ¦  «         |                      |d¦  «         |                      t          |¦  «        d¦  «         |                     d¦  «         |                     |d¬¦  «        V —}|                      |d¦  «         |                      t          |¦  «        d¦  «         |                     |d¬¦  «        V —}|                      |d	¦  «         |                      t          |¦  «        d
¦  «         |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Nr)  Trï   rè   rý   s
   hello     s   world!1234567890s
   world!1234rù   s
   5678901234)	r™   r+  r,  r6   rp   r-  rl   r.  rS   )r8   r¬   r­   r/  rë   rf   s         r0   Útest_read_into_partialz)TestReadWriteMixin.test_read_into_partial˜  s£  è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBð	å˜B‘-”-ˆCØ—,’,˜s¨D�,Ñ1Ô1ˆCØ�HŠH�XÑÔÐØ�9�9ˆDØ×Ò˜RŸZšZ™\œ\Ñ*Ô*Ð*Ø×Ò˜T 1Ñ%Ô%Ð%Ø×Ò�U 3™ZœZÐ);Ñ<Ô<Ð<ð �HŠHÐ(Ñ)Ô)Ð)ØŸš c°4˜Ñ8Ô8Ð8Ð8ˆDØ×Ò˜T 2Ñ&Ô&Ð&Ø×Ò�U 3™ZœZ¨Ñ7Ô7Ð7ð Ÿš c°4˜Ñ8Ô8Ð8Ð8ˆDØ×Ò˜T 1Ñ%Ô%Ð%Ø×Ò�U 3™ZœZ¨Ñ7Ô7Ð7ð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   �EF Æ*G	c              #   ó~  K  — |                       ¦   «         V —\  }}	 t          ¦   «         }|                     |¦  «        }|                      |                     ¦   «         d¦  «         |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w©Nr   )r™   r+  r,  rl   ÚresultrS   )r8   r¬   r­   r/  rë   s        r0   Útest_read_into_zero_bytesz,TestReadWriteMixin.test_read_into_zero_bytesµ  sž   è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBð	Ý‘+”+ˆCØ—,’,˜sÑ#Ô#ˆCØ×Ò˜SŸZšZ™\œ\¨1Ñ-Ô-Ð-à�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   �AB Â*B<c              #   óZ  ‡‡‡‡‡‡K  — t          j        d¦  «        ŠdŠ|                      ¦   «         V —\  ŠŠt          j        ¦   «         Št          j        ¦   «         Št
          j        ˆˆˆˆfd„¦   «         }t
          j        ˆˆˆˆfd„¦   «         }	  |¦   «          |¦   «         gV — ‰                     ¦   «         ‰                     ¦   «         k    sJ ‚	 ‰                     ¦   «          ‰                     ¦   «          d S # ‰                     ¦   «          ‰                     ¦   «          w xY w)Né*   i@B c               3   ó
  •K  — ‰} | dk    ro‰                      dt          d| ¦  «        ¦  «        }t          j        |¦  «        }‰                     |¦  «         ‰                     |¦  «        V — | |z  } | dk    °o| dk    sJ ‚d S )Nr   r�   éè  )ÚrandintÚminr)   ÚurandomÚupdater6   )Ú	remainingÚsizerf   ÚnbytesÚproduce_hashÚrr­   s      €€€€r0   Úproducez9TestReadWriteMixin.test_many_mixed_reads.<locals>.produceÌ  s“   øè è € àˆIØ˜a’-�-Ø—y’y ¥C¨¨iÑ$8Ô$8Ñ9Ô9�Ý”z $Ñ'Ô'�Ø×#Ò# DÑ)Ô)Ð)Ø—h’h˜t‘n”nÐ$Ð$Ð$Ø˜TÑ!�	ð ˜a’-�-ð  ’>�>�>�>�>�>r/   c               3   óì  •K  — ‰} | dk    rà‰                      ¦   «         dk    rV‰                     dt          d| ¦  «        ¦  «        }‰                     |¦  «        V —}‰                     |¦  «         | |z  } nl‰                     dt          d| ¦  «        ¦  «        }t          |¦  «        }‰                     |¦  «        V —}||k    sJ ‚‰                     |¦  «         | |z  } | dk    °à| dk    sJ ‚d S )Nr   g      à?r�   r:  )Úrandomr;  r<  rk   r>  r+  r,  )	r?  r@  rf   r/  ÚnÚconsume_hashrA  rC  r¬   s	        €€€€r0   Úconsumez9TestReadWriteMixin.test_many_mixed_reads.<locals>.consume×  s  øè è € àˆIØ˜a’-�-Ø—8’8‘:”: Ò#Ð#àŸ9š9 Q­¨D°)Ñ(<Ô(<Ñ=Ô=�DØ!#§¢¨tÑ!4Ô!4Ð4Ð4�DØ ×'Ò'¨Ñ-Ô-Ð-Ø Ñ%�I�Ið Ÿ9š9 Q­¨D°)Ñ(<Ô(<Ñ=Ô=�DÝ# D™/œ/�CØ Ÿlšl¨3Ñ/Ô/Ð/Ð/�AØ š9˜9˜9˜9Ø ×'Ò'¨Ñ,Ô,Ð,Ø Ñ%�Ið ˜a’-�-ð  ’>�>�>�>�>�>r/   )	rF  ÚRandomr™   ÚhashlibÚsha1r   Ú	coroutineÚ	hexdigestrS   )	r8   rD  rI  rH  rA  rB  rC  r¬   r­   s	      @@@@@@r0   Útest_many_mixed_readsz(TestReadWriteMixin.test_many_mixed_readsÀ  sK  øøøøøøè è € õ
 ŒM˜"ÑÔˆØˆØ×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBå”|‘~”~ˆÝ”|‘~”~ˆå	Œð	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ñ 
Œð	"õ 
Œð	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ñ 
Œð	"ð&	Ø�7‘9”9˜g˜g™iœiÐ(Ð(Ð(Ð(Ø×)Ò)Ñ+Ô+¨|×/EÒ/EÑ/GÔ/GÒGÐGÐGÐGÐGà�HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJˆJøð �HŠH‰JŒJˆJØ�HŠH‰JŒJˆJˆJøøøs   ÂAD  Ä *D*N)r:   r;   r<   r™   rª   r   r®   r´   rº   r¼   rÊ   rÓ   rÕ   rÝ   rå   rì   rò   r  r  r
  r  r  r  r  r  r   r0  r2  r6  rO  r.   r/   r0   r—   r—   Ç   s»  € € € € € ð
"ð "ð "ð1ð 1ð 1ð* ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð2 ðð ñ „Xðð$ ðð ñ „Xðð0 ðð ñ „Xðð. ðð ñ „Xðð ðð ñ „Xðð. ðð ñ „Xðð0 ð	ð 	ñ „Xð	ð ðð ñ „Xðð0 ðð ñ „Xðð6 ðð ñ „Xðð$ ðð ñ „Xðð  ðð ñ „Xðð6 ðð ñ „Xðð" ðð ñ „Xðð  ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð" ð'ð 'ñ „Xð'ðR ðð ñ „Xðð8 ðð ñ „Xðð ð/ð /ñ „Xð/ð /ð /r/   r—   c                   óÎ   — e Zd Zd„ Zd„ Zej        d„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zeed„ ¦   «         ¦   «         Zed„ ¦   «         Zed	„ ¦   «         Zd
S )ÚTestIOStreamMixinc                 ó   — t          ¦   «         ‚r@   rA   ©r8   Ú
connectionrL   s      r0   Ú_make_server_iostreamz'TestIOStreamMixin._make_server_iostreamõ  rD   r/   c                 ó   — t          ¦   «         ‚r@   rA   rS  s      r0   rC   z'TestIOStreamMixin._make_client_iostreamø  rD   r/   c              +   ó¬  ‡ ‡‡K  — t          ¦   «         \  }}t          ¦   «         Šˆˆ ˆfd„}t          j        ||¦  «          ‰ j        t          j        ¦   «         fi ‰¤Ž}|                     d|f¦  «        }‰|gV —\  }}‰ j                             | 	                    ¦   «         ¦  «         | 
                    ¦   «          t          j        ||f¦  «        ‚)Nc                 óJ   •— ‰                       ‰j        | fi ‰¤Ž¦  «         d S r@   )Ú
set_resultrU  )rT  ÚaddressrL   r8   Úserver_stream_futs     €€€r0   Úaccept_callbackz=TestIOStreamMixin.make_iostream_pair.<locals>.accept_callback   s=   ø€ Ø×(Ò(Ø*�Ô*¨:Ð@Ð@¸Ð@Ð@ñô ð ð ð r/   r^   )r   r   r   Úadd_accept_handlerrC   Úsocketra   r&  Úremove_handlerÚfilenorS   r   ÚReturn)	r8   rL   ÚlistenerÚportr\  Úclient_streamrv   Úserver_streamr[  s	   ``      @r0   r™   z$TestIOStreamMixin.make_iostream_pairû  sì   øøøè è € å)Ñ+Ô+‰ˆ�$Ý"™HœHÐð	ð 	ð 	ð 	ð 	ð 	ð 	õ
 	Ô" 8¨_Ñ=Ô=Ð=Ø2˜Ô2µ6´=±?´?ÐMÐMÀfÐMÐMˆØ#×+Ò+¨[¸$Ð,?Ñ@Ô@ˆØ.?ÀÐ-MÐ'MÐ'MÑ$ˆ�}ØŒ×#Ò# H§O¢OÑ$5Ô$5Ñ6Ô6Ð6Ø�ŠÑÔÐÝŒj˜-¨Ð7Ñ8Ô8Ð8r/   c              #   ó$  K  — t          ¦   «         \  }}|                      |¦  «         t          t          j        ¦   «         ¦  «        }|                     | j        ¦  «         t          t          dd¬¦  «        5  |                      t          ¦  «        5  | 
                    d|f¦  «        V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                      t          |j        t          ¦  «        |j        ¦  «         d S )Nz.*F)Úrequiredr^   )r   Ú
addCleanupr   r^  r×   Ústopr   r   rŒ   r
   ra   rc   rÂ   ÚerrorÚConnectionRefusedError)r8   Úcleanup_funcrc  re   s       r0   Útest_connection_refusedz)TestIOStreamMixin.test_connection_refused  sm  è è € õ
 +™_œ_Ñˆ�dØ�Š˜Ñ%Ô%Ð%Ý�&œ-™/œ/Ñ*Ô*ˆà×!Ò! $¤)Ñ,Ô,Ð,å•w ¨uÐ5Ñ5Ô5ð 	:ð 	:Ø×"Ò"Õ#4Ñ5Ô5ð :ð :Ø—n’n k°4Ð%8Ñ9Ô9Ð9Ð9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	�Š�
 6¤<Õ1GÑHÔHÈ&Ì,ÑWÔWÐWÐWÐWs6   Á:CÂB;Â/CÂ;B?	Â?CÃB?	ÃCÃCÃCc              #   ó>  K  — t          j         t           j        t           j        d¦  «        }t          |¦  «        }|                     | j        ¦  «         t          j        dt          j        t          j
        d¦  «        ¬¦  «        5  |                      t          ¦  «        5  |                     d¦  «        V — d d d ¦  «         n# 1 swxY w Y   |                      t          |j        t           j        ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   zsocket.socket.connectÚboom©Úside_effect)Ú	localhostéP   )r^  ÚAF_INETÚSOCK_STREAMr   r×   ri  r"   ÚpatchÚgaierrorÚerrnoÚEIOrŒ   r
   ra   rc   rÂ   rj  )r8   r§   re   s      r0   Útest_gaierrorzTestIOStreamMixin.test_gaierror  sˆ  è è € õ ŒM�&œ.­&Ô*<¸aÑ@Ô@ˆÝ˜!‘”ˆØ×!Ò! $¤)Ñ,Ô,Ð,ÝŒZØ#µ´ÅÄÈFÑ1SÔ1Sð
ñ 
ô 
ð 	Gð 	Gð ×"Ò"Õ#4Ñ5Ô5ð 8ð 8Ø—n’nÐ%6Ñ7Ô7Ð7Ð7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8à�OŠO�J v¤|µV´_ÑEÔEÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gs6   Â	DÂ$CÂ<DÃC	ÃDÃC	Ã5DÄDÄDc              #   óì  K  — |                       ¦   «         V —\  }}	 t          j        dt          d¦  «        ¬¦  «        5  |                      t          d¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Nz.tornado.iostream.BaseIOStream._try_inline_readro  rp  )r™   r"   rv  ÚIOErrorÚassertRaisesRegexrb   rS   )r8   ÚserverÚclients      r0   Ú test_read_until_close_with_errorz2TestIOStreamMixin.test_read_until_close_with_error/  s_  è è € à#×6Ò6Ñ8Ô8Ð8Ð8‰ˆ�ð		Ý”Ø@Ý# F™OœOðñ ô ð .ð .ð ×+Ò+­G°VÑ<Ô<ð .ð .Ø×+Ò+Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð	.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNˆNøð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNøøøsS   �#C	 Á BÁA=Á1BÁ=B	ÂBÂB	ÂBÂC	 ÂBÂC	 ÂBÂC	 Ã	*C3c              #   óZ  K  — t          j        ¦   «         }t          |j        t          ¦  «        r|                      d¦  «         |                      ¦   «         V —\  }}	 t          j        |j	         
                    ¦   «         ¦  «         |                      t          j        ¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Nz(AddThreadSelectorEventLoop not supportedr�   )r   ÚcurrentrÂ   Úselector_loopr   rY   r™   r)   rS   r^  r`  rŒ   rj  rk   )r8   r&  r~  r  s       r0   Útest_inline_read_errorz(TestIOStreamMixin.test_inline_read_error=  sE  è è € õ& ”.Ñ"Ô"ˆÝØÔ!Ý&ñ
ô 
ð 	Fð �MŠMÐDÑEÔEÐEØ#×6Ò6Ñ8Ô8Ð8Ð8‰ˆ�ð	ÝŒH�V”]×)Ò)Ñ+Ô+Ñ,Ô,Ð,Ø×"Ò"¥6¤<Ñ0Ô0ð %ð %Ø×!Ò! !Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNˆNøð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNøøøs1   ÁA
D  Â)CÂ?D  ÃCÃD  ÃCÃD  Ä *D*c              #   ó,  ‡K  — |                       ¦   «         V —\  Š}t          ¦   «         }‰                     |j        ¦  «         	 ‰                     d¦  «         |                     d¦  «         ˆfd„}|‰_        t          t          d¦  «        5  | 	                    ¦   «         V — d d d ¦  «         n# 1 swxY w Y   ‰ 
                    ¦   «          | 
                    ¦   «          d S # ‰ 
                    ¦   «          | 
                    ¦   «          w xY w)Nr�   rä   c                  ó’   •— t          j        ‰ j                             ¦   «         ¦  «         ‰ j                             ‰ ¦  «         d S r@   )r)   rS   r^  r`  Ú	__class__Úread_from_fd)r~  s   €r0   Úfake_read_from_fdzJTestIOStreamMixin.test_async_read_error_logging.<locals>.fake_read_from_fdl  s>   ø€ Ý”˜œ×-Ò-Ñ/Ô/Ñ0Ô0Ð0ØÔ ×-Ò-¨fÑ5Ô5Ð5Ð5Ð5r/   zerror on read)r™   r   r×   rØ   rk   r6   rˆ  r   r   rÙ   rS   )r8   r  rá   r‰  r~  s       @r0   Útest_async_read_error_loggingz/TestIOStreamMixin.test_async_read_error_logging_  sL  øè è € ð  $×6Ò6Ñ8Ô8Ð8Ð8‰ˆ�Ý‘”ˆØ×!Ò! &¤*Ñ-Ô-Ð-ð	à×Ò˜aÑ Ô Ð Ø�LŠL˜ÑÔÐð6ð 6ð 6ð 6ð 6ð #4ˆFÔå�7 OÑ4Ô4ð $ð $Ø—k’k‘m”mÐ#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNˆNøð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNøøøs1   ÁAC) ÂB4Â(C) Â4B8Â8C) Â;B8Â<C) Ã)*Dc              #   óÌ  ‡‡‡‡‡‡K  — d\  ŠŠd}‰‰z  |z  Š|                       ‰¬¦  «        V —\  ŠŠt          j        ˆˆˆfd„¦   «         Št          j        ˆˆˆfd„¦   «         }	 ˆfd„t          |¦  «        D ¦   «          |¦   «         gz   V — ‰                     ¦   «          ‰                     ¦   «          dS # ‰                     ¦   «          ‰                     ¦   «          w xY w)z?
        Test that write() Futures are never orphaned.
        )iˆ  r:  r)  r  c               3   óh   •K  — d‰z  } t          ‰¦  «        D ]}‰                     | ¦  «        V — Œd S )Nó   x)rÆ   r6   )rf   rÉ   ÚmrG  r~  s     €€€r0   rD  z4TestIOStreamMixin.test_future_write.<locals>.produce„  sJ   øè è € à˜!‘8ˆDÝ˜1‘X”Xð )ð )�Ø—l’l 4Ñ(Ô(Ð(Ð(Ð(Ð(ð)ð )r/   c               3   ó~   •K  — d} | ‰k     r1‰                      ‰¦  «        V —}| t          |¦  «        z  } | ‰k     °/d S d S r4  )rk   rÇ   )ÚnreadrÜ   r  rŽ  Útotal_bytess     €€€r0   rI  z4TestIOStreamMixin.test_future_write.<locals>.consumeŠ  sY   øè è € àˆEØ˜+Ò%Ð%Ø"×-Ò-¨aÑ0Ô0Ð0Ð0�Ø�˜S™œÑ!�ð ˜+Ò%Ð%Ð%Ð%Ð%Ð%r/   c                 ó$   •— g | ]} ‰¦   «         ‘ŒS r.   r.   )Ú.0rÉ   rD  s     €r0   ú
<listcomp>z7TestIOStreamMixin.test_future_write.<locals>.<listcomp>’  s   ø€ Ð8Ð8Ð8 �7�7‘9”9Ð8Ð8Ð8r/   N)r™   r   rM  rÆ   rS   )	r8   Ú
nproducersrI  r  rŽ  rG  rD  r~  r‘  s	      @@@@@@r0   Útest_future_writez#TestIOStreamMixin.test_future_writex  s$  øøøøøøè è € ð ‰ˆˆ1Øˆ
Ø˜!‘e˜jÑ(ˆØ#×6Ò6À{Ð6ÑSÔSÐSÐS‰ˆ�å	Œð	)ð 	)ð 	)ð 	)ð 	)ð 	)ñ 
Œð	)õ
 
Œð	"ð 	"ð 	"ð 	"ð 	"ð 	"ñ 
Œð	"ð	Ø8Ð8Ð8Ð8¥e¨JÑ&7Ô&7Ð8Ñ8Ô8¸G¸G¹I¼I¸;ÑFÐFÐFÐFà�LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNˆNøð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNøøøs   Á&)B9 Â9*C#N)r:   r;   r<   rU  rC   r   rM  r™   r   rm  rz  r€  r   r„  rŠ  r–  r.   r/   r0   rQ  rQ  ó  s  € € € € € ð$ð $ð $ð$ð $ð $ð 	„]ð9ð 9ñ „]ð9ð" ðXð Xñ „XðXð  ðGð Gñ „XðGð  ðð ñ „Xðð Øðð ñ „Xñ „]ðð@ ðð ñ „Xðð0 ðð ñ „Xðð ð r/   rQ  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestIOStreamWebHTTPc                 óB   — t          t          j        ¦   «         ¦  «        S r@   )r   r^  r7   s    r0   rC   z)TestIOStreamWebHTTP._make_client_iostream™  s   € Ý�œ™œÑ(Ô(Ð(r/   c                 ó*   — |                       ¦   «         S r@   ©rG   r7   s    r0   Úget_appzTestIOStreamWebHTTP.get_appœ  ó   € Ø×!Ò!Ñ#Ô#Ð#r/   N©r:   r;   r<   rC   rœ  r.   r/   r0   r˜  r˜  ˜  s2   € € € € € ð)ð )ð )ð$ð $ð $ð $ð $r/   r˜  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestIOStreamWebHTTPSc                 óv   — t          t          j        ¦   «         t          t          j        ¬¦  «        ¬¦  «        S )N©Ú	cert_reqs©Ússl_options)r   r^  r(   ÚsslÚ	CERT_NONEr7   s    r0   rC   z*TestIOStreamWebHTTPS._make_client_iostream¡  s(   € Ý�6œ=™?œ?½ÅsÄ}Ð8UÑ8UÔ8UÐVÑVÔVÐVr/   c                 ó*   — |                       ¦   «         S r@   r›  r7   s    r0   rœ  zTestIOStreamWebHTTPS.get_app¤  r�  r/   Nrž  r.   r/   r0   r   r      s5   € € € € € ðWð Wð Wð$ð $ð $ð $ð $r/   r   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestIOStreamc                 ó   — t          |fi |¤ŽS r@   ©r   rS  s      r0   rU  z"TestIOStream._make_server_iostream©  ó   € Ý˜
Ð-Ð- fÐ-Ð-Ð-r/   c                 ó   — t          |fi |¤ŽS r@   r¬  rS  s      r0   rC   z"TestIOStream._make_client_iostream¬  r­  r/   N©r:   r;   r<   rU  rC   r.   r/   r0   rª  rª  ¨  s2   € € € € € ð.ð .ð .ð.ð .ð .ð .ð .r/   rª  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestIOStreamSSLc                 ó†   — t          t          ¦   «         d¬¦  «        }|                     |dd¬¦  «        }t          |fi |¤ŽS )NT)Úserver_sideF©r³  Údo_handshake_on_connect)r   r1   Úwrap_socketr   )r8   rT  rL   Ússl_ctxs       r0   rU  z%TestIOStreamSSL._make_server_iostream±  sV   € Ý(Õ)<Ñ)>Ô)>ÈDÐQÑQÔQˆØ×(Ò(ØØØ$)ð )ñ 
ô 
ˆ
õ
 ˜:Ð0Ð0¨Ð0Ð0Ð0r/   c                 óP   — t          |fdt          t          j        ¬¦  «        i|¤ŽS )Nr¥  r¢  )r   r(   r¦  r§  rS  s      r0   rC   z%TestIOStreamSSL._make_client_iostreamº  s9   € ÝØð
ð 
Ý$(µ3´=Ð$AÑ$AÔ$Að
ØEKð
ð 
ð 	
r/   Nr¯  r.   r/   r0   r±  r±  °  s2   € € € € € ð1ð 1ð 1ð
ð 
ð 
ð 
ð 
r/   r±  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestIOStreamSSLContextc                 ó´  — t          j        t           j        j        ¦  «        }|                     t
          j                             t
          j                             t          ¦  «        d¦  «        t
          j                             t
          j                             t          ¦  «        d¦  «        ¦  «         t          ||dd¬¦  «        }t          |fi |¤ŽS ©Nr$   r%   TFr´  )r¦  Úcreate_default_contextÚPurposeÚCLIENT_AUTHÚload_cert_chainr)   r*   r+   r,   r-   r   r   ©r8   rT  rL   Úcontexts       r0   rU  z,TestIOStreamSSLContext._make_server_iostreamÄ  s¨   € ÝÔ,­S¬[Ô-DÑEÔEˆØ×ÒÝŒG�LŠL�œŸš­Ñ2Ô2°JÑ?Ô?ÝŒG�LŠL�œŸš­Ñ2Ô2°JÑ?Ô?ñ	
ô 	
ð 	
õ %Ø˜¨TÈ5ð
ñ 
ô 
ˆ
õ ˜:Ð0Ð0¨Ð0Ð0Ð0r/   c                 ó–   — t          j        t           j        j        ¦  «        }d|_        t           j        |_        t          |fd|i|¤ŽS )NFr¥  )r¦  r½  r¾  ÚSERVER_AUTHÚcheck_hostnamer§  Úverify_moder   rÁ  s       r0   rC   z,TestIOStreamSSLContext._make_client_iostreamÏ  sD   € ÝÔ,­S¬[Ô-DÑEÔEˆØ!&ˆÔÝ!œmˆÔÝ˜:ÐEÐE°7ÐE¸fÐEÐEÐEr/   Nr¯  r.   r/   r0   rº  rº  Ã  s7   € € € € € ð	1ð 	1ð 	1ðFð Fð Fð Fð Fr/   rº  c                   óÖ   ‡ — e Zd Zˆ fd„Zˆ fd„Zd„ Zej        d„ ¦   «         Zej        d„ ¦   «         Z	dd„Z
dd„Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zˆ xZS )ÚTestIOStreamStartTLSc                 ó˜  •— 	 t          ¦   «                              ¦   «          t          ¦   «         \  | _        | _        d | _        t          ¦   «         | _        t          j	        | j        | j
        ¦  «         t          t          j        ¦   «         ¦  «        | _        | j                             | j                             d| j        f¦  «        | j        ¦  «         |                      ¦   «          | j                             | j        | j        ¦  «         |                      ¦   «          d S # t&          $ r}t)          |¦  «         ‚ d }~ww xY w)Nr^   )ÚsuperÚsetUpr   rb  rc  re  r   Úserver_acceptedr   r]  Úacceptr   r^  rd  r&  Ú
add_futurera   ri  rÙ   Ú	ExceptionÚprint)r8   Úer‡  s     €r0   rË  zTestIOStreamStartTLS.setUp×  s  ø€ ð	Ý‰GŒG�MŠM‰OŒOˆOÝ'7Ñ'9Ô'9Ñ$ˆDŒM˜4œ9Ø!%ˆDÔÝ#)¡8¤8ˆDÔ ÝÔ& t¤}°d´kÑBÔBÐBÝ!)Ý”‘”ñ"ô "ˆDÔð ŒL×#Ò#ØÔ"×*Ò*¨K¸¼Ð+CÑDÔDÀdÄiñô ð ð �IŠI‰KŒKˆKØŒL×#Ò# DÔ$8¸$¼)ÑDÔDÐDØ�IŠI‰KŒKˆKˆKˆKøÝð 	ð 	ð 	Ý�!‰HŒHˆHØøøøøð	øøøs   ƒD%D* Ä*
E	Ä4EÅE	c                 ó\  •— | j         �| j                              ¦   «          | j        �| j                             ¦   «          | j                             | j                             ¦   «         ¦  «         | j                             ¦   «          t          ¦   «                              ¦   «          d S r@   )	re  rS   rd  r&  r_  rb  r`  rÊ  ÚtearDown©r8   r‡  s    €r0   rÓ  zTestIOStreamStartTLS.tearDownë  s“   ø€ ØÔÐ)ØÔ×$Ò$Ñ&Ô&Ð&ØÔÐ)ØÔ×$Ò$Ñ&Ô&Ð&ØŒ×#Ò# D¤M×$8Ò$8Ñ$:Ô$:Ñ;Ô;Ð;ØŒ×ÒÑÔÐÝ‰Œ×ÒÑÔÐÐÐr/   c                 óš   — | j         �|                      d¦  «         t          |¦  «        | _         | j                             d ¦  «         d S )Nzshould only get one connection)re  Úfailr   rÌ  rY  )r8   rT  rZ  s      r0   rÍ  zTestIOStreamStartTLS.acceptô  sK   € ØÔÐ)Ø�IŠIÐ6Ñ7Ô7Ð7Ý% jÑ1Ô1ˆÔØÔ×'Ò'¨Ñ-Ô-Ð-Ð-Ð-r/   c              #   óÆ   K  — | j         €J ‚| j                              |¦  «         | j        €J ‚| j                             d¦  «        V —}|                      ||¦  «         d S ©Nr|   )rd  r6   re  r€   rl   ©r8   ÚlineÚ	recv_lines      r0   Úclient_send_linez%TestIOStreamStartTLS.client_send_lineú  ós   è è € àÔ!Ð-Ð-Ð-ØÔ× Ò  Ñ&Ô&Ð&ØÔ!Ð-Ð-Ð-ØÔ,×7Ò7¸Ñ@Ô@Ð@Ð@ˆ	Ø×Ò˜˜yÑ)Ô)Ð)Ð)Ð)r/   c              #   óÆ   K  — | j         €J ‚| j                              |¦  «         | j        €J ‚| j                             d¦  «        V —}|                      ||¦  «         d S rØ  )re  r6   rd  r€   rl   rÙ  s      r0   Úserver_send_linez%TestIOStreamStartTLS.server_send_line  rÝ  r/   Nc                 ó^   — | j         €J ‚| j         }d | _         |                     d||¦  «        S )NF)rd  Ú	start_tls)r8   r¥  Úserver_hostnamerd  s       r0   Úclient_start_tlsz%TestIOStreamStartTLS.client_start_tls
  s9   € ØÔ!Ð-Ð-Ð-ØÔ*ˆØ!ˆÔØ×&Ò& u¨k¸?ÑKÔKÐKr/   c                 ó\   — | j         €J ‚| j         }d | _         |                     d|¦  «        S )NT)re  rá  )r8   r¥  re  s      r0   Úserver_start_tlsz%TestIOStreamStartTLS.server_start_tls  s7   € ØÔ!Ð-Ð-Ð-ØÔ*ˆØ!ˆÔØ×&Ò& t¨[Ñ9Ô9Ð9r/   c              #   óî  K  — |                       d¦  «        V — |                      d¦  «        V — |                       d¦  «        V — |                       d¦  «        V — |                      d¦  «        V — |                       d¦  «        V — |                      t          t          j        ¬¦  «        ¦  «        }|                      t          ¦   «         ¦  «        }|V —| _        |V —| _	        |  
                    t          | j        t          ¦  «        ¦  «         |  
                    t          | j	        t          ¦  «        ¦  «         |                      d¦  «        V — |                       d¦  «        V — d S )	Ns   220 mail.example.com ready
s   EHLO mail.example.com
s   250-mail.example.com welcome
s   250 STARTTLS
s
   STARTTLS
s   220 Go ahead
r¢  s   250 mail.example.com welcome
)rß  rÜ  rã  r(   r¦  r§  rå  r1   rd  re  rc   rÂ   r   )r8   Úclient_futureÚserver_futures      r0   Útest_start_tls_smtpz(TestIOStreamStartTLS.test_start_tls_smtp  sy  è è € ð ×#Ò#Ð$EÑFÔFÐFÐFÐFØ×#Ò#Ð$@ÑAÔAÐAÐAÐAØ×#Ò#Ð$GÑHÔHÐHÐHÐHØ×#Ò#Ð$7Ñ8Ô8Ð8Ð8Ð8Ø×#Ò# OÑ4Ô4Ð4Ð4Ð4Ø×#Ò#Ð$7Ñ8Ô8Ð8Ð8Ð8Ø×-Ò-­d½S¼]Ð.KÑ.KÔ.KÑLÔLˆØ×-Ò-Õ.AÑ.CÔ.CÑDÔDˆØ#0Ð0Ð0ˆÔØ#0Ð0Ð0ˆÔØ�Š�
 4Ô#5µ{ÑCÔCÑDÔDÐDØ�Š�
 4Ô#5µ{ÑCÔCÑDÔDÐDØ×#Ò#Ð$@ÑAÔAÐAÐAÐAØ×#Ò#Ð$GÑHÔHÐHÐHÐHÐHÐHr/   c              #   óØ  K  — |                       t          ¦   «         ¦  «        }t          t          d¦  «        5  |                      d¬¦  «        }|                      t          j        ¦  «        5  |V — d d d ¦  «         n# 1 swxY w Y   |                      t          j        t          j	        f¦  «        5  |V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nú	SSL Errorrr  ©râ  )
rå  r1   r   r   rã  rŒ   r¦  ÚSSLErrorr^  rj  ©r8   rè  rç  s      r0   Útest_handshake_failz(TestIOStreamStartTLS.test_handshake_fail+  sŸ  è è € à×-Ò-Õ.AÑ.CÔ.CÑDÔDˆå•w Ñ,Ô,ð 	$ð 	$Ø ×1Ò1À+Ð1ÑNÔNˆMØ×"Ò"¥3¤<Ñ0Ô0ð $ð $Ø#Ð#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $à×"Ò"¥C¤Lµ&´,Ð#?Ñ@Ô@ð $ð $Ø#Ð#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð		$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$sY   ¹6CÁ/B Á4CÂ B	ÂCÂB	Â.CÂ6CÂ;CÃC	ÃCÃC	ÃCÃC#Ã&C#c              #   óÚ  K  — |                       t          ¦   «         ¦  «        }t          t          d¦  «        5  |                      t          j        ¦   «         d¬¦  «        }|                      t
          j        ¦  «        5  |V — d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  |V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nrë  r^   rì  )
rå  r1   r   r   rã  r¦  r½  rŒ   rí  rÏ  rî  s      r0   Útest_check_hostnamez(TestIOStreamStartTLS.test_check_hostname6  s®  è è € ð ×-Ò-Õ.AÑ.CÔ.CÑDÔDˆÝ•w Ñ,Ô,ð 		$ð 		$Ø ×1Ò1ÝÔ*Ñ,Ô,¸kð 2ñ ô ˆMð ×"Ò"¥3¤<Ñ0Ô0ð $ð $à#Ð#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð ×"Ò"¥9Ñ-Ô-ð $ð $à#Ð#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð		$ð 		$ð 		$ñ 		$ô 		$ð 		$ð 		$ð 		$ð 		$ð 		$ð 		$ð 		$øøøð 		$ð 		$ð 		$ð 		$ð 		$ð 		$sZ   ¹AC ÂBÂC ÂB	ÂC ÂB	ÂC Â7CÂ<C ÃC	ÃC ÃC	ÃC Ã C$Ã'C$c              #   óf  K  — t          t          d¦  «        ¦  «                             d¦  «        }| j        €J ‚| j                             |¦  «        V — | j        €J ‚| j                             |j        ¦  «        V —}|                      t          |¦  «        t          |¦  «        ¦  «         d S )Nrs  ÚL)	ré   r.  Úcastre  r6   rd  rk   rA  rl   )r8   r/  Úrecvs      r0   Útest_typed_memoryviewz*TestIOStreamStartTLS.test_typed_memoryviewE  sª   è è € õ �˜r™œÑ#Ô#×(Ò(¨Ñ-Ô-ˆØÔ!Ð-Ð-Ð-ØÔ ×&Ò& sÑ+Ô+Ð+Ð+Ð+ØÔ!Ð-Ð-Ð-àÔ'×2Ò2°3´:Ñ>Ô>Ð>Ð>ˆØ×Ò�˜t™œ¥e¨C¡j¤jÑ1Ô1Ð1Ð1Ð1r/   )NNr@   )r:   r;   r<   rË  rÓ  rÍ  r   rM  rÜ  rß  rã  rå  r   ré  rï  rñ  rö  Ú__classcell__©r‡  s   @r0   rÈ  rÈ  Ö  s5  ø€ € € € € ðð ð ð ð ð(ð ð ð ð ð.ð .ð .ð 	„]ð*ð *ñ „]ð*ð 	„]ð*ð *ñ „]ð*ðLð Lð Lð Lð:ð :ð :ð :ð ðIð Iñ „XðIð( ð$ð $ñ „Xð$ð ð$ð $ñ „Xð$ð ð2ð 2ñ „Xð2ð 2ð 2ð 2ð 2r/   rÈ  c                   óp   — e Zd Zej        d„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	dS )ÚWaitForHandshakeTestc              #   ó(  K  — d x}}	 t          ¦   «         \  }} |t          ¦   «         ¬¦  «        }|                     |¦  «         t          j        t          j        j        ¦  «        }d|_        t          j        |_	        t          ¦   «         5  |xj        t          t          dd¦  «        z  c_        t          t          j        ¦   «         |¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     d|f¦  «        V — |                      |j                             ¦   «         ¦  «         |�|                     ¦   «          |�|                     ¦   «          d S d S # |�|                     ¦   «          |�|                     ¦   «          w w xY w)Nr¤  FÚOP_NO_TLSv1_3r   r^   )r   r1   Ú
add_socketr¦  r½  r¾  rÄ  rÅ  r§  rÆ  r   ÚoptionsÚgetattrr   r^  ra   ÚassertIsNotNoneÚcipherri  rS   )r8   Ú
server_clsr~  r  Úsockrc  r·  s          r0   Úconnect_to_serverz&WaitForHandshakeTest.connect_to_serverR  sÆ  è è € àÐˆ�ð	Ý)Ñ+Ô+‰JˆD�$Ø�ZÕ,?Ñ,AÔ,AÐBÑBÔBˆFØ×Ò˜dÑ#Ô#Ð#åÔ0µ´Ô1HÑIÔIˆGØ%*ˆGÔ"Ý"%¤-ˆGÔõ $Ñ%Ô%ð Kð KØ�”¥7­3°ÀÑ#CÔ#CÑC�”Ý$¥V¤]¡_¤_À'ÐJÑJÔJ�ðKð Kð Kñ Kô Kð Kð Kð Kð Kð Kð Køøøð Kð Kð Kð Kð —.’. +¨tÐ!4Ñ5Ô5Ð5Ð5Ð5Ø× Ò  ¤×!5Ò!5Ñ!7Ô!7Ñ8Ô8Ð8àÐ!Ø—’‘”�ØÐ!Ø—’‘”���ð "Ð!øð Ð!Ø—’‘”�ØÐ!Ø—’‘”��ð "øøøs2   ˆBE" ÂAC"ÃE" Ã"C&Ã&E" Ã)C&Ã*AE" Å"/Fc              #   ó�   ‡‡K  — | Št          ¦   «         Š G ˆˆfd„dt          ¦  «        }|                      |¦  «        V — ‰V — d S )Nc                   ó>   •— e Zd Zˆfd„Zej        ˆ fd„¦   «         ZdS )úGWaitForHandshakeTest.test_wait_for_handshake_future.<locals>.TestServerc                 ó    •— ‰                      |j                             ¦   «         ¦  «         ‰j                             | j        |¦  «         d S r@   )ÚassertIsNoner^  r  r&  Úspawn_callbackÚhandle_connection)r8   re   rZ  rž   s      €r0   Úhandle_streamzUWaitForHandshakeTest.test_wait_for_handshake_future.<locals>.TestServer.handle_streamu  sF   ø€ Ø×!Ò! &¤-×"6Ò"6Ñ"8Ô"8Ñ9Ô9Ð9Ø”×+Ò+¨DÔ,BÀFÑKÔKÐKÐKÐKr/   c              3   ób   •K  — |                      ¦   «         V — ‰                     d ¦  «         d S r@   ©Úwait_for_handshakerY  )r8   re   Úhandshake_futures     €r0   r  zYWaitForHandshakeTest.test_wait_for_handshake_future.<locals>.TestServer.handle_connectiony  s9   øè è € à×/Ò/Ñ1Ô1Ð1Ð1Ð1Ø ×+Ò+¨DÑ1Ô1Ð1Ð1Ð1r/   N)r:   r;   r<   r  r   rM  r  ©r  rž   s   €€r0   Ú
TestServerr  t  sZ   ø€ € € € € ðLð Lð Lð Lð Lð Œ]ð2ð 2ð 2ð 2ñ Œ]ð2ð 2ð 2r/   r  ©r   r   r  ©r8   r  r  rž   s     @@r0   Útest_wait_for_handshake_futurez3WaitForHandshakeTest.test_wait_for_handshake_futureo  s~   øøè è € àˆÝ!™8œ8Ðð	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2�ñ 	2ô 	2ð 	2ð ×$Ò$ ZÑ0Ô0Ð0Ð0Ð0ØÐÐÐÐÐr/   c              #   ó�   ‡‡K  — | Št          ¦   «         Š G ˆˆfd„dt          ¦  «        }|                      |¦  «        V — ‰V — d S )Nc                   ó6   •— e Zd Zej        ˆ ˆfd„¦   «         ZdS )úVWaitForHandshakeTest.test_wait_for_handshake_already_waiting_error.<locals>.TestServerc              3   ó¦   •K  — |                      ¦   «         }‰                     t          |j         ¦  «         |V — ‰                     d ¦  «         d S r@   )r  rŒ   ÚRuntimeErrorrY  )r8   re   rZ  rë   r  rž   s       €€r0   r  zdWaitForHandshakeTest.test_wait_for_handshake_already_waiting_error.<locals>.TestServer.handle_stream‡  sT   øè è € à×/Ò/Ñ1Ô1�Ø×!Ò!¥,°Ô0IÑJÔJÐJØ�	�	�	à ×+Ò+¨DÑ1Ô1Ð1Ð1Ð1r/   N©r:   r;   r<   r   rM  r  r  s   €€r0   r  r  †  s?   ø€ € € € € ØŒ]ð2ð 2ð 2ð 2ð 2ñ Œ]ð2ð 2ð 2r/   r  r  r  s     @@r0   Ú-test_wait_for_handshake_already_waiting_errorzBWaitForHandshakeTest.test_wait_for_handshake_already_waiting_error�  s~   øøè è € àˆÝ!™8œ8Ðð	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2�ñ 	2ô 	2ð 	2ð ×$Ò$ ZÑ0Ô0Ð0Ð0Ð0ØÐÐÐÐÐr/   c              #   óˆ   ‡K  — t          ¦   «         Š G ˆfd„dt          ¦  «        }|                      |¦  «        V — ‰V — d S )Nc                   ó4   •— e Zd Zej        ˆ fd„¦   «         ZdS )úRWaitForHandshakeTest.test_wait_for_handshake_already_connected.<locals>.TestServerc              3   óŽ   •K  — |                      ¦   «         V — |                      ¦   «         V — ‰                     d ¦  «         d S r@   r  )r8   re   rZ  r  s      €r0   r  z`WaitForHandshakeTest.test_wait_for_handshake_already_connected.<locals>.TestServer.handle_stream—  sQ   øè è € à×/Ò/Ñ1Ô1Ð1Ð1Ð1Ø×/Ò/Ñ1Ô1Ð1Ð1Ð1Ø ×+Ò+¨DÑ1Ô1Ð1Ð1Ð1r/   Nr  )r  s   €r0   r  r  –  s:   ø€ € € € € ØŒ]ð2ð 2ð 2ð 2ñ Œ]ð2ð 2ð 2r/   r  r  )r8   r  r  s     @r0   Ú)test_wait_for_handshake_already_connectedz>WaitForHandshakeTest.test_wait_for_handshake_already_connected’  ss   øè è € å!™8œ8Ðð	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2�ñ 	2ô 	2ð 	2ð ×$Ò$ ZÑ0Ô0Ð0Ð0Ð0ØÐÐÐÐÐr/   N)
r:   r;   r<   r   rM  r  r   r  r  r!  r.   r/   r0   rú  rú  Q  s€   € € € € € Ø„]ðð ñ „]ðð8 ðð ñ „Xðð" ðð ñ „Xðð  ðð ñ „Xðð ð r/   rú  c                   ój   ‡ — e Zd Zˆ fd„Zˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zˆ xZ	S )ÚTestIOStreamCheckHostnamec                 ó¼  •— t          ¦   «                              ¦   «          t          ¦   «         \  | _        | _        d„ }t          j        | j        |¦  «         t          j        t          j	        j
        ¦  «        | _        | j                             t          j                             t          j                             t"          ¦  «        d¦  «        ¦  «         d S )Nc                 óÆ  — t          j        t           j        j        ¦  «        }|                     t
          j                             t
          j                             t          ¦  «        d¦  «        t
          j                             t
          j                             t          ¦  «        d¦  «        ¦  «         | 
                    | dd¬¦  «        } t          | ¦  «         d S r¼  )r¦  r½  r¾  r¿  rÀ  r)   r*   r+   r,   r-   r¶  r   )rT  rZ  r·  s      r0   r\  z8TestIOStreamCheckHostname.setUp.<locals>.accept_callbackª  s¬   € ÝÔ0µ´Ô1HÑIÔIˆGØ×#Ò#Ý”—’�RœWŸ_š_­XÑ6Ô6¸
ÑCÔCÝ”—’�RœWŸ_š_­XÑ6Ô6¸
ÑCÔCñô ð ð !×,Ò,ØØ Ø(-ð -ñ ô ˆJõ
 ˜
Ñ#Ô#Ð#Ð#Ð#r/   r$   )rÊ  rË  r   rb  rc  r   r]  r¦  r½  r¾  rÄ  Úclient_ssl_ctxÚload_verify_locationsr)   r*   r+   r,   r-   )r8   r\  r‡  s     €r0   rË  zTestIOStreamCheckHostname.setUp¦  s®   ø€ Ý‰Œ�Š‰ŒˆÝ#3Ñ#5Ô#5Ñ ˆŒ�t”yð	$ð 	$ð 	$õ 	Ô" 4¤=°/ÑBÔBÐBõ "Ô8½¼Ô9PÑQÔQˆÔØÔ×1Ò1ÝŒG�LŠL�œŸš­Ñ2Ô2°JÑ?Ô?ñ	
ô 	
ð 	
ð 	
ð 	
r/   c                 óÜ   •— | j                              | j                             ¦   «         ¦  «         | j                             ¦   «          t          ¦   «                              ¦   «          d S r@   )r&  r_  rb  r`  rS   rÊ  rÓ  rÔ  s    €r0   rÓ  z"TestIOStreamCheckHostname.tearDownÀ  sW   ø€ ØŒ×#Ò# D¤M×$8Ò$8Ñ$:Ô$:Ñ;Ô;Ð;ØŒ×ÒÑÔÐÝ‰Œ×ÒÑÔÐÐÐr/   c              ƒ   óÈ   K  — t          t          j        ¦   «         | j        ¬¦  «        }|                     d| j        fd¬¦  «        ƒ d {V —† |                     ¦   «          d S )Nr¤  r^   zfoo.example.comrì  )r   r^  r&  ra   rc  rS   r�   s     r0   Ú
test_matchz$TestIOStreamCheckHostname.test_matchÅ  sz   è è € å�Vœ]™_œ_¸$Ô:MÐNÑNÔNˆØ�nŠnØ˜$œ)Ð$Ø-ð ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	�Š‰Œˆˆˆr/   c              ƒ   ó‚  K  — t          t          j        ¦   «         | j        ¬¦  «        }t          t          dt
          j        t          j        ¦   «         dk    ¬¦  «        5  |  	                    t          j        ¦  «        5  t          t          dt
          j        ¬¦  «        5  |                     d| j        fd¬	¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «         dk    rt          j        d
¦  «        ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )Nr¤  z.*alert bad certificateÚWindows)rü   rg  z0.*(certificate verify failed: Hostname mismatch)rû   r^   úbar.example.comrì  rÍ   )r   r^  r&  r   r   rÿ   ÚWARNINGrW   rX   rŒ   r¦  ÚSSLCertVerificationErrorra   rc  rÏ   r¸   r�   s     r0   Útest_no_matchz'TestIOStreamCheckHostname.test_no_matchÎ  s  è è € å�Vœ]™_œ_¸$Ô:MÐNÑNÔNˆÝÝØ%Ý”/Ý”_Ñ&Ô&¨)Ò3ð	
ñ 
ô 
ð 	)ð 	)ð ×"Ò"¥3Ô#?Ñ@Ô@ð 	ð 	ÝÝØFÝ!œ/ðñ ô ð ð ð
 !Ÿ.š.Ø$ d¤iÐ0Ø(9ð )ñ ô ð ð ð ð ð ð ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ŒÑ Ô  IÒ-Ð-Ý”m CÑ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ð)	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)sZ   Á! D4Â"C+Â#%CÃC+ÃCÃC+ÃCÃC+ÃD4Ã+C/	Ã/D4Ã2C/	Ã34D4Ä4D8Ä;D8c              ƒ   ó¸   K  — d| j         _        t          t          j        ¦   «         | j         ¬¦  «        }|                     d| j        fd¬¦  «        ƒ d {V —† d S )NFr¤  r^   r-  rì  )r&  rÅ  r   r^  ra   rc  r�   s     r0   Útest_check_disabledz-TestIOStreamCheckHostname.test_check_disabledç  s~   è è € ð .3ˆÔÔ*Ý�Vœ]™_œ_¸$Ô:MÐNÑNÔNˆØ�nŠnØ˜$œ)Ð$Ø-ð ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
r/   )
r:   r;   r<   rË  rÓ  r   r*  r0  r2  r÷  rø  s   @r0   r#  r#  ¡  s¢   ø€ € € € € ð

ð 
ð 
ð 
ð 
ð4ð ð ð ð ð
 ðð ñ „Xðð ð)ð )ñ „Xð)ð0 ð
ð 
ñ „Xð
ð 
ð 
ð 
ð 
r/   r#  c                   óZ   — e Zd Zej        d„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚTestPipeIOStreamc                 ób   — t          j        ¦   «         \  }}t          |fi |¤Žt          |fi |¤ŽfS r@   )r)   Úpiper	   )r8   rL   rC  Úws       r0   r™   z#TestPipeIOStream.make_iostream_pairõ  s<   € åŒw‰yŒy‰ˆˆ1å˜AÐ(Ð( Ð(Ð(­,°qÐ*CÐ*C¸FÐ*CÐ*CÐCÐCr/   c              #   óì  K  — |                       ¦   «         V —\  }}|                     d¦  «         |                     d¦  «         |                     d¦  «        V —}|                      |d¦  «         |                     d¦  «        V —}|                      |d¦  «         |                     ¦   «          |                     ¦   «         V —}|                      |d¦  «         |                     ¦   «          d S )Ns   hels   lo worldó    s   hello rj   rñ   s   ld)r™   r6   r€   rl   rk   rS   rb   r¹   s       r0   Útest_pipe_iostreamz#TestPipeIOStream.test_pipe_iostreamû  sê   è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBà
�Š�ÑÔÐØ
�Š�ÑÔÐà—]’] 4Ñ(Ô(Ð(Ð(ˆØ×Ò˜˜yÑ)Ô)Ð)à—]’] 1Ñ%Ô%Ð%Ð%ˆØ×Ò˜˜vÑ&Ô&Ð&à
�Š‰
Œ
ˆ
à×(Ò(Ñ*Ô*Ð*Ð*ˆØ×Ò˜˜uÑ%Ô%Ð%à
�Š‰
Œ
ˆ
ˆ
ˆ
r/   c              #   ó   K  — |                       ¦   «         V —\  }}d}|                     d|z  ¦  «         |                     |¦  «        V —}|                      |d|z  ¦  «         |                     ¦   «          |                     ¦   «          d S )Nr‹   r±   )r™   r6   rk   rl   rS   )r8   r¬   r­   Ú	NUM_BYTESrf   s        r0   Útest_pipe_iostream_big_writez-TestPipeIOStream.test_pipe_iostream_big_write  s�   è è € à×.Ò.Ñ0Ô0Ð0Ð0‰ˆˆBàˆ	ð 	�Š�˜	Ñ!Ñ"Ô"Ð"à—]’] 9Ñ-Ô-Ð-Ð-ˆØ×Ò˜˜t iÑ/Ñ0Ô0Ð0à
�Š‰
Œ
ˆ
Ø
�Š‰
Œ
ˆ
ˆ
ˆ
r/   N)	r:   r;   r<   r   rM  r™   r   r:  r=  r.   r/   r0   r4  r4  ó  sh   € € € € € à„]ðDð Dñ „]ðDð
 ðð ñ „Xðð& ðð ñ „Xðð ð r/   r4  c                   ó>   — e Zd ZdZd„ Zd„ Zdd„Zd„ Zd„ Zd„ Z	d	„ Z
d
S )ÚTestStreamBufferz9
    Unit tests for the private _StreamBuffer class.
    c                 ó8   — t          j        d¦  «        | _         d S )Nr8  )rF  rJ  r7   s    r0   rË  zTestStreamBuffer.setUp$  s   € Ý”m BÑ'Ô'ˆŒˆˆr/   c                 óÈ   — t          |t          t          f¦  «        rt          |¦  «        S t          |t          ¦  «        r|                     ¦   «         S t          |¦  «        ‚r@   )rÂ   r.  r+  ré   ÚtobytesÚ	TypeError)r8   Úbs     r0   Úto_byteszTestStreamBuffer.to_bytes'  sP   € Ý�a�%¥Ð+Ñ,Ô,ð 	Ý˜‘8”8ˆOÝ˜�:Ñ&Ô&ð 	Ø—9’9‘;”;Ðå˜A‘,”,Ðr/   r)  c                 óB   — t          ¦   «         }|j        sJ ‚||_        |S r@   )r   Ú_large_buf_threshold)r8   Úlarge_buf_thresholdr/  s      r0   Úmake_streambufferz"TestStreamBuffer.make_streambuffer/  s'   € Ý‰oŒoˆØÔ'Ð'Ð'Ð'Ø#6ˆÔ Øˆ
r/   c                 ó’  — d}|dt          |¦  «        z  k     r®|                      |                     |¦  «        ¦  «        }|                      |¦  «         |                      t          |¦  «        |¦  «         |                      |                     |¦  «        ||f¦  «         |dz  dz   dz  }|dt          |¦  «        z  k     °¬d S d S )Nr�   rÁ   rj   )rÇ   rE  Úpeekrc   ÚassertLessEqualrd   )r8   r/  Úexpectedr@  Úgots        r0   Ú
check_peekzTestStreamBuffer.check_peek5  sÂ   € ØˆØ�Q�˜X™œÑ&Ò&Ð&Ø—-’- §¢¨¡¤Ñ/Ô/ˆCØ�OŠO˜CÑ Ô Ð Ø× Ò ¥ S¡¤¨4Ñ0Ô0Ð0Ø�OŠO˜H×/Ò/°Ñ4Ô4°xÀ°oÑFÔFÐFØ˜1‘H˜q‘L QÑ&ˆDð �Q�˜X™œÑ&Ò&Ð&Ð&Ð&Ð&Ð&r/   c                 óš  — |                       t          |¦  «        d¦  «         d}|D ]k}||z  }|                      ||¦  «        ¦  «         |                       t          |¦  «        t          |¦  «        ¦  «         |                      ||¦  «         Œl|r’| j                             dt          |¦  «        dz   ¦  «        }||d …         }|                     |¦  «         |                       t          |¦  «        t          |¦  «        ¦  «         |                      ||¦  «         |°’|                       t          |¦  «        d¦  «         d S )Nr   r/   r�   )rl   rÇ   rt   rO  rF  Ú	randrangeÚadvance)r8   r/  ÚobjsÚ
input_typerM  ÚorG  s          r0   Úcheck_append_all_then_skip_allz/TestStreamBuffer.check_append_all_then_skip_all>  s8  € Ø×Ò�˜S™œ 1Ñ%Ô%Ð%àˆàð 	+ð 	+ˆAØ˜‰MˆHØ�JŠJ�z�z !‘}”}Ñ%Ô%Ð%Ø×Ò�S ™XœX¥s¨8¡}¤}Ñ5Ô5Ð5Ø�OŠO˜C Ñ*Ô*Ð*Ð*àð 	+Ø”×%Ò% a­¨X©¬¸Ñ):Ñ;Ô;ˆAØ   ”|ˆHØ�KŠK˜‰NŒNˆNØ×Ò�S ™XœX¥s¨8¡}¤}Ñ5Ô5Ð5Ø�OŠO˜C Ñ*Ô*Ð*ð ð 	+ð 	×Ò�˜S™œ 1Ñ%Ô%Ð%Ð%Ð%r/   c                 óÎ  — g d¢}|                       ¦   «         }|                      ||t          ¦  «         |                       ¦   «         }|                      ||t          ¦  «         |                       ¦   «         }|                      ||t          ¦  «         |                       d¦  «        }t          d¦  «        D ]}|                     d¦  «         Œ|                      t          |j	        ¦  «        d¦  «         t          d¦  «        D ]}|                     d¦  «         Œ|                      t          |j	        ¦  «        d¦  «         | 
                    d¦  «         |                      t          |j	        ¦  «        d¦  «         | 
                    d¦  «         |                      t          |j	        ¦  «        d¦  «         |                      t          |¦  «        d¦  «         d S )	N)r°   s   345s   67s   89aó   bcdes   fghs   ijklmnr)  ri   r�  r�   rÁ   é   r   ©rI  rV  r.  r+  ré   rÆ   rt   rl   rÇ   Ú_buffersrR  ©r8   rS  r/  rÉ   s       r0   Ú
test_smallzTestStreamBuffer.test_smallR  s±  € ØIÐIÐIˆà×$Ò$Ñ&Ô&ˆØ×+Ò+¨C°µuÑ=Ô=Ð=à×$Ò$Ñ&Ô&ˆØ×+Ò+¨C°µyÑAÔAÐAà×$Ò$Ñ&Ô&ˆØ×+Ò+¨C°µzÑBÔBÐBð ×$Ò$ RÑ(Ô(ˆÝ�q‘”ð 	ð 	ˆAØ�JŠJ�tÑÔÐÐØ×Ò�˜Sœ\Ñ*Ô*¨AÑ.Ô.Ð.Ý�q‘”ð 	ð 	ˆAØ�JŠJ�tÑÔÐÐØ×Ò�˜Sœ\Ñ*Ô*¨AÑ.Ô.Ð.Ø�Š�B‰ŒˆØ×Ò�˜Sœ\Ñ*Ô*¨AÑ.Ô.Ð.Ø�Š�A‰ŒˆØ×Ò�˜Sœ\Ñ*Ô*¨AÑ.Ô.Ð.Ø×Ò�˜S™œ 1Ñ%Ô%Ð%Ð%Ð%r/   c                 ó$  — g d¢}|                       ¦   «         }|                      ||t          ¦  «         |                       ¦   «         }|                      ||t          ¦  «         |                       ¦   «         }|                      ||t          ¦  «         |                       d¦  «        }t          d¦  «        D ]}|                     d¦  «         Œ|                      t          |j	        ¦  «        d¦  «         |                     d¦  «         |                      t          |j	        ¦  «        d¦  «         |                     d¦  «         |                      t          |j	        ¦  «        d¦  «         | 
                    d¦  «         |                      t          |j	        ¦  «        d	¦  «         | 
                    d
¦  «         |                      t          |j	        ¦  «        d¦  «         |                      t          |¦  «        d¦  «         d S )N)s
   1212121212s   345345s(   6767676767676767676767676767676767676767s$   89a89a89a89a89a89a89a89a89a89a89a89arX  s   fghfghfghfghfghfghfghs   ijklmnijklmnr)  rj   s   xxxxxxxxxxxó   yrç   ó   zé!   r�   rÁ   r   rZ  r\  s       r0   Ú
test_largezTestStreamBuffer.test_largel  sÓ  € ð
ð 
ð 
ˆð ×$Ò$Ñ&Ô&ˆØ×+Ò+¨C°µuÑ=Ô=Ð=à×$Ò$Ñ&Ô&ˆØ×+Ò+¨C°µyÑAÔAÐAà×$Ò$Ñ&Ô&ˆØ×+Ò+¨C°µzÑBÔBÐBð ×$Ò$ RÑ(Ô(ˆÝ�q‘”ð 	"ð 	"ˆAØ�JŠJ�yÑ!Ô!Ð!Ð!Ø×Ò�˜Sœ\Ñ*Ô*¨AÑ.Ô.Ð.Ø�
Š
�4ÑÔÐØ×Ò�˜Sœ\Ñ*Ô*¨AÑ.Ô.Ð.Ø�
Š
�4ÑÔÐØ×Ò�˜Sœ\Ñ*Ô*¨AÑ.Ô.Ð.Ø�Š�B‰ŒˆØ×Ò�˜Sœ\Ñ*Ô*¨AÑ.Ô.Ð.Ø�Š�A‰ŒˆØ×Ò�˜Sœ\Ñ*Ô*¨AÑ.Ô.Ð.Ø×Ò�˜S™œ 1Ñ%Ô%Ð%Ð%Ð%r/   N)r)  )r:   r;   r<   Ú__doc__rË  rE  rI  rO  rV  r]  rb  r.   r/   r0   r?  r?    sŒ   € € € € € ðð ð(ð (ð (ðð ð ðð ð ð ð'ð 'ð 'ð&ð &ð &ð(&ð &ð &ð4!&ð !&ð !&ð !&ð !&r/   r?  )IÚtornado.concurrentr   Útornador   r   Útornado.ioloopr   Útornado.iostreamr   r   r	   r
   r   Útornado.httpclientr   r   Útornado.httputilr   Útornado.locksr   r   Útornado.logr   Útornado.netutilr   r   Útornado.platform.asyncior   Útornado.tcpserverr   Útornado.testingr   r   r   r   r   r   Útornado.test.utilr   r   r   r   Útornado.webr    r!   rÏ   rx  rK  rÿ   r)   rW   rF  r^  r¦  r”   rÄ   r"   r1   r3   r>   r—   rQ  r˜  r   rª  r±  rº  rÈ  rú  r#  r4  ÚTestCaser?  r.   r/   r0   ú<module>rs     s3  ðØ %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð ð ð ð ð =Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø (Ð (Ð (Ð (Ð (Ð (Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø €€€Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø €€€ðð ð ðð ð ð ð �>ñ ô ð ð
 ðG!ð G!ð G!ð G!ð G!˜=ñ G!ô G!ñ ÔðG!ðT ðhð hð hð hð h˜ñ hô hñ ÔðhðV ðað að að að aÐ*ñ aô añ ÔðaðH$ð $ð $ð $ð $Ð+Ð-Añ $ô $ð $ð$ð $ð $ð $ð $Ð-Ð/Cñ $ô $ð $ð.ð .ð .ð .ð .Ð$ñ .ô .ð .ð
ð 
ð 
ð 
ð 
Ð'ñ 
ô 
ð 
ð&Fð Fð Fð Fð FÐ.ñ Fô Fð Fð&x2ð x2ð x2ð x2ð x2˜=ñ x2ô x2ð x2ðvMð Mð Mð Mð M˜=ñ Mô Mð Mð`O
ð O
ð O
ð O
ð O
 ñ O
ô O
ð O
ðd ð(ð (ð (ð (ð (Ð)¨=ñ (ô (ñ „ð(ðVn&ð n&ð n&ð n&ð n&�xÔ(ñ n&ô n&ð n&ð n&ð n&r/   