§
     ’Þjí[  ã                  ó*  — d 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 ddlmZmZmZmZ ddlmZmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZ ddlm Z 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+  G d„ de)e+e¦  «        Z,dS )zJPersistent Deepy execution. HTTP connections are subscribers, not workers.é    )ÚannotationsN)ÚOrderedDictÚdeque)ÚchatÚmedia_registryÚsession_storeÚui_settings)Ú"DEEPY_GALLERY_MEDIA_VIEWER_DEFAULTÚDEEPY_GALLERY_MEDIA_VIEWER_KEY)Ú
AppGallery)Ú	DeepyBusyÚerror_payload)Úget_or_create_assistant_session)ÚGenerationRuntime)Úregistered_download_path)ÚFormRegistryÚSaved)ÚVIDEO)ÚWangpProgress)Úpartial)ÚWorkspaceSupport)ÚPluginJobSupportc                  ó  — e Zd ZdZdedœd„Zd-d„Zd„ Zd„ Zd„ Z	d.d
„Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdddœd„Zddddœd„Zd/d„Zd„ Zd0d„Zd„ Zd„ Zd„ Zd„ Zd1d „Zd!„ Zd"„ Zed#„ ¦   «         Zd$„ Zd%ddd&œd'„Z d(„ Z!d)„ Z"d*„ Z#d+„ Z$d,„ Z%dS )2ÚDeepyServiceN)ÚstateÚgallery_factoryc               ó   ‡ — |‰ _         |€‰                      ¦   «         n|‰ _        t          ‰ j        ¦  «        ‰ _         ||‰ j        ¦  «        x‰ _        ‰ _        d‰ _        t          j	        t          j
        ¦   «         ¦  «        ‰ _        t          j
        ¦   «         ‰ _        t          d¬¦  «        ‰ _        d‰ _        t!          j        ¦   «         j        ‰ _        t)          ¦   «         ‰ _        t          ¦   «         ‰ _        t/          ¦   «         ‰ _        t          j        ¦   «         ‰ _        d ‰ _        t9          ¦   «         ‰ _        t=          ‰ j        d¦  «        ‰ j        d         d<   d‰ _         d‰ _!        d ‰ _"        d ‰ _#        t          ¦   «         ‰ _$        i ‰ _%        ‰ j&        |j'        _(        tS          ‰ j*        ¦  «        ‰ _+        ‰ j+         ,                    d	‰  -                    ¦   «         d
         ˆ fd„ˆ fd„‰ j        ¬¦  «         d S )NÚ é   )Úmaxlenr   ÚdownloadÚgenÚdownload_progress_callbackFú	deepy-webÚvaluesc                 ó8   •— ‰                       ¦   «         d         S )Nr%   )Ú_settings_form©Úselfs   €ú<C:\Users\johnn\OneDrive\Documents\AI\shared\deepy\service.pyú<lambda>z'DeepyService.__init__.<locals>.<lambda>9   s   ø€ ÐW[×WjÒWjÑWlÔWlÐmuÔWv€ ó    c                 ó   •— ‰ j         j        S ©N)Ú_sessionÚchat_session_idr(   s   €r*   r+   z'DeepyService.__init__.<locals>.<lambda>9   s   ø€ ð  GKô  GTô  Gd€ r,   )ÚreadÚscopeÚlock).Ú_depsÚ_build_stateÚ_stater   r/   ÚgalleryÚ_galleryÚ_active_generation_client_idÚ	threadingÚ	ConditionÚRLockÚ
_conditionÚ_mutation_lockr   Ú_eventsÚ	_revisionÚuuidÚuuid4ÚhexÚ_instance_idr   Ú_submissionsÚ_restoration_submissionsÚsetÚ_threadsÚLockÚ_generation_lockÚ	_progressr   Ú_progress_barr   Ú_generation_eventÚ_generation_abortingÚ_closingÚ_restorationÚ_plugin_jobÚ_plugin_waitersÚ_request_statesÚ_plugin_request_eventÚ
controllerÚrequest_listenerr   ÚpublishÚformsÚregisterr'   )r)   Údepsr   r   s   `   r*   Ú__init__zDeepyService.__init__   sÝ  ø€ ØˆŒ
Ø-2¨]�d×'Ò'Ñ)Ô)Ð)ÀˆŒÝ7¸¼ÑDÔDˆŒØ'6 °t¸T¼[Ñ'IÔ'IÐIˆŒ�t”}Ø,.ˆÔ)Ý#Ô-­i¬oÑ.?Ô.?Ñ@Ô@ˆŒÝ'œoÑ/Ô/ˆÔÝ CÐ(Ñ(Ô(ˆŒØˆŒÝ œJ™LœLÔ,ˆÔÝ'™MœMˆÔÝ(-©¬ˆÔ%Ý™œˆŒÝ )¤Ñ 0Ô 0ˆÔØˆŒÝ*™_œ_ˆÔÝ;BÀ4ÔCYÐ[eÑ;fÔ;fˆŒ�EÔÐ7Ñ8Ø$)ˆÔ!ØˆŒØ ˆÔØˆÔÝ$™wœwˆÔØ!ˆÔØ+/Ô+EˆŒÔ(Ý! $¤,Ñ/Ô/ˆŒ
ØŒ
×Ò˜K¨×)<Ò)<Ñ)>Ô)>¸xÔ)HÐOvÐOvÐOvÐOvð  dð  dð  dð  dð  koô  k~Ðñ  	ô  	ð  	ð  	ð  	r,   r   c                ó$   — t          |¦  «         d S r.   )Úprint)r)   Útexts     r*   Ú_printzDeepyService._print;   s   € Ýˆd‰Œˆˆˆr,   c                ó  — |dk    r|                       ¦   «          | j        5  | xj        dz  c_        | j                             | j        ||dœ¦  «         | j                             ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr7   é   ©ÚidÚtypeÚdata)Úsave_workspacer=   r@   r?   ÚappendÚ
notify_all)r)   Úkindre   s      r*   rW   zDeepyService.publish>   sÑ   € Ø�9ÒÐØ×ÒÑ!Ô!Ð!ØŒ_ð 	)ð 	)ØˆNŒN˜aÑˆNŒNØŒL×Ò t¤~¸tÈTÐ RÐ RÑSÔSÐSØŒO×&Ò&Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   ¢AA<Á<B ÂB c                óL   — |                       dt          |¦  «        ¦  «         d S )NÚerror)rW   r   )r)   rk   s     r*   Úpublish_errorzDeepyService.publish_errorF   s$   € Ø�Š�W�m¨EÑ2Ô2Ñ3Ô3Ð3Ð3Ð3r,   c                ó¬  — | j         5  | j        | j        t          | j        ¦  «        p t          | j        o| j        d         ¦  «        }}}d d d ¦  «         n# 1 swxY w Y   | j        5  |                      ¦   «         |                      ¦   «         }}d d d ¦  «         n# 1 swxY w Y   || j	        |  
                    ¦   «         t          j        | j        ¦  «        ||||| j        | j        j                             ¦   «         | j        j        | j        j        | j        j                             ¦   «         | j        j                             ¦   «         dœS )NÚpending)ÚcursorÚinstanceÚdisplay_settingsr   r7   Ú
