+
    lHàj±a  ã                   ó¤  € R t ^RIHt ^ RIt^ RIt^ RIt^ RIt]! 4       t]P                  tR’t	]
! ]	4      t]P                  ! 4       t]P                  ! 4       tRsRsRtRtR R ltR tRR/R R lltR tR R  ltR! R" ltR# R$ ltR% R& ltR“R' R( lltR) R* ltR+ R, ltR- R. ltR/ R0 ltR1 R2 lt R3 R4 lt!R5RR6R7R8R9R:RR;]R<R7/R= R> llt"]! R4      ]]	3R? R@ ll4       t#]"! RRAR9RB7      ]]3RC RD ll4       t#]"! RRER9RB7      ]3RF RG ll4       t#]"! RRHRIRJ7      RK RL l4       t#]"! RRMR9RB7      RN RO l4       t#]"! RRPRQRR]RS7      RT RU l4       t#]"! RRVRWR9RX7      RY RZ l4       t#]"! RR[R\RR]RS7      R] R^ l4       t#]"! R
R_R`RR]RS7      Ra Rb l4       t#]"! RRcRdRJ7      Re Rf l4       t#]"! RRgRdRJ7      Rh Ri l4       t#]"! RRjRdRJ7      Rk Rl l4       t#R6R7RmR/Rn Ro llt$]$! RRpRqRrRsRtR”RvRw7       ]$! R	RpRxRyRzR{RuR|R} 3R~R 3R€] 33R�7       ]$! RR‚RƒR„RcR…R•R9R†7       ]$! RR‚R‡RˆRsRtR–R9R†7       ]"! RRjR‰R7R9RŠ7      R‹ RŒ l4       t#]$! RR‚R�RŽRgR�R—R9R†7       R� R‘ lt%R# )˜aa  Hosted-room JSON-RPC contract: durable room identity, replay, and the process-owned
same-gateway Discussion driver; ``groups.capabilities`` keeps that boundary machine-readable.

Handlers are rebound onto server.py's globals at install (method_ctx.py); module-private
helpers reach them through keyword defaults. ``_room_method`` is the shared envelope.)ÚHandlerRegistryNúgroups.capabilitiesúgroups.listúgroups.createúgroups.stateúgroups.sendúgroups.renameú
groups.logúgroups.disbandúgroups.replicateúgroups.replica_stateúgroups.promoteúgroups.demoteúgroups.stopúgroups.retryúgroups.approveúgroups.peer.inviteúgroups.peer.revokeúgroups.peer.registerzKGroup Chat worker is unavailable. Restart the Hermes gateway and try again.z!hosted room driver is unavailablec                ó   € V ^8„  d   QhRR/# ©é   ÚreturnN© )Úformats   "Ú?/home/ubuntu/.hermes/hermes-agent/tui_gateway/methods_groups.pyÚ__annotate__r   "   s   € ÷ Añ A˜4ñ Aó    c                ó    € V s \        V n        R# )zCBind the fully initialized server module without starting a worker.N)Ú_bound_serverÚ_profile_execution_policy©Úservers   &r   Úbind_serverr#   "   s   € ð €MÜ'@€FÖ$r   c                 ó`  € \         f   R# ^ RIHp  ^ RIHp V ! 4       p\
        ;_uu_ 4        \        e.   \        P                  V8w  d   \        P                  RR7       Rs\        f   V! \         VR7      s\        P                  4        \        uuRRR4       #   + '       g   i     R# ; i)z9Start one process-owned hosted room service idempotently.N©Údefault_db_path)ÚHostedRoomServiceg      ð?©Útimeout)Údb_path)
