§
    dŠtjòÃ  ã                  óÔ  — d Z ddlmZ ddlZddlZddlmZ ddlZddlZddl	Z	ddl
Z
ddlZddlZddlmZmZmZmZmZmZmZmZmZmZmZmZ ddlZddlmZ ddlmZ ddlmZ dd	lmZ dd
lm Z  ddl!m"Z" ddl!m#Z# ddl!m$Z$ ddl!m%Z% ddl!m&Z& ddl!m'Z' ddl!m(Z( ddl!m)Z) ddl!m*Z* ddl+m,Z,  e	j-        e.¦  «        Z/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:d Z;dZ<d!Z=d"Z>d½d'„Z?d¾d+„Z@d¿d.„ZAdÀd/„ZBdÁd0„ZC G d1„ d2 ejD        d2d3¦  «        ejE        ¦  «        ZF G d4„ d5ejG        ¦  «        ZH G d6„ d7eH¦  «        ZI G d8„ d9eH¦  «        ZJ G d:„ d-¦  «        ZKdÂd<„ZLdÃd@„ZMdÄdB„ZNdÅdE„ZOdÆdG„ZPdÇdK„ZQdÈdL„ZRdÉdO„ZSdÈdP„ZTdÄdQ„ZU G dR„ dSejV        ¦  «        ZW G dT„ dU¦  «        ZXdÊdX„ZY	 dËdÌd`„ZZdÍdd„Z[dÎdi„Z\dÏdk„Z]dÂdl„Z^dÐdo„Z_dÑdp„Z`dÒdr„ZadÓds„ZbdÔdt„ZcdÕdv„ZddÖdy„Zed×d}„Zfd×d~„Zgd×d„Zhd×d€„ZidØd…„ZjdÙdˆ„ZkdÚdŠ„ZldÛd�„Zmejn         G dŽ„ d�ejo        ¦  «        ¦   «         Zp G d�„ d‘¦  «        ZqdÜd”„ZrdÝd—„ZsdÞdš„Ztdßd�„Zudàdž„Zvdád „Zwdâd¡„Zxdàd¢„Zydãd¤„Zzdàd¥„Z{dàd¦„Z|dädª„Z}dàd«„Z~dåd­„Zdæd³„Z€ G d´„ dµej�        ¦  «        Z‚dçd¼„ZƒdS )è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ÍÍAÚrequest_eventúcygrpc.BaseEventÚreturnÚbytesc                ó@   — | j         d                              ¦   «         S ©Nr   )Úbatch_operationsÚmessage)r*   s    úJ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/grpc/_server.pyÚ_serialized_requestr3   V   s   € ØÔ)¨!Ô,×4Ò4Ñ6Ô6Ð6ó    Úcodeúgrpc.StatusCodeúcygrpc.StatusCodec                ój   — t           j                             | ¦  «        }|€t          j        j        n|S ©N)r   Ú!STATUS_CODE_TO_CYGRPC_STATUS_CODEÚgetr   Ú
StatusCodeÚunknown)r5   Úcygrpc_codes     r2   Ú_application_coder?   Z   s.   € ÝÔ;×?Ò?ÀÑEÔE€KØ(3Ð(;�6ÔÔ$Ð$ÀÐLr4   ÚstateÚ	_RPCStatec                óZ   — | j         €t          j        j        S t	          | j         ¦  «        S r9   )r5   r   r<   Úokr?   ©r@   s    r2   Ú_completion_coderE   _   s&   € Ø„zÐÝÔ Ô#Ð#Ý˜UœZÑ(Ô(Ð(r4   c                ó<   — | j         €|S t          | j         ¦  «        S r9   )r5   r?   )r@   r5   s     r2   Ú_abortion_coderG   e   s!   € ð „zÐØˆÝ˜UœZÑ(Ô(Ð(r4   c                ó"   — | j         €dn| j         S )Nr4   )ÚdetailsrD   s    r2   Ú_detailsrJ   m   s   € Ø”-Ð'ˆ3ˆ3¨U¬]Ð:r4   c                  ó   — e Zd ZdS )Ú_HandlerCallDetailsN)Ú__name__Ú
__module__Ú__qualname__© r4   r2   rL   rL   q   s   € € € € € ð 	€Dr4   rL   )ÚmethodÚinvocation_metadatac                  óR   — e Zd Zej        d	d„¦   «         Zej        d
d„¦   «         ZdS )Ú_Methodr,   úOptional[str]c                ó   — t          ¦   «         ‚r9   ©ÚNotImplementedError©Úselfs    r2   Únamez_Method.name   s   € å!Ñ#Ô#Ð#r4   Úhandler_call_detailsrL   úOptional[grpc.RpcMethodHandler]c                ó   — t          ¦   «         ‚r9   rW   ©rZ   r\   s     r2   Úhandlerz_Method.handlerƒ   s   € õ "Ñ#Ô#Ð#r4   N©r,   rU   ©r\   rL   r,   r]   )rM   rN   rO   ÚabcÚabstractmethodr[   r`   rP   r4   r2   rT   rT   ~   sZ   € € € € € ØÔð$ð $ð $ñ Ôð$ð 	Ôð$ð $ð $ñ Ôð$ð $ð $r4   rT   c                  óF   — e Zd Zdd„Zedd„¦   «         Zedd„¦   «         ZdS )Ú_RegisteredMethodr[   ÚstrÚregistered_handlerr]   c                ó"   — || _         || _        d S r9   )Ú_nameÚ_registered_handler)rZ   r[   rh   s      r2   Ú__init__z_RegisteredMethod.__init__‹   s   € ð
 ˆŒ
Ø#5ˆÔ Ð Ð r4   r,   rU   c                ó   — | j         S r9   )rj   rY   s    r2   r[   z_RegisteredMethod.name“   s
   € àŒzÐr4   r\   rL   c                ó   — | j         S r9   )rk   r_   s     r2   r`   z_RegisteredMethod.handler—   s   € ð Ô'Ð'r4   N)r[   rg   rh   r]   ra   rb   ©rM   rN   rO   rl   r   r[   r`   rP   r4   r2   rf   rf   Š   sh   € € € € € ð6ð 6ð 6ð 6ð ðð ð ñ „Xðð ð(ð (ð (ñ „Xð(ð (ð (r4   rf   c                  óF   — e Zd Zdd„Zedd„¦   «         Zedd
„¦   «         ZdS )Ú_GenericMethodÚgeneric_handlersúList[grpc.GenericRpcHandler]c                ó   — || _         d S r9   )Ú_generic_handlers)rZ   rr   s     r2   rl   z_GenericMethod.__init__Ÿ   s   € ð "2ˆÔÐÐr4   r,   rU   c                ó   — d S r9   rP   rY   s    r2   r[   z_GenericMethod.name¥   s   € àˆtr4   r\   rL   r]   c                óP   — | j         D ]}|                     |¦  «        }|�|c S Œd S r9   )ru   Úservice)rZ   r\   Úgeneric_handlerÚmethod_handlers       r2   r`   z_GenericMethod.handler©   sF   € ð  $Ô5ð 	&ð 	&ˆOØ,×4Ò4Ð5IÑJÔJˆNØÐ)Ø%Ð%Ð%Ð%ð *àˆtr4   N)rr   rs   ra   rb   ro   rP   r4   r2   rq   rq   ž   sh   € € € € € ð2ð 2ð 2ð 2ð ðð ð ñ „Xðð ð	ð 	ð 	ñ „Xð	ð 	ð 	r4   rq   c                  ó²   — e Zd ZU ded<   ded<   ee         Zded<   ded<   d	ed
<   ded<   d	ed<   ded<   ded<   ded<   d	ed<   ded<   ded<   d	ed<   d„ ZdS )rA   zcontextvars.ContextÚcontextzthreading.ConditionÚ	conditionr   Úrequestrg   ÚclientÚboolÚinitial_metadata_allowedúOptional[grpc.Compression]Úcompression_algorithmÚdisable_next_compressionúOptional[MetadataType]Útrailing_metadatazOptional[grpc.StatusCode]r5   úOptional[bytes]rI   ÚstatusedzList[Exception]Ú
rpc_errorsz#Optional[List[NullaryCallbackType]]Ú	callbacksÚabortedc                ó>  — t          j        ¦   «         | _        t          j        ¦   «         | _        t          ¦   «         | _        d | _        t          | _
        d| _        d | _        d| _        d | _        d | _        d | _        d| _        g | _        g | _        d| _        d S ©NTF)ÚcontextvarsÚContextr|   Ú	threadingÚ	Conditionr}   ÚsetÚduer~   Ú_OPENr   r�   rƒ   r„   r†   r5   rI   rˆ   r‰   rŠ   r‹   rY   s    r2   rl   z_RPCState.__init__Ç   s‰   € Ý"Ô*Ñ,Ô,ˆŒÝ"Ô,Ñ.Ô.ˆŒÝ‘5”5ˆŒØˆŒÝˆŒØ(,ˆÔ%Ø%)ˆÔ"Ø(-ˆÔ%Ø!%ˆÔØˆŒ	ØˆŒØˆŒØˆŒØˆŒØˆŒˆˆr4   N)rM   rN   rO   Ú__annotations__r   rg   r“   rl   rP   r4   r2   rA   rA   ¶   sÊ   € € € € € € Ø Ð Ð Ñ Ø"Ð"Ð"Ñ"Ø