workspacesÚprogressÚbusyÚrestorationÚsessionsÚactive_session_idÚactive_session_titleÚmulti_sessionÚ
deepy_type)r=   r@   rK   ÚboolrH   rP   r>   Úgallery_snapshotÚworkspace_snapshotrD   rq   r   Úbuild_sync_eventr/   r4   rU   Úlist_saved_sessionsÚstorage_session_idÚstorage_titleÚmulti_session_enabledÚget_deepy_type)r)   ro   rs   rt   r7   rr   s         r*   ÚsnapshotzDeepyService.snapshotI   s�  € àŒ_ð 	Uð 	UØ%)¤^°T´^ÅTÈ$Ì-ÑEXÔEXð  FUÕ\`ÐaeÔarð  bTÐw{ô  xIð  JSô  xTñ  ]Uô  ]U˜d�HˆFð	Uð 	Uð 	Uñ 	Uô 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uøøøð 	Uð 	Uð 	Uð 	Uð Ô ð 	Uð 	UØ"&×"7Ò"7Ñ"9Ô"9¸4×;RÒ;RÑ;TÔ;T�ZˆGð	Uð 	Uð 	Uñ 	Uô 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uøøøð 	Uð 	Uð 	Uð 	Uà ¨dÔ.?ÐUY×UjÒUjÑUlÔUlÕvzô  wLð  MQô  MZñ  w[ô  w[ð  hoð  Ið  W_ð  imð  ~Bô  ~Oð  ]aô  ]gô  ]r÷  ]Fò  ]Fñ  ]Hô  ]Hð  _cô  _lô  _ð  Y]ô  Yfô  Ytð  GKô  GQô  G\÷  Grò  Grñ  Gtô  Gtð  DHô  DNô  DY÷  Dhò  Dhñ  Djô  Djð  kð  kð  	ks$   ˆAAÁAÁAÁ*)BÂB#Â&B#é   c                ó¢  ‡— |d u p
|| j         k    }| j        5  |r-‰| j        k    r"| j        s| j                             |¬¦  «         | p+‰| j        k    p | j        o‰| j        d         d         dz
  k     }|sˆfd„| j        D ¦   «         cd d d ¦  «         S 	 d d d ¦  «         n# 1 swxY w Y   |                      ¦   «         }|d         d|dœgS )	N)Útimeoutr   rc   ra   c                ó,   •— g | ]}|d          ‰k    ¯|‘ŒS )rc   © )Ú.0Úeventro   s     €r*   ú
<listcomp>z-DeepyService.events_after.<locals>.<listcomp>\   s'   ø€ ÐPÐPÐP %¸5À¼;ÈÒ;OÐ;O˜Ð;OÐ;OÐ;Or,   ro   r„   rb   )rD   r=   r@   rO   Úwaitr?   r„   )r)   ro   r‡   rp   Úsame_instanceÚexpiredr„   s    `     r*   Úevents_afterzDeepyService.events_afterS   sy  ø€ ð ! DÐ(ÐI¨H¸Ô8IÒ,IˆØŒ_ð 	Qð 	QØð 6 ¨4¬>Ò!9Ð!9À$Ä-Ð!9Ø”×$Ò$¨WÐ$Ñ5Ô5Ð5Ø'Ð'Ð{¨6°D´NÒ+BÐ{ÀtÄ|ÐGzÐX^ÐaeÔamÐnoÔapÐquÔavÐyzÑazÒXzˆGØð QØPÐPÐPÐP¨4¬<ÐPÑPÔPð	Qð 	Qð 	Qð 	Qñ 	Qô 	Qð 	Qð 	QðQð		Qð 	Qð 	Qñ 	Qô 	Qð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qøøøð 	Qð 	Qð 	Qð 	Qð —=’=‘?”?ˆØ Ô)°:ÀxÐPÐPÐQÐQs   ˜A3B%Â%B)Â,B)c                óÔ   — |                       d| j        j                             ¦   «         | j        j        | j        j        | j        j                             ¦   «         dœ¦  «         d S )Nrv   )rv   rw   rx   ry   )rW   r4   rU   r   r/   r€   r�   r‚   r(   s    r*   Úpublish_sessionszDeepyService.publish_sessions`   s›   € Ø�Š�Z¨d¬jÔ.C×.WÒ.WÑ.YÔ.YÐptÔp}ô  qQð  koô  kxô  kFð  Y]ô  Ycô  Yn÷  YDò  YDñ  YFô  YFð  "Gð  "Gñ  	Hô  	Hð  	Hð  	Hð  	Hr,   c                óÖ   — | j                              ¦   «         }t          |                     dd¦  «        ¦  «        t          |                     t          t
          ¦  «        ¦  «        dœS )NÚdeepy_compact_actionsT)Úcompact_actionsÚgallery_media_viewer)r4   Úget_server_configr{   Úgetr   r
   )r)   Úconfigs     r*   rq   zDeepyService.display_settingsc   sw   € Ø”×-Ò-Ñ/Ô/ˆÝ#'¨¯
ª
Ð3JÈDÑ(QÔ(QÑ#RÔ#RÕlpÐqw×q{Òq{õ  }[õ  ]ñ  r@ô  r@ñ  mAô  mAð  Bð  Bð  	Br,   c                óV  — t          |¦  «        dhk    st          |d         ¦  «        t          urt          d¦  «        ‚| j        j                             |d         ¦  «         |                      ¦   «         }|                      d|¦  «         | j	         
                    d¦  «         |S )Nr•   z"compact_actions must be a boolean.rq   zdeepy-gradio)rG   rd   r{   Ú
ValueErrorr4   rU   Úset_compact_actionsrq   rW   rX   Úrefresh)r)   r%   Úresults      r*   Úupdate_display_settingsz$DeepyService.update_display_settingsg   sŸ   € Ýˆv‰;Œ;Ð,Ð-Ò-Ð-µ°fÐ=NÔ6OÑ1PÔ1PÕX\Ð1\Ð1\ÝÐAÑBÔBÐBØŒ
Ô×1Ò1°&Ð9JÔ2KÑLÔLÐLØ×&Ò&Ñ(Ô(ˆØ�ŠÐ'¨Ñ0Ô0Ð0ØŒ
×Ò˜>Ñ*Ô*Ð*Øˆr,   c                ó  — t          j        | j                             ¦   «         ¦  «        }|                     | j        j        ¦  «         t          j        || j        j         	                    ¦   «         dk    ¬¦  «        S )NÚprime)r¡   )
r	   Ú(get_persisted_assistant_tool_ui_settingsr4   r—   Úupdater/   Útool_ui_settingsÚget_simplified_settings_formrU   rƒ   )r)   Úcurrents     r*   r'   zDeepyService._settings_formp   sd   € ÝÔFÀtÄz×GcÒGcÑGeÔGeÑfÔfˆØ�Š�t”}Ô5Ñ6Ô6Ð6ÝÔ7¸ÀtÄzÔG\×GkÒGkÑGmÔGmÐqxÒGxÐyÑyÔyÐyr,   c                ó¾   — | j         5  |                      ¦   «         }| j        j        d                              ¦   «         |d<   |cd d d ¦  «         S # 1 swxY w Y   d S )Nr$   Úsync)r>   r'   rX   r„   )r)   rž   s     r*   ÚsettingszDeepyService.settingsu   s¢   € ØÔ ð 	ð 	Ø×(Ò(Ñ*Ô*ˆFØ!œZÔ-¨kÔ:×CÒCÑEÔEˆF�6‰NØð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˆ=AÁAÁAc                ób   ‡ — ‰ j         j         d                              ||ˆ fd„¦  «        j        S )Nr$   c                óH   •— t          ‰                     | ¦  «        ¦  «        S r.   )r   Úupdate_settings)Úmergedr)   s    €r*   r+   z.DeepyService.submit_settings.<locals>.<lambda>|   s    ø€ ÕUZÐ[_×[oÒ[oÐpvÑ[wÔ[wÑUxÔUx€ r,   )rX   ÚsubmitÚoutput)r)   Úbaseliner%   s   `  r*   Úsubmit_settingszDeepyService.submit_settings{   s8   ø€ ØŒzÔ Ô,×3Ò3°H¸fÐFxÐFxÐFxÐFxÑyÔyô  Að  	Ar,   T)Ú
simplifiedÚpersistc               óê  — | j         5  |r't          j        ||                      ¦   «         ¦  «         t          j        | j                             ¦   «         ¦  «        }|                     | j        j	        ¦  «         |                     |¦  «          | j        j
        j        | j        fi |¤d|i¤Ž |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      d|¦  «         |S )Nr³   r©   )r>   r	   Úvalidate_simplified_settingsr©   r¢   r4   r—   r£   r/   r¤   rU   Úupdate_tool_ui_settingsr6   rW   )r)   r%   r²   r³   r¦   rž   s         r*   r¬   zDeepyService.update_settings~   s!  € ØÔ ð 	%ð 	%Øð RÝÔ8¸ÀÇÂÁÄÑQÔQÐQÝ!ÔJÈ4Ì:×KgÒKgÑKiÔKiÑjÔjˆGØ�NŠN˜4œ=Ô9Ñ:Ô:Ð:Ø�NŠN˜6Ñ"Ô"Ð"Ø9ˆDŒJÔ!Ô9¸$¼+ÐbÐbÈÐbÐbÐZaÐbÐbÐbÐbØ—]’]‘_”_ˆFð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	�Š�Z Ñ(Ô(Ð(Øˆs   ˆB>CÃCÃCFÚYou)ÚsteeringÚmediaÚauthorc          
     ó‚  ‡ ‡‡‡‡‡— ‰ j         5  ‰ j        rt          d¦  «        ‚‰‰ j        v r7‰ j        ‰         ‰‰fk    rt          d¦  «        ‚‰‰ j        v cd d d ¦  «         S ‰‰f‰ j        ‰<   t          ‰ j        ¦  «        dk    r‰ j                             d¬¦  «         ‰ j        5  t          ‰ j        p‰ j	        o‰ j	        d         ¦  «        }|r‰ j         
                    ‰¦  «         ‰                      ˆˆˆ ˆˆˆfd„‰g¦  «         d d d ¦  «         n# 1 swxY w Y   |cd d d ¦  «         S # 1 swxY w Y   d S )NzDeepy is shutting down.z6This submission id already belongs to another request.i   F)Úlastrn   c                 ó6   •— ‰                      ‰‰‰‰‰ ¦  «        S r.   )Ú_run_request)rº   r¹   r)   r¸   Úsubmission_idr^   s   €€€€€€r*   r+   z%DeepyService.submit.<locals>.<lambda>™   s    ø€ ¨4×+<Ò+<¸TÀ=ÐRZÐ\aÐciÑ+jÔ+j€ r,   )r>   rO   r›   rE   rF   ÚlenÚpopitemr=   r{   rP   rg   Ú_start_worker)r)   r^   r¿   r¸   r¹   rº   Úqueueds   `````` r*   r®   zDeepyService.submitŠ   s'  øøøøøø€ ØÔ ð 	ð 	ØŒ}ð <Ý Ð!:Ñ;Ô;Ð;Ø Ô 1Ð1Ð1ØÔ$ ]Ô3¸¸hÐ7GÒGÐGÝ$Ð%]Ñ^Ô^Ð^Ø$¨Ô(EÐEð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 15°hÐ/?ˆDÔ˜mÑ,Ý�4Ô$Ñ%Ô%¨Ò,Ð,ØÔ!×)Ò)¨uÐ)Ñ5Ô5Ð5Ø”ð }ð }Ý˜dÔ;ÐsÀÔ@QÐ@rÐVZÔVgÐhqÔVrÑtÔt�Øð HØÔ1×8Ò8¸ÑGÔGÐGØ×"Ò"Ð#jÐ#jÐ#jÐ#jÐ#jÐ#jÐ#jÐ#jÐ#jÐmzÐl{Ñ|Ô|Ð|ð	}ð }ð }ñ }ô }ð }ð }ð }ð }ð }ð }øøøð }ð }ð }ð }ð
 ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s>   ŽA
