Ë
    KU hr0  ã                  óò  — d dl m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 d dlmZ d dlmZ d dlmZ d dlZd dlZd dlmZ d d	lmZ d d
lmZ d dlmZmZ d dlmZm Z m!Z!  G d„ d«      Z" G d„ de"«      Z# G d„ de"«      Z$ G d„ de"«      Z% G d„ de"«      Z&ejN                  e(e)e*f   Z+ejX                  e+   Z-ej\                  e+   Z/ejN                  e/e-f   Z0 G d„ de"«      Z1 G d„ de"«      Z2y)é    )ÚannotationsN)Údatetime)Úformat_datetimeÚ
formatdate)Úpartial)Ú
guess_type)Úquote)Úmd5_hexdigest)ÚBackgroundTask)Úiterate_in_threadpool)ÚURLÚMutableHeaders)ÚReceiveÚScopeÚSendc                  óØ   — e Zd ZdZdZ	 	 	 	 	 d
	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zddd„Zedd„«       Z		 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z
	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd	„Zy)ÚResponseNúutf-8c                ó€   — || _         |�|| _        || _        | j                  |«      | _        | j                  |«       y ©N)Ústatus_codeÚ
media_typeÚ
backgroundÚrenderÚbodyÚinit_headers©ÚselfÚcontentr   Úheadersr   r   s         úK/var/www/timesheet/venv/lib/python3.12/site-packages/starlette/responses.pyÚ__init__zResponse.__init__   s>   € ð 'ˆÔØÐ!Ø(ˆDŒOØ$ˆŒØ—K‘K Ó(ˆŒ	Ø×Ñ˜'Õ"ó    c                ón   — |€yt        |t        t        f«      r|S |j                  | j                  «      S )Nr#   )Ú
isinstanceÚbytesÚ
memoryviewÚencodeÚcharset©r   r   s     r!   r   zResponse.render,   s1   € Øˆ?ØÜ�g¤¤zÐ2Ô3ØˆNØ�~‰~˜dŸl™lÓ+Ð+r#   c                ó¤  — |€g }d}d}nj|j                  «       D ��cg c]5  \  }}|j                  «       j                  d«      |j                  d«      f‘Œ7 }}}|D �cg c]  }|d   ‘Œ	 }}d|v}d|v}t        | dd «      }	|	�U|rS| j                  dk  sD| j                  dv s6t        t        |	«      «      }
|j                  d|
j                  d«      f«       | j                  }|�Y|rW|j                  d	«      r$d
|j                  «       vr|d| j                  z   z  }|j                  d|j                  d«      f«       || _        y c c}}w c c}w )NTúlatin-1r   s   content-lengths   content-typer   éÈ   )éÌ   i0  ztext/zcharset=z
; charset=)ÚitemsÚlowerr(   Úgetattrr   ÚstrÚlenÚappendr   Ú
startswithr)   Úraw_headers)r   r    r6   Úpopulate_content_lengthÚpopulate_content_typeÚkÚvÚhÚkeysr   Úcontent_lengthÚcontent_types               r!   r   zResponse.init_headers3   sW  € Øˆ?Ø57ˆKØ&*Ð#Ø$(Ñ!àZa×ZgÑZgÓZi×jÑRVÐRSÐUV˜AŸG™G›I×,Ñ,¨YÓ7¸¿¹À)Ó9LÒMÐjˆKÑjØ"-Ö.˜Q�A�a“DÐ.ˆDÐ.Ø&7¸tÐ&CÐ#Ø$3¸4Ð$?Ð!ä�t˜V TÓ*ˆàÐÙ'Ø×%Ñ%¨Ò+¨t×/?Ñ/?À:Ñ/Mä ¤ T£›^ˆNØ×ÑÐ 1°>×3HÑ3HÈÓ3SÐTÔUà—‘ˆØÐ#Ñ(=Ø×&Ñ& wÔ/°JÀl×FXÑFXÓFZÑ4ZØ ¨t¯|©|Ñ ;Ñ;�Ø×Ñ °×1DÑ1DÀYÓ1OÐPÔQà&ˆÕùó) kùÚ.s   �:EÁEc                óh   — t        | d«      st        | j                  ¬«      | _        | j                  S )NÚ_headers)Úraw)Úhasattrr   r6   r@   )r   s    r!   r    zResponse.headersO   s(   € ä�t˜ZÔ(Ü*¨t×/?Ñ/?Ô@ˆDŒMØ�}‰}Ðr#   c
                óè  — t         j                  j                  «       }
