+
    ¨Úži0B  ã                   ób  € R t ^ RIt]P                  ! RR4       ]P                  ! RR4       ^ RIHtHtHt ^ RIHt ^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIHt ^ R	IHt ^ R
IHt ^ RIHtHt ^ RIHt  ! R R]4      t]P4                  P7                  R4      '       d   R]P8                  9  d    ^RIHt ]P4                  P7                  R4      '       d   R]P8                  9  d    ^RI H t  R t!R#   ] d    ]
P>                  ! R4        LYi ; i  ] d    ]
P>                  ! R4        L?i ; i)z2Integration of package managers into UpdateManagerNÚGtkz3.0ÚSnapdÚ2)ÚGLibr   r   )ÚCache)Úgettext)ÚThread)ÚMyCache)Úinhibit_sleepÚget_dist_version)ÚDialogc                   ór   a € ] tR t^t o ^ t^t^tR tR tR t	R t
R tR tR tR tR	 tR
 tRR ltRtV tR# )ÚInstallBackendc                óL   € \         P                  ! W4       W n        R V n        R # ©N)r   Ú__init__ÚactionÚsleep_cookie)ÚselfÚwindow_mainr   s   &&&Ú@/usr/lib/python3/dist-packages/UpdateManager/backend/__init__.pyr   ÚInstallBackend.__init__    s   € Ü�Š˜Ô*ØŒØ ˆÖó    c                óÖ  € R \         P                  R&   \        4       V n        V P                  V P
                  8X  dõ   V P                  P                  p\        V P                  P                  P                  R7      p. p. pV P                  P                   Fƒ  pW,          pW%,          pVP                  '       d&   VP                  '       g   VP                  V4       KJ  VP                  '       g   K^  VP                  '       g   Kr  VP                  V4       K…  	  V P!                  W44       R# V P                  V P"                  8X  Edy   . p. p	. p
\        V P                  P                  P                  R7      pV P                  P                   EF  p VP                  '       d]   W%P$                  ,          P                  '       g;   VP$                  pVP&                  '       d
   VR,          pVP                  V4       Ks  VP                  '       d@   W%P$                  ,          P                  '       d   V	P                  VP$                  4       KÄ  VP(                  '       dD   W%P$                  ,          P                  '       d   V
P                  VP$                  4       EK  EK  EK  	  V P-                  W‰V
4       R# V P/                  4        R#   \*         d     EKS  i ; i)ÚnoneÚAPT_LISTCHANGES_FRONTEND)Úrootdirz#autoN)ÚosÚenvironr
   r   r   ÚACTION_PRE_INSTALLr   Úcacher   r   Úoem_metapackagesÚmarked_installÚis_installedÚappendÚmarked_upgradeÚis_upgradableÚ
commit_oemÚACTION_INSTALLÚnameÚis_auto_installedÚmarked_deleteÚKeyErrorÚcommitÚupdate)r   Úunfresh_cacheÚfresh_cacheÚpkgs_install_oemÚpkgs_upgrade_oemÚpkgÚunfresh_pkgÚ	fresh_pkgÚpkgs_installÚpkgs_upgradeÚpkgs_removeÚpkgnames   &           r   ÚstartÚInstallBackend.start%   s&  € Ø17Œ�
‰
Ð-Ñ.ô *›OˆÔà�;‰;˜$×1Ñ1Ô1Ø ×,Ñ,×2Ñ2ˆMÜ¨×(8Ñ(8×(>Ñ(>×(FÑ(FÔGˆKà!ÐØ!ÐØ×'Ñ'×8Ô8�Ø+Õ0�Ø'Õ,�	à×-×-Ð-°i×6L×6LÐ6LØ$×+Ñ+¨CÖ0Ø ×/×/Ò/°I×4K×4KÒ4KØ$×+Ñ+¨CÖ0ñ 9ð �O‰OÐ,Ö?Ø�[‰[˜D×/Ñ/Õ/àˆLØˆLØˆKô  ¨×(8Ñ(8×(>Ñ(>×(FÑ(FÔGˆKØ×'Ñ'×-Õ-�ðà×*×*Ð*Ø +¯H©HÕ 5× B× BÐ Bà"%§(¡(˜Ø×0×0Ð0Ø# wÕ.˜GØ$×+Ñ+¨GÖ4à×*×*Ð*Ø'¯©Õ1×?×?Ð?à$×+Ñ+¨C¯H©HÖ5à×)×)Ð)Ø'¯©Õ1×>×>Ð>à#×*Ñ*¨3¯8©8×4ò ?ò *ñ! .ð. �K‰K˜°KÖ@à�K‰KŽMøô  ô ãðús1   ÆAKÇ+KÈKÈ=KÉKÉ*=KËK(Ë'K(c                ó   € \         h)z(Run a update to refresh the package list©ÚNotImplementedError)r   s   &r   r.   ÚInstallBackend.update]   ó   € ä!Ð!r   c           	     óH   € V P                  V P                  RRRRRR7       R# )zInstall these OEM packagesTN)Ú
authorizedÚsuccessÚerror_stringÚ
error_descÚtrans_failed)Ú_action_doner   )r   r1   r2   s   &&&r   r'   ÚInstallBackend.commit_oema   s-   € à×ÑØ×#Ñ#ØØØØØð 	ö 	
r   c                ó   € \         h)zCommit the cache changesr=   )r   r6   r7   r8   s   &&&&r   r-   ÚInstallBackend.commitl   r@   r   c                ó  € / p/ pR \        4       ,           pV P                  P                  p \        RR4      p\        P
                  ! V4      pVP                  4        VR,           Fv  pVR,          V,          pVP                  RR4      p	VP                  RV4      p
