Ë
    ‹V.jB  ã                   ó  — U 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	 d dl
mZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZ dd	lmZ dd
l m!Z! ddl"m#Z#m$Z$m%Z% ddl&m'Z'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1 dZ2erddl3m4Z4 eee5ged   f      Z6 e7ejp                  js                  d«      «      Z:ee7   e;d<    e«       Z<ee   e;d<    edD � ci c]  } | e<jz                  |    “Œ c} «      Z>dZ? eddddddœ«      Z@ G d„ de«      ZAe<jz                  j…                  «        e@j‡                  «       D ]  \  ZDZEe<j�                  eDeE«       Œ  eG«       ZHee j’                  d      e;d<    G d„ d e1«      ZJyc c} w )!é    N)Úsuppress)ÚEnumÚauto)Ú	MimeTypes)ÚS_ISREG)ÚMappingProxyType)ÚIOÚTYPE_CHECKINGÚAnyÚ	AwaitableÚCallableÚFinalÚIteratorÚListÚOptionalÚSetÚTupleÚUnionÚcasté   )Úhdrs)ÚAbstractStreamWriter)ÚETAG_ANYÚETagÚmust_be_empty_body)ÚLooseHeadersÚPathLike)ÚHTTPForbiddenÚHTTPNotFoundÚHTTPNotModifiedÚHTTPPartialContentÚHTTPPreconditionFailedÚHTTPRequestRangeNotSatisfiable)ÚStreamResponse)ÚFileResponse)ÚBaseRequestÚAIOHTTP_NOSENDFILEÚ
NOSENDFILEÚCONTENT_TYPES)ú.brú.gzzapplication/octet-streamr+   r*   z.bz2z.Zz.xz)zapplication/gzipzapplication/x-brotlizapplication/x-bzip2zapplication/x-compresszapplication/x-xzc                   óH   — e Zd ZdZ e«       Z e«       Z e«       Z e«       Zy)Ú_FileResponseResultz The result of the file response.N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú	SEND_FILEÚNOT_ACCEPTABLEÚPRE_CONDITION_FAILEDÚNOT_MODIFIED© ó    úZC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\aiohttp/web_fileresponse.pyr-   r-   J   s"   „ Ù*á“€IÙ“V€NÙ›6ÐÙ“6�Lr7   r-   Ú_CLOSE_FUTURESc                   ó4  ‡ — e Zd ZdZ	 	 	 	 d"dedededee   dee   ddfˆ fd	„Z	d
e
e   dededefd„Zded
e
e   dededef
d„Zddd
e
e   dededef
ˆ fd„Zededeedf   dedefd„«       Zdddededee   fˆ fd„Zdddee   fˆ fd„Zdddedeeeej6                     ej:                  ee   f   fd„Zdedeeej@                     ej:                  ee   f   fd„Z!dddee   fˆ fd„Z"ddd
ej6                  dej:                  d ee   dee   f
ˆ fd!„Z#ˆ xZ$S )#r%   z,A response object can be used to send files.NÚpathÚ
chunk_sizeÚstatusÚreasonÚheadersÚreturnc                 ól   •— t         ‰| �  |||¬«       t        j                  |«      | _        || _        y )N)r=   r>   r?   )ÚsuperÚ__init__ÚpathlibÚPathÚ_pathÚ_chunk_size)Úselfr;   r<   r=   r>   r?   Ú	__class__s         €r8   rC   zFileResponse.__init___   s1   ø€ ô 	‰Ñ ¨v¸wÐÔGä—\‘\ $Ó'ˆŒ
Ø%ˆÕr7   ÚfobjÚoffsetc                 óF   — |j                  |«       |j                  |«      S ©N)ÚseekÚread)rH   rJ   rK   r<   s       r8   Ú_seek_and_readzFileResponse._seek_and_readl   s   € Ø�	‰	�&ÔØ�y‰y˜Ó$Ð$r7   ÚwriterÚcountc              ƒ   óŒ  K  — | j                   }t        j                  «       }|j                  d | j                  |||«      ƒ d {  –—† }|rV|j                  |«      ƒ d {  –—†  ||z
  }|dk  rn2|j                  d |j                  t        ||«      «      ƒ d {  –—† }|rŒV|j                  «       ƒ d {  –—†  |S 7 Œv7 Œ]7 Œ%7 Œ­w©Nr   )	rG   ÚasyncioÚget_event_loopÚrun_in_executorrP   ÚwriterO   ÚminÚdrain)rH   rQ   rJ   rK   rR   r<   ÚloopÚchunks           r8   Ú_sendfile_fallbackzFileResponse._sendfile_fallbackp   sÆ   è ø€ ð ×%Ñ%ˆ