D4Á%AD4Â+A$DÄD4ÄD	ÄD4Ä"D	Ä#D4Ä4D8Ä;D8r‰   c                ó    — t          j        | j        ||fdd¬¦  «        }| j                             |¦  «         |                     ¦   «          d S )NzDeepy web requestT)ÚtargetÚargsÚnameÚdaemon)r:   ÚThreadÚ_run_workerrH   ÚaddÚstart)r)   ÚtaskÚacknowledged_idsÚworkers       r*   rÂ   zDeepyService._start_workerœ   sV   € ÝÔ!¨Ô)9ÀÐGWÐ@XÐ_rÐ{ð  Añ  Aô  AˆØŒ×Ò˜&Ñ!Ô!Ð!Ø�Š‰Œˆˆˆr,   c           
     ón  — 	  |¦   «          n?# t           $ r2}t          j        ¦   «          |                      |¦  «         Y d }~nd }~ww xY w	 |                      dt          j        | j        |¬¦  «        ¦  «         |                      d|                      ¦   «         ¦  «         |  	                    ¦   «          |  
                    ¦   «          | j        5  | j                             t          j        ¦   «         ¦  «         || j        k    r!| j        d         r|                      ¦   «          d d d ¦  «         n# 1 swxY w Y   d S d S # | j        5  | j                             t          j        ¦   «         ¦  «         || j        k    r!| j        d         r|                      ¦   «          d d d ¦  «         w # 1 swxY w Y   w xY w# 	 |                      dt          j        | j        |¬¦  «        ¦  «         |                      d|                      ¦   «         ¦  «         |  	                    ¦   «          |  
                    ¦   «          | j        5  | j                             t          j        ¦   «         ¦  «         || j        k    r!| j        d         r|                      ¦   «          d d d ¦  «         w # 1 swxY w Y   w # | j        5  | j                             t          j        ¦   «         ¦  «         || j        k    r!| j        d         r|                      ¦   «          d d d ¦  «         w # 1 swxY w Y   w xY wxY w)Nr   )Úacknowledged_submission_idsr7   rn   )Ú	ExceptionÚ	tracebackÚ	print_excrl   rW   r   r~   r/   r|   Úsave_sessionr’   r=   rH   Údiscardr:   Úcurrent_threadÚ_resume_sessionrP   Ú_finish_restoration)r)   rÍ   rÎ   Úexcs       r*   rÊ   zDeepyService._run_worker¡   s  € ð	3ØˆD‰FŒFˆFˆFøÝð 	$ð 	$ð 	$ÝÔÑ!Ô!Ð!Ø×Ò˜sÑ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#øøøøð	$øøøð	3Ø—’˜V¥TÔ%:¸4¼=ÐfvÐ%wÑ%wÔ%wÑxÔxÐxØ—’˜Y¨×(=Ò(=Ñ(?Ô(?Ñ@Ô@Ð@Ø×!Ò!Ñ#Ô#Ð#Ø×%Ò%Ñ'Ô'Ð'à”_ð 3ð 3Ø”M×)Ò)­)Ô*BÑ*DÔ*DÑEÔEÐEØ˜tÔ3Ò3Ð3¸Ô8IÈ)Ô8TÐ3Ø×0Ò0Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ø�T”_ð 3ð 3Ø”M×)Ò)­)Ô*BÑ*DÔ*DÑEÔEÐEØ˜tÔ3Ò3Ð3¸Ô8IÈ)Ô8TÐ3Ø×0Ò0Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3øøøøð	3Ø—’˜V¥TÔ%:¸4¼=ÐfvÐ%wÑ%wÔ%wÑxÔxÐxØ—’˜Y¨×(=Ò(=Ñ(?Ô(?Ñ@Ô@Ð@Ø×!Ò!Ñ#Ô#Ð#Ø×%Ò%Ñ'Ô'Ð'à”_ð 3ð 3Ø”M×)Ò)­)Ô*BÑ*DÔ*DÑEÔEÐEØ˜tÔ3Ò3Ð3¸Ô8IÈ)Ô8TÐ3Ø×0Ò0Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ø�T”_ð 3ð 3Ø”M×)Ò)­)Ô*BÑ*DÔ*DÑEÔEÐEØ˜tÔ3Ò3Ð3¸Ô8IÈ)Ô8TÐ3Ø×0Ò0Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3øøøøøøsÒ   ‚
 ŒG �
