
    iT                       S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
JrJrJrJrJr  S SKJr  S SKJrJr  S SKJr  S SKJr  S SKJr  S S	KJrJr  S S
KJr  S SKrS SK rS SK!J"r"  S SK#J$r$  S SK%J&r&  S SK'J(r(J)r)J*r*  S SK+J,r,  S SK-J.r.J/r/J0r0J1r1   " S S5      r2 " S S\25      r3 " S S\25      r4 " S S\25      r5 " S S\25      r6\7\8-  \9-  r:\\:   r;\
\:   r<\<\;-  r= " S S\25      r> " S S\?5      r@ " S S \?5      rA " S! S"\25      rBg)#    )annotationsN)AsyncIterable	AwaitableCallableIterableMappingSequence)datetime)format_datetime
formatdate)partial)
guess_type)	token_hex)AnyLiteral)quote)collapse_excgroups)BackgroundTask)iterate_in_threadpool)URLHeadersMutableHeaders)ClientDisconnect)MessageReceiveScopeSendc                     \ rS rSrSrSr     S           SS jjrSS jrSSS jjr\	SS j5       r
         S                     SS jjr     S             SS	 jjrSS
 jrSS jrSrg)Response   Nutf-8c                |    X l         Ub  X@l        XPl        U R                  U5      U l        U R                  U5        g N)status_code
