Ë
    RPf@  ã                   óÈ  — d dl mZmZmZmZ d dlZddlmZmZm	Z	m
Z
mZmZmZ ddlmZmZ ddlmZmZmZmZmZ ddlmZ ddlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# dd	l$m%Z% dd
l&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- ddl.m/Z/ eef eddddg¬«      dfe"e!f eddgd¬«      dfe"e!f edg d¬«      dfe"e!f eddgd¬«      dfe"e!f edg d¬«      dfgZ0ded   ded e1fd!„Z2deded"ed dfd#„Z3d$e1d efd%„Z4d&ed$e1d"ed dfd'„Z5d@d(„Z6d@d)„Z7d@d*„Z8d@d+„Z9d@d,„Z:d&ed-e1d.e;d eeddf   fd/„Z<d0ed ee
   fd1„Z=dAd2ed$e1d"ed.e;d df
d3„Z>d@d4„Z?d@d5„Z@d@d6„ZAd@d7„ZBd@d8„ZCd@d9„ZDd@d:„ZEd@d;„ZFd@d<„ZGd@d=„ZHd@d>„ZId@d?„ZJy)Bé    )ÚAnyÚCallableÚ	GeneratorÚListNé   )ÚConnectionClosedÚDataÚEndOfMessageÚEventÚInformationalResponseÚRequestÚResponse)ÚHeadersÚnormalize_and_validate)Ú_obsolete_line_foldÚChunkedReaderÚContentLengthReaderÚHttp10ReaderÚREADERS©ÚReceiveBuffer)
ÚCLIENTÚCLOSEDÚDONEÚIDLEÚMIGHT_SWITCH_PROTOCOLÚ
MUST_CLOSEÚ	SEND_BODYÚSEND_RESPONSEÚSERVERÚSWITCHED_PROTOCOL)ÚLocalProtocolError)ÚChunkedWriterÚContentLengthWriterÚHttp10WriterÚwrite_any_responseÚwrite_headersÚwrite_requestÚWRITERSé   )Únormalize_data_eventsÚGETz/a©ÚHostÚfoo©Ú
ConnectionÚclose©ÚmethodÚtargetÚheaderss1   GET /a HTTP/1.1
Host: foo
Connection: close

éÈ   ó   OK)Ústatus_coder6   Úreasons&   HTTP/1.1 200 OK
Connection: close

s   HTTP/1.1 200 OK

ée   )ÚUpgradeÚ	websockets   Upgrades,   HTTP/1.1 101 Upgrade
Upgrade: websocket

s   HTTP/1.1 101 Upgrade

