Ë
    $Æ%h.   ã                  óþ   — 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mZ ddl	m
Z
mZmZ ddlmZmZ ddlmZmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ dZ ej>                  d«      Z dd„Z! G d„ de«      Z"y)é    )ÚannotationsNé   )ÚSyncBackend)ÚSOCKET_OPTIONÚNetworkBackendÚNetworkStream)ÚConnectErrorÚConnectTimeout)ÚOriginÚRequestÚResponse)Údefault_ssl_context)ÚLock)ÚTraceé   )ÚHTTP11Connection)ÚConnectionInterfaceg      à?zhttpcore.connectionc              #  óZ   K  — d–— t        j                  «       D ]  }| d|z  z  –— Œ y­w)zÇ
    Generate a geometric sequence that has a ratio of 2 and starts with 0.

    For example:
    - `factor = 2`: `0, 2, 4, 8, 16, 32, 64, ...`
    - `factor = 3`: `0, 3, 6, 12, 24, 48, 96, ...`
    r   r   N)Ú	itertoolsÚcount)ÚfactorÚns     úW/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/httpcore/_sync/connection.pyÚexponential_backoffr      s1   è ø€ ð ‚GÜ�_‰_Óò ˆØ�q˜!‘t‰mÓñùs   ‚)+c                  óÈ   — e Zd Z	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd	„Z
dd
„Zdd„Zdd„Zdd„Z	 	 	 d	 	 	 	 	 	 	 dd„Zy)ÚHTTPConnectionNc                óâ   — || _         || _        || _        || _        || _        || _        || _        || _        |	€
t        «       n|	| _	        d | _
        d| _        t        «       | _        |
| _        y )NF)Ú_originÚ_ssl_contextÚ_keepalive_expiryÚ_http1Ú_http2Ú_retriesÚ_local_addressÚ_udsr   Ú_network_backendÚ_connectionÚ_connect_failedr   Ú_request_lockÚ_socket_options)ÚselfÚoriginÚssl_contextÚkeepalive_expiryÚhttp1Úhttp2ÚretriesÚlocal_addressÚudsÚnetwork_backendÚsocket_optionss              r   Ú__init__zHTTPConnection.__init__'   sy   € ð ˆŒØ'ˆÔØ!1ˆÔØˆŒØˆŒØˆŒØ+ˆÔØˆŒ	ð -Ð4ŒKŒM¸/ð 	Ôð 8<ˆÔØ%*ˆÔÜ!›VˆÔØ-ˆÕó    c                ó¾  — | j                  |j                  j                  «      s/t        d|j                  j                  › d| j                  › �«      ‚	 | j
                  5  | j                  €§| j                  |«      }|j                  d«      }|d uxr |j                  «       dk(  }|s| j                  r7| j                  s+ddlm}  || j                  || j                  ¬«      | _        n't        | j                  || j                  ¬«      | _        d d d «       | j                  j%                  |«      S # 1 sw Y   Œ$xY w# t         $ r}d| _        |‚d }~ww xY w)	NzAttempted to send request to z on connection to Ú
ssl_objectÚh2r   )ÚHTTP2Connection)r,   Ústreamr.   T)Úcan_handle_requestÚurlr,   ÚRuntimeErrorr   r)   r'   Ú_connectÚget_extra_infoÚselected_alpn_protocolr"   r!   r0   r;   r    r   ÚBaseExceptionr(   Úhandle_request)r+   Úrequestr<   r9   Úhttp2_negotiatedr;   Úexcs          r   rD   zHTTPConnection.handle_requestE   sI  € Ø×&Ñ& w§{¡{×'9Ñ'9Ô:ÜØ/°·±×0BÑ0BÐ/CÐCUÐVZ×VbÑVbÐUcÐdóð ð	Ø×#Ñ#ñ Ø×#Ñ#Ð+Ø!Ÿ]™]¨7Ó3�Fà!'×!6Ñ!6°|Ó!D�Jà"¨$Ð.ò HØ&×=Ñ=Ó?À4ÑGð %ñ (¨D¯KªKÀÇÂÝ:á+:Ø#'§<¡<Ø#)Ø-1×-CÑ-Cô,˜Õ(ô ,<Ø#'§<¡<Ø#)Ø-1×-CÑ-Cô,˜Ô(÷%ð6 ×Ñ×.Ñ.¨wÓ7Ð7÷7ð ûô. ò 	Ø#'ˆDÔ ØˆIûð	ús1   ÁE Á"B4D9ÄE Ä9EÄ>E Å	EÅ	EÅEc                ón  — |j                   j                  di «      }|j                   j                  dd «      }|j                  dd «      }| j                  }t        t        ¬«      }	 	 | j
                  €’| j                  j                  j                  d«      | j                  j                  | j                  || j                  dœ}t        dt        ||«      5 } | j                  j                  di |¤Ž}	|	|_        d d d «       nX| j
                  || j                  dœ}t        d	t        ||«      5 } | j                  j"                  di |¤Ž}	|	|_        d d d «       | j                  j$                  d
