§
    é%Âjò  ã                   ó@  — d dl Zd dlmc mZ d dlZd dl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 ej         d„ ¦   «         Z!d„ Z"ej#         $                    dddg¦  «        d„ ¦   «         Z%d„ Z&d„ Z'd„ Z(dS )é    N)Ú
TestClient)ÚDeviceCredentialStore)ÚCodexAdapter)ÚProject)Ú	PiAdapter)ÚProjectRegistry)ÚPiSessionRegistry)ÚSpeechPreferences)ÚTargetStore)Ú
FakeDevicec           	   #   ó`  ‡ ‡K  — ‰ dz  }|                      t          j        t          ddd¬¦  «        ¦  «        ¦  «         t	          ¦   «         }t          ‰ dz  ¦  «        }|                     t          ddt          ‰ ¦  «        ¬	¦  «        ¦  «          G ˆ fd
„d¦  «        }t          || |¦   «         ¬¦  «        }t          t          |¦  «        i t          ‰ dz  ¦  «        ||d|i¬¦  «                             ¦   «         D ]!\  }}|                     t          ||¦  «         Œ"|                     t          j        dd ¦  «         |                     t          j        dt!          ‰ dz  ¦  «        ¦  «         t#          t          j        ¦  «        5 Š‰                     d¦  «        5 }	t)          |	¦  «        }
‰                     dddi¬¦  «        }g }|j        }d}||k    }|}|r$|                     ¦   «         d         }d}||k    }|}|�s@t/          j        d|fd||f¦  «        dt3          j        ¦   «         v st/          j        |¦  «        rt/          j        |¦  «        ndt/          j        |¦  «        t/          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |r`t/          j        d|fd ||f¦  «        t/          j        |¦  «        t/          j        |¦  «        d!œz  }d"d#|iz  }|                     |¦  «         t/          j        |d$¦  «        i z  }d%d&|iz  }t?          t/          j         |¦  «        ¦  «        ‚d x}x}x}x}x}x}x}}|
 !                    d'd(¬)¦  «         ˆˆ fd*„}‰|
||fV — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )+Nzcredentials.jsonzdownlink-testztest-device-onlyútest-pi-only)Ú	device_idÚdevice_tokenÚpi_tokenúprojects.jsonÚpÚTest©ÚidÚnameÚpathc                   ó$   •— e Zd Zg Zˆ fd„Zd„ ZdS )údownlink.<locals>.RPCc              “   ó  •K  — |dk    r#t          ddt          ‰¦  «        ddd¬¦  «        gS d}||k    }|s—t          j        d	|fd
||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}}| j
                             |d         ¦  «         t          ddd¬¦  «        S )NÚlistÚsr   ÚIDLEz2026-10-03T00:00:00ZT)Ú
session_idr   ÚcwdÚstateÚ
updated_atÚliveÚinput©ú==©z%(py0)s == %(py3)sÚmethod©Úpy0Úpy3úassert %(py5)sÚpy5ÚtextF)Úacceptedr   Úresumed)ÚdictÚstrÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚinputsÚappend)Úselfr(   ÚparamsÚ@py_assert2Ú@py_assert1Ú@py_format4Ú@py_format6Útmp_paths          €úc/home/lighthouse/esp32-dev/.cache/wifi-fallback-speech-ab-0.5.1/server/tests/test_agent_downlink.pyÚcallzdownlink.<locals>.RPC.call   s8  øè è € Ø˜ÒÐÝ¨°&½cÀ(¹m¼mÐSYØ(>ÀTðKñ Kô Kð Lð Là$Ð$�6˜WÒ$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$�6˜WÐ$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$�6Ñ$Ô$Ð$Õ$Ô$�6Ñ$Ô$Ð$Ð$Õ$Ô$˜WÑ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$ØŒK×Ò˜v fœ~Ñ.Ô.Ð.Ý °#¸uÐEÑEÔEÐEó    c              “   ó
   K  — d S ©N© )r=   s    rD   Úclosezdownlink.<locals>.RPC.close$   ó
   è è € € € rF   N)Ú__name__Ú
__module__Ú__qualname__r;   rE   rJ   )rC   s   €rD   ÚRPCr      s?   ø€ € € € € Øˆð	Fð 	Fð 	Fð 	Fð 	Fð 	$Ð#Ð#Ð#Ð#rF   rO   )Úrpcztargets.jsonÚpi)Úcredential_storeÚdevicesÚtarget_storeÚpi_sessionsÚproject_registryÚadaptersÚproviderÚpreferenceszspeech.jsonz
/device/wsú/devices/downlink-test/targetÚtargetzpi:s©ÚjsonéÈ   ú
agent:pi:sr%   ©z3%(py4)s
{%(py4)s = %(py2)s.status_code
} == %(py7)sÚresponse©Úpy2Úpy4Úpy7ú%(py9)sÚpy9)z%(py12)s == %(py15)s©Úpy12Úpy15ú%(py17)sÚpy17r   úassert %(py20)sÚpy20Úagent_stater   )r   c                 ó"  •— ‰                      dddit          d| ddt          ‰	¦  «        dœddi|¥¤Ž¬	¦  «        }|j        }d
}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}}|                     ¦   «         S )Nz/integrations/pi/eventszx-device-lab-pi-tokenr   r   r   )Úeventr   r   r    Úturn_idÚt)Úheadersr]   r^   r%   )z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sra   )r*   rc   r-   zassert %(py7)sre   rI   )Úpostr1   r2   Ústatus_coder3   r4   r5   r6   r7   r8   r9   r:   r]   )
ÚkindÚextrara   r@   Ú@py_assert4Ú@py_assert3rB   Ú@py_format8ÚclientrC   s
           €€rD   ru   zdownlink.<locals>.post2   sG  ø€ Ø—{’{Ð#<ÐG^Ð_mÐFnÝÐq °¸6ÅsÈ8Á}Ä}ÐqÐqÐYbÐcfÐXpÐjoÐXpÐqÐqð #ñ sô sˆHàÔ'Ð.¨3Ð.Ð'¨3Ò.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð'¨3Ð.Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô.�8Ñ.Ô.Ð.Õ.Ô.�8Ñ.Ô.Ð.Ð.Õ.Ô.Ð'Ñ.Ô.Õ.Ô.¨3Ñ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ø—=’=‘?”?Ð"rF   )"Ú
write_textr]   Údumpsr1   r	   r   Úaddr   r2   r   r   r   ÚitemsÚsetattrÚgatewayÚspeechesr
   r   ÚappÚwebsocket_connectr   ru   rv   r3   r4   r5   r6   r7   r8   r<   Ú_format_boolopr9   r:   Úwait)rC   ÚmonkeypatchÚcredentialsÚregistryÚprojectsrO   ÚadapterÚkeyÚvalueÚwsÚdevicera   r@   rz   Ú@py_assert6Ú@py_assert5Ú@py_assert0Ú@py_assert11Ú@py_assert14Ú@py_assert13r{   Ú@py_format10Ú@py_format16Ú@py_format18Ú@py_format19Ú@py_format21ru   r|   s   `                          @rD   Údownlinkrœ      sØ  øøè è € àÐ-Ñ-€KØ×Ò�4œ:¥d°_ÐSeÐp~Ð&Ñ&Ô&ñ  Aô  Añ  Bô  Bð  BÝ Ñ"Ô"€HÝ˜x¨Ñ7Ñ8Ô8€HØ‡L‚L•˜C fµ3°x±=´=ÐAÑAÔAÑBÔBÐBð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ñ 	$ô 	$ð 	$õ ˜ (°°±´Ð6Ñ6Ô6€GÝÕ,AÀ+Ñ,NÔ,NÐXZÝ(3°H¸^Ñ4KÑ(LÔ(LÐZbØ,4ÀÀg¸ðPñ Pô PçPUÒPUÑPWÔPWð1ð 1‰
ˆˆUð 	×Ò�G S¨%Ñ0Ô0Ð0Ð0Ø×Ò�Ô(¨*°dÑ;Ô;Ð;Ø×Ò�Ô(¨-Õ9JÈ8ÐTaÑKaÑ9bÔ9bÑcÔcÐcÝ	•G”KÑ	 Ô	 ð 
, F¨F×,DÒ,DÀ\Ñ,RÔ,Rð 
,ÐVXÝ˜B‘”ˆØ—;’;Ð>ÀhÈvÐEV�;ÑWÔWˆØXÐXˆxÔ#ÐX sÐXÐ# sÒ*ÐXÐXÐXÐXÐX¨x¯}ª}©¬¸xÔ/HÐXÈLÐXÐ/HÈLÒ/XÐXÐXÐXÐXÑXÕXÔXÐXÐXÐXÐXÐ# sÐXÑXÔXÐXÕXÔXÑXÔXÐXÐXÕXÔXˆxÑXÔXÐXÕXÔXˆxÑXÔXÐXÐXÕXÔXÐ#ÑXÔXÕXÔX sÑXÔXÐXÐXÑXÐXÐXÐXÐXÐXÑXÐXÐX×XÒXÐXÑXÔXÐXÐXÐXÕXÔXÐXÐXÐXÐXÐ/HÈLÐXÑXÔXÕXÔXÐ/HÑXÔXÕXÔXÈLÑXÔXÐXÐXÑXÐXÐXÐXÐXÐXÑXÐXÐX×XÒXÐXÑXÔXÐXÕXÔXÐXÐXÑXÔXÐXÑXÐXÐXÐXÐXÐXÑXÐXÕXÕXÔXÐXÑXÔXÑXÔXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXØ�Š�M¨cˆÑ2Ô2Ð2ð	#ð 	#ð 	#ð 	#ð 	#ð 	#ð
 �f˜d GÐ+Ð+Ð+Ð+ð
,ð 
,ð 
,ñ 
,ô 
,ð 
,ð 
,ð 
,ð 
,ð 
,ð 
,øøøð 
,ð 
,ð 
,ð 
,ð 
,ð 
,ð 
,ñ 
,ô 
,ð 
,ð 
,ð 
,ð 
,ð 
,ð 
,ð 
,øøøð 
,ð 
,ð 
,ð 
,ð 
,ð 
,s7   ÆN#Æ%GNÍ?N#ÎN	ÎN#ÎN	ÎN#Î#N'Î*N'c           
      óœ  — | \  }}}}|                      dddi¬¦  «        }g }|j        }d}||k    }	|	}