media_type
backgroundrenderbodyinit_headersselfcontentr$   headersr%   r&   s         @/app/mltbenv/lib/python3.13/site-packages/starlette/responses.py__init__Response.__init__!   s8     '!(O$KK(	'"    c                |    Uc  g[        U[        [        -  5      (       a  U$ UR                  U R                  5      $ )Nr1   )
isinstancebytes
memoryviewencodecharsetr+   r,   s     r.   r'   Response.render0   s4    ?guz122N~~dll++r1   c                   Uc  / nSnSnOpUR                  5        VVs/ s H5  u  pVUR                  5       R                  S5      UR                  S5      4PM7     nnnU Vs/ s H  owS   PM	     nnSU;  nSU;  n[        U SS 5      n	U	b]  U(       aV  U R                  S:  dF  U R                  S;   d6  [        [        U	5      5      n
UR                  SU
R                  S5      45        U R                  nUbe  U(       a^  UR                  S	5      (       a&  S
UR                  5       ;  a  USU R                  -   -  nUR                  SUR                  S5      45        X l        g s  snnf s  snf )NTlatin-1r   s   content-lengths   content-typer(      )   i0  ztext/zcharset=z
; charset=)itemslowerr6   getattrr$   strlenappendr%   
startswithr7   raw_headers)r+   r-   rE   populate_content_lengthpopulate_content_typekvhkeysr(   content_lengthcontent_types               r.   r)   Response.init_headers7   sW   ?57K&*#$(!ZaZgZgZijZiRVRSAGGI,,Y7)9LMZiKj"-.+QaD+D.&7t&C#$34$?!tVT*'%%+t/?/?:/M T^N 1>3H3H3STU#(=&&w//JlFXFXFZ4Zt|| ;;1D1DY1OPQ&) k.s   <E#!E)c                l    [        U S5      (       d  [        U R                  S9U l        U R                  $ )N_headersraw)hasattrr   rE   rP   )r+   s    r.   r-   Response.headersS   s+    tZ((*t/?/?@DM}}r1   c                P   [         R                  R                  5       nX+U'   Ub  X;U   S'   Ub,  [        U[        5      (       a  [        USS9X   S'   OXKU   S'   Ub  X[U   S'   Ub  XkU   S'   U(       a  SX   S'   U(       a  SX   S'   U	b"  U	R                  5       S	;   d   S
5       eXU   S'   U
(       a&  [        R                  S:  a  [        S5      eSX   S'   UR                  SS9R                  5       nU R                  R                  SUR                  S5      45        g )Nzmax-ageTusegmtexpirespathdomainsecurehttponly)strictlaxnonez1samesite must be either 'strict', 'lax' or 'none'samesite)      z@Partitioned cookies are only supported in Python 3.14 and above.partitioned )headers
   set-cookier;   )httpcookiesSimpleCookier3   r
   r   r?   sysversion_info
ValueErroroutputstriprE   rC   r6   )r+   keyvaluemax_agerX   rY   rZ   r[   r\   r`   rc   cookie
cookie_vals                r.   
set_cookieResponse.set_cookieY   sH    04||/H/H/Js%,3K	"'8,,)8)NI&)0sI&"&3K$*3K!$(FK!&*FK
#>># (  C C	C 
 '/3K
#') !cdd)-FK&]]"]-335

0A0A)0L MNr1   c                0    U R                  USSUUUUUS9  g )Nr   )rp   rX   rY   rZ   r[   r\   r`   )rs   )r+   rn   rY   rZ   r[   r\   r`   s          r.   delete_cookieResponse.delete_cookie   s-     	 	 		
r1   c                   ^ SU4S jjnU$ )Nc                ^   >#    U S   nUS;   a  0 U ESSU-   0En T" U 5      I S h  vN   g  N7f)Ntype>   http.response.bodyhttp.response.startz
websocket. )messagemessage_typesends     r.   wrapped5Response._wrap_websocket_denial_send.<locals>.wrapped   s;     "6?LLLJWJfl\.IJw-s   "-+-)r~   r   returnNoner}   )r+   r   r   s    ` r.   _wrap_websocket_denial_send$Response._wrap_websocket_denial_send   s    	  r1   c                "  #    US   S:X  a  U R                  U5      nU" SU R                  U R                  S.5      I S h  vN   U" SU R                  S.5      I S h  vN   U R                  b  U R	                  5       I S h  vN   g g  NH N- N
7f)Nrz   	websocketr|   rz   statusr-   r{   )rz   r(   )r   r$   rE   r(   r&   )r+   scopereceiver   s       r.   __call__Response.__call__   s     =K'33D9D1T=M=MZ^ZjZjklll0$))DEEE??&//### ' 	mE $s5   >B B	BB$BBBBB)rP   r&   r(   r%   rE   r$   )Nr<   NNNr,   r   r$   intr-   Mapping[str, str] | Noner%   
str | Noner&   BackgroundTask | Noner   r   )r,   r   r   zbytes | memoryviewr#   )r-   r   r   r   )r   r   )	rd   NN/NFFr^   F)rn   rA   ro   rA   rp   z
int | NonerX   zdatetime | str | int | NonerY   r   rZ   r   r[   boolr\   r   r`   'Literal['lax', 'strict', 'none'] | Nonerc   r   r   r   )r   NFFr^   )rn   rA   rY   rA   rZ   r   r[   r   r\   r   r`   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )__name__
__module____qualname____firstlineno__r%   r7   r/   r'   r)   propertyr-   rs   rv   r   r   __static_attributes__r}   r1   r.   r   r      sy   JG ,0!%,0## # *	#
 # *# 
#,'8   "/3!<A!+O+O +O 	+O
 -+O +O +O +O +O :+O +O 