ˆcŒ(€CØ€L€L�LØ€K€K�KØ"Ð"Ð"Ñ"Ø5Ð5Ð5Ñ5Ø"Ð"Ð"Ñ"Ø-Ð-Ð-Ñ-Ø#Ð#Ð#Ñ#ØÐÐÑØ€N€N�NØÐÐÑØ2Ð2Ð2Ñ2Ø€M€M�Mðð ð ð ð r4   ÚNonec                ó`   — t          j        ¦   «         }| j                             |¦  «         |‚r9   )ÚgrpcÚRpcErrorr‰   Úappend)r@   Ú	rpc_errors     r2   Ú_raise_rpc_errorrœ   Ù   s)   € Ý”‘”€IØ	Ô×Ò˜IÑ&Ô&Ð&Ø
€Or4   Útokenrg   r   c                óŠ   — | j                              |¦  «         t          | ¦  «        s| j         s| j        }d | _        | |fS dS )N©NrP   )r“   ÚremoveÚ_is_rpc_state_activerŠ   )r@   r�   rŠ   s      r2   Ú_possibly_finish_callr¢   ß   sQ   € ð 
„I×Ò�UÑÔÐÝ Ñ&Ô&ð  ¨u¬yð  Ø”Oˆ	ØˆŒØ�iÐÐØˆ8r4   r   c                ó   ‡ ‡— ˆ ˆfd„}|S )Nc                óf   •— ‰j         5  t          ‰‰¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r9   )r}   r¢   )Ú$unused_send_status_from_server_eventr@   r�   s    €€r2   r&   z9_send_status_from_server.<locals>.send_status_from_serverë   s|   ø€ ØŒ_ð 	7ð 	7Ý(¨°Ñ6Ô6ð	7ð 	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s   ‰&¦*­*rP   )r@   r�   r&   s   `` r2   Ú_send_status_from_serverr¦   ê   s*   øø€ ð7ð 7ð 7ð 7ð 7ð 7ð #Ð"r4   Úmetadatar…   c                óæ   — | j         5  | j        rHt          j        | j        ¦  «        f}|€|cd d d ¦  «         S |t	          |¦  «        z   cd d d ¦  «         S |cd d d ¦  «         S # 1 swxY w Y   d S r9   )r}   rƒ   r   Ú!compression_algorithm_to_metadataÚtuple)r@   r§   Úcompression_metadatas      r2   Ú_get_initial_metadatar¬   ò   s	  € ð 
Œð 
ð 
ØÔ&ð 	:åÔ>ØÔ/ñô ð$Ð ð
 ÐØ+ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð (­%°©/¬/Ñ9ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ˆ%A&ºA&ÁA&Á&A*Á-A*úcygrpc.Operationc                óV   — t          j        t          | |¦  «        t          ¦  «        }|S r9   )r   ÚSendInitialMetadataOperationr¬   Ú_EMPTY_FLAGS)r@   r§   Ú	operations      r2   Ú_get_initial_metadata_operationr²     s-   € õ Ô3Ý˜e XÑ.Ô.µñô €Ið Ðr4   Úcallúcygrpc.CallrI   c                óÂ  — | j         t          urÐt          | |¦  «        }| j        €|n| j        }| j        r9t          | d ¦  «        t          j        | j        ||t          ¦  «        f}t          }n)t          j        | j        ||t          ¦  «        f}t          }|                     |t          | |¦  «        ¦  «         d| _        | j                             |¦  «         d S d S ©NT)r   Ú
_CANCELLEDrG   rI   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@   r³   r5   rI   Úeffective_codeÚeffective_detailsÚ
operationsr�   s           r2   Ú_abortrÀ     sý   € ð „|�:Ð%Ð%Ý'¨¨tÑ4Ô4ˆØ',¤}Ð'<˜G˜GÀ%Ä-ÐØÔ)ð 	3å/°°tÑ<Ô<ÝÔ4ØÔ+Ø"Ø%Ý ñ	ô ðˆJõ MˆEˆEõ Ô4ØÔ+Ø"Ø%Ý ñ	ô ðˆJõ 3ˆEØ×ÒØÕ0°¸Ñ>Ô>ñ	
ô 	
ð 	
ð ˆŒØŒ	�Š�eÑÔÐÐÐð9 &Ð%r4   c                ó   ‡ — ˆ fd„}|S )Nc                ó.  •— ‰j         5  | j        d                              ¦   «         rt          ‰_        n‰j        t
          u rt          ‰_        ‰j                              ¦   «          t          ‰t          ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r/   )
r}   r0   r)   r·   r   r”   Ú_CLOSEDÚ
notify_allr¢   Ú_RECEIVE_CLOSE_ON_SERVER_TOKEN)Úreceive_close_on_server_eventr@   s    €r2   r"   z9_receive_close_on_server.<locals>.receive_close_on_server.  sÞ   ø€ ØŒ_ð 	Pð 	PØ,Ô=¸aÔ@×JÒJÑLÔLð 'Ý)�”�Ø”¥Ð&Ð&Ý&�”ØŒO×&Ò&Ñ(Ô(Ð(Ý(¨Õ0NÑOÔOð	Pð 	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Pð 	Pð 	Ps   ‰A4B
Â
BÂBrP   )r@   r"   s   ` r2   Ú_receive_close_on_serverrÇ   -  s)   ø€ ðPð Pð Pð Pð Pð #Ð"r4   Úrequest_deserializerúOptional[DeserializingFunction]c                ó   ‡ ‡‡— ˆˆˆ fd„}|S )Nc                ó  •— t          | ¦  «        }|€i‰j        5  ‰j        t          u rt          ‰_        ‰j                             ¦   «          t          ‰t          ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S t          j	        |‰¦  «        }‰j        5  |€"t          ‰‰t          j        j        d¦  «         n|‰_        ‰j                             ¦   «          t          ‰t          ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Ns    Exception deserializing request!)r3   r}   r   r”   rÃ   rÄ   r¢   Ú_RECEIVE_MESSAGE_TOKENr   ÚdeserializerÀ   r   r<   Úinternalr~   )Úreceive_message_eventÚserialized_requestr~   r³   rÈ   r@   s      €€€r2   r$   z)_receive_message.<locals>.receive_message?  sÃ  ø€ Ý0Ð1FÑGÔGÐØÐ%Ø”ð Lð LØ”<¥5Ð(Ð(Ý#*�E”LØ”×*Ò*Ñ,Ô,Ð,Ý,¨UÕ4JÑKÔKð	Lð Lð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð Lð Lõ Ô)Ø"Ð$8ñô ˆGð ”ð Lð LØ�?ÝØØÝÔ)Ô2Ø;ñ	ô ð ð ð %,�E”MØ”×*Ò*Ñ,Ô,Ð,Ý,¨UÕ4JÑKÔKðLð Lð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð Lð Ls%   šAA/Á/A3Á6A3ÂAC>Ã>DÄDrP   )r@   r³   rÈ   r$   s   ``` r2   Ú_receive_messagerÑ   :  s7   øøø€ ð
Lð Lð Lð Lð Lð Lð Lð2 Ðr4   c                ó   ‡ — ˆ fd„}|S )Nc                óp   •— ‰j         5  t          ‰t          ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r9   )r}   r¢   Ú_SEND_INITIAL_METADATA_TOKEN)Ú"unused_send_initial_metadata_eventr@   s    €r2   r#   z5_send_initial_metadata.<locals>.send_initial_metadata\  s‘   ø€ ØŒ_ð 	Nð 	NÝ(¨Õ0LÑMÔMð	Nð 	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 	Nð 	Ns   ‰+«/²/rP   )r@   r#   s   ` r2   Ú_send_initial_metadatarÖ   [  s)   ø€ ðNð Nð Nð Nð Nð !Ð r4   c                ó   ‡ ‡— ˆ ˆfd„}|S )Nc                ó˜   •— ‰j         5  ‰j                              ¦   «          t          ‰‰¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r9   )r}   rÄ   r¢   )Úunused_send_message_eventr@   r�   s    €€r2   r%   z#_send_message.<locals>.send_messaged  s�   ø€ ØŒ_ð 	7ð 	7ØŒO×&Ò&Ñ(Ô(Ð(Ý(¨°Ñ6Ô6ð	7ð 	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s   ‰)?¿AÁArP   )r@   r�   r%   s   `` r2   Ú_send_messagerÚ   c  s*   øø€ ð7ð 7ð 7ð 7ð 7ð 7ð
 Ðr4   c                  óÞ   — e Zd ZU ded<   ded<   ded<   d6d	„Zd7d„Zd8d„Zd9d„Zd:d„Zd9d„Z	d;d„Z
d<d„Zd=d„Zd>d„Zd?d„Zd@d!„ZdAd$„ZdBd&„Zd;d'„ZdCd+„ZdDd.„ZdEd/„ZdFd0„ZdGd1„ZdHd3„Zd9d4„Zd5S )IÚ_Contextr+   Ú
_rpc_eventrA   Ú_staterÉ   rÈ   Ú	rpc_eventr@   c                ó0   — || _         || _        || _        d S r9   )rÝ   rÞ   Ú_request_deserializer)rZ   rß   r@   rÈ   s       r2   rl   z_Context.__init__q  s    € ð $ˆŒØˆŒØ%9ˆÔ"Ð"Ð"r4   r,   r€   c                óv   — | j         j        5  t          | j         ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r9   )rÞ   r}   r¡   rY   s    r2   Ú	is_activez_Context.is_active{  s~   € ØŒ[Ô"ð 	5ð 	5Ý'¨¬Ñ4Ô4ð	5ð 	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s   �.®2µ2Úfloatc                óh   — t          | j        j        j        t	          j        ¦   «         z
  d¦  «        S r/   )ÚmaxrÝ   Úcall_detailsÚdeadlineÚtimerY   s    r2   Útime_remainingz_Context.time_remaining  s%   € Ý�4”?Ô/Ô8½4¼9¹;¼;ÑFÈÑJÔJÐJr4   r–   c                óB   — | j         j                             ¦   «          d S r9   )rÝ   r³   ÚcancelrY   s    r2   rì   z_Context.cancel‚  s   € ØŒÔ×#Ò#Ñ%Ô%Ð%Ð%Ð%r4   Úcallbackr   c                óÄ   — | j         j        5  | j         j        €	 d d d ¦  «         dS | j         j                             |¦  «         	 d d d ¦  «         dS # 1 swxY w Y   d S )NFT)rÞ   r}   rŠ   rš   )rZ   rí   s     r2   Úadd_callbackz_Context.add_callback…  sÅ   € ØŒ[Ô"ð 	ð 	ØŒ{Ô$Ð,Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð ŒKÔ!×(Ò(¨Ñ2Ô2Ð2Øð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �A¨ AÁAÁAc                óh   — | j         j        5  d| j         _        d d d ¦  «         d S # 1 swxY w Y   d S r¶   )rÞ   r}   r„   rY   s    r2   Ú disable_next_message_compressionz)_Context.disable_next_message_compressionŒ  s{   € ØŒ[Ô"ð 	8ð 	8Ø37ˆDŒKÔ0ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ó   �'§+®+r…   c                ó   — | j         j        S r9   )rÝ   rR   rY   s    r2   rR   z_Context.invocation_metadata�  s   € ØŒÔ2Ð2r4   rg   c                ób   — t          j        | j        j                             ¦   «         ¦  «        S r9   )r   ÚdecoderÝ   r³   ÚpeerrY   s    r2   rö   z_Context.peer“  s#   € ÝŒ~˜dœoÔ2×7Ò7Ñ9Ô9Ñ:Ô:Ð:r4   úOptional[Sequence[bytes]]c                ó>   — t          j        | j        j        ¦  «        S r9   )r   Úpeer_identitiesrÝ   r³   rY   s    r2   rù   z_Context.peer_identities–  s   € ÝÔ% d¤oÔ&:Ñ;Ô;Ð;r4   rU   c                ón   — t          j        | j        j        ¦  «        }|€|nt	          j        |¦  «        S r9   )r   Úpeer_identity_keyrÝ   r³   r   rõ   )rZ   Úid_keys     r2   rû   z_Context.peer_identity_key™  s/   € ÝÔ)¨$¬/Ô*>Ñ?Ô?ˆØ˜ˆvˆv­W¬^¸FÑ-CÔ-CÐCr4   úMapping[str, Sequence[bytes]]c                ó†   — t          j        | j        j        ¦  «        }|€i n|}d„ |                     ¦   «         D ¦   «         S )Nc                ó>   — i | ]\  }}t          j        |¦  «        |“ŒS rP   )r   rõ   )Ú.0ÚkeyÚvalues      r2   ú
