ó
    Š2¨jŠÊ  ã                  ón  • S r SSKJr  SSKrSSKrSSKJr  SSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK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  SSKJr  SSKJr  SS	KJr  SS
KJ r   SSK!J"r"  SSK!J#r#  SSK!J$r$  SSK!J%r%  SSK!J&r&  SSK!J'r'  SSK!J(r(  SSK!J)r)  SSK!J*r*  SSK+J,r,  \	RZ                  " \.5      r/Sr0Sr1Sr2Sr3Sr4Sr5Sr6Sr7Sr8Sr9Sr:S r;Sr<S!r=S"r>SlS# jr?SmS$ jr@SnS& jrA      SoS' jrBSpS( jrC " S) S*\Rˆ                  " S*S+5      \RŠ                  5      rF " S, S-\RŽ                  5      rH " S. S/\H5      rI " S0 S1\H5      rJ " S2 S%5      rKSqS3 jrL      SrS4 jrMSsS5 jrN      StS6 jrO      SuS7 jrP          SvS8 jrQSwS9 jrR        SxS: jrSSwS; jrTSsS< jrU " S= S>\R¬                  5      rW " S? S@5      rX        SySA jrY Sz             S{SB jjrZ        S|SC jr[          S}SD jr\    S~SE jr]SqSF jr^        SSG jr_        S€SH jr`              S�SI jra              S‚SJ jrbSƒSK jrc          S„SL jrd      S…SM jre          S†SN jrf          S†SO jrg          S†SP jrh          S†SQ jri          S‡SR jrj        SˆSS jrk          S‰ST jrl            SŠSU jrm\RÜ                   " SV SW\RÞ                  5      5       rp " SX SY5      rq      S‹SZ jrr      SŒS[ jrsS�S\ jrt        SŽS] jruS�S^ jrvS�S_ jrwS‘S` jrxS�Sa jry      S’Sb jrzS�Sc jr{S�Sd jr|S“Se jr}S�Sf jr~    S”Sg jr        S•Sh jr€ " Si Sj\GR                  5      r‚                S–Sk jrƒg)—z+Service-side implementation of gRPC Python.é    )ÚannotationsN)Úfutures)ÚAnyÚCallableÚDictÚIterableÚIteratorÚListÚMappingÚOptionalÚSequenceÚSetÚTupleÚUnion)Ú_common)Ú_compression)Ú_interceptor)Ú_observability)Úcygrpc)ÚArityAgnosticMethodHandler)ÚChannelArgumentType)ÚDeserializingFunction)ÚMetadataType)ÚNullaryCallbackType)ÚResponseType)ÚSerializingFunction)ÚServerCallbackTag)ÚServerTagCallbackType)ÚoverrideÚshutdownÚrequest_callÚreceive_close_on_serverÚsend_initial_metadataÚreceive_messageÚsend_messagez$send_initial_metadata * send_messageÚsend_status_from_serverz/send_initial_metadata * send_status_from_serverÚopenÚclosedÚ	cancelledg      ð?g    eÍÍAc                ó<   • U R                   S   R                  5       $ ©Nr   )Úbatch_operationsÚmessage)Úrequest_events    ÚšC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\grpc/_server.pyÚ_serialized_requestr0   V   s   € Ø×)Ñ)¨!Ñ,×4Ñ4Ó6Ð6ó    c                ó~   • [         R                  R                  U 5      nUc  [        R                  R
                  $ U$ ©N)r   Ú!STATUS_CODE_TO_CYGRPC_STATUS_CODEÚgetr   Ú
StatusCodeÚunknown)ÚcodeÚcygrpc_codes     r/   Ú_application_coder:   Z   s4   € Ü×;Ñ;×?Ñ?ÀÓE€KØ(3Ñ(;Œ6×Ñ×$Ñ$ÐLÀÐLr1   Ú	_RPCStatec                óz   • U R                   c  [        R                  R                  $ [	        U R                   5      $ r3   )r8   r   r6   Úokr:   ©Ústates    r/   Ú_completion_coder@   _   s-   € Ø‡z�zÑÜ× Ñ ×#Ñ#Ð#Ü˜UŸZ™ZÓ(Ð(r1   c                óJ   • U R                   c  U$ [        U R                   5      $ r3   )r8   r:   )r?   r8   s     r/   Ú_abortion_coderB   e   s"   € ð ‡z�zÑØˆÜ˜UŸZ™ZÓ(Ð(r1   c                ó8   • U R                   c  S$ U R                   $ )Nr1   )Údetailsr>   s    r/   Ú_detailsrE   m   s   € Ø—-‘-Ñ'ˆ3Ð:¨U¯]©]Ð:r1   c                  ó   • \ rS rSrSrg)Ú_HandlerCallDetailséq   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__rI   r1   r/   rG   rG   q   s   † ò 	r1   rG   )ÚmethodÚinvocation_metadatac                  ól   • \ rS rSr\R
                  SS j5       r\R
                      SS j5       rSrg)Ú_Methodé~   c                ó   • [        5       er3   ©ÚNotImplementedError©Úselfs    r/   ÚnameÚ_Method.name   s   € ä!Ó#Ð#r1   c                ó   • [        5       er3   rU   ©rX   Úhandler_call_detailss     r/   ÚhandlerÚ_Method.handlerƒ   s   € ô "Ó#Ð#r1   rI   N©ÚreturnzOptional[str]©r]   rG   ra   úOptional[grpc.RpcMethodHandler])	rJ   rK   rL   rM   ÚabcÚabstractmethodrY   r^   rN   rI   r1   r/   rR   rR   ~   sD   † Ø×Ñó$ó ð$ð 	×Ñð$Ø$7ð$à	(ó$ó ó$r1   rR   c                  óV   • \ rS rSr    SS jr\SS j5       r\    S	S j5       rSrg)
Ú_RegisteredMethodéŠ   c                ó   • Xl         X l        g r3   ©Ú_nameÚ_registered_handler)rX   rY   Úregistered_handlers      r/   Ú__init__Ú_RegisteredMethod.__init__‹   s   € ð
 Œ
Ø#5Õ r1   c                ó   • U R                   $ r3   )rk   rW   s    r/   rY   Ú_RegisteredMethod.name“   s   € à�z‰zÐr1   c                ó   • U R                   $ r3   )rl   r\   s     r/   r^   Ú_RegisteredMethod.handler—   s   € ð ×'Ñ'Ð'r1   rj   N)rY   Ústrrm   rc   r`   rb   ©	rJ   rK   rL   rM   rn   r   rY   r^   rN   rI   r1   r/   rg   rg   Š   sQ   † ð6àð6ð <ô6ð óó ðð ð(Ø$7ð(à	(ó(ó ó(r1   rg   c                  óR   • \ rS rSr  SS jr\SS j5       r\    S	S j5       rSrg)
Ú_GenericMethodéž   c                ó   • Xl         g r3   ©Ú_generic_handlers)rX   Úgeneric_handlerss     r/   rn   Ú_GenericMethod.__init__Ÿ   s
   € ð "2Õr1   c                ó   • g r3   rI   rW   s    r/   rY   Ú_GenericMethod.name¥   s   € àr1   c                óZ   • U R                    H  nUR                  U5      nUc  M  Us  $    g r3   )r{   Úservice)rX   r]   Úgeneric_handlerÚmethod_handlers       r/   r^   Ú_GenericMethod.handler©   s6   € ð  $×5Ô5ˆOØ,×4Ñ4Ð5IÓJˆNØÓ)Ø%Ò%ñ  6ð r1   rz   N)r|   úList[grpc.GenericRpcHandler]r`   rb   ru   rI   r1   r/   rw   rw   ž   sG   † ð2à6ô2ð óó ðð ð	Ø$7ð	à	(ó	ó ó	r1   rw   c                  ó²   • \ rS rSr% S\S'   S\S'   \\   rS\S'   S\S	'   S
\S'   S\S'   S
\S'   S\S'   S\S'   S\S'   S
\S'   S\S'   S\S'   S
\S'   S rSr	g)r;   é¶   zcontextvars.ContextÚcontextzthreading.ConditionÚ	conditionr   Úrequestrt   ÚclientÚboolÚinitial_metadata_allowedúOptional[grpc.Compression]Úcompression_algorithmÚdisable_next_compressionúOptional[MetadataType]Útrailing_metadatazOptional[grpc.StatusCode]r8   úOptional[bytes]rD   ÚstatusedzList[Exception]Ú
rpc_errorsz#Optional[List[NullaryCallbackType]]Ú	callbacksÚabortedc                ó:  • [         R                  " 5       U l        [        R                  " 5       U l        [        5       U l        S U l        [        U l
        SU l        S U l        SU l        S U l        S U l        S U l        SU l        / U l        / U l        SU l        g ©NTF)ÚcontextvarsÚContextrˆ   Ú	threadingÚ	Conditionr‰   ÚsetÚduerŠ   Ú_OPENr‹   r�   r�   r�   r’   r8   rD   r”   r•   r–   r—   rW   s    r/   rn   Ú_RPCState.__init__Ç   sƒ   € Ü"×*Ò*Ó,ˆŒÜ"×,Ò,Ó.ˆŒÜ“5ˆŒØˆŒÜˆŒØ(,ˆÔ%Ø%)ˆÔ"Ø(-ˆÔ%Ø!%ˆÔØˆŒ	ØˆŒØˆŒØˆŒØˆŒØˆ�r1   )r—   r–   r‹   r8   r�   r‰   rˆ   rD   r�   rŸ   r�   rŠ   r•   r”   r’   N)