|	r|j        }|j        }dg}||k    }|}
|
�s‘t	          j        d|	fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }| 
                    |¦  «         |	r±t	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }| 
                    |¦  «         t	          j        |d¦  «        i z  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}
x}x}x}	x}x}x}x}} |d¦  «         |                     dd¬¦  «        d         }
d}|
|k    }|slt	          j        d|fd|
|f¦  «        t	          j	        |
¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}
x}} |dd¬ ¦  «         |                     dd!¬¦  «        }|d         }
d}|
|k    }|slt	          j        d|fd|
|f¦  «        t	          j	        |
¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}
x}}g }|d"         }d}	||	k    }|}
|r|d#         }d$}||k    }|}
|
�st	          j        d|fd%||	f¦  «        t	          j	        |¦  «        t	          j	        |	¦  «        d&œz  }d'd(|iz  }| 
                    |¦  «         |r`t	          j        d|fd)||f¦  «        t	          j	        |¦  «        t	          j	        |¦  «        d*œz  }d+d,|iz  }| 
                    |¦  «         t	          j        |d¦  «        i z  }d-d.|iz  } t          t	          j        | ¦  «        ¦  «        ‚d x}
x}x}x}x}	x}x}}|j         }d/}d0d1i}	 |||	¬¦  «        }!|!j        }"d2}|"|k    }#|#söt	          j        d|#fd3|"|f¦  «        d4t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd4t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |	¦  «        t	          j	        |!¦  «        t	          j	        |"¦  «        t	          j	        |¦  «        d5œz  }$d6d7|$iz  }%t          t	          j        |%¦  «        ¦  «        ‚d x}x}x}	x}!x}"x}#}|                     dd!¬¦  «        d         }
|d         }|
|k    }|slt	          j        d|fd|
|f¦  «        t	          j	        |
¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}
x}}d S )8Nz/api/agents/pi/sessions/s/inputr.   u   å“ˆå–½å“ˆå–½r\   éÊ   r%   r`   ra   rb   rf   rg   )zM%(py15)s
{%(py15)s = %(py13)s
{%(py13)s = %(py11)s.rpc
}.inputs
} == %(py18)srŒ   )Úpy11Úpy13rj   Úpy18z%(py20)srn   r   zassert %(py23)sÚpy23Úagent_startro   ÚRUNNING©r!   Ú
final_textÚ ©z%(py1)s == %(py4)s©Úpy1rd   úassert %(py6)sÚpy6Ú	agent_endu!   ä½ å¥½ï¼�æœ‰ä»€ä¹ˆå�¯ä»¥å¸®ä½ ï¼Ÿ©r¦   ÚDONEÚrecent_textÚnotificationÚdone©z%(py3)s == %(py6)s©r+   r¬   ú%(py8)sÚpy8©z%(py11)s == %(py14)s©rŸ   Úpy14ú%(py16)sÚpy16úassert %(py19)sÚpy19rZ   r[   r_   r^   )z|%(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.post
}(%(py4)s, json=%(py6)s)
}.status_code
} == %(py13)sr|   )r*   rc   rd   r¬   r¶   Úpy10r    zassert %(py15)srj   )ru   rv   rP   r;   r3   r4   r5   r6   r7   r8   r<   r†   r9   r:   r‡   )&rœ   r|   r�   ru   rŒ   ra   r@   rz   r‘   r’   r“   Ú@py_assert12r•   Ú@py_assert17Ú@py_assert16r{   r—   rš   r›   Ú@py_format22Ú@py_format24r?   Ú@py_format5Ú@py_format7Úendry   Ú@py_assert10r–   Ú@py_format9Ú@py_format15Ú@py_format17r™   Ú@py_format20Ú@py_assert7Ú@py_assert9r”   Ú@py_format14r˜   s&                                         rD   Ú*test_direct_answer_without_message_updatesrÏ   :   sê  € Ø$,Ñ!€FˆF�D˜'Ø�{Š{Ð<ÀFÈ>ÐCZˆ{Ñ[Ô[€HØQÐQˆ8ÔÐQ 3ÐQÐ 3Ò&ÐQÐQÐQÐQÐQ¨7¬;ÐQ¨;Ô+=ÐQÀ.ÐAQÐQÐ+=ÐAQÒ+QÐQÐQÐQÐQÑQÕQÔQÐQÐQÐQÐQÐ 3ÐQÑQÔQÐQÕQÔQÑQÔQÐQÐQÕQÔQˆ8ÑQÔQÐQÕQÔQˆ8ÑQÔQÐQÐQÕQÔQÐÑQÔQÕQÔQ 3ÑQÔQÐQÐQÑQÐQÐQÐQÐQÐQÑQÐQÐQ×QÒQÐQÑQÔQÐQÐQÐQÕQÔQÐQÐQÐQÐQÐ+=ÐAQÐQÑQÔQÐQÕQÔQÑQÔQÐQÐQÕQÔQ¨7ÑQÔQÐQÕQÔQ¨7ÑQÔQÐQÐQÕQÔQ¨;ÑQÔQÕQÔQÐ+=ÑQÔQÕQÔQÐAQÑQÔQÐQÐQÑQÐQÐQÐQÐQÐQÑQÐQÐQ×QÒQÐQÑQÔQÐQÕQÔQÐQÐQÑQÔQÐQÑQÐQÐQÐQÐQÐQÑQÐQÕQÕQÔQÐQÑQÔQÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQØ€DˆÑÔÐØ�;Š;�}¨Iˆ;Ñ6Ô6°|ÔDÐJÈÐJÐDÈÒJÐJÐJÐJÕJÔJÐJÐJÐJÐJÐDÈÐJÑJÔJÕJÔJÐDÑJÔJÕJÔJÈÑJÔJÐJÐJÑJÐJÐJÐJÐJÐJÑJÐJÕJÕJÔJÐJÑJÔJÑJÔJÐJÐJÐJÐJÐJÐJÐJØ€DˆÐ!DÐEÑEÔEÐEØ
�+Š+�m¨6ˆ+Ñ
2Ô
2€CØˆ|ÔÐCÐ CÐCÐÐ CÒCÐCÐCÐCÕCÔCÐCÐCÐCÐCÐÐ CÐCÑCÔCÕCÔCÐÑCÔCÕCÔCÐ CÑCÔCÐCÐCÑCÐCÐCÐCÐCÐCÑCÐCÕCÕCÔCÐCÑCÔCÑCÔCÐCÐCÐCÐCÐCÐCÐCØEÐEˆ3ˆ}ÔÐE ÐEÐ Ò#ÐEÐEÐEÐEÐE¨¨NÔ(;ÐE¸vÐEÐ(;¸vÒ(EÐEÐEÐEÐEÑEÕEÔEÐEÐEÐEÐEÐ ÐEÑEÔEÕEÔEÐÑEÔEÕEÔE ÑEÔEÐEÐEÑEÐEÐEÐEÐEÐEÑEÐEÐE×EÒEÐEÑEÔEÐEÐEÐEÕEÔEÐEÐEÐEÐEÐ(;¸vÐEÑEÔEÕEÔEÐ(;ÑEÔEÕEÔE¸vÑEÔEÐEÐEÑEÐEÐEÐEÐEÐEÑEÐEÐE×EÒEÐEÑEÔEÐEÕEÔEÐEÐEÑEÔEÐEÑEÐEÐEÐEÐEÐEÑEÐEÕEÕEÔEÐEÑEÔEÑEÔEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEàŒ;ÐhÐ6Ðh¸hÀ|Ð=TÐhˆ;ˆ;Ð6Ð=TÐUÑUÔUÐhÐUÔaÐhÐehÐhÐaÐehÒhÐhÐhÐhÕhÔhÐhÐhÐhÐhÐaÐehÐhÑhÔhÐhÕhÔhÑhÔhÐhÐhÕhÔhˆ6ÑhÔhÐhÕhÔhˆ6ÑhÔhÐhÐhÕhÔhˆ;ÑhÔhÕhÔhÐ6ÑhÔhÕhÔhÐ=TÑhÔhÕhÔhÐUÑhÔhÕhÔhÐaÑhÔhÕhÔhÐehÑhÔhÐhÐhÑhÐhÐhÐhÐhÐhÑhÐhÕhÕhÔhÐhÑhÔhÑhÔhÐhÐhÐhÐhÐhÐhÐhÐhÐhÐhÐhÐhÐhÐhÐhØ�;Š;�}¨Fˆ;Ñ3Ô3°LÔAÐVÀSÈÔEVÐVÐAÐEVÒVÐVÐVÐVÕVÔVÐVÐVÐVÐVÐAÐEVÐVÑVÔVÕVÔVÐAÑVÔVÕVÔVÐEVÑVÔVÐVÐVÑVÐVÐVÐVÐVÐVÑVÐVÕVÕVÔVÐVÑVÔVÑVÔVÐVÐVÐVÐVÐVÐVÐVÐVÐVrF   ÚfailedFTc                 ó
  — | \  }}}} |d¦  «         |                      dd¬¦  «          |dddd¬	¦  «         |                      d
