§
    ;xÅjÈµ  ã                   óà  — 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	 d8d)eeOeOf         d*eOd&eOdz  fd+„ZS G d,„ d-¦  «        ZT G d.„ d¦  «        ZU e<eUe8jV        ¬/¦  «         G d0„ d1e9¦  «        ¦   «         ZW G d2„ d3¦  «        ZXePe9eOeOf         ZY G d4„ d5e9¦  «        ZZ G d6„ d7¦  «        Z[dS )9é    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              #   ó,   K  — | ]}|t           v¯|V — Œd S ©N)Ú_BASE64_CHARS)Ú.0Úbs     úBC:\Projects\Historical\venv\Lib\site-packages\aiohttp/multipart.pyú	<genexpr>r@   D   s,   è è € ÐJÐJ °1½MÐ3IÐ3I˜!Ð3IÐ3IÐ3IÐ3IÐJÐJó    é   )ÚClientResponsec                   ó   — e Zd ZdS )r6   N©Ú__name__Ú
__module__Ú__qualname__© rA   r?   r6   r6   K   ó   € € € € € Ø€DrA   r6   c                   ó   — e Zd ZdS )r7   NrE   rI   rA   r?   r7   r7   O   rJ   rA   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                     t          t          j        t          ¦  «        ¦  «        d	œd
t           dt           dt           fd„}| sd i fS |                      d¦  «        ^}}|                     ¦   «         } ‰|¦  «        s%t          j
        t          | ¦  «        ¦  «         d i fS i }|�rï|                     d¦  «        }	|	s"t          j
        t          | ¦  «        ¦  «         Œ<d|	vr%t          j
        t          | ¦  «        ¦  «         d i fS |	                     dd¦  «        \  }
}|
                     ¦   «                              ¦   «         }
|                     ¦   «         }|
|v r%t          j
        t          | ¦  «        ¦  «         d i fS  ‰|
¦  «        s#t          j
        t          |	¦  «        ¦  «         �Œ ||
¦  «        rP ||¦  «        r ||dd…         ¦  «        }�n° ‰|¦  «        s#t          j
        t          |	¦  «        ¦  «         �Œh�n€ ||
¦  «        rŸ ||¦  «        r|                     dd¦  «        \  }}}|pd}n#t          j
        t          |	¦  «        ¦  «         �ŒÂ	 t!          ||d¦  «        }�n# t"          j        t&          f$ r% t          j
        t          |	¦  «        ¦  «         Y �Œw xY wd}|                     ¦   «         } ||¦  «        r)d} ||dd…                              d¦  «        ¦  «        }ne ‰|¦  «        rd}nW|rU|› d|d         › �} ||¦  «        r=|                     d¦  «          ||dd…                              d¦  «        ¦  «        }d}|r%t          j
        t          | ¦  «        ¦  «         d i fS |||
<   |�°ï|                     ¦   «         |fS )NÚstringrM   c                 óP   — t          | ¦  «        ot          t          | ¦  «        k    S r;   )Úboolr   Úset©rO   s    r?   Úis_tokenz+parse_content_disposition.<locals>.is_tokenV   s   € Ý�F‰|Œ|Ð4¥­¨V©¬Ò 4Ð4rA   c                 ó`   — t          | ¦  «        dk    o| d         | d         cxk    odk    nc S )Né   r   éÿÿÿÿú")ÚlenrS   s    r?   Ú	is_quotedz,parse_content_disposition.<locals>.is_quotedY   s<   € Ý�6‰{Œ{˜aÒÐB F¨1¤I°¸´Ð$BÐ$BÒ$BÐ$B¸sÒ$BÐ$BÐ$BÐ$BÐBrA   c                 óL   •—  ‰| ¦  «        o|                       d¦  «        dk    S )Nú'rV   )Úcount)rO   rT   s    €r?   Ú
is_rfc5987z-parse_content_disposition.<locals>.is_rfc5987\   s)   ø€ Øˆx˜ÑÔÐ: F§L¢L°Ñ$5Ô$5¸Ò$:Ð:rA   c                 ó,   — |                       d¦  «        S )NÚ*)ÚendswithrS   s    r?   Úis_extended_paramz4parse_content_disposition.<locals>.is_extended_param_   s   € Ø�Š˜sÑ#Ô#Ð#rA   c                 ó´   — |                       d¦  «        dz   }|sdS |                      d¦  «        r
| |d…         n	| |d …         }|                     ¦   «         S )Nr`   r   FrW   )Úfindra   Úisdigit)rO   ÚposÚ	substrings      r?   Úis_continuous_paramz6parse_content_disposition.<locals>.is_continuous_paramb   sa   € Ø�kŠk˜#ÑÔ Ñ"ˆØð 	Ø�5Ø&,§o¢o°cÑ&:Ô&:ÐL�F˜3˜r˜6”N�NÀÀsÀtÀtÄˆ	Ø× Ò Ñ"Ô"Ð"rA   Ú )ÚcharsÚtextrj   c                ó6   — t          j        d|› d�d| ¦  «        S )Nz\\([z])z\1)ÚreÚsub)rk   rj   s     r?   Úunescapez+parse_content_disposition.<locals>.unescapei   s"   € ÝŒvÐ(˜uÐ(Ð(Ð(¨%°Ñ6Ô6Ð6rA   ú;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   sÛ  ø€ ð5�ð 5¥ð 5ð 5ð 5ð 5ðC�#ð C¥$ð Cð Cð Cð Cð;�3ð ;¥4ð ;ð ;ð ;ð ;ð ;ð ;ð$¥#ð $­$ð $ð $ð $ð $ð#¥Cð #­Dð #ð #ð #ð #ð -/¯GªGµC½¼	Å4Ñ4HÔ4HÑ,IÔ,Ið 7ð 7ð 7•sð 7¥cð 7Ícð 7ð 7ð 7ð 7ð ð Ø�Rˆxˆð —|’| CÑ(Ô(Ð€HˆuØ�~Š~ÑÔ€HØˆ8�HÑÔð ÝŒÕ1°&Ñ9Ô9Ñ:Ô:Ð:Ø�Rˆxˆà€FØ
ñ DØ�yŠy˜‰|Œ|ˆàð 	ÝŒMÕ5°fÑ=Ô=Ñ>Ô>Ð>Øà�dˆ?ˆ?ÝŒMÕ5°fÑ=Ô=Ñ>Ô>Ð>Ø˜�8ˆOà—Z’Z  QÑ'Ô'‰
ˆˆUØ�iŠi‰kŒk×ÒÑ!Ô!ˆØ—’‘”ˆà�&ˆ=ˆ=ÝŒMÕ5°fÑ=Ô=Ñ>Ô>Ð>Ø˜�8ˆOàˆx˜‰}Œ}ð /	 ÝŒMÕ4°TÑ:Ô:Ñ;Ô;Ð;Ùà Ð  Ñ%Ô%ð +	 Øˆy˜ÑÔð Ø ˜  q¨ t¤Ñ-Ô-�‘Ø�X˜e‘_”_ð Ý”Õ8¸Ñ>Ô>Ñ?Ô?Ð?Ùñð Ð˜sÑ#Ô#ð $	 Øˆz˜%Ñ Ô ð Ø%*§[¢[°°aÑ%8Ô%8Ñ"�˜!˜UØ#Ð. w��å”Õ8¸Ñ>Ô>Ñ?Ô?Ð?ÙðÝ  x°Ñ:Ô:�‘øÝÔ(Õ*<Ð=ð ð ð õ ”Õ8¸Ñ>Ô>Ñ?Ô?Ð?Ø‘ðøøøð ˆFØŸš™œˆIØˆy˜Ñ#Ô#ð #Ø�Ø ˜ ¨1¨R¨4¤×!7Ò!7¸Ñ!>Ô!>Ñ?Ô?��Ø�˜%‘”ð 	#Ø��Øð #ð "Ð.Ð. E¨!¤HÐ.Ð.�Ø�9˜VÑ$Ô$ð #Ø—I’I˜a‘L”L�LØ$˜H V¨A¨b¨D¤\×%8Ò%8¸Ñ%?Ô%?Ñ@Ô@�EØ"�Fàð  Ý”Õ9¸&ÑAÔAÑBÔBÐBØ˜R�x�àˆˆs‰ðI ñ DðL �>Š>ÑÔ˜VÐ#Ð#s   ËK# Ë#7LÌLÚfilenamer„   Únamec                 ón  ‡
— d|z  Š
| sd S ‰
| v r| ‰
         S || v r| |         S g }t          ˆ
