+
    jHàj¯F  ã                   ó6  € R t ^ RIt^ RIHtHt ^ RIHt ^ RIHt ^ RIt^ RIt^ RI	H
t
Ht ^ RIHt ^ RIHtHt ^ RIHt ]P&                  ! ]4      tRtRt]! 0 Rm4      t]! 0 Rm4      tRtRtR	 tR
 tR tR t R t!RR lt"R t#R t$RR lt%RR lt&RR lt'R t(R# )aN  Owner-only durable native input codec; never a client-supplied wire format.

Ordinary context and local media are retained without serializing delegated trust.
Multiplex callbacks bind current connector ownership; roles require fresh preflight.
Relay snapshots bind the authenticated connector and exact source; replay rechecks both.
N)ÚcopyÚdeepcopy)Úreplace)Údatetime)ÚMessageEventÚMessageType)ÚSessionSource)Úcapture_native_mediaÚrestore_native_media)ÚRuntimeStoreErrorc                ó:  € V P                   pV'       g   / # \        V\        4      '       d:   V P                  P                  P
                  R8w  g   \        V4      \        8:  g   R# VP                  R4      VP                  R4      r2Ve3   \        V\        4      '       da   ^ \        V4      u;8  d   ^@8:  dI   M R# VP                  R4      R9  g/   Ve-   \        V\        4      '       d   \        V4      \        8:  g   R# R	 Uu/ uF  qDV9   g   K  WAV,          bK  	  ppVeV    \        P                  ! VRRR7      p\        TP!                  4       4      \"        8:  d   \        P$                  ! T4      TR&   V# u upi   \        \        3 d     R# i ; i)
z«JSON projection of the adapter metadata a native replay keeps; ``None`` refuses the event.
An oversized ``whatsapp_native`` (vCards with photos) is dropped, never refused.ÚwhatsappNÚwhatsapp_native_typeÚwhatsapp_nativeÚwhatsapp_from_ownerF)Úensure_asciiÚ	allow_nan)NT)r   r   )ÚmetadataÚ
isinstanceÚdictÚsourceÚplatformÚvalueÚsetÚ_WHATSAPP_METADATAÚgetÚstrÚlenÚ_WHATSAPP_NATIVE_KEYSÚjsonÚdumpsÚ	TypeErrorÚ
ValueErrorÚencodeÚ_WHATSAPP_NATIVE_MAX_BYTESÚloads)Úeventr   ÚkindÚnativeÚkeyÚ	projectedÚencodeds   &      Ú=/home/ubuntu/.hermes/hermes-agent/gateway/session_envelope.pyÚ_native_metadatar-   '   sS  € ð �~‰~€HßØˆ	Ü�x¤×&Ò&¨%¯,©,×*?Ñ*?×*EÑ*EÈÔ*SÜ�x“=Ô$6Ô6ÙØ—<‘<Ð 6Ó7¸¿¹ÐFWÓ9Xˆ&ØÒ¤*¨T´3×"7Ò"7¸AÄÀDÃ	Ö<OÈRÖ<Oñ ð �|‰|Ð1Ó2¸,ÔFØÒ!¬:°f¼d×+CÒ+CÌÈFËÔWlÔHlÙÙ/^ÓrÑ/^¨ÐiqÑbqÔ#�˜s•mÒ#Ñ/^€IÐrØÒð	Ü—j’j °eÀuÔMˆGô ˆw�~‰~ÓÓ Ô$>Ô>Ü+/¯:ª:°gÓ+>ˆIÐ'Ñ(ØÐùò søô œ:Ð&ô 	Úð	ús   Ä	F ÄF Ä*F ÆFÆFc           	     ó¢   € TP                  \         Uu/ uF  p\        W4      e   K  V. bK  	  up4       V'       d   \        V 3/ VB # T # u upi )zœAn adapter's event at the envelope boundary: an absent media list (``None``) is no media.
Any other non-list still reaches ``_validate_native`` and refuses.)ÚupdateÚ_MEDIA_FIELDSÚgetattrr   )r&   ÚchangesÚnames   &, r,   Ú_adapter_eventr4   @   sI   € ð ‡N�N­ÓW© ¼'À%Ó:N”H�D˜"’H©ÑWÔXß(/Œ7�5Ñ$˜GÑ$Ð:°UÐ:ùò Xs
   ”A¨Ac                óº   € V P                   p\        P                  RW\        \        VRR4      RR4      \        VRR4      V P                  4       \        WR7      h)zVName the refused clause in gateway.log and on the error; the wire reason stays stable.z@Native admission refused: %s (%s) platform=%s chat=%s message=%sr   Nr   Úchat_id)Úfield)r   ÚloggerÚwarningr1   Ú