r   Úgateway.hosted_roomsr&   Útui_gateway.hosted_room_servicer'   Ú_service_lockÚ_servicer*   ÚstopÚstart)r&   r'   r*   s      r   Ústart_hosted_room_servicer1   )   sq   € ô ÒÙÝ4ÝAÙÓ€Gß	ŽÜÒ¤H×$4Ñ$4¸Ô$?Ü�M‰M #ˆMÔ&ØˆHÜÒÙ(¬ÀÔHˆHÜ�‰ÔÜ÷ 
��‹ús   ¬A%BÂB-	r)   g      @c                ó0   € V ^8„  d   QhR\         R\        /# )r   r)   r   )ÚfloatÚbool)r   s   "r   r   r   ;   s   € ÷ 
ñ 
¬ð 
¼ñ 
r   c                óÖ   € \         ;_uu_ 4        \        pVf    RRR4       R# VP                  V R7      pV'       d   \        VJ d   RsVuuRRR4       #   + '       g   i     R# ; i)zBStop the process-owned worker without interrupting accepted turns.NTr(   )r-   r.   r/   )r)   ÚserviceÚstoppeds   $  r   Ústop_hosted_room_servicer8   ;   sM   € ÷ 
ŽÜˆØŠ?Ø÷ 
‰ð —,‘, w�,Ó/ˆß”x 7Ó*ØˆHØ÷ 
��‹ús   �A¥A¿AÁA(	c                 óØ   € \         p V f   R#  V P                  P                  4       pTP	                  R4      '       d   TP	                  R4      '       g   T # R#   \         d     R# i ; i)z=Return the active service, if its lifecycle owner started it.NÚrunningÚstopping)r.   ÚruntimeÚstatusÚ	ExceptionÚget)r6   r=   s     r   Úget_hosted_room_servicer@   H   sd   € ä€GØ‚ÙðØ—‘×'Ñ'Ó)ˆð —j‘j ×+Ò+°F·J±J¸z×4JÒ4Jˆ7ÐTÐPTÐTøô ô Úðús   ŽA ÁA)Á(A)c                ó$   € V ^8„  d   QhR\         /# ©r   r   ©Ústr)r   s   "r   r   r   T   s   € ÷ Kñ K”sñ Kr   c                  ór   € \         P                  ! R 4      ;'       g    RP                  4       ;'       g    R# )ÚHERMES_PROFILEÚdefault)ÚosÚgetenvÚstripr   r   r   Ú_profile_namerK   T   s+   € Ü�IŠIÐ&Ó'×4Ð4¨9×;Ñ;Ó=×JÐJÀÐJr   c                ó$   € V ^8„  d   QhR\         /# rB   rC   )r   s   "r   r   r   X   s   € ÷ Dñ Dœ#ñ Dr   c                  ól   € \        \        P                  4       ;'       g    R 4      P                  4       # )Ú )rD   r   Ú_current_profile_namerJ   r   r   r   Ú_current_profilerP   X   s'   € ÜŒ}×2Ñ2Ó4×:Ð:¸Ó;×AÑAÓCÐCr   c                ó$   € V ^8„  d   QhR\         /# )r   ÚprofilerC   )r   s   "r   r   r   \   s   € ÷ ñ ¤3ñ r   c                óV   € \         P                  V 4      pVf   \        RV  R24      hV# )zIHome of a routed profile other than the process's own, or ``ValueError``.z	profile 'z' is unavailable)r   Ú_profile_homeÚ
ValueError)rR   Úhomes   & r   Ú_foreign_profile_homerW   \   s1   € ä×&Ñ& wÓ/€DØ‚|Ü˜9 W IÐ-=Ð>Ó?Ð?Ø€Kr   c                ó0   € V ^8„  d   QhR\         R\        /# ©r   Úparamsr   )ÚdictrD   )r   s   "r   r   r   d   s   € ÷ 	Mñ 	Mœtð 	M¬ñ 	Mr   c                 ó8  € \        V P                  R 4      ;'       g    R4      P                  4       pV'       g   \        4       # \        f   \        R4      hV\        4       8X  d   V# \        V4       \        \        P                  V4      ;'       g    T4      # )rR   rN   zprofile routing is unavailable)	rD   r?   rJ   rK   r   rU   rP   rW   Ú_response_profile_name)rZ   Ú	requesteds   & r   Ú_requested_profiler_   d   s{   € Ü�F—J‘J˜yÓ)×/Ð/¨RÓ0×6Ñ6Ó8€IßÜ‹ÐÜÒÜÐ9Ó:Ð:ØÔ$Ó&Ô&ØÐÜ˜)Ô$ÜŒ}×3Ñ3°IÓ>×KÐKÀ)ÓLÐLr   c                ó>   € V ^8„  d   QhR\         R,          R\         /# )r   rR   Nr   rC   )r   s   "r   r   r   p   s"   € ÷ Añ AœS 4�Zð A´3ñ Ar   c                 ó0  € V '       dq   \         ei   V \        4       8w  dZ   ^ RIHp \         P	                  V 4      pVf   R# \        V! V4      P                  R4      ;'       g    R4      P                  4       # Rp\        P                  ! \        4      ;_uu_ 4        ^ RIHp V! RR4      ;'       g    RP                  4       pR R R 4       T;'       g/    \        P                  ! R4      ;'       g    RP                  4       #   + '       g   i     LH; i)N)Úbuild_profile_secret_scoperN   ÚAPI_SERVER_KEY)Ú
get_secret)r   rP   Úagent.secret_scoperb   rT   rD   r?   rJ   Ú
contextlibÚsuppressr>   rd   rH   rI   )rR   rb   rV   Úscopedrd   s   &    r   Ú_api_server_keyri   p   sÐ   € ÷ ”=Ò,°Ô<LÓ<NÔ1NÝAÜ×*Ñ*¨7Ó3ˆØŠ<ÙÜÑ-¨dÓ3×7Ñ7Ð8HÓI×OÐOÈRÓP×VÑVÓXÐXØ€FÜ	×	Ò	œY×	'Õ	'Ý1ÙÐ-¨rÓ2×8Ð8°b×?Ñ?ÓAˆ÷ 
(ð ×@Ð@”b—i’iÐ 0Ó1×7Ð7°R×>Ñ>Ó@Ð@÷ 
(×	'ús   Â(DÄD	c                ó0   € V ^8„  d   QhR\         R\        /# )r   rR   r   ©rD   r[   )r   s   "r   r   r   €   s   € ÷ 	@ñ 	@¤sð 	@¬tñ 	@r   c                ó0  € ^ RI Hp \        f
   V! V R7      # V \        4       \	        4       09   d   RM
\        V 4      p\        P                  RV'       d   \        V4      MR/4      ;_uu_ 4        V! V R7      uuRRR4       #   + '       g   i     R# ; i)a  Resolve execution policy under the exact multiplexed profile's FULL runtime scope: the policy
reads provider credentials (``_xai_credentials_present`` -> ``get_env_value``), which under a
home-only override resolved from the launch process env (or raised once hosting fails closed).)Úexecution_policy_mappingN)Útarget_profileÚprofile_home)Ú$gateway.hosted_room_execution_policyrm   r   rP   rK   rW   Ú_session_profile_runtime_scoperD   )rR   rm   rV   s   &  r   r    r    €   sq   € õ NÜÒÙ'°wÔ?Ð?ØÔ/Ó1´=³?ÐCÔC‰4ÔI^Ð_fÓIg€DÜ	×	5Ñ	5°~×TXÄsÈ4ÄyÐ^bÐ6c×	dÕ	dÙ'°wÔ?÷ 
e×	d×	dÓ	dús   Á0	BÂB	c                ó$   € V ^8„  d   QhR\         /# rB   )r4   )r   s   "r   r   r   Œ   s   € ÷ 2ñ 2¬ñ 2r   c                 ó  € \         f   R# \        \         RR4      p V fE   ^ RIHp \        ;_uu_ 4        \        \         RR4      p V f   V! 4       ;p \         n        RRR4       \        \        V RR4      4      #   + '       g   i     L&; i)z=Return whether peer-run replay survives this gateway process.NTÚ_run_idempotency_store)ÚRunIdempotencyStoreÚdurableF)r   ÚgetattrÚ,gateway.platforms.api_server_run_idempotencyru   Ú_run_store_lockrt   r4   )Ústoreru   s     r   Ú_room_link_run_storage_durabler{   Œ   sq   € äÒáÜ”MÐ#;¸TÓB€EØ‚}õ 	UßŽ_ÜœMÐ+CÀTÓJˆEØŠ}Ù?RÓ?TÐT�œÔ<÷ ô ”˜˜y¨%Ó0Ó1Ð1÷	 �_ús   ´(A:Á:B
	c                óH   € V ^8„  d   QhR\         R\         R\        R\        /# )r   Úinstallation_idrR   Úexecution_policyr   rk   )r   s   "r   r   r   �   s)   € ÷ +ñ +¤Cð +´#ð +Ìð +ÔRVñ +r   c           
     ó0   € ^ RI HpHp V! W3RRRVVR7      # )zAAdvertise this gateway's direct-only, text-only RoomLink catalog.)ÚPROTOCOL_VERSIONÚlocal_catalog_mappingTF)r}   Úprotocol_versionsÚ