A	—(A¿G ÁA	Á	G ÁA?E ÃAD7Ä7D;Ä>D;ÅF>ÅAF2Æ&F>Æ2F6Æ6F>Æ9F6Æ:F>ÇL4ÇA?J9ÉL4É	AJ-Ê!L4Ê-J1Ê1L4Ê4J1Ê5L4Ê9L1ËAL%ÌL1Ì%L)Ì)L1Ì,L)Ì-L1Ì1L4c                ó–  ‡ ‡— ‰ j         5  ‰ j                              ˆ ˆfd„¦  «         ‰‰ j        v }d d d ¦  «         n# 1 swxY w Y   	 ‰ j        rZ	 |rU‰ j         5  ‰ j                             ‰¦  «         ‰ j                              ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S d S ‰ j        j        }‰ j        j	         
                    ‰ j        |‰|||¬¦  «        D ]µ\  }}	|rT‰ j         5  ‰ j                             ‰¦  «         ‰ j                              ¦   «          d d d ¦  «         n# 1 swxY w Y   d}‰                      ||	¦  «         ‰ j        j        |k    r4‰ j        j        }‰                      ¦   «          ‰                      ¦   «          Œ¶	 |rU‰ j         5  ‰ j                             ‰¦  «         ‰ j                              ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S d S # |rS‰ j         5  ‰ j                             ‰¦  «         ‰ j                              ¦   «          d d d ¦  «         w # 1 swxY w Y   w w xY w)Nc                 ón   •— ‰ j         p-‰ j        o‰ j        d          o‰ j         p‰ j        d         ‰k    S )Nrn   r   )rO   rP   rF   )r)   r¿   s   €€r*   r+   z+DeepyService._run_request.<locals>.<lambda>µ   ss   ø€ ¨T¬]ð  .VÀDÔDUÐDvÐZ^ÔZkÐluÔZvÐ?wð  @Uð  BFô  B_ð  ~_ð  ~Tð  cgô  c@ð  ABô  cCð  GTò  cT€ r,   )r¹   rº   F)r=   Úwait_forrF   rO   Úremoverh   r/   r€   r4   rU   Úiter_commandsr6   Úcommandr’   Úpublish_workspaces)
r)   r^   r¿   r¸   r¹   rº   rÃ   Ú
session_idrà   re   s
   ` `       r*   r¾   zDeepyService._run_request³   s   øø€ ØŒ_ð 	Dð 	DØŒO×$Ò$ð  &Vð  &Vð  &Vð  &Vð  &Vñ  Wô  Wð  WØ" dÔ&CÐCˆFð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð	1ØŒ}ð Øð  ð 1Ø”_ð 1ð 1ØÔ1×8Ò8¸ÑGÔGÐGØ”O×.Ò.Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1ð1ð 1ð œÔ9ˆJØ!%¤Ô!6×!DÒ!DÀTÄ[ÐRVÐXeÐgoÐw|ð  FLÐ!Dñ  "Mô  "Mð .ð .‘�˜Øð #ð œð 5ð 5ØÔ5×<Ò<¸]ÑKÔKÐKØœ×2Ò2Ñ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð #�FØ—’˜W dÑ+Ô+Ð+Ø”=Ô3°zÒAÐAØ!%¤Ô!A�JØ×)Ò)Ñ+Ô+Ð+Ø×+Ò+Ñ-Ô-Ð-øð.ð ð 1Ø”_ð 1ð 1ØÔ1×8Ò8¸ÑGÔGÐGØ”O×.Ò.Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1ð1ð 1øˆvð 1Ø”_ð 1ð 1ØÔ1×8Ò8¸ÑGÔGÐGØ”O×.Ò.Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð1øøøs�   Š(>¾AÁAÁ
G1 Á4BÂB Â#B Â+AG1 Ã/4D/Ä#G1 Ä/D3	Ä3G1 Ä6D3	Ä7A G1 Æ!4G"Ç"G&Ç)G&Ç1
IÇ;4H;È/IÈ;H?È?IÉH?ÉIc           
     ó|  ‡ — 	 ‰ j         j                             ‰ j        ¦  «         ‰                      dt          j        d d‰ j        ¬¦  «        ¦  «         n5# ‰                      dt          j        d d‰ j        ¬¦  «        ¦  «         w xY wdˆ fd„	}‰ j         j                             ‰ j        |¬¦  «        D ]}Œd S )Nr   F©ÚvisibleÚsessionc                óv   •— ‰j         d         r‰                     ¦   «          ‰                     | |¦  «         d S )Nrn   )rP   rÙ   rà   )rà   re   r)   s     €r*   Úresumed_commandz5DeepyService._resume_session.<locals>.resumed_commandÓ   s?   ø€ ØÔ  Ô+ð +à×(Ò(Ñ*Ô*Ð*Ø�LŠL˜ $Ñ'Ô'Ð'Ð'Ð'r,   )Úcommand_callbackr.   )	r4   rU   Ú prefill_restored_session_contextr6   rW   r   Úbuild_status_eventr/   Úresume_restored_action)r)   rè   Ú_s   `  r*   rØ   zDeepyService._resume_sessionÎ   sØ   ø€ ð	fØŒJÔ!×BÒBÀ4Ä;ÑOÔOÐOà�LŠL˜¥Ô!8¸ÀuÐVZÔVcÐ!dÑ!dÔ!dÑeÔeÐeÐeøˆD�LŠL˜¥Ô!8¸ÀuÐVZÔVcÐ!dÑ!dÔ!dÑeÔeÐeÐeøøøð	(ð 	(ð 	(ð 	(ð 	(ð 	(ð
 ”Ô&×=Ò=¸d¼kÐ\kÐ=ÑlÔlð 	ð 	ˆAØð	ð 	s   ƒ$A Á2B