message_idr   )r&   ÚreasonÚclauser   s   &&& r,   Ú_refuser=   G   sV   € à�\‰\€FÜ
‡N�NÐUÐW]Üœ7 6¨:°tÓ<¸gÀtÓLÌgÐV\Ð^gÐimÓNnØ×#Ñ#ô%ô ˜FÔ
1Ð1ó    c                 ó¬  € V P                   V P                  V P                  r2p\        V\        4      '       d;   \
        ;QJ d    R  V 4       F  '       d   K   RM	  RM! R  V 4       4      '       g   R# \        V\        4      '       d;   \
        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   R# \        V\        4      '       d;   \
        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   R# \        V4      ^ \        V4      39  d   R# \        V4      ^ \        V4      39  d   R	# R
# )c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5i©N©r   r   ©Ú.0Úitems   & r,   Ú	<genexpr>Ú _media_clause.<locals>.<genexpr>R   s   é € Ð,TÉtÀt¬Z¸¼c×-BÐ-BËtùó   ‚FTÚ
media_urlsc              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5irA   rB   rC   s   & r,   rF   rG   T   s   é € Ð-VÑPUÈ¬j¸¼s×.CÐ.CÓPUùrH   Úmedia_typesc              3   óZ   "  € T F!  qR J ;'       g    \        V4      \        J x € K#  	  R # 5irA   )ÚtypeÚboolrC   s   & r,   rF   rG   V   s)   é € Ð/gÑ_fÐW[¸°×0RÐ0RÄÀTÃ
ÌdÐ@RÔ0RÓ_fùs   ‚+‘+Úmedia_text_inlinedÚmedia_types_lengthÚmedia_text_inlined_lengthN)rI   rK   rO   r   ÚlistÚallr   )r&   ÚurlsÚtypesÚinlineds   &   r,   Ú_media_clauserW   P   sä   € Ø ×+Ñ+¨U×->Ñ->À×@XÑ@X�€DÜ�dœD×!Ò!¯«Ñ,TÉtÓ,T¯¯ªÑ,TÉtÓ,T×)TÒ)TÙÜ�eœT×"Ò"¯#«#Ñ-VÑPUÓ-V¯#¯#ª#Ñ-VÑPUÓ-V×*VÒ*VÙÜ�gœt×$Ò$¯C«CÑ/gÑ_fÓ/g¯C¯CªCÑ/gÑ_fÓ/g×,gÒ,gÙ#Ü
ˆ5ƒz˜!œS ›Y˜Ô'Ù#Ü
ˆ7ƒ|˜Aœs 4›y˜>Ô)Ù*Ùr>   c                 óf  € VP                   pVf   R# \        VP                  \        4      '       g   R# \        VP                  \
        4      '       g   R# VP                  4       '       d   R# VP                  '       d   R# \        V4      f   R# VP                  '       d   R# VP                  '       d   V'       g   R# VP                  '       d   V'       d   R	V9   g   R