||
|<   |�||
|   d<   |�,t        |t        «      rt        |d¬«      |
|   d<   n||
|   d<   |�||
|   d<   |�||
|   d<   |rd|
|   d<   |rd|
|   d<   |	�!|	j                  «       d	v sJ d
«       ‚|	|
|   d<   |
j                  d¬«      j                  «       }| j                  j                  d|j                  d«      f«       y )Nzmax-ageT©ÚusegmtÚexpiresÚpathÚdomainÚsecureÚhttponly)ÚstrictÚlaxÚnonez1samesite must be either 'strict', 'lax' or 'none'ÚsamesiteÚ )Úheaders
   set-cookier,   )ÚhttpÚcookiesÚSimpleCookier%   r   r   r0   ÚoutputÚstripr6   r4   r(   )r   ÚkeyÚvalueÚmax_agerF   rG   rH   rI   rJ   rN   ÚcookieÚ
cookie_vals               r!   Ú
set_cookiezResponse.set_cookieU   s.  € ô 04¯|©|×/HÑ/HÓ/JˆØˆˆs‰ØÐØ%,ˆF�3‰K˜	Ñ"ØÐÜ˜'¤8Ô,Ü)8¸ÈÔ)N��s‘˜IÒ&à)0��s‘˜IÑ&ØÐØ"&ˆF�3‰K˜ÑØÐØ$*ˆF�3‰K˜Ñ!ÙØ$(ˆF�3‰K˜Ñ!ÙØ&*ˆF�3‰K˜
Ñ#ØÐØ—>‘>Ó#ð (ñ ð Cð Có	Cð ð
 '/ˆF�3‰K˜
Ñ#Ø—]‘]¨"�]Ó-×3Ñ3Ó5ˆ
Ø×Ñ×Ñ °
×0AÑ0AÀ)Ó0LÐ MÕNr#   c           
     ó6   — | j                  |dd|||||¬«       y )Nr   )rX   rF   rG   rH   rI   rJ   rN   )r[   )r   rV   rG   rH   rI   rJ   rN   s          r!   Údelete_cookiezResponse.delete_cookie|   s-   € ð 	�‰ØØØØØØØØð 	õ 		
r#   c              ƒ  ó  K  — |d   dk(  rdnd} ||dz   | j                   | j                  dœ«      ƒ d {  –—†   ||dz   | j                  dœ«      ƒ d {  –—†  | j                  �| j                  «       ƒ d {  –—†  y y 7 ŒJ7 Œ,7 Œ
­w)	NÚtypeÚ	websocketz
websocket.rO   úhttp.response.start©r_   Ústatusr    úhttp.response.body)r_   r   )r   r6   r   r   )r   ÚscopeÚreceiveÚsendÚprefixs        r!   Ú__call__zResponse.__call__�   sš   è ø€ Ø!& v¡°+Ò!=‘À2ˆÙàÐ!6Ñ6Ø×*Ñ*Ø×+Ñ+ñó
÷ 	
ð 	
ñ ˜FÐ%9Ñ9À4Ç9Á9ÑMÓN×NÐNà�?‰?Ð&Ø—/‘/Ó#×#Ñ#ð 'ð	
øð 	Oøð $ús3   ‚3BµB ¶BÁBÁ#BÁ9BÁ:BÂBÂB)Nr-   NNN©r   ú
typing.Anyr   Úintr    útyping.Mapping[str, str] | Noner   ú
str | Noner   úBackgroundTask | NoneÚreturnÚNone)r   rk   rp   zbytes | memoryviewr   )r    rm   rp   rq   )rp   r   )rO   NNú/NFFrL   )rV   r2   rW   r2   rX   z
int | NonerF   zdatetime | str | int | NonerG   rn   rH   rn   rI   ÚboolrJ   rs   rN   ú.typing.Literal['lax', 'strict', 'none'] | Nonerp   rq   )rr   NFFrL   )rV   r2   rG   r2   rH   rn   rI   rs   rJ   rs   rN   rt   rp   rq   ©re   r   rf   r   rg   r   rp   rq   )Ú__name__Ú
__module__Ú__qualname__r   r)   r"   r   r   Úpropertyr    r[   r]   ri   © r#   r!   r   r      sh  „ Ø€JØ€Gð #ØØ37Ø!%Ø,0ð#àð#ð ð#ð 1ð	#ð
 ð#ð *ð#ð 