fd„|                      ¦   «         D ¦   «         ¦  «        }t          |¦  «        D ]i\  }\  }}|                     dd¦  «        \  }}|                     d¦  «        r
|d d…         }|t          |¦  «        k    r|                     |¦  «         Œi |sd S d                     |¦  «        }d|v rM|                     dd¦  «        \  }	}}|	pd	}		 t          ||	d
¦  «        S # t          j
        t          f$ r Y d S w xY w|S )Nz%s*c              3   óP   •K  — | ] \  }}|                      ‰¦  «        ¯||fV — Œ!d S r;   )Ú
startswith)r=   r†   r‡   Úname_sufs      €r?   r@   z/content_disposition_filename.<locals>.<genexpr>Ì   sP   øè è € ð 
ð 
Ù'˜S %¸S¿^º^ÈHÑ=UÔ=Uð
Ø�%ˆLð
ð 
ð 
ð 
ð 
ð 
rA   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   À   s�  ø€ ð �t‰|€HØð !ØˆtØ	�VÐ	Ð	Ø�hÔÐØ	�ˆˆØ�dŒ|ÐàˆÝð 
ð 
ð 
ð 
Ø+1¯<ª<©>¬>ð
ñ 
ô 
ñ 
ô 
ˆõ "+¨8Ñ!4Ô!4ð 	ð 	ÑˆC‘�#�uØ—i’i  QÑ'Ô'‰GˆAˆtØ�}Š}˜SÑ!Ô!ð !Ø˜C˜R˜C”y�Ø•s˜3‘x”xÒÐØ—’˜UÑ#Ô#Ð#Ð#àØð 	Ø�4Ø—’˜‘”ˆØ�%ˆ<ˆ<Ø!&§¢¨S°!Ñ!4Ô!4ÑˆH�a˜ØÐ* 7ˆHðÝ˜u h°Ñ9Ô9Ð9øÝÔ(Õ*<Ð=ð ð ð ð
 �t�tðøøøð ˆs   ÄD ÄD2Ä1D2c                   óx   — 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dS )ÚMultipartResponseWrapperzzWrapper around the MultipartReader.

    It takes care about
    underlying connection and close it when it needs in.
    ÚresprC   Ústreamr4   rM   Nc                 ó"   — || _         || _        d S r;   )rœ   r�   )Úselfrœ   r�   s      r?   Ú__init__z!MultipartResponseWrapper.__init__ï   s   € ð
 ˆŒ	ØˆŒˆˆrA   c                 ó   — | S r;   rI   ©rŸ   s    r?   Ú	__aiter__z"MultipartResponseWrapper.__aiter__÷   ó   € ØˆrA   )r4   r/   c              ƒ   óP   K  — |                       ¦   «         ƒ d {V —†}|€t          ‚|S r;   ©ÚnextÚStopAsyncIteration©rŸ   Úparts     r?   Ú	__anext__z"MultipartResponseWrapper.__anext__ú   ó7   è è € ð —Y’Y‘[”[Ð Ð Ð Ð Ð Ð ˆØˆ<Ý$Ð$ØˆrA   c                 ó>   — | 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Ô ×'Ò'Ñ)Ô)Ð)rA   c              ƒ   ó®   K  — | j                              ¦   «         ƒ d{V —†}| j                              ¦   «         r|                      ¦   «         ƒ d{V —† |S )z#Emits next multipart reader object.N)r�   r§   r¯   Úrelease©rŸ   r…   s     r?   r§   zMultipartResponseWrapper.next  sh   è è € ð ”[×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'ˆØŒ;×ÒÑÔð 	!Ø—,’,‘.”.Ð Ð Ð Ð Ð Ð Ð ØˆrA   c              ƒ   óH   K  — | j                              ¦   «         ƒ d{V —† dS )z_Release the connection gracefully.

        All remaining content is read to the void.
        N)rœ   r±   r¢   s    r?   r±   z MultipartResponseWrapper.release  s4   è è € ð
 Œi×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!rA   )rœ   rC   r�   r4   rM   N)rM   r›   ©rM   N)rF   rG   rH   Ú__doc__r    r£   r   r«   rQ   r¯   r§   r±   rI   rA   r?   r›   r›   è   sÚ   € € € € € ðð ðàðð "ðð 
ð	ð ð ð ðð ð ð ðà	Ð2Ô	3ðð ð ð ð*˜ð *ð *ð *ð *ðà	Ð2Ô	3°dÑ	:ðð ð ð ð"ð "ð "ð "ð "ð "rA   r›   c                   óš  — 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„¦   «         Z0dS )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                              t          d ¦  «        }	|	�:|	 
                    ¦   «         r|	                     ¦   «         st          d|	›�¦  «        ‚|	�t          |	¦  «        nd | _        d| _        d| _        t#          ¦   «         | _        d | _        d| _        i | _        || _        || _        || _        d S )NrV   Fú	form-datazinvalid Content-Length: r   rA   )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ˆÔàÔ+ÐW��°´×1AÒ1AÅ.ÐRVÑ1WÔ1WˆØÐ v§~¢~Ñ'7Ô'7Ð¸F¿NºNÑ<LÔ<LÐõ ÐB¸ÐBÐBÑCÔCÐCØ&,Ð&8•s˜6‘{”{�{¸dˆŒØˆÔØˆŒÝ%*¡W¤WˆŒØ)-ˆÔØˆÔØ&(ˆŒØ$7ˆÔ!Ø /ˆÔØ#5ˆÔ Ð Ð rA   rŸ   c                 ó   — | S r;   rI   r¢   s    r?   r£   zBodyPartReader.__aiter__A  r¤   rA   c              ƒ   óP   K  — |                       ¦   «         ƒ d {V —†}|€t          ‚|S r;   r¦   r©   s     r?   r«   zBodyPartReader.__anext__D  s5   è è € Ø—Y’Y‘[”[Ð Ð Ð Ð Ð Ð ˆØˆ<Ý$Ð$ØˆrA   c              ƒ   óF   K  — |                       ¦   «         ƒ d {V —†}|sd S |S r;   )Úreadr²   s     r?   r§   zBodyPartReader.nextJ  s7   è è € Ø—Y’Y‘[”[Ð Ð Ð Ð Ð Ð ˆØð 	Ø�4ØˆrA   F©ÚdecoderÜ   c             ƒ   ó  K  — | j         rdS t          ¦   «         }| j         sl|                     |                      | j        ¦  «        ƒ d{V —†¦  «         t          |¦  «        | j        k    r|                      | j        ¦  «        ‚| j         ¯l|rut          ¦   «         }|                      |¦  «        2 3 d{V —†}|                     |¦  «         t          |¦  «        | j        k    r|                      | j        ¦  «        ‚ŒO6 |S |S )z»Reads body part data.

        decode: Decodes data following by encoding
                method from Content-Encoding header. If it missed
                data remains untouched
        rA   N)	rÆ   Ú	bytearrayÚextendÚ
