ó
    Ð]j84  ã                  óö  • % 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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  S SKJr  S SKJr  S SKJrJr  S SKrS SKJr  S SKJr  \(       a1  S S	KJr  S S
KJ r   S SK!J"r"  S SK#J$r$  S SK%J&r&  \\ -  \&-  \"-  \$-  r'S\(S'   \	RR                  \	RT                  4r+\R                  S:X  a  \+\	RX                  4-  r+\RZ                  " S5      r. " S S5      r/ " S S5      r0g)é    )ÚannotationsN)Ú	GeneratorÚSequence)Ú
formatdate)Ú	FrameType)ÚTYPE_CHECKINGÚ	TypeAlias)Úasyncio_run)ÚConfig)ÚH11Protocol)ÚHttpToolsProtocol)ÚWebSocketProtocol)ÚWebSocketsSansIOProtocol)Ú
WSProtocolr	   Ú	ProtocolsÚwin32zuvicorn.errorc                  ó"   • \ rS rSrSrSS jrSrg)ÚServerStateé,   zH
Shared servers state that is available between all protocol instances.
c                ó\   • SU l         [        5       U l        [        5       U l        / U l        g ©Nr   )Útotal_requestsÚsetÚconnectionsÚtasksÚdefault_headers©Úselfs    ÚK/home/mande/repo/quber/.venv/lib/python3.13/site-packages/uvicorn/server.pyÚ__init__ÚServerState.__init__1   s%   € ØˆÔÜ+.«5ˆÔÜ.1«eˆŒ
Ø:<ˆÕó    )r   r   r   r   N©ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r    Ú__static_attributes__© r"   r   r   r   ,   s   † ñ÷=r"   r   c                  óæ   • \ rS rSrSS jr\R                  SS j5       rSSS jjrSSS jjr	SSS jjr
SSS jjrSS	 jrSS
 jrSS jrSSS jjrSS jr\R$                  SS j5       rSS jrSrg)ÚServeré8   c                ót   • Xl         [        5       U l        SU l        SU l        SU l        SU l        / U l        g )NFg        )Úconfigr   Úserver_stateÚstartedÚshould_exitÚ
force_exitÚlast_notifiedÚ_captured_signals)r   r1   s     r   r    ÚServer.__init__9   s7   € ØŒÜ'›MˆÔàˆŒØ ˆÔØˆŒØ ˆÔà,.ˆÕr"   c                ó¶   • U R                   R                  c  g U R                   R                  [        R                  " SU R                   R                  5      -   $ r   )r1   Úlimit_max_requestsÚrandomÚrandintÚlimit_max_requests_jitterr   s    r   r:   ÚServer.limit_max_requestsD   s?   € à�;‰;×)Ñ)Ñ1ØØ�{‰{×-Ñ-´·²¸qÀ$Ç+Á+×BgÑBgÓ0hÑhÐhr"   Nc                ó`   • [        U R                  US9U R                  R                  5       S9$ )N©Úsockets)Úloop_factory)r
   Úserver1   Úget_loop_factory©r   rA   s     r   ÚrunÚ