<dictcomp>z)_Context.auth_context.<locals>.<dictcomp>   s8   € ð 
ð 
ð 
á��Uõ ŒN˜3ÑÔ ð
ð 
ð 
r4   )r   Úauth_contextrÝ   r³   Úitems)rZ   r  Úauth_context_dicts      r2   r  z_Context.auth_context�  sS   € ÝÔ*¨4¬?Ô+?Ñ@Ô@ˆØ".Ð"6˜B˜B¸LÐð
ð 
à/×5Ò5Ñ7Ô7ð
ñ 
ô 
ð 	
r4   Úcompressionúgrpc.Compressionc                óh   — | j         j        5  || j         _        d d d ¦  «         d S # 1 swxY w Y   d S r9   )rÞ   r}   rƒ   )rZ   r  s     r2   Úset_compressionz_Context.set_compression¥  s{   € ØŒ[Ô"ð 	<ð 	<Ø0;ˆDŒKÔ-ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<rò   Úinitial_metadatar   c                óÌ  — | j         j        5  | j         j        t          u rt	          | j         ¦  «         | j         j        ryt          | j         |¦  «        }| j        j         	                    |ft          | j         ¦  «        ¦  «         d| j         _        | j         j                             t          ¦  «         nd}t          |¦  «        ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NFz#Initial metadata no longer allowed!)rÞ   r}   r   r·   rœ   r�   r²   rÝ   r³   r»   rÖ   r“   r¼   rÔ   Ú
ValueError)rZ   r  r±   Ú	error_msgs       r2   r#   z_Context.send_initial_metadata©  s'  € ØŒ[Ô"ð 	,ð 	,ØŒ{Ô!¥ZÐ/Ð/Ý  ¤Ñ-Ô-Ð-ØŒ{Ô3ð ,Ý;Ø”KÐ!1ñô �	ð ”Ô$×7Ò7Ø�LÕ"8¸¼Ñ"EÔ"Eñô ð ð 8=�”Ô4Ø””×#Ò#Õ$@ÑAÔAÐAÐAàA�	Ý  Ñ+Ô+Ð+ð Bð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   �B>CÃCÃ Cr†   c                óh   — | j         j        5  || j         _        d d d ¦  «         d S # 1 swxY w Y   d S r9   )rÞ   r}   r†   )rZ   r†   s     r2   Úset_trailing_metadataz_Context.set_trailing_metadataº  s{   € ØŒ[Ô"ð 	>ð 	>Ø,=ˆDŒKÔ)ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>rò   c                ó   — | j         j        S r9   )rÞ   r†   rY   s    r2   r†   z_Context.trailing_metadata¾  s   € ØŒ{Ô,Ð,r4   r5   r6   rI   c                óB  — |t           j        j        k    r-t                               d¦  «         t           j        j        }d}| j        j        5  || j        _        t          j
        |¦  «        | j        _        d| j        _        t          ¦   «         ‚# 1 swxY w Y   d S )Nz4abort() called with StatusCode.OK; returning UNKNOWNÚ T)r˜   r<   ÚOKÚ_LOGGERÚerrorÚUNKNOWNrÞ   r}   r5   r   ÚencoderI   r‹   Ú	Exception)rZ   r5   rI   s      r2   Úabortz_Context.abortÁ  sµ   € à•4”?Ô%Ò%Ð%Ý�MŠMØFñô ð õ ”?Ô*ˆDØˆGØŒ[Ô"ð 	ð 	Ø#ˆDŒKÔÝ")¤.°Ñ"9Ô"9ˆDŒKÔØ"&ˆDŒKÔÝ‘+”+Ðð		ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁABÂBÂBÚstatusúgrpc.Statusc                óh   — |j         | j        _         |                      |j        |j        ¦  «         d S r9   )r†   rÞ   r  r5   rI   )rZ   r  s     r2   Úabort_with_statusz_Context.abort_with_statusÏ  s-   € Ø(.Ô(@ˆŒÔ%Ø�
Š
�6”; ¤Ñ/Ô/Ð/Ð/Ð/r4   c                óh   — | j         j        5  || j         _        d d d ¦  «         d S # 1 swxY w Y   d S r9   )rÞ   r}   r5   )rZ   r5   s     r2   Úset_codez_Context.set_codeÓ  s{   € ØŒ[Ô"ð 	$ð 	$Ø#ˆDŒKÔð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$rò   c                ó   — | j         j        S r9   )rÞ   r5   rY   s    r2   r5   z_Context.code×  s   € ØŒ{ÔÐr4   c                óŒ   — | j         j        5  t          j        |¦  «        | j         _        d d d ¦  «         d S # 1 swxY w Y   d S r9   )rÞ   r}   r   r  rI   )rZ   rI   s     r2   Úset_detailsz_Context.set_detailsÚ  s…   € ØŒ[Ô"ð 	:ð 	:Ý")¤.°Ñ"9Ô"9ˆDŒKÔð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s   �9¹=Á =r-   c                ó   — | j         j        S r9   )rÞ   rI   rY   s    r2   rI   z_Context.detailsÞ  s   € ØŒ{Ô"Ð"r4   c                ó   — d S r9   rP   rY   s    r2   Ú_finalize_statez_Context._finalize_stateá  s   € Øˆr4   N)rß   r+   r@   rA   rÈ   rÉ   )r,   r€   )r,   rä   ©r,   r–   )rí   r   r,   r€   )r,   r…   )r,   rg   )r,   r÷   ra   )r,   rý   )r  r  r,   r–   )r  r   r,   r–   )r†   r   r,   r–   )r5   r6   rI   rg   r,   r–   )r  r  r,   r–   )r5   r6   r,   r–   )r,   r6   )rI   rg   r,   r–   )r,   r-   )rM   rN   rO   r•   rl   rã   rê   rì   rï   rñ   rR   rö   rù   rû   r  r
  r#   r  r†   r  r  r   r5   r#  rI   r&  rP   r4   r2   rÜ   rÜ   l  sú  € € € € € € Ø Ð Ð Ñ ØÐÐÑØ9Ð9Ð9Ñ9ð:ð :ð :ð :ð5ð 5ð 5ð 5ðKð Kð Kð Kð&ð &ð &ð &ðð ð ð ð8ð 8ð 8ð 8ð3ð 3ð 3ð 3ð;ð ;ð ;ð ;ð<ð <ð <ð <ðDð Dð Dð Dð
ð 
ð 
ð 
ð<ð <ð <ð <ð,ð ,ð ,ð ,ð">ð >ð >ð >ð-ð -ð -ð -ðð ð ð ð0ð 0ð 0ð 0ð$ð $ð $ð $ð ð  ð  ð  ð:ð :ð :ð :ð#ð #ð #ð #ðð ð ð ð ð r4   rÜ   c                  óf   — e Zd ZU ded<   ded<   ded<   dd
„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dS )Ú_RequestIteratorrA   rÞ   r´   Ú_callrÉ   rá   r@   r³   rÈ   c                ó0   — || _         || _        || _        d S r9   )rÞ   r*  rá   )rZ   r@   r³   rÈ   s       r2   rl   z_RequestIterator.__init__ê  s    € ð ˆŒØˆŒ
Ø%9ˆÔ"Ð"Ð"r4   r,   r–   c                ó†  — | j         j        t          u rt          | j         ¦  «         d S t	          | j         ¦  «        st          ¦   «         ‚| j                             t          j	        t          ¦  «        ft          | j         | j        | j        ¦  «        ¦  «         | j         j                             t          ¦  «         d S r9   )rÞ   r   r·   rœ   r¡   ÚStopIterationr*  r»   r   ÚReceiveMessageOperationr°   rÑ   rá   r“   r¼   rÌ   rY   s    r2   Ú_raise_or_start_receive_messagez0_RequestIterator._raise_or_start_receive_messageô  s«   € ØŒ;Ô¥Ð+Ð+Ý˜Tœ[Ñ)Ô)Ð)Ð)Ð)Ý% d¤kÑ2Ô2ð 		8Ý‘/”/Ð!àŒJ×)Ò)ÝÔ/µÑ=Ô=Ð?Ý Ø”K ¤¨TÔ-Gñô ñô ð ð ŒKŒO×ÒÕ 6Ñ7Ô7Ð7Ð7Ð7r4   r   c                óü   — | j         j        t          u rt          | j         ¦  «         nG| j         j        €!t
          | j         j        vrt          ¦   «         ‚| j         j        }d | j         _        |S t          ¦   «         ‚r9   )	rÞ   r   r·   rœ   r~   rÌ   r“   r-  ÚAssertionError©rZ   r~   s     r2   Ú_look_for_requestz"_RequestIterator._look_for_request  sn   € ØŒ;Ô¥Ð+Ð+Ý˜Tœ[Ñ)Ô)Ð)Ð)àŒKÔÐ'Ý&¨d¬k¬oÐ=Ð=å‘/”/Ð!à”kÔ)ˆGØ"&ˆDŒKÔØˆNåÑÔÐr4   c                óæ   — | j         j        5  |                      ¦   «          	 | j         j                             ¦   «          |                      ¦   «         }|�|cd d d ¦  «         S ŒC# 1 swxY w Y   d S r9   )rÞ   r}   r/  Úwaitr3  r2  s     r2   Ú_nextz_RequestIterator._next  s¾   € ØŒ[Ô"ð 	#ð 	#Ø×0Ò0Ñ2Ô2Ð2ð#Ø”Ô%×*Ò*Ñ,Ô,Ð,Ø×0Ò0Ñ2Ô2�ØÐ&Ø"ð	#ð 	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð#ð	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#s   �AA&Á%A&Á&A*Á-A*c                ó   — | S r9   rP   rY   s    r2   Ú__iter__z_RequestIterator.__iter__  s   € Øˆr4   c                ó*   — |                       ¦   «         S r9   ©r6  rY   s    r2   Ú__next__z_RequestIterator.__next__  ó   € Ø�zŠz‰|Œ|Ðr4   c                ó*   — |                       ¦   «         S r9   r:  rY   s    r2   Únextz_RequestIterator.next   r<  r4   N)r@   rA   r³   r´   rÈ   rÉ   r'  )r,   r   )r,   r)  )rM   rN   rO   r•   rl   r/  r3  r6  r8  r;  r>  rP   r4   r2   r)  r)  å  sÆ   € € € € € € ØÐÐÑØÐÐÑØ:Ð:Ð:Ñ:ð:ð :ð :ð :ð8ð 8ð 8ð 8ðð ð ð ð#ð #ð #ð #ðð ð ð ðð ð ð ðð ð ð ð ð r4   r)  rß   úCallable[[], Any]c                ó   ‡ ‡‡— ˆˆ ˆfd„}|S )Nc            	     óÐ  •— ‰j         5  t          ‰¦  «        s	 d d d ¦  «         d S ‰j                             t	          j        t          ¦  «        ft          ‰‰j        ‰¦  «        ¦  «         ‰j         	                    t          ¦  «         	 ‰j                              ¦   «          ‰j        €�‰j        t          u red                     ‰j        j        ¦  «        } t%          ‰‰j        t          j        j        t+          j        | ¦  «        ¦  «         	 d d d ¦  «         d S ‰j        t.          u r	 d d d ¦  «         d S n‰j        }d ‰_        |cd d d ¦  «         S ŒÍ# 1 swxY w Y   d S )NTz*"{}" requires exactly one request message.)r}   r¡   r³   r»   r   r.  r°   rÑ   r“   r¼   rÌ   r5  r~   r   rÃ   Úformatrç   rQ   rÀ   r<   Úunimplementedr   r  r·   )rI   r~   rÈ   rß   r@   s     €€€r2   Úunary_requestz%_unary_request.<locals>.unary_request)  s  ø€ ØŒ_ð 	#ð 	#Ý'¨Ñ.Ô.ð Øð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð ŒN×-Ò-ÝÔ/µÑ=Ô=Ð?Ý  ¨	¬Ð8LÑMÔMñô ð ð ŒI�MŠMÕ0Ñ1Ô1Ð1ð#Ø”×$Ò$Ñ&Ô&Ð&Ø”=Ð(Ø”|¥wÐ.Ð.àH×OÒOØ )Ô 6Ô =ñô ð  õ
 Ø!Ø%œNÝ"Ô-Ô;Ý#œN¨7Ñ3Ô3ñ	ô ð ð  $ð/	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð0 ”|¥zÐ1Ð1Ø#ð3	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð0 2ð $œm�GØ$(�E”MØ"ð;	#ð 	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð#ð	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#s)   ‰E§C-EÄ!EÄ=EÅEÅEÅ"ErP   )rß   r@   rÈ   rD  s   ``` r2   Ú_unary_requestrE  $  s1   øøø€ ð
