§
    ÏÁ³g@  ã                   óú  — 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'„Z5dAd(„Z6dAd)„Z7dAd*„Z8dAd+„Z9dAd,„Z:d&ed-e1d.e;d eeddf         fd/„Z<d0ed ee
         fd1„Z=dBd3ed$e1d"ed.e;d df
d4„Z>dAd5„Z?dAd6„Z@dAd7„ZAdAd8„ZBdAd9„ZCdAd:„ZDdAd;„ZEdAd<„ZFdAd=„ZGdAd>„ZHdAd?„ZIdAd@„ZJdS )Cé    )Ú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                 óR   — g } | ||j         ¦  «         d                     |¦  «        S )Nó    )ÚappendÚjoin)r>   r?   Úgot_lists      úO/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/h11/tests/test_io.pyÚdowriterG   R   s-   € Ø€HØ
€Fˆ3�”Ñ Ô Ð Ø�8Š8�HÑÔÐrB   Úexpectedc                 ó6   — t          | |¦  «        }||k    sJ ‚d S ©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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 ‚d S )NrK   r@   c                 ó¦   •— | ‰k    sJ ‚t          | dg ¦  «        D ]5\  }}t          |¦  «        t          u sJ ‚t          |¦  «        t          u sJ ‚Œ6d S )Nr6   )ÚgetattrÚtypeÚbytes)rK   ÚnameÚvaluerH   s      €rF   Úcheckztr.<locals>.checkd   sl   ø€ Ø�hŠˆˆˆõ # 3¨	°2Ñ6Ô6ð 	(ð 	(‰KˆD�%Ý˜‘:”:¥Ð&Ð&Ð&Ð&Ý˜‘;”;¥%Ð'Ð'Ð'Ð'Ð'ð	(ð 	(rB   r*   ó   trailing)r   rP   r   ÚrangeÚlenrV   )rQ   rM   rH   rY   rO   Úis     `   rF   Útrr^   c   s  ø€ ð(•3ð (˜4ð (ð (ð (ð (ð (ð (õ �$‰-Œ-€CØ	€Eˆ&ˆ&�‰+Œ+ÑÔÐØ€N€N€Nõ ‰/Œ/€CÝ•3�t‘9”9ÑÔð ð ˆØˆv�c‰{Œ{Ð"Ð"Ð"Øˆt�A˜˜A™�IŒÑˆˆØ	€Eˆ&ˆ&�‰+Œ+ÑÔÐõ �$‰-Œ-€CØˆ;Ñ€CØ	€Eˆ&ˆ&�‰+Œ+ÑÔÐÝ�‰:Œ:˜Ò$Ð$Ð$Ð$Ð$Ð$rB   c                  ód   — t           D ]'\  \  } }}}t          t          | |f         ||¦  «         Œ(d S rJ   )ÚSIMPLE_CASESrL   r)   ©ÚroleÚstateÚeventÚbinarys       rF   Útest_writers_simplerf      sD   € Ý*6ð 0ð 0Ñ&‰ˆ$�˜˜vÝ
�7�4˜�;Ô ¨Ñ/Ô/Ð/Ð/ð0ð 0rB   c                  ód   — t           D ]'\  \  } }}}t          t          | |f         ||¦  «         Œ(d S rJ   )r`   r^   r   ra   s       rF   Útest_readers_simplerh   „   sD   € Ý*6ð 0ð 0Ñ&‰ˆ$�˜˜vÝ
�7�4˜�;Ô ¨Ñ/Ô/Ð/Ð/ð0ð 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 ¦  «         n# 1 swxY w Y   t	          j        t          ¦  «        5  t          t          t          ddgd	¬¦  «        d ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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ÔAØ(ñô ð õ
 …}•g˜b‘k”k 7Ñ+Ô+Ð+õ 
ŒÕ)Ñ	*Ô	*ð 

ð 

