Ë
    rPêjÈµ  ã                   óz  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
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 d dl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$m%Z%m&Z&m'Z'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< ddl=m>Z> ej~                  dk\  rd dlm@Z@ n
 edd¬«      Z@ej~                  dk\  rd dl
mAZA n	eeBeCddf   ZA edeA¬«      ZDdZE eFd«      ZG eBd„  eHd«      D «       «      ZIerdd lJmKZK  G d!„ d"eL«      ZM G d#„ d$eL«      ZNd%eOdz  d&ePeOdz  eQeOeOf   f   fd'„ZR	 d7d(eeOeOf   d)eOd&eOdz  fd*„ZS G d+„ d,«      ZT G d-„ d«      ZU e<eUe8j¬                  ¬.«       G d/„ d0e9«      «       ZW G d1„ d2«      ZXePe9eOeOf   ZY G d3„ d4e9«      ZZ G d5„ d6«      Z[y)8é    N)Údeque)ÚAsyncIteratorÚIteratorÚMappingÚSequence)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚTypeVarÚUnionÚcast)Ú	parse_qslÚunquoteÚ	urlencode)ÚCIMultiDictÚCIMultiDictProxyé   )ÚAbstractStreamWriter)ÚZLibCompressorÚZLibDecompressor)ÚCONTENT_DISPOSITIONÚCONTENT_ENCODINGÚCONTENT_LENGTHÚCONTENT_TRANSFER_ENCODINGÚCONTENT_TYPE)ÚCHARÚDEFAULT_CHUNK_SIZEÚTOKENÚparse_mimetypeÚreify)ÚHeadersParser)ÚBadHttpMessage)Úinternal_logger)ÚJsonPayloadÚLookupErrorÚOrderÚPayloadÚStringPayloadÚget_payloadÚpayload_type)ÚStreamReader)é   é   )ÚSelfr.   ÚBodyPartReader)Úbound)r,   é   )ÚBufferzmemoryview[int]zmemoryview[bytes]Ú_Buffer)ÚMultipartReaderÚMultipartWriterr/   ÚBadContentDispositionHeaderÚBadContentDispositionParamÚparse_content_dispositionÚcontent_disposition_filenamesA   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=c              #   ó2   K  — | ]  }|t         vsŒ|–— Œ y ­w©N)Ú_BASE64_CHARS)Ú.0Úbs     úV/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/aiohttp/multipart.pyú	<genexpr>r@   D   s   è ø€ ÒJ °1¼MÒ3Iœ!ÑJùs   ‚�é   )ÚClientResponsec                   ó   — e Zd Zy)r6   N©Ú__name__Ú
__module__Ú__qualname__© ó    r?   r6   r6   K   ó   „ ØrI   r6   c                   ó   — e Zd Zy)r7   NrD   rH   rI   r?   r7   r7   O   rJ   rI   r7   ÚheaderÚreturnc                 óô  ‡— dt         dt        fd„Šdt         dt        fd„}dt         dt        fˆfd„}dt         dt        fd„}dt         dt        fd„}dj                  t        t        j
                  t        «      «      d	œd
t         dt         dt         fd„}| sd i fS | j                  d«      ^}}|j                  «       } ‰|«      s"t        j                  t        | «      «       d i fS i }|�r:|j                  d«      }	|	st        j                  t        | «      «       Œ5d|	vr"t        j                  t        | «      «       d i fS |	j                  dd«      \  }
}|
j                  «       j                  «       }
|j                  «       }|
|v r"t        j                  t        | «      «       d i fS  ‰|
«      st        j                  t        |	«      «       Œë ||
«      r> ||«      r ||dd «      }�n, ‰|«      �s#t        j                  t        |	«      «       �Œ1 ||
«      rT ||«      r|j                  dd«      \  }}}|xs d}n t        j                  t        |	«      «       �Œ~	 t!        ||d«      }n§d}|j)                  «       } ||«      rd} ||dd j                  d«      «      }nL ‰|«      rd}nA|r?|› d|d   › �} ||«      r-|j                  d«        ||dd j                  d«      «      }d}|r"t        j                  t        | «      «       d i fS |||
<   |r�Œ:|j                  «       |fS # t"        j$                  t&        f$ r" t        j                  t        |	«      «       Y �Œ‰w xY w)NÚstringrM   c                 ó@   — t        | «      xr t        t        | «      k\  S r;   )Úboolr   Úset©rO   s    r?   Úis_tokenz+parse_content_disposition.<locals>.is_tokenV   s   € Ü�F‹|Ò4¤¬¨V«Ñ 4Ð4rI   c                 óN   — t        | «      dk\  xr | d   | d   cxk(  xr dk(  S c S )Né   r   éÿÿÿÿú")ÚlenrS   s    r?   Ú	is_quotedz,parse_content_disposition.<locals>.is_quotedY   s.   € Ü�6‹{˜aÑÒB F¨1¡I°¸±Ö$B¸sÑ$BÐBÑ$BÐBrI   c                 ó@   •—  ‰| «      xr | j                  d«      dk(  S )Nú'rV   )Úcount)rO   rT   s    €r?   Ú
is_rfc5987z-parse_content_disposition.<locals>.is_rfc5987\   s!   ø€ Ù˜ÓÒ: F§L¡L°Ó$5¸Ñ$:Ð:rI   c                 ó$   — | j                  d«      S )NÚ*)ÚendswithrS   s    r?   Úis_extended_paramz4parse_content_disposition.<locals>.is_extended_param_   s   € Ø�‰˜sÓ#Ð#rI   c                 ó†   — | j                  d«      dz   }|sy| j                  d«      r| |d n| |d  }|j                  «       S )Nr`   r   FrW   )Úfindra   Úisdigit)rO   ÚposÚ	substrings      r?   Úis_continuous_paramz6parse_content_disposition.<locals>.is_continuous_paramb   sH   € Ø�k‰k˜#Ó Ñ"ˆÙØØ&,§o¡o°cÔ&:�F˜3˜r‘NÀÀsÀtÀˆ	Ø× Ñ Ó"Ð"rI   Ú )ÚcharsÚtextrj   c                ó8   — t        j                  d|› d�d| «      S )Nz\\([z])z\1)ÚreÚsub)rk   rj   s     r?   Úunescapez+parse_content_disposition.<locals>.unescapei   s   € Ü�v‰v˜˜u˜g RÐ(¨%°Ó6Ð6rI   ú;r   ú=r   rW   r\   rV   úutf-8ÚstrictTFz\/)ÚstrrQ   ÚjoinÚmaprm   Úescaper   ÚsplitÚstripÚwarningsÚwarnr6   ÚpopÚlowerÚlstripr7   r   Úbuiltinsr%   ÚUnicodeDecodeErrorÚrstrip)rL   rZ   r^   rb   rh   ro   ÚdisptypeÚpartsÚparamsÚitemÚkeyÚvalueÚencodingÚ_ÚfailedÚ	rstrippedÚ_valuerT   s                    @r?   r8   r8   S   sG  ø€ ð5œð 5¤ó 5ðCœ#ð C¤$ó Cð;œ3ð ;¤4õ ;ð$¤#ð $¬$ó $ð#¤Cð #¬Dó #ð -/¯G©G´C¼¿	¹	Ä4Ó4HÓ,Iò 7”sð 7¤cð 7Ìcó 7ñ Ø�Rˆxˆð —|‘| CÓ(Ð€HˆuØ�~‰~Ó€HÙ�HÔÜ�‰Ô1°&Ó9Ô:Ø�Rˆxˆà€FÚ
Ø�y‰y˜‹|ˆáÜ�M‰MÔ5°fÓ=Ô>Øà�d‰?Ü�M‰MÔ5°fÓ=Ô>Ø˜�8ˆOà—Z‘Z  QÓ'‰
ˆˆUØ�i‰i‹k×ÑÓ!ˆØ—‘“ˆà�&‰=Ü�M‰MÔ5°fÓ=Ô>Ø˜�8ˆOá˜Œ}Ü�M‰MÔ4°TÓ:Ô;Øá  Ô%Ù˜ÔÙ   q¨ Ó-’Ù˜e•_Ü—‘Ô8¸Ó>Ô?Ùá˜sÔ#Ù˜%Ô Ø%*§[¡[°°aÓ%8Ñ"�˜!˜UØ#Ò. w‘ä—‘Ô8¸Ó>Ô?ÙðÜ  x°Ó:‘ð ˆFØŸ™›ˆIÙ˜Ô#Ø�Ù  ¨1¨R ×!7Ñ!7¸Ó!>Ó?‘Ù˜%”Ø‘Ùð "˜7 ! E¨!¡H :Ð.�Ù˜VÔ$Ø—I‘I˜a”LÙ$ V¨A¨b \×%8Ñ%8¸Ó%?Ó@�EØ"�FáÜ—‘Ô9¸&ÓAÔBØ˜R�x�àˆˆs‰óI ðL �>‰>Ó˜VÐ#Ð#øô= ×(Ñ(Ô*<Ð=ò ô —‘Ô8¸Ó>Ô?Úðús   É,L< Ì<7M7Í6M7r„   Únamec                 ó
  ‡
— d|z  Š
| sy ‰
| v r| ‰
   S || v r| |   S g }t        ˆ