#ð #ð #ð #ð #ð #ð #ð@ Ðr4   Úbehaviorr   Úargumentr   Úsend_response_callbackú(Optional[Callable[[ResponseType], None]]ú8Tuple[Union[ResponseType, Iterator[ResponseType]], bool]c                ó2  — ddl m}  || ||¦  «        5 }	 d }|� ||||¦  «        }n |||¦  «        }|dfcd d d ¦  «         S # t          $ �r:}	|j        5  |j        r't          || j        t          j        j	        d¦  «         n×|	|j
        vrÎ	 d                     |	¦  «        }
ne# t          $ rX d}
t                               t          j        t!          |	¦  «        |	|	j        ¦  «        ¦  «         t          j        ¦   «          Y nw xY wt                               |
¦  «         t          || j        t          j        j	        t'          j        |
¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   Y d }	~	d d d ¦  «         dS d }	~	ww xY w# 1 swxY w Y   d S )Nr   )Ú_create_servicer_contextTó   RPC Abortedz!Exception calling application: {}z1Calling application raised unprintable Exception!©NF)r˜   rL  r  r}   r‹   rÀ   r³   r   r<   r=   r‰   rB  r  Ú	exceptionÚ	tracebackÚformat_exceptionÚtypeÚ__traceback__Ú	print_excr   r  )rß   r@   rF  rG  rÈ   rH  rL  r|   Úresponse_or_iteratorrO  rI   s              r2   Ú_call_behaviorrV  L  s²  € ð .Ð-Ð-Ð-Ð-Ð-à	!Ð	!Ø�5Ð.ñ
ô 
ð -à	ð*	Ø#'Ð Ø%Ð1Ø'/ xØ˜gÐ'=ñ(ô (Ð$Ð$ð (0 x°¸'Ñ'BÔ'BÐ$Ø'¨Ð-ð-ð -ð -ð -ñ -ô -ð -ð -øõ ð !	ñ !	ð !	Ø”ð ð Ø”=ð ÝØØ!œÝÔ)Ô1Ø&ñ	ô ð ð ð  eÔ&6Ð6Ð6ð.Ø"E×"LÒ"LØ%ñ#ô #˜˜øõ %ð .ð .ð .àOð  õ  ×)Ò)Ý%Ô6Ý $ Y¡¤Ø )Ø )Ô 7ñô ñô ð õ "Ô+Ñ-Ô-Ð-Ð-Ð-ð.øøøõ ×%Ò% gÑ.Ô.Ð.ÝØØ!œÝÔ)Ô1Ýœ wÑ/Ô/ñ	ô ð ð5ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð@ �;�;�;ð[-ð -ð -ñ -ô -ð -ð -ð -øøøøð!	øøøð-ð -ð -ð -øøøð -ð -ð -ð -ð -ð -s~   ”F–!AÁF	ÁFÁ8E(ÂB%Â$E(Â%AD	ÄE(ÄD	ÄAE(ÅFÅ(E,Å,FÅ/E,Å0FÅ3FÆF	Æ	FÆFÆFÚresponse_iteratorúIterator[ResponseType]úTuple[ResponseType, bool]c           
     óè  — 	 t          |¦  «        dfS # t          $ r Y dS t          $ rÈ}|j        5  |j        r't          || j        t          j        j	        d¦  «         np||j
        vrgd                     |¦  «        }t                               |¦  «         t          || j        t          j        j	        t          j        |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   Y d }~dS d }~ww xY w)NTr¶   rM  z!Exception iterating responses: {}rN  )r>  r-  r  r}   r‹   rÀ   r³   r   r<   r=   r‰   rB  r  rO  r   r  )rß   r@   rW  rO  rI   s        r2   Ú%_take_response_from_response_iteratorr[  †  s[  € ð
ÝÐ%Ñ&Ô&¨Ð,Ð,øÝð ð ð ØˆzˆzÝð ð ð ØŒ_ð 	ð 	ØŒ}ð ÝØØ”NÝÔ%Ô-Ø"ñ	ô ð ð ð  %Ô"2Ð2Ð2Ø=×DÒDÀYÑOÔO�Ý×!Ò! 'Ñ*Ô*Ð*ÝØØ”NÝÔ%Ô-Ý”N 7Ñ+Ô+ñ	ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð" ˆ{ˆ{ˆ{ˆ{ˆ{øøøøð%øøøs=   ‚ “
C1 	C1©C,°BCÃC,ÃC	ÃC,Ã"C	Ã#C,Ã,C1ÚresponseÚresponse_serializerúOptional[SerializingFunction]r‡   c                óÂ   — t          j        ||¦  «        }|€G|j        5  t          || j        t
          j        j        d¦  «         d d d ¦  «         n# 1 swxY w Y   d S |S )Ns   Failed to serialize response!)r   Ú	serializer}   rÀ   r³   r   r<   rÎ   )rß   r@   r\  r]  Úserialized_responses        r2   Ú_serialize_responserb  ¤  s®   € õ "Ô+¨HÐ6IÑJÔJÐØÐ"ØŒ_ð 	ð 	ÝØØ”ÝÔ!Ô*Ø0ñ	ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆtØÐs   Ÿ'AÁAÁAúUnion[int, cygrpc.WriteFlag]c                ó@   — | j         rt          j        j        S t          S r9   )r„   r   Ú	WriteFlagÚno_compressr°   rD   s    r2   Ú%_get_send_message_op_flags_from_staterg  ·  s!   € ð Ô%ð ,ÝÔÔ+Ð+ÝÐr4   c                óT   — | j         5  d| _        d d d ¦  «         d S # 1 swxY w Y   d S rN  )r}   r„   rD   s    r2   Ú_reset_per_message_stateri  ¿  sv   € Ø	Œð /ð /Ø).ˆÔ&ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /s   ˆ�!¤!ra  r€   c                ól  — |j         5  t          |¦  «        s	 d d d ¦  «         dS |j        rAt          |d ¦  «        t	          j        |t          |¦  «        ¦  «        f}d|_        t          }n*t	          j        |t          |¦  «        ¦  «        f}t          }| j	         
                    |t          ||¦  «        ¦  «         |j                             |¦  «         t          |¦  «         	 |j                              ¦   «          ||j        vrt          |¦  «        cd d d ¦  «         S Œ># 1 swxY w Y   d S rN  )r}   r¡   r�   r²   r   ÚSendMessageOperationrg  Ú-_SEND_INITIAL_METADATA_AND_SEND_MESSAGE_TOKENÚ_SEND_MESSAGE_TOKENr³   r»   rÚ   r“   r¼   ri  r5  )rß   r@   ra  r¿   r�   s        r2   Ú_send_responsern  Ä  s¬  € ð 
Œð 3ð 3Ý# EÑ*Ô*ð 	Øð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð Ô)ð 	(å/°°tÑ<Ô<ÝÔ+Ø'Ý9¸%Ñ@Ô@ñô ðˆJð .3ˆEÔ*ÝAˆEˆEõ Ô+Ø'Ý9¸%Ñ@Ô@ñô ðˆJõ (ˆEØŒ×)Ò)Ø� e¨UÑ3Ô3ñ	
ô 	
ð 	
ð 	Œ	�Š�eÑÔÐÝ  Ñ'Ô'Ð'ð	3ØŒO× Ò Ñ"Ô"Ð"Ø˜EœIÐ%Ð%Ý+¨EÑ2Ô2ð;3ð 3ð 3ð 3ñ 3ô 3ð 3ð 3ð4	3ð53ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3s   ˆD)¦C5D)Ä(D)Ä)D-Ä0D-c           	     ól  — |j         5  |j        t          u�rt          |¦  «        }t	          |¦  «        }t          j        |j        ||t          ¦  «        g}|j	        r#| 
                    t          |d ¦  «        ¦  «         |�5| 
                    t          j        |t          |¦  «        ¦  «        ¦  «         | j                             |t!          |t"          ¦  «        ¦  «         d|_        t'          |¦  «         |j                             t"          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r¶   )r}   r   r·   rE   rJ   r   r¸   r†   r°   r�   rš   r²   rk  rg  r³   r»   r¦   rº   rˆ   ri  r“   r¼   )rß   r@   ra  r5   rI   r¿   s         r2   Ú_statusrp  ç  sz  € ð
 