Server.runJ   s'   € Ü˜4Ÿ:™:¨g˜:Ð6ÀTÇ[Á[×EaÑEaÓEcÑdÐdr"   c              ƒ  ó–   #   • U R                  5          U R                  U5      I S h  v•N   S S S 5        g  N! , (       d  f       g = f7f©N)Úcapture_signalsÚ_serverE   s     r   rC   ÚServer.serveM   s6   é € Ø×!Ñ!Õ#Ø—+‘+˜gÓ&×&Ð&÷ $Ð#Ù&÷ $Õ#üs%   ‚A	“8¨6©8­	A	¶8¸
AÁA	c              ƒ  óf  #   • [         R                  " 5       nU R                  nUR                  (       d  UR	                  5         UR                  U5      U l        SnS[        R                  " SSS9-   S-   n[        R                  XBSU0S9  U R                  US	9I S h  v•N   U R                  (       d  U R                  5       I S h  v•N   U R                  (       aK  U R                  US	9I S h  v•N   S
nS[        R                  " SSS9-   S-   n[        R                  XBSU0S9  g g  NŠ Nc N=7f)NzStarted server process [%d]zStarted server process [z%dÚcyan)ÚfgÚ]Úcolor_message©Úextrar@   zFinished server process [%d]zFinished server process [)ÚosÚgetpidr1   ÚloadedÚloadÚlifespan_classÚlifespanÚclickÚstyleÚloggerÚinfoÚstartupr4   Ú	main_loopr3   Úshutdown)r   rA   Ú
process_idr1   ÚmessagerQ   s         r   rK   ÚServer._serveQ   sý   é € Ü—Y’Y“[ˆ
à—‘ˆØ�}�}Ø�K‰KŒMà×-Ñ-¨fÓ5ˆŒà/ˆØ2´U·[²[ÀÈ&Ñ5QÑQÐTWÑWˆÜ�‰�G°ÀÐ/OˆÑPà�l‰l 7ˆlÐ+×+Ð+Ø××Ø—.‘.Ó"×"Ð"Ø�<�<Ø—-‘-¨�-Ð0×0Ð0à4ˆGØ7¼%¿+º+ÀdÈvÑ:VÑVÐY\Ñ\ˆMÜ�K‰K˜°OÀ]Ð3SˆKÒTð ñ 	,á"á0ùs6   ‚BD1Â D+Â!(D1Ã	D-Ã
'D1Ã1D/Ã2:D1Ä-D1Ä/D1c              ƒ  ó&  ^ ^#   • T R                   R                  5       I S h  v•N   T R                   R                  (       a  ST l        g T R                  m S
   SUU 4S jjjn[        R
                  " 5       nUbœ      SS jn/ T l        U H‚  n[        R                  " 5       S:H  nTR                  S:”  a  U(       a  U" U5      nUR                  X%TR                  TR                  S9I S h  v•N nT R                  R                  U5        M„     UnGOèTR                  b�  [        R                   " TR                  [        R"                  [        R$                  5      nUR                  X%TR                  TR                  S9I S h  v•N nUR&                  c   eUR&                  nU/T l        GOKTR(                  b×  Sn	[*        R,                  R/                  TR(                  5      (       a*  [*        R0                  " TR(                  5      R2                  n	UR5                  UTR(                  TR                  TR                  S9I S h  v•N n[*        R6                  " TR(                  U	5        UR&                  c   eUR&                  nU/T l        Og UR                  UTR8                  TR:                  TR                  TR                  S	9I S h  v•N nWR&                  c   eUR&                  nU/T l        Uc  T RI                  U5        O ST l%        g  GNý GN1 GN™ N× NP! [<         aX  n
[>        RA                  U
5        T R                   RC                  5       I S h  v•N    [D        RF                  " S5         S n
A
N«S n
A
ff = f7f)NTc                ód   >• TR                  TTR                  TR                  R                  U S9$ )N)r1   r2   Ú	app_stateÚ_loop)Úhttp_protocol_classr2   rY   Ústate)rg   r1   r   s    €€r   Úcreate_protocolÚ'Server.startup.<locals>.create_protocolp   s9   ø€ ð ×-Ñ-ØØ!×.Ñ.ØŸ-™-×-Ñ-Øð	 .ð ð r"   c                óf   • SSK Jn  U R                  [        R                  " 5       5      nU" U5      $ )Nr   )Ú	fromshare)Úsocketrm   ÚsharerT   rU   )Úsockrm   Ú	sock_datas      r   Ú_share_socketÚ%Server.startup.<locals>._share_socket�   s&   € õ
 -à ŸJ™J¤r§y¢y£{Ó3�	Ù  Ó+Ð+r"   ÚWindowsé   )rp   ÚsslÚbacklogi¶  )Úpathrv   rw   )ÚhostÚportrv   rw   rI   )rg   z asyncio.AbstractEventLoop | Noner$   zasyncio.Protocol)rp   úsocket.SocketTyper$   r{   )&rY   r^   r4   r1   ÚasyncioÚget_running_loopÚserversÚplatformÚsystemÚworkersÚcreate_serverrv   rw   ÚappendÚfdrn   ÚfromfdÚAF_UNIXÚSOCK_STREAMrA   ÚudsrT   rx   ÚexistsÚstatÚst_modeÚcreate_unix_serverÚchmodry   rz   ÚOSErrorr\   Úerrorr`   ÚsysÚexitÚ_log_started_messager3   )r   rA   rj   Úlooprr   rp   Ú
is_windowsÚserverÚ	listenersÚ	uds_permsÚexcr1   s   `          @r   r^   ÚServer.startuph   sù  ùé € Ø�m‰m×#Ñ#Ó%×%Ð%Ø�=‰=×$×$Ø#ˆDÔØà—‘ˆð 7;ð	Ø3ð	à÷	ñ 	ô ×'Ò'Ó)ˆð Ñð,Ø'ð,à"ô,ð >@ˆDŒLÛ�Ü%Ÿ_š_Ó.°)Ñ;�
Ø—>‘> AÓ%®*Ù(¨Ó.�DØ#×1Ñ1°/ÐRX×R\ÑR\Ðfl×ftÑftÐ1Ðu×u�Ø—‘×#Ñ# FÖ+ñ  ð  ŠIà�Y‰YÑ"ä—=’= §¡¬F¯N©N¼F×<NÑ<NÓOˆDØ×-Ñ-¨oÈfÏjÉjÐbh×bpÑbpÐ-Ðq×qˆFØ—>‘>Ñ-Ð-Ð-ØŸ™ˆIØ"˜8ˆDŽLà�Z‰ZÑ#àˆIÜ�w‰w�~‰~˜fŸj™j×)Ñ)ÜŸGšG F§J¡JÓ/×7Ñ7�	Ø×2Ñ2Ø f§j¡j°f·j±jÈ&Ï.É.ð 3ð ÷ ˆFô �HŠH�V—Z‘Z Ô+Ø—>‘>Ñ-Ð-Ð-ØŸ™ˆIØ"˜8ˆD�LðØ#×1Ñ1Ø#ØŸ™ØŸ™ØŸ
™
Ø"ŸN™Nð  2ð  ÷ �ð —>‘>Ñ-Ð-Ð-ØŸ™ˆIØ"˜8ˆDŒLà‰?Ø×%Ñ% iÕ0ð àˆ�òu 	&òN vò rññøô ó Ü—‘˜SÔ!Ø—m‘m×,Ñ,Ó.×.Ñ.Ü—’˜—‘ûðüs’   „N¢L£CNÃ1L"Ã2BNÆL%ÆCNÉL(ÉA	NÊ>L, ËL*ËL, ËANÌ"NÌ%NÌ(NÌ*L, Ì,
NÌ62N	Í(M+Í)N	ÎNÎ	NÎNc                ó  • U R                   nUR                  b*  US   n[        R                  SUR	                  5       5        g UR
                  b!  [        R                  SUR
                  5        g SnUR                  c  SOUR                  nSU;   a  SnUR                  nUS:X  a  US   R	                  5       S   nUR                  (       a  S	OS
nSU S3nS[        R                  " USS9-   S-   n	[        R                  UUUUSU	0S9  g )Nr   z3Uvicorn running on socket %s (Press CTRL+C to quit)z8Uvicorn running on unix socket %s (Press CTRL+C to quit)z
%s://%s:%dz0.0.0.0Ú:z%s://[%s]:%dru   ÚhttpsÚhttpzUvicorn running on z (Press CTRL+C to quit)T)ÚboldrQ   rR   )r1   r„   r\   r]   Úgetsocknamerˆ   ry   rz   rv   rZ   r[   )
r   r–   r1   rp   Úaddr_formatry   rz   Úprotocol_namerb   rQ   s
             r   r’   ÚServer._log_started_messageÅ   s  € Ø—‘ˆà�9‰9Ñ Ø˜Q‘<ˆDÜ�K‰KØEØ× Ñ Ó"õð
 �Z‰ZÑ#Ü�K‰KÐRÐTZ×T^ÑT^Õ_ð 'ˆKØ &§¡Ñ 3‘9¸¿¹ˆDØ�d‹{à,�à—;‘;ˆDØ�q‹yØ  ‘|×/Ñ/Ó1°!Ñ4�à'-§z§z™G°vˆMØ+¨K¨=Ð8OÐPˆGØ1´E·K²KÀÐRVÑ4WÑWÐZsÑsˆMÜ�K‰KØØØØØ&¨Ð6ð ò r"   c              ƒ  óò   #   • SnU R                  U5      I S h  v•N nU(       dK  US-  nUS-  n[        R                  " S5      I S h  v•N   U R                  U5      I S h  v•N nU(       d  MJ  g g  NW N* N7f)Nr   ru   i / çš™™™™™¹?)Úon_tickr|   Úsleep)r   Úcounterr4   s      r   r_   ÚServer.main_loopè   sh   é € ØˆØ ŸL™L¨Ó1×1ˆÞØ�q‰LˆGØ Ñ&ˆGÜ—-’- Ó$×$Ð$Ø $§¡¨WÓ 5×5ˆK÷	 ’+ñ 2ñ %Ù5ùs9   ‚A7™A1š.A7ÁA3Á	A7Á!A5Á"A7Á/A7Á3A7Á5A7c              ƒ  ó~  #   • US-  S:X  aÜ  [         R                   " 5       n[        USS9R                  5       nU R                  R                  (       a  SU4/nO/ nX@R                  R
                  -   U R                  l        U R                  R                  bN  X R                  -
  U R                  R                  :”  a(  X l	        U R                  R                  5       I S h  v•N   U R                  (       a  gU R                  nUb1  U R                  R                  U:¼  a  [        R                  SU5        gg NW7f)Né
   r   T)Úusegmts   datez:Maximum request limit of %d exceeded. Terminating process.F)Útimer   Úencoder1   Údate_headerÚencoded_headersr2   r   Úcallback_notifyr6   Útimeout_notifyr4   r:   r   r\   r]   )r   r§   Úcurrent_timeÚcurrent_dater®   Úmax_requestss         r   r¥   ÚServer.on_tickñ   s  é € à�R‰<˜1ÓÜŸ9š9›;ˆLÜ% l¸4Ñ@×GÑGÓIˆLà�{‰{×&×&Ø '¨Ð6Ð7‘à �à0;¿k¹k×>YÑ>YÑ0YˆD×ÑÔ-ð �{‰{×*Ñ*Ñ6Ø×"4Ñ"4Ñ4°t·{±{×7QÑ7QÓQØ)5Ô&ØŸ+™+×5Ñ5Ó7×7Ð7ð ××Øà×.Ñ.ˆØÑ#¨×(9Ñ(9×(HÑ(HÈLÓ(XÜ�K‰KÐTÐVbÔcØàñ 8ùs   ‚C!D=Ã#D;Ã$AD=c              ƒ  óN  #   • [         R                  S5        U R                   H  nUR                  5         M     U=(       d    /  H  nUR                  5         M     [	        U R
                  R                  5       H  nUR                  5         M     [        R                  " S5      I S h  v•N    [        R                  " U R                  5       U R                  R                  S9I S h  v•N   U R&                  (       d#  U R(                  R                  5       I S h  v•N   g g  Ny N;! [        R                   ab    [         R                  S[!        U R
                  R"                  5      5        U R
                  R"                   H  nUR%                  SS9  M      N®f = f Nƒ7f)NzShutting downr¤   )Útimeoutz=Cancel %s running task(s), timeout graceful shutdown exceededz2Task cancelled, timeout graceful shutdown exceeded)Úmsg)r\   r]   r~   ÚcloseÚlistr2   r   r`   r|   r¦   Úwait_forÚ_wait_tasks_to_completer1   Útimeout_graceful_shutdownÚTimeoutErrorr�   Úlenr   Úcancelr5   rY   )r   rA   r•   rp   Ú
connectionÚts         r   r`   ÚServer.shutdown  sK  é € Ü�‰�OÔ$ð —l”lˆFØ�L‰LŽNñ #à—M˜r’MˆDØ�J‰JŽLñ "ô ˜t×0Ñ0×<Ñ<Ö=ˆJØ×ÑÖ!ñ >ä�mŠm˜CÓ × Ð ð	SÜ×"Ò"Ø×,Ñ,Ó.ØŸ™×=Ñ=ñ÷ ð ð ��Ø—-‘-×(Ñ(Ó*×*Ñ*ð ñ# 	!ñøô ×#Ñ#ó 	SÜ�L‰LØOÜ�D×%Ñ%×+Ñ+Ó,ôð ×&Ñ&×,Ô,�Ø—‘ÐQ�ÓRó -ð	Súñ +ùsU   ‚B*F%Â,D&Â-F%Â2:D* Ã,D(Ã-D* Ã1.F%ÄF#Ä F%Ä(D* Ä*A3F ÆF%ÆF Æ F%c              ƒ  ó\  #   • U R                   R                  (       a   U R                  (       d�  Sn[        R	                  U5        U R                   R                  (       a]  U R                  (       dL  [
        R                  " S5      I S h  v•N   U R                   R                  (       a  U R                  (       d  ML  U R                   R                  (       a   U R                  (       d�  Sn[        R	                  U5        U R                   R                  (       a]  U R                  (       dL  [
        R                  " S5      I S h  v•N   U R                   R                  (       a  U R                  (       d  ML  U R                   H  nUR                  5       I S h  v•N   M     g  GN Na N7f)Nz8Waiting for connections to close. (CTRL+C to force quit)r¤   z@Waiting for background tasks to complete. (CTRL+C to force quit))
r2   r   r5   r\   r]   r|   r¦   r   r~   Úwait_closed)r   r¸   r•   s      r   r¼   ÚServer._wait_tasks_to_complete/  s  é € à×Ñ×(×(°··ØLˆCÜ�K‰K˜ÔØ×#Ñ#×/×/¸¿¿Ü—m’m CÓ(×(Ð(ð ×#Ñ#×/×/¸¿¿¹ð ×Ñ×"×"¨4¯?¯?ØTˆCÜ�K‰K˜ÔØ×#Ñ#×)×)°$·/·/Ü—m’m CÓ(×(Ð(ð ×#Ñ#×)×)°$·/·/±/ð —l”lˆFØ×$Ñ$Ó&×&Ò&ò #ò )ñ )ñ 'ùsC   ‚B	F,ÂF%Â0F,Â>BF,ÅF(Å0F,Å9"F,ÆF*Æ
F,Æ(F,Æ*F,c              #  ó  #   • [         R                  " 5       [         R                  " 5       La  S v •  g [         Vs0 s H#  o[        R                  " XR
                  5      _M%     nn S v •  UR                  5        H  u  p[        R                  " X5        M     [        U R                  5       H  n[        R                  " U5        M     g s  snf ! UR                  5        H  u  p[        R                  " X5        M     f = f7frI   )
Ú	threadingÚcurrent_threadÚmain_threadÚHANDLED_SIGNALSÚsignalÚhandle_exitÚitemsÚreversedr7   Úraise_signal)r   ÚsigÚoriginal_handlersÚhandlerÚcaptured_signals        r   rJ   ÚServer.capture_signalsA  sÍ   é € ô ×#Ò#Ó%¬Y×-BÒ-BÓ-DÒDÛØõ SbÓbÒRaÈ3¤&§-¢-°×5EÑ5EÓ"FÒFÑRaÐÐbð	,Ûà 1× 7Ñ 7Ö 9‘�Ü—’˜cÖ+ñ !:ô
  (¨×(>Ñ(>Ö?ˆOÜ×Ò Ö0ò  @ùò cøð !2× 7Ñ 7Ö 9‘�Ü—’˜cÖ+ò !:üs)   ‚9D»*CÁ%DÁ(C Á,A'DÃ1DÄDc                ó¢   • U R                   R                  U5        U R                  (       a  U[        R                  :X  a  SU l        g SU l        g )NT)r7   rƒ   r4   rÌ   ÚSIGINTr5   )r   rÑ   Úframes      r   rÍ   ÚServer.handle_exitU  s9   € Ø×Ñ×%Ñ% cÔ*Ø×× ¤v§}¡}Ó 4Ø"ˆD�Oà#ˆDÕr"   )	r7   r1   r5   r6   rY   r2   r~   r4   r3   )r1   r   r$   r%   )r$   z
int | NonerI   )rA   zlist[socket.socket] | Noner$   r%   )r–   zSequence[socket.SocketType]r$   r%   r#   )r§   Úintr$   Úbool)r$   zGenerator[None, None, None])rÑ   rÚ   rØ   zFrameType | Noner$   r%   )r&   r'   r(   r)   r    Ú	functoolsÚcached_propertyr:   rF   rC   rK   r^   r’   r_   r¥   r`   r¼   Ú
contextlibÚcontextmanagerrJ   rÍ   r+   r,   r"   r   r.   r.   8   su   † ô	/ð ×Ñóió ðiö
eö'öUö.[ôz!ôF6ôö<+ô@'ð$ ×Ñó1ó ð1÷&$r"   r.   )1Ú
__future__r   r|   rÞ   rÜ   ÚloggingrT   r   r;   rÌ   rn   r�   rÈ   r¬   Úcollections.abcr   r   Úemail.utilsr   Útypesr   Útypingr   r	   rZ   Úuvicorn._compatr
   Úuvicorn.configr   Úuvicorn.protocols.http.h11_implr   Ú%uvicorn.protocols.http.httptools_implr   Ú,uvicorn.protocols.websockets.websockets_implr   Ú3uvicorn.protocols.websockets.websockets_sansio_implr   Ú)uvicorn.protocols.websockets.wsproto_implr   r   Ú__annotations__r×   ÚSIGTERMrË   ÚSIGBREAKÚ	getLoggerr\   r   r.   r,   r"   r   Ú<module>rñ      sÐ   ðÞ "ã Û Û Û Û 	Û Û Û Û Û 
Û Û ß /Ý "Ý ß +ã å 'Ý !æÝ;ÝGÝNÝ\ÝDà&Ð):Ñ:¸ZÑGÐJ[Ñ[Ð^vÑv€IˆyÓvð ‡M�MØ
‡N�Nð€ð ‡<�<�7ÓØ˜Ÿ™Ð)Ñ)€Oà	×	Ò	˜?Ó	+€÷	=ñ 	=÷b$ò b$r"   