Ë
    4þåeÂ¤  ã                   ób  — 	 d dl mZ  e«       dk(  re‚ddlmZ ddlmZmZmZm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZ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$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/m0Z0 d dl1m2Z2 d dl3m4Z5 dd	l6Z6dd	l7Z7d dl8m7Z9 d dl8m:Z: d dl;m;Z; d1d„Z<d„ Z=d„ Z>g fd„Z?d„ Z@ej€                  e_A        e@e_@         G d„ d«      ZB G d„ de«      ZC G d„ de$jˆ                  jŠ                  jŒ                  «      ZG G d„ de$jˆ                  jŠ                  j�                  «      ZI G d„ de0«      ZJ G d „ d!e/«      ZK G d"„ d#e«      ZL G d$„ d%e-«      ZMeNd&k(  �rê eM«       ZOeOj¡                  d'd(«       ej¢                  d    d)k(  r‚eOj¤                  j§                  «       ZTeTdk(  r$ e"jª                  d*g«        ej¬                  «        	 eOj¤                  j¯                  «         ej°                  «         e!j²                  d,«       Œ>ej¢                  d    d-k(  r† eZej¢                  d.   «      5 Z[e[j¹                  «       Z]d	d	d	«       e]D ]@  Z^eOj¤                  j¿                  e^«        ej°                  «         e!j²                  d/«       ŒB 	  ej°                  «        Œ e$jÀ                  «       Zaej¢                  d d	 D ]I  Zbeaeb   jÆ                  r%eaeb   jÈ                  seaeb   jË                  d+¬0«       Œ7eaeb   jÍ                  «        ŒK eajÏ                  eOjÐ                  eOjÒ                  «       	  ej°                  «        Œy	# e$ r8 ddlmZ ddlmZmZmZm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZ Y �ŒTw xY w# 1 sw Y   �ŒHxY w)2é   )Úget_distÚtrustyé    )Úuic)ÚQtÚQLocaleÚQTranslatorÚPYQT_VERSIONÚQTimer)