Œð :ð :ØŒ<�zÐ)Ñ)Ý# EÑ*Ô*ˆDÝ˜u‘o”oˆGåÔ4ØÔ+¨T°7½Lñô ðˆJð
 Ô-ð PØ×!Ò!Õ"AÀ%ÈÑ"NÔ"NÑOÔOÐOØ"Ð.Ø×!Ò!ÝÔ/Ø+Ý=¸eÑDÔDñô ñô ð ð ŒN×-Ò-ØÝ(¨Õ0NÑOÔOñô ð ð "ˆEŒNÝ$ UÑ+Ô+Ð+ØŒI�MŠMÕ8Ñ9Ô9Ð9ð1:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :s   ˆDD)Ä)D-Ä0D-Úargument_thunkc                ó`  — t          j        | ¦  «         	  |¦   «         }|�=t          | ||||¦  «        \  }}|r%t          | |||¦  «        }	|	�t	          | ||	¦  «         n## t
          $ r t          j        ¦   «          Y nw xY wt          j        ¦   «          d S # t          j        ¦   «          w xY wr9   )	r   Ú'install_context_from_request_call_eventrV  rb  rp  r  rP  rT  Úuninstall_context)
rß   r@   rF  rq  rÈ   r]  rG  r\  Úproceedra  s
             r2   Ú_unary_response_in_poolrv    sê   € õ Ô2°9Ñ=Ô=Ð=ð#Ø!�>Ñ#Ô#ˆØÐÝ .Ø˜5 (¨HÐ6Jñ!ô !ÑˆH�gð ð CÝ&9Ø˜u hÐ0Cñ'ô 'Ð#ð 'Ð2Ý˜I uÐ.AÑBÔBÐBøøÝð ð ð ÝÔÑÔÐÐÐðøøøõ 	Ô Ñ"Ô"Ð"Ð"Ð"ø�Ô Ñ"Ô"Ð"Ð"øøøs*   –A	A  ÁB Á B Á=B Á?B Â B ÂB-c                óª  ‡ ‡‡— t          j        ‰ ¦  «         dˆˆ ˆfd„}	  |¦   «         }|�Wt          |d¦  «        r|j        rt	          ‰ ‰||||¬¦  «         n*t	          ‰ ‰|||¦  «        \  }}	|	rt          ‰ ‰||¦  «         n## t          $ r t          j        ¦   «          Y nw xY wt          j	        ¦   «          d S # t          j	        ¦   «          w xY w)	Nr\  r   r,   r–   c                ó€   •— | €t          ‰‰d ¦  «         d S t          ‰‰| ‰¦  «        }|�t          ‰‰|¦  «         d S d S r9   )rp  rb  rn  )r\  ra  r]  rß   r@   s     €€€r2   Úsend_responsez/_stream_response_in_pool.<locals>.send_response-  sd   ø€ ØÐÝ�I˜u dÑ+Ô+Ð+Ð+Ð+å"5Ø˜5 (Ð,?ñ#ô #Ðð #Ð.Ý˜y¨%Ð1DÑEÔEÐEÐEÐEð /Ð.r4   Úexperimental_non_blocking)rH  )r\  r   r,   r–   )
r   rs  Úhasattrrz  rV  Ú3_send_message_callback_to_blocking_iterator_adapterr  rP  rT  rt  )
rß   r@   rF  rq  rÈ   r]  ry  rG  rW  ru  s
   ``   `    r2   Ú_stream_response_in_poolr}  #  sV  øøø€ õ Ô2°9Ñ=Ô=Ð=ðFð Fð Fð Fð Fð Fð Fð Fð#Ø!�>Ñ#Ô#ˆØÐå˜Ð"=Ñ>Ô>ðàÔ6ðõ ØØØØØ(Ø+8ðñ ô ð ð õ .<Ø˜u h°Ð:Nñ.ô .Ñ*Ð! 7ð ð ÝGØ! 5¨-Ð9Jñô ð øøõ ð ð ð ÝÔÑÔÐÐÐðøøøõ 	Ô Ñ"Ô"Ð"Ð"Ð"ø�Ô Ñ"Ô"Ð"Ð"øøøs*   ¡A#B ÂB= ÂB%Â"B= Â$B%Â%B= Â=Cc                ó.   — | j         t          uo| j         S r9   )r   r·   rˆ   rD   s    r2   r¡   r¡   T  s   € ØŒ<�zÐ)Ð@°%´.Ð.@Ð@r4   úCallable[[ResponseType], None]c                óp   — 	 t          | ||¦  «        \  }}|r ||¦  «         t          |¦  «        sd S nd S Œ6r9   )r[  r¡   )rß   r@   rH  rW  r\  ru  s         r2   r|  r|  X  sd   € ð	ÝAØ�uÐ/ñ
ô 
Ñˆ�'ð ð 	Ø"Ð" 8Ñ,Ô,Ð,Ý'¨Ñ.Ô.ð Ø�ðð ˆEð	r4   Údefault_thread_poolúfutures.ThreadPoolExecutorc                ór   — t          | d¦  «        r&t          | j        t          j        ¦  «        r| j        S |S )NÚexperimental_thread_pool)r{  Ú
isinstancer„  r   ÚThreadPoolExecutor)rF  r�  s     r2   Ú _select_thread_pool_for_behaviorr‡  j  sD   € õ ˆxÐ3Ñ4Ô4ð 1½ØÔ)­7Ô+Eñ:ô :ð 1ð Ô0Ð0ØÐr4   rz   úgrpc.RpcMethodHandlerúfutures.Futurec           
     óÌ   — t          | ||j        ¦  «        }t          |j        |¦  «        }|                     |j        j        t          | ||j        ||j        |j        ¦  «        S r9   )	rE  rÈ   r‡  Úunary_unaryÚsubmitr|   Úrunrv  r]  ©rß   r@   rz   r�  rD  Úthread_pools         r2   Ú_handle_unary_unaryr�  u  sw   € õ #Ø�5˜.Ô=ñô €Mõ 3ØÔ"Ð$7ñô €Kð ×ÒØŒÔÝØØØÔ"ØØÔ+ØÔ*ñ	ô 	ð 	r4   c           
     óÌ   — t          | ||j        ¦  «        }t          |j        |¦  «        }|                     |j        j        t          | ||j        ||j        |j        ¦  «        S r9   )	rE  rÈ   r‡  Úunary_streamrŒ  r|   r�  r}  r]  rŽ  s         r2   Ú_handle_unary_streamr“  �  sw   € õ #Ø�5˜.Ô=ñô €Mõ 3ØÔ#Ð%8ñô €Kð ×ÒØŒÔÝ ØØØÔ#ØØÔ+ØÔ*ñ	ô 	ð 	r4   c           
     óÞ   ‡— t          || j        |j        ¦  «        Št          |j        |¦  «        }|                     |j        j        t          | ||j        ˆfd„|j        |j	        ¦  «        S )Nc                 ó   •— ‰ S r9   rP   ©Úrequest_iterators   €r2   ú<lambda>z&_handle_stream_unary.<locals>.<lambda>·  ó   ø€ Ð € r4   )
r)  r³   rÈ   r‡  Ústream_unaryrŒ  r|   r�  rv  r]  ©rß   r@   rz   r�  r�  r—  s        @r2   Ú_handle_stream_unaryrœ  ¥  s„   ø€ õ (ØˆyŒ~˜~ÔBñô Ðõ 3ØÔ#Ð%8ñô €Kð ×ÒØŒÔÝØØØÔ#Ø Ð Ð Ð ØÔ+ØÔ*ñ	ô 	ð 	r4   c           
     óÞ   ‡— t          || j        |j        ¦  «        Št          |j        |¦  «        }|                     |j        j        t          | ||j        ˆfd„|j        |j	        ¦  «        S )Nc                 ó   •— ‰ S r9   rP   r–  s   €r2   r˜  z'_handle_stream_stream.<locals>.<lambda>Ï  r™  r4   )
r)  r³   rÈ   r‡  Ústream_streamrŒ  r|   r�  r}  r]  r›  s        @r2   Ú_handle_stream_streamr   ½  s„   ø€ õ (ØˆyŒ~˜~ÔBñô Ðõ 3ØÔ$Ð&9ñô €Kð ×ÒØŒÔÝ ØØØÔ$Ø Ð Ð Ð ØÔ+ØÔ*ñ	ô 	ð 	r4   Úmethod_with_handlerÚinterceptor_pipelineú'Optional[_interceptor._ServicePipeline]r]   c                ó  ‡— dˆfd„}‰                      ¦   «         }|st          j        | j        j        ¦  «        }t          || j        ¦  «        }|�!|j                             |j	        ||¦  «        S |j                             ||¦  «        S )Nr\   rL   r,   r]   c                ó.   •— ‰                      | ¦  «        S r9   )r`   )r\   r¡  s    €r2   Úquery_handlersz,_find_method_handler.<locals>.query_handlersÛ  s   ø€ ð #×*Ò*Ð+?Ñ@Ô@Ð@r4   rb   )
r[   r   rõ   rç   rQ   rL   rR   r|   r�  Úexecute)rß   r@   r¡  r¢  r¦  Úmethod_namer\   s     `    r2   Ú_find_method_handlerr©  Õ  s¹   ø€ ðAð Að Að Að Að Að
 &×*Ò*Ñ,Ô,€KØð DÝ”n YÔ%;Ô%BÑCÔCˆå.ØØÔ%ñô Ðð
 Ð'ØŒ}× Ò Ø Ô(¨.Ð:Nñ
ô 
ð 	
ð Œ=×Ò˜^Ð-AÑBÔBÐBr4   Ú	rpc_stater  c                óÌ   ‡— t          ‰d ¦  «        t          j        t          ¦  «        t          j        d ||t          ¦  «        f}| j                             |ˆfd„¦  «         d S )Nc                ó   •— ‰dfS rŸ   rP   )Ú_ignored_eventrª  s    €r2   r˜  z_reject_rpc.<locals>.<lambda>ÿ  s   ø€ ØØð 
€ r4   )r²   r   ÚReceiveCloseOnServerOperationr°   r¸   r³   r»   )rß   rª  r  rI   r¿   s    `   r2   Ú_reject_rpcr¯  ð  s}   ø€ õ 	(¨	°4Ñ8Ô8ÝÔ,­\Ñ:Ô:ÝÔ,Ø�&˜'¥<ñ	
ô 	
ð€Jð „N×%Ò%Øð	
ð 	
ð 	
ð 	
ñô ð ð ð r4   r�  c                ó  — |j         5  | j                             t          j        t
          ¦  «        ft          |¦  «        ¦  «         |j                             t          ¦  «         |j
        rC|j        rt          | |||¦  «        cd d d ¦  «         S t          | |||¦  «        cd d d ¦  «         S |j        rt          | |||¦  «        cd d d ¦  «         S t          | |||¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r9   )r}   r³   r»   r   r®  r°   rÇ   r“   r¼   rÅ   Úrequest_streamingÚresponse_streamingr   rœ  r“  r�  )rß   r@   rz   r�  s       r2   Ú_handle_with_method_handlerr³    s´  € ð 
