+
    IV-jW]  ã                  ó   € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^RI
HtHt ^RIHt ^RIHt ^RIHtHtHt ^R	IHtHtHtHt ^R
IHt ^RIHt ^RIHt ^RI H!t! ^RI"H#t# ^RI$H%t%H&t& ]PN                  '       d   ^ RI(t(^ RI)H*t* . ROt+]PX                  ! ]-4      t.Rt/Rt0 ! R R]Pb                  4      t2R R lt3R]Ph                  ! ]3]24      R]Ph                  ! ]3]24      /t5R]R]/t6 ! R R]4      t7 ! R R]74      t8R R lt9R# ) é    )ÚannotationsN)ÚTracebackType)Úurljoin)ÚHTTPHeaderDictÚRecentlyUsedContainer)ÚRequestMethods)ÚProxyConfig)ÚHTTPConnectionPoolÚHTTPSConnectionPoolÚport_by_scheme)ÚLocationValueErrorÚMaxRetryErrorÚProxySchemeUnknownÚURLSchemeUnknown)ÚBaseHTTPResponse)Ú_TYPE_SOCKET_OPTIONS)Úconnection_requires_http_tunnel)ÚRetry)ÚTimeout)ÚUrlÚ	parse_url)ÚSelfÚPoolManagerÚProxyManageri @  c                  ó>  € ] tR t^8t$ RtR]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R ]R!&   R"]R#&   R ]R$&   R%]R&&   R']R(&   R ]R)&   R*]R+&   R]R,&   R]R-&   R]R.&   R/tR0# )1ÚPoolKeyz¿
All known keyword arguments that could be provided to the pool manager, its
pools, or the underlying connections.

All custom key schemes should include the fields in this key at a minimum.
ÚstrÚ
key_schemeÚkey_hostú
int | NoneÚkey_portzTimeout | float | int | NoneÚkey_timeoutzRetry | bool | int | NoneÚkey_retrieszbool | NoneÚ	key_blockztuple[str, int] | NoneÚkey_source_addressú
str | NoneÚkey_key_fileÚkey_key_passwordÚkey_cert_fileÚkey_cert_reqsÚkey_ca_certszstr | bytes | NoneÚkey_ca_cert_datazint | str | NoneÚkey_ssl_versionzssl.TLSVersion | NoneÚkey_ssl_minimum_versionÚkey_ssl_maximum_versionÚkey_ca_cert_dirússl.SSLContext | NoneÚkey_ssl_contextÚkey_maxsizez!frozenset[tuple[str, str]] | NoneÚkey_headersú
Url | NoneÚ
key__proxyÚkey__proxy_headersúProxyConfig | NoneÚkey__proxy_configz_TYPE_SOCKET_OPTIONS | NoneÚkey_socket_optionsÚkey__socks_optionszbool | str | NoneÚkey_assert_hostnameÚkey_assert_fingerprintÚkey_server_hostnameÚkey_blocksize© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Ú__static_attributes__r@   ó    Úd/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/urllib3/poolmanager.pyr   r   8   sµ   ‡ ñð ƒOØƒMØÓØ-Ó-Ø*Ó*ØÓØ.Ó.ØÓØ Ó ØÓØÓØÓØ(Ó(Ø%Ó%Ø2Ó2Ø2Ó2ØÓØ*Ó*ØÓØ2Ó2ØÓØ9Ó9Ø)Ó)Ø3Ó3Ø9Ó9Ø*Ó*Ø&Ó&Ø#Ó#Ø×rH   r   c               ó$   € V ^8„  d   QhRRRRRR/# )é   Ú	key_classztype[PoolKey]Úrequest_contextúdict[str, typing.Any]Úreturnr   r@   )Úformats   "rI   Ú__annotate__rQ   _   s$   € ÷ 4 ñ 4 Øð4 Ø/Dð4 àñ4 rH   c                óH  € VP                  4       pVR,          P                  4       VR&   VR,          P                  4       VR&   R F8  pW29   g   K  W#,          f   K  \        W#,          P                  4       4      W#&   K:  	  VP	                  R4      pVe   \        V4      VR&   \        VP                  4       4       F  pVP                  V4      VRV,           &   K   	  V P                   F  pWR9  g   K  RW%&   K  	  VP	                  R4      f
   \        VR&   V ! R/ VB # )	a»  