Úwriter).NÚobjÚreturnc                 óN   — g } | ||j                   «       dj                  |«      S )Nó    )ÚappendÚjoin)r>   r?   Úgot_lists      úK/var/www/fastapitest/venv/lib/python3.12/site-packages/h11/tests/test_io.pyÚdowriterG   R   s$   € Ø€HÙ
ˆ3�—‘Ô Ø�8‰8�HÓÐrB   Úexpectedc                 ó*   — t        | |«      }||k(  sJ ‚y ©N)rG   )r>   r?   rH   Úgots       rF   ÚtwrL   X   s   € Ü
�&˜#Ó
€CØ�(Š?Ð‰?rB   Údatac                 ó$   — t        «       }|| z  }|S rJ   r   )rM   Úbufs     rF   ÚmakebufrP   ]   s   € Ü
‹/€CØˆ4�K€CØ€JrB   Úreaderc                 óD  ‡— dt         dd fˆfd„}t        |«      } | | |«      «       |rJ ‚t        «       }t        t	        |«      «      D ]  } | |«      �J ‚||||dz    z  }Œ  | | |«      «       t        |«      }|dz  } | | |«      «       t        |«      dk(  sJ ‚y )NrK   r@   c                 óŠ   •— | ‰k(  sJ ‚t        | dg «      D ]+  \  }}t        |«      t        u sJ ‚t        |«      t        u rŒ+J ‚ y )Nr6   )ÚgetattrÚtypeÚbytes)rK   ÚnameÚvaluerH   s      €rF   Úcheckztr.<locals>.checkd   sQ   ø€ Ø�hŠÐˆô # 3¨	°2Ó6ò 	(‰KˆD�%Ü˜“:¤Ñ&Ð&Ð&Ü˜“;¤%Ò'Ð'Ð'ñ	(rB   r*   ó   trailing)r   rP   r   ÚrangeÚlenrV   )rQ   rM   rH   rY   rO   Úis     `   rF   Útrr^   c   sº   ø€ ð(”3ð (˜4õ (ô �$‹-€CÙ	‰&�‹+ÔÙ€Nˆ7ô ‹/€CÜ”3�t“9Óò ˆÙ�c‹{Ð"Ð"Ð"Øˆt�A˜˜A™ˆÑ‰ðñ 
‰&�‹+Ôô �$‹-€CØˆ;Ñ€CÙ	‰&�‹+ÔÜ�‹:˜Ò$Ð$Ñ$rB   c                  óT   — t         D ]  \  \  } }}}t        t        | |f   ||«       Œ! y rJ   )ÚSIMPLE_CASESrL   r)   ©ÚroleÚstateÚeventÚbinarys       rF   Útest_writers_simplerf      s1   € Ü*6ò 0Ñ&‰ˆ$�˜˜vÜ
Œ7�4˜�;Ñ ¨Õ/ñ0rB   c                  óT   — t         D ]  \  \  } }}}t        t        | |f   ||«       Œ! y rJ   )r`   r^   r   ra   s       rF   Útest_readers_simplerh   „   s1   € Ü*6ò 0Ñ&‰ˆ$�˜˜vÜ
Œ7�4˜�;Ñ ¨Õ/ñ0rB   c            
      ó¤  — t        t        t        ddg«      d«       t        t        t        g «      d«       t	        j
                  t        «      5  t        t        t        ddddgd	¬
«      d «       d d d «       t	        j
                  t        «      5  t        t        t        ddgd	¬«      d «       d d d «       y # 1 sw Y   ŒJxY w# 1 sw Y   y xY w)N©r/   Úbar)ÚbazÚquuxs   foo: bar
baz: quux

s   
r,   ú/r-   r0   ú1.0©r4   r5   r6   Úhttp_versionr7   )r9   r6   rq   )rL   r'   r   r   ÚpytestÚraisesr"   r(   r   r&   r   © rB   rF   Útest_writers_unusualru   ‰   sÊ   € äÜÜ °Ð@ÓAØ(ôô
 „}”g˜b“k 7Ô+ô 
�‰Ô)Ó	*ñ 

Ü
ÜÜØØØ(Ð*AÐBØ"ô	ð ô		
÷

ô 
�‰Ô)Ó	*ñ 
Ü
ÜÜØÐ*AÐ)BÐQVôð ô	
÷
ð 
÷

ð 

ú÷
ð 
ús   Á!B:ÂCÂ:CÃCc            
      óÈ  — t        t        t        t        f   dt	        dddgd¬«      «       t        t        t        t        f   dt	        ddg d¬«      «       t        t        t
        t        f   dt        d	dgdd
¬«      «       t        t        t
        t        f   dt        d	dgdd
¬«      «       t        t        t
        t        f   dt        d	dgdd
¬«      «       t        t        t
        t        f   dt        d	dgdd
¬«      «       t        t        t
        t        f   dt        d	dgdd¬«      «       t        t        t
        t        f   dt        d	dgdd¬«      «       t        t        t
        t        f   dt        d	ddgdd¬«      «       t        t        t
        t        f   dt        d	ddgdd¬«      «       t        t        t        t        f   dt	        ddg d¢¬«      «       t        j                  t        «      5  t        t        t        t        f   dd «       d d d «       t        j                  t        «      5  t        t        t        t        f   d d «       d d d «       t        j                  t        «      5  t        t        t        t        f   d!d «       d d d «       t        j                  t        «      5  t        t        t        t        f   d!d «       d d d «       t        j                  t        «      5  t        t        t        t        f   d"d «       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   Œ×xY w# 1 sw Y   Œ£xY w# 1 sw Y   ŒoxY w# 1 sw Y   y xY w)#Ns$   HEAD /foo HTTP/1.0
Some: header

ÚHEADú/foo©ÚSomeÚheaderro   rp   s   HEAD /foo HTTP/1.0

s!   HTTP/1.0 200 OK
Some: header

r7   r8   )r9   r6   rq   r:   s$   HTTP/1.0 200 OK
Foo: a a a a a 

)ÚFooz	a a a a as   HTTP/1.0 200 OK
Foo:

)r|   Ú s   HTTP/1.0 200 OK
Foo: 	 	 

s   HTTP/1.0 200
Foo: bar

)r|   rk   rB   s#   HTTP/1.1 200 OK
SomeHeader: val

)Ú
SomeHeaderÚvalz1.1ÚOKs5   HTTP/1.1 200 OK
SomeHeader1: val1
SomeHeader2: val2

)ÚSomeHeader1Úval1)ÚSomeHeader2Úval2s7   HTTP/1.1 200 OK
SomeHeader1: val1
SomeHeader2: val2

sŸ   HEAD /foo HTTP/1.1
Host: example.com
Some: multi-line
 header
	nonsense
    	   		I guess
Connection: close
More-nonsense: in the
    last header  

)©r.   zexample.com)rz   z"multi-line header nonsense I guessr0   )zMore-nonsensezin the last headerr3   s&   HEAD /foo HTTP/1.1
  folded: line

s#   HEAD /foo HTTP/1.1
foo  : line

s"   HEAD /foo HTTP/1.1
foo	: line

s   HEAD /foo HTTP/1.1
: line

)r^   r   r   r   r   r    r   r   rr   rs   r"   rt   rB   rF   Útest_readers_unusualr†   ¨   sG  € äÜ”œ�ÑØ5ÜØØØ'Ð(Øô		
ô	ô Ü”œ�ÑØ%Ü�v f°bÀuÔMôô Ü”œÐ%Ñ&Ø2ÜØØ'Ð(ØØô		
ô	ô Ü”œÐ%Ñ&Ø9ÜØØ)Ð*ØØô		
ô	ô Ü”œÐ%Ñ&Ø.ÜØ k ]ÀÈuô	
ôô Ü”œÐ%Ñ&Ø5ÜØ k ]ÀÈuô	
ôô Ü”œÐ%Ñ&Ø/ÜØ nÐ%5ÀEÐRUô	
ôô Ü”œÐ%Ñ&Ø3ÜØØ*Ð+ØØô		
ô	ô Ü”œÐ%Ñ&ØDÜØØ,Ð.EÐFØØô		
ô	ô Ü”œÐ%Ñ&ØHÜØØ,Ð.EÐFØØô		
ô	ô Ü”œ�Ñð	%ô 	ØØòô		
ôô. 
�‰Ô)Ó	*ñ 
Ü
Ü”FœD�LÑ!Ø?Øô	
÷
ô 
�‰Ô)Ó	*ñ 
Ü
Ü”FœD�LÑ!Ø<Øô	
÷
ô 
�‰Ô)Ó	*ñ 
Ü
Ü”FœD�LÑ!Ø<Øô	
÷
ô 
�‰Ô)Ó	*ñ 
Ü
Ü”FœD�LÑ!Ø<Øô	
÷
ô 
�‰Ô)Ó	*ñ UÜ
Œ7”6œ4�<Ñ Ð"MÈtÔT÷Uð U÷3
ñ 
ú÷
ð 
ú÷
ð 
ú÷
ð 
ú÷Uð Uús<   Ç?L'È?L4É?M Ê?MË?MÌ'L1Ì4L=Í M	ÍMÍM!c                  óR   — t        t        g d¢«      «      dt        d«      dgk(  sJ ‚y )N)ó   aaas   bbbs     cccó   dddrˆ   s   bbb cccr‰   )Úlistr   Ú	bytearrayrt   rB   rF   Útest__obsolete_line_fold_bytesrŒ   H  s6   € ô Ô#Ò$FÓGÓHØÜ�*ÓØðMò ð ñ rB   rO   Údo_eofc              #   ó„   K  — 	  | |«      }|€n|–— t        |«      t        u rnŒ"|r|rJ ‚| j                  «       –— y y ­wrJ   )rU   r
   Úread_eof)rQ   rO   r�   rd   s       rF   Ú_run_reader_iterr�   U  sU   è ø€ ð Ù�s“ˆØˆ=ØØŠô �‹;œ,Ñ&Øð ñ ÙˆˆwØ�o‰oÓÓð ùs   ‚>A Úargsc                  ó:   — t        t        | Ž «      }t        |«      S rJ   )rŠ   r�   r+   )r‘   Úeventss     rF   Ú_run_readerr”   f  s   € ÜÔ" DÐ)Ó*€FÜ  Ó(Ð(rB   Úthunkc                 ó¼  — t        d«       t        |«      }t         | «       ||«      |k(  sJ ‚t        d«        | «       }t        «       }g }t	        t        |«      «      D ]  }|t        ||d«      z  }||||dz    z  }Œ |t        |||«      z  }t        |«      |k(  sJ ‚t        d„ |D «       «      }|r)|s&t        |dz   «      }t         | «       |d«      |k(  sJ ‚y y y )NzTest 1zTest 2Fr*   c              3   ó>   K  — | ]  }t        |«      t        u –— Œ y ­wrJ   )rU   r
   )Ú.0rd   s     rF   ú	<genexpr>z t_body_reader.<locals>.<genexpr>|  s   è ø€ ÒH°e”d˜5“k¤\Ô1ÑHùs   ‚rZ   )ÚprintrP   r”   r   r[   r\   r+   Úany)	r•   rM   rH   r�   rO   rQ   r“   r]   Úis_completes	            rF   Út_body_readerr�   k  sò   € ä	ˆ(„OÜ
�$‹-€CÜ‘u“w  VÓ,°Ò8Ð8Ð8ô 
ˆ(„OÙ‹W€FÜ
‹/€CØ€FÜ”3�t“9Óò ˆØ”+˜f c¨5Ó1Ñ1ˆØˆt�A˜˜A™ˆÑ‰ðð Œk˜& # vÓ.Ñ.€FÜ  Ó(¨HÒ4Ð4Ð4äÑH¸xÔHÓH€KÙ™6Ü�d˜[Ñ(Ó)ˆÜ™5›7 C¨Ó/°8Ò;Ð;Ñ;ð "€{rB   c                  óv   — t        d„ dt        «       g«       t        d„ dt        d¬«      t        «       g«       y )Nc                  ó   — t        d«      S )Nr   ©r   rt   rB   rF   ú<lambda>z*test_ContentLengthReader.<locals>.<lambda>ƒ  s   € Ô-¨aÓ0€ rB   rB   c                  ó   — t        d«      S )Né
   r    rt   rB   rF   r¡   z*test_ContentLengthReader.<locals>.<lambda>†  s   € Ô# BÓ'€ rB   s
   0123456789©rM   )r�   r
   r	   rt   rB   rF   Útest_ContentLengthReaderr¥   ‚  s1   € ÜÑ0°#¼»Ð7GÔHäÙ'ØÜ	�=Ô	!¤<£>Ð2õrB   c                  óÆ   — t        t        dt        «       gd¬«       t        t        dt        d¬«      gd¬«       t        t        dt        d¬«      t        «       gd¬«       y )NrB   T)r�   s   asdfr¤   F)r�   r   r
   r	   rt   rB   rF   Útest_Http10Readerr§   Œ  sH   € Ü”, ¤l£nÐ%5¸dÕCÜ”, ¬$°GÔ*<Ð)=ÀeÕLÜÜ�g¤¨'Ô 2´L³NÐCÈDörB   c                  óü  — t        t        dt        «       g«       t        t        dt        dg¬«      g«       t        t        dt        d¬«      t        dg¬«      g«       t        t        dt        d¬«      t        «       g«       t        t        d	t        d
¬«      t        «       g«       t	        j
                  t        «      5  t        t        dt        d¬«      g«       d d d «       t	        j
                  t        «      5  t        t        dd «       d d d «       t        t        dt        d¬«      t        «       g«       t        t        dt        d¬«      t        «       g«       y # 1 sw Y   Œ‡xY w# 1 sw Y   Œ`xY w)Nó   0