fd„| j                  «       D «       «      }t        |«      D ]T  \  }\  }}|j                  dd«      \  }}|j	                  d«      r|d d }|t        |«      k(  r|j                  |«       ŒT n |sy dj                  |«      }d|v r*|j                  dd«      \  }	}}|	xs d	}		 t        ||	d
«      S |S # t        j                  t        f$ r Y y w xY w)Nz%s*c              3   óP   •K  — | ]  \  }}|j                  ‰«      sŒ||f–— Œ y ­wr;   )Ú
startswith)r=   r†   r‡   Úname_sufs      €r?   r@   z/content_disposition_filename.<locals>.<genexpr>Ì   s)   øè ø€ ò 
Ù'˜S %¸S¿^¹^ÈHÕ=UˆS�%ŒLñ
ùs   ƒ&�	&r`   r   rW   ri   r\   rV   rr   rs   )ÚsortedÚitemsÚ	enumeraterx   ra   rt   Úappendru   r   r   r%   r€   )r„   r�   rƒ   ÚfnparamsÚnumr†   r‡   r‰   Útailrˆ   r‘   s             @r?   r9   r9   À   s9  ø€ ð �t‰|€HÙØØ	�VÑ	Ø�hÑÐØ	�‰Ø�d‰|ÐàˆÜó 
Ø+1¯<©<«>ô
ó 
ˆô "+¨8Ó!4ò 	ÑˆC‘�#�uØ—i‘i  QÓ'‰GˆAˆtØ�}‰}˜SÔ!Ø˜C˜R�y�Ø”s˜3“xÒØ—‘˜UÕ#áð	ñ ØØ—‘˜“ˆØ�%‰<Ø!&§¡¨S°!Ó!4ÑˆH�a˜ØÒ* 7ˆHðÜ˜u h°Ó9Ð9ð ˆøô ×(Ñ(Ô*<Ð=ò ñ
 ðús   ÃC& Ã&DÄDc                   ój   — e Zd ZdZ	 	 	 	 	 	 dd„Zdd„Zded   fd„Zdefd„Z	ded   dz  fd	„Z
dd
„Zy)ÚMultipartResponseWrapperzzWrapper around the MultipartReader.

    It takes care about
    underlying connection and close it when it needs in.
    rM   Nc                 ó    — || _         || _        y r;   )ÚrespÚstream)Úselfrœ   r�   s      r?   Ú__init__z!MultipartResponseWrapper.__init__ï   s   € ð
 ˆŒ	Øˆ�rI   c                 ó   — | S r;   rH   ©rž   s    r?   Ú	__aiter__z"MultipartResponseWrapper.__aiter__÷   ó   € ØˆrI   )r4   r/   c              ƒ   óR   K  — | j                  «       ƒ d {  –—† }|€t        ‚|S 7 Œ­wr;   ©ÚnextÚStopAsyncIteration©rž   Úparts     r?   Ú	__anext__z"MultipartResponseWrapper.__anext__ú   ó+   è ø€ ð —Y‘Y“[× ˆØˆ<Ü$Ð$Øˆð !úó   ‚'–%—'c                 óJ   — | j                   j                  j                  «       S )z2Returns True when all response data had been read.)rœ   ÚcontentÚat_eofr¡   s    r?   r¯   zMultipartResponseWrapper.at_eof  s   € à�y‰y× Ñ ×'Ñ'Ó)Ð)rI   c              ƒ   ó¾   K  — | j                   j                  «       ƒ d{  –—† }| j                   j                  «       r| j                  «       ƒ d{  –—†  |S 7 Œ87 Œ­w)z#Emits next multipart reader object.N)r�   r¦   r¯   Úrelease©rž   r…   s     r?   r¦   zMultipartResponseWrapper.next  sJ   è ø€ ð —[‘[×%Ñ%Ó'×'ˆØ�;‰;×ÑÔØ—,‘,“.× Ð Øˆð (øà ús!   ‚A A¡1AÁAÁAÁAc              ƒ   óT   K  — | j                   j                  «       ƒ d{  –—†  y7 Œ­w)z_Release the connection gracefully.

        All remaining content is read to the void.
        N)rœ   r±   r¡   s    r?   r±   z MultipartResponseWrapper.release  s   è ø€ ð
 �i‰i×ÑÓ!×!Ò!ús   ‚( &¡()rœ   rB   r�   r4   rM   N)rM   rš   ©rM   N)rE   rF   rG   Ú__doc__rŸ   r¢   r   rª   rQ   r¯   r¦   r±   rH   rI   r?   rš   rš   è   si   „ ñðàðð "ðð 
ó	óðà	Ð2Ñ	3óð*˜ó *ðà	Ð2Ñ	3°dÑ	:óô"rI   rš   c                   ór  — e Zd ZdZdZddeej                  edœde	ddd	e
d
ededz  dededee   ddfd„Zdedefd„Zde	fd„Zde	dz  fd„Zddœdede	fd„Zefdede	fd„Zde	dede	fd„Zdede	fd„Zdede	fd„Zde	fd„Zd3d „Zdd!œd"edz  defd#„Zdd!œd"edz  deeef   dz  fd$„Zdd!œd"edz  de e!eef      fd%„Z"defd&„Z#d'e$de$e	z  fd(„Z%defd)„Z&d'e$de$e	z  fd*„Z'd'e$de(e$e	z     fd+„Z)d'e$de$e	z  fd,„Z*d'e$de(e$e	z     fd-„Z+d'e$de$e	z  fd.„Z,d/edefd0„Z-e.dedz  fd1„«       Z/e.dedz  fd2„«       Z0y)4r/   z&Multipart reader for single body part.i    ÚmixedN)ÚsubtypeÚdefault_charsetÚmax_decompress_sizeÚclient_max_sizeÚmax_size_error_clsÚboundaryÚheadersúCIMultiDictProxy[str]r®   r¸   r¹   rº   r»   r¼   rM   c                óö  — || _         || _        t        |«      dz   | _        || _        || _        d| _        |dk(  | _        | j                  rd n| j                   j                  t        d «      }	|	�.|	j                  «       r|	j                  «       st        d|	›�«      ‚|	�t        |	«      nd | _        d| _        d| _        t#        «       | _        d | _        d| _        i | _        || _        || _        || _        y )NrV   Fú	form-datazinvalid Content-Length: r   rI   )r¾   Ú	_boundaryrY   Ú_boundary_lenÚ_contentÚ_default_charsetÚ_at_eofÚ_is_form_dataÚgetr   Úisasciire   Ú
ValueErrorÚintÚ_lengthÚ_read_bytesÚ
_b64_carryr   Ú_unreadÚ_prev_chunkÚ_content_eofÚ_cacheÚ_max_decompress_sizeÚ_client_max_sizeÚ_max_size_error_cls)
rž   r½   r¾   r®   r¸   r¹   rº   r»   r¼   Úlengths
             r?   rŸ   zBodyPartReader.__init__  sí   € ð ˆŒØ!ˆŒÜ  ›]¨QÑ.ˆÔØˆŒØ /ˆÔØˆŒØ$¨Ñ3ˆÔà×+Ò+‘°·±×1AÑ1AÄ.ÐRVÓ1WˆØÐ v§~¡~Ô'7¸F¿N¹NÔ<Lô Ð7¸°zÐBÓCÐCØ&,Ð&8”s˜6”{¸dˆŒØˆÔØˆŒÜ%*£WˆŒØ)-ˆÔØˆÔØ&(ˆŒØ$7ˆÔ!Ø /ˆÔØ#5ˆÕ rI   rž   c                 ó   — | S r;   rH   r¡   s    r?   r¢   zBodyPartReader.__aiter__A  r£   rI   c              ƒ   óR   K  — | j                  «       ƒ d {  –—† }|€t        ‚|S 7 Œ­wr;   r¥   r¨   s     r?   rª   zBodyPartReader.__anext__D  s)   è ø€ Ø—Y‘Y“[× ˆØˆ<Ü$Ð$Øˆð !úr¬   c              ƒ   óH   K  — | j                  «       ƒ d {  –—† }|sy |S 7 Œ	­wr;   )Úreadr²   s     r?   r¦   zBodyPartReader.nextJ  s$   è ø€ Ø—Y‘Y“[× ˆÙØØˆð !ús   ‚"– —
"F©ÚdecoderÜ   c             ƒ   ó  K  — | j                   ryt        «       }| j                   sr|j                  | j                  | j                  «      ƒ d{  –—† «       t        |«      | j                  kD  r| j                  | j                  «      ‚| j                   sŒr|rit        «       }| j                  |«      2 3 d{  –—† }|j                  |«       t        |«      | j                  kD  sŒ3| j                  | j                  «      ‚|S 7 Œµ7 ŒM6 |S ­w)z»Reads body part data.

        decode: Decodes data following by encoding
                method from Content-Encoding header. If it missed
                data remains untouched
        rI   N)	rÆ   Ú	bytearrayÚextendÚ
read_chunkÚ
chunk_sizerY   rÔ   rÕ   Údecode_iter)rž   rÜ   ÚdataÚdecoded_dataÚds        r?   rÚ   zBodyPartReader.readP  së   è ø€ ð �<Š<ØÜ‹{ˆØ—,’,Ø�K‰K˜dŸo™o¨d¯o©oÓ>×>Ô?Ü�4‹y˜4×0Ñ0Ò0Ø×.Ñ.¨t×/DÑ/DÓEÐEð —,“,ñ Ü$›;ˆLØ×+Ñ+¨DÓ1÷ Jð J�aØ×#Ñ# AÔ&Ü�|Ó$ t×'<Ñ'<Ó<Ø×2Ñ2°4×3HÑ3HÓIÐIàˆð ?øð
JøÐ1ð  ÐùsC   ‚ADÁDÁADÂDÂ5D	Â9DÂ:D	Â=*DÃ(DÄD	Ä	DÚsizec              ƒ   óÆ  K  — | j                   ry| j                  }|t        |«      z
  }|rd| _        t        || j                  «      }| j
                  �| j                  |«      ƒ d{  –—† }n| j                  |«      ƒ d{  –—† }||z   }| xj                  t        |«      z  c_        | j                  j                  t        «      }|r1|j                  «       dk(  r| j                  |t        |«      |z   «      }| j                  | j
                  k(  rd| _         | j                   r0| j                  j                  «       ƒ d{  –—† dk7  rt!        d«      ‚|S 7 Œñ7 ŒÙ7 Œ­w)zWReads body part content chunk of the specified size.

        size: chunk size
        rI   NÚbase64Tó   
z3Reader did not read all the data or it is malformed)rÆ   rÎ   rY   ÚmaxrÃ   rÌ   Ú_read_chunk_from_lengthÚ_read_chunk_from_streamrÍ   r¾   rÈ   r   r}   Ú_align_base64_chunkrÄ   ÚreadlinerÊ   )rž   ræ   ÚcarryÚwantÚfreshÚchunkrˆ   s          r?   rà   zBodyPartReader.read_chunkg  s-  è ø€ ð
 �<Š<ØØ—‘ˆØ”c˜%“jÑ ˆÙØ!ˆDŒOÜ�t˜T×/Ñ/Ó0ˆDØ�<‰<Ð#Ø×6Ñ6°tÓ<×<‰Eà×6Ñ6°tÓ<×<ˆEØ˜‘ˆØ×ÒœC ›JÑ&Õð —<‘<×#Ñ#Ô$=Ó>ˆÙ˜Ÿ™Ó(¨HÒ4Ø×,Ñ,¨U´C¸³JÀÑ4EÓFˆEà×Ñ˜tŸ|™|Ò+ØˆDŒLØ�<Š< $§-¡-×"8Ñ"8Ó":×:¸gÒEÜÐRÓSÐSØˆð! =øà<øð ;ús7   ‚A'E!Á)EÁ*E!ÂEÂCE!ÅEÅE!ÅE!ÅE!rò   c                 óŒ  — | j                   xs) | j                  d uxr | j                  | j                  k\  }|st        |«      |kD  r||d  | _        |d | }t        |j                  d t        «      «      dz  }|r|r|S t        |«      }|}|r|dz  }||   t        v r|dz  }|rŒ|s|S ||d  | j                  z   | _        |d | S )Né   r   )rÆ   rÌ   rÍ   rY   rÎ   Ú	translateÚ_NON_BASE64_BYTESr<   )rž   rò   ræ   Úat_endÚ	remainderÚcutÚlefts          r?   rí   z"BodyPartReader._align_base64_chunk†  sä   € Ø—‘ò 
Ø�L‰L Ð$ÒI¨×)9Ñ)9¸T¿\¹\Ñ)Ið 	ñ œ#˜e›* tÒ+Ø# D E˜lˆDŒOØ˜%˜4�LˆEä˜Ÿ™¨Ô.?Ó@ÓAÀAÑEˆ	Ù™FØˆLô �%‹jˆØˆÙØ�1‰HˆCØ�S‰zœ]Ñ*Ø˜‘	�ò ñ ð ˆLà  ˜+¨¯©Ñ7ˆŒØ�T�cˆ{ÐrI   c              ƒ   ó  K  — | j                   €J d«       ‚t        || j                   | j                  z
  «      }| j                  j	                  |«      ƒ d {  –—† }| j                  j                  «       rd| _        |S 7 Œ'­w)Nz(Content-Length required for chunked readT)rÌ   ÚminrÍ   rÄ   rÚ   r¯   rÆ   )rž   ræ   rá   rò   s       r?   rë   z&BodyPartReader._read_chunk_from_length£  sq   è ø€ ð �|‰|Ð'ÐSÐ)SÓSÐ'Ü˜˜tŸ|™|¨d×.>Ñ.>Ñ>Ó?ˆ
Ø—m‘m×(Ñ(¨Ó4×4ˆØ�=‰=×ÑÔ!ØˆDŒLØˆð 5ús   ‚ABÁA?Á(Bc           
   ƒ   óì  K  — || j                   k\  sJ d«       ‚| j                  d u }|r+d| j                  j                  |«      ƒ d {  –—† z   | _        d}t	        |«      | j                   k  rœ|| j                  j                  |«      ƒ d {  –—† z  }| xj
                  t        | j                  j                  «       «      z  c_        | j
                  dkD  rt        d«      ‚| j
                  rnt	        |«      | j                   k  rŒœt	        |«      |kD  r#| j                  j                  ||d  «       |d | }| j                  €J ‚| j                  |z   }d| j                  z   }|r|j                  |«      }n;|j                  |t        dt	        | j                  «      t	        |«      z
  «      «      }|dk\  r‹t        j                  «       5  t        j                  dt         ¬«       | j                  j                  ||d  «       d d d «       | j                  d | | _        |t	        | j                  «      | }|sd	| _        | j                  |rdndd  }|| _        |S 7 �Œ7 �ŒØ# 1 sw Y   Œ`xY w­w)