# VP                  '       d   R# \        VRR 4      e   Vf   R# \        V P                  RR4      '       d   Vf   R# R # )Nr   ÚtextÚmessage_typeÚcommandÚinternalr   Úprompt_responseÚ#role_authorized_without_fresh_rolesÚrelayÚ!upstream_relay_without_provenanceÚprofile_route_rejectedÚ_authorization_profile_homeÚ%authorization_home_without_provenanceÚmultiplex_profilesFÚmultiplex_without_provenance)r   r   rY   r   rZ   r   Úget_commandr\   r-   r]   Úrole_authorizedÚdelivered_via_upstream_relayra   r1   Úconfig)Úrunnerr&   Ú
provenanceÚfresh_rolesr   s   &&&& r,   Ú_event_clauserm   _   sç   € Ø�\‰\€FØ‚~ÙÜ�e—j‘j¤#×&Ò&ÙÜ�e×(Ñ(¬+×6Ò6Ùà×Ñ×ÒÙØ‡~‡~€~ÙÜ˜ÓÒ&ÙØ××ÐÙ Ø××Ð§kÙ4Ø×*×*Ð*·JÀ7ÈjÔCXÙ2Ø×$×$Ð$Ù'ÜˆvÐ4°dÓ;ÒGÈJÒL^Ù6Üˆv�}‰}Ð2°E×:Ò:¸zÒ?QÙ-Ùr>   c                 óÎ  € VP                   p\        WW#4      ;pe   \        VRV4       Ve   ^ RIHp V! WV4       T;'       g    \        T;'       d    RV9   4      pV'       g-   V P                  VP                  RV P                  V4      4      pV P                  WGR7      '       g   \        VRR4       R F@  p\        W4      f   K  \        \        W4      \        4      '       d   K3  \        VRV4       KB  	  VP                  e+   \        VP                  4      \
        Jd   \        VRR4       VP                  p	V	et   \        V	\        4      '       g^   \        V	\         4      '       d;   \"        ;QJ d    R	 V	 4       F  '       d   K   R
M	  RM! R	 V	 4       4      '       g   \        VRR4       \%        V4      ;pe   \        VRV4       VP'                  4       p
VP(                  V
R&   \*        P,                  ! V
4      pVP(                  Vn        Ve
   X! WV4       V P/                  V4      pVe   V P/                  V4      VJd   \        TRVf   RMR4       V
# )NÚinvalid_params)Úrestore_provenancer_   Úauthorization_is_upstream)Úallow_adapter_delegationÚpermission_deniedÚuser_not_authorizedÚreply_expectedc              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5irA   rB   rC   s   & r,   rF   Ú#_validate_native.<locals>.<genexpr>–   s   é € Ð.WÑQVÈ¬z¸$Ä×/DÐ/DÓQVùrH   FTÚ
auto_skillÚis_botÚ	not_foundÚadapterÚadapter_mismatch)Úchannel_promptÚchannel_contextÚreply_anchor_override)r   rm   r=   Úgateway.session_ingress_contextrp   rN   Ú_adapter_flagr   Ú_adapter_profile_for_sourceÚ_is_user_authorized_for_sourcer1   r   r   ru   rM   rx   rR   rS   rW   Úto_dictry   r   Ú	from_dictÚ_adapter_for_source)rj   r&   rk   rl   r   r<   rp   Ú	delegatedr3   ÚskillÚencoded_sourceÚrestored_sourcer{   s   &&&&         r,   Ú_validate_nativer‹   }   s
  € Ø�\‰\€FÜ ¨zÓGÐGˆÒTÜ�Ð'¨Ô0ØÒÝFÙ˜6¨:Ô6Ø×IÐIœt J×$HÐ$H°7¸jÑ3HÓI€Ißð ×(Ñ(Ø�O‰OÐ8¸&×:\Ñ:\Ð]cÓ:dófˆ	à×0Ñ0°Ð0×\Ò\Ü�Ð*Ð,AÔBÛNˆÜ�5ÓÔ+´J¼wÀuÓ?SÔUX×4YÔ4YÜ�EÐ+¨TÖ2ñ Oð ×ÑÒ'¬D°×1EÑ1EÓ,FÌdÓ,RÜ�Ð'Ð)9Ô:Ø×Ñ€EØŠMœZ¨¬s×3Ò3Ü˜%¤×&Ò&¯3«3Ñ.WÑQVÓ.W¯3¯3ª3Ñ.WÑQVÓ.W×+WÒ+WÜ�Ð'¨Ô6Ü Ó&Ð&ˆÒ3Ü�Ð'¨Ô0Ø—^‘^Ó%€NØ%Ÿ}™}€N�8ÑÜ#×-Ò-¨nÓ=€OØ#Ÿ]™]€OÔØÒÙ˜6°JÔ?Ø×(Ñ(¨Ó0€GØ‚˜&×4Ñ4°_ÓEÈWÓTÜ��{°²¡IÐFXÔYØÐr>   c                 óJ   € ^ RI Hp V! W4      p\        V \        V4      V4      # )é    )Úcapture_provenance)r€   rŽ   Ú_snapshot_nativer4   )rj   r&   rŽ   rk   s   &&  r,   Úsnapshot_nativer�   ¦   s#   € ÝBÙ# FÓ2€JÜ˜F¤N°5Ó$9¸:ÓFÐFr>   c              ƒ   ó  aaa"  € ^ RI HpHp V! W4      p\        V\	        VP
                  4      R7      pV! WP
                  V4      G Rj  x€L
 p\        WWF4      pRpVP                  '       d    ^ RIH	p	H