VP                  RR4      pW´9  d   KQ  V'       d   WK,          P                  RJ d   Kq  Wš3W&   Kx  	  VR	,           Fc  pVR	,          V,          pVP                  R
V4      pXP                  RR4      pW´9  d   K?  V'       d   WK,          P                  RJ d   K_  WÒV&   Ke  	  W3#   \         d*   p\        P                  ! RT,          4        Rp?Y3# Rp?ii ; i)zstable/ubuntu-z0/usr/share/ubuntu-release-upgrader/deb2snap.jsonÚrÚseededÚdebNÚ
to_channelÚmetapkgFÚunseededÚfrom_channelz%error reading deb2snap.json file (%s))r   r   r    ÚopenÚjsonÚloadÚcloseÚgetr#   Ú	ExceptionÚloggingÚdebug)r   Úseeded_snapsÚunseeded_snapsÚcurr_channelr    Úd2s_fileÚd2sÚsnapÚseedrN   rO   rP   ÚunseedrR   Úes   &              r   Úget_snap_seedsÚInstallBackend.get_snap_seedsp   st  € ØˆØˆà'Ô*:Ó*<Õ<ˆØ× Ñ ×&Ñ&ˆð	GÜØBÀCóˆHô —)’)˜HÓ%ˆCØ�N‰NÔà˜HŸ˜�Ø˜8•} TÕ*�Ø—h‘h˜u dÓ+�Ø!ŸX™X l°LÓA�
ØŸ(™( 9¨dÓ3�ØÔ'Ùß˜u�~×:Ñ:¸eÓCÙØ&)Ð%6�Ó"ñ &ð ˜JŸ˜�Ø˜Z�¨Õ.�Ø%Ÿz™z¨.¸,ÓG�ØŸ(™( 9¨dÓ3�ØÔ'Ùß˜u�~×:Ñ:¸eÓCÙØ'3˜tÓ$ñ (ð Ð+Ð+øô ô 	GÜ�MŠMÐAÀAÕE×FÐFàÐ+Ð+ûð	Gús%   ­BE ÃA0E Ä2 E ÅF	Å FÆF	c                ón  €  V P                   P                  f   \        R 4      V P                   n        MIV P                   P                  P                  R 4       V P                   P                  P	                  4        V P                   P                  p. pT P                  4       w  rETP                  4        FÂ  w  pw  ruYq9   g   K  Y,          P                  '       g   K*  RpY,          P                  4        TP                  4        FA  p	T	P                  '       g   K  T	P                  '       g   K+  T	P                  '       d   K?  Rp M	  TP                  4        T'       g   K±  TP!                  T4       KÄ  	  T#   \
         d*   p\        P                  ! RT,          4       . u R p?# R p?ii ; i)Nzerror reading cache (%s)TF)r   r    r	   rS   Ú_initDepCacherX   rY   rZ   rd   Úitemsr#   Úmark_deleteÚget_changesr+   r*   Úclearr$   )
r   r    rc   Ú
duplicatesr[   Ú_r`   rN   Údeb_is_autor3   s
   &         r   Úget_deb2snap_dupsÚ InstallBackend.get_deb2snap_dups—   sU  € ð	Ø×Ñ×%Ñ%Ò-Ü)0°«�× Ñ Õ&à× Ñ ×&Ñ&×+Ñ+¨DÔ1Ø× Ñ ×&Ñ&×4Ñ4Ô6Ø×$Ñ$×*Ñ*ˆEð ˆ
Ø×-Ñ-Ó/‰ˆà*×0Ñ0Ö2‰NˆD‘(�3ð Ž| ¥
× 7× 7Ò 7Ø"�Ø•
×&Ñ&Ô(à ×,Ñ,Ö.�Cà×(×(Ò(Ø×-×-Ò-Ø #× 5× 5Ò 5à&+˜Ùñ /ð —‘”ç‘;Ø×%Ñ% cÖ*ñ' 3ð* Ðøô= ô 	ô �MŠMÐ4°qÕ8Ô9Ø�Iûð		ús   ‚BF  Æ F4ÆF/Æ)F4Æ/F4c           	     óâ  € / pV P                  4       w  r#VP                  4        F½  w  pw  rV/ p\        P                  ! R RV.R\        P                  R7      P                  4       p\        P                  ! RV^ ,          \        P                  4      '       d    \        P                  ! RV,          4       K”  WPP                  P                  9   g   K°  RVR&   WgR&   WqV&   K¿  	  VP                  4        EFô  w  rI/ p\        P                  ! R RV.R\        P                  R7      P                  4       p\        P                  ! RV^ ,          \        P                  4      '       g   Ku  \        P                  ! RV,          4       R	p
\        P                  ! R
V
,          V^ ,          \        P                  4      '       g    \        P                  ! RV,          4       Kí  RVR&   \        P                  ! R RV.R\        P                  R7      P                  4       pV^ ,          P                  R4       Fª  pVP                  4       p\        V4      ^8w  d   K%  V^,          pV^,          pVP                  VR,           4      '       g   KW  VP                  R4      ^ ,          pVR8w  g   Kx  VV9  g   K�  \        P                  ! RV: RV: R24       RVR&   RVR&    M	  WqV&   EK÷  	  V# )r`   ÚinfoT)Úuniversal_newlinesÚstdoutz^installed: zSnap %s is installedÚinstallÚcommandÚchannelz#stable/ubuntu-[0-9][0-9].[0-9][0-9]z^tracking:.*%sz+Snap %s is not tracking the release channelÚremoveÚconnectionsÚ
Ú:Ú-zSnap z is being used by z. Switching it to stable trackÚrefreshÚstable)rd   rh   Ú
subprocessÚPopenÚPIPEÚcommunicateÚreÚsearchÚ	MULTILINErY   rZ   r   Úduplicate_packagesÚsplitÚlenÚ
startswith)r   Ú	snap_listr[   r\   r`   rN   rO   Úsnap_objectÚ	snap_inforR   Ú
re_channelÚconnsÚconnÚ	conn_colsÚplugÚslotÚ	plug_snaps   &                r   Úget_snap_transitionsÚ#InstallBackend.get_snap_transitionsÀ   s€  € àˆ	Ø'+×':Ñ':Ó'<Ñ$ˆà'3×'9Ñ'9Ö';Ñ#ˆDÑ#�3ØˆKä"×(Ò(Ø˜ Ð&Ø#'Ü!—‘ô÷ ‰k‹mð	 ô
 �yŠy˜¨°1­´r·|±|×DÒDÜ—’Ð4°tÕ;Ô<ÙØ×(Ñ(×;Ñ;Ö;à)2�˜IÑ&Ø)3˜IÑ&Ø"-˜$“ñ (<ð" %3×$8Ñ$8×$:Ñ ˆDØˆKä"×(Ò(Ø˜ Ð&Ø#'Ü!—‘ô÷ ‰k‹mð	 ô
 �yŠy˜¨°1­´r·|±|×DÔDÜ—’Ð4°tÕ;Ô<àB�
Ü—y’yØ%¨
Õ2°I¸aµLÄ"Ç,Á,÷ò ô —M’MØEÈÕLôñ à)1�˜IÑ&ô #×(Ò(Ø˜]¨DÐ1Ø'+Ü%Ÿ?™?ô÷ ‘+“-ð	 ð " !�HŸN™N¨4Ö0�DØ $§
¡
£�IÜ˜9“~¨Ô*Ù Ø$ Q�<�DØ$ Q�<�Dà—‘ t¨c¥z×2Ô2Ø$(§J¡J¨s£O°AÕ$6˜	à%¨Ö,Ø )°Ö ?ä#ŸM›Mó $(«ð!4ôð
 6?˜K¨	Ñ2Ø5=˜K¨	Ñ2Ù!ñ) 1ð, #.˜$”ñg %;ðj Ðr   c                óZ  € Vw  rVpV'       g   R # ^ p^ p	VP                  4        F/  p
WŠP                  4       ,          pWšP                  4       ,          p	K1  	  W˜,          pW¶,          WV,          ,           pWÇP                  4       8”  d$   \        P
                  ! VP                  V4       R # R # r   )Ú	get_tasksÚget_progress_totalÚget_progress_doneÚget_fractionr   Úidle_addÚset_fraction)r   ÚclientÚchangerm   Ú	user_dataÚindexÚcountÚprogress_barÚ
task_totalÚ	task_doneÚtaskÚtask_fractionÚtotal_fractions   &&&&&        r   Úupdate_snap_cbÚInstallBackend.update_snap_cb  s˜   € Ø%.Ñ"ˆ�lßÙð ˆ
Øˆ	Ø×$Ñ$Ö&ˆDØ×1Ñ1Ó3Õ3ˆJØ×/Ñ/Ó1Õ1ŠIñ 'ð "Õ.ˆð (Õ/°EµMÕBˆð ×5Ñ5Ó7Ô7Ü�MŠM˜,×3Ñ3°^ÖDñ 8r   c           	     ó2  a € V 3R  lpR pV! \        R4      4       RpRpS P                  P                  4       pV'       dH   \        V^ ,          \        P
                  4      '       d!   V^ ,          p\        P                  ! ^dW#4      pS P                  4       pV'       d(   \        P                  ! V4       VP                  ^ 4        \        P                  ! 4       pVP                  4        ^ p\        V4      p	VP                  4        Fß  w  r«VR,          pVR8X  dB   V! \        RV
,          4      4       VP!                  V
VR,          S P"                  W‰V3R7       M€VR	8X  d:   V! \        R
V
,          4      4       VP%                  V
S P"                  W‰V3R7       M@V! \        RV
,          4      4       VP'                  V
VR,          S P"                  W‰V3R7       V^,          pKá  	  \        P.                  ! S P0                  P4                  4       R#   \        P(                   dh   p\*        P,                  ! RT,          4       \        P.                  ! S P0                  P2                  R\        R4      \        R4      4        Rp?R# Rp?ii ; i)c                 ó^   <€ \         P                  ! SP                  P                  V 4       R # r   )r   r›   Úlabel_detailsÚ	set_label)Ústatusr   s   &€r   Úupdate_statusÚ2InstallBackend.update_snaps.<locals>.update_status%  s   ø€ Ü�MŠM˜$×,Ñ,×6Ñ6¸Ö?r   c                 ó&   € V P                  4        R # )T)Úpulse)r¢   s   &r   Úupdate_progressÚ4InstallBackend.update_snaps.<locals>.update_progress(  s   € Ø×ÑÔ Ùr   zUpdating snapsNrv   r}   zRefreshing %s snaprw   )Úprogress_callback_datarx   zRemoving %s snapzInstalling %s snapzerror updating snaps (%s)Fz!Upgrade only partially completed.zMAn error occurred while updating snaps. Please check your network connection.)rm   Úprogressbar_slotÚget_childrenÚ
isinstancer   ÚProgressBarr   Útimeout_addr”   Úsource_removerœ   r   ÚClientÚconnect_syncrˆ   rh   Úrefresh_syncr¨   Úremove_syncÚinstall_syncÚErrorrY   rZ   r›   r   Ústart_errorÚstart_available)r   r¯   r³   r¢   Úprogress_timerÚprogress_barsrŠ   r�   r    r¡   r`   r‹   rv   rc   s   f             r   Úupdate_snapsÚInstallBackend.update_snaps#  sC  ø€ õ	@ò	ñ 	”aÐ(Ó)Ô*àˆØˆà×-Ñ-×:Ñ:Ó<ˆßœZ¨°aÕ(8¼#¿/¹/×JÒJØ(¨Õ+ˆLÜ!×-Ò-Ø�_óˆNð
 ×-Ñ-Ó/ˆ	çÜ×Ò˜~Ô.Ø×%Ñ% aÔ(ð*	Ü—\’\“^ˆFØ×ÑÔ!ØˆEÜ˜	“NˆEØ%.§_¡_Ö%6Ñ!�Ø% iÕ0�Ø˜iÔ'Ù!¤!Ð$8¸4Õ$?Ó"@ÔAØ×'Ñ'ØØ# IÕ.Ø×+Ñ+Ø05¸lÐ/Kð	 (õ ð  Ô(Ù!¤!Ð$6¸Õ$=Ó">Ô?Ø×&Ñ&ØØ×+Ñ+Ø05¸lÐ/Kð 'õ ñ "¤!Ð$8¸4Õ$?Ó"@ÔAØ×'Ñ'ØØ# IÕ.Ø×+Ñ+Ø05¸lÐ/Kð	 (ô ð ˜•
’ñ3 &7ôP 	�Š�d×&Ñ&×6Ñ6Ö7øô �z‰zô 	Ü�MŠMÐ5¸Õ9Ô:Ü�MŠMØ× Ñ ×,Ñ,ØÜÐ5Ó6Üð<óô	õ ûð	ús   Ã	D%H ÈJÈ/AJÊJc                óØ  € WP                   8X  d,   V'       d$   V P                  V n        V P                  4        R# WP                  8X  dÝ   V'       d^   \        P
                  P                  R 4      '       d9   \        V R4      '       d'   \        V P                  R7      P                  4        R# V'       d   V P                  P                  4        R# V'       d   V P                  P                  WdV4       R# \        P                  ! ^V P                  P                  4       R# V'       d   V P                  P                  RWE4       R# V'       ds   \        P
                  P                  R 4      '       dN   \        V R4      '       d<   V P!                  4       V P                  n        V P                  P                  4        R# V'       * pV P                  P                  V4       R# )z/usr/bin/snapÚpane_update_progress)ÚtargetTN)r   r(   r   r:   r   ÚpathÚexistsÚhasattrr   rÆ   r   rÃ   rÂ   r   rº   Úexitro   r†   )r   r   rB   rC   rD   rE   rF   Úis_cancelled_updates   &&&&&&& r   rG   ÚInstallBackend._action_doneo  sA  € ð" ×,Ñ,Ô,·à×-Ñ-ˆDŒKØ�J‰JŽLØ×*Ñ*Ô*çÜ—G‘G—N‘N ?×3Ò3Ü˜DÐ"8×9Ò9ä˜d×/Ñ/Ô0×6Ñ6Ö8ßØ× Ñ ×0Ñ0Ö2ßØ× Ñ ×,Ñ,Ø °
öô × Ò   D×$4Ñ$4×$9Ñ$9Ö:çØ× Ñ ×,Ñ,¨T°<ÖLçÜ—G‘G—N‘N ?×3Ò3Ü˜DÐ"8×9Ò9à6:×6LÑ6LÓ6N�× Ñ Ô3Ø× Ñ ×0Ñ0Ö2à*1¤kÐ#Ø× Ñ ×0Ñ0Ð1DÖEr   )r   r   N)F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚACTION_UPDATEr   r(   r   r:   r.   r'   r-   rd   ro   r”   r¨   rÆ   rG   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s[   ø‡ € Ø€MØÐØ€Nò!ò
6òp"ò	
ò"ò%,òN'òRKòZEò,J8÷X2Fò 2Fr   r   ú/usr/sbin/aptdÚ%UPDATE_MANAGER_FORCE_BACKEND_SYNAPTIC)ÚInstallBackendAptdaemonzimporting aptdaemonú/usr/sbin/synapticÚ&UPDATE_MANAGER_FORCE_BACKEND_APTDAEMON)ÚInstallBackendSynapticzimporting synapticc                 ó   € \         P                  P                  R4      '       d"   R\         P                  9  d    \	        V / VB # \         P                  P                  R4      '       d"   R\         P                  9  d    \        V / VB # \        R4      h  \
         d    \        P                  ! R4        Lti ; i  \
         d     L?i ; i)z,Select and return a package manager backend.rÙ   rÚ   zusing aptdaemon failedrÜ   rÝ   zENo working backend found, please try installing aptdaemon or synaptic)