Œð 
ð 
ØŒ×)Ò)ÝÔ1µ,Ñ?Ô?ÐAÝ$ UÑ+Ô+ñ	
ô 	
ð 	
ð 	Œ	�ŠÕ4Ñ5Ô5Ð5ØÔ+ð 	ØÔ0ð Ý,Ø˜u n°kñô ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
õ (Ø˜5 .°+ñô ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð Ô,ð 	Ý'Ø˜5 .°+ñô ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
õ$ #Ø�u˜n¨kñ
ô 
ð%
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s$   ˆA?C5ÂC5Â2C5ÃC5Ã5C9Ã<C9Úconcurrency_exceededú4Tuple[Optional[_RPCState], Optional[futures.Future]]c                ó6  — | j         sdS | j        j        s|                     ¦   «         rït	          ¦   «         }	 t          | |||¦  «        }nk# t          $ r^}d                     |¦  «        }t           	                    |¦  «         t          | |t          j        j        d¦  «         |dfcY d}~S d}~ww xY w|€%t          | |t          j        j        d¦  «         |dfS |r%t          | |t          j        j        d¦  «         |dfS |t!          | |||¦  «        fS dS )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ç   rQ   r[   rA   r©  r  rB  r  rO  r¯  r   r<   r=   rC  Úresource_exhaustedr³  )	rß   r¡  r¢  r�  r´  rª  rz   rO  rI   s	            r2   Ú_handle_callr¹  #  s‚  € ð$ Ôð ØˆzØÔÔ$ð (
Ð(;×(@Ò(@Ñ(BÔ(Bð (
Ý‘K”Kˆ	ð	#Ý1ØØØ#Ø$ñ	ô ˆNˆNøõ ð 		#ð 		#ð 		#Ø7×>Ò>¸yÑIÔIˆGÝ×Ò˜gÑ&Ô&Ð&ÝØØÝÔ!Ô)Ø,ñ	ô ð ð ˜d�?Ð"Ð"Ð"Ð"Ð"Ð"øøøøð		#øøøð Ð!ÝØØÝÔ!Ô/Ø$ñ	ô ð ð ˜d�?Ð"Øð 	#ÝØØÝÔ!Ô4Ø1ñ	ô ð ð ˜d�?Ð"àÝ'Ø˜9 n°kñô ð
ð 	
ð ˆ:s   ¹A Á
B4ÁAB/Â)B4Â/B4c                  ó   — e Zd ZdZdZdZdS )Ú_ServerStageÚstoppedÚstartedÚgraceN)rM   rN   rO   ÚSTOPPEDÚSTARTEDÚGRACErP   r4   r2   r»  r»  c  s   € € € € € à€GØ€GØ€E€E€Er4   r»  c                  ó®   — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   d"d „Zd!S )#Ú_ServerStatezthreading.RLockÚlockúcygrpc.CompletionQueueÚcompletion_queueúcygrpc.ServerÚserverrs   rr   ú Dict[str, grpc.RpcMethodHandler]Úregistered_method_handlersr£  r¢  r‚  r�  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_deallocatedú Sequence[grpc.GenericRpcHandler]c                ó†  — t          j        ¦   «         | _        || _        || _        t          |¦  «        | _        || _        || _        t          j
        | _        t          j        ¦   «         | _        | j        g| _        || _        d| _        i | _        t%          ¦   «         | _        t%          ¦   «         | _        d| _        d S )Nr   F)r�   ÚRLockrÄ  rÆ  rÈ  Úlistrr   r¢  r�  r»  r¿  rË  ÚEventrÍ  rÎ  rÐ  rÒ  rÊ  r’   rÓ  r“   rÔ  )rZ   rÆ  rÈ  rr   r¢  r�  rÐ  s          r2   rl   z_ServerState.__init__|  s«   € õ ”OÑ%Ô%ˆŒ	Ø 0ˆÔØˆŒÝ $Ð%5Ñ 6Ô 6ˆÔØ$8ˆÔ!Ø&ˆÔÝ!Ô)ˆŒ
Ý!*¤Ñ!2Ô!2ˆÔØ $Ô 6Ð7ˆÔØ'>ˆÔ$Ø !ˆÔØ*,ˆÔ'õ ™%œ%ˆŒÝ‘5”5ˆŒð #(ˆÔÐÐr4   N)rÆ  rÅ  rÈ  rÇ  rr   rÕ  r¢  r£  r�  r‚  rÐ  rÏ  )rM   rN   rO   r•   rl   rP   r4   r2   rÃ  rÃ  j  sÛ   € € € € € € ØÐÐÑØ,Ð,Ð,Ñ,ØÐÐÑØ2Ð2Ð2Ñ2Ø@Ð@Ð@Ñ@ØAÐAÐAÑAØ+Ð+Ð+Ñ+ØÐÐÑØ&Ð&Ð&Ñ&Ø*Ð*Ð*Ñ*Ø*Ð*Ð*Ñ*ØÐÐÑØÐÐÑØ€M€M�MØÐÐÑð(ð (ð (ð (ð (ð (r4   rÃ  rr   ú Iterable[grpc.GenericRpcHandler]c                óz   — | j         5  | j                             |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r9   )rÄ  rr   Úextend)r@   rr   s     r2   Ú_add_generic_handlersrÝ  š  sˆ   € ð 
Œð 8ð 8ØÔ×%Ò%Ð&6Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 8ð 8ó   ˆ0°4·4Úmethod_handlersrÉ  c                óz   — | j         5  | j                             |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r9   )rÄ  rÊ  Úupdate)r@   rß  s     r2   Ú_add_registered_method_handlersrâ  ¡  s›   € ð 
Œð Að AØÔ(×/Ò/°Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Að Aøøøð Að Að Að Að Að ArÞ  ÚaddressrÑ  c                óx   — | j         5  | j                             |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r9   )rÄ  rÈ  Úadd_http2_port)r@   rã  s     r2   Ú_add_insecure_portræ  ¨  s�   € Ø	Œð 4ð 4ØŒ|×*Ò*¨7Ñ3Ô3ð4ð 4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s   ˆ/¯3¶3Úserver_credentialsúgrpc.ServerCredentialsc                ó„   — | j         5  | j                             ||j        ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r9   )rÄ  rÈ  rå  Ú_credentials)r@   rã  rç  s      r2   Ú_add_secure_portrë  ­  sŽ   € ð
 