s   0
Some: header

ry   ©r6   s3   5
01234
10
0123456789abcdef
0
Some: header

s   012340123456789abcdefr¤   s%   5
01234
10
0123456789abcdef
0

sµ   aA
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
0

sª   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsi   9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
xxxs   xxxs   10 
xxxsG   5; hello=there
xxxxx
0; random="junk"; some=more; canbe=lonnnnngg

s   xxxxxs   5   	 
01234
0

s   01234)r�   r   r
   r	   rr   rs   r"   rt   rB   rF   Útest_ChunkedReaderr«   ”  sP  € Ü”- ´³Ð/?Ô@äÜØ$Ü	Ð1Ð2Ô	3Ð4ôô Üð	"ô
 Ð.Ô/ÜÐ"4Ð!5Ô6ð	
ô
ô ÜØHÜ	Ð+Ô	,¬l«nÐ=ôô ÜØ8Ü	�;Ô	¤£Ð0ôô 
�‰Ô)Ó	*ñ Sô 	”mÐ%<¼tÈÔ?PÐ>QÔR÷Sô 
�‰Ô)Ó	*ñ =Ü”mÐ%5°tÔ<÷=ô Üð	Bô 
�8Ô	œl›nÐ-ôô ÜØ-Ü	�8Ô	œl›nÐ-õ÷'Sð Sú÷=ð =ús   ÃE&ÄE2Å&E/Å2E;c                  óì  — t        d«      } t        | t        d¬«      «      dk(  sJ ‚t        | t        d¬«      «      dk(  sJ ‚t        | t        «       «      dk(  sJ ‚t        d«      } t	        j
                  t        «      5  t        | t        d¬«      «       d d d «       t        d«      } t        | t        d¬«      «       t	        j
                  t        «      5  t        | t        d¬«      «       d d d «       t        d«      } t        | t        d¬«      «       t	        j
                  t        «      5  t        | t        «       «       d d d «       t        d«      } t        | t        d¬«      «      dk(   t        | t        d¬«      «      dk(   t	        j
                  t        «      5  t        | t        dg¬	«      «       d d d «       y # 1 sw Y   �Œ1xY w# 1 sw Y   ŒäxY w# 1 sw Y   Œ™xY w# 1 sw Y   y xY w)
Né   s   123r¤   s   45rB   s   123456s   456©ÚEtagÚasdfrª   )r$   rG   r	   r
   rr   rs   r"   ©Úws    rF   Útest_ContentLengthWriterr³   Ñ  s•  € Ü˜AÓ€AÜ�1”d Ô'Ó(¨FÒ2Ð2Ð2Ü�1”d Ô&Ó'¨5Ò0Ð0Ð0Ü�1”l“nÓ%¨Ò,Ð,Ð,ä˜AÓ€AÜ	�‰Ô)Ó	*ñ )Ü�”4˜YÔ'Ô(÷)ô 	˜AÓ€AÜˆAŒt˜Ô Ô!Ü	�‰Ô)Ó	*ñ &Ü�”4˜VÔ$Ô%÷&ô 	˜AÓ€AÜˆAŒt˜Ô Ô!Ü	�‰Ô)Ó	*ñ #Ü�”<“>Ô"÷#ô 	˜AÓ€AÜˆAŒt˜Ô Ó! VÒ+ÜˆAŒt˜ÔÓ  EÒ)Ü	�‰Ô)Ó	*ñ =Ü�”<Ð)9Ð(:Ô;Ô<÷=ð =÷!)ñ )ú÷
&ð &ú÷
#ð #ú÷=ð =ús0   Á?GÃGÄ1GÆ$G*ÇGÇGÇG'Ç*G3c                  ó&  — t        «       } t        | t        d¬«      «      dk(  sJ ‚t        | t        d¬«      «      dk(  sJ ‚t        | t        d¬«      «      dk(  sJ ‚t        | t        «       «      dk(  sJ ‚t        | t        dd	g¬
«      «      dk(  sJ ‚y )Nrˆ   r¤   s   3
aaa
s   aaaaaaaaaaaaaaaaaaaas   14
aaaaaaaaaaaaaaaaaaaa
rB   r©   r®   )ÚaÚbrª   s   0
Etag: asdf
a: b

)r#   rG   r	   r
   r±   s    rF   Útest_ChunkedWriterr·   ì  s—   € Ü‹€AÜ�1”d Ô'Ó(¨OÒ;Ð;Ð;Ü�1”d 	Ô*Ó+Ð/NÒNÐNÐNä�1”d ”nÓ%¨Ò,Ð,Ð,ä�1”l“nÓ%¨Ò5Ð5Ð5ô 	�”<Ð)9¸:Ð(FÔGÓHØ-ò	.ðñ	.rB   c                  ó
  — t        «       } t        | t        d¬«      «      dk(  sJ ‚t        | t        «       «      dk(  sJ ‚t	        j
                  t        «      5  t        | t        dg¬«      «       d d d «       y # 1 sw Y   y xY w)Ns   1234r¤   rB   r®   rª   )r%   rG   r	   r
   rr   rs   r"   r±   s    rF   Útest_Http10Writerr¹   û  so   € Ü‹€AÜ�1”d Ô(Ó)¨WÒ4Ð4Ð4Ü�1”l“nÓ%¨Ò,Ð,Ð,ä	�‰Ô)Ó	*ñ =Ü�”<Ð)9Ð(:Ô;Ô<÷=÷ =ñ =ús   ÁA9Á9Bc                  óœ   — t        j                  t        «      5  t        t        t
        t        f   dd «       d d d «       y # 1 sw Y   y xY w)Ns   HTTP/1.0 200 OK xxxx

)rr   rs   r"   r^   r   r    r   rt   rB   rF   Ú&test_reject_garbage_after_request_liner»     s?   € Ü	�‰Ô)Ó	*ñ UÜ
Œ7”6œ=Ð(Ñ)Ð+MÈtÔT÷U÷ Uñ Uúó   šAÁAc                  óœ   — t        j                  t        «      5  t        t        t
        t        f   dd «       d d d «       y # 1 sw Y   y xY w)Ns&   HEAD /foo HTTP/1.1 xxxxxx
Host: a

©rr   rs   r"   r^   r   r   r   rt   rB   rF   Ú'test_reject_garbage_after_response_liner¿   	  s>   € Ü	�‰Ô)Ó	*ñ 
Ü
Ü”FœD�LÑ!Ø?Øô	
÷
÷ 
ñ 
úr¼   c                  óœ   — t        j                  t        «      5  t        t        t
        t        f   dd «       d d d «       y # 1 sw Y   y xY w)Ns%   HEAD /foo HTTP/1.1
Host: foo bar

r¾   rt   rB   rF   Ú"test_reject_garbage_in_header_linerÁ     s>   € Ü	�‰Ô)Ó	*ñ 
Ü
Ü”FœD�LÑ!ØAØô	
÷
÷ 
ñ 
úr¼   c                  ó  — dD ]o  } t        d«      }|j                  | «       |j                  d«       t        j                  t
        «      5  t        t        t        t        f   |d «       d d d «       Œq y # 1 sw Y   Œ|xY w)Ns     îs   HEAD /s    HTTP/1.1