¦  «        d         }d}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t	          t          j        |	¦  «        ¦  «        ‚d x}x}} |ddd¬¦  «         |                      d
¦  «        d         }d}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t	          t          j        |	¦  «        ¦  «        ‚d x}x}}|rdnd}
 |d||
¬¦  «         |                      d|rdnd¬¦  «        }|d         }||
k    }|s—t          j        d|fd||
f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        nddœz  }dd|iz  }t	          t          j        |¦  «        ¦  «        ‚d x}}|d         }|rd nd!}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t	          t          j        |	¦  «        ¦  «        ‚d x}x}}g }d"}|d#         }||v }|}|rd}|d#         }||v }|}|�st          j        d$|fd%||f¦  «        t          j        |¦  «        t          j        |¦  «        d&œz  }	d'd(|	iz  }| 	                    |¦  «         |r`t          j        d$|fd)||f¦  «        t          j        |¦  «        t          j        |¦  «        d*œz  }d+d,|iz  }| 	                    |¦  «         t          j
        |d-¦  «        i z  }d.d/|iz  }t	          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}x}x}} |ddd0¬¦  «         |                      d
¦  «          |d1¦  «         |                      d|d2         ¬¦  «        d         }||
k    }|s—t          j        d|fd||
f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        nddœz  }dd|iz  }t	          t          j        |¦  «        ¦  «        ‚d x}}d S )3Nr£   ro   r¤   r¥   ÚactivityÚtoolzRunning
sleep 3Úbash)Úactivity_typerÒ   Ú	tool_nameÚagent_activityr%   r¨   r©   r«   r¬   r.   u   æ­£åœ¨æ£€æŸ¥ã€‚©rÕ   rÒ   u!   ä¾�èµ–ä¸�å�¯ç”¨ï¼Œå°šæœªå®Œæˆ�ã€‚u   æ£€æŸ¥å®Œæˆ�ï¼Œç»“æžœæ­£å¸¸ã€‚r­   )rÐ   r¦   ÚFAILEDr¯   r¦   )z%(py1)s == %(py3)sÚfinal)rª   r+   r,   r-   r±   rÐ   r²   zsleep 3r°   )Úin)z%(py3)s in %(py6)sr´   rµ   r¶   )z%(py11)s in %(py14)sr¸   rº   r»   r   r¼   r½   zCompleted
bashÚsession_info_changedr!   )r‡   r3   r4   r8   r9   r:   r5   r6   r7   r<   r†   )rœ   rÐ   Ú_r�   ru   r“   rz   r?   rÄ   rÅ   rÚ   rÆ   rA   rB   r@   r’   ry   rÇ   r–   r¿   rÈ   rÉ   rÊ   r™   rË   s                            rD   Ú.test_tool_run_and_terminal_result_are_separaterÞ   I   su  € à!Ñ€A€vˆt�QØ€DˆÑÔÐ˜Ÿš ]¸)˜ÑDÔDÐDØ€Dˆ 6Ð4FÐRXÐYÑYÔYÐYØ�;Š;Ð'Ñ(Ô(¨Ô4ÐJÐ8JÐJÐ4Ð8JÒJÐJÐJÐJÕJÔJÐJÐJÐJÐJÐ4Ð8JÐJÑJÔJÕJÔJÐ4ÑJÔJÕJÔJÐ8JÑJÔJÐJÐJÑJÐJÐJÐJÐJÐJÑJÐJÕJÕJÔJÐJÑJÔJÑJÔJÐJÐJÐJÐJÐJÐJÐJØ€Dˆ 6Ð4EÐFÑFÔFÐFØ�;Š;Ð'Ñ(Ô(¨Ô4ÐIÐ8IÐIÐ4Ð8IÒIÐIÐIÐIÕIÔIÐIÐIÐIÐIÐ4Ð8IÐIÑIÔIÕIÔIÐ4ÑIÔIÕIÔIÐ8IÑIÔIÐIÐIÑIÐIÐIÐIÐIÐIÑIÐIÕIÕIÔIÐIÑIÔIÑIÔIÐIÐIÐIÐIÐIÐIÐIØ39Ð_Ð/Ð/Ð?_€EØ€Dˆ˜V°Ð6Ñ6Ô6Ð6Ø
�+Š+�m°vÐ+I¨8¨8À6ˆ+Ñ
JÔ
J€CØˆ|ÔÐ%Ð Ò%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð Ð%Ñ%Ô%Õ%Ô%ÐÑ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô% Ñ%Ô%Ð%Õ%Ô% Ñ%Ô%Ð%Ð%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Øˆ~ÔÐB¨vÐ#A 8 8¸6ÐBÐÐ#AÒBÐBÐBÐBÕBÔBÐBÐBÐBÐBÐÐ#AÐBÑBÔBÕBÔBÐÑBÔBÕBÔBÐ#AÑBÔBÐBÐBÑBÐBÐBÐBÐBÐBÑBÐBÕBÕBÔBÐBÑBÔBÑBÔBÐBÐBÐBÐBÐBÐBÐBØVÐVˆ9ÐV˜˜MÔ*ÐVˆ9Ð*Ð*ÐVÐVÐVÐVÐVÐ/@ÐVÀCÈÔDVÐVÐ/@ÐDVÐ/VÐVÐVÐVÐVÑVÕVÔVÐVÐVÐVÐVˆ9Ð*ÐVÑVÔVÕVÔVˆ9ÑVÔVÕVÔVÐ*ÑVÔVÐVÐVÑVÐVÐVÐVÐVÐVÑVÐVÐV×VÒVÐVÑVÔVÐVÐVÐVÕVÔVÐVÐVÐVÐVÐ/@ÐDVÐVÑVÔVÕVÔVÐ/@ÑVÔVÕVÔVÐDVÑVÔVÐVÐVÑVÐVÐVÐVÐVÐVÑVÐVÐV×VÒVÐVÑVÔVÐVÕVÔVÐVÐVÑVÔVÐVÑVÐVÐVÐVÐVÐVÑVÐVÕVÕVÔVÐVÑVÔVÑVÔVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVà€Dˆ 6Ð4EÐFÑFÔFÐFØ
‡K‚KÐ Ñ!Ô!Ð!Ø€DÐ	Ñ Ô Ð Ø�;Š;�}¨C°¬Lˆ;Ñ9Ô9¸,ÔGÐPÐGÈ5ÒPÐPÐPÐPÕPÔPÐPÐPÐPÐPÐGÈ5ÐPÑPÔPÕPÔPÐGÑPÔPÐPÕPÔPÑPÔPÐPÐPÕPÔPÈ5ÑPÔPÐPÕPÔPÈ5ÑPÔPÐPÐPÐPÐPÑPÐPÐPÐPÐPÐPÑPÐPÕPÕPÔPÐPÑPÔPÑPÔPÐPÐPÐPÐPÐPÐPÐPrF   c           
      ó  — | \  }}}} |d¦  «         |                      dd¬¦  «         dddz  z   } |d|¬	¦  «         |                      dd