Ü×%Ñ%Ó'ˆØ×*Ñ*Ø�$×%Ñ% t¨V°Zó
÷ 
ˆñ Ø—,‘,˜uÓ%×%Ð%Ø˜JÑ&ˆEØ˜ŠzØØ×.Ñ.¨t°T·Y±YÄÀJÐPUÓ@VÓW×WˆEò ð �l‰l‹n×ÐØˆð
øð &øð XøàúsN   ‚ACÁB<ÁCÁ B>Á!9CÂC ÂCÂ"CÂ5CÂ6CÂ>CÃ CÃCÚrequestr&   c              ƒ   ó¨  •K  — t         ‰| �  |«      ƒ d {  –—† }|€J ‚t        s| j                  r| j	                  ||||«      ƒ d {  –—† S |j
                  }|j                  }|€J ‚	 |j                  ||||«      ƒ d {  –—†  t         ‰| �%  «       ƒ d {  –—†  |S 7 Œ‡7 ŒW7 Œ # t        $ r  | j	                  ||||«      ƒ d {  –—†7  cY S w xY w7 Œ8­wrM   )
rB   Úpreparer(   Úcompressionr]   Ú_loopÚ	transportÚsendfileÚNotImplementedErrorÚ	write_eof)	rH   r^   rJ   rK   rR   rQ   r[   rc   rI   s	           €r8   Ú	_sendfilezFileResponse._sendfile…   sç   øè ø€ ô ‘w‘ wÓ/×/ˆØÐ!Ð!Ð!å˜×)Ò)Ø×0Ñ0°¸¸vÀuÓM×MÐMà�}‰}ˆØ×%Ñ%ˆ	ØÐ$Ð$Ð$ð	NØ—-‘- 	¨4°¸Ó?×?Ð?ô ‰gÑÓ!×!Ð!Øˆð! 0øð Nøð @ùÜ"ò 	NØ×0Ñ0°¸¸vÀuÓM×MÐMÒMð	Núð 	"úso   ƒC–B—1CÁB Á	 CÁ*B$ ÂB"ÂB$ ÂCÂCÂCÂ CÂ"B$ Â$ CÃCÃCÃ
CÃCÃCÚ
etag_valueÚetags.Úweakc                óz   ‡ ‡— t        |«      dk(  r|d   j                  t        k(  ryt        ˆ ˆfd„|D «       «      S )Nr   r   Tc              3   óZ   •K  — | ]"  }‰s|j                   rŒ|j                  ‰k(  –— Œ$ y ­wrM   )Úis_weakÚvalue)Ú.0Úetagrh   rj   s     €€r8   Ú	<genexpr>z+FileResponse._etag_match.<locals>.<genexpr>ž   s&   øè ø€ ð 
Ù16¨¹$ÀdÇlÃlˆD�J‰J˜*Õ$±ùs   ƒ+—+)Úlenrn   r   Úany)rh   ri   rj   s   ` `r8   Ú_etag_matchzFileResponse._etag_matchš   s:   ù€ äˆu‹:˜Š?˜u Q™xŸ~™~´Ò9ØÜô 
Ù16ó
ó 
ð 	
r7   Úlast_modifiedc              ƒ   ó¦   •K  — | j                  t        j                  «       d| _        || _        || _        t        ‰| �  |«      ƒ d {  –—† S 7 Œ­w)NF)Ú
set_statusr    Ústatus_codeÚ_length_checkrp   ru   rB   r`   )rH   r^   rh   ru   rI   s       €r8   Ú_not_modifiedzFileResponse._not_modified¢   sI   øè ø€ ð 	�‰œ×3Ñ3Ô4Ø"ˆÔØˆŒ	Ø*ˆÔô ‘W‘_ WÓ-×-Ð-Ð-ús   ƒAAÁ
AÁAc              ƒ   óŠ   •K  — | j                  t        j                  «       d| _        t        ‰| �  |«      ƒ d {  –—† S 7 Œ­wrT   )rw   r"   rx   Úcontent_lengthrB   r`   )rH   r^   rI   s     €r8   Ú_precondition_failedz!FileResponse._precondition_failed­   s9   øè ø€ ð 	�‰Ô.×:Ñ:Ô;ØˆÔÜ‘W‘_ WÓ-×-Ð-Ð-ús   ƒ9A¼A½AÚaccept_encodingc                 óF  — | j                  |«      \  }}}|st        j                  d|dfS |j                  d›d|j                  d›�}|j
                  x}�(| j                  ||d¬«      st        j                  d||fS |j                  x}�3|€1|j                  |j                  «       kD  rt        j                  d||fS |j                  x}	�(| j                  ||	d¬«      rt        j                  d||fS |j                  x}