v r©| j&                  €
t)        «       n| j&                  }
| j*                  rddgndg}|
j-                  |«       |
|xs% | j                  j                  j                  d«      |dœ}t        dt        ||«      5 } 	j.                  di |¤Ž}	|	|_        d d d «       |	S 	S # 1 sw Y   ŒÌxY w# 1 sw Y   ŒØxY w# 1 sw Y   	S xY w# t0        t2        f$ r\ |dk  r‚ |dz  }t5        |«      }t        dt        |«      5 }| j                  j7                  |«       d d d «       n# 1 sw Y   nxY wY nw xY w�ŒO)NÚtimeoutÚsni_hostnameÚconnect)r   Úascii)ÚhostÚportr2   rI   r5   Úconnect_tcp)ÚpathrI   r5   Úconnect_unix_socket)ó   httpss   wsszhttp/1.1r:   )r-   Úserver_hostnamerI   Ú	start_tlsr   r   Úretry© )Ú
extensionsÚgetr#   r   ÚRETRIES_BACKOFF_FACTORr%   r   rM   ÚdecoderN   r$   r*   r   Úloggerr&   rO   Úreturn_valuerQ   Úschemer   r   r"   Úset_alpn_protocolsrT   r	   r
   ÚnextÚsleep)r+   rE   ÚtimeoutsrJ   rI   Úretries_leftÚdelaysÚkwargsÚtracer<   r-   Úalpn_protocolsÚdelays                r   r@   zHTTPConnection._connecti   s¸  € Ø×%Ñ%×)Ñ)¨)°RÓ8ˆØ×)Ñ)×-Ñ-¨n¸dÓCˆØ—,‘,˜y¨$Ó/ˆà—}‘}ˆÜ$Ô,BÔCˆàð37Ø—9‘9Ð$à $§¡× 1Ñ 1× 8Ñ 8¸Ó AØ $§¡× 1Ñ 1Ø)-×)<Ñ)<Ø#*Ø*.×*>Ñ*>ñ�Fô ˜}¬f°g¸vÓFð 4È%Ø!B ×!6Ñ!6×!BÑ!BÑ!LÀVÑ!L˜Ø-3˜Ô*÷4ð 4ð
 !%§	¡	Ø#*Ø*.×*>Ñ*>ñ�Fô
 Ø-¬v°wÀóð 4àØ!J ×!6Ñ!6×!JÑ!Jñ "Ø$ñ"˜ð .4˜Ô*÷4ð —<‘<×&Ñ&Ð*<Ñ<ð  ×,Ñ,Ð4ô ,Ô-à!×.Ñ.ð  ð
 <@¿;º; j°$Ñ%7ÈZÈL�NØ×2Ñ2°>ÔBð (3Ø+7ò ,=ØŸ<™<×,Ñ,×3Ñ3°GÓ<Ø#*ñ	�Fô ˜{¬F°G¸VÓDð 4ÈØ!1 ×!1Ñ!1Ñ!;°FÑ!;˜Ø-3˜Ô*÷4ð ��v�÷G4ð 4ú÷4ð 4ú÷.4ð �ûÜ ¤.Ð1ò 7Ø 1Ò$ØØ Ñ!�Ü˜V›�Ü˜7¤F¨G°VÓ<ð 7ÀØ×)Ñ)×/Ñ/°Ô6÷7÷ 7ñ 7üð7úñ] s€   Á)A1I Ã$H"Ã>5I Ä3$H.ÅB%I Ç<H:È	I È I È"H+È'I È.H7È3I È:IÈ?I ÉI É7J2É>J#Ê	J2Ê#J,	Ê(J2Ê1J2c                ó    — || j                   k(  S ©N)r   )r+   r,   s     r   r=   z!HTTPConnection.can_handle_request§   s   € Ø˜Ÿ™Ñ%Ð%r7   c                ó    — | j                   �6t        dt        d i «      5  | j                   j                  «        d d d «       y y # 1 sw Y   y xY w)NÚclose)r'   r   r[   rk   ©r+   s    r   rk   zHTTPConnection.closeª   sM   € Ø×ÑÐ'Ü�w¤¨¨bÓ1ñ )Ø× Ñ ×&Ñ&Ô(÷)ð )ð (÷)ð )ús   ŸAÁAc                óØ   — | j                   €E| j                  xr7 | j                  j                  dk(  xs | j                   xr | j
                   S | j                   j                  «       S )NrR   )r'   r"   r   r]   r!   r(   Úis_availablerl   s    r   rn   zHTTPConnection.is_available¯   sf   € Ø×ÑÐ#ð
 —‘ò -Ø—\‘\×(Ñ(¨HÑ4ÒG¸D¿K¹K¸ò-à×,Ñ,Ð,ðð
 ×Ñ×,Ñ,Ó.Ð.r7   c                óf   — | j                   €| j                  S | j                   j                  «       S ri   )r'   r(   Úhas_expiredrl   s    r   rp   zHTTPConnection.has_expired»   s/   € Ø×ÑÐ#Ø×'Ñ'Ð'Ø×Ñ×+Ñ+Ó-Ð-r7   c                óf   — | j                   €| j                  S | j                   j                  «       S ri   )r'   r(   Úis_idlerl   s    r   rr   zHTTPConnection.is_idleÀ   s/   € Ø×ÑÐ#Ø×'Ñ'Ð'Ø×Ñ×'Ñ'Ó)Ð)r7   c                óf   — | j                   €| j                  S | j                   j                  «       S ri   )r'   r(   Ú	is_closedrl   s    r   rt   zHTTPConnection.is_closedÅ   s/   € Ø×ÑÐ#Ø×'Ñ'Ð'Ø×Ñ×)Ñ)Ó+Ð+r7   c                ón   — | j                   €| j                  rdS dS | j                   j                  «       S )NzCONNECTION FAILEDÚ