c                ó`   — i | j         ¥ddi¥| _         |                      d| j         ¦  «         d S )Nrn   Fru   )rP   rW   r(   s    r*   rÙ   z DeepyService._finish_restorationÛ   s9   € ØC˜tÔ0ÐC°)¸UÐCÐCˆÔØ�Š�] DÔ$5Ñ6Ô6Ð6Ð6Ð6r,   c                ól   — | j         �*| j         d         rt          | j         d         › d�¦  «        ‚d S d S )Nrn   r^   z!. Wait for restoration to finish.)rP   r   r(   s    r*   Úrequire_restoredzDeepyService.require_restoredß   sE   € ØÔÐ(¨TÔ->¸yÔ-IÐ(Ý˜tÔ0°Ô8Ð[Ð[Ð[Ñ\Ô\Ð\ð )Ð(Ð(Ð(r,   c                óp   — | j         5  |                      |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r.   )rJ   Ú_process_inline_queue)r)   re   s     r*   Ú_run_generation_commandz$DeepyService._run_generation_commandã   sƒ   € ØÔ"ð 	-ð 	-Ø×&Ò& tÑ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s   ˆ+«/²/c                ó  ‡ ‡— |dk    r‰�‰                       d‰¦  «         d S |dk    r;‰ j        5  ‰                      ˆˆ fd„¦  «         d d d ¦  «         d S # 1 swxY w Y   d S |dk    rD‰ j                             ‰¦  «         ‰                       d‰                      ¦   «         ¦  «         d S |dk    r7‰ j        j                             d‰ j	        t          ‰pd	¦  «        ¦  «         d S |d
k    r‰                      ‰¦  «         d S d S )NÚchat_outputr   Úload_queue_triggerc                 ó.   •— ‰                      ‰ ¦  «        S r.   )ró   )re   r)   s   €€r*   r+   z&DeepyService.command.<locals>.<lambda>î   s   ø€ ¨4×+GÒ+GÈÑ+MÔ+M€ r,   Úrefresh_galleryr7   Úabort_client_idÚabort_generationr   rk   )rW   r>   rÂ   r7   Úsync_refresh_pathr|   r4   Ú	callbacksÚemitr6   Ústrrl   ©r)   rà   re   s   ` `r*   rà   zDeepyService.commandç   s�  øø€ Ø�mÒ#Ð#¨Ð(8Ø�LŠL˜ Ñ&Ô&Ð&Ð&Ð&ØÐ,Ò,Ð,ð Ô$ð Oð OØ×"Ò"Ð#MÐ#MÐ#MÐ#MÐ#MÑNÔNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oð Oð OàÐ)Ò)Ð)ØŒL×*Ò*¨4Ñ0Ô0Ð0Ø�LŠL˜ D×$9Ò$9Ñ$;Ô$;Ñ<Ô<Ð<Ð<Ð<ØÐ)Ò)Ð)ØŒJÔ ×%Ò%Ð&8¸$¼+ÅsÈ4È:ÐSUÁÄÑWÔWÐWÐWÐWØ˜ÒÐØ×Ò˜tÑ$Ô$Ð$Ð$Ð$ð  Ðs   °AÁAÁAc           	     ó  — | j         5  |dv r£|dk    r | j        |Ž  n;|dk    r| j                             |¦  «         n| j                             |¦  «         ||| j        j        | j        | j                             d| j        ¬¦  «        dœ| _        |                      d| j        ¦  «         n=|dk    r7d| _        t          ¦   «         | _        d | _        |                      dd ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	N>   Ústatusr!   rs   rs   r  T)ÚcompactÚaborting)rd   re   Údescriptionr  ÚhtmlÚexitF)
r=   rL   r  Úset_downloadr  rN   ÚrenderrK   rW   r   rÿ   s      r*   rM   zDeepyService._generation_event÷   s™  € ØŒ_ð 	/ð 	/ØÐ<Ð<Ð<Ø˜jÒ(Ð(Ø&�DÔ&¨Ð-Ð-Ð-Ø Ò(Ð(ØÔ&×-Ò-¨dÑ3Ô3Ð3Ð3àÔ&×3Ò3°DÑ9Ô9Ð9Ø*1¸4ÐPTÔPbÔPnð  }Aô  }Vð  `dô  `r÷  `yò  `yð  BFð  QUô  Qjð  `yñ  `kô  `kð  "lð  "l�”Ø—’˜Z¨¬Ñ8Ô8Ð8Ð8Ø˜FÒ"Ð"Ø,1�Ô)Ý%2¡_¤_�Ô"Ø!%�”Ø—’˜Z¨Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/s   ˆC%C:Ã:C>ÄC>c                ó.  ‡— t          j        ¦   «         }|                      ¦   «          |dv r#| j        �t	          | j        j        › d�¦  «        ‚| j        j        }|dk    ry| j        5  | j	        r?| j
        s8d| _
        |                      dd¦  «         |                      d| j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ¦   «         S |dk    rQ|                     | j        ¦  «        }| j                             d	¦  «        r|                      d| j        ¦  «         �nS|d