link_modesÚtextÚattachmentsrn   r~   )Údirect)Úgateway.hosted_room_peerr€   r�   )r}   rR   r~   r€   r�   s   &&&  r   Ú_local_catalogrˆ   �   s$   € çPÙ Ø'Ð;NØ T°uÈWØ)ô+ð +r   c                ó0   € V ^8„  d   QhR\         R\        /# )r   Úclaimsr   )r[   r3   )r   s   "r   r   r   ¦   s   € ÷ Hñ Hœ$ð H¤5ñ Hr   c                 óF   € \        V P                  R V R,          4      4      # )Ústatus_expires_atÚ
expires_at)r3   r?   )rŠ   s   &r   Ú_grant_expiryrŽ   ¦   s   € Ü�—‘Ð/°¸Õ1EÓFÓGÐGr   c                ó0   € V ^8„  d   QhR\         R\        /# rY   )r[   r4   )r   s   "r   r   r   ª   s   € ÷ 3ñ 3œtð 3¬ñ 3r   c                 ó(   € V P                  R 4      RJ # )Úinclude_disbandedT©r?   )rZ   s   &r   Ú_include_disbandedr“   ª   s   € Ø�:‰:Ð)Ó*¨dÐ2Ð2r   c                ó0   € V ^8„  d   QhR\         R\        /# )r   Úreplica_onlyr   )r4   Útype)r   s   "r   r   r   ®   s   € ÷ ñ ¤Dð ¬Tñ r   c                 ó2   € V '       d	   ^ RI Hp V# ^ RIHp V# )é    )ÚReplicaError)ÚHostedRoomError)Úgateway.hosted_room_replicasr™   r+   rš   )r•   r™   rš   s   &  r   Ú_room_error_classrœ   ®   s   € ßÝ=ØÐÝ4ØÐr   Ú	room_coder•   FÚwith_reasonTÚservice_codeÚservice_messageÚdbc                ó”   € V ^8„  d   QhR\         R\        R\        R,          R\        R\        R\        R,          R\         R	\        /# )
r   ÚnameÚcoder�   Nr•   rž   rŸ   r    r¡   )rD   Úintr4   )r   s   "r   r   r   ¶   sX   € ÷ ñ Ü
ðÜðÜ(+¨d­
ðÜIMðäðä,/°$­Jðô ðô 59ñr   c          	     ó@   a aaaaaaaa	€ \         o	VVV	V VVVVV3	R lpV# )a‹  Register ``fn`` under ``name`` with the shared hosted-room error envelope.
``service_code``: the live service is required (else that error) and passed as a third
argument; ``db``: the default room db path follows. ``room_code`` maps ``HostedRoomError``
(only ``ReplicaError`` when ``replica_only``) to a client error with ``{"reason"}`` data
when ``with_reason``; anything else maps to ``code``.c           
      ól   <	a € R  VVVV VVVV	V
3	R llpS P                   Vn         \        S4      ! V4      # )c                ó0   € V ^8„  d   QhR\         R\         /# rY   ©r[   )r   s   "r   r   Ú/_room_method.<locals>.dec.<locals>.__annotate__Â   s   € ÷ 	1ñ 	1¤ð 	1¬$ñ 	1r   c                 ó²  <	€ W3pSe%   \        4       pVf   \        V SS4      # W#3,          pS'       d   ^ RIHp W$! 4       3,          p S
! V!  #   \         d|   pSeX   \        TS	! S4      4      '       d@   S'       d   \        TRR 4      MR p\        T S\        T4      T'       d   RT/MR 4      u R p?# \        T S\        T4      4      u R p?# R p?ii ; i)Nr%   Úreason)r@   Ú_errr+   r&   r>   Ú
isinstancerw   rD   )ÚridrZ   Úargsr6   r&   Úexcr¬   r¤   r¡   Úerror_classÚfnr•   r�   rŸ   r    rž   s   &&     €€€€€€€€€r   ÚhandlerÚ*_room_method.<locals>.dec.<locals>.handlerÂ   sÇ   ø€ Ø�=ˆDØÒ'Ü1Ó3�Ø’?Ü  \°?ÓCÐCØ˜
Õ"�ßÝ@Ø˜Ó*Ð,Õ,�ð1Ù˜4‘yÐ øÜô 1ØÒ(¬Z¸¹[ÈÓ=V×-WÒ-Wß=HœW S¨(°DÔ9Èd�FÜ  Y´°C³×PV¸8ÀVÑ:LÐ\`ÓaÕaÜ˜C ¤s¨3£xÓ0Õ0ûð	1ús0   Á
A ÁCÁ#CÁ?1CÂ0CÂ6CÃCÃC)Ú__doc__Úmethod)r³   r´   r¤   r¡   r²   r£   r•   r�   rŸ   r    rž   s   f €€€€€€€€€r   ÚdecÚ_room_method.<locals>.decÁ   s.   ù€ ÷	1÷ 	1ð 	1ð" Ÿ*™*ˆŒÜ�dŒ|˜GÓ$Ð$r   )rœ   )
r£   r¤   r�   r•   rž   rŸ   r    r¡   r¸   r²   s
   fddddddd @r   Ú_room_methodrº   ¶   s   ÿø€ ô $€K÷%õ %ð( €Jr   c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   Ù   s   € ÷ Dñ D”4ð DÌñ Dr   c                óJ  € ^ RI HpHpHp \	        4       p\        T;'       d"    VP                  P                  4       R,          4      p ^ RIH	p	 \        V4      p
\        4       '       g   \        R4      hV	! 4        \        V
4      pV! V! 4       W«4      pRRRV
RVR	VR	,          /p\        V RVRVR\        VP!                  R/ 4      P!                  RR
4      4      RV! 4       RVR. ROR\#        V4      RV/4      #   \         d    RR
R\        4       '       g   RMR/p Lzi ; i)z>Describe the hosted-room protocol implemented by this gateway.)ÚMAX_LOG_LIMITr€   Úlocal_authority_gateway_idr:   )Úgateway_room_grant_secretú+durable run idempotency storage is requiredÚenabledTrR   ÚcatalogÚendpointFr¬   Údurable_run_storage_requiredÚ#gateway_roomlink_secret_unavailableÚprotocol_versionÚdriverÚpersistent_processÚauthority_gateway_idÚ	room_linkÚfeaturesÚmethodsÚmax_log_limit)
Úauthority_epochÚcoordinator_fencingÚroom_identityÚmonotonic_logÚidempotent_sendÚreplayable_disbandÚtyped_eventsÚactor_identityÚlog_replicationÚauthority_takeover)r+   r½   r€   r¾   r@   r4   r<   r=   r‡   r¿   r_   r{   rU   r    r>   Ú_okr?   Úlist)r¯   rZ   Ú_catalogÚ_methodsr½   r€   r¾   r6   Údriver_readyr¿   rR   ÚpolicyrÂ   rÊ   s   &&&&          r   Ú_rÞ   Ø   s5  € ÷ aÑ`Ü%Ó'€GÜ˜×GÐG G§O¡O×$:Ñ$:Ó$<¸YÕ$GÓH€Lð9ÝFÜ$ VÓ,ˆÜ-×/Ò/ÜÐJÓKÐKÙ!Ô#Ü*¨7Ó3ˆÙÑ5Ó7¸ÓIˆà�t˜Y¨°¸GØ˜ 
Õ+ð-ˆ	ô ˆsØÐ,¨h¸Øœd 9§=¡=°¸BÓ#?×#CÑ#CÐDXÐZ_Ó#`ÓaØÑ :Ó <¸kÈ9Øò 5ð 	”4˜“> ?°MðCó Dð Døô	 ô 9Ø  xÜ2P×2RÒ2RÑ*Ø6ð9Š	ð9ús   Á
AC< Ã<#D"Ä!D"i  )r¤   r¡   c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   ù   s   € ÷ *ñ *”4ð *ÔUYñ *r   c                ó¤  € ^ RI HpHpHp ^ RIHpHp	 \        4       '       g   \        R4      hV! 4       p
\        V4      p\        VP                  RR4      4      p^<Tu;8:  d   R8:  g   M \        R4      hV! 4       p\        V4      pT! T\        VP                  R4      ;'       g(    R\        P                  ! ^4      P!                  4        24      \        VP                  R	4      ;'       g    R
4      \        VP                  R4      ;'       g    R
4      \        VP                  R4      ;'       g    R
4      \#        VP                  R4      ;'       g    ^ 4      \        VP                  R4      ;'       g    R
4      V
W¾R,          VR7      pV! WßRR7      pV	! VVV! V4      R7       V! W«V4      p\%        V RVRVRVRVR,          /4      # )zAMint one target-issued room/profile grant for a prospective home.)Údecode_room_grantr¿   Úissue_room_grant)r¾   Úreserve_peer_roomrÀ   Úttl_secondsi  z(ttl_seconds must be between 60 and 86400Úgrant_idzgrant-Úroom_idrN   Úhome_install_idrÉ   rÎ   Ú	member_idÚpolicy_digest)
rå   ræ   rç   rÉ   rÎ   rè   Útarget_install_idrn   Úexecution_policy_digesträ   r=   ©Ú
permission©rŠ   r�   Úgrantrn   rÂ   rÃ   i€Q )r‡   rá   r¿   râ   r+   r¾   rã   r{   rU   r_   r3   r?   r    rD   rH   ÚurandomÚhexr¥   rØ   )r¯   rZ   r*   rÚ   Ú_expiryrá   r¿   râ   r¾   rã   r}   rR   ÚttlÚgrant_secretr~   ÚtokenrŠ   rÂ   s   &&&&&             r   rÞ   rÞ   ø   sœ  € ÷Hñ HçRÜ)×+Ò+ÜÐFÓGÐGÙ0Ó2€OÜ  Ó(€GÜ
�—
‘
˜=¨$Ó/Ó
0€CØ�Ö$˜Ö$ÜÐCÓDÐDÙ,Ó.€LÜ0°Ó9ÐÙØœs 6§:¡:¨jÓ#9×#\Ð#\¸vÄbÇjÂjÐQSÃn×FXÑFXÓFZÐE[Ð=\Ó]Ü�F—J‘J˜yÓ)×/Ð/¨RÓ0Ü˜FŸJ™JÐ'8Ó9×?Ð?¸RÓ@Ü  §¡Ð,BÓ!C×!IÐ!IÀrÓJÜ˜FŸJ™JÐ'8Ó9×>Ð>¸QÓ?Ü�f—j‘j Ó-×3Ð3°Ó4ÈØÈÕ8YØô€Eñ ˜|¸xÔH€FÙ�g f¹À»ÕIÙ�Ð1AÓB€GÜˆsØ�Ð(¨'°9¸gØ�G˜JÕ'ð)ó *ð *r   i  c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r     s   € ÷ 'ñ '”4ð '¼Dñ 'r   c                ó0  € ^ RI HpHp ^ RIHpHp \        V4      pT! V! 4       \        VP                  R4      ;'       g    R4      RR7      p	V	R,          V8w  g   V	R,          V! 4       8w  d   \        R	4      hV! W)V! V	4      R
7       \        V RR/4      # )z=Revoke one target-issued grant using its exact profile scope.)rá   r¿   )r¾   Úrevoke_room_grant_scoperï   rN   r=   rì   rn   rê   z-room grant target does not match this profilerî   ÚrevokedT)r‡   rá   r¿   r+   r¾   rø   r_   rD   r?   rU   rØ   )
r¯   rZ   r*   rò   rá   r¿   r¾   rø   rR   rŠ   s
   &&&&      r   rÞ   rÞ     s�   € ÷ VßXÜ  Ó(€GÙÙ!Ó#¤S¨¯©°GÓ)<×)BÐ)BÀÓ%CÐPXôZ€FàÐÕ  GÔ+ØÐ)Õ*Ñ.HÓ.JÔJÜÐHÓIÐIÙ˜G¹wÀv»ÕOÜˆs�Y Ð%Ó&Ð&r   i   i  )r¤   rŸ   c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   (  s   € ÷ -Yñ -Y”4ð -Y¤Tñ -Yr   c                ó¬  a€ ^ RI HpHpHp ^ RIHpHp ^ RIHp ^ RI	H
p	 V! VP                  R4      4      w  r«VP                  VP                  R4      4      pWLP                  9  d   \        RV 24      hRVP                  9  d   \        R	4      h\!        VP                  R
4      ;'       g    R4      p\!        VP                  R4      ;'       g    R4      pV! V
RVP"                  R7      pVP%                  VR7      oVP                  SP                  R4      4      V8w  d   \        R4      h\!        VP                  R4      ;'       g    R4      p\!        VP                  R4      ;'       g    R4      pV! 4       pV! VP"                  VR7      pRVRVRVP                  R4      RVR
V/p\&        ;QJ d-    V3R lVP)                  4        4       F  '       g   K   RM"	  RM! V3R lVP)                  4        4       4      '       gL   \+        SP                  R4      ;'       g    ^ 4      \+        VP                  R4      ;'       g    ^ 4      8w  d   \        R4      hT	! TTVP,                  TVP.                  VP0                  P2                  \!        VP                  R4      ;'       g    RVP                  R4      ;'       g    R 24      \!        VP                  R4      ;'       g(    R\4        P6                  ! ^4      P9                  4        24      VR7	      pVP;                  VVVWúVR7       \=        V R RR!RR"VR#VP,                  R
V/4      # )$z<Register and probe one scoped target route on the room home.)ÚGatewayRoomCatalogr€   Úvalidate_room_link_url)r¾   Ú
room_state)ÚPeerRunsHTTPClient)ÚPeerMemberRouteÚ
target_urlrÂ   z+target does not support RoomLink protocol vr†   z)target does not support a direct RoomLinkrn   rN   rï   )Úbase_urlÚapi_keyÚreceipt_db_path)rï   z.target capability catalog changed during setupræ   rè   ©ræ   rç   rÉ   c              3   óP   <"  € T F  w  rSP                  V4      V8g  x € K  	  R # 5i©Nr’   )Ú.0ÚkÚvÚprobes   &  €r   Ú	<genexpr>Ú_.<locals>.<genexpr>D  s"   øé € ÐAÑ*@¡$ !ˆE�I‰I�a‹L˜AÖÓ*@ùs   ƒ#&TFrÎ   z*room grant scope does not match this routeÚcancellation_scope_idzcancel-Útrace_idztrace-)	rç   rè   rê   rn   Úcapability_digestrë   r  r  rï   )ræ   rè   ÚrouteÚclientr  rÂ   Ú
registeredÚmodeÚtransport_securityrê   )r‡   rü   r€   rý   r+   r¾   rþ   Ú!tui_gateway.hosted_room_peer_httprÿ   Ú&tui_gateway.hosted_room_peer_transportr   r?   Úfrom_mappingr‚   rU   rƒ   rD   r*   r  ÚanyÚitemsr¥   r}   Úcatalog_digestr~   ré   rH   rð   rñ   Úregister_peer_routerØ   )r¯   rZ   r6   rü   ÚROOM_LINK_PROTOCOL_VERSIONrý   r¾   rþ   rÿ   r   r  r  rÂ   rn   rï   r  ræ   rè   rç   Ú	home_roomÚexpected_scoper  r  s   &&&                   @r   rÞ   rÞ   '  sò  ø€ ÷dñ dçKÝDÝFÙ%;¸F¿J¹JÀ|Ó<TÓ%UÑ"€JØ ×-Ñ-¨f¯j©j¸Ó.CÓD€GØ!×)BÑ)BÔBÜÐFÐGaÐFbÐcÓdÐdØ�w×)Ñ)Ô)ÜÐDÓEÐEÜ˜Ÿ™Ð$4Ó5×;Ð;¸Ó<€NÜ�—
‘
˜7Ó#×)Ð) rÓ*€EÙ¨¸RÐQX×Q`ÑQ`Ôa€FØ�L‰L˜uˆLÓ%€Eà×&Ñ& u§y¡y°Ó';Ó<ÀÔGÜÐIÓJÐJÜ�&—*‘*˜YÓ'×-Ð-¨2Ó.€GÜ�F—J‘J˜{Ó+×1Ð1¨rÓ2€IÙ0Ó2€OÙ˜7Ÿ?™?°GÔ<€Ià�7Ð-¨Ø 	§¡Ð.DÓ EØ�YÐ 0°.ðB€N÷ 	‹ÔA¨.×*>Ñ*>Ô*@ÓA��ŠÔA¨.×*>Ñ*>Ô*@ÓA×AÒAÜ�5—9‘9Ð.Ó/×4Ð4°1Ó5Ü�9—=‘=Ð!2Ó3×8Ð8°qÓ9ô:äÐEÓFÐFÙØ'°9Ø!×1Ñ1À.Ø!×0Ñ0Ø '× 8Ñ 8× FÑ FÜ!Ø�J‰JÐ.Ó/×ZÐZ°W¸V¿Z¹ZÈ	Ó=R×=XÐ=XÐVXÐ<YÐ3Zó\ä�V—Z‘Z 
Ó+×NÐN°¼¿
º
À2»×8JÑ8JÓ8LÐ7MÐ/NÓOÐW\ô^€Eð ×ÑØ 9°EÀ&Øð  ô ô ˆsØ�d˜F HÐ.BÐDVØ˜W×4Ñ4Ð6FÈðXó Yð Yr   iö  c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   Y  s   € ÷ 	Bñ 	B”4ð 	B¤Tñ 	Br   c                óæ   € ^ RI HpHp VP                  RV4      pVP                  R^ 4      pV! W!P                  R4      RJ VVR7      p\	        V4      V8X  d	   We,           MRp\        V RVR	V/4      # )
z"List rooms hosted by this gateway.)ÚMAX_ROOM_LIST_LIMITÚ
list_roomsÚlimitÚoffsetr‘   T)r‘   r$  r%  NÚroomsÚnext_offset)r+   r"  r#  r?   ÚlenrØ   )	r¯   rZ   r*   r"  r#  r$  r%  r&  r'  s	   &&&      r   rÞ   rÞ   X  sw   € ÷ EØ�J‰J�wÐ 3Ó4€EØ�Z‰Z˜ !Ó$€FÙØ§:¡:Ð.AÓ#BÀdÐ#JÐRWØô€Eô %(¨£J°%Ô$7�&–.¸T€KÜˆs�W˜e ]°KÐ@ÓAÐAr   i÷  i  i  )r¤   r�   rŸ   r    c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   h  s   € ÷ $ñ $”4ð $¤Tñ $r   c                ó    € VP                  VP                  R4      VP                  R4      VP                  R4      R7      p\        V RV/4      # )zWCreate a hosted room idempotently; authority is this gateway's stable install identity.ræ   r£   Úmembers)ræ   r£   r+  Úroom)Úcreate_roomr?   rØ   )r¯   rZ   r6   r,  s   &&& r   rÞ   rÞ   e  sN   € ð
 ×ÑØ—