read_chunkÚ
chunk_sizerY   rÔ   rÕ   Údecode_iter)rŸ   rÜ   ÚdataÚdecoded_dataÚds        r?   rÚ   zBodyPartReader.readP  s=  è è € ð Œ<ð 	Ø�3Ý‰{Œ{ˆØ”,ð 	FØ�KŠK˜dŸošo¨d¬oÑ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ñ?Ô?Ð?Ý�4‰yŒy˜4Ô0Ò0Ð0Ø×.Ò.¨tÔ/DÑEÔEÐEð ”,ð 	Fð ð 	 Ý$™;œ;ˆLØ×+Ò+¨DÑ1Ô1ð Jð Jð Jð Jð Jð Jð J�aØ×#Ò# AÑ&Ô&Ð&Ý�|Ñ$Ô$ tÔ'<Ò<Ð<Ø×2Ò2°4Ô3HÑIÔIÐIð =ð 2ð  ÐØˆs   Â2DÚsizec              ƒ   ó¨  K  — | j         rdS | j        }|t          |¦  «        z
  }|rd| _        t          || j        ¦  «        }| j        �|                      |¦  «        ƒ d{V —†}n|                      |¦  «        ƒ d{V —†}||z   }| xj        t          |¦  «        z  c_        | j	         
                    t          ¦  «        }|r>|                     ¦   «         dk    r&|                      |t          |¦  «        |z   ¦  «        }| j        | j        k    rd| _         | j         r2| j                             ¦   «         ƒ d{V —†dk    rt!          d¦  «        ‚|S )zWReads body part content chunk of the specified size.

        size: chunk size
        rA   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{  è è € ð
 Œ<ð 	Ø�3Ø”ˆØ•c˜%‘j”jÑ ˆØð 	1Ø!ˆDŒOÝ�t˜TÔ/Ñ0Ô0ˆDØŒ<Ð#Ø×6Ò6°tÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<ˆEˆEà×6Ò6°tÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<ˆEØ˜‘ˆØÐÔ�C ™JœJÑ&ÐÔð ”<×#Ò#Õ$=Ñ>Ô>ˆØð 	G˜ŸšÑ(Ô(¨HÒ4Ð4Ø×,Ò,¨UµC¸±J´JÀÑ4EÑFÔFˆEàÔ˜tœ|Ò+Ð+ØˆDŒLØŒ<ð 	T $¤-×"8Ò"8Ñ":Ô":Ð:Ð:Ð:Ð:Ð:Ð:¸gÒEÐEÝÐRÑSÔSÐSØˆrA   rò   c                 ó¦  — | j         p| j        d uo| j        | j        k    }|s,t          |¦  «        |k    r||d …         | _        |d |…         }t          |                     d t          ¦  «        ¦  «        dz  }|r|r|S t          |¦  «        }|}|r|dz  }||         t          v r|dz  }|°|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 Ð$ÐI¨Ô)9¸T¼\Ò)Ið 	ð ð 	!�#˜e™*œ* tÒ+Ð+Ø# D E EœlˆDŒOØ˜%˜4˜%”LˆEå˜Ÿš¨Õ.?Ñ@Ô@ÑAÔAÀAÑEˆ	Øð 	˜Fð 	ØˆLõ �%‰jŒjˆØˆØð 	Ø�1‰HˆCØ�SŒz�]Ð*Ð*Ø˜‘	�ð ð 	ð ð 	ð ˆLà   œ+¨¬Ñ7ˆŒØ�T�c�TŒ{ÐrA   c              ƒ   óæ   K  — | j         €
J d¦   «         ‚t          || j         | j        z
  ¦  «        }| j                             |¦  «        ƒ d {V —†}| j                             ¦   «         rd| _        |S )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£  s�   è è € ð Œ|Ð'Ð'Ð)SÑ'Ô'Ð'Ý˜˜tœ|¨dÔ.>Ñ>Ñ?Ô?ˆ
Ø”m×(Ò(¨Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4ˆØŒ=×ÒÑ!Ô!ð 	 ØˆDŒLØˆrA   c           
   ƒ   óæ  K  — || j         k    s
J d¦   «         ‚| j        d u }|r(d| j                             |¦  «        ƒ d {V —†z   | _        d}t	          |¦  «        | j         k     r‘|| j                             |¦  «        ƒ d {V —†z  }| xj        t          | j                             ¦   «         ¦  «        z  c_        | j        dk    rt          d¦  «        ‚| j        rnt	          |¦  «        | j         k     °‘t	          |¦  «        |k    r,| j         	                    ||d …         ¦  «         |d |…         }| j        €J ‚| j        |z   }d| j
        z   }|r|                     |¦  «        }nF|                     |t          dt	          | j        ¦  «        t	          |¦  «        z
  ¦  «        ¦  «        }|dk    r¡t          j        ¦   «         5  t          j        dt           ¬¦  «         | j         	                    ||d …         ¦  «         d d d ¦  «         n# 1 swxY w Y   | j        d |…         | _        |t	          | j        ¦  «        |…         }|sd	| _        | j        |rdndd …         }|| _        |S )
Nz<Chunk size must be greater or equal than boundary length + 2ré   rA   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­  sÝ  è è € ð �DÔ&Ò&Ð&Ð&ØIñ 'Ô&Ð&àÔ&¨$Ð.ˆØð 	Hà&¨t¬}×/AÒ/AÀ$Ñ/GÔ/GÐ)GÐ)GÐ)GÐ)GÐ)GÐ)GÑGˆDÔàˆõ �%‰jŒj˜4Ô-Ò-Ð-Ø˜4œ=×-Ò-¨dÑ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ñ3ˆEØÐÔ¥ T¤]×%9Ò%9Ñ%;Ô%;Ñ!<Ô!<Ñ<ÐÔØÔ  1Ò$Ð$Ý Ð!4Ñ5Ô5Ð5ØÔ ð Øõ �%‰jŒj˜4Ô-Ò-Ð-õ ˆu‰:Œ:˜ÒÐØŒM×%Ò% e¨D¨E¨E¤lÑ3Ô3Ð3Ø˜%˜4˜%”LˆEàÔÐ+Ð+Ð+ØÔ! EÑ)ˆØ˜œÑ&ˆØð 	MØ—+’+˜cÑ"Ô"ˆCˆCà—+’+˜c¥3 q­#¨dÔ.>Ñ*?Ô*?Å#ÀcÁ(Ä(Ñ*JÑ#KÔ#KÑLÔLˆCØ�!Š8ˆ8åÔ(Ñ*Ô*ð 8ð 8ÝÔ'¨Õ;MÐNÑNÔNÐNØ”×)Ò)¨&°°°¬,Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð  $Ô/°°°Ô5ˆDÔØ�3˜tÔ/Ñ0Ô0°3Ð6Ô7ˆEØð $Ø#�”ØÔ! {Ð"9 ! !¸Ð";Ð";Ô<ˆØ ˆÔØˆs   Ç	>HÈHÈHc              ƒ   ó6  K  — | j         rdS | j        r| j                             ¦   «         }n| j                             ¦   «         ƒ d{V —†}|                     | j        ¦  «        rV|                     d¦  «        }| j        }| j        dz   }||k    s||k    r#d| _         | j                             |¦  «         dS n]| j                             ¦   «         ƒ d{V —†}|                     | j        ¦  «        r
|dd…         }| j                             |¦  «         |S )z Reads body part by line by line.rA   Nré   ó   --Téþÿÿÿ)	rÆ   rÏ   ÚpopleftrÄ   rî   r‘   rÂ   r�   r–   )rŸ   ÚlineÚsliner½   Úlast_boundaryÚ	next_lines         r?   rî   zBodyPartReader.readlineÚ  s8  è è € àŒ<ð 	Ø�3àŒ<ð 	2Ø”<×'Ò'Ñ)Ô)ˆDˆDàœ×/Ò/Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1ˆDà�?Š?˜4œ>Ñ*Ô*ð 	+ð —K’K Ñ(Ô(ˆEØ”~ˆHØ œN¨UÑ2ˆMà˜Ò Ð  E¨]Ò$:Ð$:Ø#�”Ø”×#Ò# DÑ)Ô)Ð)Ø�sð %;ð
 #œm×4Ò4Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6ˆIØ×#Ò# D¤NÑ3Ô3ð !Ø˜C˜R˜C”y�ØŒL×Ò 	Ñ*Ô*Ð*àˆrA   c              ƒ   ó|   K  — | j         rdS | j         s)|                      | j        ¦  «        ƒ d{V —† | j         ¯'dS dS )z0Like read(), but reads all the data to the void.N)rÆ   rà   rá   r¢   s    r?   r±   zBodyPartReader.release÷  se   è è € àŒ<ð 	ØˆFØ”,ð 	3Ø—/’/ $¤/Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ð ”,ð 	3ð 	3ð 	3ð 	3ð 	3rA   )rˆ   rˆ   c             ƒ   ó˜   K  — |                       d¬¦  «        ƒ d{V —†}|p|                      d¬¦  «        }|                     |¦  «        S )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þ  sZ   è è € à—Y’Y d�YÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆð Ð@˜t×/Ò/¸Ð/Ñ@Ô@ˆØ�{Š{˜8Ñ$Ô$Ð$rA   c             ƒ   ó  K  — |                       d¬¦  «        ƒ d{V —†}|sdS |p|                      d¬¦  «        }t          t          t          t
          f         t          j        |                     |¦  «        ¦  «        ¦  «        S )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  s�   è è € à—Y’Y d�YÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆØð 	Ø�4ØÐ@˜t×/Ò/¸Ð/Ñ@Ô@ˆÝ•D��c˜”N¥D¤J¨t¯{ª{¸8Ñ/DÔ/DÑ$EÔ$EÑFÔFÐFrA   c             ƒ   ó2  K  — |                       d¬¦  «        ƒ d{V —†}|sg S |�|}n|                      d¬¦  «        }	 |                     ¦   «                              |¦  «        }n # t          $ r t          d|z  ¦  «        ‚w xY wt          |d|¬¦  «        S )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ˆMà ×,Ò,°WÐ,Ñ=Ô=ˆMð	XØŸ;š;™=œ=×/Ò/°Ñ>Ô>ˆLˆLøÝ!ð 	Xð 	Xð 	XÝÐFÈÑVÑWÔWÐWð	Xøøøõ ØØ"Ø"ð