k    r|                     | j        ¦  «        }�n1|dk    r/|                     | j        t'          j        ‰¦  «        ¦  «        }�nü|dk    ro| j        5  |                     | j        ‰d         ‰d         ¦  «         |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      ¦   «         S |dk    �r| j        5  |                      ¦   «          ‰                     d¦  «        dus‰                     d¦  «        st3          d¦  «        ‚|                     | j        ‰d         ¦  «        }|d         �D|                      d|d         ¦  «         |                      d|                      ¦   «         ¦  «         |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      ¦   «         S |dv �ri| j        5  t          j        ¦   «         }|                      ¦   «          |dk    r/|                     | j        ¦  «        }t          j        ¦   «         }�nìt=          ˆfd„|                     ¦   «         D ¦   «         ‰d         ¦  «        }	| j         dz   d|	› �ddœ| _!        |                      d| j!        ¦  «         	  |j"        | j        ‰d         fddi| j#        �d| ini ¤Ž}
|                      d|
d         ¦  «         |                      dtI          j%        d| j&        j'        › �d| j&        ¬¦  «        ¦  «         |                      d |  (                    ¦   «         ¦  «         |                      d|                      ¦   «         ¦  «         |                      ¦   «          |  )                    ¦   «          nS# tT          $ rF |                      dtI          j%        d d!| j&        ¬"¦  «        ¦  «         |  +                    ¦   «          ‚ w xY w|  ,                    | j-        ¦  «         |                      ¦   «         cd d d ¦  «         S 	 d d d ¦  «         n# 1 swxY w Y   nt3          d#¦  «        ‚|D ]-}t]          |t^          ¦  «        r|                      d|¦  «         Œ.|dv rx|                      d |  (                    ¦   «         ¦  «         |                      d|                      ¦   «         ¦  «         |                      ¦   «          |  )                    ¦   «          |                      ¦   «         }t          j        ¦   «         }|dk    r7||z
  dk    r.ta          d$||z
  d%›d&||z
  d%›d'||z
  d%›d(||z
  d%›d)�	d¬*¦  «         |S )+N>   ÚresetÚdeleteÚrenameÚresumez6 is using Deepy. Change conversation once it finishes.ÚabortTr  u   Aborting generationâ€¦rù   ÚstopÚai_ÚpauserÃ   r  rc   Útitler  Ú	confirmedz*Confirm deletion of a saved Deepy session.r‹   r   r©   >   r
  r  r
  c              3  óL   •K  — | ]}|d          ‰d          k    ¯|d         V — ŒdS )rc   r  Nr‰   )rŠ   ÚitemÚpayloads     €r*   ú	<genexpr>z'DeepyService.control.<locals>.<genexpr>5  s?   øè è € Ð!|Ð!|°DÐ`dÐeiÔ`jÐnuÐvzÔn{Ò`{Ð`{ $ w¤-Ð`{Ð`{Ð`{Ð`{Ð!|Ð!|r,   ra   zLoading Session )rc   r^   rn   ru   Údefer_context_prefillÚworkspace_hostÚsession_loading)ri   ræ   r7   Frä   zUnknown Deepy action.z[Deepy][New session] total=z.3fzs service lock=zs reset=zs publish/views=Ús)Úflush)1ÚtimeÚperf_counterrð   rQ   r   Úownerr4   rU   r>   Úgeneration_runningrN   rM   rà   r9   r„   Ústop_air6   Ú