Ú	QTextEditÚQApplicationÚQDialogÚQMessageBoxÚQDialogButtonBoxÚQTreeWidgetItemÚQPushButtonÚQWidgetÚQHBoxLayoutÚQLabel)ÚQTextOptionÚQPixmapÚQIconÚQTextCursor)r   r   r   r   r   r   r   r   r   r   r   r   r   r   N)Ú
run_apportÚapport_crash)ÚDistUpgradeViewÚFuzzyTimeToStrÚInstallProgressÚAcquireProgress)ÚDistUpgradeConfig)Úget)Úgettext)Úunicode_gettext)Ú
QUrlOpenerc                 óJ   — t        | t        «      r| j                  d|«      S | S )NúUTF-8)Ú
isinstanceÚbytesÚdecode)ÚsÚerrorss     ú@/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeViewKDE.pyÚutf8r-   M   s"   € Ü�!”UÔØ�x‰x˜ Ó(Ð(àˆó    c                 óŒ   — t         j                  j                  | «      rt        j                  | |«       y t        d| z   «       y )Nzerror, can't find file: )ÚosÚpathÚexistsr   ÚloadUiÚprint)ÚfileÚparents     r,   r3   r3   T   s0   € Ü	‡w�w‡~�~�dÔÜ�
‰
�4˜Õ ô 	Ð(¨4Ñ/Õ0r.   c                 óX   — t         j                  j                  | «      rt        | «      S y ©N)r0   r1   r2   r   )r1   s    r,   Ú_find_pixmapr9   [   s   € Ü	‡w�w‡~�~�dÔÜ�t‹}ÐØr.   c                 óœ   — t        t        «      t        k(  rt        j                  | «      S |D ]  }t        |«      }|sŒt        |«      c S  y r8   )Útyper
   Úintr   Ú	fromThemer9   )ÚnameÚ	fallbacksr1   Úpixmaps       r,   Ú_iconrA   `   sI   € ÜŒLÓœSÒ Ü�‰˜tÓ$Ð$àò 	%ˆDÜ! $Ó'ˆFÚÜ˜V“}Ò$ð	%ð r.   c                 óH   — | j                  «       s| j                  | «       y y r8   )ÚisMaximizedÚorigAdjustSize©Úselfs    r,   Ú
adjustSizerG   q   s!   € Ø×ÑÔØ×Ñ˜DÕ!ð r.   c                   ó4   — e Zd ZdZdZdd„Zd„ Zd„ Zd„ Zd„ Z	y)	Ú
_OSReleasez/etc/os-releasec                 óò   — i | _         d| _        t        j                  | _        t
        j                  j                  | j                  «      sy | j                  «        d| _        |r| j                  «        y y )NFT)
ÚresultÚvalidrI   ÚOS_RELEASE_FILEr5   r0   r1   ÚisfileÚparseÚinject_lsb_compat)rF   Ú
lsb_compats     r,   Ú__init__z_OSRelease.__init__{   sX   € ØˆŒØˆŒ
Ü×.Ñ.ˆŒ	ä�w‰w�~‰~˜dŸi™iÔ(Øà�
‰
ŒØˆŒ
áØ×"Ñ"Õ$ð r.   c                 ó‚  — | j                   d   | j                   d<   | j                   d   | j                   d<   | j                   j                  d«      | j                   d<   | j                   d   s(| j                   j                  d«      | j                   d<   | j                   j                  d«      | j                   d	<   y )
NÚIDzDistributor IDÚPRETTY_NAMEÚDescriptionÚVERSION_CODENAMEÚCodenameÚUBUNTU_CODENAMEÚ
VERSION_IDÚRelease)rK   r!   rE   s    r,   rP   z_OSRelease.inject_lsb_compat‰   s�   € Ø(,¯©°DÑ(9ˆ�‰Ð$Ñ%Ø%)§[¡[°Ñ%?ˆ�‰�MÑ"à"&§+¡+§/¡/Ð2DÓ"Eˆ�‰�JÑØ�{‰{˜:Ò&à&*§k¡k§o¡oÐ6GÓ&HˆD�K‰K˜
Ñ#Ø!%§¡§¡°Ó!>ˆ�‰�IÒr.   c                 óÂ   — t        | j                  d«      }|D ]4  }|j                  «       }|sŒ | j                  |j	                  dd«      Ž  Œ6 |j                  «        y )NÚrú=r   )Úopenr5   ÚstripÚparse_entryÚsplitÚclose)rF   ÚfÚlines      r,   rO   z_OSRelease.parse“   sX   € Ü�—‘˜CÓ ˆØò 	2ˆDØ—:‘:“<ˆDÙØØˆD×Ñ˜dŸj™j¨¨aÓ0Ò1ð		2ð
 	
�‰�	r.   c                 ó�   — | j                  |«      }|dk(  r!t        |t        «      r|j                  d«      }|| j                  |<   y )NÚID_LIKEú )Úparse_valuer'   Ústrrb   rK   )rF   ÚkeyÚvalues      r,   ra   z_OSRelease.parse_entryœ   sA   € Ø× Ñ  Ó'ˆØ�)Ò¤
¨5´#Ô 6ð —K‘K Ó$ˆEØ ˆ�‰�CÒr.   c                 óV   — t        j                  |«      }t        |«      dk(  r|d   S |S )Nr   r   )Úshlexrb   Úlen)rF   rl   Úvaluess      r,   ri   z_OSRelease.parse_value¤   s+   € Ü—‘˜UÓ#ˆÜˆv‹;˜!ÒØ˜!‘9ÐØˆr.   N)T)
Ú__name__Ú
__module__Ú__qualname__ÚDEFAULT_OS_RELEASE_FILErM   rR   rP   rO   ra   ri   © r.   r,   rI   rI   w   s&   „ Ø/ÐØ'€Oó%ò?òò!ór.   rI   c                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚDumbTerminalz A very dumb terminal c                 ó  — t        j                  | d|«       || _        | j                  d«       | j	                  d«       | j                  t        j                  «       | j                  d«       | j                  d«       d| _
        y)z2 really dumb terminal with simple editing support Ú Ú	Monospaceé   FTN)r   rR   ÚinstallProgressÚsetFontFamilyÚsetFontPointSizeÚsetWordWrapModer   ÚNoWrapÚsetUndoRedoEnabledÚsetOverwriteModeÚ_block)rF   r|   Úparent_frames      r,   rR   zDumbTerminal.__init__­   so   € ä×Ñ˜4  \Ô2Ø.ˆÔØ×Ñ˜;Ô'à×Ñ˜aÔ Ø×Ñœ[×/Ñ/Ô0Ø×Ñ Ô&Ø×Ñ˜dÔ#Øˆ�r.   c                 ó´   — t        j                  «       \  | _        | j                  _        | j                  dk(  rdt
        j                  d<   | j                  S )ú
pty voodoor   ÚdumbÚTERM)ÚptyÚforkÚ	child_pidr|   Ú	master_fdr0   ÚenvironrE   s    r,   rŠ   zDumbTerminal.fork»   sA   € ä;>¿8¹8»:Ñ8ˆŒ˜×-Ñ-Ô7Ø�>‰>˜QÒØ!'ŒB�J‰J�vÑØ�~‰~Ðr.   c                 ó2  — t        j                   | j                  j                  gg g d«      \  }}}t        |«      dkD  rDt	        j
                  | j                  j                  d«      }| j                  t        |«      «       t        j                  «        y )Nr   éÿ   )
Úselectr|   rŒ   ro   r0   ÚreadÚinsertWithTermCodesr-   r   ÚprocessEvents)rF   ÚrlistÚwlistÚxlistre   s        r,   Úupdate_interfacezDumbTerminal.update_interfaceÂ   ss   € Ü &§¡¨t×/CÑ/C×/MÑ/MÐ.NÈrÐRTÐVWÓ XÑˆ��uÜˆu‹:˜Š>Ü—7‘7˜4×/Ñ/×9Ñ9¸3Ó?ˆDØ×$Ñ$¤T¨$£ZÔ0Ü×"Ñ"Õ$r.   c                 óþ   — d}|D ]e  }t        |«      dk(  r2| j                  |«       | j                  «       j                  «        d}ŒC|t	        d«      k(  rŒR|t	        d«      k(  rŒa||z  }Œg | j                  |«       y)z support basic terminal codes ry   r{   é   é   N)ÚordÚinsertPlainTextÚ
textCursorÚdeletePreviousCharÚchr)rF   ÚtextÚdisplay_textÚcs       r,   r’   z DumbTerminal.insertWithTermCodesÉ   s}   € àˆØò 	"ˆAä�1‹v˜Š{Ø×$Ñ$ \Ô2Ø—‘Ó!×4Ñ4Ô6Ø‘à”c˜"“g’Øà”c˜!“f’Øà Ñ!‘ð	"ð 	×Ñ˜\Õ*r.   c                 óŒ  — t        | j                  d«      sy|j                  «       t        j                  k(  r4t        j                  | j                  j                  t        d«      «       y|j                  «       syt        j                  | j                  j                  |j                  «       j                  d«      «       y)z$ send (ascii) key events to the pty rŒ   Nr{   zutf-8)Úhasattrr|   rk   r   ÚKey_Backspacer0   ÚwriterŒ   rŸ   r    Úencode)rF   Úevs     r,   ÚkeyPressEventzDumbTerminal.keyPressEventÜ   sƒ   € ô �t×+Ñ+¨[Ô9Øà�6‰6‹8”r×'Ñ'Ò'ä�H‰H�T×)Ñ)×3Ñ3´S¸³VÔ<Øà�w‰wŒyØä
�‰�×%Ñ%×/Ñ/°·±³×1AÑ1AÀ'Ó1JÕKr.   c                 óx   — | j                   ryd| _         | j                  t        j                  «       d| _         y)z: helper that ensures that the cursor is always at the end NTF)rƒ   Ú
moveCursorr   ÚEndrE   s    r,   ÚonCursorPositionChangedz$DumbTerminal.onCursorPositionChangedì   s*   € à�;Š;ØàˆŒØ�‰œŸ™Ô(Øˆ�r.   N)
rq   rr   rs   Ú__doc__rR   rŠ   r—   r’   r©   r­   ru   r.   r,   rw   rw   «   s$   „ Ù ò
òò%ò+ò&Ló r.   rw   c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚKDECdromProgressAdapterz Report the cdrom add progress c                 ó~   — |j                   j                  | _        |j                   j                  | _        || _        y r8   )Úwindow_mainÚlabel_statusÚstatusÚprogressbar_cacheÚprogressbarr6   ©rF   r6   s     r,   rR   z KDECdromProgressAdapter.__init__ø   s0   € Ø×(Ñ(×5Ñ5ˆŒØ!×-Ñ-×?Ñ?ˆÔØˆ�r.   c                 óî   — |r| j                   j                  |«       | j                  j                  t	        |j
                  t        | j                  «      z  «      «       t        j                  «        y)z; update is called regularly so that the gui can be redrawn N)
r´   ÚsetTextr¶   ÚsetValuer<   rl   ÚfloatÚ
totalStepsr   r“   )rF   r    Ústeps      r,   ÚupdatezKDECdromProgressAdapter.updateý   sN   € áØ
�+‰+×
Ñ
˜dÔ
#Ø×Ñ×!Ñ!¤# d§j¡j´°t·±Ó1GÑ&GÓ"HÔIÜ×"Ñ"Õ$r.   c                  ó   — y)N)Fry   ru   rE   s    r,   Úask_cdrom_namez&KDECdromProgressAdapter.ask_cdrom_name  s   € Ør.   c                  ó   — y)NFru   rE   s    r,   Úchange_cdromz$KDECdromProgressAdapter.change_cdrom  s   € Ør.   N)rq   rr   rs   r®   rR   r¾   rÀ   rÂ   ru   r.   r,   r°   r°   ö   s   „ Ù)òò
%òór.   r°   c                   ó0   ‡ — e Zd ZdZd„ Zdˆ fd„	Zd„ Zˆ xZS )ÚKDEOpProgressz methods on the progress bar c                 ó    — || _         || _        y r8   )r¶   Úprogressbar_label)rF   r¶   rÆ   s      r,   rR   zKDEOpProgress.__init__  s   € Ø$€dÔØ0€dÕr.   c                 ó°   •— t         t        | �  |«       | j                  j	                  t        | j                  «      «       t        j                  «        y r8   )	ÚsuperrÄ   r¾   r¶   rº   r<   Úpercentr   r“   )rF   rÉ   Ú	__class__s     €r,   r¾   zKDEOpProgress.update  s=   ø€ ÜŒM˜4Ñ'¨Ô0ð ×Ñ×Ñ¤ D§L¡LÓ 1Ô2Ü× Ñ Õ"r.   c                 ó:   — | j                   j                  d«       y ©Nry   )rÆ   r¹   rE   s    r,   ÚdonezKDEOpProgress.done  s   € Ø
×Ñ×$Ñ$ RÕ(r.   r8   )rq   rr   rs   r®   rR   r¾   rÍ   Ú__classcell__©rÊ   s   @r,   rÄ   rÄ     s   ø„ Ù%ò1õ#ö)r.   rÄ   c                   ó.   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚKDEAcquireProgressAdapterz? methods for updating the progress bar while fetching packages c                 ó¨   — t        j                  | «       |j                  j                  | _        |j                  j
                  | _        || _        y r8   )r   rR   r²   r³   r´   rµ   Úprogressr6   r·   s     r,   rR   z"KDEAcquireProgressAdapter.__init__&  s=   € Ü× Ñ  Ô&à×(Ñ(×5Ñ5ˆŒØ×*Ñ*×<Ñ<ˆŒØˆ�r.   c                 óð   — t        d«      ||fz  }t        j                  | j                  j                  t        d«      |t        j
                  t        j                  «      }|t        j
                  k(  ryy)Nz&Please insert '%s' into the drive '%s'zMedia ChangeTF)Ú_r   Úquestionr6   r²   ÚOkÚCancel)rF   ÚmediumÚdriveÚmsgÚchanges        r,   Úmedia_changez&KDEAcquireProgressAdapter.media_change-  s^   € ÜÐ6Ó7¸6À%¸.ÑH€cÜ×#Ñ# D§K¡K×$;Ñ$;¼Q¸~Ó=NÐPSÔU`×UcÑUcÔep×ewÑewÓx€fØ	”;—>‘>Ò	!ØØr.   c                 ó˜   — t        j                  | «       | j                  j                  d«       | j                  j                  «        y )Nr   )r   ÚstartrÓ   rº   r´   ÚshowrE   s    r,   rß   zKDEAcquireProgressAdapter.start4  s2   € Ü×Ñ˜dÔ#à�‰×Ñ˜qÔ!Ø�‰×ÑÕr.   c                 óª   — | j                   j                  j                  j                  d«       | j                  j                  t        d«      «       y )Nú  zFetching is complete)r6   r²   Úprogress_textr¹   r´   rÕ   rE   s    r,   ÚstopzKDEAcquireProgressAdapter.stop:  s8   € Ø�‰×Ñ×-Ñ-×5Ñ5°dÔ;Ø�‰×ÑœAÐ4Ó5Õ6r.   c                 ó   — t        j                  | |«       | j                  j                  t	        | j
                  «      «       | j                  dz   }|| j                  kD  r| j                  }| j                  dkD  rÛt        j                  | j                  «      }t        |t        «      r#|j                  t        j                  «       «      }| j                   j#                  t%        d«      || j                  |fz  «       | j&                  j(                  j*                  j#                  dt%        d«      t-        | j.                  «      z  z   dz   «       nb| j                   j#                  t%        d«      || j                  fz  «       | j&                  j(                  j*                  j#                  d«       t1        j2                  «        y	)