ó#ó,ô'ð8 òó ðð Ø"Ø/3ØØ!ØØØCHð%Oàð%Oð ð%Oð ð	%Oð
 -ð%Oð ð%Oð ð%Oð ð%Oð ð%Oð Að%Oð 
ó%OðT Ø!ØØØCHð
àð
ð ð
ð ð	
ð
 ð
ð ð
ð Að
ð 
ó
ô($r#   r   c                  ó   — e Zd ZdZy)ÚHTMLResponsez	text/htmlN©rv   rw   rx   r   rz   r#   r!   r|   r|   Ÿ   s   „ Ø�Jr#   r|   c                  ó   — e Zd ZdZy)ÚPlainTextResponseú
text/plainNr}   rz   r#   r!   r   r   £   s   „ Ø�Jr#   r   c                  óL   ‡ — e Zd ZdZ	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Zˆ xZS )ÚJSONResponsezapplication/jsonc                ó,   •— t         ‰| �  |||||«       y r   )Úsuperr"   )r   r   r   r    r   r   Ú	__class__s         €r!   r"   zJSONResponse.__init__ª   s   ø€ ô 	‰Ñ˜ +¨w¸
ÀJÕOr#   c                óT   — t        j                  |ddd d¬«      j                  d«      S )NF)ú,ú:)Úensure_asciiÚ	allow_nanÚindentÚ
separatorsr   )ÚjsonÚdumpsr(   r*   s     r!   r   zJSONResponse.render´   s-   € Ü�z‰zØØØØØ!ô
÷ ‰&�‹/ð	r#   ©r-   NNNrj   )r   rk   rp   r&   )rv   rw   rx   r   r"   r   Ú__classcell__©r…   s   @r!   r‚   r‚   §   sa   ø„ Ø#€Jð
 Ø37Ø!%Ø,0ðPàðPð ðPð 1ð	Pð
 ðPð *ðPð 
õP÷r#   r‚   c                  ó:   ‡ — e Zd Z	 	 	 d	 	 	 	 	 	 	 	 	 dˆ fd„Zˆ xZS )ÚRedirectResponsec                ór   •— t         ‰| �  d|||¬«       t        t        |«      d¬«      | j                  d<   y )Nr#   )r   r   r    r   z:/%#?=@[]!$&'()*+,;)ÚsafeÚlocation)r„   r"   r	   r2   r    )r   Úurlr   r    r   r…   s        €r!   r"   zRedirectResponse.__init__¿   s6   ø€ ô 	‰Ñ °+ÀwÐ[eÐÔfÜ#(¬¨S«Ð8MÔ#Nˆ�‰�ZÒ r#   )i3  NN)
r—   z	str | URLr   rl   r    rm   r   ro   rp   rq   )rv   rw   rx   r"   r�   r‘   s   @r!   r“   r“   ¾   sO   ø„ ð Ø37Ø,0ðOàðOð ðOð 1ð	Oð
 *ðOð 
