ó
    	[h�ì  ã                   óÀ  • 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	J
r
  S SKJr  S SKJr  S SKJrJrJr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(  S SK)r)S	S
K*J+r+J,r,  S	SK-J.r.J/r/  S	SK0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;  S	SK<J=r=  S	SK>J?r?J@r@JArA  S	SK,JBrBJCrCJDrDJErEJFrFJGrG  S	SKHJIrI  \(       a  S SKJrJ\JR–                  rKO S SKJrJ\JR–                  rK\N" S15      rO\N" SS15      rP\N" SS15      rQ\P\O-  rR\R\Q-  rSS\R¨                  s=:*  =(       a    S:  Os  =(       d    \R¨                  S:  rUSrV\(       a  S	SKWJXrX  S	SK>JYrY  S	SKZJ[r[   " S S5      r\ " S S 5      r] " S! S"5      r^ " S# S$5      r_ " S% S&5      r`S'\aS(\K4S) jrb\b" S*5      rc\b" S+5      rd " S, S-\_5      re " S. S/\_5      rf " S0 S1\_5      rgg! \L a    SrJ\MrK Nðf = f)2é    N)ÚOrderedDictÚdefaultdictÚdeque)Úsuppress)Ú
HTTPStatus)ÚchainÚcycleÚislice)Ú	monotonic)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚ	AwaitableÚCallableÚDefaultDictÚDequeÚDictÚIteratorÚListÚLiteralÚOptionalÚSequenceÚSetÚTupleÚTypeÚUnionÚcasté   )ÚhdrsÚhelpers)ÚAbstractResolverÚResolveResult)ÚClientConnectionErrorÚClientConnectorCertificateErrorÚClientConnectorDNSErrorÚClientConnectorErrorÚClientConnectorSSLErrorÚClientHttpProxyErrorÚClientProxyConnectionErrorÚServerFingerprintMismatchÚUnixClientConnectorErrorÚcert_errorsÚ
ssl_errors)ÚResponseHandler)ÚClientRequestÚFingerprintÚ_merge_ssl_params)Úceil_timeoutÚis_ip_addressÚnoopÚsentinelÚset_exceptionÚ
set_result)ÚDefaultResolverÚ ÚhttpÚhttpsÚwsÚwss)é   é   r   )r>   r?   r   )r>   é   é   )ÚBaseConnectorÚTCPConnectorÚUnixConnectorÚNamedPipeConnector)ÚClientTimeout)ÚConnectionKey)ÚTracec                   óH   • \ rS rSrSrS\\   SS4S jrS\4S jrS	S jr	Sr
g)
Ú_DeprecationWaiterée   ©Ú
_awaitableÚ_awaitedÚ	awaitableÚreturnNc                 ó   • Xl         SU l        g ©NFrL   )ÚselfrO   s     Ú`/home/gothic/public_html/Fooocus/fooocus_env/lib64/python3.13/site-packages/aiohttp/connector.pyÚ__init__Ú_DeprecationWaiter.__init__h   s   € Ø#ŒØˆ�ó    c                 óD   • SU l         U R                  R                  5       $ ©NT)rN   rM   Ú	__await__©rS   s    rT   rZ   Ú_DeprecationWaiter.__await__l   s   € ØˆŒØ�‰×(Ñ(Ó*Ð*rW   c                 ó^   • U R                   (       d  [        R                  " S[        5        g g )NzDConnector.close() is a coroutine, please use await connector.close())rN   ÚwarningsÚwarnÚDeprecationWarningr[   s    rT   Ú__del__Ú_DeprecationWaiter.__del__p   s"   € Ø�}�}Ü�MŠMð5ä"õð rW   ©rP   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__r   r   rU   rZ   ra   Ú__static_attributes__© rW   rT   rJ   rJ   e   s/   † Ø*€Ið )¨C¡.ð °Tô ð+˜3ô +÷rW   rJ   c            
       óR  • \ rS rSrSrSSSSS\S\R                  S	S4
S
 jrS	\	4S jr
\4S\S	S4S jjrS	\S   4S jr\S	\R                  4S j5       r\S	\\R&                     4S j5       r\S	\\   4S j5       rS\/ S4   S	S4S jrSS jrSS jrSS jr\S	\4S j5       rSrg)Ú
Connectionéy   NÚ	connectorrB   ÚkeyrG   ÚprotocolÚlooprP   c                 óÌ   • X l         Xl        X@l        X0l        / U l        UR                  5       (       a0  [        R                  " [        R                  " S5      5      U l
        g g )Nr   )Ú_keyÚ
_connectorÚ_loopÚ	_protocolÚ
_callbacksÚ	get_debugÚ	tracebackÚextract_stackÚsysÚ	_getframeÚ_source_traceback)rS   rn   ro   rp   rq   s        rT   rU   ÚConnection.__init__}   sM   € ð Œ	Ø#ŒØŒ
Ø4<ŒØ46ˆŒà�>‰>×ÑÜ%.×%<Ò%<¼S¿]º]È1Ó=MÓ%NˆDÕ"ð rW   c                 ó"   • SU R                    S3$ )NzConnection<Ú>)rs   r[   s    rT   Ú__repr__ÚConnection.__repr__�   s   € Ø˜TŸY™Y˜K qÐ)Ð)rW   Ú	_warningsc                 óv  • U R                   b¬  SU 0nUR                  " SU < 3[        40 UD6  U R                  R	                  5       (       a  g U R
                  R                  U R                  U R                   SS9  U SS.nU R                  b  U R                  US'   U R                  R                  U5        g g )NÚsourcezUnclosed connection T©Úshould_closezUnclosed connection)Úclient_connectionÚmessageÚsource_traceback)
rv   r_   ÚResourceWarningru   Ú	is_closedrt   Ú_releasers   r}   Úcall_exception_handler)rS   rƒ   ÚkwargsÚcontexts       rT   ra   ÚConnection.__del__�   s§   € Ø�>‰>Ñ%Ø Ð%ˆFØ�NŠNÐ1°$±Ð:¼OÑVÈvÒVØ�z‰z×#Ñ#×%Ñ%Øà�O‰O×$Ñ$ T§Y¡Y°·±ÈTÐ$ÑRà,0Ð=RÑSˆGØ×%Ñ%Ñ1Ø.2×.DÑ.D�Ð*Ñ+Ø�J‰J×-Ñ-¨gÕ6ð &rW   Tc                 ó   • g)z9Force subclasses to not be falsy, to make checks simpler.Trj   r[   s    rT   Ú__bool__ÚConnection.__bool__ž   s   € àrW   c                 óN   • [         R                  " S[        SS9  U R                  $ )Nz%connector.loop property is deprecatedé   ©Ú
stacklevel)r^   r_   r`   ru   r[   s    rT   rq   ÚConnection.loop¢   s#   € ä�ŠØ3Ô5GÐTUò	
ð �z‰zÐrW   c                 óJ   • U R                   c  g U R                   R                  $ ©N)rv   Ú	transportr[   s    rT   rœ   ÚConnection.transport©   s   € à�>‰>Ñ!ØØ�~‰~×'Ñ'Ð'rW   c                 ó   • U R                   $ r›   )rv   r[   s    rT   rp   ÚConnection.protocol¯   s   € à�~‰~ÐrW   Úcallbackc                 óB   • Ub  U R                   R                  U5        g g r›   )rw   Úappend)rS   r    s     rT   Úadd_callbackÚConnection.add_callback³   s   € ØÑØ�O‰O×"Ñ" 8Õ,ð  rW   c                 ó¤   • U R                   S S  / sol         U H"  n[        [        5         U" 5         S S S 5        M$     g ! , (       d  f       M6  = fr›   )rw   r   Ú	Exception)rS   Ú	callbacksÚcbs      rT   Ú_notify_releaseÚConnection._notify_release·   s=   € Ø%)§_¡_±QÐ%7¸Ð"ˆ	”?ãˆBÜœ)Õ$Ù”÷ %Ñ$ò ß$Ö$ús   «A Á 
A	c                 ó¬   • U R                  5         U R                  b7  U R                  R                  U R                  U R                  SS9  S U l        g g )NTr†   ©r©   rv   rt   r�   rs   r[   s    rT   ÚcloseÚConnection.close¾   sE   € Ø×ÑÔà�>‰>Ñ%Ø�O‰O×$Ñ$ T§Y¡Y°·±ÈTÐ$ÑRØ!ˆD�Nð &rW   c                 ó®   • U R                  5         U R                  b8  U R                  R                  U R                  U R                  5        S U l        g g r›   r¬   r[   s    rT   ÚreleaseÚConnection.releaseÅ   s@   € Ø×ÑÔà�>‰>Ñ%Ø�O‰O×$Ñ$ T§Y¡Y°·±Ô?Ø!ˆD�Nð &rW   c                 ój   • U R                   S L =(       d    U R                   R                  5       (       + $ r›   )rv   Úis_connectedr[   s    rT   ÚclosedÚConnection.closedÌ   s&   € à�~‰~ Ð%×J¨T¯^©^×-HÑ-HÓ-JÔ)JÐJrW   )rw   rt   rs   ru   rv   r}   rc   )rd   re   rf   rg   r}   r.   ÚasyncioÚAbstractEventLooprU   Ústrr�   r^   r   ra   r   r“   Úpropertyrq   r   Ú	Transportrœ   rp   r   r£   r©   r­   r°   Úboolr´   ri   rj   rW   rT   rl   rl   y   s-  † àÐðOà"ðOð ðOð "ð	Oð
 ×'Ñ'ðOð 
ôOð *˜#ô *ð (0ñ 7 ð 7°Dõ 7ð˜' $™-ô ð ð�g×/Ñ/ó ó ðð ð(˜8 G×$5Ñ$5Ñ6ó (ó ð(ð
 ð˜( ?Ñ3ó ó ðð- X¨b°$¨hÑ%7ð -¸Dô -ôô"ô"ð ðK˜ó Kó óKrW   rl   c                   ó&   • \ rS rSrSrSrSS jrSrg)Ú_TransportPlaceholderéÑ   z.placeholder for BaseConnector.connect functionrj   Nc                 ó   • g)z Close the placeholder transport.Nrj   r[   s    rT   r­   Ú_TransportPlaceholder.closeÖ   s   � rW   rc   )rd   re   rf   rg   Ú__doc__rh   r­   ri   rj   rW   rT   r½   r½   Ñ   s   † Ù8à€I÷/rW   r½   c                   ój  • \ rS rSrSrSrSrSr\r	\
SSSSSS	S
.S\\S\4   S\S\S\S\S\\R$                     S\SS4S jjr\4S\SS4S jjrS:S jrS\SS4S jrS:S jr   S;S\\\      S\\   S\\   SS4S jjr\S\4S j5       r\S\4S j5       r \S\4S  j5       r!S<S! jr"S<S" jr#S\$S   4S# jr%S<S$ jr&\S\4S% j5       r'S&S'S\4S( jr(S)\)S*\*S+   S,S-S\+4S. jr,S&S'S*\*S+   SS4S/ jr-S&S'S*\*S+   S\\+   4S0 jr.S<S1 jr/S&S'S2\0SS4S3 jr1SS4.S&S'S5\0S6\SS4S7 jjr2S)\)S*\*S+   S,S-S\04S8 jr3S9r4g)=rB   éÚ   a0  Base connector class.