+O` !<A

 
 	

 
 
 :
 

($r1   r   c                      \ rS rSrSrSrg)HTMLResponse   z	text/htmlr}   Nr   r   r   r   r%   r   r}   r1   r.   r   r      s    Jr1   r   c                      \ rS rSrSrSrg)PlainTextResponse   
text/plainr}   Nr   r}   r1   r.   r   r      s    Jr1   r   c                  \   ^  \ rS rSrSr    S           SU 4S jjjrSS jrSrU =r$ )	JSONResponse   zapplication/jsonc                (   > [         TU ]  XX4U5        g r#   )superr/   )r+   r,   r$   r-   r%   r&   	__class__s         r.   r/   JSONResponse.__init__   s     	wJOr1   c                P    [         R                  " USSS SS9R                  S5      $ )NF),:)ensure_ascii	allow_nanindent
separatorsr!   )jsondumpsr6   r8   s     r.   r'   JSONResponse.render   s-    zz!
 &/	r1   r}   r<   NNNr   )r,   r   r   r4   )	r   r   r   r   r%   r/   r'   r   __classcell__r   s   @r.   r   r      sl    #J
 ,0!%,0PP P *	P
 P *P 
P P r1   r   c                  H   ^  \ rS rSr   S         SU 4S jjjrSrU =r$ )RedirectResponser=   c                d   > [         TU ]  SX#US9  [        [        U5      SS9U R                  S'   g )Nr1   )r,   r$   r-   r&   z:/%#?=@[]!$&'()*+,;)safelocation)r   r/   r   rA   r-   )r+   urlr$   r-   r&   r   s        r.   r/   RedirectResponse.__init__   s4     	+[ef#(S8M#NZ r1   r}   )i3  NN)
r   z	str | URLr$   r   r-   r   r&   r   r   r   )r   r   r   r   r/   r   r   r   s   @r.   r   r      sO     ,0,0OO O *	O
 *O 
O Or1   r   c                  j    \ rS rSr% S\S'       S
           SS jjrSS jrSS jrSS jrS	r	g)StreamingResponse   AsyncContentStreambody_iteratorNc                    [        U[        5      (       a  Xl        O[        U5      U l        X l        Uc  U R
                  OUU l        XPl        U R                  U5        g r#   )r3   r   r   r   r$   r%   r&   r)   r*   s         r.   r/   StreamingResponse.__init__   sO     g}--!(!6w!?D&-7-?$//Z$'"r1   c                F   #     U" 5       I S h  vN nUS   S:X  a  g M   N7f)Nrz   zhttp.disconnectr}   )r+   r   r~   s      r.   listen_for_disconnect'StreamingResponse.listen_for_disconnect   s)     #IoGv"33 %s   !!c                X  #    U" SU R                   U R                  S.5      I S h  vN   U R                    S h  vN n[        U[        [
        -  5      (       d  UR                  U R                  5      nU" SUSS.5      I S h  vN   MV   Nf NS N

 U" SSSS.5      I S h  vN    g 7f)Nr|   r   r{   Trz   r(   	more_bodyr1   F)r$   rE   r   r3   r4   r5   r6   r7   )r+   r   chunks      r.   stream_response!StreamingResponse.stream_response   s     1T=M=MZ^ZjZjklll-- 	Y%eUZ%788T\\2 4eRVWXXX	 	m	Y Y .
 0#ERSSSsN   $B*BB*BBBAB*BB*BB*B*#B&$B*c           	       ^#    US   S:X  aP  U R                  U5      nU R                  U5      I S h  vN   U R                  b  U R                  5       I S h  vN   g [        [	        [
        UR                  S0 5      R                  SS5      R                  S5      5      5      nUS:  a   U R                  U5      I S h  vN   O[        5          [        R                  " 5        IS h  vN mS	U4S jjnTR                  U[        U R                  U5      5        U" [        U R                  U5      5      I S h  vN   S S S 5      IS h  vN   S S S 5        U R                  b  U R                  5       I S h  vN   g g  GNN GN, N! [         a    [        5       ef = f N Ne NW! , IS h  vN  (       d  f       Nl= f! , (       d  f       Nu= f NW7f)
Nrz   r   asgispec_versionz2.0.)      c                d   >#    U " 5       I S h  vN   TR                   R                  5         g  N7fr#   )cancel_scopecancel)func
task_groups    r.   wrap(StreamingResponse.__call__.<locals>.wrap  s&     "f"//668 %s   0. 0)r   zCallable[[], Awaitable[None]]r   r   )r   r   r&   tuplemapr   getsplitOSErrorr   r   anyiocreate_task_group
start_soonr   r   )r+   r   r   r   r   r   r   s         @r.   r   StreamingResponse.__call__  s}    =K'33D9D&&t,,,*oo'''Seii&;&?&?PU&V&\&\]`&abc6!)**4000 $% 2244
9 ))$8L8Ld0STwt'A'A7KLLL 54 & ??&//### '/ -' 1 )&(() 5 M 5444 &% $s   /GF $GFAG,F  FF GG *F +G .AF&<F"=F&G F$G (G9G:GGF FG G "F&$G &F=	,F/-F=	9G  
G
G)r&   r   r%   r$   r   )r,   ContentStreamr$   r   r-   r   r%   r   r&   r   r   r   )r   r   r   r   )r   r   r   r   r   )
r   r   r   r   __annotations__r/   r   r   r   r   r}   r1   r.   r   r      se    %%
 ,0!%,0## # *	#
 # *# 