z\ we don't have a mainloop in this application, we just call processEvents here and elsewherer   r   z!Fetching file %li of %li at %sB/sz<i>úAbout %s remainingz</i>zFetching file %li of %lirâ   T)r   ÚpulserÓ   rº   r<   rÉ   Úcurrent_itemsÚtotal_itemsÚcurrent_cpsÚapt_pkgÚsize_to_strr'   r(   r)   ÚlocaleÚgetpreferredencodingr´   r¹   rÕ   r6   r²   rã   r   Úetar   r“   )rF   ÚownerÚcurrent_itemrê   s       r,   rç   zKDEAcquireProgressAdapter.pulse>  sa  € ô 	×Ñ˜d EÔ*Ø�‰×Ñœs 4§<¡<Ó0Ô1Ø×)Ñ)¨AÑ-ˆØ˜$×*Ñ*Ò*Ø×+Ñ+ˆLà×Ñ˜aÒÜ!×-Ñ-¨d×.>Ñ.>Ó?ˆKÜ˜+¤uÔ-Ø)×0Ñ0´×1LÑ1LÓ1NÓO�Ø�K‰K×Ñ¤Ð"EÓ FÈ,ÐX\×XhÑXhÐjuÐIvÑ vÔwØ�K‰K×#Ñ#×1Ñ1×9Ñ9¸%Ä!ÐDXÓBYÔ\jÐko×ksÑksÓ\tÑBtÑ:tÐw}Ñ:}Õ~à�K‰K×Ñ¤Ð"<Ó =ÀÈt×O_ÑO_Ð@`Ñ `ÔaØ�K‰K×#Ñ#×1Ñ1×9Ñ9¸$Ô?ä×"Ñ"Ô$Ør.   N)	rq   rr   rs   r®   rR   rÝ   rß   rä   rç   ru   r.   r,   rÑ   rÑ   !  s   „ ÙIòòòò7ór.   rÑ   c                   óP   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zy)ÚKDEInstallProgressAdapterz?methods for updating the progress bar while installing packageséð   c                 ó<  — t        j                  | «       d | _        |j                  j                  | _        |j                  j
                  | _        |j                  j                  | _        || _        	 t        dd«      | _
        t$        j&                  j)                  dd«       y # t        $ rj}t        j                  d|z  «       t        j                  dk\  r t        j                   j"                  | _
        nt        j                   | _
        Y d }~Œ�d }~ww xY w)Nz/var/log/dist-upgrade/term.logÚwbzCan not open terminal log: '%s'Ú3zDPkg::StopOnErrorÚFalse)r   rR   Ú_cacher²   r³   rµ   rÓ   rã   r6   r_   Ú_terminal_logÚ	ExceptionÚloggingÚerrorÚsysÚversionÚstdoutÚbufferrë   ÚconfigÚset)rF   r6   Úes      r,   rR   z"KDEInstallProgressAdapter.__init__\  sÔ   € Ü× Ñ  Ô&ØˆŒØ"×.Ñ.×;Ñ;ˆÔØ×*Ñ*×<Ñ<ˆŒØ#×/Ñ/×=Ñ=ˆÔØˆŒð	0Ü!%Ð&FÀtÓ!LˆDÔô 	�‰×ÑÐ.¨wÕ7øô ò 	0ä�M‰MÐ;¸aÑ?Ô@Ü�{‰{˜cÒ!Ü%(§Z¡Z×%6Ñ%6�Õ"ä%(§Z¡Z�Ô"ÿøð	0ús   Á6B( Â(	DÂ1A DÄDc                 óx  — t        j                  | «       d| _        | j                  j	                  t        d«      «       | j                  j                  d«       | j                  j	                  d«       d| _	        d| _
        d| _        | j                  j                  j                  j                  d«       y )NFzApplying changesr   rh   ç        T)r   Ústart_updateÚfinishedr³   r¹   rÕ   rÓ   rº   rã   Ú
start_timeÚtime_uiÚlast_activityr6   r²   ÚshowTerminalButtonÚ
setEnabledrE   s    r,   r  z&KDEInstallProgressAdapter.start_updateo  s�   € Ü×$Ñ$ TÔ*ØˆŒð 	×Ñ×!Ñ!¤!Ð$6Ó"7Ô8Ø�‰×Ñ˜qÔ!Ø×Ñ×"Ñ" 3Ô'àˆŒØˆŒØ ˆÔØ�‰×Ñ×2Ñ2×=Ñ=¸dÕCr.   c                 ó�  — t        j                  | ||«       t        j                  d|›d|›d�«       t        j                  dd«      |v ryt        d«      |z  }t        d«      |z  }d	|›d
|›�}t        | j                  j                  «      }t        d|«       | j                  j                  |«       |j                  j                  |«       |d k7  r6|j                  j                  |«       |j                  j                  «        n|j                  j                  «        |j!                  «        |j#                  «        y )Nz!got an error from dpkg for pkg: 'z': 'ú'Údpkgz*dependency problems - leaving unconfiguredFzCould not install '%s'zThe upgrade will continue but the '%s' package may not be in a working state. Please consider submitting a bug report about it.ú<big><b>ú</b></big><br />údialog_error.ui)r   rý   rü   r"   ÚdgettextrÕ   r   r6   r²   r3   Útranslate_widget_childrenÚlabel_errorr¹   Útextview_errorrà   ÚhiderG   Úexec_)rF   ÚpkgÚerrormsgÚsummaryrÛ   Údialogues         r,   rý   zKDEInstallProgressAdapter.error~  s  € Ü×Ñ˜d C¨Ô2Ü�ŠÂcÊ8ÐTÔUä×Ñ˜FÐ$PÓQÐU]Ñ]ØÜÐ,Ó-°Ñ3ˆÜð 'ó (à*-ñ.‰ò 18¹Ð=ˆä˜4Ÿ;™;×2Ñ2Ó3ˆÜÐ  (Ô+Ø�‰×-Ñ-¨hÔ7Ø×Ñ×$Ñ$ SÔ)Ø�tÒØ×#Ñ#×+Ñ+¨HÔ5Ø×#Ñ#×(Ñ(Õ*à×#Ñ#×(Ñ(Ô*à×ÑÔØ�‰Õr.   c                 ó  — t        j                  d|z  «       t        j                  «       }t        d«      |z  }t        d«      }d|›d|›�}t	        | j
                  j                  «      | _        t        d| j                  «       | j                  j                  j                  |«       | j                  j                  j                  «        | j                  j                  j                  j                  | j                   «       t"        j$                  j'                  |«      s|dz   }t"        j$                  j'                  d«      rtdd	||g}t)        j*                  |t(        j,                  ¬
«      j/                  «       d   }|j1                  dd«      }| j                  j                  j                  |«       n.| j                  j                  j                  t        d«      «       | j                  j3                  «       }	| xj4                  t        j                  «       |z
  z  c_        |	t        j6                  k(  r!t#        j8                  | j:                  d«       yt#        j8                  | j:                  d«       y)z6ask question in case conffile has been changed by userz.got a conffile-prompt from dpkg for file: '%s'z/Replace the customized configuration file
'%s'?ztYou will lose any changes you have made to this configuration file if you choose to replace it with a newer version.z"<span weight="bold" size="larger">z </span> 

zdialog_conffile.uiz
.dpkg-distz/usr/bin/diffz-u)r   r   r&   Úreplacez The 'diff' command was not founds   y
s   n
N)rü   ÚdebugÚtimerÕ   r   r6   r²   ÚconfDialoguer3   Úlabel_conffiler¹   Útextview_conffiler  Úshow_difference_buttonÚclickedÚconnectÚshowConffiler0   r1   r2   Ú
subprocessÚPopenÚPIPEÚcommunicater)   r  r
  ÚAcceptedr¦   rŒ   )
rF   ÚcurrentÚnewrß   ÚprimÚsecÚmarkupÚcmdÚdiffrK   s
             r,   Úconffilez"KDEInstallProgressAdapter.conffile—  sØ  € ä�‰ÐFÈÑPÔQÜ—	‘	“ˆÜÐCÓDÀwÑNˆÜð #ó $‰ò OSÑTWÐXˆÜ# D§K¡K×$;Ñ$;Ó<ˆÔÜÐ# T×%6Ñ%6Ô7Ø×Ñ×(Ñ(×0Ñ0°Ô8Ø×Ñ×+Ñ+×0Ñ0Ô2ð 	×Ñ×0Ñ0×8Ñ8×@Ñ@À×ARÑARÔSô �w‰w�~‰~˜gÔ&Ø˜LÑ(ˆ'ô �7‰7�>‰>˜/Ô*Ø  $¨°Ð5ˆ#Ü×!Ñ! #¬j¯o©oÔ>×JÑJÓLÈQÑOˆ$Ø—‘˜W iÓ0ˆ$Ø