ñ 
ô 
ð 	
s   ¿'A' Á'Bc                 ó   — | j         S )z<Returns True if the boundary was reached or False otherwise.©rÆ   r¢   s    r?   r¯   zBodyPartReader.at_eof"  ó
   € àŒ|ÐrA   rã   c                 óL   — t           | j        v r|                      |¦  «        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Ð4Ø×0Ò0°Ñ6Ô6Ð6ØˆrA   c                 ó.   — | j          o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Ð*JÐJrA   c                 ó‚   — |                       |¦  «        }|                      ¦   «         r|                      |¦  «        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  sD   € ð ×7Ò7¸Ñ=Ô=ˆØ×'Ò'Ñ)Ô)ð 	1Ø×'Ò'¨Ñ0Ô0Ð0ØˆrA   c                ó°   K  — |                       |¦  «        }|                      ¦   «         r%|                      |¦  «        2 3 d{V —†}|W V — Œ6 dS |W V — dS )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?  sŽ   è è € ð ×7Ò7¸Ñ=Ô=ˆØ×'Ò'Ñ)Ô)ð 	Ø×5Ò5°gÑ>Ô>ð ð ð ð ð ð ð �aØ�����ð ?Ð>Ð>ð ˆMˆMˆMˆMˆMˆMs   ÁAc                 óø   — | j                              t          d¦  «                             ¦   «         }|dk    r|S |dv r+t	          |d¬¦  «                             || 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  s�   € Ø”<×#Ò#Õ$4°bÑ9Ô9×?Ò?ÑAÔAˆØ�zÒ!Ð!ØˆKØÐ*Ð*Ð*Ý#Ø!Ø(,ðñ ô ÷ Šo˜d¨tÔ/HˆoÑIÔIðJõ
 ÐB¸ÐBÐBÑCÔCÐCrA   c                óŠ  K  — | j                              t          d¦  «                             ¦   «         }|dk    r|W V — d S |dv rmt	          |d¬¦  «        }|                     || j        ¬¦  «        ƒ d {V —†W V — |j        r.|                     d| j        ¬¦  «        ƒ d {V —†W V — |j        °,d S d S t          d|› �¦  «        ‚)	Nri   r,  >   r-  r.  Tr/  r1  rA   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Ô9×?Ò?ÑAÔAˆØ�zÒ!Ð!ØˆJˆJˆJˆJˆJˆJØÐ,Ð,Ð,Ý Ø!Ø(,ðñ ô ˆAð Ÿš T°dÔ6O˜ÑPÔPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPØÔ"ð TØŸLšL¨¸Ô9R˜LÑSÔSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSð Ô"ð Tð Tð Tð Tð Tõ ÐF¸HÐFÐFÑGÔGÐGrA   c                 óþ   — | j                              t          d¦  «                             ¦   «         }|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  s†   € Ø”<×#Ò#Õ$=¸rÑBÔB×HÒHÑJÔJˆà�xÒÐÝÔ# DÑ)Ô)Ð)ØÐ+Ò+Ð+Ý”? 4Ñ(Ô(Ð(ØÐ3Ð3Ð3ØˆKåÐOÀXÐOÐOÑPÔPÐPrA   r  c                 ó¤   — | j                              t          d¦  «        }t          |¦  «        }|j                             d| j        p|¦  «        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  sG   € à”× Ò ¥¨rÑ2Ô2ˆÝ! %Ñ(Ô(ˆØÔ"×&Ò& y°$Ô2GÐ2RÈ7ÑSÔSÐSrA   c                 ó€   — t          | 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~  s6   € õ .¨d¬l×.>Ò.>Õ?RÑ.SÔ.SÑTÔT‰	ˆˆ6Ý+¨F°FÑ;Ô;Ð;rA   c                 ó€   — t          | j                             t          ¦  «        ¦  «        \  }}t	          |d¦  «        S )zReturns filename specified in Content-Disposition header.

        Returns None if the header is missing or malformed.
        r�   rI  rJ  s      r?   r�   zBodyPartReader.filename‡  s6   € õ .¨d¬l×.>Ò.>Õ?RÑ.SÔ.SÑTÔT‰	ˆˆ6Ý+¨F°JÑ?Ô?Ð?rA   r´   )1rF   rG   rH   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Ž   r�   rI   rA   r?   r/   r/     sŠ  € € € € € Ø0Ð0à€Jð Ø&*Ø#5Ø"œ{Ø.8ð#6ð #6ð #6àð#6ð )ð#6ð ð	#6ð ð#6ð ˜t™ð#6ð !ð#6ð ð#6ð ! œOð#6ð 
ð#6ð #6ð #6ð #6ðJ˜ð  ð ð ð ð ð ð ð ð ð ð˜E D™Lð ð ð ð ð ,1ð ð ð  Dð °Uð ð ð ð ð. ,6ð ð  Sð ¸%ð ð ð ð ð>¨ð °cð ¸eð ð ð ð ð:°#ð ¸%ð ð ð ð ð+°#ð +¸%ð +ð +ð +ð +ðZ ð ð ð ð ð:3ð 3ð 3ð 3ð 48ð %ð %ð % c¨D¡jð %¸Cð %ð %ð %ð %ð 48ð Gð Gð G c¨D¡jð G¸DÀÀcÀ¼NÈTÑ<Qð Gð Gð Gð Gð 48ð 
ð 
ð 
 c¨D¡jð 
¸DÀÀsÈCÀxÄÔ<Qð 
ð 
ð 
ð 
ð(˜ð ð ð ð ð°Wð ÀÈ5Áð ð ð ð ðK¨ð Kð Kð Kð Kð
˜7ð  w°¡ð ð ð ð ð gð °-ÀÈ%ÁÔ2Pð ð ð ð ð 
D Gð 
D°¸%±ð 
Dð 
Dð 
Dð 
DðHØðHà	�w ‘Ô	'ðHð Hð Hð Hð"
Q¨Wð 
Q¸À5¹ð 
Qð 
Qð 
Qð 
QðT 3ð T¨3ð Tð Tð Tð Tð ð<�c˜D‘jð <ð <ð <ñ „Uð<ð ð@˜# ™*ð @ð @ð @ñ „Uð@ð @ð @rA   )Ú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          ¦   «         j        |g|¢R i |¤Ž i }|j        �
|j        |d<   |j        �
|j        |d<   |r | j        di |¤Ž d S d S )NrŽ   r�   Ú
attachmentT)rY  T)Úsuperr    rŽ   r�   Úset_content_disposition)rŸ   r‡   rV  rW  r„   Ú	__class__s        €r?   r    zBodyPartReaderPayload.__init__–  sŠ   ø€ Ø�‰ŒÔ˜Ð0 Ð0Ð0Ð0¨Ð0Ð0Ð0à!#ˆØŒ:Ð!Ø"œZˆF�6‰NØŒ>Ð%Ø!&¤ˆF�:Ñàð 	GØ(ˆDÔ(ÐFÐF¸vÐFÐFÐFÐFÐFð	Gð 	GrA   rr   rs   rˆ   Úerrorsc                 ó    — t          d¦  «        ‚)NzUnable to decode.©Ú	TypeError©rŸ   rˆ   r]  s      r?   rÜ   zBodyPartReaderPayload.decode¢  s   € ÝÐ+Ñ,Ô,Ð,rA   c              ƒ   ó$   K  — t          d¦  «        ‚)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_  ra  s      r?   Úas_byteszBodyPartReaderPayload.as_bytes¥  s   è è € õ ÐTÑUÔUÐUrA   Úwriterc              ƒ   ó(  K  — | j         }d| _        |                     t          ¬¦  «        ƒ d {V —†x}r^|                     |¦  «        2 3 d {V —†}|                     |¦  «        ƒ d {V —† Œ#6 |                     t          ¬¦  «        ƒ d {V —†x}°\d S d S )NT)ræ   )rŒ   Ú	_consumedrà   r   râ   Úwrite)rŸ   rd  Úfieldrò   rå   s        r?   rg  zBodyPartReaderPayload.write¯  sî   è è € Ø”ˆð ˆŒØ"×-Ò-Õ3EÐ-ÑFÔFÐFÐFÐFÐFÐFÐFÐFˆeð 	&Ø ×,Ò,¨UÑ3Ô3ð &ð &ð &ð &ð &ð &ð &�aØ—l’l 1‘o”oÐ%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ð 4ð #×-Ò-Õ3EÐ-ÑFÔFÐFÐFÐFÐFÐFÐFÐFˆeð 	&ð 	&ð 	&ð 	&ð 	&s   Á	A,©rr   rs   )rF   rG   rH   r/   Ú__annotations__r
   r    rt   rÜ   rN  rc  r   rg  Ú__classcell__©r\  s   @r?   rU  rU  ‘  sù   ø€ € € € € € àÐÐÑð