Nz<Chunk size must be greater or equal than boundary length + 2ré   rI   rV   zReading after EOFr   Úignore)ÚcategoryT)rÃ   rÐ   rÄ   rÚ   rY   rÑ   rË   r¯   rÊ   Úunread_datarÂ   rd   rê   rz   Úcatch_warningsÚfilterwarningsÚDeprecationWarningrÆ   )rž   ræ   Úfirst_chunkrò   Úwindowrn   ÚidxÚresults           r?   rì   z&BodyPartReader._read_chunk_from_stream­  sC  è ø€ ð �D×&Ñ&Ò&ð	JàIó	JØ&à×&Ñ&¨$Ð.ˆÙà&¨t¯}©}×/AÑ/AÀ$Ó/G×)GÑGˆDÔàˆô �%‹j˜4×-Ñ-Ò-Ø˜4Ÿ=™=×-Ñ-¨dÓ3×3Ñ3ˆEØ×Ò¤ T§]¡]×%9Ñ%9Ó%;Ó!<Ñ<ÕØ× Ñ  1Ò$Ü Ð!4Ó5Ð5Ø× Ò Øô �%‹j˜4×-Ñ-Ó-ô ˆu‹:˜ÒØ�M‰M×%Ñ% e¨D¨E lÔ3Ø˜%˜4�LˆEà×ÑÐ+Ð+Ð+Ø×!Ñ! EÑ)ˆØ˜Ÿ™Ñ&ˆÙØ—+‘+˜cÓ"‰Cà—+‘+˜c¤3 q¬#¨d×.>Ñ.>Ó*?Ä#ÀcÃ(Ñ*JÓ#KÓLˆCØ�!Š8ä×(Ñ(Ó*ñ 8Ü×'Ñ'¨Ô;MÕNØ—‘×)Ñ)¨&°°¨,Ô7÷8ð  $×/Ñ/°°Ð5ˆDÔØœ3˜t×/Ñ/Ó0°3Ð7ˆEÙØ#�”Ø×!Ñ!¡{¡!¸Ð";Ð<ˆØ ˆÔØˆðE *Hùð 4ù÷&8ð 8üsF   ‚AI4ÁI"Á	AI4ÂI%ÂA;I4Ä
CI4Ç:I(È	AI4É%I4É(I1É-I4c              ƒ   óh  K  — | j                   ry| j                  r| j                  j                  «       }n"| j                  j	                  «       ƒ d{  –—† }|j                  | j                  «      r[|j                  d«      }| j                  }| j                  dz   }||k(  s||k(  r#d| _         | j                  j                  |«       y|S | j                  j	                  «       ƒ d{  –—† }|j                  | j                  «      r|dd }| j                  j                  |«       |S 7 ŒÙ7 ŒC­w)z Reads body part by line by line.rI   Nré   ó   --Téþÿÿÿ)	rÆ   rÏ   ÚpopleftrÄ   rî   r�   rÂ   r�   r•   )rž   ÚlineÚsliner½   Úlast_boundaryÚ	next_lines         r?   rî   zBodyPartReader.readlineÚ  sý   è ø€ à�<Š<Øà�<Š<Ø—<‘<×'Ñ'Ó)‰DàŸ™×/Ñ/Ó1×1ˆDà�?‰?˜4Ÿ>™>Ô*ð —K‘K Ó(ˆEØ—~‘~ˆHØ ŸN™N¨UÑ2ˆMà˜Ò  E¨]Ò$:Ø#�”Ø—‘×#Ñ# DÔ)Øð ˆð #Ÿm™m×4Ñ4Ó6×6ˆIØ×#Ñ# D§N¡NÔ3Ø˜C˜R�y�Ø�L‰L×Ñ 	Ô*àˆð' 2øð 7ús&   ‚AD2ÁD.ÁBD2Ã,D0Ã-AD2Ä0D2c              ƒ   ó¤   K  — | j                   ry| j                   s1| j                  | j                  «      ƒ d{  –—†  | j                   sŒ0yy7 Œ­w)z0Like read(), but reads all the data to the void.N)rÆ   rà   rá   r¡   s    r?   r±   zBodyPartReader.release÷  s9   è ø€ à�<Š<ØØ—,’,Ø—/‘/ $§/¡/Ó2×2Ð2ð —,•,Ø2ús   ‚8AºA»AÁA)rˆ   rˆ   c             ƒ   ó�   K  — | j                  d¬«      ƒ d{  –—† }|xs | j                  d¬«      }|j                  |«      S 7 Œ+­w)z;Like read(), but assumes that body part contains text data.TrÛ   Nrr   ©Údefault)rÚ   Úget_charsetrÜ   ©rž   rˆ   rã   s      r?   rk   zBodyPartReader.textþ  sG   è ø€ à—Y‘Y d�YÓ+×+ˆð Ò@˜t×/Ñ/¸Ð/Ó@ˆØ�{‰{˜8Ó$Ð$ð	 ,ús   ‚A˜A™,Ac             ƒ   óò   K  — | j                  d¬«      ƒ d{  –—† }|sy|xs | j                  d¬«      }t        t        t        t
        f   t        j                  |j                  |«      «      «      S 7 Œ\­w)z<Like read(), but assumes that body parts contains JSON data.TrÛ   Nrr   r  )	rÚ   r  r   Údictrt   r
   ÚjsonÚloadsrÜ   r  s      r?   r  zBodyPartReader.json  sc   è ø€ à—Y‘Y d�YÓ+×+ˆÙØØÒ@˜t×/Ñ/¸Ð/Ó@ˆÜ”Dœœc˜‘N¤D§J¡J¨t¯{©{¸8Ó/DÓ$EÓFÐFð	 ,ús   ‚A7˜A5™AA7c             ƒ   ó
  K  — | j                  d¬«      ƒ d{  –—† }|sg S |�|}n| j                  d¬«      }	 |j                  «       j                  |«      }t        |d|¬«      S 7 ŒM# t        $ r t        d|z  «      ‚w xY w­w)zFLike read(), but assumes that body parts contain form urlencoded data.TrÛ   Nrr   r  z'data cannot be decoded with %s encoding)Úkeep_blank_valuesrˆ   )rÚ   r  r�   rÜ   r€   rÊ   r   )rž   rˆ   rã   Úreal_encodingrä   s        r?   ÚformzBodyPartReader.form  s›   è ø€ à—Y‘Y d�YÓ+×+ˆÙØˆIØÐØ$‰Mà ×,Ñ,°WÐ,Ó=ˆMð	XØŸ;™;›=×/Ñ/°Ó>ˆLô ØØ"Ø"ô