Œð 
ð 
ØŒ|×*Ò*ØÐ'Ô4ñ
ô 
ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ˆ 5µ9¼9c                óš   — | j                              | j        | j        t          ¦  «         | j                             t          ¦  «         d S r9   )rÈ  r!   rÆ  Ú_REQUEST_CALL_TAGr“   r¼   rD   s    r2   Ú_request_callrî  ¸  sG   € Ø	„L×ÒØÔ Ô 6Õ8Iñô ð ð 
„I‡M‚MÕ#Ñ$Ô$Ð$Ð$Ð$r4   rQ   c                óŒ   — |}| j                              | j        | j        ||¦  «         | j                             |¦  «         d S r9   )rÈ  Úrequest_registered_callrÆ  r“   r¼   )r@   rQ   Úregistered_call_tags      r2   Ú_request_registered_callrò  ¿  sQ   € Ø ÐØ	„L×(Ò(ØÔØÔØØñ	ô ð ð 
„I‡M‚MÐ%Ñ&Ô&Ð&Ð&Ð&r4   c                ó¶   — | j         sQ| j        sJ| j                             ¦   «          | j        D ]}|                     ¦   «          Œt          j        | _        dS dS r�   )	rÓ  r“   rÈ  ÚdestroyrÎ  r’   r»  r¿  rË  )r@   Úshutdown_events     r2   Ú_stop_servingrö  Ë  se   € ØÔð  E¤Ið ØŒ×ÒÑÔÐØ#Ô3ð 	!ð 	!ˆNØ×ÒÑ Ô Ð Ð Ý"Ô*ˆŒØˆtØˆ5r4   c                óf   — | j         5  | xj        dz  c_        d d d ¦  «         d S # 1 swxY w Y   d S )Né   )rÄ  rÒ  rD   s    r2   Ú_on_call_completedrù  Õ  s‚   € Ø	Œð $ð $ØÐÔ !Ñ#ÐÔð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   ˆ&¦*­*Úeventc                ó  ‡ — d}|j         t          u rQ‰ j        5  ‰ j                             t          ¦  «         t          ‰ ¦  «        rd}d d d ¦  «         n# 1 swxY w Y   �n|j         t          u s|j         ‰ j        v �rad }|j         ‰ j        v r1|j         }t          |‰ j         	                    |d ¦  «        ¦  «        }nt          ‰ j        ¦  «        }‰ j        5  ‰ j                             |j         ¦  «         ‰ j        d uo‰ j        ‰ j        k    }t          ||‰ j        ‰ j        |¦  «        \  }}|�‰ j                             |¦  «         |�(‰ xj        dz  c_        |                     ˆ fd„¦  «         ‰ j        t*          j        u r*|‰ j        v rt/          ‰ |¦  «         n!t1          ‰ ¦  «         nt          ‰ ¦  «        rd}d d d ¦  «         n# 1 swxY w Y   nž|                      |¦  «        \  }}|D ]7}		  |	¦   «          Œ# t2          $ r t4                               d¦  «         Y Œ4w xY w|�J‰ j        5  ‰ j                             |¦  «         t          ‰ ¦  «        rd}d d d ¦  «         n# 1 swxY w Y   |S )NTFrø  c                ó"   •— t          ‰¦  «        S r9   )rù  )Ú_unused_futurer@   s    €r2   r˜  z-_process_event_and_continue.<locals>.<lambda>  s   ø€ Õ+=¸eÑ+DÔ+D€ r4   zException calling callback!)ÚtagÚ_SHUTDOWN_TAGrÄ  r“   r    rö  rí  rÊ  rf   r;   rq   rr   rÐ  rÒ  r¹  r¢  r�  rÓ  r¼   Úadd_done_callbackrË  r»  rÀ  rò  rî  r  r  rO  )
r@   rú  Úshould_continueÚregistered_method_namer¡  r´  rª  Ú
rpc_futurerŠ   rí   s
   `         r2   Ú_process_event_and_continuer  Û  s²  ø€ ð €OØ„y•MÐ!Ð!ØŒZð 	(ð 	(ØŒI×Ò�]Ñ+Ô+Ð+Ý˜UÑ#Ô#ð (Ø"'�ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ùð
 	Œ	Õ&Ð&Ð&ØŒ9˜Ô8Ð8Ñ8à!%ÐØŒ9˜Ô8Ð8Ð8Ø%*¤YÐ"Ý"3Ø&ØÔ0×4Ò4Ø*¨Dñô ñ#ô #ÐÐõ #1ØÔ&ñ#ô #Ðð ŒZð 	(ð 	(ØŒI×Ò˜UœYÑ'Ô'Ð'àÔ-°TÐ9ð LØÔ*¨eÔ.KÒKð !õ %1ØØ#ØÔ*ØÔ!Ø$ñ%ô %Ñ!ˆI�zð Ð$ØÔ ×$Ò$ YÑ/Ô/Ð/ØÐ%ØÐ&Ô&¨!Ñ+Ð&Ô&Ø×,Ò,ØDÐDÐDÐDñô ð ð Œ{�lÔ2Ð2Ð2Ø)¨UÔ-MÐMÐMÝ,¨UÐ4JÑKÔKÐKÐKå! %Ñ(Ô(Ð(Ð(Ý˜uÑ%Ô%ð (Ø"'�ð5	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(øð8  %Ÿyšy¨Ñ/Ô/Ñˆ	�9Ø!ð 	Að 	AˆHðAØ�‘
”
�
�
øÝð Að Að AÝ×!Ò!Ð"?Ñ@Ô@Ð@Ð@Ð@ðAøøøàÐ Ø”ð ,ð ,ØÔ ×'Ò'¨	Ñ2Ô2Ð2Ý  Ñ'Ô'ð ,Ø&+�Oð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ÐsH   ™1AÁAÁAÃC-GÇGÇGÇ>
H	È	$H0È/H0È<,I4É4I8É;I8c                óü   — 	 t          j         ¦   «         t          z   }| j                             |¦  «        }| j        rt          | ¦  «         |j        t          j        j	        k    }|st          | |¦  «        sd S d }Œ|r9   )ré   Ú"_DEALLOCATED_SERVER_CHECK_PERIOD_SrÆ  ÚpollrÔ  Ú_begin_shutdown_onceÚcompletion_typer   ÚCompletionTypeÚqueue_timeoutr  )r@   Útimeoutrú  Ú
is_timeouts       r2   Ú_server    sŠ   € ðÝ”)‘+”+Õ BÑBˆØÔ&×+Ò+¨GÑ4Ô4ˆØÔ#ð 	(Ý  Ñ'Ô'Ð'àÔ!¥VÔ%:Ô%HÒHð 	ð ð 	Õ"=¸eÀUÑ"KÔ"Kð 	ØˆFð ˆðr4   c                ó  — | j         5  | j        t          j        u rU| j                             | j        t          ¦  «         t          j        | _        | j	         
                    t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r9   )rÄ  rË  r»  rÀ  rÈ  r    rÆ  rÿ  rÁ  r“   r¼   rD   s    r2   r  r  0  s·   € Ø	Œð )ð )ØŒ;�,Ô.Ð.Ð.ØŒL×!Ò! %Ô"8½-ÑHÔHÐHÝ&Ô,ˆEŒKØŒI�MŠM�-Ñ(Ô(Ð(ð	)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s   ˆA)A>Á>BÂBr¾  úOptional[float]rÌ  c                ó0  ‡ ‡‡— ‰ j         5  ‰ j        t          j        u r5t	          j        ¦   «         Š‰                     ¦   «          ‰cd d d ¦  «         S t          ‰ ¦  «         t	          j        ¦   «         Š‰ j         	                    ‰¦  «         ‰€‰ j
                             ¦   «          n>ˆˆˆ fd„}t	          j        |¬¦  «        }|                     ¦   «          ‰cd d d ¦  «         S 	 d d d ¦  «         n# 1 swxY w Y   ‰                     ¦   «          ‰S )Nc                 ó¦   •— ‰                      ‰ ¬¦  «         ‰j        5  ‰j                             ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S ©N)r  )r5  rÄ  rÈ  Úcancel_all_calls)r¾  rõ  r@   s   €€€r2   Úcancel_all_calls_after_gracez+_stop.<locals>.cancel_all_calls_after_graceE  sš   ø€ Ø×#Ò#¨EÐ#Ñ2Ô2Ð2Ø”Zð 4ð 4Ø”L×1Ò1Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s   ŸAÁA
ÁA
)Útarget)rÄ  rË  r»  r¿  r�   rÙ  r’   r  rÎ  rš   rÈ  r  ÚThreadÚstartr5  )r@   r¾  r  Úthreadrõ  s   ``  @r2   Ú_stopr  8  sœ  øøø€ Ø	Œð "ð "ØŒ;�,Ô.Ð.Ð.Ý&œ_Ñ.Ô.ˆNØ×ÒÑ Ô Ð Ø!ð	"ð "ð "ð "ñ "ô "ð "ð "õ
 	˜UÑ#Ô#Ð#Ý"œÑ*Ô*ˆØÔ×$Ò$ ^Ñ4Ô4Ð4Øˆ=ØŒL×)Ò)Ñ+Ô+Ð+Ð+ð4ð 4ð 4ð 4ð 4ð 4ð 4õ
 Ô%Ð-IÐJÑJÔJˆFØ�LŠL‰NŒNˆNØ!ð'"ð "ð "ð "ñ "ô "ð "ð "ð ,ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð( ×ÒÑÔÐØÐs   ‹<C7ÁB	C7Ã7C;Ã>C;c                ó¢  — | j         5  | j        t          j        urd}t	          |¦  «        ‚| j                             ¦   «          t          j        | _        | j        D ]}t          | |¦  «         Œt          | ¦  «         t          j        t          | f¬¦  «        }d|_        |                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nz$Cannot start already-started server!)r  ÚargsT)rÄ  rË  r»  r¿  r  rÈ  r  rÀ  rÊ  rò  rî  r�   r  r  Údaemon)r@   r  rQ   r  s       r2   Ú_startr  Q  s  € Ø	Œð ð ØŒ;�lÔ2Ð2Ð2Ø>ˆIÝ˜YÑ'Ô'Ð'ØŒ×ÒÑÔÐÝ"Ô*ˆŒàÔ6ð 	4ð 	4ˆFÝ$ U¨FÑ3Ô3Ð3Ð3å�eÑÔÐÝÔ!­°u°hÐ?Ñ?Ô?ˆØˆŒØ�Š‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ˆB/CÃCÃCÚgeneric_rpc_handlersc                ó`   — | D ]*}t          |dd ¦  «        }|€d|› d�}t          |¦  «        ‚Œ+d S )Nrx   ú"zP" must conform togrpc.GenericRpcHandler type but does not have "service" method!)ÚgetattrÚAttributeError)r  Úgeneric_rpc_handlerÚservice_attributer  s       r2   Ú_validate_generic_rpc_handlersr&  b  sl   € ð  4ð ,ð ,ÐÝ#Ð$7¸ÀDÑIÔIÐØÐ$ðRÐ'ð Rð Rð Rð õ ! Ñ+Ô+Ð+ð %ð,ð ,r4   Úbase_optionsúSequence[ChannelArgumentType]r  r‚   Úxdsc                ó|   — t          j        |¦  «        }t          j        |¦  «        }t	          | ¦  «        |z   |z   S r9   )r   Úcreate_channel_optionr   Ú(create_server_call_tracer_factory_optionrª   )r'  r  r)  Úcompression_optionÚ'maybe_server_call_tracer_factory_options        r2   Ú_augment_optionsr/  o  sJ   € õ
 &Ô;¸KÑHÔHÐåÔ?ÀÑDÔDð ,õ 	ˆlÑÔØ
ñ	à
1ñ	2ðr4   c                  ób   — e Zd ZU ded<   d+d„Zd,d„Zd-d„Zd.d„Zd/d!„Zd0d"„Z	d1d2d&„Z
d3d)„Zd*„ Zd#S )4Ú_ServerrÃ  rÞ   r�  r‚  rr   rÕ  Úinterceptorsú Sequence[grpc.ServerInterceptor]Úoptionsr(  rÐ  rÏ  r  r‚   r)  r€   c                ó  — t          j        ¦   «         }t          j        t          |||¦  «        |¦  «        }	|	                     |¦  «         t          ||	|t          j        |¦  «        ||¦  «        | _        |	| _	        d S r9   )
r   ÚCompletionQueueÚServerr/  Úregister_completion_queuerÃ  r   Úservice_pipelinerÞ   Ú
_cy_server)
rZ   r�  rr   r2  r4  rÐ  r  r)  rÆ  rÈ  s
             r2   rl   z_Server.__init__ƒ  s�   € õ "Ô1Ñ3Ô3ÐÝ”Õ/°¸ÀcÑJÔJÈCÑPÔPˆØ×(Ò(Ð)9Ñ:Ô:Ð:Ý"ØØØÝÔ)¨,Ñ7Ô7ØØ#ñ