p
Ho ^ RIHo V	P                  4       o\        P                   ! \"        VP                  4      pSe"   SP$                  e   S! SP$                  V4      M\        P&                  ! V4      p \        P(                  ! V4      G Rj  x€L
 p\3        WWFWx4      #  LÐ L  \        P*                   d5    Se/   SP$                  e!   RSn        TTT3R lpTP/                  T4       h \0         d    T
! S4      G Rj  x€L 
  h i ; i5i)r�   )rŽ   Úreauthorize_roles)r   N)Ú_lease_scopeÚabandon_captureÚrelease_abandoned_capture)Útrack_mutationTc                 ó†   <€ V P                  4       '       g   V P                  4        S! SP                  S! S4      4       R # rA   )Ú	cancelledÚ	exceptionÚ	authority)Údoner•   Úscoper–   s   &€€€r,   ÚfinishedÚ prepare_native.<locals>.finishedÆ   s.   ø€ ØŸ>™>×+Ò+ØŸ™Ô(Ù" 5§?¡?Ñ4MÈeÓ4TÖUr>   )r€   rŽ   r’   r4   r   r   r‹   rI   Úgateway.session_ingress_mediar“   r”   r•   Úgateway.session_runtime_workersr–   r   ÚasyncioÚ	to_threadr	   rš   Úcreate_taskÚshieldÚCancelledErrorÚ	abandonedÚadd_done_callbackÚBaseExceptionr�   )rj   r&   rŽ   r’   rk   Úfrozenrl   r‰   Úmediar“   r”   ÚworkÚcapturer�   r•   rœ   r–   s   &&            @@@r,   Úprepare_nativer­   ¬   sN  úé € ßUÙ# FÓ2€Jô ˜E¬$¨u¯|©|Ó*<Ô=€FÙ)¨&·-±-ÀÓL×L€KÜ% f°jÓN€Nð €EØ××ÐßjÑjÝBØ× Ñ Ó"ˆÜ× Ò Ô!5°v×7HÑ7HÓIˆØ<AÒ<MÐRW×RaÑRaÒRm‘> %§/¡/°4Ô8Ü×+Ò+¨DÓ1ð 	ð	ô "Ÿ.š.¨Ó1×1ˆEô ˜F¨JÀ^Ó[Ð[ñ9 Mñ 2øÜ×%Ñ%ô 	ØÒ  U§_¡_Ò%@Ø"&�”÷Vð ×)Ñ)¨(Ô3ØÜô 	Ù! %Ó(×(Ñ(Øð	üsP   …AF	ÁDÁB$F	Ã2D! ÄDÄD! ÄF	ÄD! Ä!AFÅ2FÅ>FÅ?FÆF	c                 ó   € Vf   \        WW#4      pRTRV P                  P                  VP                  4      R\	        \
         Uu/ uF  qf\        W4      bK  	  up4      RVP                  P                  4       /pVP                  P                  P                  R8X  d‹   ^ RIHpHp	 V P                  VP                  4      p