Ý
ÝÝØØØ(Ð*AÐBØ"ð	ñ ô ð ñ		
ô 		
ð 		
ð

ð 

ð 

ñ 

ô 

ð 

ð 

ð 

ð 

ð 

ð 

øøøð 

ð 

ð 

ð 

õ 
ŒÕ)Ñ	*Ô	*ð 
ð 
Ý
ÝÝØÐ*AÐ)BÐQVðñ ô ð ñ	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s$   Á"*BÂBÂBÂ<(C1Ã1C5Ã8C5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 ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  t          t          t          t          f         d d ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  t          t          t          t          f         d!d ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  t          t          t          t          f         d!d ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  t          t          t          t          f         d"d ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )#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†   ¨   sÄ  € åÝ•��ÔØ5ÝØØØ'Ð(Øð		
ñ 	
ô 	
ñ	ô 	ð 	õ Ý•��ÔØ%Ý�v f°bÀuÐMÑMÔ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ð UÝ
�7•6�4�<Ô Ð"MÈtÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uð Uð UsZ   Ê)KËKËKË2)L'Ì'L+Ì.L+Í)N Î NÎNÎ$)OÏOÏ OÏ=)P3Ð3P7Ð:P7c                  ón   — t          t          g d¢¦  «        ¦  «        dt          d¦  «        dgk    sJ ‚d S )N)ó   aaas   bbbs     cccó   dddrˆ   s   bbb cccr‰   )Úlistr   Ú	bytearrayrt   rB   rF   Útest__obsolete_line_fold_bytesrŒ   H  sT   € õ Õ#Ð$FÐ$FÐ$FÑGÔGÑHÔHØÝ�*ÑÔØðMò ð ð ð ð ð rB   rO   Údo_eofc              #   óœ   K  — 	  | |¦  «        }|€n|V — t          |¦  «        t          u rnŒ*|r|rJ ‚|                      ¦   «         V — d S d S rJ   )rU   r
   Úread_eof)rQ   rO   r�   rd   s       rF   Ú_run_reader_iterr�   U  s}   è è € ðØ��s‘”ˆØˆ=ØØˆˆˆõ �‰;Œ;�,Ð&Ð&Øðð ð  ØˆˆˆØ�oŠoÑÔÐÐÐÐÐð ð  rB   Úargsc                  óL   — t          t          | Ž ¦  «        }t          |¦  «        S rJ   )rŠ   r�   r+   )r‘   Úeventss     rF   Ú_run_readerr”   f  s#   € ÝÕ" DÐ)Ñ*Ô*€FÝ  Ñ(Ô(Ð(rB   FÚthunkc                 óN  — 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 ¦   «         ¦  «        }|r3|s3t          |dz   ¦  «        }t           | ¦   «         |d¦  «        |k    sJ ‚d S d S d S )NzTest 1zTest 2Fr*   c              3   óB   K  — | ]}t          |¦  «        t          u V — Œd S rJ   )rU   r
   )Ú.0rd   s     rF   ú	<genexpr>z t_body_reader.<locals>.<genexpr>|  s-   è è € ÐHÐH°e•d˜5‘k”k¥\Ð1ÐHÐHÐHÐHÐHÐHrB   rZ   )ÚprintrP   r”   r   r[   r\   r+   Úany)	r•   rM   rH   r�   rO   rQ   r“   r]   Úis_completes	            rF   Út_body_readerr�   k  sU  € å	ˆ(�O„O€OÝ
�$‰-Œ-€CÝ�u�u‘w”w  VÑ,Ô,°Ò8Ð8Ð8Ð8õ 
ˆ(�O„O€OØˆU‰WŒW€FÝ
‰/Œ/€CØ€FÝ•3�t‘9”9ÑÔð ð ˆØ•+˜f c¨5Ñ1Ô1Ñ1ˆØˆt�A˜˜A™�IŒÑˆˆØ
�k˜& # vÑ.Ô.Ñ.€FÝ  Ñ(Ô(¨HÒ4Ð4Ð4Ð4åÐHÐH¸xÐHÑHÔHÑHÔH€KØð <˜6ð <Ý�d˜[Ñ(Ñ)Ô)ˆÝ˜5˜5™7œ7 C¨Ñ/Ô/°8Ò;Ð;Ð;Ð;ð<ð <ð <ð <à;Ð;rB   c                  ó    — t          d„ dt          ¦   «         g¦  «         t          d„ dt          d¬¦  «        t          ¦   «         g¦  «         d S )Nc                  ó    — t          d¦  «        S )Nr   ©r   rt   rB   rF   ú<lambda>z*test_ContentLengthReader.<locals>.<lambda>ƒ  s   € Õ-¨aÑ0Ô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¥   ‚  s[   € ÝÐ0Ð0°#½¹¼Ð7GÑHÔHÐ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¬¦  «         d S )NrB   T)r�   s   asdfr¤   F)r�   r   r
   r	   rt   rB   rF   Útest_Http10Readerr§   Œ  sƒ   € Ý•, ¥l¡n¤nÐ%5¸dÐCÑCÔCÐCÝ•, ­$°GÐ*<Ñ*<Ô*<Ð)=ÀeÐLÑLÔLÐLÝÝ�g¥¨'Ð 2Ñ 2Ô 2µL±N´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 ¦  «         n# 1 swxY w Y   t	          j        t          ¦  «        5  t          t          dd ¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          dt          d¬¦  «        t          ¦   «         g¦  «         t          t          dt          d¬¦  «        t          ¦   «         g¦  «         d S )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«   ”  sw  € Ý•- µ±´Ð/?Ñ@Ô@Ð@åÝØ$Ý	Ð1Ð2Ð	3Ñ	3Ô	3Ð4ñô ð õ Ýð	"õ
 Ð.Ð/Ñ/Ô/ÝÐ"4Ð!5Ð6Ñ6Ô6ð	
ñ
ô 
ð 
õ ÝØHÝ	Ð+Ð	,Ñ	,Ô	,­l©n¬nÐ=ñô ð õ ÝØ8Ý	�;Ð	Ñ	Ô	¥¡¤Ð0ñô ð õ 
ŒÕ)Ñ	*Ô	*ð Sð Sõ 	•mÐ%<½tÈÐ?PÑ?PÔ?PÐ>QÑRÔRÐRðSð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sõ 
ŒÕ)Ñ	*Ô	*ð =ð =Ý•mÐ%5°tÑ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =õ Ýð	Bõ 
�8Ð	Ñ	Ô	�l™nœnÐ-ñô ð õ ÝØ-Ý	�8Ð	Ñ	Ô	�l™nœnÐ-ñô ð ð ð s$   Ã<&D.Ä.D2Ä5D2ÅE5Å5E9Å<E9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 ¦  «         n# 1 swxY w Y   t          d¦  «        } t          | t          d¬¦  «        ¦  «         t	          j        t          ¦  «        5  t          | t          d¬¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          d¦  «        } t          | t          d¬¦  «        ¦  «         t	          j        t          ¦  «        5  t          | t          ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          d¦  «        } t          | t          d¬¦  «        ¦  «        dk     t          | t          d¬¦  «        ¦  «        dk     t	          j        t          ¦  «        5  t          | t          dg¬	¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
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Ð2Ý�1•d Ð&Ñ&Ô&Ñ'Ô'¨5Ò0Ð0Ð0Ð0Ý�1•l‘n”nÑ%Ô%¨Ò,Ð,Ð,Ð,å˜AÑÔ€AÝ	ŒÕ)Ñ	*Ô	*ð )ð )Ý�•4˜YÐ'Ñ'Ô'Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õ 	˜AÑÔ€AÝˆA�t˜Ð Ñ Ô Ñ!Ô!Ð!Ý	ŒÕ)Ñ	*Ô	*ð &ð &Ý�•4˜VÐ$Ñ$Ô$Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &õ 	˜AÑÔ€AÝˆA�t˜Ð Ñ Ô Ñ!Ô!Ð!Ý	ŒÕ)Ñ	*Ô	*ð #ð #Ý�•<‘>”>Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ 	˜AÑÔ€AÝˆA�t˜Ð Ñ Ô Ñ!Ô! VÒ+Ð+ÝˆA�t˜ÐÑÔÑ Ô  EÒ)Ð)Ý	ŒÕ)Ñ	*Ô	*ð =ð =Ý�•<Ð)9Ð(:Ð;Ñ;Ô;Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =sH   Â"CÃCÃCÄE	Å	EÅEÆGÇGÇ
GÈ: I'É'I+É.I+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 ‚d S )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ÐNå�1•d �n‘n”nÑ%Ô%¨Ò,Ð,Ð,Ð,å�1•l‘n”nÑ%Ô%¨Ò5Ð5Ð5Ð5õ 	�•<Ð)9¸:Ð(FÐGÑGÔGÑHÔHØ-ò	.ð 	.ð 	.ð 	.ð 	.ð 	.rB   c                  óP  — 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 ¦  «         d S # 1 swxY w Y   d S )Ns   1234r¤   rB   r®   rª   )r%   rG   r	   r
   rr   rs   r"   r±   s    rF   Útest_Http10Writerr¹   û  sä   € Ý‰Œ€AÝ�1•d Ð(Ñ(Ô(Ñ)Ô)¨WÒ4Ð4Ð4Ð4Ý�1•l‘n”nÑ%Ô%¨Ò,Ð,Ð,Ð,å	ŒÕ)Ñ	*Ô	*ð =ð =Ý�•<Ð)9Ð(:Ð;Ñ;Ô;Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s   Á. BÂBÂ"Bc                  óº   — t          j        t          ¦  «        5  t          t          t
          t          f         dd ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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ð UÝ
�7•6�=Ð(Ô)Ð+MÈtÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uð Uð Uó   š)AÁAÁAc                  óº   — t          j        t          ¦  «        5  t          t          t
          t          f         dd ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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 ¦  «         d S # 1 swxY w Y   d S )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                  ó4  — dD ]”} t          d¦  «        }|                     | ¦  «         |                     d¦  «         t          j        t
          ¦  «        5  t          t          t          t          f         |d ¦  «         d d d ¦  «         n# 1 swxY w Y   Œ•d S )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Æ     sÏ   € Ø'ð 5ð 5ˆÝ˜IÑ&Ô&ˆØ�Š�xÑ Ô Ð Ø�ŠÐ;Ñ<Ô<Ð<ÝŒ]Õ-Ñ.Ô.ð 	5ð 	5Ý�w•v�t�|Ô$ g¨tÑ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5øð	5ð 5s   Á)BÂB	ÂB	c            
      óz   — t          t          t          t          f         dt	          ddddg¬¦  «        ¦  «         d S )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È   %  sT   € ÝÝ•��Ôð	õ 	ØØàØRðð	
