+
    ">ºjÏÁ  ã                   óZ  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIHtHt ^RIHt ^RIHt ^RIHt  ! R R]4      t ! R R	]4      t ! R
 R]4      t ! R R]4      tR t]! 4       w  tt ! R R]4      t ! R R]4      t ! R R] P>                  4      t R# )é    N)ÚPopenÚPIPE)Úgettext)Úngettext)Úinside_chrootc                   ó   € ] tR t^(tRtR# )ÚCacheException© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r
   ó    Ú>/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeCache.pyr	   r	   (   ó   † Ûr   r	   c                   ó   € ] tR t^,tRtR# )ÚCacheExceptionLockingFailedr
   Nr   r
   r   r   r   r   ,   r   r   r   c                   ó   € ] tR t^0tRtR# )ÚCacheExceptionDpkgInterruptedr
   Nr   r
   r   r   r   r   0   r   r   r   c                   ó2   a a€ ] tR t^4t oV 3R ltRtVtV ;t# )ÚPackageRemovalDeniedExceptionc                ó:  <€ Wn         \        R 4      P                  V P                   4      p\        P                  ! R4      P                  V P                   4      '       d,   V\        R4      P                  V P                   4      ,          p\        SV `  V4       R# )zHThe package {} is marked for removal but it is in the removal deny list.z^postgresql-[0-9]*$z½

To prevent data loss, postgresql packages are not removed automatically during the upgrade. If you are certain you no longer need {}, you can manually remove it and try the upgrade again.N)ÚpackageÚ_ÚformatÚreÚcompileÚmatchÚsuperÚ__init__)Úselfr   ÚmsgÚ	__class__s   && €r   r"   Ú&PackageRemovalDeniedException.__init__5   s€   ø€ ØŒäð2ó
÷ ‰&�—‘Ó
ð 	ô �:Š:Ð,Ó-×3Ñ3°D·L±L×AÒAØ”1ð-ó÷
 ‰f�T—\‘\Ó"õ#ˆCô 	‰Ñ˜Ör   )r   )r   r   r   r   r"   r   Ú__classdictcell__Ú__classcell__)r%   Ú__classdict__s   @@r   r   r   4   s   ù‡ € ÷õ r   r   c                 ó   € ^ p ^ p\         P                  ! 4       ^,          p\        P                  ! RV,          4       F£  pVRV,          8X  d)   V\         P                  P	                  V4      ,          pK9  VP                  R4      ^ 8¼  g-   VP                  R4      ^ 8¼  g   VP                  R4      ^ 8¼  d   K}  V \         P                  P	                  V4      ,          p K¥  	  V ^ 8X  d   \        P                  ! R4       R	p V^ 8X  d   \        P                  ! R4       R
pV R,          p RpVR,          V8”  d
   VR,          pW,          pW3# )zbestimate the amount of space used by the kernel and initramfs in /boot,