rJ   rK   rL   rM   Ú__annotations__r   rt   rŸ   rn   rN   rI   r1   r/   r;   r;   ¶   s`   ‡ Ø Ó Ø"Ó"Ø
ˆc‰(€CØƒLØƒKØ"Ó"Ø5Ó5Ø"Ó"Ø-Ó-Ø
#Ó#ØÓØƒNØÓØ2Ó2ØƒMõr1   c                óf   • [         R                  " 5       nU R                  R                  U5        Uer3   )ÚgrpcÚRpcErrorr•   Úappend)r?   Ú	rpc_errors     r/   Ú_raise_rpc_errorr¨   Ù   s&   € Ü—’“€IØ	×Ñ×Ñ˜IÔ&Ø
€Or1   c                ó¨   • U R                   R                  U5        [        U 5      (       d'  U R                   (       d  U R                  nS U l        X4$ g)N©NrI   )rŸ   ÚremoveÚ_is_rpc_state_activer–   )r?   Útokenr–   s      r/   Ú_possibly_finish_callr®   ß   sC   € ð 
‡I�I×Ñ�UÔÜ ×&Ñ&¨u¯y¯yØ—O‘Oˆ	ØˆŒØÐÐØr1   c                ó   ^ ^• U U4S jnU$ )Nc                ój   >• TR                      [        TT5      sS S S 5        $ ! , (       d  f       g = fr3   )r‰   r®   )Ú$unused_send_status_from_server_eventr?   r­   s    €€r/   r&   Ú9_send_status_from_server.<locals>.send_status_from_serverë   s   ø€ Ø�_‹_Ü(¨°Ó6÷ �_�_ús   Ž$¤
2rI   )r?   r­   r&   s   `` r/   Ú_send_status_from_serverr³   ê   s   ù€ ö7ð #Ð"r1   c                ó  • U R                      U R                  (       aF  [        R                  " U R                  5      4nUc  UsS S S 5        $ U[	        U5      -   sS S S 5        $ UsS S S 5        $ ! , (       d  f       g = fr3   )r‰   r�   r   Ú!compression_algorithm_to_metadataÚtuple)r?   ÚmetadataÚcompression_metadatas      r/   Ú_get_initial_metadatar¹   ò   si   € ð 
�‹Ø×&×&ä×>Ò>Ø×/Ñ/óð$Ð ð
 ÑØ+÷ 
‰ð (¬%°«/Ñ9÷ 
‰ð ÷ 
��ús   �7A0ÁA0Á%A0Á0
A>c                óN   • [         R                  " [        X5      [        5      nU$ r3   )r   ÚSendInitialMetadataOperationr¹   Ú_EMPTY_FLAGS)r?   r·   Ú	operations      r/   Ú_get_initial_metadata_operationr¾     s&   € ô ×3Ò3Ü˜eÓ.´ó€Ið Ðr1   c                óä  • U R                   [        LaÝ  [        X5      nU R                  c  UOU R                  nU R                  (       a:  [        U S 5      [        R                  " U R                  UU[        5      4n[        nO.[        R                  " U R                  UU[        5      4n[        nUR                  U[        X5      5        SU l        U R                  R!                  U5        g g ©NT)r‹   Ú
_CANCELLEDrB   rD   r�   r¾   r   ÚSendStatusFromServerOperationr’   r¼   Ú8_SEND_INITIAL_METADATA_AND_SEND_STATUS_FROM_SERVER_TOKENÚ_SEND_STATUS_FROM_SERVER_TOKENÚstart_server_batchr³   r”   rŸ   Úadd)r?   Úcallr8   rD   Úeffective_codeÚeffective_detailsÚ
operationsr­   s           r/   Ú_abortrË     sØ   € ð ‡|�|œ:Ò%Ü'¨Ó4ˆØ',§}¡}Ñ'<™GÀ%Ç-Á-ÐØ×)×)ä/°°tÓ<Ü×4Ò4Ø×+Ñ+Ø"Ø%Ü ó	ðˆJô M‰Eô ×4Ò4Ø×+Ñ+Ø"Ø%Ü ó	ðˆJô 3ˆEØ×ÑØÔ0°Ó>ô	
ð ˆŒØ�	‰	�‰�eÕð9 &r1   c                ó   ^ • U 4S jnU$ )Nc                ó>  >• TR                      U R                  S   R                  5       (       a  [        Tl        OTR                  [
        L a  [        Tl        TR                   R                  5         [        T[        5      sS S S 5        $ ! , (       d  f       g = fr+   )
r‰   r,   r)   rÁ   r‹   r    Ú_CLOSEDÚ
notify_allr®   Ú_RECEIVE_CLOSE_ON_SERVER_TOKEN)Úreceive_close_on_server_eventr?   s    €r/   r"   Ú9_receive_close_on_server.<locals>.receive_close_on_server.  sc   ø€ Ø�_‹_Ø,×=Ñ=¸aÑ@×JÑJ×LÑLÜ)�•Ø—‘¤Ò&Ü&�”Ø�O‰O×&Ñ&Ô(Ü(¨Ô0NÓO÷ �_�_ús   ŽA6BÂ
BrI   )r?   r"   s   ` r/   Ú_receive_close_on_serverrÓ   -  s   ø€ õPð #Ð"r1   c                ó   ^ ^^• UUU 4S jnU$ )Nc                ó0  >• [        U 5      nUc^  TR                     TR                  [        L a  [        Tl        TR                  R                  5         [        T[        5      sS S S 5        $ [        R                  " UT5      nTR                     Uc'  [        TT[        R                  R                  S5        OUTl        TR                  R                  5         [        T[        5      sS S S 5        $ ! , (       d  f       g = f! , (       d  f       g = f)Ns    Exception deserializing request!)r0   r‰   r‹   r    rÎ   rÏ   r®   Ú_RECEIVE_MESSAGE_TOKENr   ÚdeserializerË   r   r6   ÚinternalrŠ   )Úreceive_message_eventÚserialized_requestrŠ   rÇ   Úrequest_deserializerr?   s      €€€r/   r$   Ú)_receive_message.<locals>.receive_message?  sÒ   ø€ Ü0Ð1FÓGÐØÑ%Ø—“Ø—<‘<¤5Ò(Ü#*�E”LØ—‘×*Ñ*Ô,Ü,¨UÔ4JÓK÷	 !‘ô ×)Ò)Ø"Ð$8óˆGð —“Ø‘?ÜØØÜ×)Ñ)×2Ñ2Ø;õ	ð %,�E”MØ—‘×*Ñ*Ô,Ü,¨UÔ4JÓK÷ !‘÷ !•ú÷ !•ús   œAC6ÂADÃ6
DÄ
DrI   )r?   rÇ   rÛ   r$   s   ``` r/   Ú_receive_messagerÝ   :  s   ú€ ÷
Lð2 Ðr1   c                ó   ^ • U 4S jnU$ )Nc                ór   >• TR                      [        T[        5      sS S S 5        $ ! , (       d  f       g = fr3   )r‰   r®   Ú_SEND_INITIAL_METADATA_TOKEN)Ú"unused_send_initial_metadata_eventr?   s    €r/   r#   Ú5_send_initial_metadata.<locals>.send_initial_metadata\  s   ø€ Ø�_‹_Ü(¨Ô0LÓM÷ �_�_ús   Ž(¨
6rI   )r?   r#   s   ` r/   Ú_send_initial_metadatarã   [  s   ø€ õNð !Ð r1   c                ó   ^ ^• U U4S jnU$ )Nc                óž   >• TR                      TR                   R                  5         [        TT5      sS S S 5        $ ! , (       d  f       g = fr3   )r‰   rÏ   r®   )Úunused_send_message_eventr?   r­   s    €€r/   r%   Ú#_send_message.<locals>.send_messaged  s.   ø€ Ø�_‹_Ø�O‰O×&Ñ&Ô(Ü(¨°Ó6÷ �_�_ús	   Ž&>¾
ArI   )r?   r­   r%   s   `` r/   Ú_send_messagerè   c  s   ù€ ö7ð
 Ðr1   c                  ó  • \ rS rSr% S\S'   S\S'   S\S'         S S jrS!S	 jrS"S
 jrS#S jrS$S jr	S#S jr
S%S jrS&S jrS'S jrS(S jrS)S jrS*S jrS+S jrS,S jrS%S jrS-S jrS.S jrS/S jrS0S jrS1S jrS2S jrS#S jrSrg)3Ú_Contextil  úcygrpc.BaseEventÚ
_rpc_eventr;   Ú_stateúOptional[DeserializingFunction]rÛ   c                ó(   • Xl         X l        X0l        g r3   )rì   rí   Ú_request_deserializer)rX   Ú	rpc_eventr?   rÛ   s       r/   rn   Ú_Context.__init__q  s   € ð $ŒØŒØ%9Õ"r1   c                óŽ   • U R                   R                     [        U R                   5      sS S S 5        $ ! , (       d  f       g = fr3   )rí   r‰   r¬   rW   s    r/   Ú	is_activeÚ_Context.is_active{  s'   € Ø�[‰[×"Ó"Ü'¨¯©Ó4÷ #×"×"ús	   —6¶
Ac                ó‚   • [        U R                  R                  R                  [        R                  " 5       -
  S5      $ r+   )Úmaxrì   Úcall_detailsÚdeadlineÚtimerW   s    r/   Útime_remainingÚ_Context.time_remaining  s*   € Ü�4—?‘?×/Ñ/×8Ñ8¼4¿9º9»;ÑFÈÓJÐJr1   c                óL   • U R                   R                  R                  5         g r3   )rì   rÇ   ÚcancelrW   s    r/   rþ   Ú_Context.cancel‚  s   € Ø�‰×Ñ×#Ñ#Õ%r1   c                óò   • U R                   R                     U R                   R                  c
   S S S 5        gU R                   R                  R                  U5         S S S 5        g! , (       d  f       g = f)NFT)rí   r‰   r–   r¦   )rX   Úcallbacks     r/   Úadd_callbackÚ_Context.add_callback…  sS   € Ø�[‰[×"Ó"Ø�{‰{×$Ñ$Ñ,Ø÷ #Ð"ð �K‰K×!Ñ!×(Ñ(¨Ô2Ø÷	 #×"Ö"ús   —A(¹&A(Á(
A6c                ó†   • U R                   R                     SU R                   l        S S S 5        g ! , (       d  f       g = frÀ   )rí   r‰   r�   rW   s    r/   Ú disable_next_message_compressionÚ)_Context.disable_next_message_compressionŒ  s'   € Ø�[‰[×"Ó"Ø37ˆD�K‰KÔ0÷ #×"Ö"ús	   —2²
A c                ó.   • U R                   R                  $ r3   )rì   rP   rW   s    r/   rP   Ú_Context.invocation_metadata�  s   € Ø�‰×2Ñ2Ð2r1   c                ór   • [         R                  " U R                  R                  R	                  5       5      $ r3   )r   Údecoderì   rÇ   ÚpeerrW   s    r/   r  Ú_Context.peer“  s$   € Ü�~Š~˜dŸo™o×2Ñ2×7Ñ7Ó9Ó:Ð:r1   c                óV   • [         R                  " U R                  R                  5      $ r3   )r   Úpeer_identitiesrì   rÇ   rW   s    r/   r  Ú_Context.peer_identities–  s   € Ü×%Ò% d§o¡o×&:Ñ&:Ó;Ð;r1   c                óŒ   • [         R                  " U R                  R                  5      nUc  U$ [        R
                  " U5      $ r3   )r   Úpeer_identity_keyrì   rÇ   r   r
  )rX   Úid_keys     r/   r  Ú_Context.peer_identity_key™  s4   € Ü×)Ò)¨$¯/©/×*>Ñ*>Ó?ˆØ™ˆvÐC¬W¯^ª^¸FÓ-CÐCr1   c                óä   • [         R                  " U R                  R                  5      nUc  0 OUnUR	                  5        VVs0 s H  u  p4[
        R                  " U5      U_M     snn$ s  snnf r3   )r   Úauth_contextrì   rÇ   Úitemsr   r
  )rX   r  Úauth_context_dictÚkeyÚvalues        r/   r  Ú_Context.auth_context�  si   € Ü×*Ò*¨4¯?©?×+?Ñ+?Ó@ˆØ".Ñ"6™B¸LÐð 0×5Ñ5Ô7ô