×
Ñ
×
-Ñ
-×
5Ñ
5°dÕ
;à
×
Ñ
×
-Ñ
-×
5Ñ
5´aÐ8ZÓ6[Ô
\Ø×"Ñ"×(Ñ(Ó*ˆØ�ŠœŸ	™	› eÑ+Ñ+�à”W×%Ñ%Ò%Ü�H‰H�T—^‘^ VÕ,ä�H‰H�T—^‘^ VÕ,r.   c                 ó–  — | j                   j                  j                  «       rS| j                   j                  j                  «        | j                   j                  j                  t        d«      «       y | j                   j                  j                  «        | j                   j                  j                  t        d«      «       y )NzShow Difference >>>z<<< Hide Difference)r"  r$  Ú	isVisibler  r%  r¹   rÕ   rà   rE   s    r,   r(  z&KDEInstallProgressAdapter.showConffile¼  sŠ   € Ø×Ñ×.Ñ.×8Ñ8Ô:Ø×Ñ×/Ñ/×4Ñ4Ô6Ø×Ñ×4Ñ4×<Ñ<¼QÐ?TÓ=UÕVà×Ñ×/Ñ/×4Ñ4Ô6Ø×Ñ×4Ñ4×<Ñ<¼QÐ?TÓ=UÕVr.   c                 ó€  — t        j                  «       \  | _        | _        | j                  dk(  radt        j
                  d<   dt        j
                  vst        j
                  d   dk(  rdt        j
                  d<   dt        j
                  d<   t        j                  d	| j                  z  «       | j                  S )
r†   r   r‡   rˆ   ÚDEBIAN_FRONTENDÚkdeÚnoninteractiveÚnoneÚAPT_LISTCHANGES_FRONTENDz fork pid is: %s)r‰   rŠ   r‹   rŒ   r0   r�   rü   r   rE   s    r,   rŠ   zKDEInstallProgressAdapter.forkÄ  sŒ   € ä+.¯8©8«:Ñ(ˆŒ˜œØ�>‰>˜QÒØ!'ŒB�J‰J�vÑØ!¬¯©Ñ3Ü—
‘
Ð,Ñ-°Ò6Ø0@”—
‘
Ð,Ñ-Ø5;ŒB�J‰JÐ1Ñ2Ü�‰Ð(¨4¯>©>Ñ9Ô:Ø�~‰~Ðr.   c                 óœ  — | j                   dk(  rt        j                  «       | _         | j                  j                  t	        | j
                  «      «       | j                  j                  t        |j                  «       «      «       |dkD  r¿t        j                  «       | _
        d| _        | j                  | j                   z
  }|| j                  z  }t        |«      |z  }d| j
                  z
  |z  }|dkD  r6|dk  r1| j                  j                  t        d«      t!        |«      z  «       y	| j                  j                  d«       y	y	)
zupdate progress bar and labelr  g      ð?Fg      Y@g     €N@i £ ræ   rh   N)r	  r!  rÓ   rº   r<   rÉ   r³   r¹   r-   r`   r  Úactivity_timeout_reportedr
  r»   rã   rÕ   r   )rF   r  rÉ   r´   ÚdeltaÚtime_per_percentrï   s          r,   Ústatus_changez'KDEInstallProgressAdapter.status_changeÐ  s  € ð �?‰?˜cÒ!ä ŸI™I›Kˆ$Œ/Ø�‰×Ñœs 4§<¡<Ó0Ô1Ø×Ñ×!Ñ!¤$ v§|¡|£~Ó"6Ô7à�SŠ=Ü#Ÿy™y›{ˆ$Ô
Ø+0ˆ$Ô
(Ø×$Ñ$ t§¡Ñ6ˆ%à
�4—<‘<Ñ
ˆ%Ü# E›l¨7Ñ2Ð
Ø˜Ÿ™Ñ%Ð)9Ñ9ˆ#à�4ŠZ˜C :Ò.Ø×Ñ×&Ñ&¤qÐ)=Ó'>ÄÐPSÓATÑ'TÕUà×Ñ×&Ñ& sÕ+ð r.   c                 ó:   — | j                   j                  d«       y rÌ   )r³   r¹   rE   s    r,   Úfinish_updatez'KDEInstallProgressAdapter.finish_updateç  s   € Ø×Ñ×!Ñ! "Õ%r.   c                 ó¨  — 	 	 t        j                   | j                  gg g d«      \  }}}t        |«      dkD  rlt        j                  | j                  d«      }| j
                  j                  |«       | j                  j                  j                  t        |d¬«      «       nn	 Œ¥	 t        j                   | «       | j&                  dkD  r®| j&                  | j(                  z   t+        j*                  «       k  r€| j,                  sF	 t        j.                  d| j(                  ›d| j0                  j3                  «       ›d
�«       d| _        | j                  j6                  j8                  j;                  «        t=        j>                  «        t+        j@                  d«       y# t        $ r.}t        |«       t        j                  d|z  «       Y d}~�Œ/d}~ww xY w# t"        $ r8}t        j$                  d| j                  ›d	|›d
�«       d| _        Y d}~�Œ]d}~ww xY w# t4        $ r& t        j.                  d| j(                  z  «       Y �Œw xY w)z–
        no mainloop in this application, just call processEvents lots here
        it's also important to sleep for a minimum amount of time
        Tr   r�   r  )r+   z&error reading from self.master_fd '%s'Nz@got ValueError from InstallProgress.update_interface. Line was 'z' (ú)ry   zno activity on terminal for z
 seconds (z&no activity on terminal for %s secondsg{®Gáz”?)!r�   rŒ   ro   r0   r‘   rú   r¦   r6   Úterminal_textr’   r-   rû   r4   rü   r   r   r—   Ú
ValueErrorrý   r  ÚTIMEOUT_TERMINAL_ACTIVITYr!  r?  Úwarningr³   r    ÚUnicodeEncodeErrorr²   Úkonsole_framerà   r   r“   Úsleep)rF   r”   r•   r–   re   r  s         r,   r—   z*KDEInstallProgressAdapter.update_interfaceê  sî  € ð ðÜ(.¯©°t·~±~Ð6FÀrÈ"ÈaÓ(PÑ%�˜˜uÜ�u“: ’>ÜŸ7™7 4§>¡>°3Ó7�DØ×&Ñ&×,Ñ,¨TÔ2Ø—K‘K×-Ñ-×AÑAÜ˜T¨)Ô4õ6ð ð6ð ð 	Ü
×
*Ñ
*¨4Ô
0ð ×Ñ Ò!Ø×Ñ ×!?Ñ!?Ñ?Ä4Ç9Á9Ã;ÒNØ×/Ò/ðmÜ—’ÐQU×QoÓQoÐqu÷  rCñ  rC÷  rHñ  rHõ  rJð  !Kô  Lð .2ˆDÔ*Ø
�+‰+×
!Ñ
!×
/Ñ
/×
4Ñ
4Ô
6Ü×"Ñ"Ô$Ü�
‰
�4Õøô1 ò Ü�a”Ü—‘ÐFÈÑJÔKÝûðûô ò 	Ü
�-Š-Ðfj×foÓfoÒqrÐsÔ
tàˆ$�)Š)ûð	ûô &ò mÜ—‘Ð HÈD×LjÑLjÑ k×lðmúsB   ƒB!F$ Â(G Ä>H" Æ$	GÆ-#GÇGÇ	HÇ'-HÈHÈ"+IÉIc                 ó¬   — 	 | j                  «        t        j                  | j                  t        j                  «      \  }}|| j                  k(  r	 |S ŒTr8   )r—   r0   Úwaitpidr‹   ÚWNOHANG)rF   ÚpidÚress      r,   Ú
wait_childz$KDEInstallProgressAdapter.wait_child  sF   € ØØ×!Ñ!Ô#ÜŸ™ D§N¡N´2·:±:Ó>‰JˆS�#Ø�d—n‘nÒ$Øàˆ
ð r.   N)rq   rr   rs   r®   rI  rR   r  rý   r5  r(  rŠ   rB  rD  r—   rS  ru   r.   r,   ró   ró   V  sC   „ ÙIð !$Ðò8ò&Dòò2#-òJWò
ò,ò.&ò(óTr.   ró   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚUpgraderMainWindowc                 óF   — t        j                  | «       t        d| «       y )Nzwindow_main.ui)r   rR   r3   rE   s    r,   rR   zUpgraderMainWindow.__init__"  s   € Ü×Ñ˜ÔäÐ Õ&r.   c                 ó   — || _         y r8   )r6   )rF   Ú	parentRefs     r,   Ú	setParentzUpgraderMainWindow.setParent'  s	   € Øˆ�r.   c                 ó~   — | j                   j                  «       }|r|j                  «        y |j                  «        y r8   )r6   Úon_window_main_delete_eventÚacceptÚignore)rF   Úeventrc   s      r,   Ú
closeEventzUpgraderMainWindow.closeEvent*  s)   € Ø—‘×7Ñ7Ó9ˆÙØ�L‰L�Nà�L‰L�Nr.   N)rq   rr   rs   rR   rY  r_  ru   r.   r,   rU  rU     s   „ ò'ò
 ór.   rU  c                   ó¾   ‡ — e Zd ZdZdd„Zd„ Zdd„Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zdd„Zdd„Z	 dd„Zd„ Zdd„Zdd„Zd„ Zd„ Zdd„Zd„ Zˆ xZS ) ÚDistUpgradeViewKDEz$KDE frontend of the distUpgrade toolc                 ó€  — t        j                  | «       t        «       j                  d«       t	        j
                  d«      }|j                  t        j                  «       |r|dk(  rUt        j                  j                  t        j                  «       d«      }t        t        j                  «       «      | _        nd}t        |«      | _        	 t        j                  d|«       t        j                   d«       dt        j&                  vrt#        d	«      ‚d
t        j&                  d<   dt        j&                  d<   dt        j&                  d<   d
t        j&                  d<   t)        dg«      | _        t-        | j*                  «      }t/        t0        «      t2        k(  r'|j5                  t7        j8                  «       ddd«       n&|j5                  t7        j8                  «       ddd«       | j*                  j;                  |«       t=        «       j?                  «        tA        dddg¬«      }| j*                  jC                  |«       tE        «       | _#        | jF                  jI                  | «       | jF                  jK                  «        d | _&        tO        | jF                  jP                  | jF                  jR                  «      | _*        tW        | «      | _,        t[        | «      | _.        t_        | «      | _0        | jb                  td        _3        | jF                  jh                  jk                  d«       | jF                  jh                  jl                  jo                  | jp                  «       t        j                  d|«       t        j                   d«       | js                  «        tu        «       jv                  d   }|r|dk(  rd}| j                  jy                  dd«      }	t{        j|                  «       j                  |	«      }
| jF                  j€                  jƒ                  «       }|j…                  d|«      }|j…                  d|
«      }| jF                  j€                  j‡                  |«       | jF                  jˆ                  j‹                  «        t�        | jF                  jˆ                  «      | _G        | jF                  jˆ                  j‘                  d d!«       t“        | j`                  | jF                  jˆ                  «      | _J        | jŽ                  j—                  | j”                  «       | j”                  jK                  «        t™        jš                  d"| jœ                  «       | j*                  jŸ                  «        y # t"        $ r#}t	        j$                  d|z  «       Y d }~�Œ»d }~ww xY w)#NÚKDEÚPyQt4ú.Úmoz)/usr/share/locale/ubuntu-release-upgraderzubuntu-release-upgraderzError setting locales (%s)ÚDISPLAYzNo DISPLAY in os.environ foundr:  ÚQT_PLATFORM_PLUGINÚTRUEÚKDE_FULL_SESSIONÚ5ÚKDE_SESSION_VERSIONÚQT_QPA_PLATFORMTHEMEÚqtrÕ   z/usr/share/qt5/translationsz/usr/share/qt4/translationszsystem-software-updatez=/usr/share/icons/oxygen/48x48/apps/system-software-update.pngz5/usr/share/icons/hicolor/48x48/apps/adept_manager.png©r?   FrU   ÚUbuntuÚKubuntuÚSourcesÚToz%siX  i�  é
   )Pr   rR   Úget_telemetryÚset_updater_typerü   Ú	getLoggerÚsetLevelÚINFOr0   r1   ÚjoinÚgetcwdr    r  r"   ÚbindtextdomainÚ