Create a pool key out of a request context dictionary.

According to RFC 3986, both the scheme and host are case-insensitive.
Therefore, this function normalizes both before constructing the pool
key for an HTTPS request. If you wish to change this behaviour, provide
alternate callables to ``key_fn_by_scheme``.

:param key_class:
    The class to use when constructing the key. This should be a namedtuple
    with the ``scheme`` and ``host`` keys at a minimum.
:type  key_class: namedtuple
:param request_context:
    A dictionary-like object that contain the context for a request.
:type  request_context: dict

:return: A namedtuple that can be used as a connection pool key.
:rtype:  PoolKey
ÚschemeÚhostNÚsocket_optionsÚkey_r?   )ÚheadersÚ_proxy_headersÚ_socks_optionsr@   )ÚcopyÚlowerÚ	frozensetÚitemsÚgetÚtupleÚlistÚkeysÚpopÚ_fieldsÚ_DEFAULT_BLOCKSIZE)rL   rM   ÚcontextÚkeyÚsocket_optsÚfields   &&    rI   Ú_default_key_normalizerri   _   s  € ð. ×"Ñ"Ó$€GØ Õ)×/Ñ/Ó1€GˆHÑØ˜f•o×+Ñ+Ó-€GˆF�Oó ?ˆØŽ>˜g�lÔ6Ü$ W¥\×%7Ñ%7Ó%9Ó:ˆG‹Lñ ?ð —+‘+Ð.Ó/€KØÒÜ$)¨+Ó$6ˆÐ Ñ!ô �G—L‘L“NÖ#ˆØ '§¡¨CÓ 0ˆ�˜•Óñ $ð ×"Ô"ˆØÖØ!ˆG‹Nñ #ð
 ‡{�{�?Ó#Ò+Ü#5ˆ�Ñ áÑ�wÑÐrH   ÚhttpÚhttpsc                  óè   a € ] tR t^¢t$ RtRtR]R&   RtR]R&   R R V 3R llltR	 R
 lt	R R lt
R!R R lltR R ltR"R R lltR R ltR R ltR!R R lltR R ltR R ltR#R R lltRtV ;t# )$r   a  
Allows for arbitrary requests while transparently keeping track of
necessary connection pools for you.

:param num_pools:
    Number of connection pools to cache before discarding the least
    recently used pool.

:param headers:
    Headers to include with all requests, unless other headers are given
    explicitly.

:param \**connection_pool_kw:
    Additional parameters are used to create fresh
    :class:`urllib3.connectionpool.ConnectionPool` instances.

Example:

.. code-block:: python

    import urllib3

    http = urllib3.PoolManager(num_pools=2)

    resp1 = http.request("GET", "https://google.com/")
    resp2 = http.request("GET", "https://google.com/mail")
    resp3 = http.request("GET", "https://yahoo.com/")

    print(len(http.pools))
    # 2

Nr5   Úproxyr8   Úproxy_configc               ó(   € V ^8„  d   QhRRRRRRRR/# )	rK   Ú	num_poolsÚintrW   útyping.Mapping[str, str] | NoneÚconnection_pool_kwú
typing.AnyrO   ÚNoner@   )rP   s   "rI   rQ   ÚPoolManager.__annotate__Ç   s2   € ÷ 8ñ 8àð8ð 1ð8ð )ð	8ð
 
ñ8rH   c                	ó>  <€ \         SV `  V4       R V9   dJ   VR ,          p\        V\        4      '       g+   \        P                  ! V4      pVP                  4       pWCR &   W0n        V  \        V4      V n        \        V n	        \        P                  4       V n
        R# )ÚretriesN)ÚsuperÚ__init__Ú
isinstancer   Úfrom_intrZ   rs   r   ÚpoolsÚpool_classes_by_schemeÚkey_fn_by_scheme)Úselfrp   rW   rs   rx   Ú	__class__s   &&&, €rI   rz   ÚPoolManager.__init__Ç   s‰   ø€ ô 	‰Ñ˜Ô!ð Ð*Ô*Ø(¨Õ3ˆGÜ˜g¤u×-Ò-ÜŸ.š.¨Ó1�Ø%7×%<Ñ%<Ó%>Ð"Ø07 9Ñ-Ø"4ÔáÜ*¨9Ó5ˆŒ
ô '=ˆÔ#Ü 0× 5Ñ 5Ó 7ˆÖrH   c               ó   € V ^8„  d   QhRR/# )rK   rO   r   r@   )rP   s   "rI   rQ   rv   æ   s   € ÷ ñ ˜4ñ rH   c                	ó   € V # ©Nr@   ©r€   s   &rI   Ú	__enter__ÚPoolManager.__enter__æ   s   € ØˆrH   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rK   Úexc_typeztype[BaseException] | NoneÚexc_valzBaseException | NoneÚexc_tbzTracebackType | NonerO   ztyping.Literal[False]r@   )rP   s   "rI   rQ   rv   é   s2   € ÷ ñ à,ðð &ðð %ð	ð
 
ñrH   c                	ó&   € V P                  4        R # )F)Úclear)r€   rŠ   r‹   rŒ   s   &&&&rI   Ú__exit__ÚPoolManager.__exit__é   s   € ð 	�
‰
ŒárH   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
rK   rS   r   rT   Úportrq   rM   údict[str, typing.Any] | NonerO   r
   r@   )rP   s   "rI   rQ   rv   ó   s<   € ÷ $7ñ $7àð$7ð ð$7ð ð	$7ð
 6ð$7ð 
ñ$7rH   c                ó0  € V P                   V,          pVf   V P                  P                  4       pVP                  R4      f
   \        VR&   R F  pVP                  VR4       K  	  VR8X  d    \         F  pVP                  VR4       K  	  V! W#3/ VB # )a–  
Create a new :class:`urllib3.connectionpool.ConnectionPool` based on host, port, scheme, and
any additional pool keyword arguments.

If ``request_context`` is provided, it is provided as keyword arguments
to the pool class used. This method is used to actually create the
connection pools handed out by :meth:`connection_from_url` and
companion methods. It is intended to be overridden for customization.
NÚ	blocksizerj   )rS   rT   r’   )r~   rs   rZ   r^   rd   rb   ÚSSL_KEYWORDS)r€   rS   rT   r’   rM   Úpool_clsrf   Úkws   &&&&&   rI   Ú	_new_poolÚPoolManager._new_pooló   s�   € ð  .2×-HÑ-HÈÕ-PˆØÒ"Ø"×5Ñ5×:Ñ:Ó<ˆOð ×Ñ˜{Ó+Ò3Ü+=ˆO˜KÑ(ó .ˆCØ×Ñ  TÖ*ñ .ð �VÔß"�Ø×#Ñ# B¨Ö-ñ #ñ ˜Ñ6 oÑ6Ð6rH   c               ó   € V ^8„  d   QhRR/# )rK   rO   ru   r@   )rP   s   "rI   rQ   rv     s   € ÷ ñ �tñ rH   c                ó:   € V P                   P                  4        R# )z”
Empty our store of pools and direct them all to close.

This will not affect in-flight connections, but they will not be
re-used after completion.
N)r}   rŽ   r†   s   &rI   rŽ   ÚPoolManager.clear  s   € ð 	�
‰
×ÑÖrH   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# ©
rK   rT   r&   r’   r    rS   Úpool_kwargsr“   rO   r
   r@   )rP   s   "rI   rQ   rv   "  s<   € ÷ =ñ =àð=ð ð=ð ð	=ð
 2ð=ð 
ñ=rH   c                ó  € V'       g   \        R4      hV P                  V4      pT;'       g    RVR&   V'       g-   \        P                  ! VR,          P	                  4       ^P4      pW%R&   WR&   V P                  V4      # )al  
Get a :class:`urllib3.connectionpool.ConnectionPool` based on the host, port, and scheme.

If ``port`` isn't given, it will be derived from the ``scheme`` using
``urllib3.connectionpool.port_by_scheme``. If ``pool_kwargs`` is
provided, it is merged with the instance's ``connection_pool_kw``
variable and used to create the new connection pool, if one is
needed.
zNo host specified.rj   rS   r’   rT   )r   Ú_merge_pool_kwargsr   r^   r[   Úconnection_from_context)r€   rT   r’   rS   r    rM   s   &&&&& rI   Úconnection_from_hostÚ PoolManager.connection_from_host"  sy   € ÷" Ü$Ð%9Ó:Ð:à×1Ñ1°+Ó>ˆØ$*×$4Ð$4¨fˆ˜Ñ!ßÜ!×%Ò% o°hÕ&?×&EÑ&EÓ&GÈÓLˆDØ"&˜ÑØ"&˜Ñà×+Ñ+¨OÓ<Ð<rH   c               ó    € V ^8„  d   QhRRRR/# )rK   rM   rN   rO   r
   r@   )rP   s   "rI   rQ   rv   ?  s    € ÷ Xñ XØ4ðXà	ñXrH   c                ó&  € RV9   d-   \         P                  ! R\        4       VP                  R4       VR,          P	                  4       pV P
                  P                  V4      pV'       g   \        V4      hV! V4      pV P                  WAR7      # )zÙ
Get a :class:`urllib3.connectionpool.ConnectionPool` based on the request context.

``request_context`` must at least contain the ``scheme`` key and its
value must be a key in ``key_fn_by_scheme`` instance variable.
ÚstrictzbThe 'strict' parameter is no longer needed on Python 3+. This will raise an error in urllib3 v3.0.rS   ©rM   )	ÚwarningsÚwarnÚFutureWarningrb   r[   r   r^   r   Úconnection_from_pool_key)r€   rM   rS   Úpool_key_constructorÚpool_keys   &&   rI   r£   Ú#PoolManager.connection_from_context?  s†   € ð �Ô&Ü�MŠMð<äôð
 ×Ñ Ô)à  Õ*×0Ñ0Ó2ˆØ#×4Ñ4×8Ñ8¸Ó@Ðß#Ü" 6Ó*Ð*Ù'¨Ó8ˆà×,Ñ,¨XÐ,ÓWÐWrH   c               ó$   € V ^8„  d   QhRRRRRR/# )rK   r¯   r   rM   rN   rO   r
   r@   )rP   s   "rI   rQ   rv   X  s$   € ÷ ñ ØðØ2Gðà	ñrH   c           	     óR  € V P                   P                  ;_uu_ 4        V P                   P                  V4      pV'       d   VuuRRR4       # VR,          pVR,          pVR,          pV P                  WEWbR7      pW0P                   V&   RRR4       V#   + '       g   i     X# ; i)zê
Get a :class:`urllib3.connectionpool.ConnectionPool` based on the provided pool key.

``pool_key`` should be a namedtuple that only contains immutable
objects. At a minimum it must have the ``scheme``, ``host``, and
``port`` fields.
NrS   rT   r’   r©   )r}   Úlockr^   r™   )r€   r¯   rM   ÚpoolrS   rT   r’   s   &&&    rI   r­   Ú$PoolManager.connection_from_pool_keyX  s‹   € ð �Z‰Z�_�_‹_ð —:‘:—>‘> (Ó+ˆDßØ÷ Š_ð % XÕ.ˆFØ" 6Õ*ˆDØ" 6Õ*ˆDØ—>‘> &°�>ÓVˆDØ#'�J‰J�xÑ ÷ ð ˆ÷ Ž_ð ˆús   Ÿ%BÁ<BÂB&	c               ó$   € V ^8„  d   QhRRRRRR/# )rK   Úurlr   r    r“   rO   r
   r@   )rP   s   "rI   rQ   rv   r  s$   € ÷ 
ñ 
Øð
Ø%Að
à	ñ
rH   c                ó~   € \        V4      pV P                  VP                  VP                  VP                  VR7      # )a–  
Similar to :func:`urllib3.connectionpool.connection_from_url`.

If ``pool_kwargs`` is not provided and a new pool needs to be
constructed, ``self.connection_pool_kw`` is used to initialize
the :class:`urllib3.connectionpool.ConnectionPool`. If ``pool_kwargs``
is provided, it is used instead. Note that if a new pool does not
need to be created for the request, the provided ``pool_kwargs`` are
not used.
)r’   rS   r    )r   r¤   rT   r’   rS   )r€   r·   r    Úus   &&& rI   Úconnection_from_urlÚPoolManager.connection_from_urlr  s:   € ô �c‹NˆØ×(Ñ(Ø�F‰F˜Ÿ™¨¯©¸kð )ó 
ð 	
rH   c               ó    € V ^8„  d   QhRRRR/# )rK   Úoverrider“   rO   rN   r@   )rP   s   "rI   rQ   rv   „  s   € ÷  ñ  Ø4ð à	ñ rH   c                óº   € V P                   P                  4       pV'       d'   VP                  4        F  w  r4Vf    W# K  WBV&   K  	  V#   \         d     K&  i ; i)zï
Merge a dictionary of override values for self.connection_pool_kw.

This does not modify self.connection_pool_kw and returns a new dict.
Any keys in the override dictionary with a value of ``None`` are
removed from the merged dictionary.
)rs   rZ   r]   ÚKeyError)r€   r½   Úbase_pool_kwargsrf   Úvalues   &&   rI   r¢   ÚPoolManager._merge_pool_kwargs„  se   € ð  ×2Ñ2×7Ñ7Ó9ÐßØ&Ÿn™nÖ.‘
�Ø’=ðØ,Ò1ð -2 SÓ)ñ /ð  Ðøô	 $ô Úðús   ½AÁAÁAc               ó    € V ^8„  d   QhRRRR/# )rK   Ú
parsed_urlr   rO   Úboolr@   )rP   s   "rI   rQ   rv   š  s   € ÷ 
ñ 
¸Cð 
ÀDñ 
rH   c                ó‚   € V P                   f   R# \        V P                   V P                  VP                  4      '       * # )z“
Indicates if the proxy requires the complete destination URL in the
request.  Normally this is only needed when not using an HTTP CONNECT
tunnel.
F)rm   r   rn   rS   )r€   rÄ   s   &&rI   Ú!_proxy_requires_url_absolute_formÚ-PoolManager._proxy_requires_url_absolute_formš  s:   € ð �:‰:ÒÙä2Ø�J‰J˜×)Ñ)¨:×+<Ñ+<ó
ô 
ð 	
rH   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# ©
rK   Úmethodr   r·   ÚredirectrÅ   r˜   rt   rO   r   r@   )rP   s   "rI   rQ   rv   §  s;   € ÷ P=ñ P=ØðP=Ø #ðP=Ø/3ðP=ØBLðP=à	ñP=rH   c                ó,  € \        V4      pVP                  f   \        P                  ! R\        ^R7       V P                  VP                  VP                  VP                  R7      pRVR&   RVR&   RV9  d   V P                  VR&   V P                  V4      '       d   VP                  ! W3/ VB pMVP                  ! WP                  3/ VB pT;'       d    VP                  4       pV'       g   V# \        W(4      pVP                  R	8X  d+   R
pRVR&   \        VR,          4      P!                  4       VR&   VP#                  RVP$                  4      p	\'        V	\(        4      '       g   \(        P*                  ! W“R7      p	V	P,                  '       dv   VP/                  V4      '       g_   VR,          P1                  4       p
VR,           F6  pVP3                  4       V	P,                  9   g   K$  V
P5                  VR4       K8  	  W¤R&    V	P7                  WWvR7      p	Y”R&   Y4R&   \>        PA                  RY(4       TP=                  4        T P                  ! Y3/ TB #   \8         d)    T	P:                  '       d   TP=                  4        h Tu # i ; i)a  
Same as :meth:`urllib3.HTTPConnectionPool.urlopen`
with custom cross-host redirect logic and only sends the request-uri
portion of the ``url``.

The given ``url`` parameter must be absolute, such that an appropriate
:class:`urllib3.connectionpool.ConnectionPool` can be chosen for it.
NzõURLs without a scheme (ie 'https://') are deprecated and will raise an error in urllib3 v3.0. To avoid this FutureWarning ensure all URLs start with 'https://' or 'http://'. Read more in this issue: https://github.com/urllib3/urllib3/issues/2920)ÚcategoryÚ
stacklevel)r’   rS   FÚassert_same_hostrÌ   rW   i/  ÚGETÚbodyrx   )rÌ   )ÚresponseÚ_poolzRedirecting %s -> %s)!r   rS   rª   r«   r¬   r¤   rT   r’   rW   rÇ   ÚurlopenÚrequest_uriÚget_redirect_locationr   Ústatusr   Ú_prepare_for_method_changer^   rx   r{   r   r|   Úremove_headers_on_redirectÚis_same_hostrZ   r[   rb   Ú	incrementr   Úraise_on_redirectÚ
drain_connÚlogÚinfo)r€   rË   r·   rÌ   r˜   r¹   ÚconnrÓ   Úredirect_locationrx   Únew_headersÚheaders   &&&&,       rI   rÕ   ÚPoolManager.urlopen§  sH  € ô �c‹Nˆà�8‰8ÒÜ�MŠMðAô 'Øõð ×(Ñ(¨¯©°a·f±fÀQÇXÁXÐ(ÓNˆà!&ˆÐÑØˆˆ:‰à˜BÔØ ŸL™LˆBˆy‰Mà×1Ñ1°!×4Ò4Ø—|’| FÑ6°2Ñ6‰Hà—|’| F¯M©MÑ@¸RÑ@ˆHà$×IÐI¨×)GÑ)GÓ)IÐß ØˆOô $ CÓ;Ðà�?‰?˜cÔ!àˆFàˆBˆv‰JÜ*¨2¨i­=Ó9×TÑTÓVˆBˆy‰Mà—&‘&˜ H×$4Ñ$4Ó5ˆÜ˜'¤5×)Ò)Ü—n’n WÔ@ˆGð
 ×-×-Ð-°d×6GÑ6GØ÷7
ò 7
ð ˜Y�-×,Ñ,Ó.ˆKØ˜YŸ-˜-�Ø—<‘<“> W×%GÑ%GÖGØ—O‘O F¨DÖ1ñ (ð (ˆy‰Mð	Ø×'Ñ'¨¸hÐ'ÓSˆGð  ˆ9‰Ø!ˆ:‰ä�‰Ð'¨Ô@à×ÑÔØ�|Š|˜FÑ<¸Ñ<Ð<øô ô 	Ø×(×(Ð(Ø×#Ñ#Ô%ØØŠOð		ús   ÈI  É JÉ=JÊJ)rs   r   r~   r}   )é
   Nr…   ©Nrj   N©T)rA   rB   rC   rD   rE   rm   rF   rn   rz   r‡   r�   r™   rŽ   r¤   r£   r­   rº   r¢   rÇ   rÕ   rG   Ú__classcell__©r�   s   @rI   r   r   ¢   sj   ø‡ ñðB €Eˆ:ÓØ'+€LÐ$Ó+÷8ò 8õ>õ÷$7õL÷=õ:Xõ2÷4
õ$ õ,
÷P=õ P=rH   c                  ór   a € ] tR tRtRtRR V 3R llltRR V 3R llltRR R lltRR	 V 3R
 llltRt	V ;t
# )r   iú  a  
Behaves just like :class:`PoolManager`, but sends all requests through
the defined proxy, using the CONNECT method for HTTPS URLs.

:param proxy_url:
    The URL of the proxy to be used.

:param proxy_headers:
    A dictionary containing headers that will be sent to the proxy. In case
    of HTTP they are being sent with each request, while in the
    HTTPS/CONNECT case they are sent only once. Could be used for proxy
    authentication.

:param proxy_ssl_context:
    The proxy SSL context is used to establish the TLS connection to the
    proxy when using HTTPS proxies.

:param use_forwarding_for_https:
    (Defaults to False) If set to True will forward requests to the HTTPS
    proxy to be made on behalf of the client instead of creating a TLS
    tunnel via the CONNECT method. **Enabling this flag means that request
    and response headers and content will be visible from the HTTPS proxy**
    whereas tunneling keeps request and response headers and content
    private.  IP address, target hostname, SNI, and port are always visible
    to an HTTPS proxy even when this flag is disabled.

:param proxy_assert_hostname:
    The hostname of the certificate to verify against.

:param proxy_assert_fingerprint:
    The fingerprint of the certificate to verify against.

Example:

.. code-block:: python

    import urllib3

    proxy = urllib3.ProxyManager("https://localhost:3128/")

    resp1 = proxy.request("GET", "http://google.com/")
    resp2 = proxy.request("GET", "http://httpbin.org/")

    # One pool was shared by both plain HTTP requests.
    print(len(proxy.pools))
    # 1

    resp3 = proxy.request("GET", "https://httpbin.org/")
    resp4 = proxy.request("GET", "https://twitter.com/")

    # A separate pool was added for each HTTPS target.
    print(len(proxy.pools))
    # 3

c               ó@   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRRRR/
# )rK   Ú	proxy_urlr   rp   rq   rW   rr   Úproxy_headersÚproxy_ssl_contextr1   Úuse_forwarding_for_httpsrÅ   Úproxy_assert_hostnamez"None | str | typing.Literal[False]Úproxy_assert_fingerprintr&   rs   rt   rO   ru   r@   )rP   s   "rI   rQ   ÚProxyManager.__annotate__3  s{   € ÷ 'Cñ 'Càð'Cð ð'Cð 1ð	'Cð
 7ð'Cð 1ð'Cð #'ð'Cð  Bð'Cð #-ð'Cð )ð'Cð 
ñ'CrH   c	                	óR  <€ \        V\        4      '       d*   VP                   R VP                   RVP                   2p
MTp
\        V
4      pVP                  R9  d   \        VP                  4      hVP                  '       g4   \        P                  ! VP                  ^P4      pVP                  VR7      pW°n
        T;'       g    / V n        WPn        \        VVVV4      V n        V P                  V	R&   V P                  V	R&   V P                  V	R&   \        SV `@  ! W#3/ V	B  R# )z://Ú:)r’   Ú_proxyrX   Ú_proxy_configN)rj   rk   )r{   r
   rS   rT   r’   r   r   r   r^   Ú_replacerm   rî   rï   r	   rn   ry   rz   )r€   rí   rp   rW   rî   rï   rð   rñ   rò   rs   Ústr_proxy_urlrm   r’   r�   s   &&&&&&&&&,   €rI   rz   ÚProxyManager.__init__3  s  ø€ ô �iÔ!3×4Ò4Ø(×/Ñ/Ð0°°I·N±NÐ3CÀ1ÀYÇ^Á^ÐDTÐU‰Mà%ˆMÜ˜-Ó(ˆà�<‰<Ð0Ô0Ü$ U§\¡\Ó2Ð2à�z�zˆzÜ!×%Ò% e§l¡l°BÓ7ˆDØ—N‘N¨�NÓ-ˆEàŒ
Ø*×0Ð0¨bˆÔØ!2ÔÜ'ØØ$Ø!Ø$ó	
ˆÔð (,§z¡zÐ˜8Ñ$Ø/3×/AÑ/AÐÐ+Ñ,Ø.2×.?Ñ.?Ð˜?Ñ+ä‰Ò˜ÑBÐ/AÔBrH   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# rŸ   r@   )rP   s   "rI   rQ   ró   \  s<   € ÷ 
ñ 
àð
ð ð
ð ð	
ð
 2ð
ð 
ñ
rH   c                	óÒ   <€ VR 8X  d   \         SV `  WW4R7      # \         SV `  V P                  P                  V P                  P                  V P                  P
                  VR7      # )rk   )r    )ry   r¤   rm   rT   r’   rS   )r€   rT   r’   rS   r    r�   s   &&&&&€rI   r¤   Ú!ProxyManager.connection_from_host\  se   ø€ ð �WÔÜ‘7Ñ/Ø˜Fð 0ó ð ô ‰wÑ+Ø�J‰J�O‰O˜TŸZ™ZŸ_™_¨d¯j©j×.?Ñ.?È[ð ,ó 
ð 	
rH   c               ó$   € V ^8„  d   QhRRRRRR/# )rK   r·   r   rW   rr   rO   ztyping.Mapping[str, str]r@   )rP   s   "rI   rQ   ró   l  s$   € ÷ ñ ØðØ!@ðà	!ñrH   c                ó‚   € RR/p\        V4      P                  pV'       d   WCR&   V'       d   VP                  V4       V# )zx
Sets headers needed by proxies: specifically, the Accept and Host
headers. Only sets headers not provided by the user.
ÚAcceptz*/*ÚHost)r   ÚnetlocÚupdate)r€   r·   rW   Úheaders_r  s   &&&  rI   Ú_set_proxy_headersÚProxyManager._set_proxy_headersl  s<   € ð ˜eÐ$ˆä˜3“×&Ñ&ˆßØ%�VÑçØ�O‰O˜GÔ$ØˆrH   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# rÊ   r@   )rP   s   "rI   rQ   ró   }  s;   € ÷ Eñ EØðEØ #ðEØ/3ðEØBLðEà	ñErH   c                ó  <€ \        V4      p\        V P                  V P                  VP                  4      '       g1   VP                  RV P                  4      pV P                  W&4      VR&   \        SV `$  ! W3RV/VB # )z@Same as HTTP(S)ConnectionPool.urlopen, ``url`` must be absolute.rW   rÌ   )
r   r   rm   rn   rS   r^   rW   r  ry   rÕ   )r€   rË   r·   rÌ   r˜   r¹   rW   r�   s   &&&&,  €rI   rÕ   ÚProxyManager.urlopen}  sn   ø€ ô �c‹NˆÜ.¨t¯z©z¸4×;LÑ;LÈaÏhÉh×WÒWð —f‘f˜Y¨¯©Ó5ˆGØ ×3Ñ3°CÓAˆBˆy‰Mä‰wŠ˜vÑD°XÐDÀÑDÐDrH   )rm   rn   rî   rï   )ræ   NNNFNNrç   r…   rè   )rA   rB   rC   rD   rE   rz   r¤   r  rÕ   rG   ré   rê   s   @rI   r   r   ú  s7   ø† ñ6÷p'Cò 'C÷R
ò 
÷ ÷"E÷ Eð ErH   c               ó$   € V ^8„  d   QhRRRRRR/# )rK   r·   r   r˜   rt   rO   r   r@   )rP   s   "rI   rQ   rQ   Œ  s!   € ÷ -ñ -˜ð - :ð -°,ñ -rH   c                ó   € \        RR V /VB # )rí   r@   )r   )r·   r˜   s   &,rI   Úproxy_from_urlr  Œ  s   € ÜÑ, #Ð,¨Ñ,Ð,rH   )r   r   r  )Úkey_fileÚ	cert_fileÚ	cert_reqsÚca_certsÚca_cert_dataÚssl_versionÚssl_minimum_versionÚssl_maximum_versionÚca_cert_dirÚssl_contextÚkey_passwordÚserver_hostname):Ú
__future__r   Ú	functoolsÚloggingÚtypingrª   Útypesr   Úurllib.parser   Ú_collectionsr   r   Ú_request_methodsr   Ú
connectionr	   Úconnectionpoolr
   r   r   Ú
exceptionsr   r   r   r   rÓ   r   Úutil.connectionr   Ú
util.proxyr   Ú
util.retryr   Úutil.timeoutr   Úutil.urlr   r   ÚTYPE_CHECKINGÚsslÚtyping_extensionsr   Ú__all__Ú	getLoggerrA   rß   r–   rd   Ú
NamedTupler   ri   Úpartialr   r~   r   r   r  r@   rH   rI   Ú<module>r0     s   ðÝ "ã Û Û Û Ý Ý  ç ?Ý ,Ý #ß SÑ S÷ó õ 'Ý 1Ý 7Ý Ý !ß $à	××ÐÛå&â
;€ð ×Ò˜Ó!€ð€ð  Ð ô$ˆf×Ñô $õN4 ðx ˆI×ÒÐ5°wÓ?ØˆY×ÒÐ6¸Ó@ðÐ ð
 !Ð"4°gÐ?RÐSÐ ôU=�.ô U=ôp
OE�;ô OE÷d-rH   