ð 	
ð ,ùô "ò 	XÜÐFÈÑVÓWÐWð	Xüs&   ‚B˜A&™B¹A( ÁBÁ(B Â Bc                 ó   — | j                   S )z<Returns True if the boundary was reached or False otherwise.©rÆ   r¡   s    r?   r¯   zBodyPartReader.at_eof"  ó   € à�|‰|ÐrI   rã   c                 óL   — t         | j                  v r| j                  |«      S |S )z>Apply Content-Transfer-Encoding decoding if header is present.)r   r¾   Ú_decode_content_transfer)rž   rã   s     r?   Ú _apply_content_transfer_decodingz/BodyPartReader._apply_content_transfer_decoding&  s$   € ä$¨¯©Ñ4Ø×0Ñ0°Ó6Ð6ØˆrI   c                 óD   — | j                    xr t        | j                  v S )z5Check if Content-Encoding decoding should be applied.)rÇ   r   r¾   r¡   s    r?   Ú_needs_content_decodingz&BodyPartReader._needs_content_decoding,  s"   € ð ×%Ñ%Ð%ÒJÔ*:¸d¿l¹lÐ*JÐJrI   c                 ój   — | j                  |«      }| j                  «       r| j                  |«      S |S )a  Decodes data synchronously.

        Decodes data according the specified Content-Encoding
        or Content-Transfer-Encoding headers value.

        Note: For large payloads, consider using decode_iter() instead
        to avoid blocking the event loop during decompression.
        )r#  r%  Ú_decode_content)rž   rã   Údecodeds      r?   rÜ   zBodyPartReader.decode1  s6   € ð ×7Ñ7¸Ó=ˆØ×'Ñ'Ô)Ø×'Ñ'¨Ó0Ð0ØˆrI   c                ó    K  — | j                  |«      }| j                  «       r | j                  |«      2 3 d{  –—† }|­–— Œ|­–— y7 Œ6 y­w)a$  Async generator that yields decoded data chunks.

        Decodes data according the specified Content-Encoding
        or Content-Transfer-Encoding headers value.

        This method offloads decompression to an executor for large payloads
        to avoid blocking the event loop.
        N)r#  r%  Ú_decode_content_async)rž   rã   r(  rå   s       r?   râ   zBodyPartReader.decode_iter?  sQ   è ø€ ð ×7Ñ7¸Ó=ˆØ×'Ñ'Ô)Ø×5Ñ5°gÓ>÷ ð �aØ”àŒMðøÑ>ùs%   ‚3AµA¹A
ºA½AÁ
AÁAc                 óà   — | j                   j                  t        d«      j                  «       }|dk(  r|S |dv r(t	        |d¬«      j                  || j                  ¬«      S t        d|› �«      ‚)Nri   Úidentity>   ÚgzipÚdeflateT©rˆ   Úsuppress_deflate_header©Ú
max_lengthúunknown content encoding: )r¾   rÈ   r   r}   r   Údecompress_syncrÓ   ÚRuntimeError©rž   rã   rˆ   s      r?   r'  zBodyPartReader._decode_contentO  sw   € Ø—<‘<×#Ñ#Ô$4°bÓ9×?Ñ?ÓAˆØ�zÒ!ØˆKØÐ*Ñ*Ü#Ø!Ø(,ô÷ ‰o˜d¨t×/HÑ/HˆoÓIðJô
 Ð7¸°zÐBÓCÐCrI   c                ó˜  K  — | j                   j                  t        d«      j                  «       }|dk(  r|­–— y |dv rxt	        |d¬«      }|j                  || j                  ¬«      ƒ d {  –—† ­–— |j                  r6|j                  d| j                  ¬«      ƒ d {  –—† ­–— |j                  rŒ5y y t        d|› �«      ‚7 ŒX7 Œ&­w)	Nri   r,  >   r-  r.  Tr/  r1  rI   r3  )	r¾   rÈ   r   r}   r   Ú
decompressrÓ   Údata_availabler5  )rž   rã   rˆ   rå   s       r?   r*  z$BodyPartReader._decode_content_async[  s»   è ø€ ð —<‘<×#Ñ#Ô$4°bÓ9×?Ñ?ÓAˆØ�zÒ!ØŒJØÐ,Ñ,Ü Ø!Ø(,ôˆAð Ÿ™ T°d×6OÑ6O˜ÓP×PÓPØ×"Ò"ØŸL™L¨¸×9RÑ9R˜LÓS×SÓSð ×"Õ"ô Ð!;¸H¸:ÐFÓGÐGð	 QøàSús*   ‚A+C
Á-CÁ.3C
Â!CÂ"C
Â6C
ÃC
c                 óî   — | j                   j                  t        d«      j                  «       }|dk(  rt	        j
                  |«      S |dk(  rt        j                  |«      S |dv r|S t        d|› �«      ‚)Nri   rè   úquoted-printable)ÚbinaryÚ8bitÚ7bitú#unknown content transfer encoding: )	r¾   rÈ   r   r}   rè   Ú	b64decodeÚbinasciiÚa2b_qpr5  r6  s      r?   r"  z'BodyPartReader._decode_content_transferl  st   € Ø—<‘<×#Ñ#Ô$=¸rÓB×HÑHÓJˆà�xÒÜ×#Ñ# DÓ)Ð)ØÐ+Ò+Ü—?‘? 4Ó(Ð(ØÐ3Ñ3ØˆKäÐ!DÀXÀJÐOÓPÐPrI   r  c                 ó¬   — | j                   j                  t        d«      }t        |«      }|j                  j                  d| j
                  xs |«      S )z>Returns charset parameter from Content-Type header or default.ri   Úcharset)r¾   rÈ   r   r   Ú
parametersrÅ   )rž   r  ÚctypeÚmimetypes       r?   r  zBodyPartReader.get_charsetx  sF   € à—‘× Ñ ¤¨rÓ2ˆÜ! %Ó(ˆØ×"Ñ"×&Ñ& y°$×2GÑ2GÒ2RÈ7ÓSÐSrI   c                 óp   — t        | j                  j                  t        «      «      \  }}t	        |d«      S )z|Returns name specified in Content-Disposition header.

        If the header is missing or malformed, returns None.
        r�   ©r8   r¾   rÈ   r   r9   ©rž   r‰   r„   s      r?   r�   zBodyPartReader.name~  s/   € ô .¨d¯l©l×.>Ñ.>Ô?RÓ.SÓT‰	ˆˆ6Ü+¨F°FÓ;Ð;rI   c                 óp   — t        | j                  j                  t        «      «      \  }}t	        |d«      S )zReturns filename specified in Content-Disposition header.

        Returns None if the header is missing or malformed.
        ÚfilenamerI  rJ  s      r?   rL  zBodyPartReader.filename‡  s/   € ô .¨d¯l©l×.>Ñ.>Ô?RÓ.SÓT‰	ˆˆ6Ü+¨F°JÓ?Ð?rI   r´   )1rE   rF   rG   rµ   rá   r   ÚsysÚmaxsizerÊ   Úbytesr+   rt   rË   ÚtypeÚ	ExceptionrŸ   r.   r¢   rª   r¦   rQ   rÚ   rà   rí   rë   rì   rî   r±   rk   r  r
   r  ÚlistÚtupler  r¯   r3   r#  r%  rÜ   r   râ   r'  r*  r"  r  r    r�   rL  rH   rI   r?   r/   r/     s·  „ Ù0à€Jð Ø&*Ø#5Ø"Ÿ{™{Ø.8ò#6àð#6ð )ð#6ð ð	#6ð ð#6ð ˜t™ð#6ð !ð#6ð ð#6ð ! ™Oð#6ð 
ó#6ðJ˜ð  ó ð ó ð˜E D™Ló ð ,1ò  Dð °Uó ð. ,6ñ  Sð ¸%ó ð>¨ð °cð ¸eó ð:°#ð ¸%ó ð+°#ð +¸%ó +ðZ ó ó:3ð 48ò % c¨D¡jð %¸Có %ð 48ò G c¨D¡jð G¸DÀÀcÀ¹NÈTÑ<Qó Gð 48ò 
 c¨D¡jð 