‘
˜9Ó%¨F¯J©J°vÓ,>ÈÏ
É
ÐS\ÓH]ð ó _€Däˆs�V˜T�NÓ#Ð#r   iû  i  )r¤   r�   r¡   c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   p  s   € ÷ 
ñ 
”4ð 
¤Tñ 
r   c                ó
  € ^ RI Hp V! W!P                  R4      VP                  R4      RJ R7      p\        4       pRV/pVe8   VP                  R4      f%   VP	                  \        VR,          4      4      VR&   \        W4      # )	zBReturn one hosted room's replay cursor and fenced authority state.)rþ   ræ   r‘   T©ræ   r‘   r,  Údisbanded_atÚdriver_status)r+   rþ   r?   r@   r=   rD   rØ   )r¯   rZ   r*   rþ   r,  r6   Úresults   &&&    r   rÞ   rÞ   o  s~   € õ 0ÙØŸ™ IÓ.Ø Ÿ*™*Ð%8Ó9¸TÐAôC€Dô &Ó'€GØ�dˆ^€FØÒ˜tŸx™x¨Ó7Ò?Ø")§.¡.´°T¸)µ_Ó1EÓ"FˆˆÑÜˆsÓÐr   iø  i  c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   €  s   € ÷ 	!ñ 	!”4ð 	!¤Tñ 	!r   c                óÈ   € ^ RI Hp VP                  R4      pVP                  VP                  R4      V! V4      VP                  R4      R7      p\	        V RVRVRR	R