¬¦  «        }d}|d         }|j        } |¦   «         }	t          |	¦  «        }
||
k     }d}|
|k    }|r|�st          j        d||fd||
|f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        t          j        |
¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}x}x}x}x}	x}
}g }d}|d         }||v}|}|rd}|d         }||v}|}|�st          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |r`t          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}x}x}x}x}x}}|d         }|j        }d } ||¦  «        }|ssd!t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d"œz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}x}} |dd#¬$¦  «         |                      dd¬¦  «        d         }d%}||k    }|slt          j        d&|fd'||f¦  «        t          j        |¦  «        t          j        |¦  «        d(œz  }d)d*|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}} |dd#d+¬,¦  «         |                      dd-¬¦  «        }g }|d         }d%}||k    }|}|r|d.         }d-}||k    }|}|�st          j        d&|fd/||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |r`t          j        d&|fd0||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}x}x}x}x}x}}d S )1Nr£   ro   r¤   r¥   uH   ç»“æžœðŸ™‚ Authorization: Bearer private-credential
api_key=private-key
u
   ä¸­æ–‡ðŸ™‚i¸  r­   r®   r¯   r   r¦   i   )ú<ú<=)zf%(py1)s < %(py12)s
{%(py12)s = %(py4)s(%(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py6)s.encode
}()
})
}zh%(py12)s
{%(py12)s = %(py4)s(%(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py6)s.encode
}()
})
} <= %(py14)sÚlen)rª   rd   r¬   r¶   r¾   ri   r¹   zassert %(py16)sr»   zprivate-u   ï¿½©únot in)z%(py3)s not in %(py6)sr´   rµ   r¶   )z%(py11)s not in %(py14)sr¸   rº   r¼   r½   u
   ç»“æžœðŸ™‚zLassert %(py7)s
{%(py7)s = %(py3)s
{%(py3)s = %(py1)s.startswith
}(%(py5)s)
})rª   r+   r-   re   Únext)rr   r§   r%   r¨   r©   r«   r¬   T)rr   rÐ   rÙ   r!   r³   r·   )r‡   Úencoderâ   r3   r4   r8   r5   r6   r7   r9   r:   r<   r†   Ú
startswith)rœ   rÝ   r�   ru   rÚ   rÆ   r“   r’   rÌ   rÍ   r”   r?   r–   rz   rÉ   rÊ   r@   ry   rÇ   r¿   rÅ   rÈ   r™   rË   r‘   r{   rÄ   s                              rD   Ú,test_final_bound_redaction_and_new_run_resetrè   ^   sö  € Ø!Ñ€A€vˆt�QØ€DˆÑÔÐ˜Ÿš ]¸)˜ÑDÔDÐDØXÐ[gÐhlÑ[lÑl€EØ€Dˆ Ð'Ñ'Ô'Ð'Ø
�+Š+�m¨6ˆ+Ñ
2Ô
2€CØÐ6�3�|Ô$Ð6Ð$Ô+Ð6Ð+Ð+Ñ-Ô-Ð6�sÐ-Ñ.Ô.Ð6ˆ1Ð.Ò6Ð6°$Ð6Ð.°$Ò6Ð6Ð6Ð6Ð6Ñ6Õ6Ô6Ð6Ð6Ð6Ð6Ð6ˆ1Ð.°$Ð6Ñ6Ô6Õ6Ô6ˆ1Ñ6Ô6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6�sÑ6Ô6Ð6Õ6Ô6�sÑ6Ô6Ð6Ð6Õ6Ô6Ð$Ñ6Ô6Õ6Ô6Ð+Ñ6Ô6Õ6Ô6Ð-Ñ6Ô6Õ6Ô6Ð.Ñ6Ô6Õ6Ô6°$Ñ6Ô6Ð6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Õ6Õ6Ô6Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ØTÐTˆ:ÐT˜S Ô.ÐTˆ:Ð.Ð.ÐTÐTÐTÐTÐT°8ÐTÀ3À|ÔCTÐT°8ÐCTÐ3TÐTÐTÐTÐTÑTÕTÔTÐTÐTÐTÐTˆ:Ð.ÐTÑTÔTÕTÔTˆ:ÑTÔTÕTÔTÐ.ÑTÔTÐTÐTÑTÐTÐTÐTÐTÐTÑTÐTÐT×TÒTÐTÑTÔTÐTÐTÐTÕTÔTÐTÐTÐTÐT°8ÐCTÐTÑTÔTÕTÔT°8ÑTÔTÕTÔTÐCTÑTÔTÐTÐTÑTÐTÐTÐTÐTÐTÑTÐTÐT×TÒTÐTÑTÔTÐTÕTÔTÐTÐTÑTÔTÐTÑTÐTÐTÐTÐTÐTÑTÐTÕTÕTÔTÐTÑTÔTÑTÔTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTØˆ|ÔÐ5ÐÔ'Ð5¨Ð5Ð'Ð'¨Ñ5Ô5Ð5Ð5Ð5Ð5Õ5Ô5ÐÑ5Ô5Õ5Ô5Ð'Ñ5Ô5Õ5Ô5¨Ñ5Ô5Õ5Ô5Ð5Ñ5Ô5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø€Dˆ Ð'Ñ'Ô'Ð'Ø�;Š;�}¨Iˆ;Ñ6Ô6°|ÔDÐJÈÐJÐDÈÒJÐJÐJÐJÕJÔJÐJÐJÐJÐJÐDÈÐJÑJÔJÕJÔJÐDÑJÔJÕJÔJÈÑJÔJÐJÐJÑJÐJÐJÐJÐJÐJÑJÐJÕJÕJÔJÐJÑJÔJÑJÔJÐJÐJÐJÐJÐJÐJÐJØ€Dˆ˜f¨TÐ2Ñ2Ô2Ð2Ø
�+Š+�m¨8ˆ+Ñ
4Ô
4€CØ?Ð?ˆ3ˆ|ÔÐ? Ð?Ð Ò"Ð?Ð?Ð?Ð?Ð? s¨7¤|Ð?°xÐ? |°xÒ'?Ð?Ð?Ð?Ð?Ñ?Õ?Ô?Ð?Ð?Ð?Ð?Ð Ð?Ñ?Ô?Õ?Ô?ÐÑ?Ô?Õ?Ô? Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Ð?×?Ò?Ð?Ñ?Ô?Ð?Ð?Ð?Õ?Ô?Ð?Ð?Ð?Ð? |°xÐ?Ñ?Ô?Õ?Ô? |Ñ?Ô?Õ?Ô?°xÑ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Ð?×?Ò?Ð?Ñ?Ô?Ð?Õ?Ô?Ð?Ð?Ñ?Ô?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?rF   c                 óÌ  — | \  }}}}|                      dddi¬¦  «         |                     d¦  «          |d¦  «          |ddd	¬
¦  «         |                      ddddœ¬¦  «         t          |j        j        ¦  «        }|                     d¦  «         d„ |j        j        |d …         D ¦   «         }t          |¦  «        }| }|s•ddt          j        ¦   «         v st          j	        t
          ¦  «        rt          j
        t
          ¦  «        ndt          j
        |¦  «        t          j
        |¦  «        dœz  }	t          t          j        |	¦  «        ¦  «        ‚d x}x}}d S )NrZ   r[   Úserverr\   Útarget_stater£   rÒ   r.   zmust stay on srØ   z/devices/downlink-test/messageÚbarrierÚtest)ÚtitleÚbodyÚdisplay_messagec              3   ó*   K  — | ]}|d          dv V — ŒdS )Útype)ro   r×   NrI   )Ú.0Úrs     rD   ú	<genexpr>z@test_unselected_session_never_pushes_activity.<locals>.<genexpr>w   s,   è è € ÐlÐlÀa�1�V”9Ð AÐAÐlÐlÐlÐlÐlÐlrF   z0assert not %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}Úany)r*   rc   rd   )ru   r‡   râ   ÚrecorderÚrecordsrö   r5   r6   r3   r7   r8   r9   r:   )