ñ 	
ô 	
ñô ð ð ð rB   c                  óP   — t          t          t          ddg¦  «        d¦  «         d S )Nrj   r…   s   Host: example.com
foo: bar

)rL   r'   r   rt   rB   rF   Útest_host_comes_firstrÊ   7  s5   € ÝÝÝ Ð0GÐHÑIÔ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Õ      s¢  ðØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 7Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 'Ð &Ð &Ð &Ð &Ð &ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *ð 
�ˆØˆØØØ$Ð&=Ð>ð	
ñ 	
ô 	
ð
 	Eðð 
�ÐØˆ˜SÐ+BÐ*CÈEÐRÑRÔRØ7ðð 
�ÐØˆ˜S¨"°UÐ;Ñ;Ô;Ø"ðð 
�ÐØÐØÐ&>Ð%?È
ð	
ñ 	
ô 	
ð 	>ðð 
�ÐØÐ¨#°rÀ*ÐMÑMÔMØ'ðð7 €ðF�H˜YÔ'ð ¨cð °eð ð ð ð ðˆsð ˜ð ¨ð °ð ð ð ð ð
�%ð ˜Mð ð ð ð ð%ˆsð %˜%ð %¨3ð %°4ð %ð %ð %ð %ð80ð 0ð 0ð 0ð
0ð 0ð 0ð 0ð

ð 
ð 
ð 
ð>]Uð ]Uð ]Uð ]Uð@
ð 
ð 
ð 
ð Øð Øð Ø%)ð àˆs�D˜$ˆÔð ð  ð  ð  ð")�sð )˜t Eœ{ð )ð )ð )ð )ð
<ð <˜ð < Eð <°Sð <À$ð <ÐSWð <ð <ð <ð <ð.ð ð ð ðð ð ð ð:ð :ð :ð :ðz=ð =ð =ð =ð6ð ð ð ð=ð =ð =ð =ðUð Uð Uð Uð

ð 
ð 
ð 
ð
ð 
ð 
ð 
ð5ð 5ð 5ð 5ðð ð ð ð$ð ð ð ð ð rB   