Vf   \        R4      hV	! WªP                   P#                  VP                  P$                  4      4      pW·R&   V! W¡P                  P$                  4      VR	&   VP                  P&                  '       d   R
VR&   Ve   W'R&   VR,          P)                  \*         Uu/ uF'  p\        W4      f   K  V\	        \        W4      4      bK)  	  up4       VP,                  RJ d   RVR,          R&   \/        V4      ;p'       d   WÇR,          R&   VP0                  \2        P4                  \2        P6                  39  d   VP0                  P                  VR&   VP8                  '       d_   Ve   TM\;        VP8                  4      VR&   VR,          P)                  \=        VP>                  4      \=        VP@                  4      R7       RVPB                  RV/pVeÍ   \        V PD                  RR4      '       g°   ^ RI#H$p ^ RI%H&p V! V 4      pV P                  PO                  VR,          4      pVev   \	        V4      pVR,          PQ                  R4       V! VPR                  VPT                  RR7       F/  pVR,          VPV                  8X  g   K  VR,          V8X  g   K-  Vu # 	  V# u upi u upi )Nr   Úrouter&   Ú	timestampÚwebhook)Úroute_digestÚsnapshot_destinationrs   Úwebhook_deliveryÚwebhook_routeÚrolesÚreauthorizerk   TÚinherit_channel_pinr   rZ   rª   )rK   rO   rY   Únative_text_v1rd   F)Úlist_session_admissions)Úactive_authority)Ú
session_idÚpending_onlyÚ
request_idÚpayload),r‹   Úsession_storeÚ_generate_session_keyr   r   Ú_EVENT_FIELDSr1   r°   Ú	isoformatr   r   Ú"gateway.platforms.webhook_deliveryr²   r³   r†   r   Ú_delivery_infor   r6   rg   r/   Ú_CONTEXT_FIELDSr¸   r-   rZ   r   ÚTEXTÚCOMMANDrI   r	   rR   rK   rO   rY   ri   Úhermes_state_runtimerº   Úgateway.session_authoritiesr»   Úlookup_by_session_keyÚpopÚdbr¼   r:   )rj   r&   rk   rl   r‰   rª   r3   Úenveloper²   r³   r{   Údeliveryr   r¿   rº   r»   rš   ÚentryÚlegacyÚrows   &&&&&&              r,   r�   r�   Ò   s  € ØÒÜ)¨&¸ÓQˆØ˜.Ø˜×-Ñ-×CÑCÀEÇLÁLÓQØœÍ-Ó"XÉ-À$¬°Ó)=Ò#=É-Ñ"XÓYØ˜UŸ_™_×6Ñ6Ó8ð:€Hð ‡|�|×Ñ×"Ñ" iÔ/ßYØ×,Ñ,¨U¯\©\Ó:ˆØÒÜ#Ð$7Ó8Ð8Ù'¨×1GÑ1G×1KÑ1KÈEÏLÉL×L`ÑL`Ó1aÓbˆØ'/Ð#Ñ$Ù$0°¿,¹,×:NÑ:NÓ$Oˆ�Ñ!Ø‡|�|×#×#Ð#Ø")ˆ�ÑØÒØ!+�Ñð ˆWÕ×ÑÍó CÉÀtÜ!(¨Ó!5ô C˜d¤H¬W°UÓ-AÓ$BÒBÉñ Cô Dà× Ñ  DÓ(Ø37ˆ�ÕÐ/Ñ0Ü# EÓ*Ð*€xÖ*Ø(0�Õ˜*Ñ%à×Ñ¤+×"2Ñ"2´K×4GÑ4GÐ!HÔHØ#(×#5Ñ#5×#;Ñ#;ˆ�Ñ Ø××ÐØ%*Ò%6™EÔ<PÐQV×QaÑQaÓ<bˆ�ÑØ�Õ× Ñ ¬T°%×2CÑ2CÓ-DÜ48¸×9QÑ9QÓ4Rð 	!ô 	Tð �u—z‘zÐ#3°XÐ>€Gð Ò¤g¨f¯m©mÐ=QÐSX×&YÒ&YÝ@Ý@Ù$ VÓ,ˆ	Ø×$Ñ$×:Ñ:¸8ÀGÕ;LÓMˆØÒÜ˜gÓ&ˆFØÐ#Õ$×(Ñ(¨Ô6Ù.¨y¯|©|È×HXÑHXÐgl×m�Ø�|Õ$¨×(8Ñ(8Ö8¸SÀ½^ÈvÖ=UØ!’Mñ nð €Nùò[ #Yùò Cs   ÁM6Å.M;ÆM;c                ó  € V R,          p\         P                  ! VR,          4      pVR,          R,          Vn        VP                  R4      R8H  Vn        RV9   d.   ^ RIHpHp T;'       g    V! 4       pVe   V! WVR,          4       V# )zªrestore_native's source (provenance included) without re-verifying the captured media:
admission needs only the route; execution's restore_native still checks every byte.r¹   r   ry   r·   r¶   rk   )Úcallback_runnerrp   )r   r…   ry   r   rg   r€   rÔ   rp   )r¿   rj   rÎ   r   rÔ   rp   s   &&    r,   Úrestore_native_sourcerÕ     s€   € ð Ð'Õ(€HÜ×$Ò$ X¨hÕ%7Ó8€FØ˜XÕ& xÕ0€F„Mà%Ÿ\™\¨-Ó8¸GÑC€FÔØ�xÔßWØ×,Ð,™?Ó,ˆØÒÙ˜v¨x¸Õ/EÔFØ€Mr>   c                 ó  € V R ,          p\        W4      p\        P                  ! VR,          4      pVP                  e+   VP	                  4       ^ 8X  d   \        P
                  ! 4       p\        RRV R,          RVRVR\        VP                  RR4      4      R\        VP                  R. 4      4      /\        VR,          4      B pRV9   d³   R	Vn        VR,          P                  R
4      '       d   VR,          R
,          Vn        RVR,          RVR,          R,          /Vn        ^ RIHpHp VP                  P#                  V! VR,          4      4       VP                  P#                  V! VR,          4      4       V# )r¹   r°   rY   r   rZ   rI   rª   r&   Ú
automationTÚ	heartbeatÚgateway_session_keyr¯   Úgateway_session_idÚowner)Úautomation_display_metadataÚ automation_notification_metadata© )rÕ   r   ÚfromisoformatÚtzinfor°   Únowr   r   r   r
   r   r\   Ú_heartbeat_session_idr   Úgateway.session_automationrÜ   rÝ   r/   )r¿   rj   rÎ   r   r°   r&   rÜ   rÝ   s   &&      r,   Úrestore_nativerä     sZ  € ØÐ'Õ(€HÜ" 7Ó3€FÜ×&Ò& x°Õ'<Ó=€IØ×ÑÒ#¨	×(;Ñ(;Ó(=ÀÔ(Bô —L’L“Nˆ	Üñ 7˜g f�oð 7°fð 7È	ð 7Ü%0°·±¸nÈfÓ1UÓ%Vð7ä#7¸¿¹ÀWÈbÓ8QÓ#Rð7ô # 8¨GÕ#4Ó5ñ7€Eð �xÔØˆŒØ�LÕ!×%Ñ% k×2Ò2Ø*2°<Õ*@ÀÕ*MˆEÔ'Ø/°¸'Õ1BØ.°¸Õ0FÀwÕ0OðQˆŒçlØ�‰×ÑÑ>¸xÈÕ?UÓVÔWØ�‰×ÑÑ9¸(À<Õ:PÓQÔRØ€Lr>   c              ƒ  ó�  "  € RVR,          9   d   ^ RI Hp V! WW#V4      # \        W4      p^ RIHp VR,          P                  R4      pV! WP                  V4      G Rj  x€L
 p	\        WW‰4       VR,          R,          p
