Ë
    ‘©je"  ã                  óü   — U d dl mZ d dlZd dlmZ d dlZd dlZd dlm	Z	m
Z
 d dlmZmZmZmZmZ dZej$                  j'                  d«      Zded<   dd	„Z G d
„ d«      Z G d„ d«      Z G d„ de«      Zdd„Zdd„Zy)é    )ÚannotationsN)ÚNoReturn)ÚHeadersÚMutableHeaders)ÚASGIAppÚMessageÚReceiveÚScopeÚSend)zapplication/gzipzapplication/x-gzipzapplication/zipzaudio/*z	font/woffz
font/woff2z
image/avifz	image/gifz
image/jpegz	image/pngz
image/webpztext/event-streamzvideo/*Ú_gzip_capacity_limiterz,anyio.lowlevel.RunVar[anyio.CapacityLimiter]c                 ó¢   — 	 t         j                  «       S # t        $ r/ t        j                  d«      } t         j                  | «       | cY S w xY w)zDReturn the capacity limiter used for worker-thread GZip compression.é(   )r   ÚgetÚLookupErrorÚanyioÚCapacityLimiterÚset©Úlimiters    ú`/var/www/html/streamforge-license/venv/lib/python3.12/site-packages/starlette/middleware/gzip.pyÚ_get_gzip_capacity_limiterr       sJ   € ðÜ%×)Ñ)Ó+Ð+øÜò ô ×'Ñ'¨Ó+ˆÜ×"Ñ" 7Ô+ØŠðús   ‚ –5AÁAc                  ó@   — e Zd Z	 	 	 dedœ	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zy)ÚGZipMiddleware©Úexclude_content_typesc               ó\   — || _         || _        || _        || _        t	        |«      | _        y ©N)ÚappÚminimum_sizeÚcompresslevelÚthread_minimum_sizeÚ_normalize_content_typesr   )Úselfr   r   r    r!   r   s         r   Ú__init__zGZipMiddleware.__init__-   s1   € ð ˆŒØ(ˆÔØ*ˆÔØ#6ˆÔ Ü%=Ð>SÓ%TˆÕ"ó    c              ƒ  óž  K  — |d   dk7  r| j                  |||«      ƒ d {  –—†  y t        |¬«      }d|j                  dd«      v rCt        | j                   | j                  | j
                  | j                  | j                  ¬«      }n,t        | j                   | j                  | j                  ¬«      } ||||«      ƒ d {  –—†  y 7 Œ§7 Œ­w)	NÚtypeÚhttp)ÚscopeÚgzipúAccept-EncodingÚ )r    r!   r   r   )	r   r   r   ÚGZipResponderr   r    r!   r   ÚIdentityResponder)r#   r)   ÚreceiveÚsendÚheadersÚ	responders         r   Ú__call__zGZipMiddleware.__call__<   s¼   è ø€ Ø�‰=˜FÒ"Ø—(‘(˜5 '¨4Ó0×0Ð0Øä Ô&ˆà�W—[‘[Ð!2°BÓ7Ñ7Ü%Ø—‘Ø×!Ñ!Ø"×0Ñ0Ø$(×$<Ñ$<Ø&*×&@Ñ&@ô‰Iô *¨$¯(©(°D×4EÑ4EÐ]a×]wÑ]wÔxˆIá˜˜w¨Ó-×-Ñ-ð! 1øð  	.ús"   ‚C¡C	¢B!CÃCÃCÃCN)iô  é	   é   ©r   r   r   Úintr    r7   r!   r7   r   útuple[str, ...]ÚreturnÚNone©r)   r
   r/   r	   r0   r   r9   r:   )Ú__name__Ú
__module__Ú__qualname__ÚDEFAULT_EXCLUDED_CONTENT_TYPESr$   r3   © r%   r   r   r   ,   sd   „ ð  ØØ#-ðUð 2PñUàðUð ðUð ð	Uð
 !ðUð  /ðUð 
óUô.r%   r   c                  óL   — e Zd ZU ded<   edœ	 	 	 	 	 	 	 d	d„Zd
d„Zdd„Zdd„Zy)r.   ÚstrÚcontent_encodingr   c               óœ   — || _         || _        t        |«      | _        t        | _        i | _        d| _        d| _        d| _	        d| _
        y )NF)r   r   r"   r   Úunattached_sendr0   Úinitial_messageÚstartedÚcontent_encoding_setÚcontent_type_is_excludedÚpartial_response)r#   r   r   r   s       r   r$   zIdentityResponder.__init__T   sO   € ð ˆŒØ(ˆÔÜ%=Ð>SÓ%TˆÔ"Ü)ˆŒ	Ø(*ˆÔØˆŒØ$)ˆÔ!Ø(-ˆÔ%Ø %ˆÕr%   c              ƒ  óh   K  — || _         | j                  ||| j                  «      ƒ d {  –—†  y 7 Œ­wr   )r0   r   Úsend_with_compression)r#   r)   r/   r0   s       r   r3   zIdentityResponder.__call__e   s)   è ø€ ØˆŒ	Ø�h‰h�u˜g t×'AÑ'AÓB×BÒBús   ‚(2ª0«2c              ƒ  óÜ  K  — |d   }|dk(  r±|| _         t        | j                   d   ¬«      }d|v | _        |d   dk(  | _        |j	                  dd	«      j                  d
«      d   j                  «       j                  «       }||j                  d«      d   dz   h}|j                  | j                  «       | _
        y |dk(  rt| j                  s| j                  s| j                  rP| j                  s*d| _        | j                  | j                   «      ƒ d {  –—†  | j                  |«      ƒ d {  –—†  y |dk(  �rç| j                  �sÚd| _        |j	                  dd«      }|j	                  dd«      }t        |«      | j                  k  r?|s=| j                  | j                   «      ƒ d {  –—†  | j                  |«      ƒ d {  –—†  y |sµ| j                  |d¬«      ƒ d {  –—† }t!        | j                   d   ¬«      }|j#                  d«       ||d   k7  r+| j$                  |d<   t'        t        |«      «      |d<   ||d<   | j                  | j                   «      ƒ d {  –—†  | j                  |«      ƒ d {  –—†  y | j                  |d¬«      ƒ d {  –—† }t!        | j                   d   ¬«      }|j#                  d«       ||d   k7  r| j$                  |d<   |d= ||d<   | j                  | j                   «      ƒ d {  –—†  | j                  |«      ƒ d {  –—†  y |dk(  r\|j	                  dd«      }|j	                  dd«      }| j                  ||¬«      ƒ d {  –—† |d<   | j                  |«      ƒ d {  –—†  y |dk(  r=| j                  | j                   «      ƒ d {  –—†  | j                  |«      ƒ d {  –—†  y y 7 �Œ°7 �Œš7 �Œ!7 �Œ7 �Œð7 �Œs7 �Œ]7 �ŒD7 ŒÚ7 ŒÃ7 Œ€7 Œf7 Œ?7 Œ(­w)Nr'   zhttp.response.startr1   )Úrawzcontent-encodingÚstatuséÎ   zcontent-typer,   ú;r   ú/z/*zhttp.response.bodyTÚbodyr%   Ú	more_bodyF)rT   r+   zContent-EncodingzContent-Lengthzhttp.response.pathsend)rF   r   rH   rJ   r   Ú	partitionÚstripÚlowerÚ
isdisjointr   rI   rG   r0   Úlenr   Úapply_compressionr   Úadd_vary_headerrC   rB   )r#   ÚmessageÚmessage_typer1   Ú
media_typeÚmedia_typesrS   rT   s           r   rL   z'IdentityResponder.send_with_compressioni   s¤  è ø€ Ø˜v‘ˆØÐ0Ò0ð $+ˆDÔ Ü $×"6Ñ"6°yÑ"AÔBˆGØ(:¸gÐ(EˆDÔ%Ø$+¨HÑ$5¸Ñ$<ˆDÔ!Ø Ÿ™ ^°RÓ8×BÑBÀ3ÓGÈÑJ×PÑPÓR×XÑXÓZˆJØ% z×';Ñ';¸CÓ'@ÀÑ'CÀdÑ'JÐKˆKØ0;×0FÑ0FÀt×GaÑGaÓ0bÐ,bˆDÕ)ØÐ1Ò1Ø×%Ò%¨×)>Ò)>À$×B_ÒB_à—<’<Ø#�”Ø—i‘i × 4Ñ 4Ó5×5Ð5Ø—)‘)˜GÓ$×$Ñ$ØÐ1Ó1¸$¿,»,ØˆDŒLØ—;‘;˜v sÓ+ˆDØŸ™ K°Ó7ˆIÜ�4‹y˜4×,Ñ,Ò,±Yà—i‘i × 4Ñ 4Ó5×5Ð5Ø—i‘i Ó(×(Ñ(Ùà!×3Ñ3°DÀEÐ3ÓJ×J�ä(¨T×-AÑ-AÀ)Ñ-LÔM�Ø×'Ñ'Ð(9Ô:Ø˜7 6™?Ò*Ø26×2GÑ2G�GÐ.Ñ/Ü03´C¸³I³�GÐ,Ñ-Ø&*�G˜F‘Oà—i‘i × 4Ñ 4Ó5×5Ð5Ø—i‘i Ó(×(Ñ(ð "×3Ñ3°DÀDÐ3ÓI×I�ä(¨T×-AÑ-AÀ)Ñ-LÔM�Ø×'Ñ'Ð(9Ô:Ø˜7 6™?Ò*Ø26×2GÑ2G�GÐ.Ñ/ØÐ 0Ð1Ø&*�G˜F‘Oà—i‘i × 4Ñ 4Ó5×5Ð5Ø—i‘i Ó(×(Ñ(ØÐ1Ò1à—;‘;˜v sÓ+ˆDØŸ™ K°Ó7ˆIà$(×$:Ñ$:¸4È9Ð$:Ó$U×UˆG�F‰Oà—)‘)˜GÓ$×$Ñ$ØÐ5Ò5à—)‘)˜D×0Ñ0Ó1×1Ð1Ø—)‘)˜GÓ$×$Ñ$ð 6ðY 6ùØ$ùð 6ùØ(ùð Kùð 6ùØ(ùð Jùð 6øØ(øð Vøà$øð 2øØ$ús   ‚DO,ÄOÄO,Ä1OÄ2A;O,Æ-OÆ.O,ÇOÇO,Ç$OÇ%A?O,É$OÉ%O,É=OÉ>O,ÊOÊA+O,ÌO ÌO,ÌO"ÌAO,Í#O$Í$O,Í?O&Î (O,Î(O(Î)O,ÏO*ÏO,ÏO,ÏO,ÏO,ÏO,ÏO,ÏO,ÏO,Ï O,Ï"O,Ï$O,Ï&O,Ï(O,Ï*O,c             ƒ  ó   K  — |S ­w)zÊApply compression on the response body.

        If more_body is False, the compression stream is finalized. Compression
        resources are only allocated once a body is actually compressed.
        r@   ©r#   rS   rT   s      r   rZ   z#IdentityResponder.apply_compression«   s   è ø€ ð ˆùs   ‚N)r   r   r   r7   r   r8   r9   r:   r;   )r\   r   r9   r:   ©rS   ÚbytesrT   Úboolr9   rc   )	r<   r=   r>   Ú__annotations__r?   r$   r3   rL   rZ   r@   r%   r   r.   r.   Q   sK   … ØÓð 2Pñ&àð&ð ð&ð
  /ð&ð 
ó&ó"Có@%ôDr%   r.   c                  óh   ‡ — e Zd ZdZ	 ddedœ	 	 	 	 	 	 	 	 	 	 	 d	ˆ fd„Zed
d„«       Zdd„Zdd„Z	ˆ xZ
S )r-   r*   r5   )r!   r   c               óT   •— t         ‰| �  |||¬«       || _        || _        d | _        y )Nr   )Úsuperr$   r    r!   Ú_compressor)r#   r   r   r    r!   r   Ú	__class__s         €r   r$   zGZipResponder.__init__·   s2   ø€ ô 	‰Ñ˜˜lÐBWÐÔXà*ˆÔØ#6ˆÔ Ø26ˆÕr%   c                ó¼   — | j                   €Et        j                  | j                  t        j                  dt        j
                  z   «      | _         | j                   S )Né   )ri   ÚzlibÚcompressobjr    ÚDEFLATEDÚ	MAX_WBITS)r#   s    r   Ú
compressorzGZipResponder.compressorÆ   sH   € à×ÑÐ#Ü#×/Ñ/°×0BÑ0BÄDÇMÁMÐSUÔX\×XfÑXfÑSfÓgˆDÔØ×ÑÐr%   c             ƒ  óà   K  — t        |«      | j                  k\  r?t        «       }t        j                  j                  | j                  |||¬«      ƒ d {  –—† S | j                  ||«      S 7 Œ­w)Nr   )rY   r!   r   r   Ú	to_threadÚrun_syncÚ_compress_body)r#   rS   rT   r   s       r   rZ   zGZipResponder.apply_compressionÌ   sa   è ø€ Üˆt‹9˜×0Ñ0Ò0ä0Ó2ˆGÜŸ™×1Ñ1°$×2EÑ2EÀtÈYÐ`gÐ1Óh×hÐhØ×"Ñ" 4¨Ó3Ð3ð iús   ‚AA.ÁA,ÁA.c                óü   — |rE| j                   j                  |«      | j                   j                  t        j                  «      z   S | j                   j                  |«      | j                   j                  «       z   S r   )rq   ÚcompressÚflushrm   ÚZ_SYNC_FLUSHra   s      r   ru   zGZipResponder._compress_bodyÓ   s[   € ÙØ—?‘?×+Ñ+¨DÓ1°D·O±O×4IÑ4IÌ$×J[ÑJ[Ó4\Ñ\Ð\Ø�‰×'Ñ'¨Ó-°·±×0EÑ0EÓ0GÑGÐGr%   )r4   r6   )r9   zzlib._Compressrb   )r<   r=   r>   rC   r?   r$   Úpropertyrq   rZ   ru   Ú__classcell__)rj   s   @r   r-   r-   ´   sy   ø„ ØÐð ð	7ð $.Ø1Oñ7àð7ð ð7ð ð	7ð !ð7ð  /ð7ð 
õ7ð ò ó ð ó
4÷Hr%   r-   c              ƒ  ó    K  — t        d«      ‚­w)Nzsend awaitable not set)ÚRuntimeError)r\   s    r   rE   rE   Ù   s   è ø€ Ü
Ð/Ó
0Ð0ùs   ‚c                ó&   — t        d„ | D «       «      S )Nc              3  ó|   K  — | ]4  }|j                  d «      d   j                  «       j                  «       –— Œ6 y­w)rQ   r   N)rU   rV   rW   )Ú.0Úcontent_types     r   ú	<genexpr>z+_normalize_content_types.<locals>.<genexpr>Þ   s2   è ø€ ÒbÀL�×'Ñ'¨Ó,¨QÑ/×5Ñ5Ó7×=Ñ=×?Ñbùs   ‚:<)Útuple)Úcontent_typess    r   r"   r"   Ý   s   € ÜÑbÐTaÔbÓbÐbr%   )r9   zanyio.CapacityLimiter)r\   r   r9   r   )r„   r8   r9   r8   )Ú
__future__r   rm   Útypingr   Úanyio.lowlevelr   Úanyio.to_threadÚstarlette.datastructuresr   r   Ústarlette.typesr   r   r	   r
   r   r?   ÚlowlevelÚRunVarr   re   r   r   r.   r-   rE   r"   r@   r%   r   ú<module>r�      s}   ðÞ "ã Ý ã Û ç <ß BÕ Bð"Ð ð  HMÇ~Á~×G\ÑG\Ð]uÓGvÐ ÐDÓ vó	÷".ñ ".÷J`ñ `ôF"HÐ%ô "HóJ1ôcr%   