Host: foobar

)
r‹   rC   Úextendrr   rs   r"   r^   r   r   r   )Úbad_charÚmessages     rF   Útest_reject_non_vchar_in_pathrÆ     sp   € Ø'ò 5ˆÜ˜IÓ&ˆØ�‰�xÔ Ø�‰Ð;Ô<Ü�]‰]Ô-Ó.ñ 	5ÜŒw”vœt�|Ñ$ g¨tÔ4÷	5ð 	5ñ	5÷	5ð 	5ús   ÁA6Á6A?	c            
      ó\   — t        t        t        t        f   dt	        ddddg¬«      «       y )Ns\   HEAD /foo HTTP/1.1
Host: foo
Set-Cookie: ___utmvafIumyLc=kUdUpAt; path=/; Max-Age=900

rw   rx   r-   )z
Set-Cookiez-___utmvafIumyLc=kUdUpAt; path=/; Max-Age=900r3   )r^   r   r   r   r   rt   rB   rF   Ú"test_allow_some_garbage_in_cookiesrÈ   %  s6   € ÜÜ”œ�Ñð	ô 	ØØàØRðô	
õrB   c                  ó<   — t        t        t        ddg«      d«       y )Nrj   r…   s   Host: example.com
foo: bar

)rL   r'   r   rt   rB   rF   Útest_host_comes_firstrÊ   7  s   € ÜÜÜ Ð0GÐHÓIØ0õrB   )r@   N)F)KÚtypingr   r   r   r   rr   Ú_eventsr   r	   r
   r   r   r   r   Ú_headersr   r   Ú_readersr   r   r   r   r   Ú_receivebufferr   Ú_stater   r   r   r   r   r   r   r   r    r!   Ú_utilr"   Ú_writersr#   r$   r%   r&   r'   r(   r)   Úhelpersr+   r`   rV   rG   rL   rP   r^   rf   rh   ru   r†   rŒ   Úboolr�   r”   r�   r¥   r§   r«   r³   r·   r¹   r»   r¿   rÁ   rÆ   rÈ   rÊ   rt   rB   rF   ú<module>rÕ      sO  ðß 1Ó 1ã ÷÷ ñ ÷ 7÷õ õ +÷÷ ÷ õ '÷÷ ñ õ +ð 
�ˆÙØØØ$Ð&=Ð>ô	
ð
 	Eðð 
�ÐÙ˜SÐ+BÐ*CÈEÔRØ7ðð 
�ÐÙ˜S¨"°UÔ;Ø"ðð 
�ÐÙØÐ&>Ð%?È
ô	
ð 	>ðð 
�ÐÙ¨#°rÀ*ÔMØ'ðð7 €ðF�H˜YÑ'ð ¨cð °eó ðˆsð ˜ð ¨ð °ó ð
�%ð ˜Mó ð%ˆsð %˜%ð %¨3ð %°4ó %ó80ó
0ó

ó>]Uó@
ð Øð Øð Ø%)ð àˆs�D˜$ˆÑó ð")�sð )˜t E™{ó )ñ
<˜ð < Eð <°Sð <À$ð <ÐSWó <ó.óó:óz=ó6ó=óUó

ó
ó5óô$rB   