Ë
    @Øïi£  ã                   óx   — d dl Z d dlZd dlZd dlmZmZ d dlmZmZ d dl	m
Z
mZmZmZmZ dZh d£Z G d„ d«      Zy)	é    N)ÚHeadersÚMutableHeaders)ÚPlainTextResponseÚResponse)ÚASGIAppÚMessageÚReceiveÚScopeÚSend)ÚDELETEÚGETÚHEADÚOPTIONSÚPATCHÚPOSTÚPUT>   úContent-TypeúAccept-LanguageúContent-LanguageÚAcceptc                   óT  — e Zd Z	 	 	 	 	 	 	 ddedej
                  e   dej
                  e   dej
                  e   dedej                  e   dej
                  e   d	e	d
dfd„Z
dededed
dfd„Zded
efd„Zded
efd„Zdedededed
df
d„Zdededed
dfd„Zededed
dfd„«       Zy)ÚCORSMiddlewareNÚappÚallow_originsÚallow_methodsÚallow_headersÚallow_credentialsÚallow_origin_regexÚexpose_headersÚmax_ageÚreturnc	                 ól  — d|v rt         }d }	|�t        j                  |«      }	d|v }
d|v }|
 xs |}i }|
rd|d<   |rd|d<   |rdj                  |«      |d<   i }|rd|d<   nd|d<   |j	                  dj                  |«      t        |«      d	œ«       t        t        t        |«      z  «      }|r|sdj                  |«      |d
<   |rd|d<   || _	        || _
        || _        |D �cg c]  }|j                  «       ‘Œ c}| _        |
| _        || _        || _        |	| _        || _        || _        y c c}w )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Úsetr   r   r   Úlowerr   Úallow_all_originsÚallow_all_headersÚpreflight_explicit_allow_originr   Úsimple_headersÚpreflight_headers)Úselfr   r   r   r   r   r   r   r    Úcompiled_allow_origin_regexr4   r5   r6   r7   r8   Úhs                   úS/var/www/html/aiagents/fe/lib/python3.12/site-packages/starlette/middleware/cors.pyÚ__init__zCORSMiddleware.__init__   sw  € ð �-ÑÜ'ˆMà&*Ð#ØÐ)Ü*,¯*©*Ð5GÓ*HÐ'à =Ð0ÐØ =Ð0ÐØ.?Ð*?Ò*TÐCTÐ'àˆÙØ<?ˆNÐ8Ñ9ÙØAGˆNÐ=Ñ>ÙØ>B¿i¹iÈÓ>WˆNÐ:Ñ;àÐÙ*à(0Ð˜fÒ%à?BÐÐ;Ñ<Ø× Ñ à04·	±	¸-Ó0HÜ*-¨g«,ñô	
ô Ô1´C¸Ó4FÑFÓGˆÙÑ!2Ø@DÇ	Á	È-Ó@XÐÐ<Ñ=ÙØDJÐÐ@ÑAàˆŒØ*ˆÔØ*ˆÔØ1>Ö?¨A˜aŸg™g�iÒ?ˆÔØ!2ˆÔØ!2ˆÔØ/NˆÔ,Ø"=ˆÔØ,ˆÔØ!2ˆÕùò @s   Ã'D1ÚscopeÚreceiveÚsendc              ƒ   óz  K  — |d   dk7  r| j                  |||«      ƒ d {  –—†  y |d   }t        |¬«      }|j                  d«      }|€| j                  |||«      ƒ d {  –—†  y |dk(  r)d|v r%| j                  |¬«      } ||||«      ƒ d {  –—†  y | j	                  ||||¬«      ƒ d {  –—†  y 7 Œ‘7 ŒS7 Œ'7 Œ­w)	NÚtypeÚhttpÚmethod©r>   Úoriginr   úaccess-control-request-method)Úrequest_headers)r   r   ÚgetÚpreflight_responseÚsimple_response)r9   r>   r?   r@   rD   ÚheadersrF   Úresponses           r<   Ú__call__zCORSMiddleware.__call__I   s×   è ø€ Ø�‰=˜FÒ"Ø—(‘(˜5 '¨4Ó0×0Ð0Øà�x‘ˆÜ Ô&ˆØ—‘˜XÓ&ˆàˆ>Ø—(‘(˜5 '¨4Ó0×0Ð0Øà�YÒÐ#BÀgÑ#MØ×.Ñ.¸wÐ.ÓGˆHÙ˜5 '¨4Ó0×0Ð0Øà×"Ñ" 5¨'°4ÈÐ"ÓQ×QÑQð! 1øð 1øð
 1øð 	RúsE   ‚B;¡B3¢?B;Á!B5Á"-B;ÂB7ÂB;Â-B9Â.B;Â5B;Â7B;Â9B;rF   c                 óˆ   — | j                   ry| j                  �| j                  j                  |«      ry|| j                  v S )NT)r4   r   Ú	fullmatchr   )r9   rF   s     r<   Úis_allowed_originz CORSMiddleware.is_allowed_origin]   sF   € Ø×!Ò!Øà×"Ñ"Ð.°4×3JÑ3J×3TÑ3TØô4
ð à˜×+Ñ+Ð+Ð+ó    rH   c                 ój  — |d   }|d   }|j                  d«      }t        | j                  «      }g }| j                  |¬«      r| j                  r||d<   n|j                  d«       || j                  vr|j                  d«       | j                  r|�||d<   nc|�a|j                  d«      D �cg c]  }|j                  «       ‘Œ c}D ]1  }|j                  «       | j                  vsŒ |j                  d	«        n |r"d
dj                  |«      z   }	t        |	d|¬«      S t        dd|¬«      S c c}w )NrF   rG   zaccess-control-request-headers©rF   r$   rD   r)   ú,rL   zDisallowed CORS r&   i�  )Ústatus_coderL   ÚOKéÈ   )rI   Údictr8   rQ   r6   Úappendr   r5   Úsplitr3   Ústripr   r-   r   )
r9   rH   Úrequested_originÚrequested_methodÚrequested_headersrL   Úfailuresr;   ÚheaderÚfailure_texts
             r<   rJ   z!CORSMiddleware.preflight_responseh   s;  € Ø*¨8Ñ4ÐØ*Ð+JÑKÐØ+×/Ñ/Ð0PÓQÐä�t×-Ñ-Ó.ˆØˆà×!Ñ!Ð)9Ð!Ô:Ø×3Ò3ð :J�Ð5Ò6à�O‰O˜HÔ%à 4×#5Ñ#5Ñ5Ø�O‰O˜HÔ%ð ×!Ò!Ð&7Ð&CØ6GˆGÐ2Ò3ØÐ*Ø.?×.EÑ.EÀcÓ.JÖK¨˜1Ÿ7™7�9ÒKò �Ø—<‘<“>¨×);Ñ);Ò;Ø—O‘O IÔ.Ùðñ Ø-°·	±	¸(Ó0CÑCˆLÜ$ \¸sÈGÔTÐTä  °3ÀÔHÐHùò Ls   Â0D0c              ƒ   óŠ   K  — t        j                  | j                  ||¬«      }| j                  |||«      ƒ d {  –—†  y 7 Œ­w)N)r@   rH   )Ú	functoolsÚpartialr@   r   )r9   r>   r?   r@   rH   s        r<   rK   zCORSMiddleware.simple_responseŽ   s6   è ø€ ô × Ñ  §¡°ÀÔWˆØ�h‰h�u˜g tÓ,×,Ò,ús   ‚9A»A¼AÚmessagec              ƒ   óŒ  K  — |d   dk7  r ||«      ƒ d {  –—†  y |j                  dg «       t        |¬«      }|j                  | j                  «       |d   }d|v }| j                  r|r| j                  ||«       n0| j                  s$| j                  |¬«      r| j                  ||«        ||«      ƒ d {  –—†  y 7 Œ©7 Œ­w)NrB   zhttp.response.startrL   rE   r'   ÚcookierT   )Ú