keepalive_timeout - (optional) Keep-alive timeout.
force_close - Set to True to force close and do reconnect
    after each request (and between redirects).
limit - The total number of simultaneous connections.
limit_per_host - Number of simultaneous connections to one host.
enable_cleanup_closed - Enables clean-up closed ssl transports.
                        Disabled by default.
timeout_ceil_threshold - Trigger ceiling of timeout values when
                         it's above timeout_ceil_threshold.
loop - Optional event loop.
TNg       @Féd   r   é   ©Úkeepalive_timeoutÚforce_closeÚlimitÚlimit_per_hostÚenable_cleanup_closedrq   Útimeout_ceil_thresholdrÇ   rÈ   rÉ   rÊ   rË   rq   rÌ   rP   c                óB  • U(       a  Ub  U[         La  [        S5      eOU[         L a  SnU=(       d    [        R                  " 5       nXpl        SU l        UR                  5       (       a/  [        R                  " [        R                  " S5      5      U l        [        [        5      U l        X0l        X@l        [#        5       U l        [        ["        5      U l        [)        [*        U5      U l        X l        [        [0        5      U l        X`l        [6        R8                  " [:        US9U l        S U l        S U l         U(       a8  [B        (       d-  [D        RF                  " S[        RH                   3[J        SS9  SnU(       + U l&        / U l'        U RQ                  5         g )	Nz6keepalive_timeout cannot be set if force_close is Trueg      .@Fr   ©rq   zoenable_cleanup_closed ignored because https://github.com/python/cpython/pull/118960 is fixed in Python version r–   r—   ))r5   Ú
ValueErrorr¶   Úget_running_loopÚ_timeout_ceil_thresholdÚ_closedrx   ry   rz   r{   r|   r}   r   r   Ú_connsÚ_limitÚ_limit_per_hostÚsetÚ	_acquiredÚ_acquired_per_hostr   ÚfloatÚ_keepalive_timeoutÚ_force_closer   Ú_waitersru   Ú	functoolsÚpartialr.   Ú_factoryÚ_cleanup_handleÚ_cleanup_closed_handleÚNEEDS_CLEANUP_CLOSEDr^   r_   Úversion_infor`   Ú_cleanup_closed_disabledÚ_cleanup_closed_transportsÚ_cleanup_closed)rS   rÇ   rÈ   rÉ   rÊ   rË   rq   rÌ   s           rT   rU   ÚBaseConnector.__init__ñ   sk  € ö Ø Ñ,Ð1BÌ(Ò1RÜ ØLóð øð !¤HÒ,Ø$(Ð!à×1”w×/Ò/Ó1ˆØ'=Ô$àˆŒØ�>‰>×ÑÜ%.×%<Ò%<¼S¿]º]È1Ó=MÓ%NˆDÔ"ô œÓð 	Œð ŒØ-ÔÜ/2«uˆŒäœÓð 	Ôô #'¤uÐ.?Ó"@ˆÔØ'Ôô œÓ$ð 	Œð Œ
Ü!×)Ò)¬/ÀÑEˆŒð ?CˆÔð FJˆÔ#æ ×)=Ò)=Ü�MŠMð%ä%(×%5Ñ%5Ð$6ð8ô #Øòð %*Ð!à,AÔ(AˆÔ%ØMOˆÔ'Ø×ÑÕrW   rƒ   c                 ó–  • U R                   (       a  g U R                  (       d  g U R                  R                  5        Vs/ s H  n[        U5      PM     nnU R	                  5         SU 0nUR
                  " SU < 3[        40 UD6  U USS.nU R                  b  U R                  US'   U R                  R                  U5        g s  snf )Nr…   zUnclosed connector zUnclosed connector)rn   Úconnectionsr‰   rŠ   )
rÒ   rÓ   ÚvaluesÚreprÚ_closer_   r‹   r}   ru   rŽ   )rS   rƒ   ÚcÚconnsr�   r�   s         rT   ra   ÚBaseConnector.__del__:  s±   € Ø�<�<ØØ�{�{Øà"&§+¡+×"4Ñ"4Ô"6Ó7Ò"6˜Q”�a–Ñ"6ˆÐ7à�‰Œà˜DÐ!ˆØ�ŠÐ,¨T©HÐ5´ÑQÈ&ÒQàØ Ø+ñ
ˆð
 ×!Ñ!Ñ-Ø*.×*@Ñ*@ˆGÐ&Ñ'Ø�
‰
×)Ñ)¨'Õ2ùò 8s   ÁCc                 ó<   • [         R                  " S[        5        U $ )NzH"with Connector():" is deprecated, use "async with Connector():" instead)r^   r_   r`   r[   s    rT   Ú	__enter__ÚBaseConnector.__enter__O  s   € Ü�Šð4äô	
ð
 ˆrW   Úexcc                 ó$   • U R                  5         g r›   )rì   )rS   ró   s     rT   Ú__exit__ÚBaseConnector.__exit__W  s   € Ø�‰�rW   c              ƒ   ó   #   • U $ 7fr›   rj   r[   s    rT   Ú
__aenter__ÚBaseConnector.__aenter__Z  s
   é € Øˆùs   ‚Úexc_typeÚ	exc_valueÚexc_tracebackc              ƒ   ó@   #   • U R                  5       I S h  v•N   g  N7fr›   )r­   )rS   rú   rû   rü   s       rT   Ú	__aexit__ÚBaseConnector.__aexit__]  s   é € ð �j‰j‹l×Óùs   ‚–—c                 ó   • U R                   $ )z1Ultimately close connection on releasing if True.)rÛ   r[   s    rT   rÈ   ÚBaseConnector.force_closee  s   € ð × Ñ Ð rW   c                 ó   • U R                   $ )zyThe total number for simultaneous connections.

If limit is 0 the connector has no limit.
The default limit size is 100.
)rÔ   r[   s    rT   rÉ   ÚBaseConnector.limitj  s   € ð �{‰{ÐrW   c                 ó   • U R                   $ )z‰The limit for simultaneous connections to the same endpoint.

Endpoints are the same if they are have equal
(host, port, is_ssl) triple.
)rÕ   r[   s    rT   rÊ   ÚBaseConnector.limit_per_hosts  s   € ð ×#Ñ#Ð#rW   c                 ó  • U R                   (       a!  U R                   R                  5         SU l         [        5       nU R                  nU R                  (       aì  [        [        5      nX-
  nU R                  R                  5        Hµ  u  pV[        5       nU H“  u  p‰UR                  5       (       a  X”-
  S:¼  a  UR                  X‰45        M6  UR                  n
UR                  5         U R                  (       a  Me  UR                  (       d  Mx  U R                  R                  U
5        M•     U(       d  M±  XsU'   M·     X0l        U R                  (       a2  [        R                   " U SUU R"                  U R$                  S9U l         gg)zCleanup unused transports.Nr   Ú_cleanup©rÌ   )rà   Úcancelr   rÚ   rÓ   r   r   Úitemsr³   r¢   rœ   r­   rä   Úis_sslrå   r    Úweakref_handleru   rÑ   )rS   ÚnowÚtimeoutré   Údeadlinero   rî   ÚaliveÚprotoÚuse_timerœ   s              rT   r  ÚBaseConnector._cleanup|  s0  € à××Ø× Ñ ×'Ñ'Ô)ð $(ˆDÔ ä‹kˆØ×)Ñ)ˆà�;�;Ü%¤eÓ,ˆKØ‘}ˆHØ"Ÿk™k×/Ñ/Ö1‘
�Ü>C»g�Û',‘O�EØ×)Ñ)×+Ñ+°Ñ0CÀqÓ0HØŸ™ eÐ%6Ô7Ù Ø %§¡�IØ—K‘K”MØ×8×8Ñ8¸S¿Z¿Z¹ZØ×7Ñ7×>Ñ>¸yÖIñ (-÷ �5Ø', Ó$ñ 2ð &ŒKà�;�;Ü#*×#9Ò#9ØØØØ—
‘
Ø'+×'CÑ'Cñ$ˆDÕ ð rW   c                 óR  • U R                   (       a  U R                   R                  5         U R                   H  nUc  M  UR                  5         M     / U l        U R                  (       d<  [
        R                  " U SU R                  U R                  U R                  S9U l         gg)znDouble confirmation for transport close.

Some broken ssl servers may leave socket open without proper close.
Nræ   r  )
rá   r	  rå   Úaborträ   r    r  Ú_cleanup_closed_periodru   rÑ   )rS   rœ   s     rT   ræ   ÚBaseConnector._cleanup_closed£  s‰   € ð
 ×&×&Ø×'Ñ'×.Ñ.Ô0à×8Ô8ˆIØÓ$Ø—‘Ö!ñ 9ð +-ˆÔ'à×,×,Ü*1×*@Ò*@ØØ!Ø×+Ñ+Ø—
‘
Ø'+×'CÑ'Cñ+ˆDÕ'ð -rW   c                 óH   • U R                  5         [        [        5       5      $ )zClose all opened transports.)rì   rJ   r4   r[   s    rT   r­   ÚBaseConnector.closeº  s   € à�‰ŒÜ!¤$£&Ó)Ð)rW   c                 ó^  • U R                   (       a  g SU l          U R                  R                  5       (       a²   U R                  R	                  5         U R
                  R	                  5         U R                  R                  5        H  nU H  nUR                  5         M     M     U R                  R	                  5         S U l	        U R                  R	                  5         S U l        g U R                  (       a  U R                  R                  5         U R                  (       a  U R                  R                  5         U R                  R                  5        H  nU H  u  pEUR                  5         M     M      U R
                   H  nUR                  5         M     U R                   H  nUc  M  UR                  5         M     U R                  R	                  5         U R
                  R	                  5         U R                  R                  5        H  nU H  nUR                  5         M     M     U R                  R	                  5         S U l	        U R                  R	                  5         S U l        g ! U R                  R	                  5         U R
                  R	                  5         U R                  R                  5        H  nU H  nUR                  5         M     M     U R                  R	                  5         S U l	        U R                  R	                  5         S U l        f = frY   )rÒ   ru   rŒ   rÓ   Úclearr×   rÜ   rê   r	  rà   rå   rá   r­   r  )rS   Úkeyed_waitersÚkeyed_waiterÚdatar  Út0rœ   s          rT   rì   ÚBaseConnector._close¿  sZ  € Ø�<�<ØàˆŒð 	/Ø�z‰z×#Ñ#×%Ñ%Øð, �K‰K×ÑÔØ�N‰N× Ñ Ô"Ø!%§¡×!5Ñ!5Ö!7�Û$1�LØ ×'Ñ'Ö)ó %2ñ "8ð �M‰M×ÑÔ!Ø#'ˆDÔ Ø×+Ñ+×1Ñ1Ô3Ø*.ˆDÕ'ð7 ×#×#Ø×$Ñ$×+Ñ+Ô-ð ×*×*Ø×+Ñ+×2Ñ2Ô4àŸ™×*Ñ*Ö,�Û!%‘I�EØ—K‘K–Mó "&ñ -ð Ÿœ�Ø—‘–ñ (ð "×<Ô<�	ØÓ(Ø—O‘OÖ%ñ =ð
 �K‰K×ÑÔØ�N‰N× Ñ Ô"Ø!%§¡×!5Ñ!5Ö!7�Û$1�LØ ×'Ñ'Ö)ó %2ñ "8ð �M‰M×ÑÔ!Ø#'ˆDÔ Ø×+Ñ+×1Ñ1Ô3Ø*.ˆDÕ'øð �K‰K×ÑÔØ�N‰N× Ñ Ô"Ø!%§¡×!5Ñ!5Ö!7�Û$1�LØ ×'Ñ'Ö)ó %2ñ "8ð �M‰M×ÑÔ!Ø#'ˆDÔ Ø×+Ñ+×1Ñ1Ô3Ø*.ˆDÕ'ús   ›I: Ã,CI: Æ5I: É:B2L,c                 ó   • U R                   $ )z+Is connector closed.

A readonly property.
)rÒ   r[   s    rT   r´   ÚBaseConnector.closedç  s   € ð �|‰|ÐrW   ro   rG   c                 ó  • SnU R                   (       a*  U R                   [        U R                  5      -
  =nS::  a  U$ U R                  =n(       a7  U R                  R                  U5      =n(       a  U[        U5      -  nX#:”  a  U$ U$ )z½
Return number of available connections.

The limit, limit_per_host and the connection key are taken into account.

If it returns less than 1 means that there are no connections
available.
r   r   )rÔ   Úlenr×   rÕ   rØ   Úget)rS   ro   Útotal_remainÚhost_remainÚacquireds        rT   Ú_available_connectionsÚ$BaseConnector._available_connectionsï  s„   € ð ˆà�;�;¨D¯K©K¼#¸d¿n¹nÓ:MÑ,MÐM˜LÐRSÓSØÐð ×.Ñ.Ð.ˆ;Õ.Ø×2Ñ2×6Ñ6°sÓ;Ð;ˆxÕ;Øœs 8›}Ñ,�ØÓ)Ø"Ð"àÐrW   ÚreqÚtracesrH   r  rF   c              ƒ   ó@  #   • UR                   nU R                  XB5      I Sh  v•N =nb  U$ [        UR                  UR                  5       ISh  v•N   U R                  U5      S::  aH  U R                  XB5      I Sh  v•N   U R                  XB5      I Sh  v•N =nb  UsSSS5      ISh  v•N   $ [        [        [        5       5      nU R                  R                  U5        U R                  (       a  U R                  U   R                  U5         U(       a!  U H  nUR                  5       I Sh  v•N   M     U R                  XU5      I Sh  v•N nU(       a!  U H  nUR!                  5       I Sh  v•N   M     U R"                  (       a  UR%                  5         ['        S5      e SSS5      ISh  v•N   U R                  R-                  W5        U R                  R                  W5        U R                  (       a1  U R                  U   n	U	R-                  U5        U	R                  U5        [/        XX€R0                  5      $  GN( GNý GNÒ GN¼ GNª GN% GN
 Nè! [(         a    U R+                  XF5        e f = f NÉ! , ISh  v•N  (       d  f       NÞ= f7f)z'Get from pool or create new connection.Nr   zConnector is closed.)Úconnection_keyÚ_getr2   ÚconnectÚceil_thresholdr)  Ú_wait_for_available_connectionr   r.   r½   r×   ÚaddrÕ   rØ   Úsend_connection_create_startÚ_create_connectionÚsend_connection_create_endrÒ   r­   r#   ÚBaseExceptionÚ_release_acquiredÚremoverl   ru   )
rS   r+  r,  r  ro   ÚconnÚplaceholderÚtracer  Úacquired_per_hosts
             rT   r0  ÚBaseConnector.connect  s%  é € ð × Ñ ˆØŸ)™) CÓ0×0Ð0ˆDÑ=ð ˆKä §¡°×1GÑ1G×HÕHØ×*Ñ*¨3Ó/°1Ó4Ø×9Ñ9¸#ÓF×FÐFØ"&§)¡)¨CÓ"8×8Ð8�DÑEØ÷	 I×HÑHô œÔ0EÓ0GÓHˆKØ�N‰N×Ñ˜{Ô+Ø×#×#Ø×'Ñ'¨Ñ,×0Ñ0°Ô=ðHö Û!'˜Ø#×@Ñ@ÓB×BÒBñ "(à"×5Ñ5°cÀ7ÓK×K�ÞÛ!'˜Ø#×>Ñ>Ó@×@Ò@ñ "(ð —<—<Ø—K‘K”MÜ/Ð0FÓGÐGð  ÷5 I×HðF 	�‰×Ñ˜kÔ*Ø�‰×Ñ˜5Ô!Ø××Ø $× 7Ñ 7¸Ñ <ÐØ×$Ñ$ [Ô1Ø×!Ñ! %Ô(Ü˜$ U¯J©JÓ7Ð7ò] 1ò
 IâFÚ8ò Iò" CÚKñ AøÜ ó Ø×&Ñ& sÔ8Øðú÷- I×H×HÐHüsé   ‚!J£I¤-JÁIÁJÁ*JÁ?IÂ JÂIÂJÂ!JÂ-IÂ.JÂ3A"JÄI"Ä5IÄ6I"ÅIÅ#I"Å7I Å8I"Æ -JÆ-JÆ8JÆ9BJÉJÉJÉJÉJÉI"ÉI"É I"É"I?É?JÊJÊJÊ
JÊJÊJc              ƒ   ó   #   • Sn U R                   R                  5       nU R                  U   nSXT'   U(       a  UR                  USS9   U(       a!  U H  nUR	                  5       I Sh  v•N   M     UI Sh  v•N   U(       a!  U H  nUR                  5       I Sh  v•N   M     UR                  US5        U R                  R                  US5      (       d  U R                  U	 U R                  U5      S:”  a  gUS-  nMü   N— N‹ Ni! UR                  US5        U R                  R                  US5      (       d  U R                  U	 f f = f7f)z&Wait for an available connection slot.r   TNF©Úlastr   )	ru   Úcreate_futurerÜ   Úmove_to_endÚsend_connection_queued_startÚsend_connection_queued_endÚpopr%  r)  )rS   ro   r,  ÚattemptsÚfutr  r<  s          rT   r2  Ú,BaseConnector._wait_for_available_connection=  s>  é € ð ˆØØ(,¯
©
×(@Ñ(@Ó(BˆCØ ŸM™M¨#Ñ.ˆMØ!%ˆMÑÞð ×)Ñ)¨#°EÐ)Ñ:ð+ö Û!'˜Ø#×@Ñ@ÓB×BÒBñ "(à—	�	ÞÛ!'˜Ø#×>Ñ>Ó@×@Ò@ñ "(ð
 ×!Ñ! # tÔ,Ø—}‘}×(Ñ(¨¨d×3Ñ3ØŸ™ cÐ*à×*Ñ*¨3Ó/°!Ó3ØØ˜‰MˆHñ; ñ CÙñ Aøð ×!Ñ! # tÔ,Ø—}‘}×(Ñ(¨¨d×3Ñ3ØŸ™ cÑ*ð 4üsV   ‚AEÁD Á*DÁ+D Á8DÁ9#D ÂDÂD Â%AEÄD ÄD ÄD ÄAEÅEc              ƒ   ó>  #   • U R                   R                  U5      =nc  g[        5       nU(       Ga9  UR                  5       u  pVUR	                  5       (       a¯  XF-
  U R
                  ::  a�  U(       d  U R                   U	 U R                  R                  U5        U R                  (       a  U R                  U   R                  U5        U(       a"  U H  n UR                  5       I Sh  v•N   M     [        XXPR                  5      $ UR                  nUR!                  5         U R"                  (       d,  UR$                  (       a  U R&                  R)                  U5        U(       a  GM9  U R                   U	 g N�! [         a    U R                  X5        e f = f7f)z^Get next reusable connection for the key or None.

The connection will be marked as acquired.
N)rÓ   r%  r   Úpopleftr³   rÚ   r×   r3  rÕ   rØ   Úsend_connection_reuseconnr7  r8  rl   ru   rœ   r­   rä   r  rå   r¢   )	rS   ro   r,  rî   Út1r  r  r<  rœ   s	            rT   r/  ÚBaseConnector._getg  sG  é € ð —[‘[—_‘_ SÓ)Ð)ˆEÑ2Øä‹[ˆßØŸ™›‰IˆEð ×!Ñ!×#Ñ#¨©°4×3JÑ3JÓ(JÞàŸ™ CÐ(Ø—‘×"Ñ" 5Ô)Ø×'×'Ø×+Ñ+¨CÑ0×4Ñ4°UÔ;ÞÛ!'˜ð"Ø"'×"AÑ"AÓ"C×CÒCñ "(ô " $¨U·J±JÓ?Ð?ð Ÿ™ˆIØ�K‰KŒMà×0×0°S·Z·ZØ×/Ñ/×6Ñ6°yÔA÷3 ‰eð8 �K‰K˜ÐØñ DøÜ,ó "Ø ×2Ñ2°3Ô>Ø!ð"üs7   ‚CFÃE=Ã+E;Ã,E=Ã0A:FÅ-FÅ;E=Å=FÆFc                 ór  • U R                   (       d  g[        U R                   5      n[        R                  " U5        U Ht  nU R	                  U5      S:  a  M  U R                   U   nU(       d  M2  UR                  SS9u  pEUR                  5       (       d  UR                  S5          gU(       a  MB  Mv     g)zœ
Iterates over all waiters until one to be released is found.

The one to be released is not finished and
belongs to a host that has available connections.
Nr   Fr@  )rÜ   ÚlistÚrandomÚshuffler)  ÚpopitemÚdoner7   )rS   Úqueuesro   ÚwaitersÚwaiterÚ_s         rT   Ú_release_waiterÚBaseConnector._release_waiter‘  s’   € ð �}�}Øô �d—m‘mÓ$ˆÜ�Š�vÔãˆCØ×*Ñ*¨3Ó/°!Ó3Ùà—m‘m CÑ(ˆGß�'Ø#ŸO™O°˜OÐ7‘	�Ø—{‘{—}‘}Ø×%Ñ% dÔ+Ù÷	 ’'ò rW   r  c                 ó.  • U R                   (       a  gU R                  R                  U5        U R                  (       aG  U R                  R                  U5      =n(       a%  UR                  U5        U(       d  U R                  U	 U R                  5         g)zRelease acquired connection.N)rÒ   r×   ÚdiscardrÕ   rØ   r%  rY  )rS   ro   r  rî   s       rT   r8  ÚBaseConnector._release_acquired«  sk   € à�<�<àà�‰×Ñ˜uÔ%Ø××¨d×.EÑ.E×.IÑ.IÈ#Ó.NÐ%N UÕ%NØ�M‰M˜%Ô ÞØ×+Ñ+¨CÐ0Ø×ÑÕrW   r†   rp   r‡   c                ó2  • U R                   (       a  g U R                  X5        U R                  (       d  U(       d  UR                  (       aZ  UR                  nUR                  5         UR                  (       a,  U R                  (       d  U R                  R                  U5        g U R                  U   R                  U[        5       45        U R                  c<  [        R                  " U SU R                  U R                   U R"                  S9U l        g g )Nr  r  )rÒ   r8  rÛ   r‡   rœ   r­   r  rä   rå   r¢   rÓ   r   rà   r    r  rÚ   ru   rÑ   )rS   ro   rp   r‡   rœ   s        rT   r�   ÚBaseConnector._release¸  sË   € ð �<�<àà×Ñ˜sÔ-à××¦°×0E×0EØ ×*Ñ*ˆIØ�N‰NÔà�z�z $×"?×"?Ø×/Ñ/×6Ñ6°yÔAØà�‰�CÑ×Ñ ¬9«;Ð 7Ô8à×ÑÑ'Ü#*×#9Ò#9ØØØ×'Ñ'Ø—
‘
Ø'+×'CÑ'Cñ$ˆDÕ ð (rW   c              ƒ   ó   #   • [        5       e7fr›   )ÚNotImplementedError)rS   r+  r,  r  s       rT   r5  Ú BaseConnector._create_connectionØ  s   é € ô "Ó#Ð#ùs   ‚)r×   rØ   rä   rá   rå   rà   rÒ   rÓ   rß   rÛ   rÚ   rÔ   rÕ   ru   r}   rÑ   rÜ   )rP   rB   )NNNrc   )5rd   re   rf   rg   rÁ   rÒ   r}   r  ÚHIGH_LEVEL_SCHEMA_SETÚallowed_protocol_schema_setr5   r   ÚobjectrÙ   r»   Úintr   r¶   r·   rU   r^   r   ra   rñ   rõ   rø   r   r7  r   rþ   r¹   rÈ   rÉ   rÊ   r  ræ   r   r­   rì   r´   r)  r/   r   rl   r0  r2  r/  rY  r.   r8  r�   r5  ri   rj   rW   rT   rB   rB   Ú   s¼  † ñð €GØÐð !Ðà"7Ðð
 9AØ!ØØØ&+Ø48Ø()òGð ! ¨¨uÐ!4Ñ5ðGð ð	Gð
 ðGð ðGð  $ðGð �w×0Ñ0Ñ1ðGð !&ðGð 
õGðR (0ñ 3 ð 3°Dõ 3ô*ð˜Sð  Tô ôð
 37Ø-1Ø15ñ	à˜4 Ñ.Ñ/ðð ˜MÑ*ðð   Ñ.ð	ð
 
õð ð!˜Tó !ó ð!ð ð�só ó ðð ð$ ó $ó ð$ô%ôNð.*�y ‘ô *ô
&/ðP ð˜ó ó ðð¨/ð ¸cô ð238Ø ð38Ø*.¨w©-ð38ØBQð38à	ô38ðj(Ø"ð(Ø,0°©Mð(à	ô(ðT(Ø"ð(Ø,0°©Mð(à	�*Ñ	ô(ôTð4 _ð ¸_ð ÐQUô ð$ #òàðð "ðð
 ðð 
õð@$Ø ð$Ø*.¨w©-ð$ØBQð$à	÷$rW   rB   c                   óÌ   • \ rS rSrSS\\   SS4S jjrS\S\4S jr	S\
\\4   S	\\   SS4S
 jrS\
\\4   SS4S jrSS jrS\
\\4   S\\   4S jrS\
\\4   S\4S jrSrg)Ú_DNSCacheTableiÞ  NÚttlrP   c                 ó,   • 0 U l         0 U l        Xl        g r›   ©Ú	_addrs_rrÚ_timestampsÚ_ttl)rS   ri  s     rT   rU   Ú_DNSCacheTable.__init__ß  s   € ØUWˆŒØ9;ˆÔØ�	rW   Úhostc                 ó   • XR                   ;   $ r›   )rl  )rS   rp  s     rT   Ú__contains__Ú_DNSCacheTable.__contains__ä  s   € Ø—~‘~Ñ%Ð%rW   ro   Úaddrsc                 ó”   • [        U5      [        U5      4U R                  U'   U R                  b  [	        5       U R
                  U'   g g r›   )r	   r$  rl  rn  r   rm  )rS   ro   rt  s      rT   r3  Ú_DNSCacheTable.addç  s>   € Ü$ U›|¬S°«ZÐ8ˆ�‰�sÑà�9‰9Ñ Ü$-£KˆD×Ñ˜SÒ!ð !rW   c                 ó�   • U R                   R                  US 5        U R                  b  U R                  R                  US 5        g g r›   )rl  rF  rn  rm  ©rS   ro   s     rT   r9  Ú_DNSCacheTable.removeí  s;   € Ø�‰×Ñ˜3 Ô%à�9‰9Ñ Ø×Ñ× Ñ   dÕ+ð !rW   c                 ól   • U R                   R                  5         U R                  R                  5         g r›   )rl  r  rm  r[   s    rT   r  Ú_DNSCacheTable.clearó  s$   € Ø�‰×ÑÔØ×Ñ×ÑÕ rW   c                 óf   • U R                   U   u  p#[        [        X#5      5      n[        U5        U$ r›   )rl  rP  r
   Únext)rS   ro   rq   Úlengthrt  s        rT   Ú
next_addrsÚ_DNSCacheTable.next_addrs÷  s-   € Ø—~‘~ cÑ*‰ˆÜ”V˜DÓ)Ó*ˆäˆTŒ
ØˆrW   c                 ól   • U R                   c  gU R                  U   U R                   -   [        5       :  $ rR   )rn  rm  r   rx  s     rT   ÚexpiredÚ_DNSCacheTable.expiredþ  s0   € Ø�9‰9ÑØà×Ñ Ñ$ t§y¡yÑ0´9³;Ñ>Ð>rW   rk  r›   rc   )rd   re   rf   rg   r   rÙ   rU   re  r»   rr  r   r¸   rf  r   r"   r3  r9  r  r  r‚  ri   rj   rW   rT   rh  rh  Þ  s®   † ñ˜H U™Oð °tõ ð
& ð &¨Dô &ð0�u˜S #˜X‘ð 0¨t°MÑ/Bð 0Àtô 0ð,˜%  S ™/ð ,¨dô ,ô!ð˜e C¨ H™oð °$°}Ñ2Eô ð?˜5  c ™?ð ?¨t÷ ?rW   rh  ÚverifiedrP   c                 óä  • [         c  gU (       a  [         R                  " 5       nO¹[         R                  " [         R                  5      nU=R                  [         R
                  -  sl        U=R                  [         R                  -  sl        SUl        [         R                  Ul	        U=R                  [         R                  -  sl        UR                  5         UR                  S5        U$ )z¡Create SSL context.

This method is not async-friendly and should be called from a thread
because it will load certificates from disk and do other blocking I/O.
NF)zhttp/1.1)ÚsslÚcreate_default_contextÚ
SSLContextÚPROTOCOL_TLS_CLIENTÚoptionsÚOP_NO_SSLv2ÚOP_NO_SSLv3Úcheck_hostnameÚ	CERT_NONEÚverify_modeÚOP_NO_COMPRESSIONÚset_default_verify_pathsÚset_alpn_protocols)r„  Ú
sslcontexts     rT   Ú_make_ssl_contextr”    s¦   € ô �{àÞÜ×/Ò/Ó1‰
ä—^’^¤C×$;Ñ$;Ó<ˆ
Ø×ÒœcŸo™oÑ-ÕØ×ÒœcŸo™oÑ-ÕØ$)ˆ
Ô!Ü!$§¡ˆ
ÔØ×Òœc×3Ñ3Ñ3ÕØ×+Ñ+Ô-Ø×!Ñ! -Ô0ØÐrW   TFc            &       ó¶  ^ • \ rS rSrSr\\" S15      -  rSSSS\R                  R                  SSSS\SSS	SSS
SSS.S\S\\   S\S\\   S\R                  S\\   S\\\\4   S\\\\4      S\\   S\S\\4   S\S\S\S\S\\R2                     S\S\\   S\\   4$U 4S jjjrS \S   4U 4S! jjr\S \4S" j5       r\S \4S# j5       r SGS$\\   S%\\   S S4S& jjr  SHS$\S%\S'\\!S(      S \"\#   4S) jjr$S*\\\4   S$\S%\S+\%S,   S'\\!S(      S \"\#   4S- jr&S.\'S'\"S(   S/S0S \(4S1 jr)S.\'S \\   4S2 jr*S.\'S \S3   4S4 jr+\,S5.S6\-S7\"\.R^                     S.\'S/S0S8\0\1   S9\-S \\Rd                  \(4   4S: jjr3\,S5.S6\-S.\'S/S0S8\0\1   S9\-S \\Rd                  \(4   4S; jjr4SIS< jr5SJS= jr6S \4S> jr7S?\Rd                  S.\'S S4S@ jr8\,4S?\Rd                  S.\'S/S0S8\0\1   S \\Rr                  \(4   4
SA jjr:SB\"\#   S \"\.R^                     4SC jr;\,S5.S.\'S'\"S(   S/S0S8\0\1   S \\Rd                  \(4   4
SD jjr<S.\'S'\"S(   S/S0S \\Rr                  \(4   4SE jr=SFr>U =r?$ )KrC   i$  uÍ  TCP connector.

verify_ssl - Set to True to check ssl certifications.
fingerprint - Pass the binary sha256
    digest of the expected certificate in DER format to verify
    that the certificate the server presents matches. See also
    https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning
resolver - Enable DNS lookups and use this
    resolver
use_dns_cache - Use memory cache for DNS lookups.
ttl_dns_cache - Max seconds having cached a DNS entry, None forever.
family - socket address family
local_addr - local tuple of (host, port) to bind socket to

keepalive_timeout - (optional) Keep-alive timeout.
force_close - Set to True to force close and do reconnect
    after each request (and between redirects).
limit - The total number of simultaneous connections.
limit_per_host - Number of simultaneous connections to one host.
enable_cleanup_closed - Enables clean-up closed ssl transports.
                        Disabled by default.
happy_eyeballs_delay - This is the â€œConnection Attempt Delayâ€�
                       as defined in RFC 8305. To disable
                       the happy eyeballs algorithm, set to None.
interleave - â€œFirst Address Family Countâ€� as defined in RFC 8305
loop - Optional event loop.
ÚtcpTNé
   FrÄ   r   rÅ   g      Ð?)Ú
verify_sslÚfingerprintÚuse_dns_cacheÚttl_dns_cacheÚfamilyÚssl_contextr†  Ú
local_addrÚresolverrÇ   rÈ   rÉ   rÊ   rË   rq   rÌ   Úhappy_eyeballs_delayÚ
interleaver˜  r™  rš  r›  rœ  r�  r†  rž  rŸ  rÇ   rÈ   rÉ   rÊ   rË   rq   rÌ   r   r¡  c          
      ó8  >• [         TU ]  U
UUUUUUS9  [        XqXb5      U l        U	c  [	        U R
                  S9n	X�l        X0l        [        US9U l	        0 U l
        XPl        [        R                  " U5      U l        UU l        UU l        [#        5       U l        g )NrÆ   rÎ   )ri  )ÚsuperrU   r1   Ú_sslr8   ru   Ú	_resolverÚ_use_dns_cacherh  Ú_cached_hostsÚ_throttle_dns_futuresÚ_familyÚaiohappyeyeballsÚaddr_to_addr_infosÚ_local_addr_infosÚ_happy_eyeballs_delayÚ_interleaverÖ   Ú_resolve_host_tasks)rS   r˜  r™  rš  r›  rœ  r�  r†  rž  rŸ  rÇ   rÈ   rÉ   rÊ   rË   rq   rÌ   r   r¡  Ú	__class__s                      €rT   rU   ÚTCPConnector.__init__C  s©   ø€ ô, 	‰ÑØ/Ø#ØØ)Ø"7ØØ#9ð 	ñ 	
ô & c°{ÓPˆŒ	ØÑÜ&¨D¯J©JÑ7ˆHØ!Œà+ÔÜ+°Ñ>ˆÔð ð 	Ô"ð ŒÜ!1×!DÒ!DÀZÓ!PˆÔØ%9ˆÔ"Ø%ˆÔÜMPËUˆÕ rW   rP   c                 óð   >• [         R                  " U R                  R                  5       5       H  nUR	                  5         M     U R
                   H  nUR	                  5         M     [        TU ]  5       $ )zClose all ongoing DNS calls.)r   Úfrom_iterabler¨  rê   r	  r¯  r£  r­   )rS   rH  Útr°  s      €rT   r­   ÚTCPConnector.closes  sZ   ø€ ä×&Ò& t×'AÑ'A×'HÑ'HÓ'JÖKˆCØ�J‰JŽLñ Lð ×)Ô)ˆAØ�H‰HŽJñ *ô ‰w‰}‹ÐrW   c                 ó   • U R                   $ )zSocket family like AF_INET.)r©  r[   s    rT   rœ  ÚTCPConnector.family}  s   € ð �|‰|ÐrW   c                 ó   • U R                   $ )z%True if local DNS caching is enabled.)r¦  r[   s    rT   rš  ÚTCPConnector.use_dns_cache‚  s   € ð ×"Ñ"Ð"rW   rp  Úportc                 ó    • Ub   Ub  U R                   R                  X45        gUc  Ub  [        S5      eU R                   R                  5         g)z8Remove specified host/port or clear all dns local cache.Nz5either both host and port or none of them are allowed)r§  r9  rÏ   r  )rS   rp  rº  s      rT   Úclear_dns_cacheÚTCPConnector.clear_dns_cache‡  sN   € ð Ñ Ñ 0Ø×Ñ×%Ñ% t lÕ3ØÑ Ñ!1ÜÐTÓUÐUà×Ñ×$Ñ$Õ&rW   r,  rH   c              ƒ   óH  #   • [        U5      (       a  UUUU R                  SSS./$ U R                  (       d€  U(       a"  U H  nUR                  U5      I Sh  v•N   M     U R                  R                  XU R                  S9I Sh  v•N nU(       a"  U H  nUR                  U5      I Sh  v•N   M     U$ X4nX`R                  ;   af  U R                  R                  U5      (       dF  U R                  R                  U5      nU(       a"  U H  nUR                  U5      I Sh  v•N   M     U$ X`R                  ;   aš  U R                  U   nU R                  R                  5       n	UR                  U	5        U(       a"  U H  nUR                  U5      I Sh  v•N   M      U	I Sh  v•N   UR                  U	5        U R                  R                  U5      $ [!        5       =U R                  U'   nU R#                  XaX(U5      n
[$        R&                  " 5       n[(        R*                  S:¼  a  [$        R,                  " X«SS9nOUR/                  U
5      nUR1                  5       (       d@  U R2                  R                  U5        UR5                  U R2                  R                  5         [$        R6                  " U5      I Sh  v•N $  GNq GND GN" GN­ GN< GN0! UR                  U	5        f = f N,! [$        R8                   a    S	S jnUR5                  U5        e f = f7f)
z*Resolve host and return list of addresses.r   )Úhostnamerp  rº  rœ  r  ÚflagsN©rœ  )r>   r@   T)rq   Úeager_startc                 ó”   • [        [        [        R                  5         U R	                  5         S S S 5        g ! , (       d  f       g = fr›   )r   r¦   r¶   ÚCancelledErrorÚresult)rH  s    rT   Údrop_exceptionÚ2TCPConnector._resolve_host.<locals>.drop_exceptionæ  s(   € Üœi¬×)?Ñ)?Õ@Ø—J‘J”L÷ A×@Ö@ús	   Ÿ9¹
A)rH  z#asyncio.Future[List[ResolveResult]]rP   N)r3   r©  r¦  Úsend_dns_resolvehost_startr¥  ÚresolveÚsend_dns_resolvehost_endr§  r‚  r  Úsend_dns_cache_hitr¨  ru   rB  r3  r\  rÖ   Ú_resolve_host_with_throttler¶   rÐ   r{   rã   ÚTaskÚcreate_taskrT  r¯  Úadd_done_callbackÚshieldrÄ  )rS   rp  rº  r,  r<  Úresro   rÅ  ÚfuturesÚfutureÚcororq   Úresolved_host_taskrÆ  s                 rT   Ú_resolve_hostÚTCPConnector._resolve_host’  s¾  é € ô ˜×Ñð !%Ø Ø Ø"Ÿl™lØØñð	ð 	ð ×"×"æÛ#�EØ×:Ñ:¸4Ó@×@Ò@ñ $ð Ÿ™×.Ñ.¨tÀ$Ç,Á,Ð.ÐO×OˆCæÛ#�EØ×8Ñ8¸Ó>×>Ò>ñ $ð ˆJàˆlˆØ×$Ñ$Ó$¨T×-?Ñ-?×-GÑ-GÈ×-LÑ-Là×'Ñ'×2Ñ2°3Ó7ˆFæÛ#�EØ×2Ñ2°4Ó8×8Ò8ñ $àˆMð ×,Ñ,Ó,à×0Ñ0°Ñ5ˆGØ+/¯:©:×+CÑ+CÓ+EˆFØ�K‰K˜ÔÞÛ#�EØ×2Ñ2°4Ó8×8Ò8ñ $ð(Ø—�à—‘ Ô'Ø×%Ñ%×0Ñ0°Ó5Ð5ô 58³EÐ9ˆ×"Ñ" 3Ñ'¨'ð ×/Ñ/°¸4È&ÓQˆÜ×'Ò'Ó)ˆÜ×Ñ˜wÓ&ä!(§¢¨dÈ4Ñ!PÑà!%×!1Ñ!1°$Ó!7Ðà!×&Ñ&×(Ñ(Ø×$Ñ$×(Ñ(Ð);Ô<Ø×0Ñ0°×1IÑ1I×1QÑ1QÔRð		Ü ŸšÐ(:Ó;×;Ð;ò{ AâOò ?ò 9ò" 9âøà—‘ Õ'úñ. <øÜ×%Ñ%ó 	ô!ð ×0Ñ0°Ô@Øð	üs±   ‚AL"ÁK	Á/L"ÂKÂ	$L"Â-KÂ.A7L"Ä%KÄ&A3L"ÆKÆL"Æ#K Æ(KÆ)K Æ-C=L"Ê+K3 ËK1ËK3 ËL"ËL"ËL"ËL"ËL"ËK ËK.Ë.L"Ë1K3 Ë3,LÌL"ro   rÒ  zasyncio.Future[None]c              ƒ   ó¸  #   •  U(       aD  U H  nUR                  U5      I Sh  v•N   M     U H  nUR                  U5      I Sh  v•N   M     U R                  R                  X#U R                  S9I Sh  v•N nU(       a"  U H  nUR                  U5      I Sh  v•N   M     U R                  R                  X5        U H  n[        US5        M      U R                  R                  U5        U R                  R                  U5      $  Næ NÆ N˜ Nu! [         a  n	U H  n[        X‰5        M     e Sn	A	ff = f! U R                  R                  U5        f = f7f)zšResolve host and set result for all waiters.

This method must be run in a task and shielded from cancellation
to avoid cancelling the underlying lookup.
NrÁ  )Úsend_dns_cache_missrÈ  r¥  rÉ  r©  rÊ  r§  r3  r7   r7  r6   r¨  rF  r  )
rS   ro   rp  rº  rÒ  r,  r<  rt  rH  Úes
             rT   rÌ  Ú(TCPConnector._resolve_host_with_throttleí  s7  é € ð	0ÞÛ#�EØ×3Ñ3°DÓ9×9Ò9ñ $ó $�EØ×:Ñ:¸4Ó@×@Ò@ñ $ð Ÿ.™.×0Ñ0°ÀDÇLÁLÐ0ÐQ×QˆEÞÛ#�EØ×8Ñ8¸Ó>×>Ò>ñ $ð ×Ñ×"Ñ" 3Ô.Û�Ü˜3 Ö%ò ð ×&Ñ&×*Ñ*¨3Ô/à×!Ñ!×,Ñ,¨SÓ1Ð1ñ/ :ñ AáQñ ?øô
 ó 	ó �Ü˜cÖ%ñ àûð	ûð ×&Ñ&×*Ñ*¨3Õ/üsz   ‚E„ D ¤D¥!D ÁDÁ/D Á6DÁ7$D ÂDÂ8D Ã6EÄD ÄD ÄD ÄD Ä
D7ÄD2Ä2D7Ä7D: Ä:EÅEr+  r  rF   c              ƒ   ó¬   #   • UR                   (       a  U R                  XU5      I Sh  v•N u  pEU$ U R                  XU5      I Sh  v•N u  pEU$  N& N
7f)zSCreate connection.

Has same keyword arguments as BaseEventLoop.create_connection.
N)ÚproxyÚ_create_proxy_connectionÚ_create_direct_connection)rS   r+  r,  r  rX  r  s         rT   r5  ÚTCPConnector._create_connection  sS   é € ð �9�9Ø!×:Ñ:¸3ÈÓP×P‰HˆAð ˆð "×;Ñ;¸CÈÓQ×Q‰HˆAàˆñ	 QáQùs!   ‚'A©AªAÁAÁ	AÁAc                 ó>  • UR                  5       (       d  g[        c  [        S5      eUR                  n[        U[        R                  5      (       a  U$ USLa  [
        $ U R                  n[        U[        R                  5      (       a  U$ USLa  [
        $ [        $ )aÚ  Logic to get the correct SSL context

0. if req.ssl is false, return None

1. if ssl_context is specified in req, use it
2. if _ssl_context is specified in self, use it
3. otherwise:
    1. if verify_ssl is not specified in req, use self.ssl_context
       (will generate a default context according to self.verify_ssl)
    2. if verify_ssl is True in req, generate a default SSL context
    3. if verify_ssl is False in req, generate a SSL context that
       won't verify
NzSSL is not supported.T)r  r†  ÚRuntimeErrorÚ
isinstancerˆ  Ú_SSL_CONTEXT_UNVERIFIEDr¤  Ú_SSL_CONTEXT_VERIFIED)rS   r+  r“  s      rT   Ú_get_ssl_contextÚTCPConnector._get_ssl_context$  s…   € ð �z‰z�|‰|Øä‰;ÜÐ6Ó7Ð7Ø—W‘Wˆ
Ü�j¤#§.¡.×1Ñ1ØÐØ˜TÒ!ä*Ð*Ø—Y‘Yˆ
Ü�j¤#§.¡.×1Ñ1ØÐØ˜TÒ!ä*Ð*Ü$Ð$rW   r0   c                 ó�   • UR                   n[        U[        5      (       a  U$ U R                  n[        U[        5      (       a  U$ g r›   )r†  rã  r0   r¤  )rS   r+  Úrets      rT   Ú_get_fingerprintÚTCPConnector._get_fingerprintE  s;   € Ø�g‰gˆÜ�cœ;×'Ñ'ØˆJØ�i‰iˆÜ�cœ;×'Ñ'ØˆJØrW   ©Úclient_errorÚargsÚ
addr_infosrí  r�   c          	   �   óÖ  #   •  [        UR                  UR                  S9 IS h  v•N   [        R                  " UU R
                  U R                  U R                  U R                  S9I S h  v•N nU R                  R                  " U0 UDSU0D6I S h  v•N sS S S 5      IS h  v•N   $  N… N? N N! , IS h  v•N  (       d  f       g = f! [         a  n[        UR                  U5      UeS nAf[         a  n[        UR                  U5      UeS nAf[         aF  nUR                   c   [#        U[$        R&                  5      (       a  e U" UR                  U5      UeS nAff = f7f)N©r1  )rï  Úlocal_addr_infosr   r¡  rq   Úsock)r2   Úsock_connectr1  rª  Ústart_connectionr¬  r­  r®  ru   Úcreate_connectionr,   r$   r.  r-   r'   ÚOSErrorÚerrnorã  r¶   ÚTimeoutError)	rS   rï  r+  r  rí  rî  r�   ró  ró   s	            rT   Ú_wrap_create_connectionÚ$TCPConnector._wrap_create_connectionN  s;  é € ð	AÜ#Ø×$Ñ$°W×5KÑ5K÷ó ô .×>Ò>Ø)Ø%)×%;Ñ%;Ø)-×)CÑ)CØ#×/Ñ/ØŸ™ñ÷ �ð "ŸZ™Z×9Ò9¸4ÐUÀ6ÑUÐPTÒU×U÷÷ ó ññ V÷÷ ÷ ð ûô ó 	TÜ1°#×2DÑ2DÀcÓJÐPSÐSûÜó 	LÜ)¨#×*<Ñ*<¸cÓBÈÐKûÜó 	AØ�y‰yÑ ¤Z°´W×5IÑ5I×%JÑ%JØÙ˜s×1Ñ1°3Ó7¸SÐ@ûð	Aüs·   ‚E)„"C ¦B,§C ªAB4Á.B.Á/'B4ÂB0ÂB4ÂC Â&B2Â'C Â+E)Â,C Â.B4Â0B4Â2C Â4CÂ:B=Â;CÃC Ã
E)ÃC Ã
E&ÃC/Ã/E&Ã<DÄE&Ä AE!Å!E&Å&E)c             �   ó:  #   •  [        UR                  UR                  S9 IS h  v•N   U R                  R                  " U0 UD6I S h  v•N sS S S 5      IS h  v•N   $  N9 N N	! , IS h  v•N  (       d  f       g = f! [
         a  n[        UR                  U5      UeS nAf[         a  n[        UR                  U5      UeS nAf[         aF  nUR                  c   [        U[        R                  5      (       a  e U" UR                  U5      UeS nAff = f7f©Nrñ  )r2   rô  r1  ru   rö  r,   r$   r.  r-   r'   r÷  rø  rã  r¶   rù  )rS   r+  r  rí  rî  r�   ró   s          rT   Ú_wrap_existing_connectionÚ&TCPConnector._wrap_existing_connectionl  sô   é € ð	AÜ#Ø×$Ñ$°W×5KÑ5K÷ó ð "ŸZ™Z×9Ò9¸4ÐJÀ6ÑJ×J÷÷ ó ñ K÷÷ ÷ ð ûô ó 	TÜ1°#×2DÑ2DÀcÓJÐPSÐSûÜó 	LÜ)¨#×*<Ñ*<¸cÓBÈÐKûÜó 	AØ�y‰yÑ ¤Z°´W×5IÑ5I×%JÑ%JØÙ˜s×1Ñ1°3Ó7¸SÐ@ûð	Aüs¤   ‚D„"B  ¦A §B  ª A&Á
A"ÁA&ÁB  ÁA$ÁB  ÁDÁ B  Á"A&Á$B  Á&A=Á,A/Á-A=Á9B  Á<DÁ=B  Â 
DÂ
B!Â!DÂ.CÃDÃADÄDÄDc                 ó”   • UR                  5       (       d  gUR                  nUc   eUR                  S:w  a  gU R                  5         g)zÓRaise a :py:exc:`RuntimeError` on missing ``start_tls()``.

It is necessary for TLS-in-TLS so that it is possible to
send HTTPS queries through HTTPS proxies.

This doesn't affect regular HTTP requests, though.
Nr;   )r  rÝ  ÚschemeÚ_check_loop_for_start_tls)rS   r+  Ú	proxy_urls      rT   Ú_fail_on_no_start_tlsÚ"TCPConnector._fail_on_no_start_tls‚  sD   € ð �z‰z�|‰|Øà—I‘Iˆ	ØÑ$Ð$Ð$Ø×Ñ˜wÓ&Øà×&Ñ&Õ(rW   c                 ón   •  U R                   R                    g ! [         a  n[        S5      UeS nAff = f)Na¶  An HTTPS request is being sent through an HTTPS proxy. This needs support for TLS in TLS but it is not implemented in your runtime for the stdlib asyncio.

Please upgrade to Python 3.11 or higher. For more details, please see:
* https://bugs.python.org/issue37179
* https://github.com/python/cpython/pull/28073
* https://docs.aiohttp.org/en/stable/client_advanced.html#proxy-support
* https://github.com/aio-libs/aiohttp/discussions/6044
)ru   Ú	start_tlsÚAttributeErrorrâ  )rS   Úattr_excs     rT   r  Ú&TCPConnector._check_loop_for_start_tls”  s<   € ð	Ø�J‰J× Ó øÜó 	Üð	Kóð ðûð	ús   ‚ ™
4£/¯4c                 óF   •  U R                  5         g! [         a     gf = f)NTF)r  râ  r[   s    rT   Ú_loop_supports_start_tlsÚ%TCPConnector._loop_supports_start_tls¥  s,   € ð	Ø×*Ñ*Ô,ð øô ó 	Ùð	ús   ‚ “
 Ÿ Úunderlying_transportc                 ó6  • UR                   R                  R                  S:w  a  g[        U5      R                  R                  S5      (       a  g[        R                  S:¬  =(       d    [        USS5      nU(       a  g[        R                  " S[        U SS	9  g)
z6Issue a warning if the requested URL has HTTPS scheme.r;   NÚuvloop)r>   é   Ú_start_tls_compatibleFa  An HTTPS request is being sent through an HTTPS proxy. This support for TLS in TLS is known to be disabled in the stdlib asyncio (Python <3.11). This is why you'll probably see an error in the log below.

It is possible to enable it via monkeypatching. For more details, see:
* https://bugs.python.org/issue37179
* https://github.com/python/cpython/pull/28073

You can temporarily patch this as follows:
* https://docs.aiohttp.org/en/stable/client_advanced.html#proxy-support
* https://github.com/aio-libs/aiohttp/discussions/6044
r>   )r…   r˜   )Úrequest_infoÚurlr  Útypere   Ú
startswithr{   rã   Úgetattrr^   r_   ÚRuntimeWarning)rS   r  r+  Úasyncio_supports_tls_in_tlss       rT   Ú_warn_about_tls_in_tlsÚ#TCPConnector._warn_about_tls_in_tls­  s“   € ð ×Ñ×Ñ×&Ñ&¨'Ó1Øô Ð$Ó%×0Ñ0×;Ñ;¸H×EÑEØô '*×&6Ñ&6¸'Ñ&A÷ '
ÄWØ Ø#ØóF
Ð#ö 'Øä�Šð
Gô Øð ó!	
rW   c              ƒ   óx  #   • U R                  5       nU R                  U5      n[        (       a  Uc   e [        UR                  UR
                  S9 ISh  v•N    U R                  R                  UUUUR                  =(       d    UR                  UR                  S9I Sh  v•N n[        U[        R                  5      (       a*  U R!                  U5      nU(       a   UR#                  U5        SSS5      ISh  v•N   Wc  Sn	U" UR,                  [/        U	5      5      eUR1                  U5        Xu4$  Nß N”! [         a    UR                  5         e f = f! [$         a>    UR                  5         U R&                  (       d  U R(                  R+                  U5        e f = f N§! , ISh  v•N  (       d  f       N¼= f! [2         a  n
[5        UR,                  U
5      U
eSn
A
f[6         a  n
[9        UR,                  U
5      U
eSn
A
f[.         aF  n
U
R:                  c   [        U
[        R<                  5      (       a  e U" UR,                  U
5      U
eSn
A
f[>         aV  n[A        SUR                  < SURB                  S SURD                  < S	URF                  =(       d    S
 SU< S35      UeSnAff = f7f)z$Wrap the raw TCP transport with TLS.Nrñ  )Úserver_hostnameÚssl_handshake_timeoutz:Failed to start TLS (possibly caused by closing transport)z2Cannot initialize a TLS-in-TLS connection to host Ú:Údz4 through an underlying connection to an HTTPS proxy z ssl:Údefaultz [Ú])$rß   ræ  r   r2   rô  r1  ru   r  r  rp  Útotalr7  r­   rã  r¶   rº   rê  Úcheckr*   rä   rå   r¢   r.  r÷  Úconnection_mader,   r$   r-   r'   rø  rù  Ú	TypeErrorr#   rº  rÝ  r†  )rS   r  r+  r  rí  Ú	tls_protor“  Útls_transportr™  Úmsgró   Útype_errs               rT   Ú_start_tls_connectionÚ"TCPConnector._start_tls_connectionØ  sŠ  é € ð —M‘M“Oˆ	Ø×*Ñ*¨3Ó/ˆ
ßŠ=ð Ñ)Ð)Ð)ð5	Ü#Ø×$Ñ$°W×5KÑ5K÷ó ðØ*.¯*©*×*>Ñ*>Ø,Ø!Ø"Ø(+×(;Ñ(;×(G¸s¿x¹xØ.5¯m©mð +?ð +÷ %�Mô ˜m¬W×->Ñ->×?Ñ?Ø"&×"7Ñ"7¸Ó"<�KÞ"ð"Ø'×-Ñ-¨mÔ<÷+÷ ð^ Ñ$ØR�Ù" 3×#5Ñ#5´w¸s³|ÓDÐDØ×%Ñ%Øôð Ð'Ð'ñmñ%øô %ó ð )×.Ñ.Ô0Øðûô  9ó "Ø)×/Ñ/Ô1Ø#'×#@×#@Ø $× ?Ñ ?× FÑ FÀ}Ô UØ!ð	"ú÷-÷ ÷ ð ûô6 ó 	TÜ1°#×2DÑ2DÀcÓJÐPSÐSûÜó 	LÜ)¨#×*<Ñ*<¸cÓBÈÐKûÜó 	AØ�y‰yÑ ¤Z°´W×5IÑ5I×%JÑ%JØÙ˜s×1Ñ1°3Ó7¸SÐ@ûÜó 
	ô
 (ØDØ—8‘8‘,˜a §¡¨˜|ð ,%Ø%(§Y¡Y¡M°°s·w±w×7KÀ)Ð6Lð MØ‘<˜qð"óð
 ðûð
	üsÔ   ‚2J:µ"G ÁD7ÁG ÁF'ÁAD;Â$D9Â%D;Â)7F'Ã!EÃ2G Ã=F%Ã>G Ä5J:Ä7G Ä9D;Ä;EÅF'ÅAF"Æ"F'Æ%G Æ'F>Æ-F0Æ.F>Æ:G Ç
J7ÇG"Ç"J7Ç/HÈJ7ÈAIÉJ7É!AJ2Ê2J7Ê7J:Úhostsc                 óR  • / nU Hž  nUS   nSU;   nU(       a  [         R                  O[         R                  nU R                  (       a  U R                  U:w  a  MW  U(       a  XCS   SS4OXCS   4nUR	                  U[         R
                  [         R                  SU45        M      U$ )z°Converts the list of hosts to a list of addr_infos.

The list of hosts is the result of a DNS lookup. The list of
addr_infos is the result of a call to `socket.getaddrinfo()`.
rp  r  rº  r   r9   )ÚsocketÚAF_INET6ÚAF_INETr©  r¢   ÚSOCK_STREAMÚIPPROTO_TCP)rS   r-  rï  Úhinforp  Úis_ipv6rœ  Úaddrs           rT   Ú_convert_hosts_to_addr_infosÚ)TCPConnector._convert_hosts_to_addr_infos   s–   € ð ;=ˆ
ÛˆEØ˜‘=ˆDØ˜T‘kˆGÞ(/”V—_’_´V·^±^ˆFØ�|�| §¡°Ó 6ÙÞ29�D ™-¨¨AÑ.ÀÈFÁmÐ?TˆDØ×ÑØœ×+Ñ+¬V×-?Ñ-?ÀÀTÐJöñ ð ÐrW   c          
   ƒ   óì  #   • U R                  U5      nU R                  U5      nUR                  R                  nUc   eUR	                  S5      (       a  UR                  S5      S-   nUR                  nUc   e U R                  XxUS9I S h  v•N n	S nU R                  U	5      nU(       a‹  U(       a$  UR                   =(       d    UR                  S5      OS n U R#                  U R$                  UUUUUUS9I S h  v•N u  pïUR/                  5       (       a  U(       a   UR1                  U5        Xï4$ Xï4$ Uc   eUe N°! [         aI  n
U
R                  c   [        U
[        R                  5      (       a  e [        UR                  U
5      U
eS n
A
ff = f N™! [&        [        R                  4 a.  n
U
n[(        R*                  " XÀR,                  5         S n
A
GM6  S n
A
ff = f! [2         a‚  n
UR5                  5         U R6                  (       d  U R8                  R;                  U5        U
nUR=                  S5      nUR?                  5       n[(        R@                  " UU5         S n
A
GMÅ  S n
A
ff = f7f)Nz..Ú.)r,  )r  r†  rï  r  r+  rí  r/  )!ræ  rê  r  Úraw_hostÚendswithÚrstriprº  rÖ  r÷  rø  rã  r¶   rù  r%   r.  r7  r  rú  rß   r&   rª  Úpop_addr_infos_interleaver®  r  r$  r*   r­   rä   rå   r¢   Úget_extra_infoÚgetpeernameÚremove_addr_infos)rS   r+  r,  r  rí  r“  r™  rp  rº  r-  ró   Úlast_excrï  r  Útranspr  ró  Úbad_peers                     rT   rß  Ú&TCPConnector._create_direct_connection5  sR  é € ð ×*Ñ*¨3Ó/ˆ
Ø×+Ñ+¨CÓ0ˆà�w‰w×ÑˆØÑÐÐð �=‰=˜×ÑØ—;‘;˜sÓ# cÑ)ˆDØ�x‰xˆØÑÐÐð
	Lð ×,Ñ,¨TÀÐ,ÐG×GˆEð )-ˆØ×6Ñ6°uÓ=ˆ
Þö >H�×$Ñ$×,¨×4Ñ4°SÔ9ÈTð ðØ&*×&BÑ&BØ—M‘MØ#Ø"Ø)Ø$3ØØ!-ð 'Cð '÷ !‘�ð �z‰z�|‰|¦ðØ×%Ñ% fÔ-ð �=Ð �6�=Ð àÑ'Ð'Ð'ØˆNñc HøÜó 	LØ�y‰yÑ ¤Z°´W×5IÑ5I×%JÑ%JØô *¨#×*<Ñ*<¸cÓBÈÐKûð	Lúñ"!øô )¬'×*>Ñ*>Ð?ó Ø�Ü ×:Ò:¸:×GWÑGWÔXÞûðûô 1ó 	Ø—L‘L”NØ×8×8Ø×7Ñ7×>Ñ>¸vÔFØ"�Hà*0×*?Ñ*?ÀÓ*I�DØ#×/Ñ/Ó1�HÜ$×6Ò6°zÀ8ÔLÞûð	üs¥   ‚A9I4Á<E ÂE ÂE ÂAI4Ã"F Ã>FÃ?F ÄI4Ä"G% Ä3I4Å E Å
FÅAFÆFÆI4ÆF ÆG"Æ4"GÇI4ÇG"Ç"I4Ç%
I1Ç/A6I,É%I4É,I1É1I4c           	   ƒ   ó   #   • U R                  U5        U R                  5       n0 nUR                  b  UR                  nUR                  [        R
                     U[        R
                  '   UR                  nUc   e[        [        R                  UUUR                  U R                  UR                  S9nU R                  U/ U[        S9I S h  v•N u  p‰UR                  R                  [        R                  S 5      n
U
bN  UR!                  5       (       d  X¡R                  [        R"                  '   OX§R                  [        R"                  '   UR!                  5       (       Ga  U(       a  U R%                  X�5        [        R&                  Ul        UR*                  Ul        UR,                  R/                  S S S S9n[1        XX�R                  5      nUR3                  U5      I S h  v•N n UR4                  nUc   eUR7                  UU R8                  S9  UR;                  U5      I S h  v•N nS Ul         UR<                  S:w  ac  UR>                  nUc  [A        UR<                  5      RB                  n[E        URF                  URH                  UR<                  UUR                  S9eU(       d.  URK                  SS S9nUc  [M        S	5      eURO                  5       nU(       d  URS                  5         U(       dQ  U RU                  U5      nU RW                  U RX                  UUWURZ                  US
9I S h  v•N URS                  5         $ U R]                  UUUS9I S h  v•N URS                  5         $ X‰4$  GN° GN˜ GNV! [P         a    URS                  5         e f = f! U(       d  URS                  5         f f = f N… N^! [P         a"    URS                  5         URS                  5         e f = f! URS                  5         f = f7f)N)ÚheadersÚauthrq   r†  rì  )rÝ  Ú
proxy_authÚproxy_headers_hash)Úread_until_eofrÌ   éÈ   )Ústatusr‰   rG  r/  )r!  z)Transport does not expose socket instance)r  r†  ró  r  r+  )r+  r  )/r  r  Úproxy_headersrG  r   ÚHOSTrÝ  r/   ÚMETH_GETrI  ru   r†  rß  r)   rF  ÚAUTHORIZATIONr  ÚPROXY_AUTHORIZATIONr  ÚMETH_CONNECTÚmethodr  r.  Ú_replacerl   Úsendrv   Úset_response_paramsrÑ   ÚstartrM  Úreasonr   Úphraser(   r  Úhistoryr?  râ  Údupr7  r­   ræ  rþ  rß   rp  r+  )rS   r+  r,  r  Úruntime_has_start_tlsrG  r  Ú	proxy_reqrœ   r  rH  ro   r:  Ú
proxy_resprp   Úrespr‰   Úrawsockr“  s                      rT   rÞ  Ú%TCPConnector._create_proxy_connection€  sµ  é € ð 	×"Ñ" 3Ô'Ø $× =Ñ =Ó ?Ðà"$ˆØ×ÑÑ(Ø×'Ñ'ˆGØ Ÿ[™[¬¯©Ñ3ˆ”—	‘	Ñà�i‰iˆØ‰ÐˆÜ!Ü�M‰MØØØ—‘Ø—‘Ø—‘ñ
ˆ	ð "&×!?Ñ!?Ø�r˜7Ô1Kð "@ð "
÷ 
Ñˆ	ð × Ñ ×$Ñ$¤T×%7Ñ%7¸Ó>ˆØÑØ—:‘:—<‘<Ø8<—‘œD×4Ñ4Ò5à>B×!Ñ!¤$×":Ñ":Ñ;à�:‰:�<Š<Þ$Ø×+Ñ+¨IÔ;ô  $×0Ñ0ˆIÔØŸG™GˆIŒMØ×$Ñ$×-Ñ-Ø tÀð .ð ˆCô ˜d¨·
±
Ó;ˆDØ(Ÿ~™~¨dÓ3×3ˆJðD#ØŸ>™>�ØÑ+Ð+Ð+ð
 ×,Ñ,Ø#8Ø+/×+GÑ+Gð -ñ ð (×-Ñ-¨dÓ3×3�ð "&�”ð*Ø—{‘{ cÓ)Ø"&§+¡+˜Ø"™?Ü&0°·±Ó&=×&DÑ&D˜GÜ2Ø&×3Ñ3Ø ŸL™LØ#'§;¡;Ø$+Ø$(§L¡Lñð ö 1Ø"+×":Ñ":¸8ÈTÐ":Ð"R˜Ø"™?Ü".Ø Kó#ð ð #*§+¡+£-˜ö 1Ø!Ÿ™Ô)æ,à!%×!6Ñ!6°sÓ!;�JØ!%×!?Ñ!?ØŸ™Ø 'Ø&Ø$Ø(+¯©Øð "@ð "÷ ð" × Ñ Õ"ð "×7Ñ7ð ØØ#ð 8ð ÷ ð × Ñ Õ"àÐÐòK
ò< 4ò 4øô6 %ó ð —O‘OÔ%Øðûö 1Ø!Ÿ™Õ)ð 1úññøôa !ó Ø× Ñ Ô"Ø—
‘
”Øðûðp × Ñ Õ"üs±   ‚CPÃNÃDPÇ,NÇ-PÇ2?O
 È1NÈ2O
 È6O9 È>B(N
 Ë&AO9 Í OÍO9 ÍPÍO9 Í)OÍ*O9 Í-PÎPÎO
 Î
N&Î&N) Î)OÏO9 ÏO9 Ï
,O6Ï6O9 Ï9PÐP)
r§  r©  r­  r®  r¬  r¯  r¥  r¤  r¨  r¦  )NNr›   )r+  r/   rP   Nrc   )@rd   re   rf   rg   rÁ   rc  Ú	frozensetrd  r/  ÚAddressFamilyÚ	AF_UNSPECr5   r»   r   Úbytesrf  rˆ  r   r0   r   r¸   r!   rÙ   re  r¶   r·   rU   r   r­   r¹   rœ  rš  r¼  r   r   r"   rÖ  r   rÌ  r/   r.   r5  ræ  rê  r&   r   rª  ÚAddrInfoTyper   r¦   rº   rú  rþ  r  r  r  r  ÚBaseTransportr+  r7  rß  rÞ  ri   Ú__classcell__©r°  s   @rT   rC   rC   $  s   ø† ñð8 #8¹)ÀUÀGÓ:LÑ"LÐð
  Ø'+Ø"Ø')Ø'-×';Ñ';×'EÑ'EØ,0Ø48Ø04Ø/3Ø8@Ø!ØØØ&+Ø48Ø()Ø04Ø$(ò).Sð ð.Sð ˜e‘_ð	.Sð
 ð.Sð   ‘}ð.Sð ×$Ñ$ð.Sð ˜jÑ)ð.Sð �4˜ jÐ0Ñ1ð.Sð ˜U 3¨ 8™_Ñ-ð.Sð Ð+Ñ,ð.Sð !  u¨fÐ!4Ñ5ð.Sð ð.Sð ð.Sð ð.Sð   $ð!.Sð" �w×0Ñ0Ñ1ð#.Sð$ !&ð%.Sð& ' u™oð'.Sð( ˜S‘M÷).Sð .Sð`�y ‘÷ ð ð˜ó ó ðð ð#˜tó #ó ð#ð
 AEñ	'Ø˜S‘Mð	'Ø08¸±ð	'à	õ	'ð KOñYØðYØ"ðYØ,4°X¸gÑ5FÑ,GðYà	ˆmÑ	õYðv'2à�3˜�8‰_ð'2ð ð'2ð ð	'2ð
 Ð+Ñ,ð'2ð ˜ 'Ñ*Ñ+ð'2ð 
ˆmÑ	ô'2ðRØ ðØ*.¨w©-ðØBQðà	ôð% Mð %°h¸zÑ6Jô %ðB Mð °h¸}Ñ6Mô ð )=òAàðAð Ð)×6Ñ6Ñ7ðAð ð	Að
 !ðAð ˜9‘oðAð ðAð 
ˆw× Ñ  /Ð1Ñ	2õAðF )=òAàðAð ðAð !ð	Að
 ˜9‘oðAð ðAð 
ˆw× Ñ  /Ð1Ñ	2õAô,)ô$ð"¨$ô ð)
à%×/Ñ/ð)
ð ð)
ð 
ô	)
ð` )=ñF(à%×/Ñ/ðF(ð ðF(ð !ð	F(ð
 ˜9‘oðF(ð 
ˆw×$Ñ$ oÐ5Ñ	6õF(ðPØ˜-Ñ(ðà	Ð×+Ñ+Ñ	,ôð6 )=òIàðIð �W‘ðIð !ð	Ið ˜9‘oðIð 
ˆw× Ñ  /Ð1Ñ	2õIðV| Ø ð| Ø*.¨w©-ð| ØBQð| à	ˆw×$Ñ$ oÐ5Ñ	6÷| ò | rW   rC   c                   óÐ   ^ • \ rS rSrSr\\" S15      -  rS\SSS4S\	S	\
S
\\\S4   S\S\S\\R"                     SS4U 4S jjjr\S\	4S j5       rS\S\S   SSS\4S jrSrU =r$ )rD   iÿ  aa  Unix socket connector.

path - Unix socket path.
keepalive_timeout - (optional) Keep-alive timeout.
force_close - Set to True to force close and do reconnect
    after each request (and between redirects).
limit - The total number of simultaneous connections.
limit_per_host - Number of simultaneous connections to one host.
loop - Optional event loop.
ÚunixFrÄ   r   NÚpathrÈ   rÇ   rÉ   rÊ   rq   rP   c                 ó4   >• [         TU ]  UUUUUS9  Xl        g )N©rÈ   rÇ   rÉ   rÊ   rq   )r£  rU   Ú_path©rS   rm  rÈ   rÇ   rÉ   rÊ   rq   r°  s          €rT   rU   ÚUnixConnector.__init__  s-   ø€ ô 	‰ÑØ#Ø/ØØ)Øð 	ñ 	
ð �
rW   c                 ó   • U R                   $ )zPath to unix socket.©rp  r[   s    rT   rm  ÚUnixConnector.path  ó   € ð �z‰zÐrW   r+  r,  rH   r  rF   c              ƒ   óö  #   •  [        UR                  UR                  S9 IS h  v•N   U R                  R	                  U R
                  U R                  5      I S h  v•N u  pES S S 5      IS h  v•N   U$  NP N N
! , IS h  v•N  (       d  f       W$ = f! [         aT  nUR                  c   [        U[        R                  5      (       a  e [        U R                  UR                  U5      UeS nAff = f7frý  )r2   rô  r1  ru   Úcreate_unix_connectionrß   rp  r÷  rø  rã  r¶   rù  r+   rm  r.  ©rS   r+  r,  r  rX  r  ró   s          rT   r5  Ú UnixConnector._create_connection$  sÒ   é € ð
	XÜ#Ø×$Ñ$°W×5KÑ5K÷ó ð "&§¡×!BÑ!BØ—M‘M 4§:¡:ó"÷ ‘�÷÷ ð ˆññ÷÷ ÷ ð ˆûô ó 	XØ�y‰yÑ ¤Z°´W×5IÑ5I×%JÑ%JØÜ*¨4¯9©9°c×6HÑ6HÈ#ÓNÐTWÐWûð	XüsŒ   ‚C9„"B ¦A7§B ª4A=ÁA9ÁA=Á%B Á0A;Á1B Á5C9Á7B Á9A=Á;B Á=BÂBÂBÂB ÂC9ÂB Â
C6Â"AC1Ã1C6Ã6C9rt  ©rd   re   rf   rg   rÁ   rc  rc  rd  r5   r¸   r»   r   re  rÙ   rf  r   r¶   r·   rU   r¹   rm  r/   r   r.   r5  ri   ri  rj  s   @rT   rD   rD   ÿ  sÛ   ø† ñ	ð #8¹)ÀVÀHÓ:MÑ"MÐð
 "Ø8@ØØØ48ñàðð ðð ! ¨°Ð!4Ñ5ð	ð
 ðð ðð �w×0Ñ0Ñ1ðð 
÷ð ð$ ð�có ó ððØ ðØ*.¨w©-ðØBQðà	÷ò rW   rD   c                   óÐ   ^ • \ rS rSrSr\\" S15      -  rS\SSS4S\	S	\
S
\\\S4   S\S\S\\R"                     SS4U 4S jjjr\S\	4S j5       rS\S\S   SSS\4S jrSrU =r$ )rE   i6  aÖ  Named pipe connector.

Only supported by the proactor event loop.
See also: https://docs.python.org/3/library/asyncio-eventloop.html

path - Windows named pipe path.
keepalive_timeout - (optional) Keep-alive timeout.
force_close - Set to True to force close and do reconnect
    after each request (and between redirects).
limit - The total number of simultaneous connections.
limit_per_host - Number of simultaneous connections to one host.
loop - Optional event loop.
ÚnpipeFrÄ   r   Nrm  rÈ   rÇ   rÉ   rÊ   rq   rP   c                 óœ   >• [         TU ]  UUUUUS9  [        U R                  [        R
                  5      (       d  [        S5      eXl        g )Nro  z9Named Pipes only available in proactor loop under windows)r£  rU   rã  ru   r¶   ÚProactorEventLooprâ  rp  rq  s          €rT   rU   ÚNamedPipeConnector.__init__G  s]   ø€ ô 	‰ÑØ#Ø/ØØ)Øð 	ñ 	
ô Ø�J‰Jœ×1Ñ1÷
ñ 
ô ØKóð ð �
rW   c                 ó   • U R                   $ )zPath to the named pipe.rt  r[   s    rT   rm  ÚNamedPipeConnector.path_  rv  rW   r+  r,  rH   r  rF   c              ƒ   ó:  #   •  [        UR                  UR                  S9 IS h  v•N   U R                  R	                  U R
                  U R                  5      I S h  v•N u  pE[        R                  " S5      I S h  v•N   S S S 5      IS h  v•N   [        [         W5      $  N| NF N( N! , IS h  v•N  (       d  f       N/= f! [         aI  nUR                  c   [        U[        R                  5      (       a  e [        UR                  U5      UeS nAff = f7f)Nrñ  r   )r2   rô  r1  ru   Úcreate_pipe_connectionrß   rp  r¶   Úsleepr÷  rø  rã  rù  r&   r.  r   r.   ry  s          rT   r5  Ú%NamedPipeConnector._create_connectiond  sê   é € ð	IÜ#Ø×$Ñ$°W×5KÑ5K÷ó ð "&§¡×!BÑ!BØ—M‘M 4§:¡:ó"÷ ‘�ô —m’m AÓ&×&Ð&÷÷ ô$ ”O UÓ+Ð+ñ%ññ '÷÷ ÷ ð ûô ó 	IØ�y‰yÑ ¤Z°´W×5IÑ5I×%JÑ%JØÜ& s×'9Ñ'9¸3Ó?ÀSÐHûð	Iüsž   ‚D„"C ¦B#§C ª4B+ÁB%ÁB+Á>B'Á?B+ÂC ÂB)ÂC ÂDÂ#C Â%B+Â'B+Â)C Â+CÂ1B4Â2CÂ>C ÃDÃC Ã
DÃADÄDÄDrt  r{  rj  s   @rT   rE   rE   6  sÛ   ø† ñð #8¹)ÀWÀIÓ:NÑ"NÐð
 "Ø8@ØØØ48ñàðð ðð ! ¨°Ð!4Ñ5ð	ð
 ðð ðð �w×0Ñ0Ñ1ðð 
÷ð ð0 ð�có ó ðð,Ø ð,Ø*.¨w©-ð,ØBQð,à	÷,ò ,rW   rE   )hr¶   rÝ   rQ  r/  r{   ry   r^   Úcollectionsr   r   r   Ú
contextlibr   r:   r   Ú	itertoolsr   r	   r
   Útimer   Útypesr   Útypingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rª  r9   r   r    Úabcr!   r"   Úclient_exceptionsr#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   Úclient_protor.   Úclient_reqrepr/   r0   r1   r2   r3   r4   r5   r6   r7   rŸ  r8   r†  rˆ  ÚImportErrorre  rc  ÚEMPTY_SCHEMA_SETÚHTTP_SCHEMA_SETÚWS_SCHEMA_SETÚHTTP_AND_EMPTY_SCHEMA_SETrc  rã   râ   Ú__all__ÚclientrF   rG   ÚtracingrH   rJ   rl   r½   rB   rh  r»   r”  rå  rä  rC   rD   rE   rj   rW   rT   Ú<module>r™     sá  ðÛ Û Û Û Û 
Û Û ß 7Ñ 7Ý Ý ß *Ñ *Ý Ý ÷÷ ÷ ÷ õ ó( ç ß 0÷÷ ÷ ñ õ *ß HÑ H÷÷ õ &æÛà—‘�JðÛà—^‘^ˆ
ñ
 ˜b˜T“?Ð Ù˜V WÐ-Ó.€Ù˜4 ˜-Ó(€à+Ð.>Ñ>Ð Ø1°MÑAÐ à! S×%5Ñ%5÷ ó ð 9ô ÷ #ð 	×Ñ˜
Ñ"ð	 ð S€ö Ý%Ý,Ý÷ñ ÷(UKñ UK÷p/ñ /÷A$ñ A$÷H$?ñ $?ðN ð ¨ô ñ6 *¨$Ó/Ð Ù+¨EÓ2Ð ôX �=ô X ôv4�Mô 4ônD,˜õ D,øð]/ ó ØˆØŠ
ðús   ÃG Ç
GÇG