
    ]jU                        S SK Jr  S SKrS SKrS SKJr  S SKJrJr  S SK	J
r
Jr  S SKJrJrJrJrJr  Sr1 Skr " S	 S
5      rg)    )annotationsN)Sequence)HeadersMutableHeaders)PlainTextResponseResponse)ASGIAppMessageReceiveScopeSend)DELETEGETHEADOPTIONSPATCHPOSTPUT>   AcceptContent-TypeAccept-LanguageContent-Languagec                      \ 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5       rS
rg)CORSMiddleware   Nc
                   SU;   a  [         nS n
Ub  [        R                  " U5      n
SU;   nSU;   nU(       + =(       d    Un0 nU(       a  SUS'   U(       a  SUS'   U(       a  SR                  U5      US'   0 nU(       a  SUS'   OSUS'   UR	                  SR                  U5      [        U	5      S	.5        [        [        [        U5      -  5      nU(       a  U(       d  SR                  U5      US
'   U(       a  SUS'   Xl	        X l
        X0l        U Vs/ s H  nUR                  5       PM     snU l        Xl        Xl        XPl        Xl        Xl        Xpl        Xl        Xl        g s  snf )N*Access-Control-Allow-Origintruez Access-Control-Allow-Credentials, zAccess-Control-Expose-HeadersOriginVary)zAccess-Control-Allow-MethodszAccess-Control-Max-AgeAccess-Control-Allow-Headers)ALL_METHODSrecompilejoinupdatestrsortedSAFELISTED_HEADERSsetappallow_originsallow_methodslowerallow_headersallow_all_originsallow_all_headersallow_credentialspreflight_explicit_allow_originallow_origin_regexallow_private_networksimple_headerspreflight_headers)selfr-   r.   r/   r1   r4   r6   r7   expose_headersmax_agecompiled_allow_origin_regexr2   r3   r5   r8   r9   hs                    \/var/www/html/Sattelite-Image/venv/lib/python3.13/site-packages/starlette/middleware/cors.py__init__CORSMiddleware.__init__   su    -'M&*#)*,**5G*H'=0=0.?*?*TCT')+<?N89AGN=>>Bii>WN:;,.*(0f%?B;<  04		-0H*-g,	
 1C4FFG!2@D		-@X<=DJ@A**1>?Aaggi?!2!2!2/N,"=%:",!2 @s   E)c                h  #    US   S:w  a  U R                  XU5      I S h  vN   g US   n[        US9nUR                  S5      nUc  U R                  XU5      I S h  vN   g US:X  a'  SU;   a!  U R                  US9nU" XU5      I S h  vN   g U R	                  XX5S9I S h  vN   g  N NM N" N7f)	Ntypehttpmethodscopeoriginr   access-control-request-method)request_headers)r-   r   getpreflight_responsesimple_response)r:   rG   receivesendrE   headersrH   responses           r?   __call__CORSMiddleware.__call__N   s     =F"((54000x&X&>((54000Y#Bg#M..w.GH54000""54"QQQ! 1 1
 1 	RsE   B2B*<B2B,,B2B.B2$B0%B2,B2.B20B2c                    U R                   (       a  gU R                  b!  U R                  R                  U5      (       a  gXR                  ;   $ )NT)r2   r6   	fullmatchr.   )r:   rH   s     r?   is_allowed_origin CORSMiddleware.is_allowed_originb   sC    !!"".43J3J3T3TU[3\3\++++    c                   US   nUS   nUR                  S5      nUR                  S5      n[        U R                  5      n/ nU R                  US9(       a  U R                  (       a  X&S'   OUR                  S5        X0R                  ;  a  UR                  S5        U R                  (       a  Ub  XFS'   OjUbg  UR                  S	5       Vs/ s H  oR                  5       PM     sn H4  n	U	R                  5       U R                  ;  d  M#  UR                  S
5          O   Ub(  U R                  (       a  SUS'   OUR                  S5        U(       a  SSR                  U5      -   n
[        U
SUS9$ [        SSUS9$ s  snf )NrH   rI   zaccess-control-request-headersz&access-control-request-private-networkrH   r   rE   r#   ,rP   r   z$Access-Control-Allow-Private-Networkzprivate-networkzDisallowed CORS r    i  )status_coderP   OK   )rK   dictr9   rV   r5   appendr/   r3   splitr0   stripr1   r7   r'   r   )r:   rJ   requested_originrequested_methodrequested_headersrequested_private_networkrP   failuresr>   headerfailure_texts              r?   rL   !CORSMiddleware.preflight_responsek   sq   *84*+JK+//0PQ$3$7$78`$a!t--. !!)9!:33 :J56OOH%#5#55OOH% !!&7&C6G23*.?.E.Ec.JK.J779.JK<<>););;OOI. L
 %0))BH>? 12
 -		(0CCL$\sGTT 3HH% Ls   E>c                   #    [         R                  " U R                  X4S9nU R                  XU5      I S h  vN   g  N7f)N)rO   rJ   )	functoolspartialrO   r-   )r:   rG   rN   rO   rJ   s        r?   rM   CORSMiddleware.simple_response   s/       Whhut,,,s   5?=?c                  #    US   S:w  a  U" U5      I S h  vN   g UR                  S/ 5        [        US9nUR                  U R                  5        US   nU R                  (       a#  U R
                  (       a  U R                  XE5        O6U R                  (       d%  U R                  US9(       a  U R                  XE5        U" U5      I S h  vN   g  N N7f)NrC   zhttp.response.startrP   rF   r!   rZ   )
setdefaultr   r(   r8   r2   r4   allow_explicit_originrV   )r:   messagerO   rJ   rP   rH   s         r?   rO   CORSMiddleware.send   s     6?33w-9b) w/t**+ * !!d&<&<&&w7 ''D,B,B&,B,Q&&w77m!    	s"   CCB5CCCCc                .    XS'   U R                  S5        g )Nr   r!   )add_vary_header)rP   rH   s     r?   rq   $CORSMiddleware.allow_explicit_origin   s    17-.)rX   )r3   r2   r4   r1   r/   r6   r.   r7   r-   r5   r9   r8   ) )r   rw   FNFrw   iX  )r-   r	   r.   Sequence[str]r/   rx   r1   rx   r4   boolr6   z
str | Noner7   ry   r;   rx   r<   intreturnNone)rG   r   rN   r   rO   r   r{   r|   )rH   r)   r{   ry   )rJ   r   r{   r   )
rG   r   rN   r   rO   r   rJ   r   r{   r|   )rr   r
   rO   r   rJ   r   r{   r|   )rP   r   rH   r)   r{   r|   )__name__
__module____qualname____firstlineno__r@   rR   rV   rL   rM   rO   staticmethodrq   __static_attributes__rw   rX   r?   r   r      s     (*'/')"')-&+(*<3<3 %<3 %	<3
 %<3  <3 '<3  $<3 &<3 <3 
<3|R(,+IZ-( * *rX   r   )
__future__r   rl   r%   collections.abcr   starlette.datastructuresr   r   starlette.responsesr   r   starlette.typesr	   r
   r   r   r   r$   r+   r   rw   rX   r?   <module>r      s4    "  	 $ < ; B BJV d* d*rX   