+
    IV-j�"  ã                  óä   € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^RIHt ]P                  '       d   ^ RI	H
t
 ^RIHtHt ]P                  ]]3,          t]P$                  ! R4      tRt ! R R	4      tR# )
é    )ÚannotationsN)ÚProxySchemeUnsupported)ÚSelf)Ú_TYPE_PEER_CERT_RETÚ_TYPE_PEER_CERT_RET_DICTÚ_ReturnValuei @  c                  óR  € ] tR t^tRt]R R l4       tRAR R lltR R ltR	 R
 lt	R R lt
RBR R lltRCR R lltRDR R lltRER R lltRER R lltRFRRRRRR/R R llltR R ltR R lt]P(                  RGR  R! ll4       t]P(                  R" R# l4       tRHR$ R% lltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltRFR6 R7 llt]P(                  R8 R9 l4       t]P(                  R: R; l4       t]P(                  R< R= l4       tRIR> R? lltR@t R# )JÚSSLTransporta4  
The SSLTransport wraps an existing socket and establishes an SSL connection.

Contrary to Python's implementation of SSLSocket, it allows you to chain
multiple TLS connections together. It's particularly useful if you need to
implement TLS within TLS.

The class supports most of the socket API operations.
c               ó    € V ^8„  d   QhRRRR/# )é   Ússl_contextússl.SSLContextÚreturnÚNone© )Úformats   "Új/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/urllib3/util/ssltransport.pyÚ__annotate__ÚSSLTransport.__annotate__"   s   € ÷ ñ ¸.ð ÈTñ ó    c                ó@   € \        V R4      '       g   \        R4      hR# )zª
Raises a ProxySchemeUnsupported if the provided ssl_context can't be used
for TLS in TLS.

The only requirement is that the ssl_context provides the 'wrap_bio'
methods.
Úwrap_biozXTLS in TLS requires SSLContext.wrap_bio() which isn't available on non-native SSLContextN)Úhasattrr   )r   s   &r   Ú$_validate_ssl_context_for_tls_in_tlsÚ1SSLTransport._validate_ssl_context_for_tls_in_tls!   s(   € ô �{ J×/Ò/Ü(ð5óð ñ 0r   Nc          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   Úsocketzsocket.socketr   r   Úserver_hostnameú
str | NoneÚsuppress_ragged_eofsÚboolr   r   r   )r   s   "r   r   r   1   s<   € ÷ 4ñ 4àð4ð $ð4ð $ð	4ð
 #ð4ð 
ñ4r   c                ó*  € \         P                  ! 4       V n        \         P                  ! 4       V n        W@n        Wn        VP                  V P                  V P                  VR7      V n        V P                  V P                  P                  4       R# )zF
Create an SSLTransport around socket using the provided ssl_context.
)r   N)
ÚsslÚ	MemoryBIOÚincomingÚoutgoingr    r   r   ÚsslobjÚ_ssl_io_loopÚdo_handshake)Úselfr   r   r   r    s   &&&&&r   Ú__init__ÚSSLTransport.__init__1   si   € ô Ÿš›ˆŒÜŸš›ˆŒà$8Ô!ØŒà!×*Ñ*Ø�M‰M˜4Ÿ=™=¸/ð +ó 
ˆŒð
 	×Ñ˜$Ÿ+™+×2Ñ2Ö3r   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   H   s   € ÷ ñ ˜4ñ r   c                	ó   € V # ©Nr   ©r*   s   &r   Ú	__enter__ÚSSLTransport.__enter__H   s   € Øˆr   c               ó    € V ^8„  d   QhRRRR/# )r   Ú_z