startswithÚ_toggle_pause_aiÚjsonÚdumpsÚrename_saved_sessionr’   Úrequire_idler˜   r›   Údelete_saved_sessionrW   r©   Úreset_aiÚnextr   r@   rP   Úresume_saved_sessionrr   r   rë   r/   r�   r|   rá   rÒ   rÙ   rÂ   rØ   Ú
isinstancerþ   r]   )r)   Úactionr  ÚstartedrU   rž   ÚdeletedÚlockedÚreset_finishedr  ÚresumedÚvalueÚfinisheds     `          r*   ÚcontrolzDeepyService.control  sƒ  ø€ ÝÔ#Ñ%Ô%ˆØ×ÒÑÔÐØÐ<Ð<Ð<ÀÔAQÐA]Ý˜tÔ/Ô5ÐmÐmÐmÑnÔnÐnØ”ZÔ*ˆ
Ø�WÒÐØÔ$ð Wð WØÔ*ð W°4Ô3Lð WØ04�DÔ-Ø×*Ò*¨8Ð5MÑNÔNÐNØ—L’LÐ!2°DÔ4UÑVÔVÐVð	Wð Wð Wñ Wô Wð Wð Wð Wð Wð Wð Wøøøð Wð Wð Wð Wð
 —=’=‘?”?Ð"Ø�vÒÐØ×'Ò'¨¬Ñ4Ô4ˆFØÔ0×;Ò;¸EÑBÔBð SØ—’Ð.°Ô0QÑRÔRÐRùØ�wÒÐØ×0Ò0°´Ñ=Ô=ˆF‰FØ�xÒÐØ×'Ò'¨¬µT´ZÀÑ5HÔ5HÑIÔIˆF‰FØ�xÒÐØÔ$ð (ð (Ø×/Ò/°´¸WÀT¼]ÈGÐT[ÔL\Ñ]Ô]Ð]Ø×%Ò%Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð —=’=‘?”?Ð"Ø�xÒÑØÔ$ð (ð (Ø×!Ò!Ñ#Ô#Ð#Ø—;’;˜{Ñ+Ô+°4Ð7Ð7¸w¿{º{È4Ñ?PÔ?PÐ7Ý$Ð%QÑRÔRÐRØ$×9Ò9¸$¼+ÀwÈtÄ}ÑUÔU�Ø˜7Ô#Ð/Ø—L’L ¨°Ô)9Ñ:Ô:Ð:Ø—L’L ¨T¯]ª]©_¬_Ñ=Ô=Ð=Ø×%Ò%Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð —=’=‘?”?Ð"ØÐ*Ð*Ñ*ØÔ$ð +ð +ÝÔ*Ñ,Ô,�Ø×!Ò!Ñ#Ô#Ð#Ø˜WÒ$Ð$Ø'×0Ò0°´Ñ=Ô=�FÝ%)Ô%6Ñ%8Ô%8�N‘Nå Ð!|Ð!|Ð!|Ð!|¸J×<ZÒ<ZÑ<\Ô<\Ð!|Ñ!|Ô!|ð  Fð  GKô  Lñ  Mô  M�EØ/3¬~ÀÑ/AÐKeÐ^cÐKeÐKeÐrvÐ(wÐ(w�DÔ%Ø—L’L °Ô0AÑBÔBÐBðØ"A *Ô"AÀ$Ä+ÈwÐW[Ì}ð  #ð  #Ðtxð  #ð  Z^ô  Zið  Zuð  Oð  QUð  ~Vð  ~Vð  {}ð  #ð  #˜ØŸš V¨W°WÔ-=Ñ>Ô>Ð>ØŸš V­TÔ-DÐEuÐX\ÔXeÔXsÐEuÐEuð  }Nð  X\ô  Xeð  .fñ  .fô  .fñ  gô  gð  gØŸš Y°×0EÒ0EÑ0GÔ0GÑHÔHÐHØŸš Z°·²±´ÑAÔAÐAØ×-Ò-Ñ/Ô/Ð/Ø×/Ò/Ñ1Ô1Ð1Ð1øÝ$ð ð ð ØŸš V­TÔ-DÀTÐSXÐbfÔboÐ-pÑ-pÔ-pÑqÔqÐqØ×0Ò0Ñ2Ô2Ð2Øðøøøð
 ×&Ò& tÔ';Ñ<Ô<Ð<ØŸ=š=™?œ?ð1+ð +ð +ð +ñ +ô +ð +ð +ð
 #ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +øõ4 Ð4Ñ5Ô5Ð5Øð 	,ð 	,ˆEÝ˜%¥Ñ%Ô%ð ,Ø—’˜V UÑ+Ô+Ð+øØÐ(Ð(Ð(Ø�LŠL˜ D×$9Ò$9Ñ$;Ô$;Ñ<Ô<Ð<Ø�LŠL˜ T§]¢]¡_¤_Ñ5Ô5Ð5Ø×!Ò!Ñ#Ô#Ð#Ø×#Ò#Ñ%Ô%Ð%Ø—’‘”ˆÝÔ$Ñ&Ô&ˆØ�WÒÐ ¨GÑ!3°qÒ!8Ð!8Ýð  {°¸Ñ0@ð  {ð  {ð  {ÐU[Ð\cÑUcð  {ð  {ð  {Ðqð  AGñ  rGð  {ð  {ð  {ð  ]eð  ftñ  ]tð  {ð  {ð  {ð  {ð  CGð  Hñ  Hô  Hð  HØˆse   Á)AB<Â<C ÃC Æ=GÇG#Ç&G#ÈCK)Ë)K-Ë0K-ÌCU*ÏC8SÓU*ÓAT Ô 0U*Õ*U.Õ1U.c                ó<   — t          | j        p| j        d u¦  «        S r.   )r{   r9   rK   r(   s    r*   r   zDeepyService.generation_runningW  s   € å�DÔ5ÐS¸¼ÈtÐ9SÑTÔTÐTr,   c                óŽ   — | j         rt          d¦  «        ‚| j        s| j        j        s| j        j        rt          d¦  «        ‚d S )NzPA generation is in progress. Wait for it to finish before changing conversation.zYDeepy is active in this conversation. Wait for it to finish before changing conversation.)r   r   rH   r/   Úworker_activeÚqueued_job_countr(   s    r*   r'  zDeepyService.require_idle[  s]   € ØÔ"ð 	pÝÐnÑoÔoÐoØŒ=ð 	y˜DœMÔ7ð 	y¸4¼=Ô;Yð 	yÝÐwÑxÔxÐxð	yð 	yr,   Údeepy)ÚcontextÚsession_epochÚ	from_chatc               óø  ‡	— | j         5  |�|| j        j        k    rt          d¦  «        ‚|dk    r|                      ¦   «          | j        �4| j                             | j        t          |¦  «        g¦  «        d         }| j	         
                    t          |¦  «        ¦  «        }t          j        |d         d¦  «        }|d         d         d         |d         |d	         d
œŠ	| j        j        5  | j        j        }t          ˆ	fd„|D ¦   «         d ¦  «        }|€|                     ‰	¦  «         ‰	}|rd|d<   d d d ¦  «         n# 1 swxY w Y   |r-|                      dt%          j        | j        ¦  «        ¦  «         |                      d|                      ¦   «         ¦  «         |                      ¦   «          | j	                             |d         d         ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )NzFThe Deepy session changed during upload. Please import the file again.r:  r   Úrecordr1   r©   Úgallery_media_idsÚlabelÚ
media_type)Úmedia_idr  rB  c              3  ó@   •K  — | ]}|d          ‰d          k    ¯|V — ŒdS )rC  Nr‰   )rŠ   r  Úentrys     €r*   r  z,DeepyService.import_media.<locals>.<genexpr>n  s9   øè è € Ð cÐ c¨$¸TÀ*Ô=MÐQVÐWaÔQbÒ=bÐ=b Ð=bÐ=bÐ=bÐ=bÐ cÐ cr,   TÚchat_uploadr   r7   Úpath)r>   r/   Ú
chat_epochr   Úprepare_media_workspacerr   ÚadoptÚworkspace_idrþ   r7   Úadd_pathr   Úmark_media_accessÚ	turn_lockÚpending_chat_mediar*  rg   rW   r   Úbuild_pending_upload_eventr|   rÕ   rC  )
r)   rG  r;  r<  r=  rž   r?  rn   ÚexistingrE  s
            @r*   Úimport_mediazDeepyService.import_mediaa  sš  ø€ ØÔ ð 	Cð 	CØÐ(¨]¸d¼mÔ>VÒ-VÐ-VÝÐ hÑiÔiÐiØ˜'Ò!Ð!Ø×,Ò,Ñ.Ô.Ð.ØŒÐ*Ø”×,Ò,¨TÔ->ÅÀTÁÄÀÑLÔLÈQÔO�Ø”\×*Ò*­3¨t©9¬9Ñ5Ô5ˆFÝ#Ô5°f¸XÔ6FÈÑOÔOˆFØ!'¨
Ô!3Ð4GÔ!HÈÔ!KÐV\Ð]dÔVeÐu{ð  }Iô  vJð  Kð  KˆEØ”Ô(ð 3ð 3Øœ-Ô:�ÝÐ cÐ cÐ cÐ c°'Ð cÑ cÔ cÐeiÑjÔj�ØÐ#Ø—N’N 5Ñ)Ô)Ð)Ø$�HØð 3Ø.2�H˜]Ñ+ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð ð UØ—’˜V¥TÔ%DÀTÄ]Ñ%SÔ%SÑTÔTÐTØ�LŠL˜ D×$9Ò$9Ñ$;Ô$;Ñ<Ô<Ð<Ø×ÒÑÔÐØ”<×(Ò(¨°Ô)9¸&Ô)AÑBÔBð-	Cð 	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cs8   ‰C)G/Ã2A	EÄ;G/ÅE	ÅG/ÅE	ÅBG/Ç/G3Ç6G3c                ó@  — | j         5  |                      ¦   «          || j        j        k    rt	          d¦  «        ‚| j        j        5  | j        j        }t          t          |¦  «        dz
  dd¦  «        D ]4}||          	                    d¦  «        r| 
                    |¦  «          nŒ5d d d ¦  «         n# 1 swxY w Y   t          j        | j        ¦  «        }|                      d|¦  «         |                      ¦   «          |cd d d ¦  «         S # 1 swxY w Y   d S )Nz,The Deepy session changed. Please try again.ra   éÿÿÿÿrF  r   )r>   rð   r/   r0   r   rN  rO  ÚrangerÀ   r˜   Úpopr   rP  rW   rÕ   )r)   r0   rn   Úindexr‹   s        r*   Úremove_last_chat_uploadz$DeepyService.remove_last_chat_uploadz  s£  € ØÔ ð 	ð 	Ø×!Ò!Ñ#Ô#Ð#Ø $¤-Ô"?Ò?Ð?ÝÐ NÑOÔOÐOØ”Ô(ð ð Øœ-Ô:�Ý"¥3 w¡<¤<°!Ñ#3°R¸Ñ<Ô<ð ð �EØ˜u”~×)Ò)¨-Ñ8Ô8ð ØŸš EÑ*Ô*Ð*Ø˜ððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô3°D´MÑBÔBˆEØ�LŠL˜ Ñ'Ô'Ð'Ø×ÒÑÔÐØð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s8   ˆA DÁA#B7Â+DÂ7B;	Â;DÂ>B;	Â?ADÄDÄDc                óJ  — | j         5  |                      ¦   «          | j        �–|                      ¦   «         r‚| j                             | j        j        ¦  «        }|€t          d¦  «        ‚| j        |d         k    r<|  	                    ¦   «          |  
                    ¦   «          |                      ¦   «          | j                             |¦  «        €t          d¦  «        ‚|                      d|                      ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz&Media not found in this Deepy session.rc   zMedia not found.r7   )r>   rð   rr   Ú_deepy_workspace_lockedÚfor_sessionr/   r€   r›   rK  r'  Úensure_session_workspacer|   r7   ÚselectrW   )r)   rC  Úowneds      r*   Úselect_mediazDeepyService.select_mediaŠ  sU  € ØÔ ð 	=ð 	=Ø×!Ò!Ñ#Ô#Ð#ØŒÐ*¨t×/KÒ/KÑ/MÔ/MÐ*Øœ×3Ò3°D´MÔ4TÑUÔU�Ø�=Ý$Ð%MÑNÔNÐNØÔ$¨¨d¬Ò3Ð3Ø×%Ò%Ñ'Ô'Ð'Ø×1Ò1Ñ3Ô3Ð3Ø×)Ò)Ñ+Ô+Ð+ØŒ|×"Ò" 8Ñ,Ô,Ð4Ý Ð!3Ñ4Ô4Ð4Ø�LŠL˜ D×$9Ò$9Ñ$;Ô$;Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   ˆDDÄDÄDc                ót  ‡— t          |¦  «        }|€dS t          j                             |¦  «        Š| j        5  | j                             t          j        ¦  «        \  }}t          ˆfd„t          |¦  «        D ¦   «         d¦  «        }|€dn| j        |||         dœcddd¦  «         S # 1 swxY w Y   dS )zƒImage/video gallery position of a chat media URL (None when its file is not in that gallery), for the gallery's full-screen viewer.Nc              3  ó¼   •K  — | ]V\  }}t           j                             t           j                             t	          |¦  «        ¦  «        ¦  «        ‰k    ¯R|V — ŒWd S r.   )ÚosrG  ÚnormcaseÚabspathrþ   )rŠ   rW  r  Úkeys      €r*   r  z4DeepyService.locate_gallery_media.<locals>.<genexpr>¡  s^   øè è € Ð{Ð{¡K E¨4ÅrÄw×GWÒGWÕXZÔX_×XgÒXgÕhkÐlpÑhqÔhqÑXrÔXrÑGsÔGsÐwzÒGzÐGz˜%ÐGzÐGzÐGzÐGzÐ{Ð{r,   )Ú	workspacerW  rG  )r   rb  rG  rc  r>   r7   Ú_resolve_listsr   rc   r*  Ú	enumeraterK  )r)   ÚurlrG  Úpathsrí   rW  re  s         @r*   Úlocate_gallery_mediaz!DeepyService.locate_gallery_media™  s"  ø€ å'¨Ñ,Ô,ˆØˆ<Ø�4ÝŒg×Ò˜tÑ$Ô$ˆØÔ ð 	uð 	uØ”|×2Ò2µ5´8Ñ<Ô<‰HˆE�1ÝÐ{Ð{Ð{Ð{µ9¸UÑ3CÔ3CÐ{Ñ{Ô{ð  ~Bñ  Cô  CˆEØ ˜=�4�4¸DÔ<MÐX]ÐglÐmrÔgsÐ.tÐ.tð	uð 	uð 	uð 	uñ 	uô 	uð 	uð 	uð 	uð 	uð 	uð 	uøøøð 	uð 	uð 	uð 	uð 	uð 	us   »A%B-Â-B1Â4B1c                ó’   ‡ ‡— t          j        ‰ j        ¦  «        }‰ j        j        Š|�ˆ ˆfd„}|                     |¦  «         d S d S )Nc                ó’   •— ‰j         s:‰‰j        j        k    r,|                      ¦   «         €‰                     ¦   «          d S d S d S d S r.   )rO   r/   r€   Ú	exceptionr’   )rž   r)   Ú
storage_ids    €€r*   Úsavedz(DeepyService.save_session.<locals>.saved¨  s\   ø€ Ø”}ð ,¨°t´}Ô7WÒ)WÐ)WÐ\b×\lÒ\lÑ\nÔ\nÐ\vØ×)Ò)Ñ+Ô+Ð+Ð+Ð+ð,ð ,Ð)WÐ)WÐ\vÐ\vr,   )r   Úschedule_autosaver/   r€   Úadd_done_callback)r)   Úfuturerp  ro  s   `  @r*   rÕ   zDeepyService.save_session¤  sh   øø€ ÝÔ0°´Ñ?Ô?ˆØ”]Ô5ˆ
ØÐð,ð ,ð ,ð ,ð ,ð ,ð ×$Ò$ UÑ+Ô+Ð+Ð+Ð+ð	 Ðr,   c                óÞ   — |                       ¦   «          | j        5  d| _        | j                             ¦   «          d d d ¦  «         n# 1 swxY w Y   t	          j        | j        ¦  «         d S )NT)rf   r=   rO   rh   r   Úflush_sessionr/   r(   s    r*   ÚclosezDeepyService.close­  s§   € Ø×ÒÑÔÐØŒ_ð 	)ð 	)Ø ˆDŒMØŒO×&Ò&Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)õ 	Ô# D¤MÑ2Ô2Ð2Ð2Ð2s   œ!A	Á	AÁA)r   )r…   N)r‰   )Nr·   r.   )&Ú__name__Ú
__module__Ú__qualname__Úworkspace_viewerr   r[   r_   rW   rl   r„   r�   r’   rq   rŸ   r'   r©   r±   r¬   r®   rÂ   rÊ   r¾   rØ   rÙ   rð   ró   rà   rM   r5  Úpropertyr   r'  rR  rX  r_  rk  rÕ   rv  r‰   r,   r*   r   r      s”  € € € € € ØÐà&*¸Jð ð ð ð ð ð8ð ð ð ð)ð )ð )ð4ð 4ð 4ðkð kð kðRð Rð Rð RðHð Hð HðBð Bð Bðð ð ðzð zð zð
ð ð ðAð Að Að 59À$ð 
ð 
ð 
ð 
ð 
ð 7<À4ÐPUð ð ð ð ð ð$ð ð ð ð
3ð 3ð 3ð$1ð 1ð 1ð 1ð6ð ð ð7ð 7ð 7ð]ð ]ð ]ð-ð -ð -ð%ð %ð %ð %ð /ð /ð /ð"Mð Mð Mð^ ðUð Uñ „XðUðyð yð yð -4À4ÐSXð Cð Cð Cð Cð Cð2ð ð ð =ð =ð =ð	uð 	uð 	uð,ð ,ð ,ð3ð 3ð 3ð 3ð 3r,   r   )-Ú__doc__Ú
__future__r   r$  rb  r:   r  rÓ   rA   Úcollectionsr   r   Úshared.deepyr   r   r   r	   Úshared.deepy.configr
   r   Úshared.deepy.driversr   Úshared.deepy.errorsr   r   Úshared.deepy.enginer   Úshared.deepy.runtimer   Úshared.utils.downloadsr   Úshared.utils.form_syncr   r   Úshared.utils.gallery_sourcesr   Úshared.gradio.progressr   Ú	functoolsr   Úshared.deepy.workspacesr   Úshared.deepy.plugin_jobsr   r   r‰   r,   r*   ú<module>rŒ     sÄ  ðà PÐ PØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ bÐ bÐ bÐ bÐ bÐ bÐ bÐ bØ +Ð +Ð +Ð +Ð +Ð +Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø .Ð .Ð .Ð .Ð .Ð .Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðV3ð V3ð V3ð V3ð V3Ð#Ð%5Ð7Hñ V3ô V3ð V3ð V3ð V3r,   