�3|	€1|j                  |
j                  «       k  rt        j                  d||fS |j                  d«      }t        t         «      5  t#        j$                  |j'                  «       «      }ddd«       t        j(                  |||fS # 1 sw Y   ŒxY w)a  Return the response result, io object, stat result, and encoding.

        If an uncompressed file is returned, the encoding is set to
        :py:data:`None`.

        This method should be called from a thread executor
        since it calls os.stat which may block.
        NÚxÚ-F)rj   TÚrb)Ú_get_file_path_stat_encodingr-   r3   Úst_mtime_nsÚst_sizeÚif_matchrt   r4   Úif_unmodified_sinceÚst_mtimeÚ	timestampÚif_none_matchr5   Úif_modified_sinceÚopenr   ÚOSErrorÚosÚstatÚfilenor2   )rH   r^   r~   Ú	file_pathÚstÚfile_encodingrh   ÚifmatchÚ
unmodsinceÚifnonematchÚmodsincerJ   s               r8   Ú_make_responsezFileResponse._make_response´   sµ  € ð (,×'HÑ'HØó(
Ñ$ˆ	�2�}ñ Ü&×5Ñ5°t¸RÀÐEÐEàŸ™ qÐ)¨¨2¯:©:°a¨.Ð9ˆ
ð ×'Ñ'Ð'ˆGÐ4¸T×=MÑ=MØ˜ eð >Nô >
ô '×;Ñ;¸TÀ2À}ÐTÐTð #×6Ñ6Ð6ˆZÐCØ�Ø—‘˜j×2Ñ2Ó4Ò4ä&×;Ñ;¸TÀ2À}ÐTÐTð #×0Ñ0Ð0ˆKÐ=À$×BRÑBRØ˜¨$ð CSô C
ô '×3Ñ3°T¸2¸}ÐLÐLð !×2Ñ2Ð2ˆXÐ?ØÐ#Ø—‘˜x×1Ñ1Ó3Ò3ä&×3Ñ3°T¸2¸}ÐLÐLà�~‰~˜dÓ#ˆÜ”gÕô
 —‘˜Ÿ™›Ó'ˆB÷ ô #×,Ñ,¨d°B¸ÐEÐE÷ Ðús   Å$FÆF c                 óª  — | j                   }t        j                  «       D ]v  \  }}||vrŒ|j                  |j                  |z   «      }t        t        «      5  |j                  «       }t        |j                  «      r|||fcd d d «       c S 	 d d d «       Œx |j                  «       }t        |j                  «      r||d fS d |d fS # 1 sw Y   Œ±xY wrM   )rF   ÚENCODING_EXTENSIONSÚitemsÚwith_suffixÚsuffixr   r�   Úlstatr   Úst_moder�   )rH   r~   r‘   Úfile_extensionr“   Úcompressed_pathr’   s          r8   rƒ   z)FileResponse._get_file_path_stat_encodingì   sÈ   € ð —J‘Jˆ	Ü-@×-FÑ-FÖ-HÑ)ˆN˜MØ OÑ3Øà'×3Ñ3°I×4DÑ4DÀ~Ñ4UÓVˆOÜœ'Õ"à$×*Ñ*Ó,�Ü˜2Ÿ:™:Ô&Ø*¨B°Ð=÷	 #Ó"ð '÷ #Ð"ð .Ið �^‰^ÓˆÜ# B§J¡JÔ/ˆy¸2¸tÐCÐC°T¸2¸tÐCÐC÷ #Ð"ús   Á*C	Ã	C	c              ƒ   óD  •K  — t        j                  «       }|j                  j                  t        j
                  d«      j                  «       }	 |j                  d | j                  ||«      ƒ d {  –—† \  }}}}|t"        j$                  u r6| j                  t        j                  «       t        ‰| �9  |«      ƒ d {  –—† S |t"        j&                  u r| j)                  |«      ƒ d {  –—† S |t"        j*                  u rD|j,                  d›d|j.                  d›�}|j0                  }	| j3                  |||	«      ƒ d {  –—† S |€J ‚	 | j5                  ||||«      ƒ d {  –—† |j                  d |j6                  «      }
t8        j;                  |
«       |
j=                  t8        j>                  «       S 7 �ŒD# t        $ r: | j                  t        j                  «       t        ‰| �9  |«      ƒ d {  –—†7  cY S t        $ r: | j                  t         j                  «       t        ‰| �9  |«      ƒ d {  –—†7  cY S w xY w7 �Œ�7 �ŒY7 �Œ7 Œç# |j                  d |j6                  «      }
t8        j;                  |
«       |
j=                  t8        j>                  «       w xY w­w)NÚ r€   r�   ) rU   Úget_running_loopr?   Úgetr   ÚACCEPT_ENCODINGÚlowerrW   r˜   ÚPermissionErrorrw   r   rx   rB   r`   r�   r   r-   r3   r4   r}   r5   r„   r…   rˆ   rz   Ú_prepare_open_fileÚcloser9   ÚaddÚadd_done_callbackÚremove)rH   r^   r[   r~   Úresponse_resultrJ   r’   r“   rh   ru   Úclose_futurerI   s              €r8   r`   zFileResponse.prepareÿ   s=  øè ø€ Ü×'Ñ'Ó)ˆð "Ÿ/™/×-Ñ-¬d×.BÑ.BÀBÓG×MÑMÓOˆð	2Ø=A×=QÑ=QØ�d×)Ñ)¨7°Oó>÷ 8Ñ4ˆO˜T 2 }ð Ô1×@Ñ@Ñ@Ø�O‰OœM×5Ñ5Ô6Ü™™¨Ó1×1Ð1àÔ1×FÑFÑFØ×2Ñ2°7Ó;×;Ð;àÔ1×>Ñ>Ñ>ØŸN™N¨1Ð-¨Q¨r¯z©z¸!¨nÐ=ˆJØŸK™KˆMØ×+Ñ+¨G°ZÀÓO×OÐOàÐÐÐð	BØ×0Ñ0°¸$ÀÀMÓR×Rð  ×/Ñ/°°d·j±jÓAˆLô ×Ñ˜|Ô,Ø×*Ñ*¬>×+@Ñ+@ÕAðK8úô ò 	2Ø�O‰OœM×5Ñ5Ô6Ü™™¨Ó1×1Ð1Ò1Üò 	2ð �O‰OœL×4Ñ4Ô5Ü™™¨Ó1×1Ð1Ò1ð		2úð 2ùð <ùð
 Pùð Sùð  ×/Ñ/°°d·j±jÓAˆLô ×Ñ˜|Ô,Ø×*Ñ*¬>×+@Ñ+@ÕAüs¾   ƒAJ Á!F9 Á2F6Á3	F9 Á<AJ Â?I Ã *J Ã*IÃ+AJ Å IÅJ Å