CONNECTING)r'   r(   Úinforl   s    r   rw   zHTTPConnection.infoÊ   s7   € Ø×ÑÐ#Ø*.×*>Ò*>Ð&ÐPÀLÐPØ×Ñ×$Ñ$Ó&Ð&r7   c                óX   — d| j                   j                  › d| j                  «       › d�S )Nú<z [z]>)Ú	__class__Ú__name__rw   rl   s    r   Ú__repr__zHTTPConnection.__repr__Ï   s(   € Ø�4—>‘>×*Ñ*Ð+¨2¨d¯i©i«k¨]¸"Ð=Ð=r7   c                ó   — | S ri   rV   rl   s    r   Ú	__enter__zHTTPConnection.__enter__Õ   s   € Øˆr7   c                ó$   — | j                  «        y ri   )rk   )r+   Úexc_typeÚ	exc_valueÚ	tracebacks       r   Ú__exit__zHTTPConnection.__exit__Ø   s   € ð 	�
‰
�r7   )	NNTFr   NNNN)r,   r   r-   zssl.SSLContext | Noner.   zfloat | Noner/   Úboolr0   r„   r1   Úintr2   ú
str | Noner3   r†   r4   zNetworkBackend | Noner5   z%typing.Iterable[SOCKET_OPTION] | NoneÚreturnÚNone)rE   r   r‡   r   )rE   r   r‡   r   )r,   r   r‡   r„   )r‡   rˆ   )r‡   r„   )r‡   Ústr)r‡   r   )NNN)r€   ztype[BaseException] | Noner�   zBaseException | Noner‚   ztypes.TracebackType | Noner‡   rˆ   )r{   Ú
__module__Ú__qualname__r6   rD   r@   r=   rk   rn   rp   rr   rt   rw   r|   r~   rƒ   rV   r7   r   r   r   &   sÿ   „ ð .2Ø)-ØØØØ$(ØØ15Ø@Dð.àð.ð +ð.ð 'ð	.ð
 ð.ð ð.ð ð.ð "ð.ð ð.ð /ð.ð >ð.ð 
ó.ó<"8óH<7ó|&ó)ó

/ó.ó
*ó
,ó
'ó
>óð
 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
ôr7   r   )r   Úfloatr‡   ztyping.Iterator[float])#Ú
__future__r   r   ÚloggingÚsslÚtypesÚtypingÚ_backends.syncr   Ú_backends.baser   r   r   Ú_exceptionsr	   r
   Ú_modelsr   r   r   Ú_sslr   Ú_synchronizationr   Ú_tracer   Úhttp11r   Ú
interfacesr   rY   Ú	getLoggerr[   r   r   rV   r7   r   ú<module>rœ      sg   ðÝ "ã Û Û 
Û Û å (ß IÑ Iß 6ß /Ñ /Ý &Ý #Ý Ý $Ý +àÐ ð 
ˆ×	Ñ	Ð0Ó	1€ó
ôxÐ(õ xr7   