ô 
ˆŒð !ˆŒˆˆr4   r  rÚ  r,   r–   c                óN   — t          |¦  «         t          | j        |¦  «         d S r9   )r&  rÝ  rÞ   )rZ   r  s     r2   Úadd_generic_rpc_handlersz _Server.add_generic_rpc_handlersš  s,   € õ 	'Ð';Ñ<Ô<Ð<Ý˜dœkÐ+?Ñ@Ô@Ð@Ð@Ð@r4   Úservice_namerg   rß  rÉ  c                óF  ‡— | j         j        5  | j         j        t          j        u r	 d d d ¦  «         d S 	 d d d ¦  «         n# 1 swxY w Y   ˆfd„|                     ¦   «         D ¦   «         }|D ]}| j                             |¦  «         Œt          | j         |¦  «         d S )Nc                óB   •— i | ]\  }}t          j        ‰|¦  «        |“ŒS rP   )r   Úfully_qualified_method)r   rQ   rz   r=  s      €r2   r  z:_Server.add_registered_method_handlers.<locals>.<dictcomp>«  s<   ø€ ð 
ð 
ð 
á&�˜õ Ô*¨<¸Ñ@Ô@À.ð
ð 
ð 
r4   )	rÞ   rÄ  rË  r»  rÀ  r  r:  Úregister_methodrâ  )rZ   r=  rß  Úmethod_to_handlersr@  s    `   r2   Úadd_registered_method_handlersz&_Server.add_registered_method_handlers   s"  ø€ ð Œ[Ôð 	ð 	ØŒ{Ô ¥LÔ$8Ð8Ð8Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	Ø8ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð

ð 
ð 
ð 
à*9×*?Ò*?Ñ*AÔ*Að
ñ 
ô 
Ðð '9ð 	Dð 	DÐ"ØŒO×+Ò+Ð,BÑCÔCÐCÐCÝ'¨¬Ð5GÑHÔHÐHÐHÐHs   ŽAÁAÁ	Arã  rÑ  c           	     óv   — t          j        |t          | j        t          j        |¦  «        ¦  «        ¦  «        S r9   )r   Úvalidate_port_binding_resultræ  rÞ   r  )rZ   rã  s     r2   Úadd_insecure_portz_Server.add_insecure_port³  s3   € ÝÔ3ØÕ'¨¬µW´^ÀGÑ5LÔ5LÑMÔMñ
ô 
ð 	
r4   rç  rè  c           	     óx   — t          j        |t          | j        t          j        |¦  «        |¦  «        ¦  «        S r9   )r   rE  rë  rÞ   r  )rZ   rã  rç  s      r2   Úadd_secure_portz_Server.add_secure_port¸  s=   € õ Ô3ØÝØ”�Wœ^¨GÑ4Ô4Ð6Hñô ñ
ô 
ð 	
r4   c                ó.   — t          | j        ¦  «         d S r9   )r  rÞ   rY   s    r2   r  z_Server.startÂ  s   € ÝˆtŒ{ÑÔÐÐÐr4   Nr  r  c                ól   — t          j        | j        j        j        | j        j        j        |¬¦  «        S r  )r   r5  rÞ   rÍ  Úis_set)rZ   r  s     r2   Úwait_for_terminationz_Server.wait_for_terminationÅ  s6   € õ Œ|ØŒKÔ)Ô.ØŒKÔ)Ô0Øð
ñ 
ô 
ð 	
r4   r¾  rÌ  c                ó,   — t          | j        |¦  «        S r9   )r  rÞ   )rZ   r¾  s     r2   Ústopz_Server.stopÏ  s   € Ý�T”[ %Ñ(Ô(Ð(r4   c                óB   — t          | d¦  «        rd| j        _        d S d S )NrÞ   T)r{  rÞ   rÔ  rY   s    r2   Ú__del__z_Server.__del__Ò  s0   € Ý�4˜Ñ"Ô"ð 	2ð .2ˆDŒKÔ*Ð*Ð*ð	2ð 	2r4   )r�  r‚  rr   rÕ  r2  r3  r4  r(  rÐ  rÏ  r  r‚   r)  r€   ©r  rÚ  r,   r–   )r=  rg   rß  rÉ  r,   r–   )rã  rg   r,   rÑ  )rã  rg   rç  rè  r,   rÑ  r'  r9   )r  r  r,   r€   )r¾  r  r,   rÌ  )rM   rN   rO   r•   rl   r<  rC  rF  rH  r  rL  rN  rP  rP   r4   r2   r1  r1    sÞ   € € € € € € ØÐÐÑð!ð !ð !ð !ð.Að Að Að AðIð Ið Ið Ið&
ð 
ð 
ð 
ð

ð 
ð 
ð 
ðð ð ð ð
ð 
ð 
ð 
ð 
ð)ð )ð )ð )ð2ð 2ð 2ð 2ð 2r4   r1  rÕ  r2  r3  r4  rÐ  rÏ  c           	     óJ   — t          |¦  «         t          | ||||||¦  «        S r9   )r&  r1  )r�  r  r2  r4  rÐ  r  r)  s          r2   Úcreate_serverrS  Ù  s:   € õ #Ð#7Ñ8Ô8Ð8ÝØØØØØØØñô ð r4   )r*   r+   r,   r-   )r5   r6   r,   r7   )r@   rA   r,   r7   )r@   rA   r5   r7   r,   r7   )r@   rA   r,   r-   )r@   rA   r,   r–   )r@   rA   r�   rg   r,   r   )r@   rA   r�   rg   r,   r   )r@   rA   r§   r…   r,   r…   )r@   rA   r§   r…   r,   r­   )
r@   rA   r³   r´   r5   r7   rI   r-   r,   r–   )r@   rA   r,   r   )r@   rA   r³   r´   rÈ   rÉ   r,   r   )rß   r+   r@   rA   rÈ   rÉ   r,   r?  r9   )rß   r+   r@   rA   rF  r   rG  r   rÈ   rÉ   rH  rI  r,   rJ  )rß   r+   r@   rA   rW  rX  r,   rY  )
rß   r+   r@   rA   r\  r   r]  r^  r,   r‡   )r@   rA   r,   rc  )rß   r+   r@   rA   ra  r-   r,   r€   )rß   r+   r@   rA   ra  r‡   r,   r–   )rß   r+   r@   rA   rF  r   rq  r?  rÈ   r^  r]  r^  r,   r–   )rß   r+   r@   rA   rF  r   rq  r?  rÈ   rÉ   r]  r^  r,   r–   )r@   rA   r,   r€   )
rß   r+   r@   rA   rH  r  rW  rX  r,   r–   )rF  r   r�  r‚  r,   r‚  )
rß   r+   r@   rA   rz   rˆ  r�  r‚  r,   r‰  )
rß   r+   r@   rA   r¡  rT   r¢  r£  r,   r]   )rß   r+   rª  rA   r  r7   rI   r-   )
rß   r+   r@   rA   rz   rˆ  r�  r‚  r,   r‰  )rß   r+   r¡  rT   r¢  r£  r�  r‚  r´  r€   r,   rµ  )r@   rÃ  rr   rÚ  r,   r–   )r@   rÃ  rß  rÉ  r,   r–   )r@   rÃ  rã  r-   r,   rÑ  )r@   rÃ  rã  r-   rç  rè  r,   rÑ  )r@   rÃ  r,   r–   )r@   rÃ  rQ   rg   r,   r–   )r@   rÃ  r,   r€   )r@   rÃ  rú  r+   r,   r€   )r@   rÃ  r¾  r  r,   rÌ  rQ  )r'  r(  r  r‚   r)  r€   r,   r(  )r�  r‚  r  rÕ  r2  r3  r4  r(  rÐ  rÏ  r  r‚   r)  r€   r,   r1  )„Ú__doc__Ú
__future__r   rc   ÚcollectionsÚ
concurrentr   rŽ   ÚenumÚloggingr�   ré   rP  Ú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   Ú	getLoggerrM   r  rÿ  rí  rÅ   rÔ   rÌ   rm  rl  rº   r¹   r”   rÃ   r·   r°   r  Ú_INF_TIMEOUTr3   r?   rE   rG   rJ   Ú
namedtupleÚHandlerCallDetailsrL   ÚABCrT   rf   rq   rA   rœ   r¢   r¦   r¬   r²   rÀ   rÇ   rÑ   rÖ   rÚ   ÚServicerContextrÜ   r)  rE  rV  r[  rb  rg  ri  rn  rp  rv  r}  r¡   r|  r‡  r�  r“  rœ  r   r©  r¯  r³  r¹  ÚuniqueÚEnumr»  rÃ  rÝ  râ  ræ  rë  rî  rò  rö  rù  r  r  r  r  r  r&  r/  r7  r1  rS  rP   r4   r2   ú<module>rf     sÅ  ðð 2Ð 1à "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .Ø %Ð %Ð %Ð %Ð %Ð %Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø %Ð %Ð %Ð %Ð %Ð %Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø *Ð *Ð *Ð *Ð *Ð *Ø .Ð .Ð .Ð .Ð .Ð .Ø &Ð &Ð &Ð &Ð &Ð &à
ˆ'Ô
˜HÑ
%Ô
%€à€Ø"Ð à!:Ð Ø6Ð Ø*Ð Ø$Ð à*ð .ð ";Ð à5ð 9ð 	€Ø
€Ø€
à€à%(Ð "Ø€ð7ð 7ð 7ð 7ðMð Mð Mð Mð
)ð )ð )ð )ð)ð )ð )ð )ð;ð ;ð ;ð ;ð
	ð 
	ð 
	ð 
	ð 
	Ø€KÔØð	
ñô ð 	Ôñ
	ô 
	ð 
	ð	$ð 	$ð 	$ð 	$ð 	$ˆcŒgñ 	$ô 	$ð 	$ð(ð (ð (ð (ð (˜ñ (ô (ð (ð(ð ð ð ð �Wñ ô ð ð0 ð  ð  ð  ð  ñ  ô  ð  ðFð ð ð ðð ð ð ð#ð #ð #ð #ðð ð ð ð ð ð ð ðð ð ð ðD
#ð 
#ð 
#ð 
#ðð ð ð ðB!ð !ð !ð !ðð ð ð ðvð vð vð vð vˆtÔ#ñ vô vð vðr<ð <ð <ð <ð <ñ <ô <ð <ð~%ð %ð %ð %ð\ HLð7ð 7ð 7ð 7ð 7ðtð ð ð ð<ð ð ð ð&ð ð ð ð/ð /ð /ð /ð
 3ð  3ð  3ð  3ðF:ð :ð :ð :ð@#ð #ð #ð #ð8.#ð .#ð .#ð .#ðbAð Að Að Aðð ð ð ð$ð ð ð ðð ð ð ð0ð ð ð ð0ð ð ð ð0ð ð ð ð0Cð Cð Cð Cð6ð ð ð ð,
ð 
ð 
ð 
ð:=ð =ð =ð =ð@ „ðð ð ð ð �4”9ñ ô ñ „ðð-(ð -(ð -(ð -(ð -(ñ -(ô -(ð -(ð`8ð 8ð 8ð 8ðAð Að Að Að4ð 4ð 4ð 4ð

ð 
ð 
ð 
ð%ð %ð %ð %ð'ð 'ð 'ð 'ðð ð ð ð$ð $ð $ð $ðAð Að Að AðHð ð ð ð")ð )ð )ð )ðð ð ð ð2ð ð ð ð"
,ð 
,ð 
,ð 
,ðð ð ð ð W2ð W2ð W2ð W2ð W2ˆdŒkñ W2ô W2ð W2ðtð ð ð ð ð r4   