I Å!I	Å"I Å%AJ Æ6F9 Æ9:H=Ç3G6Ç4H=Ç9J Ç;9H=È4H7È5H=È:J È<H=È=J ÉJ ÉJ É	I ÉAJÊJ r’   r“   c              ƒ   óx  •K  — | j                   }|j                  }|j                  }|}d }	|j                  x}
�||
j	                  «       k  rÏ	 |j
                  }|j                  }	|j                  }|	�¨|	dk  r|€|	|z  }	|	dk  rd}	||	z
  }nt#        |�|n||«      |	z
  }|	|k\  rVd|› �| j                  t        j                  <   | j                  t        j                  «       t        ‰| �A  |«      ƒ d {  –—† S t$        j                  }| j                  |«       t        j&                  | j                  vrVt(        j*                  dk\  rt,        j.                  }nt,        j0                  } || j2                  «      d   xs t4        | _        |rO|| j                  t        j8                  <   t        j:                  | j                  t        j<                  <   d| _        |j@                  d›d|j                  d›�| _!        || _"        || _#        d| j                  t        jH                  <   |t$        j                  k(  r:|	}|€J ‚djK                  |||z   d	z
  |«      | j                  t        j                  <   |dk(  stM        |jN                  |«      rt        ‰| �A  |«      ƒ d {  –—† S |	xs d}| jQ                  ||||«      ƒ d {  –—† S # t        $ rZ d|› �| j                  t        j                  <   | j                  t        j                  «       t        ‰| �A  |«      ƒ d {  –—†7  cY S w xY w7 �Œ=7 Œ�7 Œo­w)
Nzbytes */r   )é   é   Fr€   r�   Úbyteszbytes {}-{}/{}r   ))Ú_statusr…   rˆ   Úif_ranger‰   Ú
http_rangeÚstartÚstopÚ
ValueErrorÚ_headersr   ÚCONTENT_RANGErw   r#   rx   rB   r`   rY   r!   ÚCONTENT_TYPEÚsysÚversion_infor)   Úguess_file_typeÚ
guess_typerF   ÚFALLBACK_CONTENT_TYPEÚcontent_typeÚCONTENT_ENCODINGr¦   ÚVARYÚ_compressionr„   rp   ru   r|   ÚACCEPT_RANGESÚformatr   Úmethodrg   )rH   r^   rJ   r’   r“   r=   Ú	file_sizeÚ
file_mtimerR   r·   ÚifrangeÚrngÚendÚguesserÚ
real_startrK   rI   s                   €r8   r©   zFileResponse._prepare_open_file,  s   øè ø€ ð —‘ˆØŸ™ˆ	ØŸK™Kˆ
ØˆØ#ˆà×'Ñ'Ð'ˆGÐ0°JÀ'×BSÑBSÓBUÒ4Uð6Ø×(Ñ(�ØŸ	™	�Ø%(§X¡X�ð" Ð Ø˜1’9  Ø˜YÑ&�EØ˜q’yð !"˜Ø%¨Ñ-‘Eô  3 ?™C¸	À9ÓMÐPUÑUð ð ˜IÒ%ð ;CÀ9À+Ð8N�D—M‘M¤$×"4Ñ"4Ñ5Ø—O‘OÔ$B×$NÑ$NÔOÜ!&¡¡°Ó!9×9Ð9ä+×7Ñ7�ð —‘ Ô'ô
 ×Ñ D§M¡MÑ1Ü×Ñ 7Ò*Ü'×7Ñ7‘ä'×2Ñ2�Ù '¨¯