â7‘
�ô �NŠN˜3Ó Ò&Ù7ò
ð 	
ùó 
s   Á#A,c                ó„   • U R                   R                     XR                   l        S S S 5        g ! , (       d  f       g = fr3   )rí   r‰   r�   )rX   Úcompressions     r/   Úset_compressionÚ_Context.set_compression¥  s%   € Ø�[‰[×"Ó"Ø0;�K‰KÔ-÷ #×"Ö"úó   —1±
?c                ó0  • U R                   R                     U R                   R                  [        L a  [	        U R                   5        U R                   R
                  (       a‹  [        U R                   U5      nU R                  R                  R                  U4[        U R                   5      5        SU R                   l        U R                   R                  R                  [        5        OSn[        U5      e S S S 5        g ! , (       d  f       g = f)NFz#Initial metadata no longer allowed!)rí   r‰   r‹   rÁ   r¨   r�   r¾   rì   rÇ   rÅ   rã   rŸ   rÆ   rà   Ú
ValueError)rX   Úinitial_metadatar½   Ú	error_msgs       r/   r#   Ú_Context.send_initial_metadata©  sÀ   € Ø�[‰[×"Ó"Ø�{‰{×!Ñ!¤ZÒ/Ü  §¡Ô-Ø�{‰{×3×3Ü;Ø—K‘KÐ!1ó�	ð —‘×$Ñ$×7Ñ7Ø�LÔ"8¸¿¹Ó"Eôð 8=�—‘Ô4Ø—‘—‘×#Ñ#Ô$@ÕAàA�	Ü  Ó+Ð+ð B÷ #×"Ö"ús   —C&DÄ
Dc                ó„   • U R                   R                     XR                   l        S S S 5        g ! , (       d  f       g = fr3   )rí   r‰   r’   )rX   r’   s     r/   Úset_trailing_metadataÚ_Context.set_trailing_metadataº  s%   € Ø�[‰[×"Ó"Ø,=�K‰KÔ)÷ #×"Ö"úr  c                ó.   • U R                   R                  $ r3   )rí   r’   rW   s    r/   r’   Ú_Context.trailing_metadata¾  s   € Ø�{‰{×,Ñ,Ð,r1   c                ó�  • U[         R                  R                  :X  a1  [        R	                  S5        [         R                  R
                  nSnU R                  R                     XR                  l        [        R                  " U5      U R                  l        SU R                  l        [        5       e! , (       d  f       g = f)Nz4abort() called with StatusCode.OK; returning UNKNOWNÚ T)r¤   r6   ÚOKÚ_LOGGERÚerrorÚUNKNOWNrí   r‰   r8   r   ÚencoderD   r—   Ú	Exception)rX   r8   rD   s      r/   ÚabortÚ_Context.abortÁ  s‚   € à”4—?‘?×%Ñ%Ó%Ü�M‰MØFôô —?‘?×*Ñ*ˆDØˆGØ�[‰[×"Ó"Ø#�K‰KÔÜ")§.¢.°Ó"9ˆD�K‰KÔØ"&ˆD�K‰KÔÜ“+Ð÷	 #Õ"ús   Á&AB7Â7
Cc                ó†   • UR                   U R                  l         U R                  UR                  UR                  5        g r3   )r’   rí   r2  r8   rD   )rX   Ústatuss     r/   Úabort_with_statusÚ_Context.abort_with_statusÏ  s*   € Ø(.×(@Ñ(@ˆ�‰Ô%Ø�
‰
�6—;‘; §¡Õ/r1   c                ó„   • U R                   R                     XR                   l        S S S 5        g ! , (       d  f       g = fr3   )rí   r‰   r8   )rX   r8   s     r/   Úset_codeÚ_Context.set_codeÓ  s%   € Ø�[‰[×"Ó"Ø#�K‰KÔ÷ #×"Ö"úr  c                ó.   • U R                   R                  $ r3   )rí   r8   rW   s    r/   r8   Ú_Context.code×  s   € Ø�{‰{×ÑÐr1   c                ó®   • U R                   R                     [        R                  " U5      U R                   l        S S S 5        g ! , (       d  f       g = fr3   )rí   r‰   r   r0  rD   )rX   rD   s     r/   Úset_detailsÚ_Context.set_detailsÚ  s0   € Ø�[‰[×"Ó"Ü")§.¢.°Ó"9ˆD�K‰KÔ÷ #×"Ö"ús   —&AÁ
Ac                ó.   • U R                   R                  $ r3   )rí   rD   rW   s    r/   rD   Ú_Context.detailsÞ  s   € Ø�{‰{×"Ñ"Ð"r1   c                ó   • g r3   rI   rW   s    r/   Ú_finalize_stateÚ_Context._finalize_stateá  s   € Ør1   )rð   rì   rí   N)rñ   rë   r?   r;   rÛ   rî   )ra   rŒ   )ra   Úfloat©ra   ÚNone)r  r   ra   rŒ   )ra   r‘   )ra   rt   )ra   zOptional[Sequence[bytes]]r`   )ra   zMapping[str, Sequence[bytes]])r  zgrpc.Compressionra   rG  )r"  r   ra   rG  )r’   r   ra   rG  )r8   úgrpc.StatusCoderD   rt   ra   rG  )r5  zgrpc.Statusra   rG  )r8   rH  ra   rG  )ra   rH  )rD   rt   ra   rG  )ra   Úbytes)rJ   rK   rL   rM   r¢   rn   rô   rû   rþ   r  r  rP   r  r  r  r  r  r#   r&  r’   r2  r6  r9  r8   r>  rD   rC  rN   rI   r1   r/   rê   rê   l  s    ‡ Ø Ó ØÓØ9Ó9ð:à#ð:ð ð:ð >ô	:ô5ôKô&ôô8ô3ô;ô<ôDô
ô<ô,ô">ô-ôô0ô$ô ô:ô#÷r1   rê   c                  ó†   • \ rS rSr% S\S'   S\S'   S\S'         SS jrSS	 jrSS
 jrSS jrSS jr	SS jr
SS jrSrg)Ú_RequestIteratoriå  r;   rí   úcygrpc.CallÚ_callrî   rð   c                ó(   • Xl         X l        X0l        g r3   )rí   rM  rð   )rX   r?   rÇ   rÛ   s       r/   rn   Ú_RequestIterator.__init__ê  s   € ð ŒØŒ
Ø%9Õ"r1   c                óÀ  • U R                   R                  [        L a  [        U R                   5        g [	        U R                   5      (       d
  [        5       eU R                  R                  [        R                  " [        5      4[        U R                   U R                  U R                  5      5        U R                   R                  R                  [        5        g r3   )rí   r‹   rÁ   r¨   r¬   ÚStopIterationrM  rÅ   r   ÚReceiveMessageOperationr¼   rÝ   rð   rŸ   rÆ   rÖ   rW   s    r/   Ú_raise_or_start_receive_messageÚ0_RequestIterator._raise_or_start_receive_messageô  s�   € Ø�;‰;×Ñ¤Ò+Ü˜TŸ[™[Õ)Ü% d§k¡k×2Ñ2Ü“/Ð!à�J‰J×)Ñ)Ü×/Ò/´Ó=Ð?Ü Ø—K‘K §¡¨T×-GÑ-Góôð �K‰K�O‰O×ÑÔ 6Õ7r1   c                óJ  • U R                   R                  [        L a  [        U R                   5        [        5       eU R                   R                  c(  [
        U R                   R                  ;  a
  [        5       eU R                   R                  nS U R                   l        U$ r3   )	rí   r‹   rÁ   r¨   rŠ   rÖ   rŸ   rQ  ÚAssertionError©rX   rŠ   s     r/   Ú_look_for_requestÚ"_RequestIterator._look_for_request  su   € Ø�;‰;×Ñ¤Ò+Ü˜TŸ[™[Ô)ô ÓÐð �K‰K×ÑÑ'Ü&¨d¯k©k¯o©oÓ=ä“/Ð!à—k‘k×)Ñ)ˆGØ"&ˆD�K‰KÔØˆNr1   c                óü   • U R                   R                     U R                  5          U R                   R                  R                  5         U R	                  5       nUb  UsS S S 5        $ MD  ! , (       d  f       g = fr3   )rí   r‰   rS  ÚwaitrX  rW  s     r/   Ú_nextÚ_RequestIterator._next  s_   € Ø�[‰[×"Ó"Ø×0Ñ0Ô2ØØ—‘×%Ñ%×*Ñ*Ô,Ø×0Ñ0Ó2�ØÑ&Ø"÷ #Ñ"á÷ #Õ"ús   —A
A-Á+A-Á-
A;c                ó   • U $ r3   rI   rW   s    r/   Ú__iter__Ú_RequestIterator.__iter__  s   € Øˆr1   c                ó"   • U R                  5       $ r3   ©r\  rW   s    r/   Ú__next__Ú_RequestIterator.__next__  ó   € Ø�z‰z‹|Ðr1   c                ó"   • U R                  5       $ r3   rb  rW   s    r/   ÚnextÚ_RequestIterator.next   re  r1   )rM  rð   rí   N)r?   r;   rÇ   rL  rÛ   rî   rF  )ra   r   )ra   rK  )rJ   rK   rL   rM   r¢   rn   rS  rX  r\  r_  rc  rg  rN   rI   r1   r/   rK  rK  å  sS   ‡ ØÓØÓØ:Ó:ð:àð:ð ð:ð >ô	:ô8ôô#ôô÷r1   rK  c                ó   ^ ^^• UU U4S jnU$ )Nc            	     ó  >• TR                      [        T5      (       d
   S S S 5        g TR                  R                  [        R
                  " [        5      4[        TTR                  T5      5        TR                  R                  [        5         TR                   R                  5         TR                  c¤  TR                  [        L as  SR                  TR                   R"                  5      n [%        TTR                  [        R&                  R(                  [*        R,                  " U 5      5         S S S 5        g TR                  [.        L a
   S S S 5        g OTR                  nS Tl        UsS S S 5        $ Më  ! , (       d  f       g = f)Nz*"{}" requires exactly one request message.)r‰   r¬   rÇ   rÅ   r   rR  r¼   rÝ   rŸ   rÆ   rÖ   r[  rŠ   r‹   rÎ   Úformatrø   rO   rË   r6   Úunimplementedr   r0  rÁ   )rD   rŠ   rÛ   rñ   r?   s     €€€r/   Úunary_requestÚ%_unary_request.<locals>.unary_request)  s4  ø€ Ø�_‹_Ü'¨×.Ñ.Ø÷ ˆ_ð �N‰N×-Ñ-Ü×/Ò/´Ó=Ð?Ü  ¨	¯©Ð8LÓMôð �I‰I�M‰MÔ0Ô1ØØ—‘×$Ñ$Ô&Ø—=‘=Ñ(Ø—|‘|¤wÒ.àH×OÑOØ )× 6Ñ 6× =Ñ =óð  ô
 Ø!Ø%ŸN™NÜ"×-Ñ-×;Ñ;Ü#ŸNšN¨7Ó3ô	ð  $÷/ ˆ_ð0 —|‘|¤zÒ1Ø#÷3 ˆ_ð0 2ð $Ÿm™m�GØ$(�E”MØ"÷; ‰_ñ ÷ �_ús#   ŽE>©DE>Å E>ÅE>Å<E>Å>
FrI   )rñ   r?   rÛ   rm  s   ``` r/   Ú_unary_requestro  $  s   ú€ ÷
#ð@ Ðr1   c                ó`  • SSK Jn  U" XU5       n S nUb
  U" X7U5      nOU" X75      nUS4sS S S 5        $ ! [         Ga[  n	UR                     UR                  (       a1  [        UU R                  [        R                  R                  S5        OàX‘R                  ;  aÑ   SR                  U	5      n
Oe! [         aX    Sn
[        R                  [        R                  " [!        U	5      U	U	R"                  5      5        [        R$                  " 5          Of = f[        R                  U
5        [        UU R                  [        R                  R                  [&        R(                  " U
5      5        S S S 5        O! , (       d  f       O= f S n	A	S S S 5        gS n	A	ff = f! , (       d  f       g = f)Nr   )Ú_create_servicer_contextTó   RPC Abortedz!Exception calling application: {}z1Calling application raised unprintable Exception!©NF)r¤   rq  r1  r‰   r—   rË   rÇ   r   r6   r7   r•   rk  r-  Ú	exceptionÚ	tracebackÚformat_exceptionÚtypeÚ__traceback__Ú	print_excr   r0  )rñ   r?   ÚbehaviorÚargumentrÛ   Úsend_response_callbackrq  rˆ   Úresponse_or_iteratorrt  rD   s              r/   Ú_call_behaviorr~  L  s~  € õ .á	!ØÐ.ô
à	ð*	Ø#'Ð Ø%Ñ1Ù'/ØÐ'=ó(Ñ$ñ (0°Ó'BÐ$Ø'¨Ð-÷
ñ 
øô ô !	Ø—“Ø—=—=ÜØØ!Ÿ™Ü×)Ñ)×1Ñ1Ø&õ	ð ×&6Ñ&6Ó6ð.Ø"E×"LÑ"LØ%ó#™øô %ó .àOð  ô  ×)Ñ)Ü%×6Ò6Ü $ Y£Ø )Ø )× 7Ñ 7óôô "×+Ò+Ö-ð.úô ×%Ñ% gÔ.ÜØØ!Ÿ™Ü×)Ñ)×1Ñ1ÜŸš wÓ/ô	÷5 !—–úó@ ÷[
ð 
ûð!	ú÷
õ 
úsk   �F’6¶FÁFÁAE9Â B2Â1E9Â2AD	ÄE9ÄD	ÄAE9Å0	FÅ9
FÆFÆ
FÆFÆFÆ
F-c           
     ó&  •  [        U5      S4$ ! [         a     g[         aì  nUR                     UR                  (       a1  [        UU R                  [        R                  R                  S5        OyX1R                  ;  aj  SR                  U5      n[        R                  U5        [        UU R                  [        R                  R                  [        R                  " U5      5        S S S 5        O! , (       d  f       O= f S nAgS nAff = f)NTrÀ   rr  z!Exception iterating responses: {}rs  )rg  rQ  r1  r‰   r—   rË   rÇ   r   r6   r7   r•   rk  r-  rt  r   r0  )rñ   r?   Úresponse_iteratorrt  rD   s        r/   Ú%_take_response_from_response_iteratorr�  †  sÍ   € ð
ÜÐ%Ó&¨Ð,Ð,øÜó ÙÜó Ø�_‹_Ø�}�}ÜØØ—N‘NÜ×%Ñ%×-Ñ-Ø"õ	ð ×"2Ñ"2Ó2Ø=×DÑDÀYÓO�Ü×!Ñ! 'Ô*ÜØØ—N‘NÜ×%Ñ%×-Ñ-Ü—N’N 7Ó+ô	÷ �_Ž_úô" ûð%ús1   ‚ �
D›	D¤D°B<C5Ã,	DÃ5
D	Ã?DÄDc                óæ   • [         R                  " X#5      nUcF  UR                     [        UU R                  [
        R                  R                  S5        S S S 5        g U$ ! , (       d  f       g = f)Ns   Failed to serialize response!)r   Ú	serializer‰   rË   rÇ   r   r6   rØ   )rñ   r?   ÚresponseÚresponse_serializerÚserialized_responses        r/   Ú_serialize_responser‡  ¤  sc   € ô "×+Ò+¨HÓJÐØÑ"Ø�_‹_ÜØØ—‘Ü×!Ñ!×*Ñ*Ø0ô	÷ ð ØÐ÷ Œ_ð ús   ¦1A"Á"
A0c                ód   • U R                   (       a  [        R                  R                  $ [        $ r3   )r�   r   Ú	WriteFlagÚno_compressr¼   r>   s    r/   Ú%_get_send_message_op_flags_from_stater‹  ·  s%   € ð ×%×%Ü×Ñ×+Ñ+Ð+ÜÐr1   c                ó^   • U R                      SU l        S S S 5        g ! , (       d  f       g = frs  )r‰   r�   r>   s    r/   Ú_reset_per_message_stater�  ¿  s   € Ø	�‹Ø).ˆÔ&÷ 
�Žús   �ž
,c                ól  • UR                      [        U5      (       d
   S S S 5        gUR                  (       a:  [        US 5      [        R
                  " U[        U5      5      4nSUl        [        nO'[        R
                  " U[        U5      5      4n[        nU R                  R                  U[        X5      5        UR                  R                  U5        [        U5         UR                   R                  5         XAR                  ;  a  [        U5      sS S S 5        $ M?  ! , (       d  f       g = frs  )r‰   r¬   r�   r¾   r   ÚSendMessageOperationr‹  Ú-_SEND_INITIAL_METADATA_AND_SEND_MESSAGE_TOKENÚ_SEND_MESSAGE_TOKENrÇ   rÅ   rè   rŸ   rÆ   r�  r[  )rñ   r?   r†  rÊ   r­   s        r/   Ú_send_responser’  Ä  sü   € ð 
�‹Ü# E×*Ñ*Ø÷ 
ˆð ×)×)ä/°°tÓ<Ü×+Ò+Ø'Ü9¸%Ó@óðˆJð .3ˆEÔ*ÜA‰Eô ×+Ò+Ø'Ü9¸%Ó@óðˆJô (ˆEØ�‰×)Ñ)Øœ eÓ3ô	
ð 	�	‰	�‰�eÔÜ  Ô'ØØ�O‰O× Ñ Ô"ØŸI™IÓ%Ü+¨EÓ2÷; 
‰ñ4 ÷5 
�ús   �D%¨C1D%Ä#D%Ä%
D3c           	     ób  • UR                      UR                  [        Laö  [        U5      n[	        U5      n[
        R                  " UR                  X4[        5      /nUR                  (       a  UR                  [        US 5      5        Ub/  UR                  [
        R                  " U[        U5      5      5        U R                  R                  U[!        U["        5      5        SUl        ['        U5        UR(                  R+                  ["        5        S S S 5        g ! , (       d  f       g = frÀ   )r‰   r‹   rÁ   r@   rE   r   rÂ   r’   r¼   r�   r¦   r¾   r�  r‹  rÇ   rÅ   r³   rÄ   r”   r�  rŸ   rÆ   )rñ   r?   r†  r8   rD   rÊ   s         r/   Ú_statusr”  ç  sè   € ð
 
�‹Ø�<‰<œzÒ)Ü# EÓ*ˆDÜ˜u“oˆGä×4Ò4Ø×+Ñ+¨T¼LóðˆJð
 ×-×-Ø×!Ñ!Ô"AÀ%ÈÓ"NÔOØ"Ñ.Ø×!Ñ!Ü×/Ò/Ø+Ü=¸eÓDóôð �N‰N×-Ñ-ØÜ(¨Ô0NÓOôð "ˆEŒNÜ$ UÔ+Ø�I‰I�M‰MÔ8Ô9÷1 
�Žús   �D
D Ä 
D.c                óP  • [         R                  " U 5         U" 5       nUb1  [        XX&U5      u  pxU(       a  [        XXu5      n	U	b  [	        XU	5        [         R                  " 5         g ! [
         a    [        R                  " 5          N7f = f! [         R                  " 5         f = fr3   )	r   Ú'install_context_from_request_call_eventr~  r‡  r”  r1  ru  ry  Úuninstall_context)
rñ   r?   rz  Úargument_thunkrÛ   r…  r{  r„  Úproceedr†  s
             r/   Ú_unary_response_in_poolrš    sœ   € ô ×2Ò2°9Ô=ð#Ù!Ó#ˆØÑÜ .Ø (Ð6Jó!ÑˆHö Ü&9Ø hó'Ð#ð 'Ñ2Ü˜IÐ.AÔBô 	× Ò Õ"øô ó Ü×ÒÖðûô 	× Ò Õ"ús#   ˜;A) Á)BÂB Â
BÂB ÂB%c           	     ó²  ^ ^^• [         R                  " T 5        SUU U4S jjn U" 5       nUbU  [        US5      (       a   UR                  (       a  [	        T TUUUUS9  O$[	        T TX'U5      u  p‰U	(       a  [        T TXh5        [         R                  " 5         g ! [         a    [        R                  " 5          N7f = f! [         R                  " 5         f = f)Nc                óf   >• U c  [        TTS 5        g [        TTU T5      nUb  [        TTU5        g g r3   )r”  r‡  r’  )r„  r†  r…  rñ   r?   s     €€€r/   Úsend_responseÚ/_stream_response_in_pool.<locals>.send_response-  sD   ø€ ØÑÜ�I˜u dÕ+ä"5Ø˜5 (Ð,?ó#Ðð #Ñ.Ü˜y¨%Ð1DÕEð /r1   Úexperimental_non_blocking)r|  )r„  r   ra   rG  )
r   r–  ÚhasattrrŸ  r~  Ú3_send_message_callback_to_blocking_iterator_adapterr1  ru  ry  r—  )
rñ   r?   rz  r˜  rÛ   r…  r�  r{  r€  r™  s
   ``   `    r/   Ú_stream_response_in_poolr¢  #  sË   ú€ ô ×2Ò2°9Ô=÷Fñ Fð#Ù!Ó#ˆØÑä˜Ð"=×>Ñ>Ø×6×6äØØØØØ(Ø+8óô .<Ø˜u hÐ:Nó.Ñ*Ð!ö ÜGØ! 5¨-ôô 	× Ò Õ"øô ó Ü×ÒÖðûô 	× Ò Õ"ús/   ¥:B ÁB? Á $B ÂB<Â9B? Â;B<Â<B? Â?Cc                óV   • U R                   [        L=(       a    U R                  (       + $ r3   )r‹   rÁ   r”   r>   s    r/   r¬   r¬   T  s   € Ø�<‰<œzÐ)×@°%·.±.Ô.@Ð@r1   c                óh   •  [        XU5      u  pEU(       a  U" U5        [        U5      (       d  g Og M2  r3   )r�  r¬   )rñ   r?   r|  r€  r„  r™  s         r/   r¡  r¡  X  sD   € ð ÜAØÐ/ó
Ñˆö Ù" 8Ô,Ü'¨×.Ñ.Øð /ð ñ r1   c                ó’   • [        U S5      (       a5  [        U R                  [        R                  5      (       a  U R                  $ U$ )NÚexperimental_thread_pool)r   Ú
isinstancer¦  r   ÚThreadPoolExecutor)rz  Údefault_thread_pools     r/   Ú _select_thread_pool_for_behaviorrª  j  sC   € ô ˆxÐ3×4Ñ4¼Ø×)Ñ)¬7×+EÑ+E÷:ñ :ð ×0Ñ0Ð0ØÐr1   c           
     óö   • [        XUR                  5      n[        UR                  U5      nUR	                  UR
                  R                  [        U UUR                  UUR                  UR                  5      $ r3   )	ro  rÛ   rª  Úunary_unaryÚsubmitrˆ   Úrunrš  r…  ©rñ   r?   rƒ   r©  rm  Úthread_pools         r/   Ú_handle_unary_unaryr±  u  sz   € ô #Ø˜.×=Ñ=ó€Mô 3Ø×"Ñ"Ð$7ó€Kð ×ÑØ�‰×ÑÜØØØ×"Ñ"ØØ×+Ñ+Ø×*Ñ*ó	ð 	r1   c           
     óö   • [        XUR                  5      n[        UR                  U5      nUR	                  UR
                  R                  [        U UUR                  UUR                  UR                  5      $ r3   )	ro  rÛ   rª  Úunary_streamr­  rˆ   r®  r¢  r…  r¯  s         r/   Ú_handle_unary_streamr´  �  sz   € ô #Ø˜.×=Ñ=ó€Mô 3Ø×#Ñ#Ð%8ó€Kð ×ÑØ�‰×ÑÜ ØØØ×#Ñ#ØØ×+Ñ+Ø×*Ñ*ó	ð 	r1   c           
     ó  ^• [        XR                  UR                  5      m[        UR                  U5      nUR                  UR                  R                  [        U UUR                  U4S jUR                  UR                  5      $ )Nc                 ó   >• T $ r3   rI   ©Úrequest_iterators   €r/   Ú<lambda>Ú&_handle_stream_unary.<locals>.<lambda>·  ó   ø€ Ñ r1   )
rK  rÇ   rÛ   rª  Ústream_unaryr­  rˆ   r®  rš  r…  ©rñ   r?   rƒ   r©  r°  r¸  s        @r/   Ú_handle_stream_unaryr¾  ¥  s€   ø€ ô (Ø�~‰~˜~×BÑBóÐô 3Ø×#Ñ#Ð%8ó€Kð ×ÑØ�‰×ÑÜØØØ×#Ñ#Ü Ø×+Ñ+Ø×*Ñ*ó	ð 	r1   c           
     ó  ^• [        XR                  UR                  5      m[        UR                  U5      nUR                  UR                  R                  [        U UUR                  U4S jUR                  UR                  5      $ )Nc                 ó   >• T $ r3   rI   r·  s   €r/   r¹  Ú'_handle_stream_stream.<locals>.<lambda>Ï  r»  r1   )
rK  rÇ   rÛ   rª  Ústream_streamr­  rˆ   r®  r¢  r…  r½  s        @r/   Ú_handle_stream_streamrÃ  ½  s€   ø€ ô (Ø�~‰~˜~×BÑBóÐô 3Ø×$Ñ$Ð&9ó€Kð ×ÑØ�‰×ÑÜ ØØØ×$Ñ$Ü Ø×+Ñ+Ø×*Ñ*ó	ð 	r1   c                óR  ^•     SU4S jjnTR                  5       nU(       d*  [        R                  " U R                  R                  5      n[        UU R                  5      nUb&  UR                  R                  UR                  XF5      $ UR                  R                  XF5      $ )Nc                ó&   >• TR                  U 5      $ r3   )r^   )r]   Úmethod_with_handlers    €r/   Úquery_handlersÚ,_find_method_handler.<locals>.query_handlersÛ  s   ø€ ð #×*Ñ*Ð+?Ó@Ð@r1   rb   )
rY   r   r
  rø   rO   rG   rP   rˆ   r®  Úexecute)rñ   r?   rÆ  Úinterceptor_pipelinerÇ  Úmethod_namer]   s     `    r/   Ú_find_method_handlerrÌ  Õ  s    ø€ ðAØ1ðAà	(÷Að
 &×*Ñ*Ó,€KÞÜ—n’n Y×%;Ñ%;×%BÑ%BÓCˆä.ØØ×%Ñ%óÐð
 Ñ'Ø�}‰}× Ñ Ø ×(Ñ(¨.ó
ð 	
ð �=‰=×Ñ˜^ÓBÐBr1   c                óÈ   ^• [        TS 5      [        R                  " [        5      [        R                  " S X#[        5      4nU R
                  R                  UU4S j5        g )Nc                ó   >• TS4$ rª   rI   )Ú_ignored_eventÚ	rpc_states    €r/   r¹  Ú_reject_rpc.<locals>.<lambda>ÿ  s   ø€ ØØñ 
r1   )r¾   r   ÚReceiveCloseOnServerOperationr¼   rÂ   rÇ   rÅ   )rñ   rÐ  r5  rD   rÊ   s    `   r/   Ú_reject_rpcrÓ  ð  sU   ø€ ô 	(¨	°4Ó8Ü×,Ò,¬\Ó:Ü×,Ò,Ø�&¤<ó	
ð€Jð ‡N�N×%Ñ%Øô	
õr1   c                ó  • UR                      U R                  R                  [        R                  " [
        5      4[        U5      5        UR                  R                  [        5        UR                  (       a;  UR                  (       a  [        XX#5      sS S S 5        $ [        XX#5      sS S S 5        $ UR                  (       a  [        XX#5      sS S S 5        $ [        XX#5      sS S S 5        $ ! , (       d  f       g = fr3   )r‰   rÇ   rÅ   r   rÒ  r¼   rÓ   rŸ   rÆ   rÐ   Úrequest_streamingÚresponse_streamingrÃ  r¾  r´  r±  )rñ   r?   rƒ   r°  s       r/   Ú_handle_with_method_handlerr×    s½   € ð 
�‹Ø�‰×)Ñ)Ü×1Ò1´,Ó?ÐAÜ$ UÓ+ô	
ð 	�	‰	�‰Ô4Ô5Ø×+×+Ø×0×0Ü,Ø nó÷ 
‰ô (Ø .ó÷ 
‰ð ×,×,Ü'Ø .ó÷ 
‰ô$ #Ø˜nó
÷% 
��ús   �BC2Â"C2Â7C2ÃC2Ã2
D c                ó`  • U R                   (       d  gU R                  R                  (       d  UR                  5       (       a…  [	        5       n [        U UUU5      nUc*  [        U U[        R                  R                  S5        US4$ U(       a*  [        U U[        R                  R                  S5        US4$ U[!        XXc5      4$ g! [         aZ  nSR                  U5      n[        R                  U5        [        U U[        R                  R                  S5        US4s SnA$ SnAff = f)aÃ  Handles RPC based on provided handlers.

  When receiving a call event from Core, registered method will have its
name as tag, we pass the tag as registered_method_name to this method,
then we can find the handler in registered_method_handlers based on
the method name.

  For call event with unregistered method, the method name will be included
in rpc_event.call_details.method and we need to query the generics handlers
to find the actual handler.
)NNzException servicing handler: {}s   Error in service handler!Ns   Method not found!s   Concurrent RPC limit exceeded!)Úsuccessrø   rO   rY   r;   rÌ  r1  rk  r-  rt  rÓ  r   r6   r7   rl  Úresource_exhaustedr×  )	rñ   rÆ  rÊ  r°  Úconcurrency_exceededrÐ  rƒ   rt  rD   s	            r/   Ú_handle_callrÜ  #  s/  € ð$ ××ØØ×Ñ×$×$Ð(;×(@Ñ(@×(BÑ(BÜ“Kˆ	ð	#Ü1ØØØ#Ø$ó	ˆNð  Ñ!ÜØØÜ×!Ñ!×/Ñ/Ø$ô	ð ˜d�?Ð"ÞÜØØÜ×!Ñ!×4Ñ4Ø1ô	ð ˜d�?Ð"àÜ'Ø nóð
ð 	
ð øôA ó 		#Ø7×>Ñ>¸yÓIˆGÜ×Ñ˜gÔ&ÜØØÜ×!Ñ!×)Ñ)Ø,ô	ð ˜d�?Õ"ûð		#ús   ÁC	 Ã	
D-ÃAD(Ä"D-Ä(D-c                  ó    • \ rS rSrSrSrSrSrg)Ú_ServerStageic  ÚstoppedÚstartedÚgracerI   N)rJ   rK   rL   rM   ÚSTOPPEDÚSTARTEDÚGRACErN   rI   r1   r/   rÞ  rÞ  c  s   † à€GØ€GØƒEr1   rÞ  c                  óÎ   • \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'               S#S  jrS!rg")$Ú_ServerStateij  zthreading.RLockÚlockúcygrpc.CompletionQueueÚcompletion_queueúcygrpc.ServerÚserverr…   r|   ú Dict[str, grpc.RpcMethodHandler]Úregistered_method_handlersú'Optional[_interceptor._ServicePipeline]rÊ  úfutures.ThreadPoolExecutorr°  rÞ  Ústageúthreading.EventÚtermination_eventzList[threading.Event]Úshutdown_eventsúOptional[int]Úmaximum_concurrent_rpcsÚintÚactive_rpc_countzSet[_RPCState]Ú
rpc_stateszSet[str]rŸ   rŒ   Úserver_deallocatedc                ó|  • [         R                  " 5       U l        Xl        X l        [        U5      U l        X@l        XPl        [        R                  U l        [         R                  " 5       U l        U R                  /U l        X`l        SU l        0 U l        [%        5       U l        [%        5       U l        SU l        g )Nr   F)rœ   ÚRLockrç  ré  rë  Úlistr|   rÊ  r°  rÞ  râ  rð  ÚEventrò  ró  rõ  r÷  rí  rž   rø  rŸ   rù  )rX   ré  rë  r|   rÊ  r°  rõ  s          r/   rn   Ú_ServerState.__init__|  s˜   € ô —O’OÓ%ˆŒ	Ø 0ÔØŒÜ $Ð%5Ó 6ˆÔØ$8Ô!Ø&ÔÜ!×)Ñ)ˆŒ
Ü!*§¢Ó!2ˆÔØ $× 6Ñ 6Ð7ˆÔØ'>Ô$Ø !ˆÔØ*,ˆÔ'ô ›%ˆŒÜ“5ˆŒð #(ˆÕr1   )r÷  ré  rŸ   r|   rÊ  rç  rõ  rí  rø  rë  rù  ró  rð  rò  r°  N)ré  rè  rë  rê  r|   ú Sequence[grpc.GenericRpcHandler]rÊ  rî  r°  rï  rõ  rô  )rJ   rK   rL   rM   r¢   rn   rN   rI   r1   r/   ræ  ræ  j  s›   ‡ Ø
ÓØ,Ó,ØÓØ2Ó2Ø @Ó@ØAÓAØ+Ó+ØÓØ&Ó&Ø*Ó*Ø*Ó*ØÓØÓØ	ƒMØÓð(à0ð(ð ð(ð ;ð	(ð
 Fð(ð 0ð(ð "/÷(r1   ræ  c                ó†   • U R                      U R                  R                  U5        S S S 5        g ! , (       d  f       g = fr3   )rç  r|   Úextend)r?   r|   s     r/   Ú_add_generic_handlersr  š  s*   € ð 
�‹Ø×Ñ×%Ñ%Ð&6Ô7÷ 
�Žúó	   �2²
A c                ó†   • U R                      U R                  R                  U5        S S S 5        g ! , (       d  f       g = fr3   )rç  rí  Úupdate)r?   Úmethod_handlerss     r/   Ú_add_registered_method_handlersr  ¡  s)   € ð 
�‹Ø×(Ñ(×/Ñ/°Ô@÷ 
�Žúr  c                ó†   • U R                      U R                  R                  U5      sS S S 5        $ ! , (       d  f       g = fr3   )rç  rë  Úadd_http2_port)r?   Úaddresss     r/   Ú_add_insecure_portr  ¨  s%   € Ø	�‹Ø�|‰|×*Ñ*¨7Ó3÷ 
��ús	   �2²
A c                óš   • U R                      U R                  R                  XR                  5      sS S S 5        $ ! , (       d  f       g = fr3   )rç  rë  r	  Ú_credentials)r?   r
  Úserver_credentialss      r/   Ú_add_secure_portr  ­  s0   € ð
 
�‹Ø�|‰|×*Ñ*Ø×4Ñ4ó
÷ 
��ús	   �%<¼
A
c                ó¬   • U R                   R                  U R                  U R                  [        5        U R                  R                  [        5        g r3   )rë  r!   ré  Ú_REQUEST_CALL_TAGrŸ   rÆ   r>   s    r/   Ú_request_callr  ¸  s;   € Ø	‡L�L×ÑØ×Ñ × 6Ñ 6Ô8Iôð 
‡I�I‡M�MÔ#Õ$r1   c                ó¢   • UnU R                   R                  U R                  U R                  UU5        U R                  R	                  U5        g r3   )rë  Úrequest_registered_callré  rŸ   rÆ   )r?   rO   Úregistered_call_tags      r/   Ú_request_registered_callr  ¿  sE   € Ø ÐØ	‡L�L×(Ñ(Ø×ÑØ×ÑØØô	ð 
‡I�I‡M�MÐ%Õ&r1   c                óî   • U R                   (       dd  U R                  (       dS  U R                  R                  5         U R                   H  nUR                  5         M     [        R                  U l        ggr™   )	rø  rŸ   rë  Údestroyró  rž   rÞ  râ  rð  )r?   Úshutdown_events     r/   Ú_stop_servingr  Ë  sP   € Ø×× E§I§IØ�‰×ÑÔØ#×3Ô3ˆNØ×ÑÖ ñ 4ä"×*Ñ*ˆŒØØr1   c                óz   • U R                      U =R                  S-  sl        S S S 5        g ! , (       d  f       g = f)Né   )rç  r÷  r>   s    r/   Ú_on_call_completedr  Õ  s$   € Ø	�‹Ø×Ò !Ñ#Õ÷ 
�Žús   �,¬
:c                óØ  ^ • SnUR                   [        L aH  T R                     T R                  R	                  [        5        [        T 5      (       a  SnS S S 5        U$ UR                   [        L d  UR                   T R                  ;   Ga–  S nUR                   T R                  ;   a3  UR                   n[        UT R                  R                  US 5      5      nO[        T R                  5      nT R                     T R                  R	                  UR                   5        T R                  S L=(       a    T R                  T R                  :¬  n[        UUT R                  T R                   U5      u  pgUb  T R"                  R%                  U5        Ub*  T =R                  S-  sl        UR'                  U 4S j5        T R(                  [*        R,                  L a)  UT R                  ;   a  [/        T U5        O[1        T 5        O[        T 5      (       a  SnS S S 5        U$ UR                  U5      u  phU H  n	 U	" 5         M     UbD  T R                     T R"                  R	                  U5        [        T 5      (       a  SnS S S 5        U$ U$ ! , (       d  f       U$ = f! , (       d  f       U$ = f! [2         a    [4        R7                  S5         Mž  f = f! , (       d  f       U$ = f)NTFr  c                ó   >• [        T5      $ r3   )r  )Ú_unused_futurer?   s    €r/   r¹  Ú-_process_event_and_continue.<locals>.<lambda>  s   ø€ Ô+=¸eÔ+Dr1   zException calling callback!)ÚtagÚ_SHUTDOWN_TAGrç  rŸ   r«   r  r  rí  rg   r5   rw   r|   rõ  r÷  rÜ  rÊ  r°  rø  rÆ   Úadd_done_callbackrð  rÞ  rã  r  r  r1  r-  rt  )
r?   ÚeventÚshould_continueÚregistered_method_namerÆ  rÛ  rÐ  Ú
rpc_futurer–   r  s
   `         r/   Ú_process_event_and_continuer)  Û  s�  ø€ ð €OØ‡y�y”MÒ!Ø�Z‹ZØ�I‰I×Ñœ]Ô+Ü˜U×#Ñ#Ø"'�÷ ðx Ððo 	�	‰	Ô&Ò&Ø�9‰9˜×8Ñ8Ô8à!%ÐØ�9‰9˜×8Ñ8Ó8Ø%*§Y¡YÐ"Ü"3Ø&Ø×0Ñ0×4Ñ4Ø*¨Dóó#Ñô #1Ø×&Ñ&ó#Ðð �Z‹ZØ�I‰I×Ñ˜UŸY™YÔ'à×-Ñ-°TÐ9÷ LØ×*Ñ*¨e×.KÑ.KÑKð !ô %1ØØ#Ø×*Ñ*Ø×!Ñ!Ø$ó%Ñ!ˆIð Ñ$Ø× Ñ ×$Ñ$ YÔ/ØÑ%Ø×&Ò&¨!Ñ+Õ&Ø×,Ñ,ÜDôð �{‰{œl×2Ñ2Ò2Ø)¨U×-MÑ-MÓMÜ,¨UÐ4JÕKä! %Õ(Ü˜u×%Ñ%Ø"'�÷5 ðN Ðð  %Ÿy™y¨Ó/Ñˆ	Û!ˆHðAÙ–
ñ "ð
 Ñ Ø—“Ø× Ñ ×'Ñ'¨	Ô2Ü  ×'Ñ'Ø&+�O÷ ð Ðˆ?Ð÷y ŒZðx Ðú÷O ŒZðN Ðûô ó AÜ×!Ñ!Ð"?×@ðAú÷ ”ð Ðús6   £2JÃ=DJ"È<J4É.KÊ
JÊ"
J1Ê4KËKË
K)c                ó0  •  [         R                   " 5       [        -   nU R                  R                  U5      nU R                  (       a  [        U 5        UR                  [        R                  R                  :H  nU(       d  [        X5      (       d  g S nM–  r3   )rú   Ú"_DEALLOCATED_SERVER_CHECK_PERIOD_Sré  Úpollrù  Ú_begin_shutdown_onceÚcompletion_typer   ÚCompletionTypeÚqueue_timeoutr)  )r?   Útimeoutr%  Ú
is_timeouts       r/   Ú_server3    s{   € Ø
Ü—)’)“+Ô BÑBˆØ×&Ñ&×+Ñ+¨GÓ4ˆØ×#×#Ü  Ô'à×!Ñ!¤V×%:Ñ%:×%HÑ%HÑHð 	ö Ô"=¸e×"KÑ"KØð ˆñ r1   c                óF  • U R                      U R                  [        R                  L a^  U R                  R                  U R                  [        5        [        R                  U l        U R                  R                  [        5        S S S 5        g ! , (       d  f       g = fr3   )rç  rð  rÞ  rã  rë  r    ré  r#  rä  rŸ   rÆ   r>   s    r/   r-  r-  0  s\   € Ø	�‹Ø�;‰;œ,×.Ñ.Ò.Ø�L‰L×!Ñ! %×"8Ñ"8¼-ÔHÜ&×,Ñ,ˆEŒKØ�I‰I�M‰Mœ-Ô(÷	 
�Žús   �A<BÂ
B c                ó4  ^ ^^• T R                      T R                  [        R                  L a0  [        R
                  " 5       mTR                  5         TsS S S 5        $ [        T 5        [        R
                  " 5       mT R                  R                  T5        Tc  T R                  R                  5         O7UUU 4S jn[        R                  " US9nUR                  5         TsS S S 5        $  S S S 5        TR                  5         T$ ! , (       d  f       N = f)Nc                 ó¤   >• TR                  T S9  TR                     TR                  R                  5         S S S 5        g ! , (       d  f       g = f©N)r1  )r[  rç  rë  Úcancel_all_calls)rá  r  r?   s   €€€r/   Úcancel_all_calls_after_graceÚ+_stop.<locals>.cancel_all_calls_after_graceE  s5   ø€ Ø×#Ñ#¨EÐ#Ñ2Ø—Z“ZØ—L‘L×1Ñ1Ô3÷  —Z–Zús   �AÁ
A)Útarget)rç  rð  rÞ  râ  rœ   rý  rž   r-  ró  r¦   rë  r8  ÚThreadÚstartr[  )r?   rá  r9  Úthreadr  s   ``  @r/   Ú_stopr?  8  sÎ   ú€ Ø	�‹Ø�;‰;œ,×.Ñ.Ò.Ü&Ÿ_š_Ó.ˆNØ×ÑÔ Ø!÷	 
‰ô
 	˜UÔ#Ü"ŸšÓ*ˆØ×Ñ×$Ñ$ ^Ô4Ø‰=Ø�L‰L×)Ñ)Õ+÷4ô
 ×%Ò%Ð-IÑJˆFØ�L‰LŒNØ!÷' 
‰ð ,÷ 
ð( ×ÑÔØÐ÷+ 
�ús   �AD	ÁBD	Ä	
Dc                ó¶  • U R                      U R                  [        R                  La  Sn[	        U5      eU R
                  R                  5         [        R                  U l        U R                   H  n[        X5        M     [        U 5        [        R                  " [        U 4S9nSUl        UR                  5         S S S 5        g ! , (       d  f       g = f)Nz$Cannot start already-started server!)r;  ÚargsT)rç  rð  rÞ  râ  r!  rë  r=  rã  rí  r  r  rœ   r<  r3  Údaemon)r?   r#  rO   r>  s       r/   Ú_startrC  Q  s˜   € Ø	�‹Ø�;‰;œl×2Ñ2Ò2Ø>ˆIÜ˜YÓ'Ð'Ø�‰×ÑÔÜ"×*Ñ*ˆŒà×6Ô6ˆFÜ$ UÖ3ñ 7ô 	�eÔÜ×!Ò!¬°u°hÑ?ˆØˆŒØ�‰Œ÷ 
�Žús   �B4C
Ã

Cc                óX   • U  H$  n[        USS 5      nUb  M  SU S3n[        U5      e   g )Nr�   Ú"zP" must conform togrpc.GenericRpcHandler type but does not have "service" method!)ÚgetattrÚAttributeError)Úgeneric_rpc_handlersÚgeneric_rpc_handlerÚservice_attributer#  s       r/   Ú_validate_generic_rpc_handlersrK  b  sL   € ó  4ÐÜ#Ð$7¸ÀDÓIÐØÓ$àÐ'Ð(ð )Rð Rð ô ! Ó+Ð+ò  4r1   c                ó|   • [         R                  " U5      n[        R                  " U5      n[	        U 5      U-   U-   $ r3   )r   Úcreate_channel_optionr   Ú(create_server_call_tracer_factory_optionr¶   )Úbase_optionsr  ÚxdsÚcompression_optionÚ'maybe_server_call_tracer_factory_options        r/   Ú_augment_optionsrS  o  sG   € ô
 &×;Ò;¸KÓHÐä×?Ò?ÀÓDð ,ô 	ˆlÓØ
ñ	à
1ñ	2ðr1   c                  ó¶   • \ rS rSr% S\S'                 SS jr    SS jr      SS jrSS jr      SS jr	SS	 jr
SSS jjrSS jrS rSrg
)Ú_Serveri  ræ  rí   c                óð   • [         R                  " 5       n[         R                  " [        XFU5      U5      n	U	R	                  U5        [        UU	U[        R                  " U5      UU5      U l        X�l	        g r3   )
r   ÚCompletionQueueÚServerrS  Úregister_completion_queueræ  r   Úservice_pipelinerí   Ú
_cy_server)
rX   r°  r|   ÚinterceptorsÚoptionsrõ  r  rP  ré  rë  s
             r/   rn   Ú_Server.__init__ƒ  sj   € ô "×1Ò1Ó3ÐÜ—’Ô/°ÀcÓJÈCÓPˆØ×(Ñ(Ð)9Ô:Ü"ØØØÜ×)Ò)¨,Ó7ØØ#ó
ˆŒð !�r1   c                óF   • [        U5        [        U R                  U5        g r3   )rK  r  rí   )rX   rH  s     r/   Úadd_generic_rpc_handlersÚ _Server.add_generic_rpc_handlersš  s   € ô 	'Ð';Ô<Ü˜dŸk™kÐ+?Õ@r1   c                óè  • U R                   R                     U R                   R                  [        R                  L a!  Sn[
        R                  U5         S S S 5        g  S S S 5        UR                  5        VVs0 s H  u  pE[        R                  " X5      U_M     nnnU H  nU R                  R                  U5        M      [        U R                   U5        g ! , (       d  f       N‚= fs  snnf )Nz7Cannot register method handlers once server has started)rí   rç  rð  rÞ  rã  r-  Úwarningr  r   Úfully_qualified_methodr[  Úregister_methodr  )rX   Úservice_namer  r#  rO   rƒ   Úmethod_to_handlersrd  s           r/   Úadd_registered_method_handlersÚ&_Server.add_registered_method_handlers   sÌ   € ð �[‰[×ÓØ�{‰{× Ñ ¤L×$8Ñ$8Ò8àMð ô —‘ 	Ô*Ø÷ ÐØ8÷ ð +:×*?Ñ*?Ô*Aô
â*AÑ&�ô ×*Ò*¨<Ó@À.ÒPÙ*Að 	ñ 
ó '9Ð"Ø�O‰O×+Ñ+Ð,BÖCñ '9ä'¨¯©Ð5GÕH÷ Õüó
s   —A CÁ<#C.Ã
C+c           	     ó€   • [         R                  " U[        U R                  [         R                  " U5      5      5      $ r3   )r   Úvalidate_port_binding_resultr  rí   r0  )rX   r
  s     r/   Úadd_insecure_portÚ_Server.add_insecure_port·  s/   € Ü×3Ò3ØÔ'¨¯©´W·^²^ÀGÓ5LÓMó
ð 	
r1   c           	     ó‚   • [         R                  " U[        U R                  [         R                  " U5      U5      5      $ r3   )r   rk  r  rí   r0  )rX   r
  r  s      r/   Úadd_secure_portÚ_Server.add_secure_port¼  s7   € ô ×3Ò3ØÜØ—‘œWŸ^š^¨GÓ4Ð6Hóó
ð 	
r1   c                ó.   • [        U R                  5        g r3   )rC  rí   rW   s    r/   r=  Ú_Server.startÆ  s   € Üˆt�{‰{Õr1   Nc                ó¦   • [         R                  " U R                  R                  R                  U R                  R                  R                  US9$ r7  )r   r[  rí   rò  Úis_set)rX   r1  s     r/   Úwait_for_terminationÚ_Server.wait_for_terminationÉ  s>   € ô �|Š|Ø�K‰K×)Ñ)×.Ñ.Ø�K‰K×)Ñ)×0Ñ0Øñ
ð 	
r1   c                ó.   • [        U R                  U5      $ r3   )r?  rí   )rX   rá  s     r/   ÚstopÚ_Server.stopÓ  s   € Ü�T—[‘[ %Ó(Ð(r1   c                óJ   • [        U S5      (       a  SU R                  l        g g )Nrí   T)r   rí   rù  rW   s    r/   Ú__del__Ú_Server.__del__Ö  s"   € Ü�4˜×"Ñ"ð .2ˆD�K‰KÕ*ð #r1   )r[  rí   )r°  rï  r|   rÿ  r\  ú Sequence[grpc.ServerInterceptor]r]  úSequence[ChannelArgumentType]rõ  rô  r  rŽ   rP  rŒ   ©rH  ú Iterable[grpc.GenericRpcHandler]ra   rG  )rf  rt   r  rì  ra   rG  )r
  rt   ra   rö  )r
  rt   r  úgrpc.ServerCredentialsra   rö  rF  r3   )r1  úOptional[float]ra   rŒ   )rá  r‚  ra   rñ  )rJ   rK   rL   rM   r¢   rn   r`  rh  rl  ro  r=  ru  rx  r{  rN   rI   r1   r/   rU  rU    sÄ   ‡ ØÓð!à/ð!ð ;ð!ð 7ð	!ð
 /ð!ð "/ð!ð 0ð!ð ô!ð.AØ$DðAà	ôAðIàðIð :ðIð 
ô	Iô.
ð

Øð
Ø0Fð
à	ô
ôö
ô)õ2r1   rU  c           	     ó:   • [        U5        [        U UUUUUU5      $ r3   )rK  rU  )r°  rH  r\  r]  rõ  r  rP  s          r/   Úcreate_serverr„  Ý  s/   € ô #Ð#7Ô8ÜØØØØØØØóð r1   )r.   rë   ra   rI  )r8   rH  ra   úcygrpc.StatusCode)r?   r;   ra   r…  )r?   r;   r8   r…  ra   r…  )r?   r;   ra   rI  )r?   r;   ra   rG  )r?   r;   r­   rt   ra   r   )r?   r;   r­   rt   ra   r   )r?   r;   r·   r‘   ra   r‘   )r?   r;   r·   r‘   ra   zcygrpc.Operation)
r?   r;   rÇ   rL  r8   r…  rD   rI  ra   rG  )r?   r;   ra   r   )r?   r;   rÇ   rL  rÛ   rî   ra   r   )rñ   rë   r?   r;   rÛ   rî   ra   úCallable[[], Any]r3   )rñ   rë   r?   r;   rz  r   r{  r   rÛ   rî   r|  z(Optional[Callable[[ResponseType], None]]ra   z8Tuple[Union[ResponseType, Iterator[ResponseType]], bool])rñ   rë   r?   r;   r€  úIterator[ResponseType]ra   zTuple[ResponseType, bool])
rñ   rë   r?   r;   r„  r   r…  úOptional[SerializingFunction]ra   r“   )r?   r;   ra   zUnion[int, cygrpc.WriteFlag])rñ   rë   r?   r;   r†  rI  ra   rŒ   )rñ   rë   r?   r;   r†  r“   ra   rG  )rñ   rë   r?   r;   rz  r   r˜  r†  rÛ   rˆ  r…  rˆ  ra   rG  )rñ   rë   r?   r;   rz  r   r˜  r†  rÛ   rî   r…  rˆ  ra   rG  )r?   r;   ra   rŒ   )
rñ   rë   r?   r;   r|  zCallable[[ResponseType], None]r€  r‡  ra   rG  )rz  r   r©  rï  ra   rï  )
rñ   rë   r?   r;   rƒ   úgrpc.RpcMethodHandlerr©  rï  ra   úfutures.Future)
rñ   rë   r?   r;   rÆ  rR   rÊ  rî  ra   rc   )rñ   rë   rÐ  r;   r5  r…  rD   rI  )
rñ   rë   r?   r;   rƒ   r‰  r°  rï  ra   rŠ  )rñ   rë   rÆ  rR   rÊ  rî  r°  rï  rÛ  rŒ   ra   z4Tuple[Optional[_RPCState], Optional[futures.Future]])r?   ræ  r|   r€  ra   rG  )r?   ræ  r  rì  ra   rG  )r?   ræ  r
  rI  ra   rö  )r?   ræ  r
  rI  r  r�  ra   rö  )r?   ræ  ra   rG  )r?   ræ  rO   rt   ra   rG  )r?   ræ  ra   rŒ   )r?   ræ  r%  rë   ra   rŒ   )r?   ræ  rá  r‚  ra   rñ  r  )rO  r~  r  rŽ   rP  rŒ   ra   r~  )r°  rï  rH  rÿ  r\  r}  r]  r~  rõ  rô  r  rŽ   rP  rŒ   ra   rU  )„Ú__doc__Ú
__future__r   rd   ÚcollectionsÚ
concurrentr   rš   ÚenumÚloggingrœ   rú   ru  Útypingr   r   r   r   r	   r
   r   r   r   r   r   r   r¤   r   r   r   r   Úgrpc._cythonr   Úgrpc._typingr   r   r   r   r   r   r   r   r   Útyping_extensionsr   Ú	getLoggerrJ   r-  r#  r  rÐ   rà   rÖ   r‘  r�  rÄ   rÃ   r    rÎ   rÁ   r¼   r+  Ú_INF_TIMEOUTr0   r:   r@   rB   rE   Ú
namedtupleÚHandlerCallDetailsrG   ÚABCrR   rg   rw   r;   r¨   r®   r³   r¹   r¾   rË   rÓ   rÝ   rã   rè   ÚServicerContextrê   rK  ro  r~  r�  r‡  r‹  r�  r’  r”  rš  r¢  r¬   r¡  rª  r±  r´  r¾  rÃ  rÌ  rÓ  r×  rÜ  ÚuniqueÚEnumrÞ  ræ  r  r  r  r  r  r  r  r  r)  r3  r-  r?  rC  rK  rS  rX  rU  r„  rI   r1   r/   Ú<module>r�     s   ðñ 2å "ã 
Û Ý Û Û Û Û Û Û ÷÷ ÷ ó ó Ý Ý Ý Ý Ý Ý 3Ý ,Ý .Ý %Ý ,Ý %Ý ,Ý *Ý .Ý &à
×
Ò
˜HÓ
%€à€Ø"Ð à!:Ð Ø6Ð Ø*Ð Ø$Ð à*ð .ð ";Ð à5ð 9ð 	€Ø
€Ø€
à€à%(Ð "Ø€ô7ôMô
)ð)Øð)Ø-ð)àô)ô;ô
	Ø×ÒØð	
óð 	×Ñô
	ô	$ˆc�g‰gô 	$ô(˜ô (ô(�Wô ÷0 ñ  ôFðØðØ ðàôô#ðØðØ 6ðàôð ØðØ 6ðàôðØðØ'ðØ/@ðØKPðà	ôôD
#ðØðà
ðð :ðð ô	ôB!ôôvˆt×#Ñ#ô v÷r<ñ <ð~%Øð%àð%ð :ð%ð ô	%ð\ HLð7Øð7àð7ð )ð7ð ð	7ð
 :ð7ð Eð7ð >õ7ðtØðàðð .ðð ô	ð<Øðàðð ðð 7ð	ð
 ôð&Øðà!ôô/ð
 3Øð 3Ø(1ð 3ØHMð 3à	ô 3ðF:Øð:àð:ð )ð:ð 
ô	:ð@#Øð#àð#ð )ð#ð &ð	#ð
 8ð#ð 7ð#ð 
ô#ð8.#Øð.#àð.#ð )ð.#ð &ð	.#ð
 :ð.#ð 7ð.#ð 
ô.#ôbAðØðàðð ;ðð .ð	ð
 
ôð$Ø(ðà3ðð  ôðØðàðð *ðð 4ð	ð
 ôð0Øðàðð *ðð 4ð	ð
 ôð0Øðàðð *ðð 4ð	ð
 ôð0Øðàðð *ðð 4ð	ð
 ôð0CØðCàðCð !ðCð Bð	Cð
 %ôCð6Øðàðð ðð ô	ð,
Øð
àð
ð *ð
ð ,ð	
ð
 ô
ð:=Øð=à ð=ð Bð=ð ,ð	=ð
 ð=ð :ô=ð@ ‡�ô�4—9‘9ó ó ð÷-(ñ -(ð`8Øð8Ø+Kð8à	ô8ðAØðAØ*JðAà	ôAô4ð

Øð
àð
ð /ð
ð 	ô	
ô%ô'ôô$ðAØðAØ 0ðAà	ôAôHô")ôô2ð"
,Ø:ð
,à	ô
,ðØ/ðà+ðð 
ðð #ô	ô [2ˆd�kŠkô [2ð|Ø+ðà:ðð 3ðð +ð	ð
 +ðð ,ðð 
ðð õr1   