rœ   r|   r�   ru   rÝ   Úbeforer@   rz   r’   rB   s
             rD   Ú-test_unselected_session_never_pushes_activityrú   n   s‡  € Ø&Ñ€FˆF�D˜!Ø
‡K‚KÐ/°xÀÐ6I€KÑJÔJÐJØ
‡K‚K�ÑÔÐØ€DˆÑÔÐØ€Dˆ 6Ð4DÐEÑEÔEÐEØ
‡K‚KÐ0À	ÐRXÐ7YÐ7Y€KÑZÔZÐZÝ�”Ô(Ñ)Ô)€FØ
‡K‚KÐ!Ñ"Ô"Ð"ØlÐlÈ6Ì?ÔKbÐciÐcjÐcjÔKkÐlÑlÔlÐl�sÐlÑlÔlÐlÐlÐlÐlÐlÐlÐlÐlÕlÔlÑlÔlÐlÐlÕlÔl�sÑlÔlÐlÕlÔl�sÑlÔlÐlÐlÕlÔlÐlÑlÔlÕlÔlÐlÑlÔlÐlÐlÑlÐlÕlÕlÔlÐlÑlÔlÑlÔlÐlÐlÐlÐlÐlÐlÐlÐlÐlrF   c                 óN   ‡ ‡— ˆˆ fd„}t          j         |¦   «         ¦  «         d S )Nc               “   ó¤  •K  — t          ‰dz  ¦  «        } |                      t          ddt          ‰¦  «        ¬¦  «        ¦  «         t	          | ¦  «        }ˆfd„}d„ }||_        ||_        ‰                     t          dd|i¦  «         | 	                    t          d	d
ddidœ¬¦  «        ¦  «        ƒ d {V —† | 	                    t          dd
dt          dddd¬¦  «        dœ¬¦  «        ¦  «        ƒ d {V —† | 	                    t          dd
dddœdœ¬¦  «        ¦  «        ƒ d {V —† t          j        d¦  «        ƒ d {V —†}g }|d         }d}||k    }|}	|r|d         }
d}|
|k    }|}	|	�st          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }d d!|iz  }|                     |¦  «         |r`t          j        d|fd"|
|f¦  «        t          j        |
¦  «        t          j        |¦  «        d#œz  }d$d%|iz  }|                     |¦  «         t          j        |d&¦  «        i z  }d'd(|iz  }t#          t          j        |¦  «        ¦  «        ‚d x}	x}x}x}x}x}
x}}g }|d)         }|j        }d*} ||¦  «        }|}	|rd+}|d)         }||v}|}	|	�s	d,t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d-œz  }|                     |¦  «         |r`t          j        d.|fd/||f¦  «        t          j        |¦  «        t          j        |¦  «        d0œz  }d1d2|iz  }|                     |¦  «         t          j        |d&¦  «        i z  }d3d4|iz  }t#          t          j        |¦  «        ¦  «        ‚d x}	x}x}x}x}x}x}x}}d S )5Nr   r   r   r   c              “   óš  •K  — d}| |k    }|s—t          j        d|fd| |f¦  «        dt          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}}dt          d	t          ‰¦  «        d
ddi¬¦  «        iS )Nzthread/readr%   r'   r(   r)   r,   r-   Úthreadr   r   rò   Úidle)r   r    Ú	updatedAtÚstatus)
r3   r4   r5   r6   r7   r8   r9   r:   r1   r2   )r(   r>   r?   r@   rA   rB   rC   s         €rD   rE   zHtest_codex_authoritative_final_is_preserved.<locals>.check.<locals>.call   sò   øè è € Ø*Ð*�6˜]Ò*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*�6˜]Ð*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*�6Ñ*Ô*Ð*Õ*Ô*�6Ñ*Ô*Ð*Ð*Õ*Ô*˜]Ñ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ø�T S­c°(©m¬mÀqÐRXÐY_ÐQ`ÐaÑaÔaÐbÐbrF   c              “   ó
   K  — d S rH   rI   )Úsids    rD   ÚobservezKtest_codex_authoritative_final_is_preserved.<locals>.check.<locals>.observe‚   rK   rF   rW   Úcodexzturn/startedr   r   rs   )ÚthreadIdÚturn)r(   r>   zitem/completedrÚ   ÚagentMessageÚfinal_answeru    Codex ç»“æžœã€‚token=private-key)r   rò   Úphaser.   )r  ÚturnIdÚitemzturn/completedÚ	completed)r   r  zagent:codex:sr!   r¯   Úagentr%   r³   r´   rµ   r¶   r·   r¸   rº   r»   r   r¼   r½   r¦   u   Codex ç»“æžœã€‚zprivate-keyzE%(py9)s
{%(py9)s = %(py5)s
{%(py5)s = %(py3)s.startswith
}(%(py7)s)
})r+   r-   re   rg   rã   )z%(py12)s not in %(py15)srh   rk   rl   rm   rn   )r   r   r   r2   r   rE   Úobserve_sessionr�   r‚   rq   r1   Úagent_target_payloadr3   r4   r8   r<   r†   r9   r:   rç   )r‹   rŒ   rE   r  Úpayloadr@   r?   r’   ry   r“   rÇ   r–   r¿   rÅ   rÈ   rÉ   rÊ   r™   rË   r‘   Ú@py_assert8r”   r•   r—   r˜   rš   r›   rˆ   rC   s                              €€rD   Úcheckz:test_codex_authoritative_final_is_preserved.<locals>.check{   s3  øè è € Ý" 8¨OÑ#;Ñ<Ô<ˆØ�Š•W ¨&µs¸8±}´}ÐEÑEÔEÑFÔFÐFÝ˜xÑ(Ô(ˆð	cð 	cð 	cð 	cð 	cð 	%Ð$Ð$ØˆŒØ")ˆÔØ×Ò�G Z°'¸'Ð1BÑCÔCÐCØ�mŠm�D¨È3ÐX\Ð]`ÐWaÐ?bÐ?bÐcÑcÔcÑdÔdÐdÐdÐdÐdÐdÐdÐdØ�mŠm�DÐ(8ÈSÐ[^Ý˜7¨¸~ÐTvÐwÑwÔwðByð Byð zñ zô zñ {ô {ð 	{ð 	{ð 	{ð 	{ð 	{ð 	{ð 	{à�mŠm�DÐ(8ÈSÐ_bÐmxÐYyÐYyÐAzÐAzÐ{Ñ{Ô{Ñ|Ô|Ð|Ð|Ð|Ð|Ð|Ð|Ð|ÝÔ4°_ÑEÔEÐEÐEÐEÐEÐEÐEˆØIÐIˆw�wÔÐI 6ÐIÐ 6Ò)ÐIÐIÐIÐIÐI¨g°gÔ.>ÐIÀ'ÐIÐ.>À'Ò.IÐIÐIÐIÐIÑIÕIÔIÐIÐIÐIÐIÐ 6ÐIÑIÔIÕIÔIÐÑIÔIÕIÔI 6ÑIÔIÐIÐIÑIÐIÐIÐIÐIÐIÑIÐIÐI×IÒIÐIÑIÔIÐIÐIÐIÕIÔIÐIÐIÐIÐIÐ.>À'ÐIÑIÔIÕIÔIÐ.>ÑIÔIÕIÔIÀ'ÑIÔIÐIÐIÑIÐIÐIÐIÐIÐIÑIÐIÐI×IÒIÐIÑIÔIÐIÕIÔIÐIÐIÑIÔIÐIÑIÐIÐIÐIÐIÐIÑIÐIÕIÕIÔIÐIÑIÔIÑIÔIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIØqÐqˆw�|Ô$ÐqÐ$Ô/ÐqÐ0AÐqÐ/Ð/Ð0AÑBÔBÐqÐBÐqÐBÐqÀ}ÐqÐ\cÐdpÔ\qÐqÀ}Ð\qÐGqÐqÐqÐqÐqÑqÐqÕqÔqÐ$ÑqÔqÕqÔqÐ/ÑqÔqÕqÔqÐ0AÑqÔqÕqÔqÐBÑqÔqÐqÐqÑqÐqÐq×qÒqÐqÑqÔqÐqÐBÐqÕqÔqÐqÐqÐqÐqÀ}Ð\qÐqÑqÔqÕqÔqÀ}ÑqÔqÕqÔqÐ\qÑqÔqÐqÐqÑqÐqÐqÐqÐqÐqÑqÐqÐq×qÒqÐqÑqÔqÐqÕqÔqÐqÐqÑqÔqÐqÑqÐqÐqÐqÐqÐqÑqÐqÕqÕqÔqÐqÑqÔqÑqÔqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqrF   )ÚasyncioÚrun)rC   rˆ   r  s   `` rD   Ú+test_codex_authoritative_final_is_preservedr  z   sF   øø€ ðrð rð rð rð rð rõ$ „K��‘”ÑÔÐÐÐrF   ))Úbuiltinsr5   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter3   r  r]   ÚpytestÚfastapi.testclientr   Údevice_gateway.appr„   r‚   Údevice_gateway.authr   Údevice_gateway.control.codexr   Údevice_gateway.control.modelsr   Údevice_gateway.control.pir   Údevice_gateway.control.projectsr   Údevice_gateway.integrations.pir	   Údevice_gateway.speechr
   Údevice_gateway.stater   Úfake_devicer   Úfixturerœ   rÏ   ÚmarkÚparametrizerÞ   rè   rú   r  rI   rF   rD   ú<module>r*     s¢  ðØ  € € € € € € € € € € € € €€€€Ø €€€à €€€Ø )Ð )Ð )Ð )Ð )Ð )à $Ð $Ð $Ð $Ð $Ð $Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø /Ð /Ð /Ð /Ð /Ð /Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø <Ð <Ð <Ð <Ð <Ð <Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø "Ð "Ð "Ð "Ð "Ð "ð „ð#,ð #,ñ „ð#,ðLWð Wð Wð „×Ò˜ E¨4 =Ñ1Ô1ðQð Qñ 2Ô1ðQð(@ð @ð @ð 	mð 	mð 	mðð ð ð ð rF   