textdomainrû   rJ  r�   r   Úappr	   r;   r
   r<   Úloadr   ÚsystemÚinstallTranslatorr$   ÚsetupUrlHandlesrA   ÚsetWindowIconrU  r²   rY  rà   Ú	prev_steprÄ   rµ   rã   Ú_opCacheProgressrÑ   Ú_acquireProgressr°   Ú_cdromProgressró   Ú_installProgressÚ_handleExceptionrþ   Ú
excepthookr  r  r&  r'  ÚshowTerminalr  rI   rK   r!   Údistro_infoÚUbuntuDistroInforÿ   Úlabel_titler    r  r¹   rL  r  r   Úkonsole_frame_layoutÚsetMinimumSizerw   rG  Ú	addWidgetr   Ú
singleShotÚexitMainLoopMidFlightr  )rF   ÚdatadirÚlogdirÚloggerÚ	localedirr  Ú
translatorÚmessageIconr>   Úto_distÚ
to_versionÚtitle_strings               r,   rR   zDistUpgradeViewKDE.__init__4  sJ  € Ü× Ñ  Ô&ä‹×(Ñ(¨Ô/ä×"Ñ" 7Ó+ˆØ�‰œŸ™Ô%Ù˜' Sš.Ü—G‘G—L‘L¤§¡£¨TÓ2ˆ)Ü)¬"¯)©)«+Ó6ˆ$�+à?ˆ)Ü)¨'Ó2ˆ$Œ+ð	<Ü
×
 Ñ
 Ð!:¸IÔ
FÜ
×
Ñ
Ð6Ô
7ð œBŸJ™JÑ&ÜÐ<Ó=Ð=ð ,1Œ�
‰
Ð'Ñ(ð *0Œ�
‰
Ð%Ñ&ð -0Œ�
‰
Ð(Ñ)à-2Œ�
‰
Ð)Ñ*äÐ!:Ð ;Ó<ˆŒô ! §¡Ó*ˆ
Ü”Ó¤Ò$Ø�O‰OœGŸN™NÓ,¨d°CÐ9VÕWà�O‰OœGŸN™NÓ,¨d°CÐ9VÔWØ�‰×"Ñ" :Ô.ä‹×$Ñ$Ô&äÐ4Ø'fØ'^ð'`ôaˆð 	�‰×Ñ˜{Ô+ä-Ó/ˆÔØ×Ñ×"Ñ" 4Ô(Ø×Ñ×ÑÔàˆŒä -¨d×.>Ñ.>×.PÑ.PÐRV×RbÑRb×RpÑRpÓ qˆÔÜ 9¸$Ó ?ˆÔÜ5°dÓ;ˆÔä 9¸$Ó ?ˆÔð ×.Ñ.ŒŒà×Ñ×+Ñ+×6Ñ6°uÔ=Ø×Ñ×+Ñ+×3Ñ3×;Ñ;¸D×<MÑ<MÔNô 	×ÑÐ8¸ÔCÜ×ÑÐ4Ô5Ø×&Ñ&Ô(Ü‹|×"Ñ" =Ñ1ˆÙ�t˜xÒ'ØˆDà—+‘+—/‘/ )¨TÓ2ˆÜ ×1Ñ1Ó3×;Ñ;¸GÓDˆ
à×'Ñ'×3Ñ3×8Ñ8Ó:ˆØ#×+Ñ+¨H°dÓ;ˆØ#×+Ñ+¨D°*Ó=ˆØ×Ñ×$Ñ$×,Ñ,¨\Ô:ð 	×Ñ×&Ñ&×+Ñ+Ô-Ü$/°×0@Ñ0@×0NÑ0NÓ$OˆÔ!Ø×Ñ×&Ñ&×5Ñ5°c¸3Ô?Ü)¨$×*?Ñ*?À×AQÑAQ×A_ÑA_Ó`ˆÔØ×!Ñ!×+Ñ+¨D×,>Ñ,>Ô?Ø×Ñ×ÑÔ!ô 	×Ñ˜"˜d×8Ñ8Ô9Ø�‰�‰Õøôe ò 	<Ü
�/‰/Ð6¸Ñ:×
;Ò
;ûð	<ús   Ã+V Ö	V=ÖV8Ö8V=c                 óN   — t        d«       | j                  j                  «        y )Nr“  )r4   r~  ÚexitrE   s    r,   r“  z(DistUpgradeViewKDE.exitMainLoopMidFlightš  s   € äÐ%Ô&Ø�‰�‰�r.   c                 óâ  — |d k(  r| j                   }t        |t        «      st        |t        «      rst	        |j                  «       «      dk(  r&|j                  t        j                  dd«      «       n1|j                  t        t	        |j                  «       «      «      «       |j                  «       d k7  r8|j                  «       D ]$  }| j                  |«       | j                  |«       Œ& y y )NÚErrorÚkdelibs)r²   r'   r   r   rj   ÚwindowTitleÚsetWindowTitler"   r  rÕ   ÚchildrenÚtranslate_widgetr  )rF   ÚparentWidgetÚwidgets      r,   r  z,DistUpgradeViewKDE.translate_widget_childrenŸ  sÄ   € Ø˜4ÒØ×+Ñ+ˆLÜ�l¤GÔ,´
¸<ÌÔ0QÜ�<×+Ñ+Ó-Ó.°'Ò9Ø×+Ñ+¬W×-=Ñ-=¸iÈÓ-QÕRà×+Ñ+¬A¬s°<×3KÑ3KÓ3MÓ/NÓ,PÔQà× Ñ Ó" dÒ*Ø&×/Ñ/Ó1ò 7�Ø×%Ñ% fÔ-Ø×.Ñ.¨vÕ6ñ7ð +r.   c                 ó�  — t        |t        «      st        |t        «      �r%t        |j	                  «       «      dk(  rGt        j                  dt        j                  d«      d¬«      }|j                  t        |d«      «       y t        |j	                  «       «      dk(  rGt        j                  dt        j                  d«      d¬«      }|j                  t        |d«      «       y t        |j	                  «       «      dk7  rB|j                  t        t        |j	                  «       «      «      j                  dd«      «       y y y )	Nz&Cancelr¡  T)Úfallbackú&Closery   rÕ   ú&)r'   r   r   rj   r    r"   Útranslationr}  r¹   r#   rÕ   r  )rF   r§  r¡  s      r,   r¥  z#DistUpgradeViewKDE.translate_widget­  sî   € Ü�fœfÔ%¬°F¼KÕ)HÜ�6—;‘;“=Ó! YÒ.Ü!×-Ñ-Øœw×1Ñ1°)Ó<ÀtôM�à—‘œ¨w¸	ÓBÕCÜ�V—[‘[“]Ó# xÒ/Ü!×-Ñ-Øœw×1Ñ1°)Ó<ÀtôM�à—‘œ¨w¸ÓAÕBÜ�V—[‘[“]Ó# rÒ)Ø—‘¤¤# f§k¡k£mÓ"4Ó 5× =Ñ =¸cÀ3Ó GÕIð *ð *Ir.   c                 óT  — t        |t        «      st        |t        «      ryt        j                  |||«      }t        j                  ddj                  |«      z  «       t        |||«       t        «       s�dj                  t        j                  |||«      «      }t        | j                  «      }t        d|«       | j                  | j                  «       |j                  j!                  |«       |j#                  «        |j%                  «        t'        j(                  d«       y)zCrash handler.Nz)not handled exception in KDE frontend:
%sú
ry   r  r   )Ú
issubclassÚKeyboardInterruptÚ
SystemExitÚ	tracebackÚformat_exceptionrü   rý   rz  r   r   r   r²   r3   r  ÚdialogÚcrash_detailr¹   rG   r  rþ   rž  )rF   ÚexctypeÚexcvalueÚexctbÚlinesÚtbtextr´  s          r,   r‰  z#DistUpgradeViewKDE._handleExceptionº  sÞ   € ô �wÔ 1Ô2Ü�w¤
Ô+Øô ×*Ñ*¨7°H¸eÓDˆÜ�‰ÐBÀTÇYÁYÈuÓEUÑUÔVô 	�W˜h¨Ô.ÜŒ|Ø—W‘WœY×7Ñ7¸ÀÈ5ÓQÓRˆFÜ˜T×-Ñ-Ó.ˆFÜÐ$ fÔ-Ø×*Ñ*¨4¯;©;Ô7Ø×Ñ×'Ñ'¨Ô/à×ÑÔØ�L‰LŒNÜ�‰��r.   c                 óÊ  — | j                   j                  j                  «       rS| j                   j                  j                  «        | j                   j                  j                  t        d«      «       nR| j                   j                  j                  «        | j                   j                  j                  t        d«      «       | j                   j                  «        y )NzShow Terminal >>>z<<< Hide Terminal)	r²   rL  r7  r  r  r¹   rÕ   rà   rG   rE   s    r,   r‹  zDistUpgradeViewKDE.showTerminalÕ  sœ   € Ø×Ñ×)Ñ)×3Ñ3Ô5Ø×Ñ×*Ñ*×/Ñ/Ô1Ø×Ñ×/Ñ/×7Ñ7¼Ð:MÓ8NÕOà×Ñ×*Ñ*×/Ñ/Ô1Ø×Ñ×/Ñ/×7Ñ7¼Ð:MÓ8NÔOØ×Ñ×#Ñ#Õ%r.   c                 ó   — | j                   S r8   )r†  rE   s    r,   ÚgetAcquireProgressz%DistUpgradeViewKDE.getAcquireProgressÞ  ó   € Ø×$Ñ$Ð$r.   c                 ó<   — || j                   _        | j                   S r8   )rˆ  rù   )rF   Úcaches     r,   ÚgetInstallProgressz%DistUpgradeViewKDE.getInstallProgressá  s   € Ø',ˆ×ÑÔ$Ø×$Ñ$Ð$r.   c                 ó   — | j                   S r8   )r…  rE   s    r,   ÚgetOpCacheProgressz%DistUpgradeViewKDE.getOpCacheProgresså  r¾  r.   c                 ó   — | j                   S r8   )r‡  rE   s    r,   ÚgetCdromProgressz#DistUpgradeViewKDE.getCdromProgressè  s   € Ø×"Ñ"Ð"r.   c                 óN   — | j                   j                  j                  |«       y r8   )r²   r³   r¹   )rF   rÛ   s     r,   Úupdate_statusz DistUpgradeViewKDE.update_statusë  s   € Ø×Ñ×%Ñ%×-Ñ-¨cÕ2r.   c                 óÐ   — t        | j                  d|j                  z  «      }t        | j                  d|j                  z  «      }|j                  «        |j                  «        y )Núimage_step%iúlabel_step%i)Úgetattrr²   rl   r  )rF   r½   ÚimageÚlabels       r,   ÚhideStepzDistUpgradeViewKDE.hideStepî  sJ   € Ü˜×(Ñ(¨¸$¿*¹*Ñ)DÓEˆÜ˜×(Ñ(¨¸$¿*¹*Ñ)DÓEˆØ�
‰
ŒØ�
‰
�r.   c                 óè   — | j                   }|rdt        | j                  d|j                  z  «      }t	        dg d¢¬«      }|j                  |j                  dd«      «       |j                  «        y y )NrÉ  zdialog-cancel)z7/usr/share/icons/oxygen/16x16/actions/dialog-cancel.pngz@/usr/lib/kde4/share/icons/oxygen/16x16/actions/dialog-cancel.pngz4/usr/share/icons/crystalsvg/16x16/actions/cancel.pngro  é   )r„  rË  r²   rl   rA   Ú	setPixmapr@   rà   )rF   r½   rÌ  Ú
cancelIcons       r,   ÚabortzDistUpgradeViewKDE.abortô  se   € Ø�~‰~ˆÙÜ˜D×,Ñ,¨^¸d¿j¹jÑ-HÓIˆEÜ˜ò*bôcˆJð �O‰O˜J×-Ñ-¨b°"Ó5Ô6Ø�J‰J�Lð r.   c                 óÜ  •— t         t        | �  |«       t        dg d¢¬«      }t        dg d¢¬«      }| j                  r‹t        | j                  d| j                  j                  z  «      }t        | j                  d| j                  j                  z  «      }|j                  |j                  dd«      «       |j                  «        || _        t        | j                  d|j                  z  «      }t        | j                  d|j                  z  «      }|j                  |j                  dd«      «       |j                  «        |j                  d	|j                  «       z   d
z   «       y )Nz	dialog-ok)z3/usr/share/icons/oxygen/16x16/actions/dialog-ok.pngz</usr/lib/kde4/share/icons/oxygen/16x16/actions/dialog-ok.pngz0/usr/share/icons/crystalsvg/16x16/actions/ok.pngro  zarrow-right)z5/usr/share/icons/oxygen/16x16/actions/arrow-right.pngz>/usr/lib/kde4/share/icons/oxygen/16x16/actions/arrow-right.pngz9/usr/share/icons/crystalsvg/16x16/actions/1rightarrow.pngrÉ  rÊ  rÐ  z<b>z</b>)rÈ   ra  ÚsetSteprA   r„  rË  r²   rl   rÑ  r@   rà   r¹   r    )rF   r½   ÚokIconÚ	arrowIconrÌ  rÍ  rÊ   s         €r,   rÕ  zDistUpgradeViewKDE.setStepÿ  s!  ø€ ÜÔ  4Ñ0°Ô6Ü�{ò"VôWˆô ˜-ò%bôcˆ	ð
 �>Š>Ü˜D×,Ñ,¨^¸d¿n¹n×>RÑ>RÑ-RÓSˆEÜ˜D×,Ñ,¨^¸d¿n¹n×>RÑ>RÑ-RÓSˆEØ�O‰O˜FŸM™M¨"¨bÓ1Ô2Ø�J‰JŒLàˆŒä˜×(Ñ(¨¸$¿*¹*Ñ)DÓEˆÜ˜×(Ñ(¨¸$¿*¹*Ñ)DÓEˆØ�‰˜	×(Ñ(¨¨RÓ0Ô1Ø�
‰
ŒØ�‰�e˜eŸj™j›lÑ*¨VÑ3Õ4r.   c                 ó@  — d|›d|›�}t        | j                  «      }t        d|«       | j                  |«       |j                  j                  |«       |d k7  r6|j                  j                  |«       |j                  j                  «        n|j                  j                  «        |j                  t        d«      «       t        dg d¢¬«      }|j                  j                  |j                  dd«      «       |j                  «        |j!                  «        y )	Nr  r  r  ÚInformationzdialog-information)z;/usr/share/icons/oxygen/48x48/status/dialog-information.pngzD/usr/lib/kde4/share/icons/oxygen/48x48/status/dialog-information.pngz=/usr/share/icons/crystalsvg/32x32/actions/messagebox_info.pngro  é0   )r   r²   r3   r  r  r¹   r  rà   r  r£  rÕ   rA   rÌ  rÑ  r@   rG   r  ©rF   r  rÛ   Úextended_msgr  r™  s         r,   ÚinformationzDistUpgradeViewKDE.information  sç   � Ú07¹Ð<ˆä˜4×+Ñ+Ó,ˆÜÐ  (Ô+Ø×&Ñ& xÔ0Ø×Ñ×$Ñ$ SÔ)Ø˜4ÒØ×#Ñ#×+Ñ+¨LÔ9Ø×#Ñ#×(Ñ(Õ*à×#Ñ#×(Ñ(Ô*Ø×Ñ¤ -Ó 0Ô1äÐ0ò'hôiˆð 	�‰× Ñ  ×!3Ñ!3°B¸Ó!;Ô<à×ÑÔØ�‰Õr.   c                 ó  — d|›d|›�}t        | j                  «      }t        d|«       | j                  |«       |j                  j                  |«       |d k7  r6|j                  j                  |«       |j                  j                  «        n|j                  j                  «        t        dg d¢¬«      }|j                  j                  |j                  dd«      «       |j                  «        |j                  «        y)	Nr  r  r  zdialog-error)z5/usr/share/icons/oxygen/48x48/status/dialog-error.pngz>/usr/lib/kde4/share/icons/oxygen/48x48/status/dialog-error.pngzA/usr/share/icons/crystalsvg/32x32/actions/messagebox_critical.pngro  rÚ  F)r   r²   r3   r  r  r¹   r  rà   r  rA   rÌ  rÑ  r@   rG   r  rÛ  s         r,   rý   zDistUpgradeViewKDE.error/  sÖ   � Ú.5±sÐ;ˆä˜4×+Ñ+Ó,ˆÜÐ  (Ô+Ø×&Ñ& xÔ0Ø×Ñ×$Ñ$ SÔ)Ø˜4ÒØ×#Ñ#×+Ñ+¨LÔ9Ø×#Ñ#×(Ñ(Õ*à×#Ñ#×(Ñ(Ô*ä˜Nò'lômˆð 	�‰× Ñ  ×!3Ñ!3°B¸Ó!;Ô<à×ÑÔØ�‰Ôàr.   c           
      ó¬  — t        j                  | ||||«       t        | j                  «      | _        t        d| j                  «       | j                  j                  j                  «        | j                  j                  j                  j                  | j                  «       | j                  | j                  «       | j                  j                  j                  t        j                  «      j!                  t#        d«      «       | j                  j                  j                  t        j$                  «      j'                  t)        «       «       | j                  j                  j                  t        j$                  «      j!                  t#        d«      dz   «       t+        dg d¢¬«      }| j                  j,                  j/                  |j1                  dd«      «       |d	k7  r®|d
   j3                  dd«      }| j                  j                  j                  t        j4                  «      j!                  |«       |d   j3                  dd«      }	| j                  j                  j                  t        j                  «      j!                  |	«       d|z  }