÷Oñ Or#   r“   c                  óX   — e Zd ZU ded<   	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 d	d„Zd
d„Zdd„Zdd„Zy)ÚStreamingResponseÚAsyncContentStreamÚbody_iteratorNc                óÐ   — t        |t        j                  «      r|| _        nt	        |«      | _        || _        |€| j                  n|| _        || _        | j                  |«       y r   )	r%   ÚtypingÚAsyncIterabler›   r   r   r   r   r   r   s         r!   r"   zStreamingResponse.__init__Ó   sX   € ô �gœv×3Ñ3Ô4Ø!(ˆDÕä!6°wÓ!?ˆDÔØ&ˆÔØ-7Ð-?˜$Ÿ/š/ÀZˆŒØ$ˆŒØ×Ñ˜'Õ"r#   c              ƒ  óB   K  — 	  |«       ƒ d {  –—† }|d   dk(  ry Œ7 Œ­w)Nr_   zhttp.disconnectrz   )r   rf   Úmessages      r!   Úlisten_for_disconnectz'StreamingResponse.listen_for_disconnectä   s*   è ø€ ØÙ#›I—oˆGØ�v‰Ð"3Ò3Øð Ø%ús   ‚Ž�c              ƒ  óJ  K  —  |d| j                   | j                  dœ«      ƒ d {  –—†  | j                  2 3 d {  –—† }t        |t        t
        f«      s|j                  | j                  «      } |d|ddœ«      ƒ d {  –—†  ŒO7 Œ_7 ŒL7 Œ	6  |ddddœ«      ƒ d {  –—†7   y ­w)Nra   rb   rd   T©r_   r   Ú	more_bodyr#   F)r   r6   r›   r%   r&   r'   r(   r)   )r   rg   Úchunks      r!   Ústream_responsez!StreamingResponse.stream_responseê   s´   è ø€ Ùà-Ø×*Ñ*Ø×+Ñ+ñó
÷ 	
ð 	
ð  ×-Ñ-÷ 	Yð 	Y�%Ü˜e¤e¬ZÐ%8Ô9ØŸ™ T§\¡\Ó2�ÙÐ 4¸eÐRVÑWÓX×XÑXð	
øð	Yøð Yøð .ñ
 Ð0¸#ÈEÑRÓS×SÒSùsN   ‚$B#¦B§B#·B»B¼B¿AB#Â B
ÂB#ÂBÂ
B#ÂB#ÂBÂB#c              ƒ  óŒ  ‡K  — t        j                  «       4 ƒd {  –—† Šdˆfd„}‰j                  |t        | j                  |«      «        |t        | j
                  |«      «      ƒ d {  –—†  d d d «      ƒd {  –—†  | j                  �| j                  «       ƒ d {  –—†  y y 7 ŒŠ7 Œ<7 Œ.# 1 ƒd {  –—†7  sw Y   Œ>xY w7 Œ!­w)Nc              “  ód   •K  —  | «       ƒ d {  –—†  ‰j                   j                  «        y 7 Œ­wr   )Úcancel_scopeÚcancel)ÚfuncÚ
task_groups    €r!   Úwrapz(StreamingResponse.__call__.<locals>.wrapü   s'   øè ø€ Ù“f—�Ø×'Ñ'×.Ñ.Õ0ð ús   ƒ0Ž.� 0)r«   z+typing.Callable[[], typing.Awaitable[None]]rp   rq   )ÚanyioÚcreate_task_groupÚ
start_soonr   r¦   r¡   r   )r   re   rf   rg   r­   r¬   s        @r!   ri   zStreamingResponse.__call__ù   sº   øè ø€ Ü×*Ñ*Ó,÷ 	Eð 	E°
õ1ð ×!Ñ! $¬°×0DÑ0DÀdÓ(KÔLÙ”w˜t×9Ñ9¸7ÓCÓD×DÐD÷	E÷ 	Eð �?‰?Ð&Ø—/‘/Ó#×#Ñ#ð 'ð	Eøð Eøð	Eø÷ 	E÷ 	Eñ 	Eúð $úsc   ƒCœB'�C AB-Á,B)Á-B-Á1CÁ<B+Á=#CÂ CÂ!CÂ)B-Â+CÂ-B?Â3B6Â4B?Â;Cr�   )r   ÚContentStreamr   rl   r    rm   r   rn   r   ro   rp   rq   )rf   r   rp   rq   )rg   r   rp   rq   ru   )rv   rw   rx   Ú__annotations__r"   r¡   r¦   ri   rz   r#   r!   r™   r™   Ð   se   … Ø%Ó%ð
 Ø37Ø!%Ø,0ð#àð#ð ð#ð 1ð	#ð
 ð#ð *ð#ð 
ó#ó"óTô$r#   r™   c                  ó`   — e Zd ZdZ	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zd	d„Zy)
ÚFileResponsei   Nc
                óÖ  — || _         || _        || _        |�t        j                  dt
        «       |€t        |xs |«      d   xs d}|| _        || _        | j                  |«       | j                  �Zt        | j                  «      }
|
| j                  k7  r|	› d|
› �}n|	› d| j                  › d�}| j                  j                  d|«       || _        |�| j                  |«       y y )Nz;The 'method' parameter is not used, and it will be removed.r   r€   z; filename*=utf-8''z; filename="ú"zcontent-disposition)rG   r   ÚfilenameÚwarningsÚwarnÚDeprecationWarningr   r   r   r   r	   r    Ú
setdefaultÚstat_resultÚset_stat_headers)r   rG   r   r    r   r   r·   r¼   ÚmethodÚcontent_disposition_typeÚcontent_disposition_filenameÚcontent_dispositions               r!   r"   zFileResponse.__init__
  sù   € ð ˆŒ	Ø&ˆÔØ ˆŒØÐÜ�M‰MØMÜ"ôð ÐÜ# HÒ$4°Ó5°aÑ8ÒH¸LˆJØ$ˆŒØ$ˆŒØ×Ñ˜'Ô"Ø�=‰=Ð$Ü+0°·±Ó+?Ð(Ø+¨t¯}©}Ò<Ø)AÐ(BÐBUÐVrÐUsÐ&tÑ#à)AÐ(BÀ,ÈtÏ}É}ÈoÐ]^Ð&_Ð#Ø�L‰L×#Ñ#Ð$9Ð;NÔOØ&ˆÔØÐ"Ø×!Ñ! +Õ.ð #r#   c                óž  — t        |j                  «      }t        |j                  d¬«      }t        |j                  «      dz   t        |j                  «      z   }dt	        |j                  «       d¬«      › d�}| j                  j                  d|«       | j                  j                  d|«       | j                  j                  d	|«       y )
NTrD   ú-r¶   F)Úusedforsecurityzcontent-lengthzlast-modifiedÚetag)r2   Úst_sizer   Úst_mtimer
   r(   r    r»   )r   r¼   r=   Úlast_modifiedÚ	etag_baserÅ   s         r!   r½   zFileResponse.set_stat_headers.  s¥   € Ü˜[×0Ñ0Ó1ˆÜ" ;×#7Ñ#7ÀÔEˆÜ˜×,Ñ,Ó-°Ñ3´c¸+×:MÑ:MÓ6NÑNˆ	Ø”= ×!1Ñ!1Ó!3ÀUÔKÐLÈAÐNˆà�‰×ÑÐ 0°.ÔAØ�‰×Ñ °Ô?Ø�‰×Ñ ¨Õ-r#   c              ƒ  óú  K  — | j                   €Œ	 t        j                  j                  t        j
                  | j                  «      ƒ d {  –—† }| j                  |«       |j                  }t        j                  |«      st        d| j                  › d�«      ‚ |d| j                  | j                  dœ«      ƒ d {  –—†  |d   j                  «       dk(  r |dd	d
dœ«      ƒ d {  –—†  n˜t        j                  | j                  d¬«      ƒ d {  –—† 4 ƒd {  –—† }d}|rR|j!                  | j"                  «      ƒ d {  –—† }t%        |«      | j"                  k(  } |d||dœ«      ƒ d {  –—†  |rŒRd d d «      ƒd {  –—†  | j&                  �| j'                  «       ƒ d {  –—†  y y 7 �Œa# t        $ r t        d| j                  › d�«      ‚w xY w7 �Œ7 Œï7 ŒÇ7 ŒÀ7 Œ›7 Œq7 Œ`# 1 ƒd {  –—†7  sw Y   ŒpxY w7 ŒS­w)NzFile at path z is not a file.z does not exist.ra   rb   r¾   ÚHEADrd   r#   Fr£   Úrb)ÚmodeT)r¼   r®   Ú	to_threadÚrun_syncÚosÚstatrG   r½   Úst_modeÚS_ISREGÚRuntimeErrorÚFileNotFoundErrorr   r6   ÚupperÚ	open_fileÚreadÚ
chunk_sizer3   r   )	r   re   rf   rg   r¼   rÍ   Úfiler¤   r¥   s	            r!   ri   zFileResponse.__call__8  sà  è ø€ Ø×ÑÐ#ðSÜ$)§O¡O×$<Ñ$<¼R¿W¹WÀdÇiÁiÓ$P×P�Ø×%Ñ% kÔ2ð #×*Ñ*�Ü—|‘| DÔ)Ü&¨°t·y±y°kÀÐ'QÓRÐRÙà-Ø×*Ñ*Ø×+Ñ+ñó
÷ 	
ð 	
ð �‰?× Ñ Ó" fÒ,ÙÐ 4¸cÐPUÑVÓW×WÑWä"Ÿ_™_¨T¯Y©Y¸TÔB×B÷ ð ÀdØ �	ÙØ"&§)¡)¨D¯O©OÓ"<×<�EÜ # E£
¨d¯o©oÑ =�IÙà$8Ø$)Ø)2ñó÷ ð ò  ÷÷ ð �?‰?Ð&Ø—/‘/Ó#×#Ñ#ð 'ð= Qúä$ò PÜ" ]°4·9±9°+Ð=MÐ#NÓOÐOðPúð	
ùð XøàBøð øð =øðøðø÷ ÷ ñ úð $ús×   ‚G;�;F/ ÁF,ÁF/ Á!AG;Â>GÂ?)G;Ã(GÃ))G;ÄGÄG;ÄGÄG;Ä#G$ÅGÅ+G$Å.G Å/G$Å6G;ÆG"Æ#G;Æ%G9Æ&G;Æ,F/ Æ/#GÇG;ÇG;ÇG;ÇG;ÇG$Ç G$Ç"G;Ç$G6Ç*G-Ç+G6Ç2G;)r-   NNNNNNÚ
attachment)rG   zstr | os.PathLike[str]r   rl   r    rm   r   rn   r   ro   r·   rn   r¼   zos.stat_result | Noner¾   rn   r¿   r2   rp   rq   )r¼   zos.stat_resultrp   rq   ru   )rv   rw   rx   rÙ   r"   r½   ri   rz   r#   r!   r´   r´     s“   „ Ø€Jð
 Ø37Ø!%Ø,0Ø#Ø-1Ø!Ø(4ð"/à$ð"/ð ð"/ð 1ð	"/ð
 ð"/ð *ð"/ð ð"/ð +ð"/ð ð"/ð #&ð"/ð 
ó"/óH.ô"$r#   r´   )3Ú
__future__r   Úhttp.cookiesrQ   r�   rÐ   rÑ   r�   r¸   r   Úemail.utilsr   r   Ú	functoolsr   Ú	mimetypesr   Úurllib.parser	   r®   Úanyio.to_threadÚstarlette._compatr
   Ústarlette.backgroundr   Ústarlette.concurrencyr   Ústarlette.datastructuresr   r   Ústarlette.typesr   r   r   r   r|   r   r‚   r“   ÚUnionr2   r&   r'   ÚContentÚIterableÚSyncContentStreamrž   rš   r±   r™   r´   rz   r#   r!   ú<module>rì      sç   ðÝ "ã Û Û 	Û Û Û Ý ß 3Ý Ý  Ý ã Û å +Ý /Ý 7ß 8ß 0Ñ 0÷C$ñ C$ôL�8ô ô˜ô ô�8ô ô.	O�xô 	Oð �,‰,�s˜E :Ð-Ñ
.€Ø—O‘O GÑ,Ð Ø×)Ñ)¨'Ñ2Ð Ø—‘Ð/Ð1BÐBÑC€ô4$˜ô 4$ônS$�8õ S$r#   