typing.Anyr   r   r   )r   s   "r   r   r   K   s   € ÷ ñ ˜:ð ¨$ñ r   c                	ó&   € V P                  4        R # r/   )Úclose)r*   r4   s   &*r   Ú__exit__ÚSSLTransport.__exit__K   s   € Ø�
‰
Žr   c               ó   € V ^8„  d   QhRR/# )r   r   Úintr   )r   s   "r   r   r   N   s   € ÷ $ñ $˜ñ $r   c                	ó6   € V P                   P                  4       # r/   )r   Úfilenor0   s   &r   r<   ÚSSLTransport.filenoN   ó   € Ø�{‰{×!Ñ!Ó#Ð#r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úlenr:   Úbufferztyping.Any | Noner   úint | bytesr   )r   s   "r   r   r   Q   s"   € ÷ 0ñ 0˜ð 0Ð,=ð 0Èñ 0r   c                	ó$   € V P                  W4      # r/   )Ú_wrap_ssl_read)r*   r@   rA   s   &&&r   ÚreadÚSSLTransport.readQ   s   € Ø×"Ñ" 3Ó/Ð/r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úbuflenr:   Úflagsr   rB   r   )r   s   "r   r   r   T   s!   € ÷ +ñ +˜3ð +¨cð +¸+ñ +r   c                	óH   € V^ 8w  d   \        R4      hV P                  V4      # )r   z+non-zero flags not allowed in calls to recv)Ú
ValueErrorrD   )r*   rH   rI   s   &&&r   ÚrecvÚSSLTransport.recvT   s&   € Ø�AŒ:ÜÐJÓKÐKØ×"Ñ" 6Ó*Ð*r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rA   Ú_WriteBufferÚnbytesú
int | NonerI   r:   r   zNone | int | bytesr   )r   s   "r   r   r   Y   s2   € ÷ 
)ñ 
)àð
)ð ð
)ð ð	
)ð
 