V P                  pVP                  VP                  4      V
8w  g   VP                  V4      V
8w  d   \        R4      hVP                  V
4      pVe   VP                  V8w  d   \        R4      hVe    V P                  VP                  4      VJd   \        R	4      hVP                  P                  P                  R
8X  dd   ^ RIHpHp VR,          pV! VP                  R4      4       VP                  R4      V! WFP                  P&                  4      8w  d   \        R4      hVP                  V
3#  ELc5i)zJRead-only preflight: route/auth rejection must never consume a queued row.r×   r¹   )Úcheck_automation_route)r’   rk   Nr¯   Úadmission_conflictrz   r±   )r²   Úvalidate_destinationr´   rµ   )rã   ræ   rä   r€   r’   r   r   r‹   rÀ   rÁ   r   rË   r¼   r†   r   r   rÄ   r²   rè   r6   )rj   r¿   r¼   Úavailable_sourcer{   ræ   r&   r’   rk   rl   r¯   ÚstorerÐ   r²   rè   rÎ   s   &&&&&           r,   Úcheck_native_routerë   /  s…  é € à�wÐ/Õ0Ô0ÝEÙ% f°zÐU\Ó]Ð]Ü˜7Ó+€EåAØÐ)Õ*×.Ñ.¨|Ó<€JÙ)¨&·,±,À
ÓK×K€KÜ�V JÔ<ØÐ$Õ% gÕ.€EØ× Ñ €EØ×#Ñ# E§L¡LÓ1°UÔ:Ø×*Ñ*Ð+;Ó<ÀÔEÜÐ 4Ó5Ð5Ø×'Ñ'¨Ó.€EØ‚}˜×(Ñ(¨JÔ6ÜÐ 4Ó5Ð5Ø‚˜&×4Ñ4°U·\±\ÓBÈ'ÓQÜ Ó,Ð,Ø‡|�|×Ñ×"Ñ" iÔ/ßYØÐ+Õ,ˆÙ˜XŸ\™\Ð*<Ó=Ô>Ø�<‰<˜Ó(©L¸Ç,Á,×BVÑBVÓ,WÔWÜ#Ð$8Ó9Ð9Ø�<‰<˜ÐÐò% Lùs   ‚AGÁ GÁ!E#G)
Úuser_idÚ	user_namer:   Úplatform_update_idÚreply_to_message_idÚreply_to_textÚreply_to_author_idÚreply_to_author_nameÚreply_to_is_own_messageÚallow_gateway_control)rx   r}   r~   ru   r   Úedit_revision>   r   r   r   >	   ÚpollÚaudioÚvideoÚcontactÚstickerÚcontactsÚlocationÚreactionÚ
pollUpdatei @  )rI   rK   rO   )NF)FNNrA   ))Ú__doc__r¡   r   r   Údataclassesr   r   r   ÚloggingÚgateway.platforms.eventr   r   Úgateway.sessionr   rŸ   r	   r
   rÉ   r   Ú	getLoggerÚ__name__r8   rÂ   rÆ   Ú	frozensetr   r   r$   r0   r-   r4   r=   rW   rm   r‹   r�   r­   r�   rÕ   rä   rë   rÞ   r>   r,   Ú<module>r     s´   ðñó ß Ý Ý Û Û ç =Ý )ß TÝ 2à	×	Ò	˜8Ó	$€ð€ð$€ñ ÒaÓbÐ á!ò #Eó FÐ à&Ð ØC€òò2;ò2òòô<&òRGò#\ôL2ôjô ô0r>   