including a safety margin
z
/boot/*%s*z/boot/initrd.img-%sz
initrd.imgz.bakz.dpkg-z>estimate_kernel_initrd_size_in_boot() returned '0' for kernel?z>estimate_kernel_initrd_size_in_boot() returned '0' for initrd?gš™™™™™©?i   i  ð
i   )ÚosÚunameÚglobÚpathÚgetsizeÚfindÚloggingÚwarning)ÚkernelÚinitrdÚkverÚfÚinitrd_buffers        r   Ú#estimate_kernel_initrd_size_in_bootr8   I   s  € ð €FØ€FÜ�8Š8‹:�a�=€DÜ�YŠY�| dÕ*Ö+ˆØÐ%¨Õ,Ô,Ø”b—g‘g—o‘o aÓ(Õ(ŠFð �f‰f�\Ó" aÔ'¨1¯6©6°&«>¸QÔ+>Ø—‘˜Ó! QÔ&Ùà”b—g‘g—o‘o aÓ(Õ(ŠFñ ,ð �„{Ü�ŠØLô	NàˆØ�„{Ü�ŠØLô	Nàˆà
ˆkÕ€Fà€MØ�…}�}Ô$Ø �ˆØ
Õ€FØˆ=Ðr   c                   ó0   a € ] tR t^mt o RtR tR tRtV tR# )ÚFreeSpaceRequiredz¬FreeSpaceRequired object:

This exposes:
- the total size required (size_total)
- the dir that requires the space (dir)
- the additional space that is needed (size_needed)
c                ó*   € Wn         W n        W0n        R # ©N)Ú
size_totalÚdirÚsize_needed)r#   r=   r>   r?   s   &&&&r   r"   ÚFreeSpaceRequired.__init__u   s   € Ø$ŒØŒØ&Ör   c                óZ   € R V P                   : RV P                  : RV P                  : 2# )zFreeSpaceRequired Object: Dir: z size_total: z size_needed: )r>   r=   r?   ©r#   s   &r   Ú__str__ÚFreeSpaceRequired.__str__y   s1   � ØUY×U]ÔU]Ð_c×_nÔ_nÐpt÷  qAó  qAð  Bð  	Br   )r>   r?   r=   N)	r   r   r   r   Ú__doc__r"   rC   r   r'   ©r)   s   @r   r:   r:   m   s   ø‡ € ñò'÷Bð Br   r:   c                   ó*   a € ] tR t^}t o RtR tRtV tR# )ÚNotEnoughFreeSpaceErrorzA
Exception if there is not enough free space for this operation

c                ó   € Wn         R # r<   ©Úfree_space_required_list)r#   rK   s   &&r   r"   Ú NotEnoughFreeSpaceError.__init__‚   s   € Ø(@Ö%r   rJ   N©r   r   r   r   rE   r"   r   r'   rF   s   @r   rH   rH   }   s   ø‡ € ñ÷Að Ar   rH   c                   óÄ  a € ] tR t^†t o ^t^tR5R lt]R 4       tR t	R t
R tR tR t]R	 4       t]R
 4       t]R 4       t]R 4       tR tR tR6R ltR tR tR tR7R ltR tR tR tR tR tR tR8R ltR8R lt R8R lt!R8R lt"R t#R t$R  t%R! t&R" t'R# t(R$ t)]R% 4       t*R& t+R' t,]R( 4       t-R) t.R* t/R+ t0R, t1R- t2]R. 4       t3R/ t4R0 t5R1 t6R2 t7R9R3 lt8R4t9V t:R# ):ÚMyCacheNc                ó,  € . V n         . V n        W n        W0n        R V n        R V n        Wn        V P                  P                  RR4      V n        W`n	        Wpn
        RV n        V'       d.    \        P                  ! 4        V P                  4        RV n        \&        P(                  P+                  W4       VP-                  RR4      V n        V P                  P1                  V R 4      V n        \5        RR.\6        RR	7      P9                  4       ^ ,          P;                  4       V n        V P?                  4        \        P                  PA                  R
R4       R#   \         d,   pR\!        T4      9   d   \#        T4      h\%        T4      hRp?ii ; i)FÚDistroÚMetaPkgsTzdpkg --configure -aNÚRemovalDenylistFiler,   z-r)ÚstdoutÚuniversal_newlinesz"APT::AutoRemove::SuggestsImportantÚfalseéÿÿÿÿ)!Ú
to_installÚ	to_removeÚviewÚquirksÚlockÚpartialUpgradeÚconfigÚgetlistÚmetapkgsÚ	from_distÚto_distÚ
_listsLockÚapt_pkgÚpkgsystem_lockÚlock_lists_dirÚSystemErrorÚstrr   r   ÚaptÚCacher"   ÚgetListFromFileÚremoval_denylistÚ_get_linux_metapackageÚlinux_metapackager   r   ÚcommunicateÚstripr,   Ú_initAptLogÚset)	r#   r^   rZ   r[   Úprogressr\   ra   rb   Úes	   &&&&&&&& r   r"   ÚMyCache.__init__‹   sH  € ð ˆŒØˆŒØŒ	ØŒØˆŒ	Ø#ˆÔØŒØŸ™×+Ñ+¨H°jÓAˆŒØ"ŒØŒàˆŒßð5Ü×&Ò&Ô(Ø×#Ñ#Ô%Ø �”	ô 	�	‰	×Ñ˜4Ô*à &× 6Ñ 6°xÐAVÓ WˆÔà!%§¡×!CÑ!CÀDÈ%Ó!PˆÔÜ˜G T˜?´4Ø.2ô4ß4?±K³MÀ!õEßEJÁUÃWð 	Œ
à×ÑÔÜ�‰×ÑÐ?ÀÖIøô ô 5à(¬C°«FÔ2Ü7¸Ó:Ð:Ü1°!Ó4Ð4ûð	5ús   Á,,E ÅFÅ(&FÆFc                óZ  € \        4       pV  Fš  pVP                  '       d   VP                  P                  '       d   K3  VP                  P                  V P
                  8X  g(   VP                  P                  V P                  8X  g   K  VP                  VP                  4       Kœ  	  V# )zAreturn the packages not downloadable packages in reqreinst state )	rr   Ú	candidateÚdownloadableÚ_pkgÚ
inst_stateÚ	ReInstReqÚHoldReInstReqÚaddÚname)r#   Ú	reqreinstÚpkgs   &  r   Úreq_reinstall_pkgsÚMyCache.req_reinstall_pkgsµ   ss   € ô “Eˆ	ÛˆCØ—]—]�]¨#¯-©-×*D×*DÒ*Dà—‘×$Ñ$¨¯©Ô6Ø—‘×$Ñ$¨×(:Ñ(:Ö:Ø—‘˜cŸh™hÖ'ñ ð Ðr   c                óš  € V P                   p\        V4      ^ 8”  d¯   \        RR\        V4      4      p\        RR\        V4      4      RP                  V4      ,          pVP	                  W44      '       dV   V P                  4        . RO\        V4      ,           pVP                  4       P                  V4       V P                  4        R# R# )	z.check for reqreinst state and offer to fix it zRemove package in bad statezRemove packages in bad statez¡The package '%s' is in an inconsistent state and needs to be reinstalled, but no archive can be found for it. Do you want to remove this package now to continue?z§The packages '%s' are in an inconsistent state and need to be reinstalled, but no archives can be found for them. Do you want to remove these packages now to continue?ú, TF)z/usr/bin/dpkgz--removez--force-remove-reinstreq)
r�   Úlenr   ÚjoinÚaskYesNoQuestionÚrelease_lockÚlistÚgetTerminalÚcallÚget_lock)r#   rZ   r   ÚheaderÚsummaryÚcmds   &&    r   Úfix_req_reinstÚMyCache.fix_req_reinstÁ   s¹   € à×+Ñ+ˆ	Üˆy‹>˜AÔÜÐ;Ø<Ü! )›nó.ˆFô ð  2ð
 +ô
  # 9›~ó
/ð 26·±¸9Ó1Eõ
FˆGð ×$Ñ$ V×5Ò5Ø×!Ñ!Ô#ÚOÔRVÐW`ÓRaÕa�Ø× Ñ Ó"×'Ñ'¨Ô,Ø—‘”ÙÙr   c                óŠ  € V P                   P                  RRR4      p\        P                  P	                  V4      '       g   \        P
                  ! V4       \        P                   P                  RV4       \        P                   P                  RR4       \        P                  ! \        P                  P                  VR4      \        P                  \        P                  ,          \        P                  ,          R4      V n        \        P                  P                  4       pR	V,          p\        P                   ! V P                  VP#                  R
4      4       \        P                   P                  RR4       \        P                   P                  RR4       \        P                   P                  RR4       R# )zinit logging, create log fileÚFilesÚLogDirz/var/log/dist-upgradezDir::LogzDir::Log::Terminalzapt-term.logzapt.logi¤  zLog time: %s
zutf-8zDebug::pkgProblemResolverÚtruezDebug::pkgDepCache::MarkerzDebug::pkgDepCache::AutoInstallN)r^   ÚgetWithDefaultr+   r.   ÚexistsÚmakedirsrd   rr   Úopenr†   ÚO_RDWRÚO_CREATÚO_APPENDÚlogfdÚdatetimeÚnowÚwriteÚencode)r#   ÚlogdirrŸ   r�   s   &   r   rq   ÚMyCache._initAptLogÜ   s  € à—‘×+Ñ+¨G°XØ,CóEˆä�w‰w�~‰~˜f×%Ò%Ü�KŠK˜ÔÜ�‰×Ñ˜: vÔ.Ü�‰×ÑÐ/°Ô@Ü—W’WœRŸW™WŸ\™\¨&°)Ó<ÜŸY™Y¬¯©Õ3´b·k±kÕAÀ5óJˆŒ
ä×Ñ×#Ñ#Ó%ˆØ! CÕ'ˆÜ
�Š�—‘˜VŸ]™]¨7Ó3Ô4ô 	�‰×ÑÐ6¸Ô?Ü�‰×ÑÐ7¸Ô@Ü�‰×ÑÐ<¸fÖEr   c                óš  € \        V R 4      '       dA   \        P                  ! V P                  4       \        P                  ! V P                  4       \        P
                  ! ^4      V n        \        P
                  ! ^4      V n        \        P                  ! V P                  ^4       \        P                  ! V P                  ^4       R# )Ú
old_stdoutN)Úhasattrr+   Úcloser¥   Ú
old_stderrÚdupÚdup2r�   rB   s   &r   Ú_startAptResolverLogÚMyCache._startAptResolverLogî   sq   € Ü�4˜×&Ò&Ü�HŠH�T—_‘_Ô%Ü�HŠH�T—_‘_Ô%ÜŸ&š& ›)ˆŒÜŸ&š& ›)ˆŒÜ
�Š�—
‘
˜AÔÜ
�Š�—
‘
˜AÖr   c                óâ   € \         P                  ! ^4       \         P                  ! ^4       \         P                  ! V P                  ^4       \         P                  ! V P                  ^4       R# )é   N)r+   Úfsyncrª   r¥   r¨   rB   s   &r   Ú_stopAptResolverLogÚMyCache._stopAptResolverLogö   s<   € Ü
�Š�ŒÜ
�Š�ŒÜ
�Š�—‘ Ô#Ü
�Š�—‘ Ö#r   c                ó   a € V 3R lpV# )z2decorator to ensure that the apt output is logged c                  ót   <€ V ^ ,          P                  4        S! V / VB pV ^ ,          P                  4        V# )r   )r«   r°   )ÚargsÚkwargsÚresr6   s   *, €r   ÚwrapperÚ(MyCache.withResolverLog.<locals>.wrapper   s7   ø€ Ø��G×(Ñ(Ô*Ù�TÐ$˜VÑ$ˆCØ��G×'Ñ'Ô)ØˆJr   r
   )r6   r·   s   f r   ÚwithResolverLogÚMyCache.withResolverLogþ   s   ø€ õ	ð
 ˆr   c                óÐ   € \         P                  ! V P                  4      p\         P                  ! 4       pVP	                  W P
                  V P                  4       VP                  # )z;get the size of the packages that are required to download )rd   ÚPackageManagerÚ	_depcacheÚAcquireÚget_archivesÚ_listÚ_recordsÚfetch_needed)r#   ÚpmÚfetchers   &  r   Úrequired_downloadÚMyCache.required_download  sF   € ô ×#Ò# D§N¡NÓ3ˆÜ—/’/Ó#ˆØ
�‰˜§¡¨T¯]©]Ô;Ø×#Ñ#Ð#r   c                ó.   € V P                   P                  # )z8get the size of the additional required space on the fs )r½   Úusr_sizerB   s   &r   Úadditional_required_spaceÚ!MyCache.additional_required_space  s   € ð �~‰~×&Ñ&Ð&r   c                óT   €  V P                   P                  #   \         d     ^ # i ; i)z;get the extra size needed to install the snap replacements )r[   Úextra_snap_spaceÚAttributeErrorrB   s   &r   Ú#additional_required_space_for_snapsÚ+MyCache.additional_required_space_for_snaps  s+   € ð
	ð —;‘;×/Ñ/Ð/øÜô 	Úð	ús   ‚ ˜'¦'c                ó4   € V P                   P                  ^ 8„  # )zis the cache broken )r½   Úbroken_countrB   s   &r   Ú	is_brokenÚMyCache.is_broken!  s   € ð �~‰~×*Ñ*¨QÑ.Ð.r   c                óÒ   € \         P                  P                  R 4      R,           p\         P                  ! V4      V n        V P                  ^ 8  d   RV,          p\        V4      hR# )zDir::State::Listsr\   zCan not lock '%s' N)rd   r^   Úfind_dirrŒ   rc   r   )r#   r~   rt   s   &  r   rf   ÚMyCache.lock_lists_dir'  sT   € Ü�~‰~×&Ñ&Ð':Ó;¸fÕDˆÜ!×*Ò*¨4Ó0ˆŒØ�?‰?˜QÔØ$ tÕ+ˆAÜ-¨aÓ0Ð0ñ r   c                óz   € V P                   ^ 8”  d*   \        P                  ! V P                   4       RV n         R# R# )r   NrW   )rc   r+   r§   rB   s   &r   Úunlock_lists_dirÚMyCache.unlock_lists_dir-  s*   € Ø�?‰?˜QÔÜ�HŠH�T—_‘_Ô%Ø ˆDŽOñ r   c                ó  € V P                  4        \        P                  P                  W4      pV P	                  4        V'       d'   VP
                  '       d   \        \        R4      4      hVR8X  d   \        R4      hR# )zN
our own update implementation is required because we keep the lists
dir lock
zThe server may be overloadedFzAapt.cache.update() returned False, but did not raise exception?!?N)rØ   ri   rj   Úupdaterf   Úrelease_file_download_errorÚIOErrorr   )r#   Ú	fprogressr¶   s   && r   rÛ   ÚMyCache.update1  si   € ð
 	×ÑÔÜ�i‰i×Ñ˜tÓ/ˆØ×ÑÔß˜×>×>Ð>ô œ!Ð:Ó;Ó<Ð<Ø�%Œ<ÜÐ]Ó^Ð^ñ r   c                ó¶   € \         P                  ! R 4       V P                  '       d   V P                  4        \        P
                  P                  WV4       R# )zcache.commit()N)r1   Úinfor\   rˆ   ri   rj   Úcommit)r#   rÞ   Ú	iprogresss   &&&r   râ   ÚMyCache.commit@  s8   € Ü�ŠÐ%Ô&Ø�9�9ˆ9Ø×ÑÔÜ�	‰	×Ñ˜¨)Ö4r   c                óÔ   € V P                   '       d     \        P                  ! 4        R V n         R# R#   \         d)   p\        P
                  ! RT,          4        Rp?R# Rp?ii ; i)Fzfailed to SystemUnLock() (%s) N)r\   rd   Úpkgsystem_unlockrg   r1   Údebug©r#   rt   s   & r   rˆ   ÚMyCache.release_lockF  sR   € Ø�9�9ˆ9ðDÜ×(Ò(Ô*Ø!�–	ñ øô ô DÜ—’Ð>ÀÕB×CÒCûðDúó   ”4 ´A'¿A"Á"A'c                óÔ   € V P                   '       g     \        P                  ! 4        R V n         R# R#   \         d)   p\        P
                  ! RT,          4        Rp?R# Rp?ii ; i)Tzfailed to SystemLock() (%s) N)r\   rd   re   rg   r1   rç   rè   s   & r   rŒ   ÚMyCache.get_lockN  sR   € Ø�y�yˆyðBÜ×&Ò&Ô(Ø �–	ñ øô ô BÜ—’Ð<¸qÕ@×AÒAûðBúrê   c                ó  € V'       d'   V P                   P                  VP                  4      pMVP                  P                  pVR8X  d,   \        P
                  ! RVP                  : RV: R24       R# VP                  # )z)check if the given pkg can be downloaded Nzno version information for 'z' (useCandidate=Ú)F)r½   Úget_candidate_verry   Úcurrent_verr1   r2   r~   rx   )r#   r€   ÚuseCandidateÚvers   &&& r   rx   ÚMyCache.downloadableV  s[   € çØ—.‘.×2Ñ2°3·8±8Ó<‰Cà—(‘(×&Ñ&ˆCØ�$Œ;Ü�O‹OÐSV×S[ÔS[Ó]iÐjÔkÙØ×ÑÐr   c                ó6   € V P                   P                  4       # )zQtry to fix broken dependencies on the system, may throw
SystemError when it can't)r½   Ú
fix_brokenrB   s   &r   rõ   ÚMyCache.fix_brokena  s   € ð �~‰~×(Ñ(Ó*Ð*r   c                óT  € . V n         . V n        V P                  4        F…  pVP                  '       g   VP                  '       d&   V P                   P                  VP                  4       VP                  '       g   K`  V P                  P                  VP                  4       K‡  	  R# )z)create a snapshot of the current changes N)rX   rY   Úget_changesÚmarked_installÚmarked_upgradeÚappendr~   Úmarked_delete)r#   r€   s   & r   Úcreate_snapshotÚMyCache.create_snapshotf  sr   € àˆŒØˆŒØ×#Ñ#Ö%ˆCØ×!×!Ð! S×%7×%7Ð%7Ø—‘×&Ñ& s§x¡xÔ0Ø× × Ò Ø—‘×%Ñ% c§h¡hÖ/ó	 &r   c                ó:   € V P                   P                  4        R # r<   )r½   ÚinitrB   s   &r   ÚclearÚMyCache.clearp  s   € Ø�‰×ÑÖr   c                ó  € \         P                  ! V P                  4      pV V P                  4        V P                   F  pW,          pVP                  4        K  	  V P                   F  pW,          pVP                  RRR7       K   	  R# )zrestore a snapshot F)Úauto_fixÚ	auto_instN)rd   ÚActionGroupr½   r  rY   Úmark_deleterX   Úmark_install)r#   Úactiongroupr~   r€   s   &   r   Úrestore_snapshotÚMyCache.restore_snapshots  sm   € ä×)Ò)¨$¯.©.Ó9ˆñ 	Ø�
‰
ŒØ—N”NˆDØ•*ˆCØ�O‰OÖñ #ð —O”OˆDØ•*ˆCØ×Ñ e°uÐÖ=ó $r   c                óÜ  € V P                   P                  RR4      pV F³  pW 9   d9   W,          P                  '       d!   \        P                  ! RV,          4        R# RpV P                   P                  VR4       F(  pY4V 9   ;'       d    W,          P                  ,          pK*  	  V'       g   K•  \        P                  ! RV,          4        R# 	  \        P                  ! R4       R# )	a+  
This checks if we run on a desktop or a server install.

A server install has more freedoms, for a desktop install
we force a desktop meta package to be install on the upgrade.

We look for a installed desktop meta pkg and for key
dependencies, if none of those are installed we assume
server mode
rQ   rR   z@need_server_mode(): run in 'desktop' mode, (because of pkg '%s')FTÚKeyDependencieszIneed_server_mode(): run in 'desktop' mode, (because of key deps for '%s')z[need_server_mode(): can not find a desktop meta package or key deps, running in server mode)r^   r_   Úis_installedr1   rç   )r#   r`   ÚkeyÚ
deps_foundr€   s   &    r   Úneed_server_modeÚMyCache.need_server_mode�  s¹   € ð —;‘;×&Ñ& x°Ó<ˆÛˆCàŒ{˜t�y×5×5Ð5Ü—’Ð`ÐcfÕfÔgÚð ˆJØ—{‘{×*Ñ*¨3Ð0AÖB�Ø T™k×DÐD¨d­i×.DÑ.DÕD’
ñ Cç‰zÜ—’ÐiÐloÕoÔpÚñ ô 	�ŠÐsÔtÙr   c                óè   € V P                   '       d*    \        P                  ! R4       V P                  4        R# R#   \         d)    TP                  \        R4      \        R4      4        R# i ; i)zDcheck if the cache is ok and if the required metapkgs
are installed
z$Have broken pkgs, trying to fix themzBroken packagesz’Your system contains broken packages that couldn't be fixed with this software. Please fix them first using synaptic or apt-get before proceeding.FT)rÒ   r1   rç   rõ   rg   Úerrorr   )r#   rZ   s   &&r   Úcoherence_checkÚMyCache.coherence_checkŸ  sh   € ð �>�>ˆ>ð
Ü—’ÐDÔEØ—‘Ô!ó øô ô Ø—
‘
œ1Ð.Ó/Ü!"ð $@ó "AôBò ðús   ”&> ¾/A1Á0A1c                ó  € \         P                  ! R V: RV: R24       W9   dh   W,          P                  ! R/ VB  W,          P                  '       g8   W,          P                  '       g    \         P
                  ! RV,          4       R# R# )zInstalling 'ú' (rî   z Installing/upgrading '%s' failedFTr
   )r1   rç   r  rù   rú   r  ©r#   r€   ÚreasonÚflagss   &&&,r   r  ÚMyCache.mark_install±  s^   € Ü�‹³³VÐ<Ô=ØŒ;Ø�I×"Ò"Ñ+ UÒ+Ø•I×,×,Ð,°µ	×0H×0HÐ0HÜ—’Ð@À3ÕFÔGáÙr   c                ó  € \         P                  ! R V: RV: R24       W9   df   W,          P                  '       dN   W,          P                  4        W,          P                  '       g    \         P
                  ! RV,          4       R# R# )zUpgrading 'r  rî   zUpgrading '%s' failedFT)r1   rç   r  Úmark_upgraderú   r  ©r#   r€   r  s   &&&r   r  ÚMyCache.mark_upgrade»  sY   € Ü�‹«s³FÐ;Ô<ØŒ;˜4�9×1×1Ð1Ø�I×"Ñ"Ô$Ø•9×+×+Ð+Ü—’Ð5¸Õ;Ô<ÙÙr   c                ó„   € \         P                  ! R V: RV: R24       W9   d   W,          P                  ! R/ VB  R# R# )z
Removing 'r  rî   Nr
   )r1   rç   r  r  s   &&&,r   Úmark_removeÚMyCache.mark_removeÄ  s0   € Ü�‹«c³6Ð:Ô;ØŒ;Ø�I×!Ò!Ñ* EÔ*ñ r   c                ó¬   € \         P                  ! R V: RV: R24       W9   d/   V P                  P                  W,          P                  R4       R# R# )z	Purging 'r  rî   TN)r1   rç   r½   r  ry   r  s   &&&r   Ú
mark_purgeÚMyCache.mark_purgeÉ  s7   € Ü�‹«S³&Ð9Ô:ØŒ;Ø�N‰N×&Ñ& t¥y§~¡~°tÖ<ñ r   c                ó    € W9   dH   W,          P                   '       d.   W,          P                  '       d   V P                  W4       R # R # R # R # r<   )r  rü   r  )r#   Úpkgnamer  s   &&&r   Ú_keep_installedÚMyCache._keep_installedÎ  s@   € ØŒOØ•×*×*Ð*Ø•×+×+Ð+Ø×Ñ˜gÖ.ñ ,ñ +ñ r   c           	     ó  € V P                   P                  RR4       F  pV P                  VR4       K  	  V P                   Fy  pW 9   g   K  W,          P                  '       g   W,          P
                  '       g   K=  V P                   P                  VR4       F  pV P                  VRV,          4       K  	  K{  	  \        P                  ! R4       V P                   P                  RR4       F’  pV  F‰  pVP                  '       g   K  VP                  P                  '       g   K5  VP                  '       g   KI  VP                  P                  V8X  g   Kf  V P                  VP                  RV,          4       K‹  	  K”  	  V P                   Fï  pW 9   g   K  W,          P                  '       g   W,          P
                  '       g   K=  V P                   P                  VR4       F’  pV  F‰  pVP                  '       g   K  VP                  P                  '       g   K5  VP                  '       g   KI  VP                  P                  V8X  g   Kf  V P                  VP                  V: RV: 24       K‹  	  K”  	  Kñ  	  R	# )
zNrun after the dist-upgrade to ensure that certain
packages are kept installed rQ   ÚKeepInstalledPkgszDistro KeepInstalledPkgs rulez%s KeepInstalledPkgs rulez"Running KeepInstalledSection rulesÚKeepInstalledSectionz$Distro KeepInstalledSection rule: %sz KeepInstalledSection rule: N)r^   r_   r)  r`   r  rù   r1   rç   rw   rx   rü   Úsectionr~   )r#   r(  r  r.  r€   s   &    r   Úkeep_installed_ruleÚMyCache.keep_installed_ruleÔ  sÅ  € ð —{‘{×*Ñ*¨8Ð5HÖIˆGØ× Ñ  Ð*IÖJñ Jð —=”=ˆCØŽ{ ¥	× 6× 6Ð 6Ø $¥	× 8× 8Ò 8Ø#Ÿ{™{×2Ñ2°3Ð8KÖL�GØ×(Ñ(¨Ð2MÐPSÕ2SÖTó  Mñ !ô 	�ŠÐ:Ô;à—{‘{×*Ñ*¨8Ð5KÖLˆGÛ�Ø—M—M’M c§m¡m×&@×&@Ò&@Ø×)×)Ò)ØŸ™×-Ñ-°Ö8Ø×(Ñ(¨¯©Ð3YÐ\cÕ3cÖdó	 ñ Mð —=”=ˆCØŽ{ ¥	× 6× 6Ð 6Ø $¥	× 8× 8Ò 8Ø#Ÿ{™{×2Ñ2°3Ð8NÖO�GÛ#˜ØŸMŸMšM¨c¯m©m×.H×.HÒ.HØ #× 1× 1Ò 1ØŸM™M×1Ñ1°WÖ<Ø ×0Ñ0°·±ÓadÒfmÐ;nÖoó	  $ó  Pó !r   c                ób   € V P                   '       g   V P                  P                  4        R# R# )z-run before the upgrade was done in the cache N)r]   r[   ÚPreDistUpgradeCacherB   s   &r   Úpre_upgrade_ruleÚMyCache.pre_upgrade_ruleô  s%   € ð ×"×"Ð"Ø�K‰K×+Ñ+Ö-ñ #r   c           
     ób  € RV P                   3RV P                  3RV P                  3RV P                  33 FÆ  w  rV P                  P                  RRV,          4       F  pV! VRV,          4       K  	  V P                   Fw  pW@9   g   K  W,          P                  '       g   W,          P                  '       g   K=  V P                  P                  VRV,          4       F  pV! W4: RV: R	24       K  	  Ky  	  KÈ  	  V P                  '       g   V P                  P                  4        R
# R
# )z,run after the upgrade was done in the cache ÚInstallÚUpgradeÚRemoveÚPurgerQ   zPostUpgrade%szDistro PostUpgrade%s rulez PostUpgradez ruleN)r  r  r"  r%  r^   r_   r`   r  rù   r]   r[   ÚPostDistUpgradeCache)r#   ÚruleÚactionr€   r  s   &    r   Úpost_upgrade_ruleÚMyCache.post_upgrade_ruleú  sú   € à )¨4×+<Ñ+<Ð=Ø )¨4×+<Ñ+<Ð=Ø (¨$×*:Ñ*:Ð;Ø '¨¯©Ð9ó;‰NˆTð
 —{‘{×*Ñ*¨8°_ÀtÕ5KÖL�Ù�sÐ7¸$Õ>Ö?ñ Mà—}”}�Ø–; D¥I×$:×$:Ð$:Ø$(¥I×$<×$<Ò$<Ø#Ÿ{™{×2Ñ2°3¸È$Õ8NÖO˜Ù˜sºsÃDÐ$IÖJó  Pó %ñ;ð ×"×"Ð"Ø�K‰K×,Ñ,Ö.ñ #r   c                óˆ  € \         P                  ! RV P                  ,          4        V P                  P                  R4      w  p p\        R.\        R7      P                  4       ^ ,          pRT9   d   \         P                  ! R	4       R
#   \         d)   p\         P
                  ! RT,          4        Rp?R# Rp?ii ; i)zOcheck for the running kernel and try to ensure that we have
an updated version
zKernel uname: '%s' Ú-z/Can't parse kernel uname: '%s' (self compiled?)NFÚdmesg)rT   s   WARNING: NR_CPUS limitzUP kernel on SMP system!?!T)	r1   rç   r,   ÚsplitÚ	Exceptionr2   r   r   ro   )r#   Úversionr   rt   rA  s   &    r   ÚcheckForKernelÚMyCache.checkForKernel  s—   € ô 	�ŠÐ+¨d¯j©jÕ8Ô9ð	Ø"Ÿj™j×.Ñ.¨sÓ3‰OˆW�a˜ô
 �w�i¬Ô-×9Ñ9Ó;¸AÕ>ˆØ$¨Ô-Ü�MŠMÐ6Ô7Ùøô ô 	Ü�OŠOÐMÐPQÕQÔRÝûð	ús   ©B ÂCÂB<Â<Cc                ó¼  € RpV P                   P                  RR4      pV  EF6  pVP                  P                  P	                  VP
                  4      pV'       d;   VP                  ^ 8X  d*   \        P                  ! RVP                  ,          4       Ku  VP                  '       g   K‰  VP                  P                  '       g   K§  VP                  '       d   K»  VP                  '       d   KÏ  VP                  V9   d   Kâ  RVP                  9   d   Kõ  VP                  P                  V9   g   EK  V P                  VP                  RV,          4       EK9  	  R# )ÚrequiredrQ   ÚRemoveEssentialOkzPackage %s has no priority setÚ:z;priority in required set '%s' but not scheduled for installN)rH  )r^   r_   Ú_pcacher½   rï   ry   Úpriorityr1   r  r~   rw   rx   r  rù   r  )r#   ÚneedÚremoveEssentialOkr€   rò   s   &    r   ÚcheckPriorityÚMyCache.checkPriority  sâ   € àˆà ŸK™K×/Ñ/°Ð:MÓNÐäˆCà—+‘+×'Ñ'×9Ñ9¸#¿(¹(ÓCˆCß�s—|‘| qÔ(Ü—’Ð>ÀÇÁÕIÔJÙØ——’ #§-¡-×"<×"<Ò"<Ø×%×%Ò%¨×);×);Ò);Ø—H‘HÐ 1Ö1à˜3Ÿ8™8–OØ—‘×&Ñ&¨$×.Ø×!Ñ! #§(¡(Ð,iÐlpÕ,p×qó r   c                ó  € ^ pVP                  4       '       dP   V^,          ^ 8X  d   VP                  4        VP                  4        \        P                  ! R4       V^,          pKe  VP                  RR7       VP                  4        R# )r   g{®Gáz”?T)ÚfinishedN)ÚlockedÚpulseProgressÚprocessEventsÚtimeÚsleep)r#   rZ   r\   Úis   &&& r   Ú	updateGUIÚMyCache.updateGUI1  sg   € ØˆØ�k‰k�mŠmØ�2�v˜Œ{Ø×"Ñ"Ô$Ø×ÑÔ Ü�JŠJ�tÔØ��FŠAØ×Ñ DÐÔ)Ø×ÑÖr   c                ó¸  € \         P                  ! 4       pVP                  4        \         P                  ! V P                  V P
                  V3R 7      pVP                  4         V P                  4        V P                  V4       V'       g   V P                  V4       V P                  R4       V P                  4        V P                  4        \        4       '       d   \        P                  ! R4       MV P!                  4        V P#                  4        V P%                  4        V P&                  '       d2   \)        \+        R4      RP-                  R V  4       4      ,          4      h TP=                  4        TP-                  4        . p
. pT P?                  4        EFo  pTP@                  '       d   K  TPB                  '       dì   TPE                  TPF                  4       TPH                  PJ                   F³  p\L        PN                  ! TPP                  TPR                  PT                  4      ^ 8  g   K?  TPV                   Fd  w  rïTPX                  PZ                  P]                  T4      pT'       g   K4  TP^                  '       d   KH  T
PE                  TPF                  4        K±  	  Kµ  	  EK  TP`                  Pb                  pRpT F  pTTPd                  ,          pK  	  T'       d   EKT  T
PE                  TPF                  4       EKr  	   T Pf                  Pi                  RR4      pT'       d   \        P                  ! R4       R#  \o        T4      ^ 8”  d=   TPq                  4        \        P8                  ! RRP-                  T4      ,          4       \o        T
4      ^ 8”  d“   T
Pq                  4        \        P8                  ! RRP-                  T
4      ,          4       T P7                  4        TP9                  \+        R4      \+        R4      R
P-                  T
4      4       T P;                  4        R# R#   \(        \.        3 EdF   p\+        R4      pT P1                  4       pT'       d   T\+        R4      ,          pM‡\3        T\.        4      '       d   T\5        T4      R,           ,          pMWT'       d,   T\+        R	4      ,          pTR
P-                  T4      ,          pM$T\+        R4      ,          pT\+        R4      ,          pT P7                  4        TP9                  \+        R4      T4       \5        T4      p	\        P8                  ! RT	4       T P;                  4         Rp?TP=                  4        TP-                  4        R# Rp?ii ; i  TP=                  4        TP-                  4        i ; i  \j        Pl                   d     EL‡i ; i))Útargetr´   Tz5skipping kernel checks because we run inside a chrootz!Broken packages after upgrade: %sr„   c              3   ó„   "  € T F6  qP                   '       g   VP                  '       g   K(  VP                  x € K8  	  R # 5ir<   )Úis_inst_brokenÚis_now_brokenr~   )Ú.0Úps   & r   Ú	<genexpr>Ú&MyCache.distUpgrade.<locals>.<genexpr>d  s?   é € ð  URÑeiÐ`a×m}×m}Ðm}ð  BC÷  BQõ  BQÔU[ÐUV×U[ÖU[Óeiùs
   ‚%A ¬A zBAn unresolvable problem occurred while calculating the upgrade.

 z@This is most likely a transient problem, please try again later.z

zÀThis may be caused by unofficial packages installed on the system. Please try replacing the following packages with official versions from the Ubuntu archive, and then try the upgrade again.

Ú
z€If none of this applies, then please report this bug using the command 'ubuntu-bug ubuntu-release-upgrader-core' in a terminal. z©If you want to investigate this yourself the log files in '/var/log/dist-upgrade' will contain details about the upgrade. Specifically, look at 'main.log' and 'apt.log'.zCould not calculate the upgradezDist-upgrade failed: '%s'NFrQ   ÚAllowUnauthenticatedzAllowUnauthenticated set!z!Packages to downgrade found: '%s'Ú z$Unauthenticated packages found: '%s'z"Error authenticating some packagesz®It was not possible to authenticate some packages. This may be a transient network problem. You may want to try again later. See below for a list of unauthenticated packages.)9Ú	threadingÚLockÚacquireÚThreadrY  rZ   Ústartr3  Ú_keepBaseMetaPkgsInstalledÚ_installMetaPkgsÚupgraderO  r/  r   r1   r2   rE  r=  Ú_verifyChangesrÒ   rg   r   r†   r   Úforeign_packagesÚ
isinstancerh   r°   r  r«   Úreleaserø   rü   Úmarked_downgraderû   r~   ry   Úversion_listrd   Úversion_compareÚver_strÚ	installedrD  Ú	file_listrK  rÀ   Ú
find_indexÚ
is_trustedrw   ÚoriginsÚtrustedr^   Ú
getbooleanÚconfigparserÚNoOptionErrorr…   Úsort)r#   rZ   Ú
serverModer]   r\   Útrt   Údetailsrp  Ú	error_msgÚ	untrustedÚ	downgrader€   rò   ÚverFileIterÚindexÚ	indexfiler{  r|  ÚoriginÚbs   &&&&                 r   ÚdistUpgradeÚMyCache.distUpgrade<  s»  € ô �~Š~ÓˆØ�‰ŒÜ×Ò D§N¡N¸$¿)¹)ÀTÐ9KÔLˆØ	�‰Œ	ðO	à×!Ñ!Ô#ð ×+Ñ+¨DÔ1ßà×%Ñ% dÔ+ð �L‰L˜Ôð ×ÑÔ ð ×$Ñ$Ô&ô �ŠÜ—’Ð WÕXà×#Ñ#Ô%ð ×"Ñ"Ô$ð ×ÑÔ!à�~�~ˆ~Ü!¤!Ð$GÓ"HÈ4Ï9É9ñ  URÑeió  URó  LRõ  #Ró  Sð  Sð ð\ �L‰LŒNØ�F‰FŒHð ˆ	Øˆ	Ø×#Ñ#×%ˆCØ× × Ð Ùà×#×#Ð#Ø× Ñ  §¡Ô*ØŸ8™8×0Ô0�Cä×.Ò.ØŸ™ S§]¡]×%:Ñ%:ó<Ø>?ö@à47·M´MÑ0˜[Ø(+¯©×(9Ñ(9×(DÑ(DÀ[Ó(Q˜Iß(™y°×1E×1EÒ1EØ )× 0Ñ 0°·±Ô :Ú %ó	 5Bñ	 1ò Ø—m‘m×+Ñ+ˆGØˆGÛ!�à˜6Ÿ>™>Õ)’ñ "÷ ’7Ø× Ñ  §¡×*ñ- &ð0	Ø—‘×&Ñ& xÐ1GÓHˆAßÜ—’Ð ;Ô<Ùð ô
 ˆy‹>˜AÔØ�N‰NÔÜ�MŠMÐ=ØŸ(™( 9Ó-õ.ô /äˆy‹>˜AÔØ�N‰NÔÜ�MŠMÐ@ØŸ(™( 9Ó-õ.ô /ð ×$Ñ$Ô&Ø�J‰J”qÐ=Ó>Üð =ó >ð —y‘y Ó+ô-ð ×%Ñ%Ô'ÙÙøôI Ô:Ð;õ (	Üð 9ó :ˆGð  $×4Ñ4Ó6Ð÷ Øœ1ð 7ó 8õ 8‘ô ˜AÔ<×=Ò=Øœ3˜q›6 F�?Õ*‘ç!Øœ1ð1óõ �ð ˜4Ÿ9™9Ð%5Ó6Õ6‘ð œ1ð eó fõ f�àœ1ð Oó Põ P�ð
 ×$Ñ$Ô&Ø�J‰J”qÐ:Ó;¸WÔEä˜A›ˆIÜ�MŠMÐ5°yÔAð ×%Ñ%Ô'Ûð �L‰LŒNØ�F‰FŽHûðY(	ûðV �L‰LŒNØ�F‰F�HûôD ×)Ñ)ô 	Úð	úsQ   Á%CQ Ä91Q Ì#W  Ì8W  ÑVÑA-VÓB,VÕ-V ÖVÖV Ö"V=× W×Wc                ó\  € \         P                  P                  R4      pV P                  P                  RR4      pV P	                  4        EF  pVP
                  '       dX   V P                  VP                  4      '       d7   \        P                  ! RVP                  4       \        VP                  4      hVP
                  '       g   K�  VP                  P                  R8X  g   Kž  VP                  P                  VR39   g   K½  VP                  V9   d   KÐ  \        P                  ! RVP                  4       \        \!        R4      VP                  ,          4      h	  V P                  P                  RR	4      pV F¦  pVP#                  R
4      w  rgW`9   g   K  W,          P$                  '       g   K8  W,          P$                  P&                  V8X  g   K[  W,          P(                  '       g   W,          P*                  '       g   K�  \        \!        R4      V,          4      h	  R# )zdthis function tests if the current changes don't violate
our constraints (deny listed removals etc)
zAPT::ArchitecturerQ   rI  zHThe package '%s' is marked for removal but it's in the removal deny listTÚallzDThe package '%s' is marked for removal but it's an ESSENTIAL packagez1The essential package '%s' is marked for removal.ÚBadVersionsr   z*Trying to install deny listed version '%s')rd   r^   r0   r_   rø   rü   Ú_inRemovalDenylistr~   r1   rç   r   ry   Ú	essentialrw  Úarchitecturerg   r   rB  rw   rD  rù   rú   )r#   Ú	main_archrN  r€   ÚbadVersionsÚbvr(  rò   s   &       r   ro  ÚMyCache._verifyChangesÌ  s�  € ô —N‘N×'Ñ'Ð(;Ó<ˆ	Ø ŸK™K×/Ñ/°Ð:MÓNÐà×#Ñ#×%ˆCØ× × Ð  T×%<Ñ%<¸S¿X¹X×%FÒ%FÜ—’ÐhÐjm×jrÑjrÔsÜ3°C·H±HÓ=Ð=Ø× × Ò Ø—H‘H×&Ñ&¨$Ö.Ø—M‘M×.Ñ.°9¸eÐ2DÖDØŸ™Ð$5Ö5Ü—’ÐdÐfi×fnÑfnÔoÜ!¤!Ð$WÓ"XÐ[^×[cÑ[cÕ"cÓdÐdñ &ð —k‘k×)Ñ)¨(°MÓBˆÛˆBØŸX™X c›]‰NˆWØ– D¥M×$;×$;Ò$;Ø•×'Ñ'×/Ñ/°3Ö6Ø•×-×-Ð-Ø•×-×-Ò-Ü!¤!Ð$PÓ"QÐTVÕ"VÓWÐWñ ñ r   c                ó–  € VP                   P                  P                  VP                  4      pVf   \	        RVP
                  4       R# VP                  f-   \	        RV P                  P                  4       ,          4       R# VP                  P                  ^ 4      w  r4VP                   P                  P                  W434       R# )zë
helper to make sure that the pkg._records is pointing to the right
location - needed because python-apt 0.7.9 dropped the python-apt
version but we can not yet use the new version because on upgrade
the old version is still installed
zNo candidate ver: FzNo file_list for: %s T)
rK  r½   rï   ry   Úprintr~   rx  ÚpoprÁ   Úlookup)r#   r€   rò   r6   rˆ  s   &&   r   Ú_lookupPkgRecordÚMyCache._lookupPkgRecordè  s’   € ð �k‰k×#Ñ#×5Ñ5°c·h±hÓ?ˆØŠ;ÜÐ&¨¯©Ô1ÙØ�=‰=Ò ÜÐ)¨D¯I©I¯N©NÓ,<Õ<Ô=ÙØ—=‘=×$Ñ$ QÓ'‰ˆØ�‰×Ñ×#Ñ# Q JÔ/Ùr   c                ó  € / p\        4       pV  Fù  pV P                  V4      '       g*   \        P                  ! R VP                  ,          4       KC  VP
                  P                  P                  P                  R4       Fƒ  pVP                  R4      '       g   K  V\        R4      R P                  R4       FF  pVP                  4       pWQ9  d   \        4       W&   W,          P                  VP                  4       KH  	  K…  	  Kû  	  V Fo  pRpV P                  P                  RR4      pWW9   d   RpW,           F  pW,          P                  '       d   K  Rp M	  V'       g   K^  VP                  V4       Kq  	  V# )	z&no PkgRecord found for '%s', skipping rd  úTask:NÚ,TrQ   ÚIgnoredTasksF)rr   rœ  r1   rç   r~   rK  rÁ   ÚrecordrB  Ú
startswithr…   rp   r}   r^   r_   r  )	r#   ÚtasksÚinstalled_tasksr€   ÚlineÚtaskrw  Úignored_tasksr(  s	   &        r   ÚinstalledTasksÚMyCache.installedTasksú  s7  € àˆÜ›%ˆÛˆCØ×(Ñ(¨×-Ò-Ü—’ÐFÈÏÉÕQÔRÙØŸ™×,Ñ,×3Ñ3×9Ñ9¸$Ö?�Ø—?‘? 7×+Ô+Ø!%¤c¨'£l mÐ!4× ;Ñ ;¸CÖ @˜Ø#Ÿz™z›|˜ØÔ,Ü*-«%˜E™KØ�Ÿ™¨¯©Ö1ó	 !Aó @ñ	 ó ˆDØˆIØ ŸK™K×/Ñ/°¸.ÓIˆMØÔ$Ø!�	Ø Ÿ;˜;�Ø•}×1×1Ò1Ø %�IÙñ '÷ ‰yØ×#Ñ# DÖ)ñ ð Ðr   c                óÖ  € \         P                  ! R 4       V  EFK  pVP                  '       g   VP                  '       d   K*  V P	                  V4       \        VP                  P                  R4      '       d'   VP                  P                  P                  '       g*   \         P                  ! RVP                  ,          4       K°  VP                  P                  P                  P                  R4       Fh  pVP                  R4      '       g   K  V\        R4      R P                  R4       F+  pVP                  4       pWA9   g   K  VP                  4        K-  	  Kj  	  EKN  	  R# )zrunning installTasksr¢  zcan not find Record for '%s'rd  rŸ  Nr   T)r1   rç   rù   r  rœ  r¦   rK  rÁ   r¢  r2   r~   rB  r£  r…   rp   r  )r#   r¤  r€   r¦  r§  s   &&   r   ÚinstallTasksÚMyCache.installTasks  sý   € Ü�ŠÐ,Ô-ÜˆCØ×!×!Ð! S×%5×%5Ð%5ÙØ×!Ñ! #Ô&Ü˜CŸK™K×0Ñ0°(×;Ò;ÀÇÁ×@TÑ@T×@[×@[Ð@[Ü—’Ð >ÀÇÁÕ IÔJÙØŸ™×,Ñ,×3Ñ3×9Ñ9¸$Ö?�Ø—?‘? 7×+Ô+Ø!%¤c¨'£l mÐ!4× ;Ñ ;¸CÖ @˜Ø#Ÿz™z›|˜Øž=Ø×,Ñ,Ö.ó !Aô @ñ ñ r   c                óp   € V P                   P                  R R4       F  pV P                  VR4       K  	  R# )rQ   ÚBaseMetaPkgsz%base meta package keep installed ruleN)r^   r_   r)  )r#   rZ   r€   s   && r   rl  Ú"MyCache._keepBaseMetaPkgsInstalled'  s/   € Ø—;‘;×&Ñ& x°Ö@ˆCØ× Ñ  Ð&MÖNó Ar   c           	     ó<  a a€ VV 3R  lpS P                   P                  RR4      oS P                   P                  RR4       FF  pS V,          P                  4        \        P                  ! S 4      P                  S V,          4       KH  	  S F£  p VS 9   d™   S V,          P                  '       d~   S V,          P                  '       dc   \        P                  ! RV,          4       S V,          P                  4        \        P                  ! S 4      P                  S V,          4       KŸ  K¡  K£  K¥  	  V! 4       '       gá   \        P                  ! R	S,          4       S F½  pR
pS P                   P                  VR4       F)  pYcS 9   ;'       d    S V,          P                  ,          pK+  	  V'       g   KX  \        P                  ! RV,          4        S V,          P                  4        \        P                  ! RT: RS T,          P                   : R24        M	  V! 4       '       gK   RP#                  S^ R 4      pVP                  \        R4      \        R4      VSR,          3,          4       R# R
#   \         d,   p\        P                  ! RT: RT: R24        Rp?EK  Rp?ii ; i  \        \        3 dW   p\        P                  ! RT: RT: R24       TP                  \        R4      T,          \        R4      4        Rp? R# Rp?ii ; i)c                 óT  <€ S F   p V S9   g   K  SV ,          pVP                   '       d:   VP                  '       d(   \        P                  ! RVP                  ,          4       VP                   '       d   VP                  '       d   SV ,          P
                  '       g   KŸ   R# 	  R# )zU
internal helper that checks if at least one meta-pkg is
installed or marked install
z(metapkg '%s' installed but marked_deleteTF)r  rü   r1   rç   r~   rù   )r  r€   r`   r#   s     €€r   ÚmetaPkgInstalledÚ2MyCache._installMetaPkgs.<locals>.metaPkgInstalled-  s~   ø€ ó
  �Ø˜$–;Ø˜s�)�CØ×'×'Ð'¨C×,=×,=Ð,=ÜŸšÐ&PÐSV×S[ÑS[Õ&[Ô\Ø×)×)Ð)°#×2C×2CÐ2CØ �9×3×3Ò3Ú#ñ  ñ r   rQ   rR   r¯  zMarking '%s' for upgradezCan't mark 'z' for upgrade (rî   Nz$none of the '%s' meta-pkgs installedTr  z!guessing '%s' as missing meta-pkgzfailed to mark 'z' for install (zCan't install '%s'z‹It was impossible to install a required package. Please report this as a bug using 'ubuntu-bug ubuntu-release-upgrader-core' in a terminal.Fzmarked_install: 'z' -> 'Ú'r„   zCan't guess meta-packagez×Your system does not contain a %s or %s package and it was not possible to detect which version of Ubuntu you are running.
 Please install one of the packages above first using synaptic or apt-get before proceeding.rW   )r^   r_   r  ri   ÚProblemResolverÚprotectr  Úis_upgradabler1   rç   r  rg   r2   ÚKeyErrorr  r   rù   r†   )	r#   rZ   r³  r€   r  rt   r  Ú	meta_pkgsr`   s	   f&      @r   rm  ÚMyCache._installMetaPkgs+  s‚  ù€ ö	ð  —;‘;×&Ñ& x°Ó<ˆð —;‘;×&Ñ& x°Ö@ˆCØ��I×"Ñ"Ô$Ü×Ò Ó%×-Ñ-¨d°3­iÖ8ñ Aó ˆCð
OØ˜4”KØ˜•I×*×*Ð*Ø˜•I×+×+Ð+Ü—M’MÐ"<¸sÕ"BÔCØ˜•I×*Ñ*Ô,Ü×'Ò'¨Ó-×5Ñ5°d¸3µiÖ@ñ ,ñ +ñ  ñ ñ  ×!Ò!Ü�MŠMÐ@À8ÕKÔLÛ�Ø!�
ØŸ;™;×.Ñ.¨sÐ4EÖF�CØ¨¡+×"HÐ"H°$°sµ)×2HÑ2HÕH’Jñ Gç‘:Ü—M’MÐ"EÈÕ"KÔLð%Ø˜S�	×.Ñ.Ô0ô —M“MÃCÈÈcÍ×IaÔIaÐ"bÔcÙñ'  ñ*  ×!Ò!ØŸ	™	 (¨1¨R .Ó1ˆIØ�J‰J”qÐ3Ó4Üð 6ó 7ð # H¨R¥LÐ1õ2ô3ñ ÙøôS ô Oô —“ÃcË1Ð M×NÓNûðOûô  (¬Ð2ô 	%ÜŸ›Û'*«Að'/ô 0àŸ
™
¤1Ð%9Ó#:¸SÕ#@Ü#$ð &3ó $4ô5ö  %ûð	%ús>   ÂI;Â2I;ÃA I;ÇJ4É;J1ÊJ,Ê,J1Ê4LËA
LÌLc                óÆ   € V P                    FP  p\        P                  ! V4      P                  V4      '       g   K0  \        P
                  ! R V: RV: R24        R# 	  R# )zdenylist expr 'z' matches 'rµ  TF)rl   r   r   r    r1   rç   )r#   r(  Úexprs   && r   r‘  ÚMyCache._inRemovalDenylisty  sJ   € Ø×)Ô)ˆDÜ�zŠz˜$Ó×%Ñ% g×.Ô.Ü—“Û#£Wð.ô /âñ	 *ñ
 r   c                ó¦  € W9   d    \         P                  ! R V,          4       R# VP                  V P                  4      '       d    \         P                  ! RV,          4       R# WP                  8X  d    \         P                  ! RV,          4       R# V P                  V4      '       d    \         P                  ! RV,          4       R# V P                  P                  RR4       Ff  pW9   g   K  W,          P                  '       g   K%  W,          P                  P                  V8X  g   KH  \         P                  ! RV,          4        R# 	  R# )	zskipping foreign pkg '%s'Fz skipping running kernel pkg '%s'z skipping kernel metapackage '%s'z"skipping '%s' (in removalDenylist)rQ   r-  z'skipping '%s' (in KeepInstalledSection)T)
r1   rç   Úendswithr,   rn   r‘  r^   r_   rw  r.  )r#   r(  Úforeign_pkgsr.  s   &&& r   ÚisRemoveCandidateÚMyCache.isRemoveCandidate�  sí   € àÔ"Ü�MŠMÐ5¸Õ?Ô@ÙØ×Ñ˜DŸJ™J×'Ò'Ü�MŠMÐ<¸wÕFÔGÙØ×,Ñ,Ô,Ü�MŠMÐ<¸wÕFÔGÙØ×"Ñ" 7×+Ò+Ü�MŠMÐ>ÀÕHÔIÙà—{‘{×*Ñ*¨8Ð5KÖLˆGØ– D¥M×$;×$;Ò$;Ø•M×+Ñ+×3Ñ3°wÖ>Ü—’ÐGÈ'ÕQÔRÚñ	 Mñ r   c           
     óÞ  € W9  d   R # W9  d   R#  V P                   P                  RR4      pV'       d   V P	                  4         W,          P                  WTR7       V P                  P                  4        V'       dm   W9   d   R# V P                  4        FP  pVP                  V9  g   K  \        P                  ! RV: RVP                  : R24       V P                  4         R # 	  R#   \        P                   d    R p LÚi ; i  \        \        3 dP   p\        P                  ! RT: R	\!        T4      : R
T: R24       T'       d   T P                  4         Rp?R # Rp?ii ; i)FTrQ   ÚPurgeObsoletes)Úpurger  z	package 'z ' produces an unwanted removal 'z', skippingz'_tryMarkObsoleteForRemoval failed for 'r  ú: rî   N)r^   r}  r~  r  rý   r  rZ   rU  rø   r~   r1   rç   r
  rg   r¹  r2   Úrepr)r#   r(  Úremove_candidatesÚforced_obsoletesr  rÆ  r€   rt   s   &&&&&   r   ÚtryMarkObsoleteForRemovalÚ!MyCache.tryMarkObsoleteForRemoval˜  s$  € ð
 Ô+ÙØÔáð	Ø—K‘K×*Ñ*¨8Ð5EÓFˆE÷ Ø× Ñ Ô"ð	Ø�M×%Ñ%¨EÐ%ÔEØ�I‰I×#Ñ#Ô%ßØÔ.Ùà×+Ñ+Ö-�CØ—x‘xÐ'8Ö8ÜŸ›ÓdkÐmp×muÔmuÐ&vÔwØ×-Ñ-Ô/Ú$ñ	 .ñ øô3 ×)Ñ)ô 	ØŠEð	ûô( œXÐ&ô 	Ü�O‹OÓU\Ô^bÐcdÖ^eÓghÐiÔjßØ×%Ñ%Ô'Ýûð		ús=   ’C/ ÁA D Â	!D Â/:D Ã+D Ã/D	ÄD	ÄE,ÄAE'Å'E,c                ó¼   € \        4       pV  FK  pVP                  '       g   K  V P                  V4      '       d   K0  VP                  VP                  4       KM  	  V# ©z0get all package names that are not downloadable )rr   r  ÚanyVersionDownloadabler}   r~   )r#   Úobsolete_pkgsr€   s   &  r   Ú_getObsoletesPkgsÚMyCache._getObsoletesPkgsÀ  sL   € ä›ˆÛˆCØ××Òð
 ×2Ñ2°3×7Ô7Ø!×%Ñ% c§h¡hÖ/ñ ð Ðr   c                ój   € VP                   P                   F  pVP                  '       g   K   R# 	  R# )z@helper that checks if any of the version of pkg is downloadable TF)ry   rt  rx   )r#   r€   rò   s   && r   rÏ  ÚMyCache.anyVersionDownloadableÍ  s*   € à—8‘8×(Ô(ˆCØ××ÒÚñ )ñ r   c                óä   € \        4       pV  F_  pVP                  '       g   K  V P                  P                  VP                  4      '       g   KD  VP                  VP                  4       Ka  	  V# rÎ  )rr   r  r½   Ú
is_garbagery   r}   r~   )r#   Úunused_dependenciesr€   s   &  r   Ú_getUnusedDependenciesÚMyCache._getUnusedDependenciesÔ  sR   € ä!›eÐÛˆCØ××Ò D§N¡N×$=Ñ$=¸c¿h¹h×$GÔ$GØ#×'Ñ'¨¯©Ö1ñ ð #Ð"r   c                ól  € \        4       pV  EF"  pVP                  '       d   VP                  '       g   K*  V P                  V4      '       dº   VP                  P                  P
                   F“  w  r4VP                  '       d   K  VP                  R8X  d[   VP                  P                  V P                  4      '       d   KW  VP                  P                  V P                  4      '       d   K„  W1VP                  &    Kö  	  Kú  V P                  V4      '       g   EK  RWP                  &   EK%  	  V# )a\  
Check for packages that do not have 'Ubuntu' as their origin.
Return this as a dict with <package name> -> <package file>.

If an installed package has a candidate that is not downloadable,
but *some* version of the package is downloadable, consider that
package foreign. In such cases, the package will have a value of None
in the returned dict.
ÚUbuntuN)Údictr  rw   rx   Ú_candrx  Ú
not_sourcerŠ  Úarchiver£  ra   rb   r~   rÏ  )r#   Úforeignr€   Úpkg_fileÚ_indexs   &    r   rp  ÚMyCache.foreign_packagesÜ  sç   € ô “&ˆäˆCØ×$×$Ð$¨¯¯¨Ùà× Ñ  ×%Ò%Ø*-¯-©-×*=Ñ*=×*GÔ*GÑ&�Xà×*×*Ð*Ù ð !Ÿ™¨8Ô3à$×,Ñ,×7Ñ7¸¿¹×GÔGØ$×,Ñ,×7Ñ7¸¿¹×EÔEð -5 §¡Ñ)Úó +Hð  ×,Ñ,¨S×1Õ1ð %)�Ÿ™Ô!ñ1 ð4 ˆr   c                ó¦  a€  ! R R\         4      pV3R lp. o/ p/ p\        R4      ;_uu_ 4       pV F2  p VP                  4       w  r‰rŠr¼T	S9   d   K!  SP                  T	4       K4  	  RRR4       SP                  \        R	R
7       \        P                  P                  R4      pRRRRVRR3 EF  p\        P                  P                  V4      pV! V4      p\        P                  P                  V4      '       d5   \        P                   ! V4      pVP"                  VP$                  ,          pM\        P&                  ! RV,          4       ^ pVV9   d9   \        P
                  ! RV: RVV,          : 24       WTV,          ,          W_&   Kâ  \        P
                  ! RV: RV: 24       WôV&   V! V4      W_&   EK  	  ?\        P
                  ! RV,          4       ^ pV  F‡  p\(        P*                  ! RVP,                  4      '       g   K,  VP.                  '       g   VP0                  '       g   KR  \        P
                  ! VP,                  : R\2        : R24       V^,          pK‰  	  V\2        ,          V^,           \4        ,          ,           pRpV'       d~   V  FZ  pVP6                  '       g   K  VP0                  '       g   VP8                  '       g   K=  VVP:                  P<                  ,          pK\  	  \        P
                  ! RV,          4       WàP>                  3RV P@                  3RV PB                  3RRV3R R!RV33 F§  w  ppV^ 8  d   K  \        P                  P                  V4      p\        P
                  ! RVVVV,          VV,          PD                  3,          4       VV,          ;PD                  V,          un"        VV,          ;PF                  V,          un#        K©  	  / pV EF  pVV,          PD                  ^ 8  g   K  \        PH                  ! \K        \M        VV,          PD                  4      ^,           4      4      p\O        V\P        4      '       d%   VPS                  \T        PV                  ! 4       4      p\        PH                  ! VV,          PF                  4      p\O        V\P        4      '       d%   VPS                  \T        PV                  ! 4       4      p\Y        VV! V4      V4      VV! V4      &   EK  	  \        V4      ^ 8”  dY   \        PZ                  ! RV Uu. uF  p\]        V4      NK  	  up,          4       \_        \a        VPc                  4       4      4      hR	#   \         d,   p\        P
                  ! RT: RT: R24        Rp?EK  Rp?ii ; i  + '       g   i     ELZ; iu upi )"z»
this checks if we have enough free space on /var, /boot and /usr
with the given cache

Note: this can not be fully accurate if there are multiple
      mountpoints for /usr, /var, /boot
c                   ó*   a € ] tR tRt o RtR tRtV tR# )Ú)MyCache.checkFreeSpace.<locals>.FreeSpacei  z?helper class that represents the free space on each mounted fs c                ó    € Wn         ^ V n        R# )r   N©ÚfreerM  )r#   ÚinitialFrees   &&r   r"   Ú2MyCache.checkFreeSpace.<locals>.FreeSpace.__init__  s   € Ø'”	Ø�–	r   rè  NrM   rF   s   @r   Ú	FreeSpaceræ    s   ø‡ € ÙN÷ð r   rì  c                óP   <€ S F  pV P                  V4      '       g   K  Vu # 	  R# )zoreturn 'id' of a directory so that directories on the
same filesystem get the same id (simply the mount_point)
Ú/)r£  )ÚdÚmount_pointÚmounteds   & €r   Ú
make_fs_idÚ*MyCache.checkFreeSpace.<locals>.make_fs_id  s)   ø€ ó  '�Ø—<‘< ×,Ô,Ø&Ò&ñ  'ñ r   z/proc/mountszline 'z"' in /proc/mounts not understood (rî   NT)r  ÚreversezDir::Cache::archivesrî  ú/usrz/varz/bootz/homez/tmp/zdirectory '%s' does not existszDir z mounted on zFree space on rÇ  zfs_free contains: '%s'z%^linux-(image|image-debug)-[0-9.]*-.*z (new-install) added with z to boot spaceg        z&additional space for the snapshots: %sz dir '%s' needs '%s' of '%s' (%f)zNot enough free space: %s)rõ  i   )z/tmpi  P )rî  i    )2Úobjectr™   rB  Ú
ValueErrorr1   rç   rû   r€  r…   rd   r^   rÕ   r+   r.   Úrealpathr—   ÚstatvfsÚf_bavailÚf_frsizer2   r   r    r~   rù   rú   ÚKERNEL_SIZEÚINITRD_SIZEr  rü   rw  Úinstalled_sizerÅ   rÉ   rÎ   ré  rM  Úsize_to_strÚfloatÚabsrq  ÚbytesÚdecodeÚlocaleÚgetpreferredencodingr:   r  rh   rH   r‰   Úvalues)r#   Úsnapshots_in_userì  rò  Úmnt_mapÚfs_freeÚmountsr¦  r   ÚwhereÚoptionsÚar‹  rt   Ú
archivedirrï  Úfs_idÚstré  Úkernel_countr€   Úspace_in_bootÚrequired_for_snapshotsr>   ÚsizeÚrequired_listÚfree_at_leastÚfree_neededrX  rñ  s   &&                           @r   ÚcheckFreeSpaceÚMyCache.checkFreeSpace  sš  ø€ ô	œô 	õ	ð ˆØˆØˆÜ�.×!Ô! VÛ�ðØ37·:±:³<Ñ0�Q˜q¨1ð  Ö'Ø—N‘N 5Ö)ñ ÷ "ð 	�‰œ dˆÔ+Ü—^‘^×,Ñ,Ð-CÓDˆ
Ø�v˜v w°
¸GÀWÔMˆAÜ—‘× Ñ  Ó#ˆAÙ˜q“MˆEÜ�w‰w�~‰~˜a× Ò Ü—Z’Z “]�Ø—{‘{ R§[¡[Õ0‘ä—’Ð @À1Õ DÔEØ�Ø˜ÔÜ—“Û  '¨%§.ð2ô 3à$¨U¥^Õ4�“
ä—“Û ¢$ð(ô )à!"˜‘Ù& t›_�”
ñ# Nð$ Ü�ŠÐ.°Õ8Ô9ð
 ˆÛˆCô �xŠxÐ?ÀÇÁ×JÔJð ×%×%Ð%¨×);×);Ò);Ü—M’MÐTW×T\ÔT\×^iÐ"jÔkØ  AÕ%’Lñ ð &¬Õ3Ø(¨1Õ,´Õ;õ<ˆð "%ÐßÛ�Ø×$×$Ò$Ø×'×'Ð'¨3×+<×+<Ò+<Ø*¨c¯m©m×.JÑ.JÕJÒ*ñ ô �MŠMÐBÐE[Õ[Ô\ð (×)?Ñ)?Ð@Ø# T×%CÑ%CÐDà# T×%MÑ%MÐNà2Ø$ mÐ4Ø1Ø/à#Ð%;Ð<ó‰KˆS�$ð �aŒxÙÜ—'‘'×"Ñ" 3Ó'ˆCÜ�MŠMÐ<ÀÀTÈ7ÐSVÍ<ÐY`ÐadÕYe×YjÑYjÐ?kÕkÔlØ�C�L×Ò Õ%ÕØ�C�L×Ò Õ%×ñ%ð* ˆÜˆCØ�s�|× Ñ  1Ö$ä '× 3Ò 3´E¼#¸gÀc½l×>OÑ>OÓ:PÐQRÕ:RÓ4SÓ T�Ü˜m¬U×3Ò3Ø$1×$8Ñ$8Ü×3Ò3Ó5ó%7�Mä%×1Ò1°'¸#µ,×2CÑ2CÓD�Ü˜k¬5×1Ò1Ø"-×"4Ñ"4Ü×3Ò3Ó5ó#7�Kô
 2CÀ;ÑPZÐ[^ÓP_ÐanÓ1o�™j¨›oÔ.ñ ô  ˆ}Ó Ô!Ü�MŠMÐ5ÉÓ8WÉÀA¼¸Q¾ÉÑ8WÕWÔXÜ)¬$¨}×/CÑ/CÓ/EÓ*FÓGÐGÙøôO "ô Ü—M“MÓUYÓ[\Ð"]Ô^Þûðú÷	 "×!Ð!üòR 9Xs@   °V:·VÁV:ÁV:Ô<W
ÖV7	ÖV2	Ö+V:Ö2V7	Ö7V:Ö:W	)rc   r^   ra   rn   r\   r�   r`   r¨   r¥   r]   r[   rl   rb   rX   rY   r,   rZ   )NTNNr<   )T)Ú )F);r   r   r   r   r{   r|   r"   Úpropertyr�   r�   rq   r«   r°   r¹   rÅ   rÉ   rÎ   rÒ   rf   rØ   rÛ   râ   rˆ   rŒ   rx   rõ   rý   r  r
  r  r  r  r  r"  r%  r)  r/  r3  r=  rE  rO  rY  rŒ  ro  rœ  r©  r¬  rl  rm  r‘  rÂ  rË  rÑ  rÏ  rØ  rp  r  r   r'   rF   s   @r   rO   rO   †   s™  ø‡ € Ø€IØ€Mô(JðT ñ	ó ð	òò6Fò$ò$òð ñ$ó ð$ð ñ'ó ð'ð ñó ðð ñ/ó ð/ò
1ò!ô_ò5òDòBô	 ò+ò
0òò>òò<ô$ôô+ô
=ò
/òpò@.ò/ò$ò rò*	ð ñMó ðMò^ò8ð$ ñó ðò6ò"OòLò\òð. ñ%ó ð%òNòò#ò&÷PLò Lr   rO   )!ri   rd   r-   r  r+   r   r1   rV  rž   rg  r~  Ú
subprocessr   r   ÚDistUpgradeGettextr   r   r   Úutilsr   rC  r	   r   r   r   r8   rü  rý  rö  r:   rH   rj   rO   r
   r   r   Ú<module>r     s§   ðó, Û Û Û Û 	Û 	Û Û Û Û Û ß "å ,Ý (å  ô	�Yô 	ô	 .ô 	ô	 Nô 	ô Iô ò* ñB ?Ó@Ñ €ˆ[ôB˜ô Bô A˜nô AôJˆc�i‰iö Jr   