| j                  j6                  j!                  |
«       | j                  j8                  j!                  | j:                  «       | j                  j                  j=                  «        | j                  j                  j?                  dg«       | j                  j                  jA                  «       j                  «        | jB                  D ]]  }| j                  j                  jE                  d
tG        | j                  j                  t#        d«      |jH                  z  g«      «       Œ_ | jJ                  D ]]  }| j                  j                  jE                  d
tG        | j                  j                  t#        d«      |jH                  z  g«      «       Œ_ | jL                  D ]]  }| j                  j                  jE                  d
tG        | j                  j                  t#        d«      |jH                  z  g«      «       Œ_ | jN                  D ]]  }| j                  j                  jE                  d
tG        | j                  j                  t#        d«      |jH                  z  g«      «       Œ_ | jP                  D ]]  }| j                  j                  jE                  d
tG        | j                  j                  t#        d«      |jH                  z  g«      «       Œ_ | j                  jS                  «        | j                  jU                  «       }|t        jV                  k(  ryy)zshow the changes dialoguezdialog_changes.uiz&Start UpgradeÚDetailsú >>>zdialog-warning)z7/usr/share/icons/oxygen/48x48/status/dialog-warning.pngz@/usr/lib/kde4/share/icons/oxygen/48x48/status/dialog-warning.pngz@/usr/share/icons/crystalsvg/32x32/actions/messagebox_warning.pngro  rÚ  Nr   rÕ   ry   r   z<big><b>%s</b></big>ÚPackageszNo longer supported %sz	Remove %szRemove (was auto installed) %sz
Install %sz
Upgrade %sTF),r   ÚconfirmChangesr   r²   ÚchangesDialoguer3   Útreeview_detailsr  Ú	buttonBoxÚhelpRequestedr'  ÚshowChangesDialogueDetailsr  Úbuttonr   r×   r¹   rÕ   ÚHelpÚsetIconr   rA   Úquestion_pixmaprÑ  r@   r  rØ   Úlabel_summaryÚlabel_changesÚconfirmChangesMessageÚclearÚsetHeaderLabelsÚheaderÚ	demotionsÚinsertTopLevelItemr   r>   ÚtoRemoveÚtoRemoveAutoÚ	toInstallÚ	toUpgraderG   r  r-  )rF   r  Úchangesró  ÚdownloadSizeÚactionsÚremoval_boldr™  ÚcancelÚconfirmÚsummaryTextÚdemotedÚrmÚinstÚuprR  s                   r,   rã  z!DistUpgradeViewKDE.confirmChangesG  sU  € ô
 	×&Ñ& t¨W°g¸yØ'3ô	5ä& t×'7Ñ'7Ó8ˆÔÜÐ" D×$8Ñ$8Ô9à×Ñ×-Ñ-×2Ñ2Ô4Ø×Ñ×&Ñ&×4Ñ4×<Ñ<¸T×=\Ñ=\Ô]Ø×&Ñ& t×';Ñ';Ô<Ø×Ñ×&Ñ&×-Ñ-Ô.>×.AÑ.AÓB×JÑJÌ1ÐM]ÓK^Ô_Ø×Ñ×&Ñ&×-Ñ-Ô.>×.CÑ.CÓD×LÑLÌUËWÔUØ×Ñ×&Ñ&×-Ñ-Ô.>×.CÑ.CÓD×LÑLÌQÈyË\Ð\bÑMbÔcäÐ,ò'kôlˆð 	×Ñ×,Ñ,×6Ñ6°{×7IÑ7IÈ"ÈbÓ7QÔRà�dŠ?Ø˜Q‘Z×'Ñ'¨¨RÓ0ˆFØ× Ñ ×*Ñ*×1Ñ1Ô2B×2IÑ2IÓJ×RÑRÐSYÔZØ˜a‘j×(Ñ(¨¨bÓ1ˆGØ× Ñ ×*Ñ*×1Ñ1Ô2B×2EÑ2EÓF×NÑNÈwÔWà,¨wÑ6ˆØ×Ñ×*Ñ*×2Ñ2°;Ô?Ø×Ñ×*Ñ*×2Ñ2°4×3MÑ3MÔNà×Ñ×-Ñ-×3Ñ3Ô5Ø×Ñ×-Ñ-×=Ñ=¸z¸lÔKØ×Ñ×-Ñ-×4Ñ4Ó6×;Ñ;Ô=Ø—~‘~ò 	oˆGØ× Ñ ×1Ñ1×DÑDÀQÌÐX\×XlÑXl×X}ÑX}ô  ABð  C[ó  A\ð  _f÷  _kñ  _kñ  Akð  @ló  Imõ  oð	oà—-‘-ò 	]ˆBØ× Ñ ×1Ñ1×DÑDÀQÌÐX\×XlÑXl×X}ÑX}ô  ABð  CNó  AOð  RT÷  RYñ  RYñ  AYð  @Zó  I[õ  ]ð	]à×#Ñ#ò 	rˆBØ× Ñ ×1Ñ1×DÑDÀQÌÐX\×XlÑXl×X}ÑX}ô  ABð  Ccó  Adð  gi÷  gnñ  gnñ  Anð  @oó  Ipõ  rð	rà—N‘Nò 	`ˆDØ× Ñ ×1Ñ1×DÑDÀQÌÐX\×XlÑXl×X}ÑX}ô  ABð  COó  APð  SW÷  S\ñ  S\ñ  A\ð  @]ó  I^õ  `ð	`à—.‘.ò 	^ˆBØ× Ñ ×1Ñ1×DÑDÀQÌÐX\×XlÑXl×X}ÑX}ô  ABð  COó  APð  SU÷  SZñ  SZñ  AZð  @[ó  I\õ  ^ð	^ð 	×Ñ×'Ñ'Ô)ð ×"Ñ"×(Ñ(Ó*ˆØ”'×"Ñ"Ò"ØØr.   c                 óJ  — | j                   j                  j                  «       rs| j                   j                  j                  «        | j                   j                  j                  t        j                  «      j                  t        d«      dz   «       nr| j                   j                  j                  «        | j                   j                  j                  t        j                  «      j                  dt        d«      z   «       | j                   j                  «        y )Nrà  rá  z<<< )rä  rå  r7  r  ræ  ré  r   rê  r¹   rÕ   rà   rG   rE   s    r,   rè  z-DistUpgradeViewKDE.showChangesDialogueDetails  sÎ   € Ø×Ñ×0Ñ0×:Ñ:Ô<Ø× Ñ ×1Ñ1×6Ñ6Ô8Ø× Ñ ×*Ñ*×1Ñ1Ô2B×2GÑ2GÓH×PÑPÔQRÐS\ÓQ]Ð`fÑQfÕgà× Ñ ×1Ñ1×6Ñ6Ô8Ø× Ñ ×*Ñ*×1Ñ1Ô2B×2GÑ2GÓH×PÑPÐQWÔZ[Ð\eÓZfÑQfÔgØ×Ñ×'Ñ'Õ)r.   c                 óÒ   — t        j                  | j                  |d|z   t         j                  t         j                  z  t         j                  «      }|t         j                  k(  ryy)Nz<font>TF)r   rÖ   r²   ÚYesÚNo)rF   r  rÛ   ÚdefaultÚanswers        r,   ÚaskYesNoQuestionz#DistUpgradeViewKDE.askYesNoQuestionˆ  sS   € Ü×%Ñ% d×&6Ñ&6¸ÀÈCÁÔQ\×Q`ÑQ`Ôal×aoÑaoÑQoÔq|×qÑqó  AˆØ”[—_‘_Ò$ØØr.   c                 ó  — t        t         j                  ||t         j                  | j                  «      }|j	                  t         j
                  «      }|j	                  t         j                  «      }|j                  t        d«      «       |dk(  r|j                  |«       n|j                  |«       |€2|j                  «       }|j                  |t        j                  z  «       |j                  «       }|t         j
                  k(  ryy)NÚContinuerØ   TF)r   ÚWarningÚNoButtonr²   Ú	addButtonÚApplyrØ   r¹   rÕ   ÚsetDefaultButtonÚwindowFlagsÚsetWindowFlagsr   ÚFramelessWindowHintr  )	rF   r  rÛ   r  Ú
messageBoxÚcontinueButtonÚcancelButtonÚflagsr	  s	            r,   ÚaskCancelContinueQuestionz,DistUpgradeViewKDE.askCancelContinueQuestionŽ  s×   € Ü ¤×!4Ñ!4°g¸sÄK×DXÑDXÐZ^×ZjÑZjÓkˆ
Ø#×-Ñ-¬k×.?Ñ.?Ó@ˆØ!×+Ñ+¬K×,>Ñ,>Ó?ˆØ×Ñœq ›}Ô-à�hÒØ×'Ñ'¨Õ5à×'Ñ'¨Ô7àˆ?Ø×*Ñ*Ó,ˆEØ×%Ñ% e¬b×.DÑ.DÑ&DÔEà×!Ñ!Ó#ˆØ”[×&Ñ&Ò&ØØr.   c                 óô  — t        t         j                  t        d«      t        d«      t         j                  | j                  «      }|j                  t         j                  «      }|j                  t         j                  «      }|j                  t        d«      j                  dd«      «       |j                  t        j                  dd«      «       |j                  «       }|t         j                  k(  ryy	)
NzRestart requiredz<<b><big>Restart the system to complete the upgrade</big></b>z_Restart NowrÕ   r«  r¡  rª  TF)r   ÚQuestionrÕ   r  r²   r  r  r  r¹   r  r"   r  r  )rF   r  Ú	yesButtonÚnoButtonr	  s        r,   ÚconfirmRestartz!DistUpgradeViewKDE.confirmRestart¢  sÚ   € Ü ¤×!5Ñ!5´qÐ9KÓ7LÌað  QOó  OPô  R]÷  Rfñ  Rfð  hl÷  hxñ  hxó  yˆ
Ø×(Ñ(¬¯©Ó9ˆ	Ø×'Ñ'¬¯©Ó7ˆØ×Ñœ!˜NÓ+×3Ñ3°C¸Ó=Ô>Ø×Ñœ×)Ñ)¨)°XÓ>Ô?Ø×!Ñ!Ó#ˆØ”[—_‘_Ò$ØØr.   c                 ó,   — t        j                  «        y r8   )r   r“   rE   s    r,   r“   z DistUpgradeViewKDE.processEvents­  s   € Ü×"Ñ"Õ$r.   c                  ó   — y r8   ru   )rF   r  s     r,   ÚpulseProgressz DistUpgradeViewKDE.pulseProgress°  s   € ð 	r.   c                 óö   — t        d«      }|j                  dd«      }t        j                  | j                  t        d«      |t        j
                  t        j                  «      }|t        j
                  k(  ryy)Nz¢<b><big>Cancel the running upgrade?</big></b>

The system could be in an unusable state if you cancel the upgrade. You are strongly advised to resume the upgrade.r®  z<br />zCancel Upgrade?TF)rÕ   r  r   rJ  r²   r  r  )rF   r    rý  s      r,   r[  z.DistUpgradeViewKDE.on_window_main_delete_event¶  si   € äð wó xˆð �|‰|˜D (Ó+ˆÜ×$Ñ$ T×%5Ñ%5´qÐ9JÓ7KÈTÔS^×SbÑSbÔdo×drÑdrÓsˆØ”[—_‘_Ò$ØØr.   )NNr8   )NT)r  )rØ   )F)rq   rr   rs   r®   rR   r“  r  r¥  r‰  r‹  r½  rÁ  rÃ  rÅ  rÇ  rÎ  rÓ  rÕ  rÝ  rý   rã  rè  r
  r  r  r“   r!  r[  rÎ   rÏ   s   @r,   ra  ra  2  s‡   ø„ Ù.ódòLó
7òJòò6&ò%ò%ò%ò#ò3òò	ô5ó2ó.ð2 37ó6òp*óóò(	ò%óö	r.   ra  Ú__main__zinput box testzôbar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar z--test-termÚbashTg{®Gáz„?z--show-in-terminalé   gš™™™™™©?)Úpurge)Ústrict)jÚutilsr   ÚImportErrorÚPyQt5r   ÚPyQt5.QtCorer   r   r	   r
   r   ÚPyQt5.QtWidgetsr   r   r   r   r   r   r   r   r   r   ÚPyQt5.QtGuir   r   r   r   rd  ÚPyQt4.QtCoreÚPyQt4.QtGuirþ   rí   rü   r!  r)  r²  Úaptrë   rŒ  rn   r0   r‰   ÚDistUpgradeApportr   r   r   r   r   r   ÚDistUpgradeConfigParserr    Ú	telemetryr!   ru  r�   r"   ÚDistUpgradeGettextrÕ   r#   r$   r-   r3   r9   rA   rG   rD   rI   rw   rÓ   ÚbaseÚCdromProgressr°   Ú
OpProgressrÄ   rÑ   ró   rU  ra  rq   Úviewr
  ÚargvrG  rŠ   rQ  Úcallrž  r—   r“   rM  r_   rd   r‘   Úcharsr¢   r’   ÚCacherÀ  r  Úis_installedÚis_upgradableÚmark_deleteÚmark_installÚcommitr†  rˆ  ru   r.   r,   ú<module>rB     sZ  ðð.?õ  Ùƒz�XÒØÐåßKÕK÷÷ ÷ ÷ EÓDó Û Û Û Û Û ã 
Û Û Û Û 	ã 
ç 7ç ^Ó ^Ý 6Ý +ã Û Ý ,Ý /å "óò1òð
 ó ò""ð !×+Ñ+€Ô Ø€Ô ÷1ñ 1ôhH�9ô HôV˜cŸl™l×/Ñ/×=Ñ=ô ô*)�C—L‘L×%Ñ%×0Ñ0ô )ô,2 ô 2ôjE ô EôT˜ô ô$M˜ô Mð` ˆzÓá	Ó	€$Ø×ÑÐ(ð  *`ô  aà‡X�Xˆa�[�MÒ!Ø×Ñ×#Ñ#Ó%€cØ	�ŠØ
ˆ*�/‰/˜6˜(Ô
#Ø
ˆ#�(‰(Œ*ØØ
×
Ñ
×
-Ñ
-Ô
/Ø
$ˆ,×
$Ñ
$Ô
&Ø
ˆ$�*‰*�TÔ
ð ð
 	‡X�Xˆa�[Ð(Ò(Ù�—‘˜‘Óð  Ø—&‘&“(ˆ%÷àò ˆ!Ø
×
Ñ
×
0Ñ
0°!Ô
5à
$ˆ,×
$Ñ
$Ô
&Ø
ˆ$�*‰*�TÕ
ð	ð
 Ø
$ˆ,×
$Ñ
$Ô
&ð ð ˆ#�)‰)‹+€%Ø�X‰X�a�bˆ\ò  €cØˆS�z×Ò u¨S¡z×'?Ò'?ØˆC�j×Ñ 4ÐÕ(àˆC�j×ÑÕð	 ð
 ‡,�,ˆt×$Ñ$ T×%:Ñ%:Ô;ð 	Ø €l× Ñ Ô"ð 	ðG øðu ò ?ÝßKÕK÷?÷ ?÷ ?÷ ?ò ?ð?ú÷Tñ ús   ‚A
M$ ÉN$Í$9N!Î N!Î$N.