#"T$r1   r   c                  "    \ rS rSrSSS jjrSrg)MalformedRangeHeaderi  c                    Xl         g r#   r,   r8   s     r.   r/   MalformedRangeHeader.__init__   s    r1   r   N)zMalformed range header.)r,   rA   r   r   r   r   r   r   r/   r   r}   r1   r.   r   r     s     r1   r   c                      \ rS rSrSS jrSrg)RangeNotSatisfiablei$  c                    Xl         g r#   max_size)r+   r   s     r.   r/   RangeNotSatisfiable.__init__%  s     r1   r   N)r   r   r   r   r   r}   r1   r.   r   r   $  s    !r1   r   c                     \ rS rSrSr       S                 SS jjrSS jrSS jrSS jr            SS jr	          SS	 jr
SS
 jr\SS j5       r\SS j5       r          SS jrSrg)FileResponsei)  i   Nc	                   Xl         X l        X`l        Uc   [        U=(       d    U5      S   =(       d    SnX@l        XPl        U R                  U5        U R                  R                  SS5        U R                  bZ  [        U R                  5      n	XR                  :w  a  U SU	 3n
OU SU R                   S3n
U R                  R                  SU
5        Xpl
        Ub  U R                  U5        g g )	Nr   r   zaccept-rangesr4   z; filename*=utf-8''z; filename=""zcontent-disposition)rY   r$   filenamer   r%   r&   r)   r-   
setdefaultr   stat_resultset_stat_headers)r+   rY   r$   r-   r%   r&   r   r   content_disposition_typecontent_disposition_filenamecontent_dispositions              r.   r/   FileResponse.__init__,  s     	& #H$45a8HLJ$$'"9==$+0+?(+}}<)A(BBUVrUs&t#)A(B,t}}o]^&_#LL##$9;NO&"!!+. #r1   c                   [        UR                  5      n[        UR                  SS9n[        UR                  5      S-   [        UR                  5      -   nS[        R
                  " UR                  5       SS9R                  5        S3nU R                  R                  SU5        U R                  R                  SU5        U R                  R                  S	U5        g )
NTrV   -r   F)usedforsecuritycontent-lengthlast-modifiedetag)
rA   st_sizer   st_mtimehashlibmd5r6   	hexdigestr-   r   )r+   r   rL   last_modified	etag_baser  s         r.   r   FileResponse.set_stat_headersK  s    [001";#7#7E,,-3c+:M:M6NN	7;;y//15ISSUVVWX 0.A?-r1   c                  #    US   nUS:H  =(       a    US   R                  5       S:H  nUS:H  =(       a    SUR                  S0 5      ;   nUS:X  a  U R                  U5      nU R                  c   [        R
                  R                  [        R                  U R                  5      I S h  vN nU R                  U5        UR                  n[        R                  " U5      (       d  [        SU R                   S	35      eOU R                  n[        US9n	U	R                  S5      n
U	R                  S5      nU
b  Ub1  U R!                  U5      (       d  U R#                  X5U5      I S h  vN   O U R%                  XR&                  5      n[3        U5      S:X  a/  US   u  nnU R5                  X?UUR&                  U5      I S h  vN   O%U R7                  X<UR&                  U5      I S h  vN   U R8                  b  U R9                  5       I S h  vN   g g  GNk! [         a    [        SU R                   S
35      ef = f N! [(         a.  n[+        UR,                  SS9" XU5      I S h  vN  s S nA$ S nAf[.         a5  n[+        SSSUR0                   30S9nU" XU5      I S h  vN  s S nA$ S nAff = f N N N7f)Nrz   rf   methodHEADhttp.response.pathsend
extensionsr   zFile at path z is not a file.z does not exist.)r   rangezif-rangei  )r$   i  zContent-Rangezbytes */)r$   r-      r   )upperr   r   r   r   	to_threadrun_syncosstatrY   r   st_modeS_ISREGRuntimeErrorFileNotFoundErrorr   _should_use_range_handle_simple_parse_range_headerr  r   r   r,   r   r   rB   _handle_single_range_handle_multiple_rangesr&   )r+   r   r   r   
scope_typesend_header_onlysend_pathsendr   moder-   
http_rangehttp_if_rangerangesexcresponsestartends                    r.   r   FileResponse.__call__U  s    6]
%/UE(O4I4I4Kv4U"f,h1IUYYWcegMh1h$33D9D#S$)OO$<$<RWWdii$PP%%k2 #**||D))&tyyk'QRR * **K&[[)
J/-";DDZDZ[hDiDi%%dmLLL<11*>Q>QR 6{a#AY
s//S+BUBUWghhh224ATATVfggg??&//### 'A Q$ P"]499+=M#NOOP M ( c.s{{LU]abbbb& <,ZbcfcocobpXqFrs%ed;;;;< ig $s   A-K 0;H +H,H B)K *I +K 1I 8K J:%K *J<+$K J>K H $H==K 
J7I5*I-+I5/J70K 5J7%J2'J*(J2,J7-K 2J77K <K >K c                  #    U" SU R                   U R                  S.5      I S h  vN   U(       a  U" SSSS.5      I S h  vN   g U(       a'  U" S[        U R                  5      S.5      I S h  vN   g [        R
                  " U R                  S	S
9I S h  vN  IS h  vN nSnU(       aW  UR                  U R                  5      I S h  vN n[        U5      U R                  :H  nU" SXeS.5      I S h  vN   U(       a  MW  S S S 5      IS h  vN   g  N N N N N} NS N* N! , IS h  vN  (       d  f       g = f7f)Nr|   r   r{   r1   Fr   r  )rz   rY   rbr'  T)	r$   rE   rA   rY   r   	open_fileread
chunk_sizerB   )r+   r   r%  r&  filer   r   s          r.   r   FileResponse._handle_simple  s     1T=M=MZ^ZjZjklll 4cPUVWWW 8#dii.QRRR"__TYYTBBBBd 	"&))DOO"<<E #E
doo =I(<edeee  i CBB 	mWRB =e CBBBs   $E DE D-E /D0'E DE  D!E $(D&D *D&7D"8D&E D$E E E E E  D&"D&$E &D=,D/-D=9E c                
  #    [        [        U R                  5      S9nSU SUS-
   SU 3US'   [        X2-
  5      US'   U" SS	UR                  S
.5      I S h  vN   U(       a  U" SSSS.5      I S h  vN   g [
        R                  " U R                  SS9I S h  vN  IS h  vN nUR                  U5      I S h  vN   SnU(       a|  UR                  [        U R                  X2-
  5      5      I S h  vN n	U[        U	5      -  n[        U	5      U R                  :H  =(       a    X#:  nU" SXS.5      I S h  vN   U(       a  M|  S S S 5      IS h  vN   g  N N N N N Nl N* N! , IS h  vN  (       d  f       g = f7f)NrQ   zbytes r  r  r   zcontent-ranger  r|      r   r{   r1   Fr   r1  r2  T)r   listrE   rA   rR   r   r3  rY   seekr4  minr5  rB   )
r+   r   r-  r.  	file_sizer%  r-   r6  r   r   s
             r.   r"  !FileResponse._handle_single_range  sP     !T$*:*:%;<%+E7!C!G9Ai[#I $'$4 !1SW[[YZZZ 4cPUVWWW"__TYYTBBBBdii&&& 	"&))C,M"NNESZ'E #E
doo = M%+I(<edeee	  i CBB	 	[WB& O f CBBBs   AFEF4E5'FEF%E&F)E)>E!?7E)6E#7AE):E%;E)FE'FFFF!E)#E)%E)'F)F /E20F <Fc           	       #    [        S5      nU R                  X%X0R                  S   5      u  pg[        [	        U R
                  5      S9nSU 3US'   [        U5      US'   U" SSUR                  S.5      I S h  vN   U(       a  U" S	S
SS.5      I S h  vN   g [        R                  " U R                  SS9I S h  vN  IS h  vN n	U H  u  pU" S	U" X5      SS.5      I S h  vN   U	R                  U
5      I S h  vN   X:  aX  U	R                  [        U R                  X-
  5      5      I S h  vN nU
[        U5      -  n
U" S	USS.5      I S h  vN   X:  a  MX  U" S	SSS.5      I S h  vN   M     U" S	SU S3R!                  S5      SS.5      I S h  vN   S S S 5      IS h  vN   g  GN8 GN  N N N N N Nk NR N) N! , IS h  vN  (       d  f       g = f7f)N   zcontent-typerQ   zmultipart/byteranges; boundary=r  r|   r9  r   r{   r1   Fr   r1  r2  Ts   
--r;   )r   generate_multipartr-   r   r:  rE   rA   rR   r   r3  rY   r;  r4  r<  r5  rB   r6   )r+   r   r*  r=  r%  boundaryrL   header_generatorr-   r6  r-  r.  r   s                r.   r#  $FileResponse._handle_multiple_ranges  s     R=+/+B+Bin)E,
( !T$*:*:%;<$CH:"N$'$7 !1SW[[YZZZ 4cPUVWWW"__TYYTBBBBd"(JE(<FVW\Fbquvwww))E***+&*iiDOOS[0Q&R RU+",@%^b#cddd  + (<g\`abbb #)  4"$XJb 1 8 8 C%*   CBB	 	[WBw* Rdb CBBBs   A8G$:F2;G$F5'G$=F8>G$F:G$
G
'F<(G
 F>3G
4G 5!G
G	G
"G
1G2*G
GG
!G$,G-G$5G$8G$:G$<G
>G
 G
G
G
G
G$
G!GG!G$c                T    XR                   S   :H  =(       d    XR                   S   :H  $ )Nr  r  )r-   )r+   r)  s     r.   r  FileResponse._should_use_range  s(    _ ==fR^R^_eRfAffr1   c                t  ^ / n UR                  SS5      u  pEUR                  5       R	                  5       nUS:w  a  [        S5      eU R                  UT5      n[        U5      S:X  a  [        S5      e[        U4S jU 5       5      (       a  [        T5      e[        S U 5       5      (       a  [        S	5      e[        U5      S:X  a  U$ UR                  5         US   /nUSS   H5  u  pxUS
   u  pXz::  a  U	[        X5      4US
'   M#  UR                  Xx45        M7     U$ ! [         a    [        5       ef = f)N=r  r4   zOnly support bytes ranger   z%Range header: range must be requestedc              3  \   >#    U  H!  u  pS Us=:*  =(       a    T:  Os  (       + v   M#     g7f)r   Nr}   ).0r-  _r=  s      r.   	<genexpr>3FileResponse._parse_range_header.<locals>.<genexpr>  s&     CFA***++Fs   ),c              3  .   #    U  H  u  pX:  v   M     g 7fr#   r}   )rK  r-  r.  s      r.   rM  rN    s     4Vzuu{Vs   z)Range header: start must be less than end)r   rk   r   rm   r?   _parse_rangesrB   anyr   sortmaxrC   )clsr(  r=  r*  unitsrange_resultr-  r.  
last_startlast_ends     `        r.   r!   FileResponse._parse_range_header  s<   (*	)&,,S!4ME ##%G&'ABB""695v;!&'NOOCFCCC%i004V444&'RSSv;!M 	)/ *JE#)": J (#h*<=r
ul+ % A  	)&((	)s   D" "D7c                   / nUR                  S5       H  nUR                  5       nU(       a  US:X  a  M"  SU;  a  M*  UR                  SS5      u  pVUR                  5       nUR                  5       n U(       a  [        U5      OU[        U5      -
  nU(       a$  U(       a  [        U5      U:  a  [        U5      S-   OUnUR                  Xx45        M     U$ ! [         a     M  f = f)Nr   r  r  )r   rm   r   rC   rk   )	rU  rW  r=  r*  part	start_strend_strr-  r.  s	            r.   rQ  FileResponse._parse_ranges  s    (*LL%D::<D 43; $!%C!3I!)ImmoG*3IS\9Q*3CLS\D\c'lQ&bkul+% &. 	  s   3AC
C&%C&c                   ^^^^ [        T5      nSU-   [        T5      -   [        [        T5      5      -   m[        U4S jU 5       5      SU-   -   nUUUU4S j4$ )aW  
Multipart response headers generator.

```
--{boundary}\r\n
Content-Type: {content_type}\r\n
Content-Range: bytes {start}-{end-1}/{max_size}\r\n
\r\n
..........content...........\r\n
--{boundary}\r\n
Content-Type: {content_type}\r\n
Content-Range: bytes {start}-{end-1}/{max_size}\r\n
\r\n
..........content...........\r\n
--{boundary}--
```
1   c              3     >#    U  H;  u  p[        [        U5      5      [        [        US -
  5      5      -   T-   X!-
  -   v   M=     g7f)r  N)rB   rA   )rK  r-  r.  static_header_part_lens      r.   rM  2FileResponse.generate_multipart.<locals>.<genexpr>'  sF      
 %
 U_s3sQw<003II{$s   AAr   c                L   > ST ST SU  SUS-
   ST S3R                  S5      $ )	NrA  z
Content-Type: z
Content-Range: bytes r  r  r   z

r;   )r6   )r-  r.  rC  rM   r   s     r.   <lambda>1FileResponse.generate_multipart.<locals>.<lambda>0  sL    * n WAcAgYaz 2 fY  r1   )rB   rA   sum)r+   r*  rC  r   rM   boundary_lenrL   rd  s     ```  @r.   rB  FileResponse.generate_multipart  sn    0 8}!#l!2S5F!FSQY]I[![ 
 %
 

 
  

 
	
r1   )r&   r   r%   rY   r   r$   )r<   NNNNN
attachment)rY   zstr | os.PathLike[str]r$   r   r-   r   r%   r   r&   r   r   r   r   zos.stat_result | Noner   rA   r   r   )r   zos.stat_resultr   r   r   )r   r   r%  r   r&  r   r   r   )r   r   r-  r   r.  r   r=  r   r%  r   r   r   )
r   r   r*  list[tuple[int, int]]r=  r   r%  r   r   r   )r)  rA   r   r   )r(  rA   r=  r   r   rm  )rW  rA   r=  r   r   rm  )
r*  zSequence[tuple[int, int]]rC  rA   r   r   rM   rA   r   z'tuple[int, Callable[[int, int], bytes]])r   r   r   r   r5  r/   r   r   r   r"  r#  r  classmethodr!  rQ  rB  r   r}   r1   r.   r   r   )  sb   J
 ,0!%,0#-1(4/$/ / *	/
 / */ / +/ #&/ 
/>.*$Xfff!$f+.f;>fRVf	f&"" &" 	"
 " 
"Hg $ $L  8+
)+
 +
 	+

 +
 
1+
r1   r   )C
__future__r   r	  http.cookiesrf   r   r  r  ri   collections.abcr   r   r   r   r   r	   r
   email.utilsr   r   	functoolsr   	mimetypesr   secretsr   typingr   r   urllib.parser   r   anyio.to_threadstarlette._utilsr   starlette.backgroundr   starlette.concurrencyr   starlette.datastructuresr   r   r   starlette.requestsr   starlette.typesr   r   r   r   r   r   r   r   r   rA   r4   r5   ContentSyncContentStreamr   r   r   	Exceptionr   r   r   r}   r1   r.   <module>r     s    "    	  
 [ [  3         / / 7 A A / 9 9M$ M$`8  8 .	Ox 	O +

"W% "7+ "%66>$ >$B9 
!) !
O
8 O
r1   