ñ
)r   c                	óf   € V^ 8w  d   \        R4      hVf   \        V4      pV P                  W!4      # )r   z0non-zero flags not allowed in calls to recv_into)rK   r@   rE   )r*   rA   rP   rI   s   &&&&r   Ú	recv_intoÚSSLTransport.recv_intoY   s4   € ð �AŒ:ÜÐOÓPÐPØŠ>Ü˜“[ˆFØ�y‰y˜Ó(Ð(r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚdataÚbytesrI   r:   r   r   r   )r   s   "r   r   r   e   s!   € ÷ ñ ˜Eð ¨#ð °dñ r   c           	     	óT  € V^ 8w  d   \        R4      h^ p\        V4      ;_uu_ 4       qDP                  R4      ;_uu_ 4       p\        V4      pW68  d   V P	                  WSR 4      pW7,          pK#   RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r   z.non-zero flags not allowed in calls to sendallÚBN)rK   Ú
memoryviewÚcastr@   Úsend)r*   rV   rI   ÚcountÚviewÚ	byte_viewÚamountÚvs   &&&     r   ÚsendallÚSSLTransport.sendalle   sz   € Ø�AŒ:ÜÐMÓNÐNØˆÜ˜×Ô §y¡y°§~¤~¸Ü˜“^ˆFØ”.Ø—I‘I˜i¨Ð/Ó0�Ø•
’ð !÷ (6×Ñ§~§~ú××Ðús#   ¨BÁ/B	Á1BÂBÂBÂB'	c               ó$   € V ^8„  d   QhRRRRRR/# )r   rV   rW   rI   r:   r   r   )r   s   "r   r   r   o   s!   € ÷ :ñ :˜ð : sð :°3ñ :r   c                	ór   € V^ 8w  d   \        R4      hV P                  V P                  P                  V4      # )r   z+non-zero flags not allowed in calls to send)rK   r(   r'   Úwrite)r*   rV   rI   s   &&&r   r\   ÚSSLTransport.sendo   s2   € Ø�AŒ:ÜÐJÓKÐKØ× Ñ  §¡×!2Ñ!2°DÓ9Ð9r   ÚencodingÚerrorsÚnewlinec               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )r   ÚmodeÚstrÚ	bufferingrQ   rh   r   ri   rj   r   z1typing.BinaryIO | typing.TextIO | socket.SocketIOr   )r   s   "r   r   r   t   sF   € ÷ 2ñ 2àð2ð ð2ð
 ð2ð ð2ð ð2ð 
;ñ2r   c               óò  € \        V4      0 Rm8:  g   \        RV: R24      hRV9   pRV9   ;'       g    V'       * pV'       g   V'       g   Q hRV9   pRp	V'       d
   V	R,          p	V'       d
   V	R,          p	\        P                  ! W	4      p
V P                  ;P                  ^,          un        Vf   R	pV^ 8  d   \
        P                  pV^ 8X  d   V'       g   \        R4      hV
# V'       d!   V'       d   \
        P                  ! WªV4      pM?V'       d   \
        P                  ! W¢4      pM V'       g   Q h\
        P                  ! W¢4      pV'       d   V# \
        P                  ! W³WE4      pWn        V# )
zÛ
Python's httpclient uses makefile and buffered io when reading HTTP
messages and we need to support it.

This is unfortunately a copy and paste of socket.py makefile with small
changes to point to the socket directly.
ÚrÚwÚbzinvalid mode z (only r, w, b allowed)Ú z!unbuffered streams must be binary>   rr   rp   rq   éÿÿÿÿ)ÚsetrK   r   ÚSocketIOÚ_io_refsÚioÚDEFAULT_BUFFER_SIZEÚBufferedRWPairÚBufferedReaderÚBufferedWriterÚTextIOWrapperrl   )r*   rl   rn   rh   ri   rj   ÚwritingÚreadingÚbinaryÚrawmodeÚrawrA   Útexts   &&&$$$       r   ÚmakefileÚSSLTransport.makefilet   s2  € ô  �4‹yšOÔ+Ü˜}¨T©HÐ4KÐLÓMÐMà˜‘+ˆØ˜‘+×,Ð, W¤ˆßŸ'Ð!Ð!Ø˜‘ˆØˆßØ�s�NˆGßØ�s�NˆGÜ�oŠo˜dÓ,ˆØ�‰×Ò Õ!ÕØÒØˆIØ�qŒ=Ü×.Ñ.ˆIØ˜Œ>ßÜ Ð!DÓEÐEØˆJç—wÜ×&Ò& s°Ó;‰FßÜ×&Ò& sÓ6‰FçˆN�7Ü×&Ò& sÓ6ˆFßØˆMÜ×Ò °&ÓBˆØŒ	Øˆr   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   r   ¨   s   € ÷ .ñ .˜ñ .r   c                	óP   € V P                  V P                  P                  4       R # r/   )r(   r'   Úunwrapr0   s   &r   r‰   ÚSSLTransport.unwrap¨   s   € Ø×Ñ˜$Ÿ+™+×,Ñ,Ö-r   c               ó   € V ^8„  d   QhRR/# r‡   r   )r   s   "r   r   r   «   s   € ÷ ñ �tñ r   c                	ó:   € V P                   P                  4        R # r/   )r   r6   r0   s   &r   r6   ÚSSLTransport.close«   s   € Ø�‰×ÑÖr   c               ó    € V ^8„  d   QhRRRR/# )r   Úbinary_formztyping.Literal[False]r   z_TYPE_PEER_CERT_RET_DICT | Noner   )r   s   "r   r   r   ¯   s   € ÷ .ñ .Ø0ð.à	(ñ.r   c                	ó   € R # r/   r   ©r*   r�   s   &&r   ÚgetpeercertÚSSLTransport.getpeercert®   s   € ñ +.r   c               ó    € V ^8„  d   QhRRRR/# )r   r�   ztyping.Literal[True]r   zbytes | Noner   )r   s   "r   r   r   ´   s   € ×QÑQÐ';ÐQÀÑQr   c                	ó   € R # r/   r   r‘   s   &&r   r’   r“   ³   s   € ÙNQr   c               ó    € V ^8„  d   QhRRRR/# )r   r�   r!   r   r   r   )r   s   "r   r   r   ¶   s   € ÷ 4ñ 4 tð 4Ð8Kñ 4r   c                	ó8   € V P                   P                  V4      # r/   )r'   r’   r‘   s   &&r   r’   r“   ¶   s   € Ø�{‰{×&Ñ& {Ó3Ð3r   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   r   ¹   s   € ÷ %ñ %˜ñ %r   c                	ó6   € V P                   P                  4       # r/   )r'   Úversionr0   s   &r   r›   ÚSSLTransport.version¹   s   € Ø�{‰{×"Ñ"Ó$Ð$r   c               ó   € V ^8„  d   QhRR/# )r   r   ztuple[str, str, int] | Noner   )r   s   "r   r   r   ¼   s   € ÷ $ñ $Ð3ñ $r   c                	ó6   € V P                   P                  4       # r/   )r'   Úcipherr0   s   &r   rŸ   ÚSSLTransport.cipher¼   r>   r   c               ó   € V ^8„  d   QhRR/# r™   r   )r   s   "r   r   r   ¿   s   € ÷ 4ñ 4¨
ñ 4r   c                	ó6   € V P                   P                  4       # r/   )r'   Úselected_alpn_protocolr0   s   &r   r£   Ú#SSLTransport.selected_alpn_protocol¿   s   € Ø�{‰{×1Ñ1Ó3Ð3r   c               ó   € V ^8„  d   QhRR/# )r   r   z!list[tuple[str, str, int]] | Noner   )r   s   "r   r   r   Â   s   € ÷ ,ñ ,Ð Añ ,r   c                	ó6   € V P                   P                  4       # r/   )r'   Úshared_ciphersr0   s   &r   r§   ÚSSLTransport.shared_ciphersÂ   s   € Ø�{‰{×)Ñ)Ó+Ð+r   c               ó   € V ^8„  d   QhRR/# r™   r   )r   s   "r   r   r   Å   s   € ÷ )ñ )˜Zñ )r   c                	ó6   € V P                   P                  4       # r/   )r'   Úcompressionr0   s   &r   r«   ÚSSLTransport.compressionÅ   s   € Ø�{‰{×&Ñ&Ó(Ð(r   c               ó    € V ^8„  d   QhRRRR/# )r   Úvalueúfloat | Noner   r   r   )r   s   "r   r   r   È   s   € ÷ &ñ & ð &°ñ &r   c                	ó<   € V P                   P                  V4       R # r/   )r   Ú
settimeout)r*   r®   s   &&r   r±   ÚSSLTransport.settimeoutÈ   s   € Ø�‰×Ñ˜uÖ%r   c               ó   € V ^8„  d   QhRR/# )r   r   r¯   r   )r   s   "r   r   r   Ë   s   € ÷ (ñ (˜Lñ (r   c                	ó6   € V P                   P                  4       # r/   )r   Ú
gettimeoutr0   s   &r   rµ   ÚSSLTransport.gettimeoutË   s   € Ø�{‰{×%Ñ%Ó'Ð'r   c               ó   € V ^8„  d   QhRR/# r‡   r   )r   s   "r   r   r   Î   s   € ÷ (ñ ( 4ñ (r   c                	ó:   € V P                   P                  4        R # r/   )r   Ú_decref_socketiosr0   s   &r   r¹   ÚSSLTransport._decref_socketiosÎ   s   € Ø�‰×%Ñ%Ö'r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r@   r:   rA   úbytearray | Noner   rB   r   )r   s   "r   r   r   Ñ   s"   € ÷ ñ  #ð Ð/?ð È;ñ r   c                	óú   €  V P                  V P                  P                  W4      #   \        P                   d>   pTP
                  \        P                  8X  d   T P                  '       d    R p?^ # h R p?ii ; ir/   )r(   r'   rE   r#   ÚSSLErrorÚerrnoÚSSL_ERROR_EOFr    )r*   r@   rA   Úes   &&& r   rD   ÚSSLTransport._wrap_ssl_readÑ   s[   € ð	Ø×$Ñ$ T§[¡[×%5Ñ%5°sÓCÐCøÜ�|‰|ô 	Ø�w‰wœ#×+Ñ+Ô+°×0I×0IÐ0IÝàûð		ús   ‚%( ¨A:½0A5Á4A5Á5A:c               ó    € V ^8„  d   QhRRRR/# )r   Úfuncztyping.Callable[[], None]r   r   r   )r   s   "r   r   r   Ü   s   € ×HÑHÐ!:ÐH¸tÑHr   c                	ó   € R # r/   r   )r*   rÄ   s   &&r   r(   ÚSSLTransport._ssl_io_loopÛ   s   € ÙEHr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rÄ   ztyping.Callable[[bytes], int]Úarg1rW   r   r:   r   )r   s   "r   r   r   à   s   € ×XÑXÐ!>ÐXÀeÐXÐPSÑXr   c                	ó   € R # r/   r   )r*   rÄ   rÈ   s   &&&r   r(   rÆ   ß   s   € ÙUXr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rÄ   z/typing.Callable[[int, bytearray | None], bytes]rÈ   r:   Úarg2r¼   r   rW   r   )r   s   "r   r   r   ä   s2   € ÷ ñ à=ðð ðð ð	ð
 
ñr   c                	ó   € R # r/   r   )r*   rÄ   rÈ   rË   s   &&&&r   r(   rÆ   ã   s   € ñ r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rÄ   z"typing.Callable[..., _ReturnValue]rÈ   zNone | bytes | intrË   r¼   r   r   r   )r   s   "r   r   r   ë   s2   € ÷ $.ñ $.à0ð$.ð !ð$.ð ð	$.ð
 
ñ$.r   c                óÊ  € RpRpV'       dÞ   Rp Vf   Vf	   V! 4       pMVf
   V! V4      pM	V! W#4      p V P
                  P                  4       pV P                  P                  V4       Vf   RpKn  V\         P                  8X  g   K…  V P                  P                  \        4      pV'       d   V P                  P                  V4       KÉ  V P                  P                  4        Kå  \        P                  ! \         V4      #   \         P                   dI   pTP                  \         P                  \         P                  39  d   ThTP                  p Rp?EL'Rp?ii ; i)z>Performs an I/O loop between incoming/outgoing and the socket.TNF)r#   r¾   r¿   ÚSSL_ERROR_WANT_READÚSSL_ERROR_WANT_WRITEr&   rE   r   rb   rL   ÚSSL_BLOCKSIZEr%   rf   Ú	write_eofÚtypingr[   r   )	r*   rÄ   rÈ   rË   Úshould_loopÚretr¿   rÁ   Úbufs	   &&&&     r   r(   rÆ   ë   s  € ð ˆØˆçØˆEð Ø’< D¢LÙ›&‘CØ’\Ù˜t›*‘Cá˜tÓ*‘Cð —-‘-×$Ñ$Ó&ˆCØ�K‰K×Ñ Ô$àŠ}Ø#’Øœ#×1Ñ1Ö1Ø—k‘k×&Ñ&¤}Ó5�ßØ—M‘M×'Ñ'¨Ö,à—M‘M×+Ñ+Ö-Ü�{Š{œ<¨Ó-Ð-øô# —<‘<ô  Ø—7‘7¤3×#:Ñ#:¼C×<TÑ<TÐ"UÔUà�GØŸ™–ûð	 ús!   �D  D ­D ÄE"Ä=EÅE")r%   r&   r   r'   r    )NT)é   N)r×   r   )Nr   )r   r/   ).)F)NN)!Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ústaticmethodr   r+   r1   r7   r<   rE   rL   rS   rb   r\   r„   r‰   r6   rÓ   Úoverloadr’   r›   rŸ   r£   r§   r«   r±   rµ   r¹   rD   r(   Ú__static_attributes__r   r   r   r
   r
      s#  † ñð ôó ð÷4õ.õõ$÷0÷+÷

)÷÷:ñ
2ð
  $ð2ð "ð2ð #÷2ð 2õh.õð ‡_�_ö.ó ð.ð ‡_�_ÜQó ØQ÷4õ%õ$õ4õ,õ)õ&õ(õ(÷ð ‡_�_ÜHó ØHð ‡_�_ÜXó ØXð ‡_�_ôó ð÷$.ó $.r   r
   )Ú
__future__r   rx   r   r#   rÓ   Ú
exceptionsr   ÚTYPE_CHECKINGÚtyping_extensionsr   Ússl_r   r   ÚUnionÚ	bytearrayrZ   rO   ÚTypeVarr   rÑ   r
   r   r   r   Ú<module>rè      s]   ðÝ "ã 	Û Û 
Û å /à	××ÐÝ&çCð �|‰|˜I zÐ1Õ2€Ø�~Š~˜nÓ-€à€÷y.ó y.r   