R	/4      # )zYAppend one typed event idempotently (inert ``message.user`` only; actor is server-owned).)Úuser_event_idÚevent_idræ   Úpayload)ræ   r7  r8  ÚeventÚclient_event_idÚacceptedTÚdriver_started)r+   r6  r?   ÚsendrØ   )r¯   rZ   r6   r6  r:  r9  s   &&&   r   rÞ   rÞ   }  sp   € õ
 3Ø—j‘j Ó,€OØ�L‰LØ—
‘
˜9Ó%±¸oÓ0NØ—
‘
˜9Ó%ð ó '€Eô ˆsØ�Ð)¨?¸JÈØ˜$ð ó !ð !r   iú  i  c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   �  s   € ÷ (ñ (”4ð (¤Tñ (r   c                óØ  a aaaa	a
€ ^ RI HoHpHo	Ho
Hp \        SP                  R4      ;'       g    R4      pRR VV	V
VV V3R lllp V! SP                  SP                  R4      RR7      pTP                  R4      e	   T! T4      # SP                  T\        SP                  R	4      ;'       g    R
4      RR7       SP                  T4       T! T4      #   T d    T! 4       u # i ; i)z'Permanently tombstone a hosted room id.)ÚAuthorityConflictErrorÚRoomHistoryExpiredErrorÚdisband_roomr¾   rþ   ræ   rN   c                ó>   € V ^8„  d   QhR\         R,          R\         /# )r   ÚstateNr   r©   )r   s   "r   r   Ú_.<locals>.__annotate__–  s   € ÷ 2ñ 2¤$¨¥+ð 2¼ñ 2r   c           	      óü   <€ S! 4       pV e    \        V R,          4      V8w  d	   S! R4      hS! SP                  SP                  R4      \        V4      \        V e
   V R,          M^4      R7      p\	        SRV/4      # )NrÉ   z.This Group Chat is managed by another gateway.ræ   rÎ   )ræ   Úexpected_gateway_idÚexpected_epochÚ	tombstone)rD   r*   r?   r¥   rØ   )	rD  Úlocal_gateway_idrI  r@  rB  r¾   rZ   r¯   r6   s	   &  €€€€€€r   Údisband_with_stateÚ_.<locals>.disband_with_state–  s�   ø€ Ù5Ó7ÐØÒ¤ UÐ+AÕ%BÓ!CÐGWÔ!WÙ(Ð)YÓZÐZÙ Ø�O‰O V§Z¡Z°	Ó%:Ü #Ð$4Ó 5Ü¸5Ò;L˜uÐ%6Ö7ÐRSÓTôVˆ	ô �3˜ iÐ0Ó1Ð1r   Tr0  r1  Ú	cancel_idzroom-disbanded)rM  Úrequire_acknowledgedr  )r+   r@  rA  rB  r¾   rþ   rD   r?   r*   Ú	stop_roomÚrevoke_room_routes)r¯   rZ   r6   rA  rþ   ræ   rK  Úexistingr@  rB  r¾   s   fff     @@@r   rÞ   rÞ   Œ  sÛ   ý€ ÷