r   rË   rÌ   r   rÛ   Ú	NameErrorrY   Ú	exceptionrÞ   rX   )ÚargsÚkwargss   *,r   Úget_backendrä   ¹  s·   € ô 	�‰�‰Ð'×(Ò(Ø3¼2¿:¹:ÔEð	8Ü*¨DÐ;°FÑ;Ð;ô
 	�‰�‰Ð+×,Ò,Ø4¼B¿J¹JÔFð	Ü)¨4Ð:°6Ñ:Ð:ô ð	 óð øô ô 	8Ü×ÒÐ6Ö7ð	8ûô ô 	Ùð	ús#   ¼
B Â
B? Â!B<Â;B<Â?CÃC)"Ú__doc__ÚgiÚrequire_versionÚgi.repositoryr   r   r   Úaptr   rT   rY   r   rƒ   r   r   rm   Ú	threadingr   ÚUpdateManager.Core.MyCacher	   ÚUpdateManager.Core.utilsr
   r   ÚUpdateManager.Dialogsr   r   rË   rÌ   r   rÛ   ÚImportErrorrá   rÞ   rä   © r   r   Ú<module>rð      sÿ   ðñ 9ó 
à × Ò �5˜%Ô  Ø × Ò �7˜CÔ  ß *Ñ *å Û Û Û 	Û 	Û Ý  Ý å .ß DÝ (ôFF�Vô FFðV ‡G�G‡N�NÐ#×$Ò$Ø/°r·z±zÔAð1ÝDð
 ‡G�G‡N�NÐ'×(Ò(Ø0¸¿
¹
ÔBð0ÝBô
øð ô 1Ø×ÒÐ/Ö0ð1ûð ô 0Ø×ÒÐ.Ö/ð0ús$   Â/C3 Ã(D Ã3DÄDÄD.Ä-D.