¸DÀÀsÈCÀxÁÑ<Qó 
ð(˜ó ð°Wð ÀÈ5Áó ðK¨ó Kð
˜7ð  w°¡ó ð gð °-ÀÈ%ÁÑ2Pó ð 
D Gð 
D°¸%±ó 
DðHØðHà	�w ‘Ñ	'óHð"
Q¨Wð 
Q¸À5¹ó 
QðT 3ð T¨3ó Tð ð<�c˜D‘jò <ó ð<ð ð@˜# ™*ò @ó ñ@rI   )Úorderc                   óx   ‡ — e Zd ZU eed<   dedededdfˆ fd„Zdded	edefd
„Zdded	ede	fd„Z
deddfd„Zˆ xZS )ÚBodyPartReaderPayloadrŒ   r‡   ÚargsÚkwargsrM   Nc                 óÆ   •— t        ‰| �  |g|¢­i |¤Ž i }|j                  �|j                  |d<   |j                  �|j                  |d<   |r | j                  di |¤Ž y y )Nr�   rL  )Ú
attachmentT)ÚsuperrŸ   r�   rL  Úset_content_disposition)rž   r‡   rW  rX  r„   Ú	__class__s        €r?   rŸ   zBodyPartReaderPayload.__init__–  si   ø€ Ü‰Ñ˜Ð0 Ò0¨Ò0à!#ˆØ�:‰:Ð!Ø"ŸZ™ZˆF�6‰NØ�>‰>Ð%Ø!&§¡ˆF�:ÑáØ(ˆD×(Ñ(ÑF¸vÓFð rI   rˆ   Úerrorsc                 ó   — t        d«      ‚)NzUnable to decode.©Ú	TypeError©rž   rˆ   r^  s      r?   rÜ   zBodyPartReaderPayload.decode¢  s   € ÜÐ+Ó,Ð,rI   c              ƒ   ó    K  — t        d«      ‚­w)aR  Raises TypeError as body parts should be consumed via write().

        This is intentional: BodyPartReader payloads are designed for streaming
        large data (potentially gigabytes) and must be consumed only once via
        the write() method to avoid memory exhaustion. They cannot be buffered
        in memory for reuse.
        z:Unable to read body part as bytes. Use write() to consume.r`  rb  s      r?   Úas_byteszBodyPartReaderPayload.as_bytes¥  s   è ø€ ô ÐTÓUÐUùs   ‚Úwriterc              ƒ   ó0  K  — | j                   }d| _        |j                  t        ¬«      ƒ d {  –—† x}r5|j	                  |«      2 3 d {  –—† }|j                  |«      ƒ d {  –—†  Œ#y y 7 Œ<7 Œ"7 Œ6 |j                  t        ¬«      ƒ d {  –—†7  x}rŒ_Œ,­w)NT)ræ   )rŒ   Ú	_consumedrà   r   râ   Úwrite)rž   re  Úfieldrò   rå   s        r?   rh  zBodyPartReaderPayload.write¯  sœ   è ø€ Ø—‘ˆð ˆŒØ"×-Ñ-Ô3EÐ-ÓF×FÐFˆeÐFØ ×,Ñ,¨UÓ3÷ &ð &�aØ—l‘l 1“o×%Ñ%øð GÐFøð&øØ%øð 4ð #×-Ñ-Ô3EÐ-ÓF×FÐFÐFˆeÑFúsQ   ‚-B¯A,°BÁA2ÁA.ÁA2ÁBÁ$A0Á%BÁ.A2Á0BÁ2BÂBÂB©rr   rs   )rE   rF   rG   r/   Ú__annotations__r
   rŸ   rt   rÜ   rO  rd  r   rh  Ú__classcell__©r]  s   @r?   rV  rV  ‘  s|   ø… àÓð
G˜nð 
G°Sð 
GÀCð 
GÈDõ 
Gñ-˜sð -°cð -Èó -ñV sð V¸cð VÐQVó Vð&Ð"6ð &¸4÷ &rI   rV  c                   óf  — e Zd ZU dZeZdZed    dz  ed<   e	Z
ej                  ddedœdeeef   ded	ed
ededee   ddfd„Zdedefd„Zded e	f   dz  fd„Zedddefd„«       Zdefd„Zded e	f   dz  fd„Zd!d„Zded e	f   fd„Zddded e	f   fd„Zdefd„Z de!fd„Z"d!d„Z#d!d„Z$d"d„Z%d!d „Z&y)#r4   zMultipart body reader.NÚmultipart_reader_clsiþ  é€   ©r»   Úmax_field_sizeÚmax_headersr¼   r¾   r®   r»   rr  rs  r¼   rM   c                ó²  — t        |t           «      | _        | j                  j                  dk(  sJ d«       ‚d| j                  j                  vrt        d|t           z  «      ‚|| _        d| j                  «       z   j                  «       | _	        || _
        || _        d | _        d | _        || _        || _        || _        d| _        d| _        g | _        y )NÚ	multipartz!multipart/* content type expectedr½   z$boundary missed for Content-Type: %sú--FT)r   r   Ú	_mimetyperP  rE  rÊ   r¾   Ú_get_boundaryÚencoderÂ   rÔ   rÄ   rÅ   Ú
_last_partÚ_max_field_sizeÚ_max_headersrÕ   rÆ   Ú_at_bofrÏ   )rž   r¾   r®   r»   rr  rs  r¼   s          r?   rŸ   zMultipartReader.__init__Å  sÑ   € ô (¨´Ñ(=Ó>ˆŒØ�~‰~×"Ñ" kÒ1ÐVÐ3VÓVÐ1Ø˜TŸ^™^×6Ñ6Ñ6ÜØ6¸ÄÑ9NÑNóð ð ˆŒØ ×!3Ñ!3Ó!5Ñ5×=Ñ=Ó?ˆŒØ /ˆÔØˆŒØ,0ˆÔØCGˆŒØ-ˆÔØ'ˆÔØ#5ˆÔ ØˆŒØˆŒØ$&ˆ�rI   rž   c                 ó   — | S r;   rH   r¡   s    r?   r¢   zMultipartReader.__aiter__ã  r£   rI   c              ƒ   óR   K  — | j                  «       ƒ d {  –—† }|€t        ‚|S 7 Œ­wr;   r¥   r¨   s     r?   rª   zMultipartReader.__anext__æ  r«   r¬   ÚresponserB   c                 ó`   — | j                  | | |j                  |j                  «      «      }|S )z‚Constructs reader instance from HTTP response.

        :param response: :class:`~aiohttp.client.ClientResponse` instance
        )Úresponse_wrapper_clsr¾   r®   )Úclsr€  Úobjs      r?   Úfrom_responsezMultipartReader.from_responseî  s3   € ð ×&Ñ&Ø‘c˜(×*Ñ*¨H×,<Ñ,<Ó=ó
ˆð ˆ
rI   c                 ó   — | j                   S )z@Returns True if the final boundary was reached, false otherwise.r  r¡   s    r?   r¯   zMultipartReader.at_eofü  r   rI   c              ƒ   ó.  K  — | j                   ry| j                  «       ƒ d{  –—†  | j                  r | j                  «       ƒ d{  –—†  d| _        n| j	                  «       ƒ d{  –—†  | j                   ry| j                  «       ƒ d{  –—† }| j                  €Õ| j                  j                  dk(  r¼t        |t        «      r¬t        |j                  j                  t        «      «      \  }}|j                  d«      dk(  rm|j                  d«      ƒ d{  –—† }t!        |«      dkD  rt#        d«      ‚|j%                  «       j'                  «       | _        | j                  «       ƒ d{  –—† }|| _        | j                  S 7 �Œb7 �ŒA7 �Œ$7 �Œ7 Œw7 Œ%­w)	z#Emits the next multipart body part.NFrÁ   r�   Ú	_charset_é    é   zInvalid default charset)rÆ   Ú_maybe_release_last_partr}  Ú_read_until_first_boundaryÚ_read_boundaryÚfetch_next_partrz  rw  r¸   Ú
isinstancer/   r8   r¾   rÈ   r   rà   rY   r5  ry   rÜ   rÅ   )rž   r©   r‰   r„   rD  s        r?   r¦   zMultipartReader.next   sM  è ø€ ð
 �<Š<ØØ×+Ñ+Ó-×-Ð-Ø�<Š<Ø×1Ñ1Ó3×3Ð3Ø ˆD�Là×%Ñ%Ó'×'Ð'Ø�<Š<Øà×)Ñ)Ó+×+ˆð �O‰OÐ#Ø—‘×&Ñ&¨+Ò5Ü˜4¤Ô0ä1°$·,±,×2BÑ2BÔCVÓ2WÓX‰IˆAˆvØ�z‰z˜&Ó! [Ò0ð !%§¡°Ó 3×3�Ü�w“< "Ò$Ü&Ð'@ÓAÐAØ(/¯©«×(>Ñ(>Ó(@�Ô%Ø!×1Ñ1Ó3×3�ØˆŒØ�‰Ðð5 	.ùà3ùð (ùð ,ùð 4øð 4úsk   ‚!F£F¤#FÁFÁFÁ'FÁ($FÂFÂBFÄFÄAFÅ-FÅ.FÆFÆFÆFÆFÆFc              ƒ   ó®   K  — | j                   sA| j                  «       ƒ d{  –—† }|€y|j                  «       ƒ d{  –—†  | j                   sŒ@yy7 Œ.7 Œ­w)z=Reads all the body parts to the void till the final boundary.N)rÆ   r¦   r±   r²   s     r?   r±   zMultipartReader.release#  sD   è ø€ à—,’,ØŸ™›×$ˆDØˆ|ØØ—,‘,“.× Ð ð	 —,•,Ø$øð !ús%   ‚ A¢A£A½A¾AÁAÁAc              ƒ   ó`   K  — | j                  «       ƒ d{  –—† }| j                  |«      S 7 Œ­w)z"Returns the next body part reader.N)Ú_read_headersÚ_get_part_reader)rž   r¾   s     r?   rŽ  zMultipartReader.fetch_next_part+  s/   è ø€ ð ×*Ñ*Ó,×,ˆØ×$Ñ$ WÓ-Ð-ð -ús   ‚.–,—.r¿   c           	      óZ  — |j                  t        d«      }t        |«      }|j                  dk(  rž| j                  €I t        | «      || j
                  | j                  | j                  | j                  | j                  ¬«      S | j	                  || j
                  | j                  | j                  | j                  | j                  ¬«      S | j                  | j                  || j
                  | j                  j                  | j                  | j                  | j                  ¬«      S )zšDispatches the response by the `Content-Type` header.

        Returns a suitable reader instance.

        :param dict headers: Response headers
        ri   ru  rq  )r¸   r¹   r»   r¼   )rÈ   r   r   rP  ro  rÄ   rÔ   r{  r|  rÕ   Úpart_reader_clsrÂ   rw  r¸   rÅ   )rž   r¾   rF  rG  s       r?   r“  z MultipartReader._get_part_reader2  s  € ð —‘œL¨"Ó-ˆÜ! %Ó(ˆà�=‰=˜KÒ'Ø×(Ñ(Ð0Ø!”t˜D“zØØ—M‘MØ$(×$9Ñ$9Ø#'×#7Ñ#7Ø $× 1Ñ 1Ø'+×'?Ñ'?ôð ð ×,Ñ,ØØ—‘Ø $× 5Ñ 5Ø#×3Ñ3Ø ×-Ñ-Ø#'×#;Ñ#;ð -ó ð ð ×'Ñ'Ø—‘ØØ—‘ØŸ™×.Ñ.Ø $× 5Ñ 5Ø $× 5Ñ 5Ø#'×#;Ñ#;ð (ó ð rI   c                 óp   — | j                   j                  d   }t        |«      dkD  rt        d|z  «      ‚|S )Nr½   éF   z&boundary %r is too long (70 chars max))rw  rE  rY   rÊ   )rž   r½   s     r?   rx  zMultipartReader._get_boundary\  s8   € Ø—>‘>×,Ñ,¨ZÑ8ˆÜˆx‹=˜2ÒÜÐEÈÑPÓQÐQàˆrI   c              ƒ   óž   K  — | j                   r| j                   j                  «       S | j                  j                  «       ƒ d {  –—† S 7 Œ­wr;   )rÏ   r|   rÄ   rî   r¡   s    r?   Ú	_readlinezMultipartReader._readlinec  s9   è ø€ Ø�<Š<Ø—<‘<×#Ñ#Ó%Ð%Ø—]‘]×+Ñ+Ó-×-Ð-Ð-ús   ‚AAÁAÁAc              ƒ   óð   K  — 	 | j                  «       ƒ d {  –—† }|dk(  rt        d| j                  z  «      ‚|j                  «       }|| j                  k(  ry || j                  dz   k(  rd| _        y Œp7 Œ\­w)NTrI   z#Could not find starting boundary %rr	  )r™  rÊ   rÂ   r�   rÆ   ©rž   rò   s     r?   rŒ  z*MultipartReader._read_until_first_boundaryh  sw   è ø€ ØØŸ.™.Ó*×*ˆEØ˜Š|Ü Ø9¸T¿^¹^ÑLóð ð —L‘L“NˆEØ˜Ÿ™Ò&ØØ˜$Ÿ.™.¨5Ñ0Ò0Ø#�”Øð Ø*ús   ‚A6—A4˜AA6c              ƒ   óÎ  K  — | j                  «       ƒ d {  –—† j                  «       }|| j                  k(  ry || j                  dz   k(  ryd| _        | j                  «       ƒ d {  –—† }| j                  «       ƒ d {  –—† }|d d dk(  r| j                  j                  |«       y | j                  j                  ||g«       y t        d|›d| j                  ›�«      ‚7 ŒÈ7 Œ{7 Œe­w)Nr	  TrV   zInvalid boundary z, expected )r™  r�   rÂ   rÆ   rÏ   r•   rß   rÊ   )rž   rò   Úepiloguer  s       r?   r�  zMultipartReader._read_boundaryv  sË   è ø€ Ø—~‘~Ó'×'×/Ñ/Ó1ˆØ�D—N‘NÒ"ØØ�d—n‘n uÑ,Ò,ØˆDŒLØ!Ÿ^™^Ó-×-ˆHØ"Ÿn™nÓ.×.ˆIð ˜˜!ˆ} Ò%Ø—‘×#Ñ# IÕ.ð
 —‘×#Ñ# Y°Ð$9Õ:äÐ0°°	¸ÀTÇ^Á^ÐDVÐWÓXÐXð) (øð
 .øØ.ús5   ‚C%–C—AC%Á%C!Á&C%Á=C#Á>A"C%Ã!C%Ã#C%c              ƒ   óZ  K  — g }	 | j                   j                  | j                  ¬«      ƒ d {  –—† }|j                  d«      }|j	                  |«       |sn$t        |«      | j                  kD  rt        d«      ‚Œwt        | j                  ¬«      }|j                  |«      \  }}|S 7 Œy­w)N)Úmax_line_lengthré   zToo many headers received)rr  )
rÄ   rî   r{  r�   r•   rY   r|  r"   r!   Úparse_headers)rž   Úlinesrò   Úparserr¾   Úraw_headerss         r?   r’  zMultipartReader._read_headers�  s£   è ø€ ØˆØØŸ-™-×0Ñ0À×AUÑAUÐ0ÓV×VˆEØ—L‘L Ó)ˆEØ�L‰L˜ÔÙØÜ�5‹z˜D×-Ñ-Ò-Ü$Ð%@ÓAÐAð ô ¨d×.BÑ.BÔCˆØ%×3Ñ3°EÓ:Ñˆ�Øˆð Wús   ‚-B+¯B)°A:B+c              ƒ   ó  K  — | j                   �s| j                   j                  «       s"| j                   j                  «       ƒ d{  –—†  | j                  j	                  | j                   j                  «       d| _         yy7 Œ<­w)z8Ensures that the last read body part is read completely.N)rz  r¯   r±   rÏ   rß   r¡   s    r?   r‹  z(MultipartReader._maybe_release_last_part›  sa   è ø€ à�?‰?Ð&Ø—?‘?×)Ñ)Ô+Ø—o‘o×-Ñ-Ó/×/Ð/Ø�L‰L×Ñ §¡× 7Ñ 7Ô8Ø"ˆD�Oð	 'à/ús   ‚ABÁBÁ=Br´   )rM   r¿   )'rE   rF   rG   rµ   rš   r‚  ro  rP  rk  r/   r•  rM  rN  rÊ   r   rt   r+   rË   rQ  rŸ   r.   r¢   r   rª   Úclassmethodr…  rQ   r¯   r¦   r±   rŽ  r“  rx  rO  r™  rŒ  r�  r’  r‹  rH   rI   r?   r4   r4   º  s€  … Ù ð 4Ðð <@Ð˜$Ð0Ñ1°DÑ8Ó?à$€Oð  #Ÿ{™{Ø"ØØ.8ò'à˜˜c˜Ñ"ð'ð ð'ð
 ð'ð ð'ð ð'ð ! ™Oð'ð 
ó'ð<˜ð  ó ðà	Ð  .Ð0Ñ	1°DÑ	8óð ðà"ðð 
"òó ðð˜ó ð!à	Ð  .Ð0Ñ	1°DÑ	8ó!óF!ð.à	Ð  .Ð0Ñ	1ó.ð(à(ð(ð 
Ð  .Ð0Ñ	1ó(ðT˜só ð. ó .ó
óYó.ô#rI   r4   c                   óB  ‡ — e Zd ZU dZded<   dZd&dededz  ddfˆ fd„Zd'd	„Zd
e	e
   dz  de
dz  dedz  ddfd„Zedefd„«       Zdee   fd„Zdefd„Zdefd„Z ej.                  d«      Z ej.                  d«      Zedefd„«       Zedefd„«       Zd(dedeeef   dz  defd„Zdedefd„Z 	 d(dedeeef   dz  defd„Z!	 d(de"e#eef      eeef   z  deeef   dz  defd„Z$ededz  fd„«       Z%d)dededefd „Z&d)dedede'fd!„Z(	 d*d"e)d#eddfd$„Z*d+d%„Z+ˆ xZ,S ),r5   zMultipart body writer.NrŒ   Tr¸   r½   rM   c                 ó  •— |�|nt        j                  «       j                  }	 |j                  d«      | _        d|› d| j                  › �}t        ‰| �%  d |¬«       g | _
        |dk(  | _        y # t
        $ r t        d«      d ‚w xY w)NÚasciiz(boundary should contain ASCII only charsz
multipart/z; boundary=)Úcontent_typerÁ   )ÚuuidÚuuid4Úhexry  rÂ   ÚUnicodeEncodeErrorrÊ   Ú_boundary_valuer[  rŸ   Ú_partsrÇ   )rž   r¸   r½   rF  r]  s       €r?   rŸ   zMultipartWriter.__init__®  s“   ø€ Ø'Ð3‘8¼¿¹»×9IÑ9Iˆð	SØ%Ÿ_™_¨WÓ5ˆDŒNð ˜W˜I [°×1EÑ1EÐ0FÐGˆä‰Ñ˜¨EÐÔ2à#%ˆŒØ$¨Ñ3ˆÕøô "ò 	SÜÐGÓHÈdÐRð	Sús   ¥A0 Á0Bc                 ó   — | S r;   rH   r¡   s    r?   Ú	__enter__zMultipartWriter.__enter__À  r£   rI   Úexc_typeÚexc_valÚexc_tbc                  ó   — y r;   rH   )rž   r²  r³  r´  s       r?   Ú__exit__zMultipartWriter.__exit__Ã  s   € ð 	rI   c                 óV   — | j                   xs t        d„ | j                  D «       «      S )zAWhether the writer or any of its parts can no longer be replayed.c              3   ó<   K  — | ]  \  }}}|j                   –— Œ y ­wr;   )Úconsumed)r=   r©   r‰   s      r?   r@   z+MultipartWriter.consumed.<locals>.<genexpr>Î  s   è ø€ Ò$Q±z°t¸QÀ T§]¥]Ñ$Qùs   ‚)rg  Úanyr¯  r¡   s    r?   r¹  zMultipartWriter.consumedË  s"   € ð �~‰~ÒQ¤Ñ$QÀTÇ[Á[Ô$QÓ!QÐQrI   c                 ó,   — t        | j                  «      S r;   )Úiterr¯  r¡   s    r?   Ú__iter__zMultipartWriter.__iter__Ð  s   € Ü�D—K‘KÓ Ð rI   c                 ó,   — t        | j                  «      S r;   )rY   r¯  r¡   s    r?   Ú__len__zMultipartWriter.__len__Ó  s   € Ü�4—;‘;ÓÐrI   c                  ó   — y)NTrH   r¡   s    r?   Ú__bool__zMultipartWriter.__bool__Ö  s   € ØrI   s   \A[!#$%&'*+\-.^_`|~\w]+\Zs   [\x00-\x08\x0A-\x1F\x7F]c                 óH  — | j                   }t        j                  | j                  |«      r|j	                  d«      S t        j
                  | j                  |«      rt        d«      ‚|j                  dd«      }|j                  dd«      }d|j	                  d«      z   dz   S )zzWrap boundary parameter value in quotes, if necessary.

        Reads self.boundary and returns a unicode string.
        r¨  z*boundary value contains invalid charactersó   \s   \\ó   "s   \"rX   )	rÂ   rm   ÚmatchÚ_valid_tchar_regexrÜ   ÚsearchÚ_invalid_qdtext_char_regexrÊ   Úreplace)rž   r‡   Úquoted_value_contents      r?   r®  zMultipartWriter._boundary_valueÜ  s’   € ð& —‘ˆÜ�8‰8�D×+Ñ+¨UÔ3Ø—<‘< Ó(Ð(ä�9‰9�T×4Ñ4°eÔ<ÜÐIÓJÐJð  %Ÿ}™}¨U°GÓ<ÐØ3×;Ñ;¸DÀ&ÓIÐàÐ)×0Ñ0°Ó9Ñ9¸CÑ?Ð?rI   c                 ó8   — | j                   j                  d«      S )Nr¨  )rÂ   rÜ   r¡   s    r?   r½   zMultipartWriter.boundaryü  s   € à�~‰~×$Ñ$ WÓ-Ð-rI   r„  r¾   c                 ó  — |€
t        «       }t        |t        «      r,|j                  j	                  |«       | j                  |«      S 	 t        ||¬«      }| j                  |«      S # t        $ r t        d|z  «      ‚w xY w)N©r¾   zCannot create payload from %r)	r   r�  r'   r¾   ÚupdateÚappend_payloadr)   r%   ra  )rž   r„  r¾   Úpayloads       r?   r•   zMultipartWriter.append   sƒ   € Øˆ?Ü!“mˆGä�cœ7Ô#Ø�K‰K×Ñ˜wÔ'Ø×&Ñ& sÓ+Ð+ð4Ü% c°7Ô;�ð ×*Ñ*¨7Ó3Ð3øô ò GÜÐ ?À#Ñ EÓFÐFðGús   Á
A( Á(B rÐ  c                 ó¶  — d}d}| j                   rlt        t        t        h|j                  j                  «       z  rJ ‚t        |j                  vrêdt        | j                  «      › �}|j                  d|¬«       n¾|j                  j                  t        d«      j                  «       }|r|dvrt        d|› �«      ‚|dk(  rd}|j                  j                  t        d«      j                  «       }|d	vrt        d
|› �«      ‚|dk(  rd}|j                  }|� |s|st        |«      |j                  t        <   | j                  j                  |||f«       |S )z)Adds a new body part to multipart writer.Nzsection-rÁ   )r�   ri   )r.  r-  r,  r3  r,  )ri   rè   r;  r<  r?  r<  )rÇ   r   r   r   r¾   Úkeysr   rY   r¯  r\  rÈ   r}   r5  ræ   rt   r•   )rž   rÐ  rˆ   Úte_encodingr�   ræ   s         r?   rÏ  zMultipartWriter.append_payload  sU  € à#ˆØ"&ˆØ×Òô &¤~Ô7PÐQØ—/‘/×&Ñ&Ó(ò)ðð)ô #¨'¯/©/Ñ9Ø!¤# d§k¡kÓ"2Ð!3Ð4�Ø×/Ñ/°À$Ð/ÕGð —‘×*Ñ*Ô+;¸RÓ@×FÑFÓHˆHÙ˜HÐ,KÑKÜ"Ð%?À¸zÐ#JÓKÐKØ˜:Ò%Ø�ð "Ÿ/™/×-Ñ-Ô.GÈÓL×RÑRÓTˆKØÐ"NÑNÜ"Ð%HÈÈÐ#VÓWÐWØ˜hÒ&Ø"�ð —<‘<ˆDØÐ©±[Ü25°d³)�—‘¤Ñ/à�‰×Ñ˜G X¨{Ð;Ô<ØˆrI   c                 óR   — |€
t        «       }| j                  t        ||¬«      «      S )zHelper to append JSON part.rÍ  )r   rÏ  r$   )rž   r„  r¾   s      r?   Úappend_jsonzMultipartWriter.append_json5  s(   € ð ˆ?Ü!“mˆGà×"Ñ"¤;¨s¸GÔ#DÓEÐErI   c                 óð   — t        |t        t        f«      sJ ‚|€
t        «       }t        |t        «      rt	        |j                  «       «      }t        |d¬«      }| j                  t        ||d¬«      «      S )z&Helper to append form urlencoded part.T)Údoseqz!application/x-www-form-urlencoded)r¾   r©  )	r�  r   r   r   rR  r“   r   rÏ  r(   )rž   r„  r¾   rã   s       r?   Úappend_formzMultipartWriter.append_form>  sn   € ô ˜#¤¬'Ð2Ô3Ð3Ð3àˆ?Ü!“mˆGä�cœ7Ô#Ü�s—y‘y“{Ó#ˆCÜ˜ DÔ)ˆà×"Ñ"ÜØ˜gÐ4Wôó
ð 	
rI   c                 ó  — d}| j                   D ]]  \  }}}|j                  }|s|s|€ y|t        dt        | j                  «      z   dz   |z   t        |j
                  «      z   dz   «      z  }Œ_ |dt        | j                  «      z   dz   z  }|S )zSize of the payload.r   NrV   rô   )r¯  ræ   rË   rY   rÂ   Ú_binary_headers)rž   Útotalr©   rˆ   rÓ  Ú	part_sizes         r?   ræ   zMultipartWriter.sizeS  s³   € ð ˆØ+/¯;©;ò 	Ñ'ˆD�(˜KØŸ	™	ˆIÙ™;¨)Ð*;Ùà”SØÜ�d—n‘nÓ%ñ&àñð ñô �d×*Ñ*Ó+ñ	,ð
 ñóñ ‰Eð	ð 	�”S˜Ÿ™Ó(Ñ(¨1Ñ,Ñ,ˆØˆrI   rˆ   r^  c                 óT   ‡ ‡‡— dj                  ˆˆˆ fd„‰ j                  D «       «      S )zâReturn string representation of the multipart data.

        WARNING: This method may do blocking I/O if parts contain file payloads.
        It should not be called in the event loop. Use as_bytes().decode() instead.
        ri   c              3   ó¦   •K  — | ]H  \  }}}d ‰j                   z   dz   |j                  j                  ‰‰«      z   |j                  «       z   –— ŒJ y­w)rv  z
N)r½   rÚ  rÜ   )r=   r©   Ú_eÚ_terˆ   r^  rž   s       €€€r?   r@   z)MultipartWriter.decode.<locals>.<genexpr>n  sb   øè ø€ ò 
ñ ��b˜#ð Ø�m‰mñàñð ×"Ñ"×)Ñ)¨(°FÓ;ñ<ð �k‰k‹mõ	ñ
ùs   ƒAA)ru   r¯  rb  s   ```r?   rÜ   zMultipartWriter.decodeh  s)   ú€ ð �w‰wõ 
ð "&§¡ô
ó 
ð 	
rI   c              ƒ   ó�  K  — g }| j                   D ]~  \  }}}|j                  d| j                  z   dz   «       |j                  |j                  «       |j	                  ||«      ƒ d{  –—† }|j                  |«       |j                  d«       Œ€ |j                  d| j                  z   dz   «       dj                  |«      S 7 ŒZ­w)z‰Return bytes representation of the multipart data.

        This method is async-safe and calls as_bytes on underlying payloads.
        r	  ré   Nó   --