õ ô �&—*‘*˜YÓ'×-Ð-¨2Ó.€G÷2÷ 2ð$ÙØ�O‰O V§Z¡Z°	Ó%:ÈdôTˆð ‡|�|�NÓ#Ò/Ù! (Ó+Ð+Ø×ÑØœ3˜vŸz™z¨+Ó6×JÐJÐ:JÓKØ!ð ô #ð ×Ñ˜wÔ'Ù˜hÓ'Ð'øð #ô $Ù!Ó#Ò#ð$ús   Á
$C ÃC)Ã(C)iü  i  c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   ®  s   € ÷ *ñ *”4ð *¤Tñ *r   c                óÌ   € TP                  \        VP                  R4      ;'       g    R4      \        VP                  R4      ;'       g    R4      R7      p\        V RV/4      # )z:Durably cancel queued or running work for one hosted room.ræ   rN   rM  zdesktop-stop)rM  Ú	cancelled)rO  rD   r?   rØ   )r¯   rZ   r6   Úcounts   &&& r   rÞ   rÞ   ­  s^   € ð ×ÑÜˆF�J‰J�yÓ!×'Ð' RÓ(´C¸¿
¹
À;Ó8O×8aÐ8aÐSaÓ4bð ó d€Eäˆs�[ %Ð(Ó)Ð)r   iÿ  c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   ¶  s   € ÷ :ñ :”4ð :¤Tñ :r   c                óè  € TP                  \        VP                  R4      ;'       g    R4      \        VP                  R4      ;'       g    R4      \        VP                  R4      ;'       g    R4      \        VP                  R4      ;'       g    ^ 4      \        VP                  R4      ;'       g    R4      \        VP                  R4      ;'       g    R4      R7      p\	        V R	R
RV/4      # )zDResolve one exact approval requested by a local or peer room member.ræ   rN   rè   Útask_idÚexecution_generationÚchoiceÚ
request_id)rè   rX  rY  rZ  r[  ÚapprovedTr3  )Úapprove_room_taskrD   r?   r¥   rØ   )r¯   rZ   r6   r3  s   &&& r   rÞ   rÞ   µ  sÉ   € ð ×&Ñ&ÜˆF�J‰J�yÓ!×'Ð' RÓ(´C¸¿
¹
À;Ó8O×8UÐ8UÐSUÓ4VÜ�F—J‘J˜yÓ)×/Ð/¨RÓ0Ü  §¡Ð,BÓ!C×!HÐ!HÀqÓIÜ�6—:‘:˜hÓ'×-Ð-¨2Ó.¼3¸v¿z¹zÈ,Ó?W×?]Ð?]Ð[]Ó;^ð	 'ó `€Fô
 ˆs�Z  x°Ð8Ó9Ð9r   iþ  c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   Á  s   € ÷ 8ñ 8”4ð 8¤Tñ 8r   c                ól  € TP                  \        VP                  R4      ;'       g    R4      \        VP                  R4      ;'       g    R4      R7      p\        V\        4      '       g   / pVP                  R4      p/ R Uu/ uF#  pT\        \        WER4      ;'       g    R4      bK%  	  upCR\        VP                  R4      ;'       g    R4      R\        VP                  R4      ;'       g    ^ 4      R\        VP                  R4      ;'       g    ^ 4      /Cp\        V R	R
RV/4      # u upi )zCRetry one indeterminate room task after explicit user confirmation.ræ   rN   rX  )rX  Úidentityr=   rY  Úcancel_generationÚretriedTÚtask)ræ   rX  Ú	thread_idÚturn_id)Úretry_room_taskrD   r?   r®   r[   rw   r¥   rØ   )r¯   rZ   r6   rc  r`  ÚfÚreceipts   &&&    r   rÞ   rÞ   À  s(  € ð ×"Ñ"ÜˆF�J‰J�yÓ!×'Ð' RÓ(´#°f·j±jÀÓ6K×6QÐ6QÈrÓ2Rð #ó T€Dä�dœD×!Ò!ØˆØ�x‰x˜
Ó#€HðFáBóDÙBˆqð Œc”'˜( rÓ*×0Ð0¨bÓ1Ò1ÙBñDðFð 	”#�d—h‘h˜xÓ(×.Ð.¨BÓ/Ø¤ D§H¡HÐ-CÓ$D×$IÐ$IÈÓ JØœS §¡Ð*=Ó!>×!CÐ!CÀ!ÓDñF€Gô ˆs�Y  f¨gÐ6Ó7Ð7ùòDs   Â)D1Úwrapc                ó–   € V ^8„  d   QhR\         R\         R\         R\         R\        R\        R\        R\        R	\         R
,          RR
/
# )r   r£   ÚmoduleÚfn_nameÚdocr¤   r�   rZ   r•   ri  Nr   )rD   r¥   Útupler4   )r   s   "r   r   r   Ñ  s`   € ÷ ñ Ü
ðÜðÜ%(ðÜ/2ðÜ=@ðÜMPðäðä!%ðä58¸4µZðàKOñr   c          	     ó‚   aaaa€ \        WWWV'       * RR7      \        P                  3R VVVV3R lll4       p	W9n        R# )z³Register a method whose result is ``module.fn(db_path, **params)`` verbatim (or under key
``wrap``). ``params`` items are ``key`` (-> ``params.get(key)``) or ``(key, extractor)``.T)r¤   r�   r•   rž   r¡   c                ó0   € V ^8„  d   QhR\         R\         /# )r   Ú	params_inr   r©   )r   s   "r   r   Ú"_passthrough.<locals>.__annotate__Ù  s   € ÷ <ñ <¤ð <ÔSWñ <r   c                 óB  <€ S	 Uu/ uFY  p\        V\        4      '       d   TMV^ ,          \        V\        4      '       d   VP                  V4      MV^,          ! V4      bK[  	  pp\        V! S4      S4      ! V3/ VB p\	        T S
'       d	   S
V/4      # T4      # u upi )r˜   )r®   rD   r?   rw   rØ   )r¯   rq  r*   Ú_importÚspecÚkwargsr3  rl  rk  rZ   ri  s   &&&&   €€€€r   r´   Ú_passthrough.<locals>.handlerÖ  sž   ø€ ñ ó ñ �ô   ¤c×*Ò*‰T°°QµÜ$.¨t´S×$9Ò$9ˆY�]‰]˜4Ô ¸tÀA¾wÀyÓ?QòRáð 	ð  ô ™ ›¨'Ô2°7ÑE¸fÑEˆÜ�3¯$˜˜v˜Ó;Ð;°FÓ;Ð;ùò s   †ABN)rº   Ú	importlibÚimport_moduler¶   )
r£   rk  rl  rm  r¤   r�   rZ   r•   ri  r´   s
   &ff&$$d$d r   Ú_passthroughrz  Ñ  sA   û€ ô
 Ø 9Ø$Ô$¨ô/ô 8A×7NÑ7N÷ <ô <ó/ð<ð †Or   zgateway.hosted_roomsÚrename_roomz8Rename one hosted room atomically with its replay event.iý  i  ræ   r,  )r¤   r�   rZ   ri  Úread_eventsz6Return a monotonic room-log delta after ``since_seq``.iù  i  Ú	since_seqc                 ó&   € V P                  R ^ 4      # )r}  r’   ©Úps   &r   Ú<lambda>r�  ì  s   € ¨1¯5©5°¸aÔ+@r   r$  c                 ó&   € V P                  R ^d4      # )r$  r’   r  s   &r   r�  r�  í  s   € ˜AŸE™E '¨3Ô/r   r‘   )r¤   r�   rZ   zgateway.hosted_room_replicasÚingest_pagez§Persist one authority-stamped replay page (a verbatim ``groups.log`` result) into
    the local replica store; idempotent, refuses sequence gaps and epoch regressions.i  )r¤   r�   rZ   r•   Úreplica_statez:Report the local replica's coverage and authority lineage.é  )r¤   r�   rž   r¡   c                ó0   € V ^8„  d   QhR\         R\         /# rY   r©   )r   s   "r   r   r   û  s   € ÷ \ñ \”4ð \¤Tñ \r   c           	     óº   € ^ RI Hp VP                  R4      RJd   \        V RR4      # VP                  RR4      p\	        W! W!P                  R4      VR	7      4      # )