©
Ó 3°AÑ 6Ò OÔ:OˆDÔáØ3@ˆD�M‰Mœ$×/Ñ/Ñ0Ü'+×';Ñ';ˆD�M‰Mœ$Ÿ)™)Ñ$ð !&ˆDÔà—~‘~ aÐ(¨¨"¯*©*°Q¨Ð8ˆŒ	Ø'ˆÔØ#ˆÔà,3ˆ�‰”d×(Ñ(Ñ)àÔ'×3Ñ3Ò3ØˆJØÐ)Ð)Ð)Ø0@×0GÑ0GØ˜J¨Ñ.°Ñ2°Ió1ˆD�M‰Mœ$×,Ñ,Ñ-ð
 �AŠ:Ô+¨G¯N©N¸FÔCÜ™™¨Ó1×1Ð1ð ’˜!ˆà—^‘^ G¨T°6¸5ÓA×AÐAøô{ ò 6ð 7?¸y¸kÐ4J�—‘œd×0Ñ0Ñ1Ø—‘Ô >× JÑ JÔKÜ"™W™_¨WÓ5×5Ð5Ò5ð6úð` :ùðP 2øð
 Búsi   ƒA
L:Á$K Á2BL:Ã6L3Ã7F/L:Ê&L6Ê'!L:ËL8Ë	L:ËAL0Ì'L*Ì(L0Ì-L:Ì/L0Ì0L:Ì6L:Ì8L:)i   éÈ   NN)%r.   r/   r0   r1   r   Úintr   Ústrr   rC   r	   r   r³   rP   r   r]   rg   Ústaticmethodr   r   Úboolrt   Úfloatrz   r}   r-   ÚioÚBufferedReaderrŽ   Ústat_resultr˜   rD   rE   rƒ   r`   r©   Ú__classcell__)rI   s   @r8   r%   r%   \   sX  ø„ Ù6ð
 %ØØ $Ø*.ñ&àð&ð ð&ð ð	&ð
 ˜‘ð&ð ˜,Ñ'ð&ð 
õ&ð% 2 c¡7ð %°Cð %ÀSð %ÈUó %ðØ*ðØ24°S±'ðØCFðØORðà	óð*Ø$ðØ,.¨s©GðØ=@ðØILðà	õð* ð
 ð 
¨E°$¸°)Ñ,<ð 
Àtð 
ÐPTò 
ó ð
ð	.Ø$ð	.Ø25ð	.ØFKð	.à	Ð&Ñ	'õ	.ð.Ø$ð.à	Ð&Ñ	'õ.ð6FØ$ð6FØ7:ð6Fà	Ø˜X b×&7Ñ&7Ñ8¸"¿.¹.È(ÐSVÉ-ÐWñ
ó6FðpDØ"ðDà	ˆx˜Ÿ™Ñ% r§~¡~°xÀ±}ÐDÑ	EóDð&+B ]ð +B°xÐ@TÑ7Uõ +BðZvBàðvBð ×ÑðvBð �N‰Nð	vBð
   ‘}ðvBð 
Ð&Ñ	'÷vBñ vBr7   r%   )KrU   rÖ   rŽ   rD   r½   Ú
contextlibr   Úenumr   r   Ú	mimetypesr   r�   r   Útypesr   Útypingr	   r
   r   r   r   r   r   r   r   r   r   r   r   r£   r   Úabcr   Úhelpersr   r   r   Útypedefsr   r   Úweb_exceptionsr   r   r    r!   r"   r#   Úweb_responser$   Ú__all__Úweb_requestr&   r³   Ú_T_OnChunkSentrÔ   Úenvironr¥   r(   Ú__annotations__r)   Úencodings_maprš   rÁ   ÚADDITIONAL_CONTENT_TYPESr-   Úclearr›   rÂ   Ú	extensionÚadd_typeÚsetr9   ÚFuturer%   )Úexts   0r8   Ú<module>rñ      s†  ðÜ Û 	Û 	Û Û 
Ý ß Ý Ý Ý "÷÷ ÷ õ õ  Ý %ß 7Ñ 7ß ,÷÷ õ )à
€áÝ(ð ˜( E 7¨I°d©OÐ#;Ñ<Ñ=€ñ ˜rŸz™zŸ~™~Ð.BÓCÓD€
ˆE�$‰KÓ Dá"+£+€ˆu�YÑÓ -ñ 'Ù6DÓE±n¨s€Sˆ-×
%Ñ
% cÑ
*Ñ*°nÑEóÐ ð 3Ð ñ ,à!Ø %Ø%Ø"&Ø!ñóÐ ô˜$ô ð × Ñ × !Ñ !Ô #Ø7×=Ñ=Ö?Ñ€L�)Ø×Ñ˜<¨Õ3ð  @ñ -0«E€��G—N‘N 4Ñ(Ñ)Ó 1ôFB�>õ FBùòI Fs   ÃF