rI   )r¯  r•   rÂ   rÚ  rd  ru   )rž   rˆ   r^  rƒ   r©   rß  rà  Ú
part_bytess           r?   rd  zMultipartWriter.as_bytesw  s´   è ø€ ð
  ˆð "Ÿ[™[ò 	"‰MˆD�"�cà�L‰L˜ §¡Ñ/°'Ñ9Ô:ð �L‰L˜×-Ñ-Ô.ð  $Ÿ}™}¨X°vÓ>×>ˆJØ�L‰L˜Ô$ð �L‰L˜Õ!ð	"ð 	�‰�U˜TŸ^™^Ñ+¨iÑ7Ô8à�x‰x˜‹Ðð ?ús   ‚A'CÁ)CÁ*ACre  Úclose_boundaryc              ƒ   óæ  K  — | j                   D �]#  \  }}}| j                  r+t        |j                  v sJ ‚d|j                  t           v sJ ‚|j	                  d| j
                  z   dz   «      ƒ d{  –—†  |j	                  |j                  «      ƒ d{  –—†  |s|rct        |«      }|r|j                  |«       |r|j                  |«       |j	                  |«      ƒ d{  –—†  |j                  «       ƒ d{  –—†  n|j	                  |«      ƒ d{  –—†  |j	                  d«      ƒ d{  –—†  �Œ& |r*|j	                  d| j
                  z   dz   «      ƒ d{  –—†  yy7 Œð7 ŒÏ7 Œƒ7 Œm7 ŒU7 Œ>7 Œ­w)zWrite body.zname=r	  ré   Nrâ  )r¯  rÇ   r   r¾   rh  rÂ   rÚ  ÚMultipartPayloadWriterÚenable_compressionÚenable_encodingÚ	write_eof)rž   re  rä  r©   rˆ   rÓ  Úws          r?   rh  zMultipartWriter.write’  sO  è ø€ ð ,0¯;©;ó 	(Ñ'ˆD�(˜KØ×!Ò!ä*¨d¯l©lÑ:Ð:Ð:Ø $§,¡,Ô/BÑ"CÑCÐCÐCà—,‘,˜u t§~¡~Ñ5¸Ñ?Ó@×@Ð@Ø—,‘,˜t×3Ñ3Ó4×4Ð4á™;Ü*¨6Ó2�ÙØ×(Ñ(¨Ô2ÙØ×%Ñ% kÔ2Ø—j‘j “m×#Ð#Ø—k‘k“m×#Ñ#à—j‘j Ó(×(Ð(à—,‘,˜wÓ'×'Ò'ð)	(ñ, Ø—,‘,˜u t§~¡~Ñ5¸	ÑAÓB×BÑBð ð! AøØ4øð $øØ#øà(øà'øð Cús   ‚A0E1Á2E#Á3"E1ÂE%ÂAE1Ã#E'Ã$E1Ã;E)Ã<E1ÄE+ÄE1Ä.E-Ä/-E1ÅE/ÅE1Å%E1Å'E1Å)E1Å+E1Å-E1Å/E1c              ƒ   ó>  K  — | j                   ryd| _         t        | j                  «      D ]<  \  }\  }}}|j                  rŒ|j                  rŒ$	 |j                  «       ƒ d{  –—†  Œ> y7 Œ# t        $ r#}t        j                  d||d¬«       Y d}~Œid}~ww xY w­w)a  
        Close all part payloads that need explicit closing.

        IMPORTANT: This method must not await anything that might not finish
        immediately, as it may be called during cleanup/cancellation. Schedule
        any long-running operations without awaiting them.
        NTz%Failed to close multipart part %d: %s)Úexc_info)	rg  r”   r¯  Ú	autocloser¹  ÚcloserQ  r#   Úerror)rž   r  r©   r‰   Úexcs        r?   rî  zMultipartWriter.close¯  s�   è ø€ ð �>Š>ØØˆŒô "+¨4¯;©;Ó!7ò 	ÑˆC‘�$˜˜1Ø—>“>¨$¯-«-ðØŸ*™*›,×&Ñ&ñ	ð 'ùÜ ò Ü#×)Ñ)Ø?ÀÀcÐTX÷ò ûðüsH   ‚A BÁBÁA.Á$A,Á%A.Á)BÁ,A.Á.	BÁ7BÂBÂBÂB)r·   N)rM   r5   r;   rj  )Tr´   )-rE   rF   rG   rµ   rk  Ú
_autoclosert   rŸ   r±  rP  ÚBaseExceptionr   r¶  ÚpropertyrQ   r¹  r   Ú_Partr½  rË   r¿  rÁ  rm   ÚcompilerÆ  rÈ  r®  r½   r
   r   r'   r•   rÏ  rÕ  r   rS  rØ  ræ   rÜ   rO  rd  r   rh  rî  rl  rm  s   @r?   r5   r5   §  sV  ø… Ù àƒLà€Jñ4 ð 4¸¸t¹ð 4Ètõ 4ó$ðà�}Ñ%¨Ñ,ðð  Ñ%ðð  Ñ$ð	ð
 
óð ðR˜$ò Ró ðRð!˜( 5™/ó !ð ˜ó  ð˜$ó ð $˜Ÿ™Ð$AÓBÐØ!+ §¡Ð,HÓ!IÐàð@ ò @ó ð@ð> ð.˜#ò .ó ð.ñ4˜#ð 4¨°°S°Ñ(9¸DÑ(@ð 4ÈGó 4ð$ gð $°'ó $ðN =AñFØðFØ!(¨¨c¨Ñ!2°TÑ!9ðFà	óFð -1ñ
à�e˜C ˜H‘oÑ&¨°°c°Ñ):Ñ:ð
ð ˜˜c˜Ñ" TÑ)ð
ð 
ó	
ð* ð�c˜D‘jò ó ðñ(
˜sð 
°cð 
Èó 
ñ sð ¸cð ÐQVó ð8 DHñCØ*ðCØ<@ðCà	óC÷:rI   r5   c                   ób   — e Zd Zdeddfd„Zdeddfd„Z	 ddededz  ddfd„Zdd	„Z	d
e
ddfd„Zy)ræ  re  rM   Nc                 ó<   — || _         d | _        d | _        d | _        y r;   )Ú_writerÚ	_encodingÚ	_compressÚ_encoding_buffer)rž   re  s     r?   rŸ   zMultipartPayloadWriter.__init__Ê  s   € ØˆŒØ%)ˆŒØ04ˆŒØ26ˆÕrI   rˆ   c                 óV   — |dk(  r|| _         t        «       | _        y |dk(  rd| _         y y )Nrè   r;  )rù  rÞ   rû  )rž   rˆ   s     r?   rè  z&MultipartPayloadWriter.enable_encodingÐ  s0   € Ø�xÒØ%ˆDŒNÜ$-£KˆDÕ!ØÐ+Ò+Ø/ˆD�Nð ,rI   Ústrategyc                 ó*   — t        |d|¬«      | _        y )NT)rˆ   r0  rý  )r   rú  )rž   rˆ   rý  s      r?   rç  z)MultipartPayloadWriter.enable_compression×  s   € ô (ØØ$(Øô
ˆ�rI   c              ƒ   ó^  K  — | j                   �<| j                   j                  «       }|r d | _         | j                  |«      ƒ d {  –—†  | j                  dk(  rN| j                  rA| j
                  j                  t        j                  | j                  «      «      ƒ d {  –—†  y y y 7 Œb7 Œ	­w)Nrè   )rú  Úflushrh  rù  rû  rø  rè   Ú	b64encoder›  s     r?   ré  z MultipartPayloadWriter.write_eofà  s’   è ø€ Ø�>‰>Ð%Ø—N‘N×(Ñ(Ó*ˆEÙØ!%�”Ø—j‘j Ó'×'Ð'à�>‰>˜XÒ%Ø×$Ò$Ø—l‘l×(Ñ(¬×)9Ñ)9¸$×:OÑ:OÓ)PÓQ×QÑQð %ð &ð (øð Rús%   ‚AB-ÁB)ÁAB-Â!B+Â"B-Â+B-rò   c              ƒ   ó’  K  — | j                   �(|r&| j                   j                  |«      ƒ d {  –—† }|sy | j                  dk(  rŽ| j                  }|€J ‚|j	                  |«       |rjt        t        |«      d«      \  }}|d |dz   ||dz  d  c}| _        |r9t        j                  |«      }| j                  j                  |«      ƒ d {  –—†  y y y | j                  dk(  r7| j                  j                  t        j                  |«      «      ƒ d {  –—†  y | j                  j                  |«      ƒ d {  –—†  y 7 �Œ7 Œt7 Œ.7 Œ­w)Nrè   r,   r;  )rú  Úcompressrù  rû  rß   ÚdivmodrY   rè   r  rø  rh  rA  Úb2a_qp)rž   rò   ÚbufÚdivÚmodÚ	enc_chunkÚb64chunks          r?   rh  zMultipartPayloadWriter.writeë  s'  è ø€ Ø�>‰>Ð%ÙØ"Ÿn™n×5Ñ5°eÓ<×<�ÙØà�>‰>˜XÒ%Ø×'Ñ'ˆCØ�?Ð"�?Ø�J‰J�uÔáÜ!¤# c£(¨AÓ.‘��SØ47¸	¸#À¹'°NÀCÈÈaÉÈ	ÀNÐ0�	˜4Ô0ÙÜ%×/Ñ/°	Ó:�HØŸ,™,×,Ñ,¨XÓ6×6Ñ6ð ð ð �^‰^Ð1Ò1Ø—,‘,×$Ñ$¤X§_¡_°UÓ%;Ó<×<Ñ<à—,‘,×$Ñ$ UÓ+×+Ñ+ð% =ùð 7øà<øà+úsG   ‚-E¯D>°BEÃEÃAEÄEÄ#EÄ8EÄ9EÅEÅEÅE)r.  Nr´   )rE   rF   rG   r   rŸ   rt   rè  rË   rç  ré  rO  rh  rH   rI   r?   ræ  ræ  É  sj   „ ð7Ð3ð 7¸ó 7ð0¨ð 0°ó 0ð AEñ
Øð
Ø36¸±:ð
à	ó
ó	Rð, ð ,¨4ô ,rI   ræ  )rL  )\rè   rA  r   r  rm   rM  rª  rz   Úcollectionsr   Úcollections.abcr   r   r   r   Útypesr   Útypingr	   r
   r   r   r   Úurllib.parser   r   r   Ú	multidictr   r   Úabcr   Úcompression_utilsr   r   Úhdrsr   r   r   r   r   Úhelpersr   r   r   r   r    Úhttpr!   Úhttp_exceptionsr"   Úlogr#   rÐ  r$   r%   r&   r'   r(   r)   r*   Ústreamsr+   Úversion_infor.   r2   rO  rÞ   r3   Ú__all__Ú	frozensetr<   Úrangerö   Úclient_reqreprB   ÚRuntimeWarningr6   r7   rt   rS  r  r8   r9   rš   r/   Ú	try_firstrV  r4   rô  r5   ræ  rH   rI   r?   ú<module>r      sè  ðÛ Û Û Û Û 	Û 
Û Û Ý ß FÓ FÝ ß ;Õ ;ß 6Ñ 6ç 3å %ß ?÷õ ÷ LÕ KÝ Ý +Ý  ÷÷ ñ õ "à×Ñ�wÒÞá�6Ð!1Ô2€Dà×Ñ�wÒÞ&à�5˜)Ð%6Ð8KÐKÑL€Fá
�) 6Ô
*€ð€ñ ØHó€ñ ÑJ¡U¨3£ZÔJÓJÐ ñ Ý-ô	 .ô 	ô	 ô 	ðj$Ø�$‰Jðj$à
ˆ3�‰:�t˜C ˜H‘~Ð%Ñ&ój$ð\ ,6ñ%Ø�C˜�HÑð%Ø%(ð%àˆ4�Zó%÷P,"ñ ,"÷^w@ñ w@ñt ˆn E§O¡OÔ4ô%&˜Gó %&ó 5ð%&÷Pg#ñ g#ðT 	ˆg�s˜CÐÑ €ô_�gô _÷D	7,ò 7,rI   