G˜nð 
G°Sð 
GÀCð 
GÈDð 
Gð 
Gð 
Gð 
Gð 
Gð 
Gð-ð -˜sð -°cð -Èð -ð -ð -ð -ðVð V sð V¸cð VÐQVð Vð Vð Vð Vð&Ð"6ð &¸4ð &ð &ð &ð &ð &ð &ð &ð &rA   rU  c                   óŽ  — 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&dS )#r4   zMultipart body reader.NÚmultipart_reader_clsiþ  é€   ©r»   Úmax_field_sizeÚmax_headersr¼   r¾   r®   r»   rq  rr  r¼   rM   c                óÄ  — t          |t                   ¦  «        | _        | j        j        dk    s
J d¦   «         ‚d| j        j        vrt          d|t                   z  ¦  «        ‚|| _        d|                      ¦   «         z                        ¦   «         | _	        || _
        || _        d | _        d | _        || _        || _        || _        d| _        d| _        g | _        d S )NÚ	multipartz!multipart/* content type expectedr½   z$boundary missed for Content-Type: %sú--FT)r   r   Ú	_mimetyperO  rE  rÊ   r¾   Ú_get_boundaryÚencoderÂ   rÔ   rÄ   rÅ   Ú
_last_partÚ_max_field_sizeÚ_max_headersrÕ   rÆ   Ú_at_bofrÏ   )rŸ   r¾   r®   r»   rq  rr  r¼   s          r?   r    zMultipartReader.__init__Å  sâ   € õ (¨µÔ(=Ñ>Ô>ˆŒØŒ~Ô" kÒ1Ð1Ð1Ð3VÑ1Ô1Ð1Ø˜Tœ^Ô6Ð6Ð6ÝØ6¸ÅÔ9NÑNñô ð ð ˆŒØ ×!3Ò!3Ñ!5Ô!5Ñ5×=Ò=Ñ?Ô?ˆŒØ /ˆÔØˆŒØ,0ˆÔØCGˆŒØ-ˆÔØ'ˆÔØ#5ˆÔ ØˆŒØˆŒØ$&ˆŒˆˆrA   rŸ   c                 ó   — | S r;   rI   r¢   s    r?   r£   zMultipartReader.__aiter__ã  r¤   rA   c              ƒ   óP   K  — |                       ¦   «         ƒ d {V —†}|€t          ‚|S r;   r¦   r©   s     r?   r«   zMultipartReader.__anext__æ  r¬   rA   ÚresponserC   c                 óZ   — |                       | | |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î  s7   € ð ×&Ò&Ø�c�c˜(Ô*¨HÔ,<Ñ=Ô=ñ
ô 
ˆð ˆ
rA   c                 ó   — | j         S )z@Returns True if the final boundary was reached, false otherwise.r  r¢   s    r?   r¯   zMultipartReader.at_eofü  r   rA   c              ƒ   ó   K  — | j         rdS |                      ¦   «         ƒ d{V —† | j        r"|                      ¦   «         ƒ d{V —† d| _        n|                      ¦   «         ƒ d{V —† | j         rdS |                      ¦   «         ƒ d{V —†}| j        €ï| j        j        dk    rßt          |t          ¦  «        rÊt          |j                             t          ¦  «        ¦  «        \  }}|                     d¦  «        dk    r‚|                     d¦  «        ƒ d{V —†}t!          |¦  «        dk    rt#          d¦  «        ‚|                     ¦   «                              ¦   «         | _        |                      ¦   «         ƒ d{V —†}|| _        | j        S )	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_partry  rv  r¸   Ú
isinstancer/   r8   r¾   rÈ   r   rà   rY   r5  ry   rÜ   rÅ   )rŸ   rª   r‰   r„   rD  s        r?   r§   zMultipartReader.next   sÂ  è è € ð
 Œ<ð 	Ø�4Ø×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØŒ<ð 	(Ø×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ø ˆDŒLˆLà×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØŒ<ð 	Ø�4à×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆð ŒOÐ#Ø”Ô&¨+Ò5Ð5Ý˜4¥Ñ0Ô0ð 6õ 2°$´,×2BÒ2BÕCVÑ2WÔ2WÑXÔX‰IˆAˆvØ�zŠz˜&Ñ!Ô! [Ò0Ð0ð !%§¢°Ñ 3Ô 3Ð3Ð3Ð3Ð3Ð3Ð3�Ý�w‘<”< "Ò$Ð$Ý&Ð'@ÑAÔAÐAØ(/¯ª©¬×(>Ò(>Ñ(@Ô(@�Ô%Ø!×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3�ØˆŒØŒÐrA   c              ƒ   óš   K  — | j         sA|                      ¦   «         ƒ d{V —†}|€dS |                     ¦   «         ƒ d{V —† | j         ¯?dS dS )z=Reads all the body parts to the void till the final boundary.N)rÆ   r§   r±   r²   s     r?   r±   zMultipartReader.release#  sy   è è € à”,ð 	!ØŸš™œÐ$Ð$Ð$Ð$Ð$Ð$ˆDØˆ|Ø�Ø—,’,‘.”.Ð Ð Ð Ð Ð Ð Ð ð	 ”,ð 	!ð 	!ð 	!ð 	!ð 	!rA   c              ƒ   ód   K  — |                       ¦   «         ƒ d{V —†}|                      |¦  «        S )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Ñ-Ô-Ð-rA   r¿   c           	      óÎ  — |                      t          d¦  «        }t          |¦  «        }|j        dk    rr| j        €7 t          | ¦  «        || j        | j        | j        | j        | j	        ¬¦  «        S |                      || j        | j        | j        | j        | j	        ¬¦  «        S |  
                    | 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   rt  Nrp  )r¸   r¹   r»   r¼   )rÈ   r   r   rO  rn  rÄ   rÔ   rz  r{  rÕ   Úpart_reader_clsrÂ   rv  r¸   rÅ   )rŸ   r¾   rF  rG  s       r?   r’  z MultipartReader._get_part_reader2  sþ   € ð —’�L¨"Ñ-Ô-ˆÝ! %Ñ(Ô(ˆàŒ=˜KÒ'Ð'ØÔ(Ð0Ø!•t˜D‘z”zØØ”MØ$(Ô$9Ø#'Ô#7Ø $Ô 1Ø'+Ô'?ðñ ô ð ð ×,Ò,ØØ”Ø $Ô 5Ø#Ô3Ø Ô-Ø#'Ô#;ð -ñ ô ð ð ×'Ò'Ø”ØØ”ØœÔ.Ø $Ô 5Ø $Ô 5Ø#'Ô#;ð (ñ ô ð rA   c                 ót   — | j         j        d         }t          |¦  «        dk    rt          d|z  ¦  «        ‚|S )Nr½   éF   z&boundary %r is too long (70 chars max))rv  rE  rY   rÊ   )rŸ   r½   s     r?   rw  zMultipartReader._get_boundary\  s;   € Ø”>Ô,¨ZÔ8ˆÝˆx‰=Œ=˜2ÒÐÝÐEÈÑPÑQÔQÐQàˆrA   c              ƒ   ó„   K  — | j         r| j                              ¦   «         S | j                             ¦   «         ƒ d {V —†S r;   )rÏ   r|   rÄ   rî   r¢   s    r?   Ú	_readlinezMultipartReader._readlinec  sJ   è è € ØŒ<ð 	&Ø”<×#Ò#Ñ%Ô%Ð%Ø”]×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-rA   c              ƒ   óè   K  — 	 |                       ¦   «         ƒ d {V —†}|dk    rt          d| j        z  ¦  «        ‚|                     ¦   «         }|| j        k    rd S || j        dz   k    r	d| _        d S Œp)NTrA   z#Could not find starting boundary %rr	  )r˜  rÊ   rÂ   r�   rÆ   ©rŸ   rò   s     r?   r‹  z*MultipartReader._read_until_first_boundaryh  s•   è è € ð	ØŸ.š.Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*ˆEØ˜Š|ˆ|Ý Ø9¸T¼^ÑLñô ð ð —L’L‘N”NˆEØ˜œÒ&Ð&Ø�Ø˜$œ.¨5Ñ0Ò0Ð0Ø#�”Ø�ð	rA   c              ƒ   óÎ  K  — |                       ¦   «         ƒ d {V —†                     ¦   «         }|| j        k    rd S || j        dz   k    rƒd| _        |                       ¦   «         ƒ d {V —†}|                       ¦   «         ƒ d {V —†}|d d…         dk    r| j                             |¦  «         d S | j                             ||g¦  «         d S t          d|›d| j        ›�¦  «        ‚)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Ô1ˆØ�D”NÒ"Ð"ØˆDØ�d”n uÑ,Ò,Ð,ØˆDŒLØ!Ÿ^š^Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-ˆHØ"ŸnšnÑ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.ˆIð ˜˜!˜Œ} Ò%Ð%Ø”×#Ò# IÑ.Ô.Ð.Ð.Ð.ð
 ”×#Ò# Y°Ð$9Ñ:Ô:Ð:Ð:Ð:åÐW°ÐWÐWÀTÄ^ÐWÐWÑXÔXÐXrA   c              ƒ   ó`  K  — g }	 | j                              | j        ¬¦  «        ƒ d {V —†}|                     d¦  «        }|                     |¦  «         |sn(t          |¦  «        | j        k    rt          d¦  «        ‚Œ{t          | j        ¬¦  «        }| 	                    |¦  «        \  }}|S )NT)Úmax_line_lengthré   zToo many headers received)rq  )
rÄ   rî   rz  r�   r–   rY   r{  r"   r!   Úparse_headers)rŸ   Úlinesrò   Úparserr¾   Úraw_headerss         r?   r‘  zMultipartReader._read_headers�  sÇ   è è € Øˆð	BØœ-×0Ò0ÀÔAUÐ0ÑVÔVÐVÐVÐVÐVÐVÐVˆEØ—L’L Ñ)Ô)ˆEØ�LŠL˜ÑÔÐØð ØÝ�5‰zŒz˜DÔ-Ò-Ð-Ý$Ð%@ÑAÔAÐAð	Bõ ¨dÔ.BÐCÑCÔCˆØ%×3Ò3°EÑ:Ô:Ñˆ�ØˆrA   c              ƒ   óâ   K  — | j         �e| j                              ¦   «         s| j                              ¦   «         ƒ d{V —† | j                             | j         j        ¦  «         d| _         dS dS )z8Ensures that the last read body part is read completely.N)ry  r¯   r±   rÏ   rß   r¢   s    r?   rŠ  z(MultipartReader._maybe_release_last_part›  sx   è è € àŒ?Ð&Ø”?×)Ò)Ñ+Ô+ð 0Ø”o×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ØŒL×Ò ¤Ô 7Ñ8Ô8Ð8Ø"ˆDŒOˆOˆOð	 'Ð&rA   r´   )rM   r¿   )'rF   rG   rH   rµ   r›   r�  rn  rO  rj  r/   r”  rL  rM  rÊ   r   rt   r+   rË   rP  r    r.   r£   r   r«   Úclassmethodr„  rQ   r¯   r§   r±   r�  r’  rw  rN  r˜  r‹  rŒ  r‘  rŠ  rI   rA   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ð Yð Yð Yð.ð ð ð ð#ð #ð #ð #ð #ð #rA   r4   c                   ó‚  ‡ — 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¸   r½   rM   c                 ó8  •— |�|nt          j        ¦   «         j        }	 |                     d¦  «        | _        n# t
          $ r t          d¦  «        d ‚w xY wd|› d| j        › �}t          ¦   «          	                    d |¬¦  «         g | _
        |dk    | _        d S )NÚasciiz(boundary should contain ASCII only charsz
multipart/z; boundary=)Úcontent_typerÁ   )ÚuuidÚuuid4Úhexrx  rÂ   ÚUnicodeEncodeErrorrÊ   Ú_boundary_valuerZ  r    Ú_partsrÇ   )rŸ   r¸   r½   rF  r\  s       €r?   r    zMultipartWriter.__init__®  s´   ø€ Ø'Ð3�8�8½¼¹¼Ô9Iˆð	SØ%Ÿ_š_¨WÑ5Ô5ˆDŒNˆNøÝ!ð 	Sð 	Sð 	SÝÐGÑHÔHÈdÐRð	SøøøàG˜WÐGÐG°Ô1EÐGÐGˆå‰Œ×Ò˜¨EÐÑ2Ô2Ð2à#%ˆŒØ$¨Ò3ˆÔÐÐs	   Ÿ: ºAc                 ó   — | S r;   rI   r¢   s    r?   Ú	__enter__zMultipartWriter.__enter__À  r¤   rA   Úexc_typeÚexc_valÚexc_tbc                 ó   — d S r;   rI   )rŸ   r±  r²  r³  s       r?   Ú__exit__zMultipartWriter.__exit__Ã  s	   € ð 	ˆrA   c                 óL   — | j         pt          d„ | j        D ¦   «         ¦  «        S )zAWhether the writer or any of its parts can no longer be replayed.c              3   ó,   K  — | ]\  }}}|j         V — Œd S r;   )Úconsumed)r=   rª   r‰   s      r?   r@   z+MultipartWriter.consumed.<locals>.<genexpr>Î  s*   è è € Ð$QÐ$Q±z°t¸QÀ T¤]Ð$QÐ$QÐ$QÐ$QÐ$QÐ$QrA   )rf  Úanyr®  r¢   s    r?   r¸  zMultipartWriter.consumedË  s*   € ð Œ~ÐQ¥Ð$QÐ$QÀTÄ[Ð$QÑ$QÔ$QÑ!QÔ!QÐQrA   c                 ó*   — t          | j        ¦  «        S r;   )Úiterr®  r¢   s    r?   Ú__iter__zMultipartWriter.__iter__Ð  s   € Ý�D”KÑ Ô Ð rA   c                 ó*   — t          | j        ¦  «        S r;   )rY   r®  r¢   s    r?   Ú__len__zMultipartWriter.__len__Ó  s   € Ý�4”;ÑÔÐrA   c                 ó   — dS )NTrI   r¢   s    r?   Ú__bool__zMultipartWriter.__bool__Ö  s   € ØˆtrA   s   \A[!#$%&'*+\-.^_`|~\w]+\Zs   [\x00-\x08\x0A-\x1F\x7F]c                 óN  — | j         }t          j        | j        |¦  «        r|                     d¦  «        S t          j        | j        |¦  «        rt          d¦  «        ‚|                     dd¦  «        }|                     dd¦  «        }d|                     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�DÔ+¨UÑ3Ô3ð 	)Ø—<’< Ñ(Ô(Ð(åŒ9�TÔ4°eÑ<Ô<ð 	KÝÐIÑJÔJÐJð  %Ÿ}š}¨U°GÑ<Ô<ÐØ3×;Ò;¸DÀ&ÑIÔIÐàÐ)×0Ò0°Ñ9Ô9Ñ9¸CÑ?Ð?rA   c                 ó6   — | j                              d¦  «        S )Nr§  )rÂ   rÜ   r¢   s    r?   r½   zMultipartWriter.boundaryü  s   € àŒ~×$Ò$ WÑ-Ô-Ð-rA   rƒ  r¾   c                 ó8  — |€t          ¦   «         }t          |t          ¦  «        r/|j                             |¦  «         |                      |¦  «        S 	 t          ||¬¦  «        }|                      |¦  «        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%   r`  )rŸ   rƒ  r¾   Úpayloads       r?   r–   zMultipartWriter.append   s®   € Øˆ?Ý!‘m”mˆGå�c�7Ñ#Ô#ð 		4ØŒK×Ò˜wÑ'Ô'Ð'Ø×&Ò& sÑ+Ô+Ð+ð4Ý% c°7Ð;Ñ;Ô;�ð ×*Ò*¨7Ñ3Ô3Ð3øõ ð Gð Gð GÝÐ ?À#Ñ EÑFÔFÐFðGøøøs   ÁA< Á<BrÏ  c                 óÆ  — d}d}| j         rmt          t          t          h|j                             ¦   «         z  rJ ‚t          |j        vr.dt          | j        ¦  «        › �}| 	                    d|¬¦  «         nË|j         
                    t          d¦  «                             ¦   «         }|r|dvrt          d|› �¦  «        ‚|dk    rd}|j         
                    t          d¦  «                             ¦   «         }|d	vrt          d
|› �¦  «        ‚|dk    rd}|j        }|� |s|st          |¦  «        |j        t          <   | 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  s�  € à#ˆØ"&ˆØÔð 	<õ &¥~Õ7PÐQØ”/×&Ò&Ñ(Ô(ñ)ðð ð)õ #¨'¬/Ð9Ð9Ø4¥# d¤kÑ"2Ô"2Ð4Ð4�Ø×/Ò/°À$Ð/ÑGÔGÐGøð ”×*Ò*Õ+;¸RÑ@Ô@×FÒFÑHÔHˆHØð L˜HÐ,KÐKÐKÝ"Ð#JÀÐ#JÐ#JÑKÔKÐKØ˜:Ò%Ð%Ø�ð "œ/×-Ò-Õ.GÈÑLÔL×RÒRÑTÔTˆKØÐ"NÐNÐNÝ"Ð#VÈÐ#VÐ#VÑWÔWÐWØ˜hÒ&Ð&Ø"�ð ”<ˆDØÐ¨Ð°[ÐÝ25°d±)´)�”¥Ñ/àŒ×Ò˜G X¨{Ð;Ñ<Ô<Ð<ØˆrA   c                 ój   — |€t          ¦   «         }|                      t          ||¬¦  «        ¦  «        S )zHelper to append JSON part.NrÌ  )r   rÎ  r$   )rŸ   rƒ  r¾   s      r?   Úappend_jsonzMultipartWriter.append_json5  s3   € ð ˆ?Ý!‘m”mˆGà×"Ò"¥;¨s¸GÐ#DÑ#DÔ#DÑEÔEÐErA   c                 ó6  — t          |t          t          f¦  «        sJ ‚|€t          ¦   «         }t          |t          ¦  «        r!t	          |                     ¦   «         ¦  «        }t          |d¬¦  «        }|                      t          ||d¬¦  «        ¦  «        S )z&Helper to append form urlencoded part.NT)Údoseqz!application/x-www-form-urlencoded)r¾   r¨  )	rŽ  r   r   r   rQ  r”   r   rÎ  r(   )rŸ   rƒ  r¾   rã   s       r?   Úappend_formzMultipartWriter.append_form>  s˜   € õ ˜#¥­'Ð2Ñ3Ô3Ð3Ð3Ð3àˆ?Ý!‘m”mˆGå�c�7Ñ#Ô#ð 	$Ý�s—y’y‘{”{Ñ#Ô#ˆCÝ˜ DÐ)Ñ)Ô)ˆà×"Ò"ÝØ˜gÐ4Wðñ ô ñ
ô 
ð 	
rA   c                 ó
  — d}| j         D ][\  }}}|j        }|s|s|€ dS |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Øð ˜;ð ¨)Ð*;Ø�t�tà•SØÝ�d”nÑ%Ô%ñ&àñð ñõ �dÔ*Ñ+Ô+ñ	,ð
 ññô ñ ˆEˆEð 	�•S˜œÑ(Ô(Ñ(¨1Ñ,Ñ,ˆØˆrA   rr   rs   rˆ   r]  c                 óX   ‡ ‡‡— d                      ˆˆˆ 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  — | ]F\  }}}d ‰j         z   dz   |j                             ‰‰¦  «        z   |                     ¦   «         z   V — ŒGdS )ru  z
N)r½   rÙ  rÜ   )r=   rª   Ú_eÚ_terˆ   r]  rŸ   s       €€€r?   r@   z)MultipartWriter.decode.<locals>.<genexpr>n  s€   øè è € ð 
ð 
ñ ��b˜#ð ØŒmñàñð Ô"×)Ò)¨(°FÑ;Ô;ñ<ð �kŠk‰mŒmñ	ð
ð 
ð 
ð 
ð 
ð 
rA   )ru   r®  ra  s   ```r?   rÜ   zMultipartWriter.decodeh  sQ   øøø€ ð �wŠwð 
ð 
ð 
ð 
ð 
ð 
ð "&¤ð
ñ 
ô 
ñ 
ô 
ð 	
rA   c              ƒ   ó�  K  — g }| j         D ]†\  }}}|                     d| j        z   dz   ¦  «         |                     |j        ¦  «         |                     ||¦  «        ƒ d{V —†}|                     |¦  «         |                     d¦  «         Œ‡|                     d| j        z   dz   ¦  «         d                     |¦  «        S )z‰Return bytes representation of the multipart data.

        This method is async-safe and calls as_bytes on underlying payloads.
        r	  ré   Nó   --
rA   )r®  r–   rÂ   rÙ  rc  ru   )rŸ   rˆ   r]  rƒ   rª   rÞ  rß  Ú
part_bytess           r?   rc  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Ô8Ð8à�xŠx˜‰ŒÐrA   rd  Úclose_boundaryc              ƒ   ó¾  K  — | j         D �]'\  }}}| j        r&t          |j        v sJ ‚d|j        t                   v sJ ‚|                     d| j        z   dz   ¦  «        ƒ d{V —† |                     |j        ¦  «        ƒ d{V —† |s|rst          |¦  «        }|r|                     |¦  «         |r| 	                    |¦  «         |                     |¦  «        ƒ d{V —† | 
                    ¦   «         ƒ d{V —† n|                     |¦  «        ƒ d{V —† |                     d¦  «        ƒ d{V —† �Œ)|r(|                     d| j        z   dz   ¦  «        ƒ d{V —† dS dS )zWrite body.zname=r	  ré   Nrá  )r®  rÇ   r   r¾   rg  rÂ   rÙ  ÚMultipartPayloadWriterÚenable_compressionÚenable_encodingÚ	write_eof)rŸ   rd  rã  rª   rˆ   rÒ  Úws          r?   rg  zMultipartWriter.write’  sÞ  è è € ð ,0¬;ð 	(ñ 	(Ñ'ˆD�(˜KØÔ!ð Då*¨d¬lÐ:Ð:Ð:Ð:Ø $¤,Õ/BÔ"CÐCÐCÐCÐCà—,’,˜u t¤~Ñ5¸Ñ?Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ø—,’,˜tÔ3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4àð 	)˜;ð 	)Ý*¨6Ñ2Ô2�Øð 3Ø×(Ò(¨Ñ2Ô2Ð2Øð 3Ø×%Ò% kÑ2Ô2Ð2Ø—j’j ‘m”mÐ#Ð#Ð#Ð#Ð#Ð#Ð#Ø—k’k‘m”mÐ#Ð#Ð#Ð#Ð#Ð#Ð#Ð#à—j’j Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(à—,’,˜wÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ñ'àð 	CØ—,’,˜u t¤~Ñ5¸	ÑAÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBÐBð	Cð 	CrA   c              ƒ   ó  K  — | j         rdS d| _         t          | j        ¦  «        D ]b\  }\  }}}|j        sR|j        sK	 |                     ¦   «         ƒ d{V —† Œ3# t          $ r"}t          j        d||d¬¦  «         Y d}~ŒZd}~ww xY wŒcdS )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)	rf  r•   r®  Ú	autocloser¸  ÚcloserP  r#   Úerror)rŸ   r  rª   r‰   Úexcs        r?   rí  zMultipartWriter.close¯  sæ   è è € ð Œ>ð 	ØˆFØˆŒõ "+¨4¬;Ñ!7Ô!7ð 	ð 	ÑˆC‘�$˜˜1Ø”>ð ¨$¬-ð ðØŸ*š*™,œ,Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&øÝ ð ð ð Ý#Ô)Ø?ÀÀcÐTXðñ ô ð ð ð ð ð ð øøøøðøøøøð		ð 	s   ¿AÁ
BÁ$BÂB)r·   N)rM   r5   r;   ri  )Tr´   )-rF   rG   rH   rµ   rj  Ú
_autoclosert   r    r°  rO  ÚBaseExceptionr   rµ  ÚpropertyrQ   r¸  r   Ú_Partr¼  rË   r¾  rÀ  rm   ÚcompilerÅ  rÇ  r­  r½   r
   r   r'   r–   rÎ  rÔ  r   rR  r×  ræ   rÜ   rN  rc  r   rg  rí  rk  rl  s   @r?   r5   r5   §  s¸  ø€ € € € € € Ø Ð à€L€L�Là€Jð4ð 4 ð 4¸¸t¹ð 4Ètð 4ð 4ð 4ð 4ð 4ð 4ð$ð ð ð ðà�}Ô%¨Ñ,ðð  Ñ%ðð  Ñ$ð	ð
 
ðð ð ð ð ðR˜$ð Rð Rð Rñ „XðRð!˜( 5œ/ð !ð !ð !ð !ð ˜ð  ð  ð  ð  ð˜$ð ð ð ð ð $˜œÐ$AÑBÔBÐØ!+ ¤Ð,HÑ!IÔ!IÐàð@ ð @ð @ð @ñ „Xð@ð> ð.˜#ð .ð .ð .ñ „Xð.ð4ð 4˜#ð 4¨°°S°Ô(9¸DÑ(@ð 4ÈGð 4ð 4ð 4ð 4ð$ gð $°'ð $ð $ð $ð $ðN =AðFð FØðFØ!(¨¨c¨Ô!2°TÑ!9ðFà	ðFð Fð Fð Fð -1ð
ð 
à�e˜C ˜H”oÔ&¨°°c°Ô):Ñ:ð
ð ˜˜c˜Ô" TÑ)ð
ð 
ð	
ð 
ð 
ð 
ð* ð�c˜D‘jð ð ð ñ „Xðð(
ð 
˜sð 
°cð 
Èð 
ð 
ð 
ð 
ðð  sð ¸cð ÐQVð ð ð ð ð8 DHðCð CØ*ðCØ<@ðCà	ðCð Cð Cð Cð:ð ð ð ð ð ð ð rA   r5   c                   ód   — 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dS )rå  rd  rM   Nc                 ó>   — || _         d | _        d | _        d | _        d S r;   )Ú_writerÚ	_encodingÚ	_compressÚ_encoding_buffer)rŸ   rd  s     r?   r    zMultipartPayloadWriter.__init__Ê  s%   € ØˆŒØ%)ˆŒØ04ˆŒØ26ˆÔÐÐrA   rˆ   c                 óh   — |dk    r|| _         t          ¦   «         | _        d S |dk    r	d| _         d S d S )Nrè   r;  )rø  rÞ   rú  )rŸ   rˆ   s     r?   rç  z&MultipartPayloadWriter.enable_encodingÐ  sE   € Ø�xÒÐØ%ˆDŒNÝ$-¡K¤KˆDÔ!Ð!Ð!ØÐ+Ò+Ð+Ø/ˆDŒNˆNˆNð ,Ð+rA   r.  Ústrategyc                 ó4   — t          |d|¬¦  «        | _        d S )NT)rˆ   r0  rü  )r   rù  )rŸ   rˆ   rü  s      r?   ræ  z)MultipartPayloadWriter.enable_compression×  s'   € õ (ØØ$(Øð
ñ 
ô 
ˆŒˆˆrA   c              ƒ   ó,  K  — | j         �=| j                              ¦   «         }|r"d | _         |                      |¦  «        ƒ d {V —† | j        dk    r@| j        r;| j                             t          j        | j        ¦  «        ¦  «        ƒ d {V —† d S d S d S )Nrè   )rù  Úflushrg  rø  rú  r÷  rè   Ú	b64encoderš  s     r?   rè  z MultipartPayloadWriter.write_eofà  s½   è è € ØŒ>Ð%Ø”N×(Ò(Ñ*Ô*ˆEØð (Ø!%�”Ø—j’j Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'àŒ>˜XÒ%Ð%ØÔ$ð RØ”l×(Ò(­Ô)9¸$Ô:OÑ)PÔ)PÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQÐQð &Ð%ðRð RrA   rò   c              ƒ   ót  K  — | j         �&|r$| j                              |¦  «        ƒ d {V —†}|sd S | j        dk    rž| j        }|€J ‚|                     |¦  «         |rxt          t          |¦  «        d¦  «        \  }}|d |dz  …         ||dz  d …         c}| _        |r8t          j        |¦  «        }| j	         
                    |¦  «        ƒ d {V —† d S d S d S | j        dk    r4| j	         
                    t          j        |¦  «        ¦  «        ƒ d {V —† d S | j	         
                    |¦  «        ƒ d {V —† d S )Nrè   r,   r;  )rù  Úcompressrø  rú  rß   ÚdivmodrY   rè   r   r÷  rg  rA  Úb2a_qp)rŸ   rò   ÚbufÚdivÚmodÚ	enc_chunkÚb64chunks          r?   rg  zMultipartPayloadWriter.writeë  s’  è è € ØŒ>Ð%Øð Ø"œn×5Ò5°eÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<�Øð Ø�FàŒ>˜XÒ%Ð%ØÔ'ˆCØ�?�?�?Ø�JŠJ�uÑÔÐàð 7Ý!¥# c¡(¤(¨AÑ.Ô.‘��SØ47¸	¸#À¹'¸	´NÀCÈÈaÉÈ	È	ÄNÐ0�	˜4Ô0Øð 7Ý%Ô/°	Ñ:Ô:�HØœ,×,Ò,¨XÑ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ð7ð 7ð7ð 7ð Œ^Ð1Ò1Ð1Ø”,×$Ò$¥X¤_°UÑ%;Ô%;Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<à”,×$Ò$ UÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+rA   )r.  Nr´   )rF   rG   rH   r   r    rt   rç  rË   ræ  rè  rN  rg  rI   rA   r?   rå  rå  É  sÏ   € € € € € ð7Ð3ð 7¸ð 7ð 7ð 7ð 7ð0¨ð 0°ð 0ð 0ð 0ð 0ð AEð
ð 
Øð
Ø36¸±:ð
à	ð
ð 
ð 
ð 
ð	Rð 	Rð 	Rð 	Rð, ð ,¨4ð ,ð ,ð ,ð ,ð ,ð ,rA   rå  )r�   )\rè   rA  r   r  rm   rL  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   rN  rÞ   r3   Ú__all__Ú	frozensetr<   Úrangerö   Úclient_reqreprC   ÚRuntimeWarningr6   r7   rt   rR  r  r8   r9   r›   r/   Ú	try_firstrU  r4   ró  r5   rå  rI   rA   r?   ú<module>r     sM  ðØ €€€Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ Ð Ð Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3à %Ð %Ð %Ð %Ð %Ð %Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?ðð ð ð ð ð ð ð ð ð ð ð ð ð ð LÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð "Ð !Ð !Ð !Ð !Ð !àÔ�wÒÐØÐÐÐÐÐÐàˆ7�6Ð!1Ð2Ñ2Ô2€DàÔ�wÒÐØ&Ð&Ð&Ð&Ð&Ð&Ð&à�5˜)Ð%6Ð8KÐKÔL€Fà
ˆ'�) 6Ð
*Ñ
*Ô
*€ð€ð �	ØHñô €ð �EÐJÐJ U U¨3¡Z¤ZÐJÑJÔJÑJÔJÐ ð ð .Ø-Ð-Ð-Ð-Ð-Ð-ð	ð 	ð 	ð 	ð 	 .ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	 ñ 	ô 	ð 	ðj$Ø�$‰Jðj$à
ˆ3�‰:�t˜C ˜H”~Ð%Ô&ðj$ð j$ð j$ð j$ð\ ,6ð%ð %Ø�C˜�HÔð%Ø%(ð%àˆ4�Zð%ð %ð %ð %ðP,"ð ,"ð ,"ð ,"ð ,"ñ ,"ô ,"ð ,"ð^w@ð w@ð w@ð w@ð w@ñ w@ô w@ð w@ðt €ˆn E¤OÐ4Ñ4Ô4ð%&ð %&ð %&ð %&ð %&˜Gñ %&ô %&ñ 5Ô4ð%&ðPg#ð g#ð g#ð g#ð g#ñ g#ô g#ð g#ðT 	ˆg�s˜CÐÔ €ð_ð _ð _ð _ð _�gñ _ô _ð _ðD	7,ð 7,ð 7,ð 7,ð 7,ñ 7,ô 7,ð 7,ð 7,ð 7,rA   