u›   Continue a replicated room on THIS gateway at ``epoch + 1``. Requires ``confirm:
true`` â€” the caller asserts the previous authority can no longer commit.)Úpromote_replicaÚconfirmTr…  zYpromotion requires confirm=true acknowledging the previous authority can no longer commitr¬   zauthority-unreachableræ   )ræ   r¬   )r›   rˆ  r?   r­   rØ   )r¯   rZ   r*   rˆ  r¬   s   &&&  r   rÞ   rÞ   ú  s]   € õ =Ø‡z�z�)Ó DÓ(Ü�C˜ð  5ó 6ð 	6à�Z‰Z˜Ð"9Ó:€FÜˆs�O G·Z±ZÀ	Ó5JÐSYÔZÓ[Ð[r   Údemote_roomzGFence this gateway's stale room authority against a proven newer epoch.i  c                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r     s   € ÷ ñ ˜ñ r   c                 ó0   € \         P                  V 4       R # r  )Ú	_registryÚinstallr!   s   &r   Úregisterr�    s   € Ü×Ñ�fÖr   )r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r  )ræ   r7  r£   )ræ   Ú	room_namer+  Úpager  )ræ   Úobserved_gateway_idÚobserved_epoch)&r¶   Ú
method_ctxr   rf   rx  rH   Ú	threadingr�  r·   Ú_METHODSÚ	frozensetÚLONG_HANDLERSÚLockr-   ry   r   r.   Ú_WORKER_UNAVAILABLEÚ_DRIVER_UNAVAILABLEr#   r1   r8   r@   rK   rP   rW   r_   ri   r    r{   rˆ   rŽ   r“   rœ   rº   rÞ   rz  r�  r   r   r   Ú<module>rœ     s“  ðñYõ (ã Û Û 	Û áÓ€	Ø	×	Ñ	€ðH€ñ
 ˜(Ó#€à—’Ó €Ø—.’.Ó"€Ø€Ø€àcÐ Ø9Ð õAòð$
°÷ 
ò	UõKõDõõ	M÷Aõ 	@õ2õ"+õHõ3õðØ59ðØPUðàðà9=ðð /ðð <A÷ñD ÐÓØ"0¸8ö Dó ðDñ> Ð"¨°$Ô7Ø+9À=ö *ó 8ð*ñ> Ð"¨°$Ô7Ø*7ö 'ó 8ð'ñ Ð$¨4¸dÔCô-Yó Dð-Yñ` ˆm $¨4Ô0ô	Bó 1ð	Bñ Ø˜$¨$¸TØ'ô)ô$ó)ð$ñ ˆn 4°4¸DÔAô
ó Bð
ñ Ø˜¨¸4Ø'ô)ô	!ó)ð	!ñ Ø˜4¨4¸dØ'ô)ô(ó)ð(ñ< ˆm $°TÔ:ô*ó ;ð*ñ Ð T¸Ô=ô:ó >ð:ñ ˆn 4°dÔ;ô8ó <ð8ð à(-ðàBF÷ñ$ ØÐ+¨]ØBØ	˜Ð&EÈFõTñ ØÐ(¨-Ø@Ø	˜à�KÑ!@ÐAØ	Ñ/Ð0Ð3FÐHZÐ2[ð]õ	^ñ ØÐ6¸ðYà	˜Ð&QØõñ ØÐ:¸OØDØ	˜ lÀõGñ Ð T°TÀuÐQUÔVô\ó Wð\ñ ØÐ3°]ØQØ	˜Ð&ZØõ	÷r   