setdefaultr   r.   r7   r4   Úallow_explicit_originrQ   )r9   rf   r@   rH   rL   rF   Ú
has_cookies          r<   r@   zCORSMiddleware.send”   sÅ   è ø€ ð �6‰?Ð3Ò3Ù�w“-×ÐØà×Ñ˜9 bÔ)Ü  wÔ/ˆØ�‰�t×*Ñ*Ô+Ø  Ñ*ˆØ Ð0ˆ
ð ×!Ò!¡jØ×&Ñ& w°Õ7ð ×'Ò'¨D×,BÑ,BÈ&Ð,BÔ,QØ×&Ñ& w°Ô7á�7‹m×Ñð'  øð& 	ús"   ‚C–C —B#CÂ:CÂ;CÃCrL   c                 ó0   — || d<   | j                  d«       y )Nr$   r'   )Úadd_vary_header)rL   rF   s     r<   rj   z$CORSMiddleware.allow_explicit_origin­   s   € à17ˆÐ-Ñ.Ø×Ñ Õ)rR   )© )r   rn   FNrn   iX  )Ú__name__Ú
__module__Ú__qualname__r   ÚtypingÚSequencer/   ÚboolÚOptionalÚintr=   r
   r	   r   rN   rQ   r   r   rJ   rK   r   r@   Ústaticmethodr   rj   rn   rR   r<   r   r      so  „ ð /1Ø.6Ø.0Ø"'Ø37Ø/1Øñ93àð93ð —‘ sÑ+ð93ð —‘ sÑ+ð	93ð
 —‘ sÑ+ð93ð  ð93ð #ŸO™O¨CÑ0ð93ð Ÿ™¨Ñ,ð93ð ð93ð 
ó93ðvR Eð R°Gð RÀ4ð RÈDó Rð(	,¨ð 	,°ó 	,ð$I°'ð $I¸hó $IðL-Øð-Ø%,ð-Ø48ð-ØKRð-à	ó-ðØðØ&*ðØ=Dðà	óð2 ð* ~ð *¸sð *Àtò *ó ñ*rR   r   )rd   r+   rr   Ústarlette.datastructuresr   r   Ústarlette.responsesr   r   Ústarlette.typesr   r   r	   r
   r   r*   r1   r   rn   rR   r<   ú<module>r{      s1   ðÛ Û 	Û ç <ß ;ß BÕ BàJ€ÚVÐ ÷c*ò c*rR   