__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

�E�gm����SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK
r
SSKrSSKrSSKJr SSKJr SSKJr SSKJrJrJrJrJrJrJr SSKJ r  SSK!J"r" SS	K#J$r$ SS
K%J&r& SSK'J'r' SSK(J)r) SS
K(J*r* \)RV\*l+SSK,J-r-J.r.J/r/J0r0 SSK1J2r3 SSK1J4r4 SSK2r2SSK#J5r5J6r6J7r7 SSK8J9r9 Sr:Sr;Sr<Sr="SS\>5r?g)�N)�
NoOptionError)�ConfigParser�)�get)�url_downloadable�check_and_fix_xbit�iptables_active�
inside_chroot�)get_string_with_no_auth_from_source_entry�is_child_of_process_name�
inhibit_sleep)�urlsplit)�Step)�MyCache)�DistUpgradeConfig)�DistUpgradeQuirks)�distinfo)�sourceslist)�SourcesList�SourceEntry�Deb822SourceEntry�	is_mirror)�gettext)�ngettext)�CacheExceptionDpkgInterrupted�CacheExceptionLockingFailed�NotEnoughFreeSpaceError)�
run_apportz/var/run/reboot-requiredc�j�/SQnURU5$![a [U5S-s$f=f)zAkey() function for sorted to ensure "correct" component ordering ��main�
restricted�universe�
multiverser)�index�
ValueError�len)�a�orderings  �C/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeController.py�component_ordering_keyr+Qs:��?�H���~�~�a� � �����8�}�Q����s��2�2c��/SQnURS5SnURU5$![a [U5S-s$f=f)z=key() function for sorted to ensure "correct" suite ordering )��updates�security�	backports�proposed�-�r)�	partitionr%r&r')r(r)�pockets   r*�suite_ordering_keyr6[sK��C�H�
�[�[��
�a�
 �F���~�~�f�%�%�����8�}�Q����s�+�A�Ac��/nURS5 URS5 [US5n[R"UR	55nSSS5 U[S[
W5S5Vs/sHoCXDS-RS5PM sn-
nURS5 U$!,(df   N^=fs snf)Nz$-----BEGIN PGP PUBLIC KEY BLOCK-----r-�rbr�@zus-asciiz"-----END PGP PUBLIC KEY BLOCK-----)�append�open�base64�	b64encode�read�ranger'�decode)�keyring_path�out�f�data�is     r*�gpg_keyring_to_asciirFes���
�C��J�J�5�6��J�J�r�N�	
�l�D�	!�Q��������)��
"��U�1�c�$�i��5L�M�5L���R�4�L���
�+�5L�M�M�C��J�J�3�4��J�

"�	!��Ns�%B.�7B?�.
B<c�`�\rSrSrSrS9SjrS:SjrSrSrSr	S	r
S
rSrSr
S
rSrSrSrSrSrSrSrSrSrSrS;SjrSrSrSrSrSrSrSr S r!S!r"S"r#S#r$S$r%S%r&S&r'S'r(S(r)S)r*S*r+S+r,S,r-S-r.S.r/S/r0S0r1S1r2S2r3S3r4S4r5S5r6S<S6jr7S7r8S8r9g)=�DistUpgradeController�tz2this is the controller that does most of the work Nc
��SnUS:XdUS:Xa5[R"5n[RRUS5nX0lX l[R"[[R"S[R"S5555Ul
[R"SU5 [R "S5 [R"SUR"R$-5 XlUR&R)[+S	55 SUlSUl[1U5UlSUR2R5S
S5-UlUR2R9S5 UR2R;SS
S5 UR
(a8UR
R<(aUR2R;SS
S5 [>R@"5nUR5S5Ul!UR5S5Ul"[FRH"5nUR2R5SS5Ul%URMURJ5Ul'URBURQ5;Ul)UR2RUSS5Ul+[RR[XR2R[S5S5Ul.[XR2R_S5Ul0UR`S;aSUl1SUl2OSUl1SUl2S[Rf;a6[R"S5 [XR2R;SS5 S Ul4[kXR25Ul6[o5Ul8S![RfS"'S![RfS#'UR2RsS$S%5n[XR2R;S&[uU55 [XR2R;S'[uS(55 [XR2R;S)[uS*55 [XR2R;S+S,5 [XR2R;S-S,5 [XR2R;S.S/5 [XR2R;S0S15 UR2RUS2S35Ul;UR2RySS45Ul=/Ul>UR2RS55(a3UR2R�S55Vs/sHo�S6PM	 snUl>SUlA[;5UlB[�5UlD[�5UlEg![a! [R"S5 SUl
GNff=fs snf)7Nz/usr/share/locale/�.�mo�SUDO_UID�
PKEXEC_UIDzKFailed to determine invoking user, environment variables may be incomplete.�ubuntu-release-upgraderzUsing '%s' viewz
Reading cache�Files�	BackupExt�Options�
devRelease�False�True�VERSION_CODENAME�
VERSION_ID�Sources�To�From�Dir::Etc::sourceparts�ubuntu.sourceszAPT::Architecture)�amd64�i386z http://archive.ubuntu.com/ubuntuz!http://security.ubuntu.com/ubuntuz$http://ports.ubuntu.com/ubuntu-ports�"RELEASE_UPGRADE_NO_FORCE_OVERWRITEzenable dpkg --force-overwritezDPkg::Options::z--force-overwriteF�1�RELEASE_UPGRADE_IN_PROGRESS�PYCENTRAL_FORCE_OVERWRITE�Network�
MaxRetrieszAcquire::Retriesz
Dpkg::MaxArgsizDpkg::MaxArgBytesizAcquire::http::Timeout�20zAcquire::ftp::TimeoutzApt::Get::List-Cleanup�falsez'APT::Get::Always-Include-Phased-Updates�yes�Distro�ForcedObsoletes�ValidMirrors�ThirdPartyMirrorsr)F�os�getcwd�path�join�datadir�options�pwd�getpwuid�int�getenv�_invoking_user_pwd�	TypeError�logging�debugr�bindtextdomain�
textdomain�	__class__�__name__�_view�updateStatus�_�cache�fetcherr�configr�sources_backup_ext�add_section�set�
devel_release�platform�freedesktop_os_release�fromDist�fromVersion�distro_info�UbuntuDistroInfo�toDist�version�	toVersion�	supported�
isFromDistEOL�getlist�supportedFromDists�apt_pkg�find_dir�default_sources_filepath�find�arch�default_source_uri�security_source_uri�environ�_partialUpgrader�quirksr
�inhibitor_fd�getint�str�forced_obsoletes�getListFromFile�
valid_mirrors�valid_3p_mirrors�has_section�items�_session_bus�_generated_sources_files�dict�_foreign_packages_pre_rewrite�_foreign_packages_post_rewrite)	�self�distUpgradeViewrqrp�	localedir�
os_release�di�
maxRetries�pairs	         r*�__init__�DistUpgradeController.__init__ws��(�	��d�?�g��n��i�i�k�G������W�T�2�I�����		+�&)�l�l��B�I�I�j�"�)�)�L�*A�B�C�'�D�#�	���8��C����4�5�	�
�
�'�/�*C�*C�*L�*L�L�M�$�
��
�
����/� 2�3���
����(��0���"%�d�k�k�o�o�g�k�&J�"J���	
�����	�*������	�,��8��<�<��|�|�)�)������	�,��?��4�4�6�
�"���'9�:��
�%�>�>�,�7���
�
)�
)�
+���k�k�o�o�i��6������D�K�K�0���!�]�]�"�,�,�.�@���"&�+�+�"5�"5�i��"H���)+������N�N�#�#�$;�<��)
��%�
�N�N�'�'�(;�<��	��9�9�)�)�&H�D�#�'J�D�$�&L�D�#�'M�D�$�0�r�z�z�A��M�M�9�:��N�N���0�1D�E� %���(��k�k�:���*�O���58��
�
�0�1�25��
�
�.�/��[�[�'�'�	�,�?�
������-�s�:��?�	�����?�C��L�9������.��H�
�>�	�����3�D�9������2�4�8�	�����3�W�=�	�����D�e�L�!%��� 3� 3�H�=N� O���!�[�[�8�8��>�R��� "����;�;�"�"�#6�7�7�%)�[�[�%6�%6�7J�%K�%M�%K�26�!�W�%K�%M�D�!�!���),���%�.2�V��*�.2�f��+��c�	+��M�M�;�
�'+�D�#�	+��H%Ms�A
W�X�'X�Xc���[R"S5 URcURR	5 O4URR5 URR
5 SnSnURU5$![a�nUS-
nURR5 [R"S5 [R"SU-5 XC:�ay[R"SU-5 URR[S5[S	55 U(aUR5 SnAO#[ R""S5 SnAOSnAff=fM�)
NzopenCache()�rrg�������?z'failed to lock the cache, retrying (%i)zCache can not be locked (%s)zUnable to get exclusive lockz�This usually means that another package management application (like apt-get or aptitude) already running. Please close that application first.)rxryr�r��PreCacheOpen�release_lock�unlock_lists_dir�
_openCacherr~�
processEvents�time�sleep�errorr��abort�sys�exit)r��lock�restore_sources_list_on_fail�MAX_LOCK_RETRIES�
lock_retry�es      r*�	openCache�DistUpgradeController.openCache�s���
�
�m�$��:�:���K�K�$�$�&��J�J�#�#�%��J�J�'�'�)����
��
$����t�,�,��.�
$��a��
��
�
�(�(�*��
�
�3���
�
�=�
�J�L��0��M�M�"@�1�"D�E��J�J�$�$�Q�'E�%F�%&�(<�&=�>�4��
�
����������'
$��	s�9B
�

E*�B1E%�
E%�%E*c
�<�[URURURURR	5UUR
URS9UlURUlUR$URl[R("S[+UR5-5 g![a� [R"S5 /SQn[RRS5S:XaURS5 URR!5R#U5 [URURURURR	5UR
URS9UlGN)f=f)N)�	from_dist�to_distz-dpkg interrupted, calling dpkg --configure -a�z
/usr/bin/dpkgz--configurez-a�DEBIAN_FRONTEND�noninteractive�--force-confoldz/openCache(), new cache size %i)rr�r~r��getOpCacheProgressr�r�r��	apt_cacherrx�warningrlr�rr:�getTerminal�callr��partialUpgraderyr')r�r��cmds   r*r�� DistUpgradeController._openCaches#��	6� ����!%���!%���!%���!>�!>�!@�!%�+/�=�=�)-���
6�D�J�"�Z�Z�D�N�%)�$8�$8��
�
�!��
�
�7�#�d�j�j�/�I�J��-�	6��O�O�K�L�6�C��z�z�~�~�/�0�4D�D��
�
�,�-��J�J�"�"�$�)�)�#�.� ����!%���!%���!%���!>�!>�!@�+/�=�=�)-���6�D�J�
	6�s�A/B9�9CF�Fc��URRSS5nURRRU;agg)z�
Returns True if this view support upgrades over ssh.
In theory all views should support it, but for savety
we do only allow text ssh upgrades (see LP: #322482)
�View�
SupportSSHTF)r�r�r~r|r})r�r�s  r*�_viewSupportsSSH�&DistUpgradeController._viewSupportsSSH7s8���+�+�%�%�f�\�:�i�	
���	�	�	&�	&�)�	3��
�c	��[RRS5n[RRU5(Gd{[RR	S5(GaV[S5(GaEUR
5(d[[R"S5 URR[S5[S55 [R"S5 gS	nURR[S
5[S5U-5nUS:Xa[R"S5 [R"SS
SU-S[!U5/5nUS:XaY[S5n[S5U-n[#5(aSU-nU[S5U--
nURR%XE5 g)z�this will check for server mode and if we run over ssh.
if this is the case, we will ask and spawn a additional
daemon (to be sure we have a spare one around in case
of trouble)
z"/var/run/release-upgrader-sshd.pidz/proc�sshdzupgrade over ssh not allowedz.Upgrading over remote connection not supportedz�You are running the upgrade over a remote ssh connection with a frontend that does not support this. Please try a text mode upgrade with 'do-release-upgrade'.

The upgrade will abort now. Please try without ssh.rFi�zContinue running under SSH?aThis session appears to be running under ssh. It is not recommended to perform a upgrade over ssh currently because in case of failure it is harder to recover.

If you continue, an additional ssh daemon will be started at port '%s'.
Do you want to continue?z/usr/sbin/sshdz-oz
PidFile=%sz-przStarting additional sshdz�To make recovery in case of failure easier, an additional sshd will be started on port '%s'. If anything goes wrong with the running ssh you can still connect to the additional one.
z-iptables -I INPUT -p tcp --dport %s -j ACCEPTz�If you run a firewall, you may need to temporarily open this port. As this is potentially dangerous it's not done automatically. You can open the port with e.g.:
'%s'T)rlrnro�exists�isdirrr�rxr�r~r�r�r��askYesNoQuestion�
subprocessr�r�r	�information)r��pidfile�port�res�summary�descrr�s       r*�	_sshMagic�DistUpgradeController._sshMagicBs����'�'�,�,�C�D�������w�'�'��G�G�M�M�'�"�"�$�V�,�,��(�(�*�*��
�
�<�=��
�
� � ��#S�!T�!"�$H�"I�	#��������D��*�*�-�-��/�0��-�.�15�
5�6�C��e�|�������/�/�#3�#'���)?�#'��D�	�#3�4�C��a�x��6�7���L�� $�	$��
#�$�$�I�D�P�C��Q�A�B�EH�	H�H�E�
�
�
�&�&�w�6�r�c
�(�[R"S5 S/nUGHup#SU-n[RR	U5(dM1[5n[
U5nURU5 SSS5 URSS5n[RRSU-5nX�[RRS
U54;dM�[R"U<SU<SU<S[RRS
U5<S	35  g
 g!,(df   N�=f![a# [R"SU<SU<S	35  g
f=f![a$n	[R"SU	-5 Sn	A	 g
Sn	A	ff=f)z�check that /usr/bin/python3 points to the default python version.
Users tend to modify this symlink, which breaks stuff in obscure
ways (Ubuntu #75557).
z_pythonSymlinkCheck run)�python3r�z/usr/share/%s/debian_defaultsN�DEFAULTzdefault-versionzno default version for z found in '�'Fz/usr/bin/%szos.path.realpath failed (%s)z/usr/binz symlink points to: 'z', but expected is 'z' or 'T)rxryrlrnr��SafeConfigParserr;�	read_filerr�realpath�OSErrorr�ro)
r��binaries_and_dirnames�binary�dirname�debian_defaultsr�rC�expected_default�fs_default_versionr�s
          r*�_pythonSymlinkCheck�)DistUpgradeController._pythonSymlinkCheck}sO��
	�
�
�/�0�!7� 8��4�O�F�=��G�O��w�w�~�~�o�.�.�)�+���/�*�a��$�$�Q�'�+�!�'-�z�z�)�=N�'O�$�
!�)+���)9�)9�-�&�:P�)Q�&�*������Z�Yi�@j�-k�k��M�M�#)�+=�?O�QS�QX�QX�Q]�Q]�^h�jz�Q{�#}�~� �) 5�*�#+�*��%�!��M�M�#)�6�#3�4� �!���!��M�M�"@�1�"D�E� ��!�s6�"D"�=D3�"E#�"
D0	�3)E �E �#
F�-F�Fc
�&�URUR;d{URUR:XdaURR	[S5[SUR<SUR<S355 [R"S5 [R"SRURUR(aSOS-UR55 UR5 UR5(dZ[R"S	5 URR	[S5[S
55 [R"S5 UR5 UR R#UR5(dg
UR R%5UlUR&(aS[(R*S'OS[(R*S'UR-5(d[R"S5 g
SSKJn UH�n[(R2R5U5(dM)[(R6"U[(R85(aMU[R"SU-5 URR	[S5U-[S5U-5 UR;5 M� g![a#n[R"SU-5 SnAg
SnAff=f)z<initial cache opening, coherence checking, network checking zCan not upgradezAn upgrade from 'z' to 'z"' is not supported with this tool.rzUpgrading from {} to {}z (EOL)r-z%pythonSymlinkCheck() failed, abortingzMYour python3 install is corrupted. Please fix the '/usr/bin/python3' symlink.zopenCache() failed: '%s'NF�server�RELEASE_UPGRADE_MODE�desktopzcheckViewDepends() failed)�SYSTEM_DIRSz%s not writablezCan not write to '%s'z�Its not possible to write to the system directory '%s' on your system. The upgrade can not continue.
Please make sure that the system directory is writable.T)r�r�r�r~r�r�r�r�rxry�formatr�r�r�r��SystemErrorr��coherence_check�need_server_mode�
serverModerlr��checkViewDepends�DistUpgradeMainrrnr��access�W_OKr�)r�r�r�	systemdirs    r*�prepare�DistUpgradeController.prepare�s:���
�
��!8�!8�8�D�M�M�T�[�[�<X��J�J���Q�0�1��>B�m�m�T�[�[� Z�[�
\�
�H�H�Q�K��
�
�%�,�,��
�
�T�-?�-?��R�H����
�	
�	
�����'�'�)�)��M�M�A�B��J�J���Q�0�1�� L�M�
N�
�H�H�Q�K�	��N�N���z�z�)�)�$�*�*�5�5���*�*�5�5�7����?�?�19�B�J�J�-�.�1:�B�J�J�-�.��$�$�&�&��M�M�5�6��0�$�I��w�w�~�~�i�(�(����9�b�g�g�1N�1N��
�
�/�)�;�<��
�
� � ��-�.��:��"�#�&/�	/�0��
�
��%���?�	��M�M�4�q�8�9���	�s�&K#�#
L�-L�Lc��[R"SU-5 /nSnURH\nURHInSR	XE5n[U[R5(aSnM7UR
XE45 MK M^ X24$)a
Check if deb822 source points to downloadable archive(s).
Returns a tuple (bool, list).

The bool is True if any combination of URI and suite was downloadable,
or False if no combination was.

The list contains tuples of URI and suite that were not downloadable
together.
zverifySourcesListEntry: %sFz{}/dists/{}/ReleaseT)rxry�uris�suitesrrr:)r��entry�failed�downloadable�uri�suite�release_files       r*�_deb822SourceEntryDownloadable�4DistUpgradeController._deb822SourceEntryDownloadable�s{��	�
�
�2�U�:�;������:�:�C�����4�;�;�C�G��#�L�'�-�-�@�@�#'�L��M�M�3�+�.�&���%�%r�c�H�[URSS9nUVs/sHn[U[5(dMUPM nnUVs/sHn[U[5(aMUPM nn[R
R
[RRS5[RRS55nUVs/sH(nURU:XaUR(aM&UPM* nnU(aU(dgU(aU(aggs snfs snfs snf)z�
Return an integer indicating if sources are migrated to deb822.
Possible return values are:

    -1: not migrated to deb822 sources
     0: partially migrated to deb822 sources
     1: fully migrated to deb822 sources
T��matcherPath�deb822�Dir::Etc�Dir::Etc::sourcelistrr���)
rrp�
isinstancerrlrnror�r�r�r��file�invalid)r��sources�sr�	nondeb822�sourcelist_files      r*�migratedToDeb822�&DistUpgradeController.migratedToDeb822�s����$�,�,�t�D��$�I�W��
�1�6G�(H�!�W��I� '�P��1�z�!�=N�/O�Q��	�P��'�'�,�,��N�N�#�#�J�/��N�N��� 6�7�
��!*�G�	�1��V�V��6�1�9�9��	�	�G��)��
�	����)J��P��Gs"�D�D�D�D�%D�.Dc	���[R"S5 [RR	[
RRS5[
RRS55n[
RRS5n[
RRS5nSn[URS9UlURRS5 0nURGHbn[U[5(aUR(aM,UR S	:XaUR"(aMOUR$U:XadS
nUR'UR(5(a![RR	US5nOP[RR	US5nO/[RR+UR$5S
S-nXvR"UR UR(UR,4nXXn	[/[1U	SUR2-55U	S'U	SR5[6S9 GMe UR;5V
s/sHo�SPM	 sn
H}nUR;5V
s/sHo�SU:wdM
U
PM sn
HKn
U/U
SSQUP7n	U	SXZS:Xa,U	S==XZS-
ss'U	SR5[<S9 XZ	MKMM M UR?5V
V	s/sHup�U
SS	:XdMX�4PM sn	n
H�up�UR?5V
V	s/sHup�U
SS:XdMX�4PM sn	n
H_up�S
nUU
SUS:H-nUU
SUS:H-nUU
SUS:H-nUU
SUS:H-nUU
SUS:H-nU(dMVSS	/US'X\	Ma M� URA5GH�nUSnU[RR	US5:XaSUS'M4[RRC[RR+U5S
5n[RR	UUS-5n[RREU5(dw[RRC[RR+U5S
5nURGSS5S
S-n[RR	UU5n[RREU5(dGMXURIS5(aGMq[KU5nUVs/sHnSURM5(aUOS -PM! nnS!S!R	U5-US'GM� [1URA5V	s/sHo�SPM	 sn	5GHon/nURA5V	s/sHo�SU:XdM
U	PM sn	H�n	S"nU	S(aUS#-
nUS$ROSR	U	S55-
nUS%ROSR	U	S55-
nUS&ROSR	U	S55-
nUS'ROSR	U	S55-
nU	RIS5(aUS(ROU	S5-
nURQU5 M� [SUS)5nURUS!R	U55 SSS5 URVRYU5 GMr URV	s/sHn	[U	[5(dMU	PM sn	H�nUR$U:Xa	U(dM[RREUR$5(a [RZ"UR$5 URR[U5 M� URR]5 U(aT[SUS)5nURUS*RO[RR	US555 SSS5 gg![8a� 0n	XyS'UR"U	S'UR /U	S'UR(/U	S'UR,/U	S'[/[1UR255U	S'U	SR5[6S9 X�U'GMf=fs sn
fs sn
f![8a GMrf=fs sn	n
fs sn	n
fs snfs sn	fs sn	f!,(df   GN+=fs sn	f!,(df   g=f)+z6
Migrate .list files to corresponding .sources files.
zmigrateToDeb822Sources()rrr[zDir::Etc::trustedpartsF)r�.migratezdeb-srcTr\zthird-party.sourcesrz.sources�comps��key�filepath�disabled�typesrrrNr3�debz/ /usr/share/keyrings/ubuntu-archive-keyring.gpgz	signed-byz.gpgr2r� rK�
r-zEnabled: no
z
Types: {}
z	URIs: {}
zSuites: {}
zComponents: {}
z
Signed-By:{}
�wz"# Ubuntu sources have moved to {}
)/rxryrlrnror�r�r�r�rrpr#�backupr rr"�typer/r!�isMirrorr�splitext�dist�listr�r+�sortr+�KeyError�keysr6r��values�basenamer��rsplitrrF�striprr:r;�writer��add�remove�save)r�r&�sourceparts_dir�trustedparts_dir�migrated_sources_listr%r�new_filepathr-r��kr�ks�se�kb�be�can_combiner.�keyring�lines�lrn�stanzas�stanzarCs                         r*�migrateToDeb822Sources�,DistUpgradeController.migrateToDeb822Sourcess���	�
�
�0�1��'�'�,�,��N�N�#�#�J�/��N�N��� 6�7�
��"�.�.�1�1�2I�J��"�>�>�2�2�3K�L�� %��"�t�|�|�<��������J�'����\�\�E��e�[�1�1�U�]�]��
�z�z�Y�&�5�>�>���z�z�_�,�(,�%��=�=����+�+�#%�7�7�<�<��AQ�#R�L�$&�7�7�<�<��AV�#W�L� "�w�w�/�/��
�
�;�A�>��K�� ������U�Y�Y��
�
�S�C�

��J��!�#�a��j�5�;�;�&>�"?�@��'�
��'�
���$:��;�="�T&+�Z�Z�\�2�\���e�\�2�E�!&����@��A�2��%��a��@��	��.��#�2��.��.�/�A���z�U�X�g�%6�6��(��u�x��'9�9���(��(�(�-?�(�@�!�H�	7�	A�3�-2�K�K�M�O�M�5�A�Q�q�T�Y�=N��!��M�O�H�R�05���
�O�
�u���1����U�a�U�
�O���"���r�*�~��J��?�?���r�*�~��J��?�?���r�&�z�R��Z�7�7���r�(�|�r�(�|�;�;���r�'�{�b��k�9�9���;�#(�)�"4�B�w�K��	�P�P��\�\�^�E��Z�(�H��2�7�7�<�<��9I�J�J�%V��k�"��'�'�*�*�2�7�7�+;�+;�H�+E�a�+H�I���'�'�,�,�'7��6�9I�J���w�w�~�~�g�.�.�!�g�g�.�.�r�w�w�/?�/?��/I�!�/L�M�G�%�n�n�S�!�4�Q�7�&�@�G� �g�g�l�l�+;�W�E�G��7�7�>�>�'�*�*�5�9�9�[�3I�3I�0��9�E�FK�L�e��S������A��<�e�E�L�)-��	�	�%�0@�)@�E�+�&�+$�4�����?��1�:���?�@�D��G�!&����I��A�Z�=�D�3H�a��I�����Z�=��o�-�F��-�.�.�s�x�x��'�
�/C�D�D���,�-�-�c�h�h�q��y�.A�B�B���.�/�/�����8��0E�F�F���,�3�3�C�H�H�Q�w�Z�4H�I�I���5�5��%�%��.�5�5�a��n�E�E�F����v�&�J��d�C��A�����	�	�'�*�+�!�
�)�)�-�-�d�3�+A�0"&���L��A��A�{�1K�a��L�E��z�z�_�,�5J���w�w�~�~�e�j�j�)�)��	�	�%�*�*�%��L�L����&�M�	
������ ��o�s�+�q����=��������_�>N� O�P�R�,�+�!��M�	
��� ,�*�
� %����*�
�#�j�j�\��'�
�"�Y�Y�K��&�	�$�z�z�l��(��!�#�e�k�k�"2�3��'�
��'�
���$:��;��c�
�	
��3��@�� �����P��O��@M��@��J�!���M�",�+�s��Aa2�+d�d	�!d	�.Ad�d �#d �d&�d&�&d,�6d1�#d6�3d6�6!d;�
e
�*e
�)?e�2B
d�d�
d�d�;
e
	�
e c�|�UR(dg[RR[R
R
S5[R
RS55n[R
R
S5n[R"US35H)n[R"X3RS55 M+ [R"US3U5 URHn[R"U5 M g![a'n[R"SUSU35 SnAM�SnAff=f![a Nk[a&n[R"SUSU35 SnAN�SnAff=f![a'n[R"SUSU35 SnAM�SnAff=f)	Nrrr[�
/*.migrater*zFailed to restore z: zFailed to remove )r�rlrnror�r�r�r��glob�rename�removesuffixr�rxry�FileNotFoundErrorrD)r�r&rFrnr�s     r*�restoreMigratedSources�,DistUpgradeController.restoreMigratedSources�sq���,�,���'�'�,�,��N�N�#�#�J�/��N�N��� 6�7�
��"�.�.�1�1�2I�J���I�I�� 1��<�=�D�
@��	�	�$� 1� 1�*� =�>�>�	G��I�I�"�#�8�,��
��1�1�D�
?��	�	�$��2���
@��
�
� 2�4�&��1�#�>�?�?��
@��!�	���	G��M�M�.��.?�r�!��E�F�F��	G���
?��
�
� 1�$��r�!��=�>�>��
?�sN�)%D�E�=F
�
E	�"E�E	�
F�	F�!F�F�

F;�F6�6F;c�
�[RR[RRS5[RR
S55n[RRS5nUUR3US3/nU[R"USUR35-
nU[R"US35-
nUHn[R"U5 M g![a M,f=f)Nrrr[r*z/*rX)rlrnror�r�r�r�r�rYrDr�)r�r&rF�pathsrns     r*�cleanBackupSources�(DistUpgradeController.cleanBackupSources�s����'�'�,�,��N�N�#�#�J�/��N�N��� 6�7�
��"�.�.�1�1�2I�J����� 7� 7�8�9���x�(�
��	����o�.�b��1H�1H�0I�J�K�K��
����o�.�j�9�:�:���D�
��	�	�$�����
��
�s�C4�4
D�Dc���URRURSURUR/SQS9n[URURS-/[S9UlSURS'g)Nr1r �r!r6rr9�
orig_compsz-updatesr,�./usr/share/keyrings/ubuntu-archive-keyring.gpg�	Signed-By)	r#rCr�r�r��sortedr6r�section�r�r�s  r*�_addDefaultSources�(DistUpgradeController._addDefaultSources�sm���L�L����.�.���'�'����G�
�
���4�;�;����j�(@�A�0�2���!Q��	�	�+�r�c��URRURSURURS-/SQS9nSUR
S'g)Nr1�	-securityr rdrfrg)r#rCr�r�r�rirjs  r*�_addSecuritySources�)DistUpgradeController._addSecuritySources�sP���L�L����.�.���(�(����{�*�G�
�
��"R��	�	�+�r�c�t�[URRSSS5S[R;45$)NrX�AllowThirdPartyF�"RELEASE_UPGRADER_ALLOW_THIRD_PARTY)�anyr��getWithDefaultrlr��r�s r*�_allowThirdParty�&DistUpgradeController._allowThirdParty�s7����K�K�&�&�y�1B�5�I�0�B�J�J�>�
��	r�c�4�UR5(a[R"S5 g[R"URRSS55 URRSS5GHn[R"SU-5 XR;d�URUR(a�[URURR5S:Xd�URUR(dM�[URURR5S:XdM�URURRSRS:XdGM[R"S	U-5  g
 g)Nz,mirror check skipped, *overriden* via configTrh�BaseMetaPkgszChecking pkg: %srr�nowz)BaseMetaPkg '%s' has no candidate.originsF)rwrxr�ryr�r�r��	candidater'�origins�archive)r��pkgnames  r*�_mirrorCheck�"DistUpgradeController._mirrorChecks'��� � �"�"��O�O�J�K��	�
�
�d�k�k�)�)�(�N�C�D��{�{�*�*�8�^�D�G��M�M�,�w�6�7��
�
�*��Z�Z��(�2�2��T�Z�Z��(�2�2�:�:�;�q�@����G�$�.�.�.��T�Z�Z��(�2�2�:�:�;�q�@����G�$�.�.�6�6�q�9�A�A�U�J��
�
�I�G�S�T��E�r�c��
�0n/n/n/nURUR0nURRSS5H?nSR	URU5nSR	URU5nX�U'MA UR
V	s/sHAn	[
U	RU	R[U	[5(+45(aM?U	PMC n
n	U
GH&nUR(avURR(a[[R"S5 [UR 5[URS-/5-
nU(d	SUlM�X�l[UR"V
s/sH
n
SU
;dMU
PM sn
5UlUR"(d^UR Vs/sHo�R%S5(dMUPM sn(aUR&/UlOUR(/Ul[R"S	[+[,R."U55-5 UR"V
s/sHFn
[
UR1U
5UR3U
5UR5545(dMDU
PMH nn
U(dQSUlUR7U5 [R"S
[+[,R."U55-5 GM/nUR HnUR7X^5 M U(dQSUlUR7U5 [R"S[+[,R."U55-5 GM�[=[?[U55[@S9UlUR"V
s/sH
n
S
U
;dMU
PM nn
UR Vs/sH nURCSS5SS;dMUPM" nnSURD;=(a U=(a UnU(dGMDURGU5unnU(dQSUlUR7U5 [R"S[+[,R."U55-5 GM�U(a9[R"S[+[,R."U55-5 GM�SnUR H$nUU==[URH5-ss'M& GM) SURKUR[55;Ga5U(a0[MS5nUSRO[=SU555-
nO�U(a0[MS5nUSRO[=SU555-
nOl[MS5nU(aZU[MS5-
nUSRO[=[5RP"UV	s/sHo�RRPM sn	655-
nU[MS5-
nURTRW[MS5U5nU(dgURY5 UR[5 gs sn	fs sn
fs snfs sn
f![8a- X�R;5;aUR7U5 GM�GM�f=fs sn
fs snf![8a [URH5UU'GM
f=fs sn	f) z
deb822-aware version of rewriteSourcesList()

Return True if we found a valid dist to ugprade to, and return False
otherwise.
rX�Pocketsz{}-{}z2upgrade to development release, disabling proposedz	-proposedTzold-releases.ubuntu.com/rnzexamining: '%s'z(entry '%s' was disabled (unknown mirror)z&entry '%s' was disabled (unknown dist)r,z/security.ubuntu.comr2rr)r0r/r1z)entry '%s' was disabled (no Release file)z0some Release files were not downloadable for '%sr!z_This is probably because one or more of the following mirrors are out-of-date or unreachable:

r3c3�8# �UHoRv� M g7f�N�r��.0r�s  r*�	<genexpr>�=DistUpgradeController.rewriteDeb822Sources.<locals>.<genexpr>�s���C�*B�Q�5�5�*B���z\This is probably because of one or more of the following unsupported mirrors was disabled:

c3�8# �UHoRv� M g7fr�r�r�s  r*r�r��s���B�*A�Q�5�5�*A�r�zNThis is probably because the current apt sources configuration is unsupported.zO

The following suites were disabled because they are out-of-date or unknown:

zp

Would you like to continue the upgrade using default sources? If you select 'No', the upgrade will be aborted.z Required apt sources are missingF).r�r�r�r�rr#rtr"r/r rrqr�rxryr�rr�endswithr�r�r�copy�deepcopyr7�isThirdPartyMirrorrwr:r<r>rhr:r6r@r0rr+rr�ro�unionrr~r�rkro)r��found_components�disabled_unknown_mirror�disabled_no_release_file�disabled_unknown_dist�
suite_mappingr5rC�tr�r#r�no_proposed�ur$�
known_mirrors�
new_suites�
valid_uris�valid_suites�valid_torr�
found_to_distr�detailsr�s                          r*�rewriteDeb822Sources�*DistUpgradeController.rewriteDeb822Sourcess����"$��#%� � "��������4�
��k�k�)�)�)�Y�?�F����t�}�}�f�5�A����t�{�{�F�3�A� �!��@��|�|�
�#�!���	�	��
�
��q�"3�4�4���
�|�	�
��E��|�|���� :� :��
�
�R�S�!�%�,�,�/�#�t�}�}�{�7R�6S�2T�T��"�&*�E�N��$/�L�����F��A�!;�1�!D� ��F�G�E�J��:�:�$�|�|�G�|�!�z�z�+�/F�A�|�G�"&�":�":�!;�E�J�"&�"9�"9�!:�E�J��M�M�+�C�D�M�M�RW�DX�Y�Z�
[�
!�:�:��%�a���M�M�!�$��+�+�A�.��)�)�+����:�
��!�!%���'�.�.�u�5��
�
�H� I�$�-�-�X]�J^� _�`�a���J��\�\��-��%�%�m�&6�7�"��!%���%�,�,�U�3��
�
�F� I�$�-�-�X]�J^� _�`�a��%�d�3�z�?�&;�AS�T���&+�Z�Z�>�Z��3�1�<��Z�J�>�',�|�|�V�|�!� �x�x��Q�/��3�;T�T��|�L�V�����+�K�
�K�|�H���&*�%H�%H��%O�"�\�6��!%���(�/�/��6��
�
�I� I�$�-�-�X]�J^� _�`�a����
�
�P� I�$�-�-�X]�J^� _�`�a�!%�
�"�\�\�E�C�(��/�3�u�{�{�3C�C�/�*�o�z�)�-�-�d�k�k�3�5�A�A�'��B����4�9�9��C�*B�C�C����)��<����4�9�9��B�*A�B�B����
�4���
)��q�6� ��G��t�y�y������5J�%K�5J��e�e�5J�%K�L�*� ��G�
�q�N��
�G�
�*�*�-�-��4�5���C�
���#�#�%��$�$�&���q
��0F��H����( �-��0�0�2�2�"�)�)�!�,�,�3�-��">��V��0$�C�25�e�k�k�2B�(��/�C��D&Lss�>Y$�Y$�8
Y)
�Y)
�7Y.�Y.�AY3�Y3�Y8�&
Z2�4Z2�
Z7�+Z7� Z<�%[&�8.Z/�.Z/�<"[#�"[#c��[R"S5 [URSS9UlURRUR5 UR5(dUR5 URHanUR(dUR(aM'[UR[S9Ul[UR[S9UlMc URR!5 g)z-
deb822-aware version of updateSourcesList()
zupdateDeb822Sources()Trr,)rxryrrpr#r5r�r�r�r/r"rhr+r+rr6rE)r�rs  r*�updateDeb822Sources�)DistUpgradeController.updateDeb822Sources�s���	�
�
�-�.�"�t�|�|�D�I��������D�3�3�4��(�(�*�*��J�J�L��\�\�E��~�~����� ����2H�I�E�K�!�%�,�,�4F�G�E�L�"�	
������r�c��[R"S5 /n/n/n/n/nURGHnUR(aUR	UR
5 M2UR(aUR	UR
5 M`UR(aUR	UR
5 M�UR(a.UR(aUR	UR
5 M�UR(dM�UR(dM�UR	UR
5 GM [R"SSRU5-5 [R"SSRU5-5 [R"SSRU5-5 [R"SSRU5-5 [R"SSRU5-5 g)Nz$About to apply the following changeszKeep at same version: %sr2zUpgradable, but held- back: %sz
Remove: %szInstall: %szUpgrade: %s)rxryr��marked_installr:�name�marked_upgrade�
marked_delete�is_installed�
is_upgradable�marked_keepro)r��inst�up�rm�held�keep�pkgs       r*�_logChanges�!DistUpgradeController._logChanges�sB���
�
�<�=���
��
�������:�:�C��!�!�4�;�;�s�x�x�#8��#�#�R�Y�Y�s�x�x�%8��"�"�B�I�I�c�h�h�$7��"�"�s�'8�'8�4�;�;�s�x�x�;P��!�!�!�c�o�o�o�t�{�{�3�8�8�7L��	�
�
�0�3�8�8�D�>�A�B��
�
�6����$��G�H��
�
�l�S�X�X�b�\�1�2��
�
�m�c�h�h�t�n�4�5��
�
�m�c�h�h�r�l�2�3r�c��[R"S5 URR5 UR(dgURR5Ul[URR5S:�aK[R"S5 URRUR5 UR5 [URR5S:�apURRn[SS[U55n[SS[U55S	RU5-nURRX#5 g/nUR R#S
S5HEnXPR;dMURUR$(dM4UR'U5 MG [R"SS
R[)U55-5 URR+5Ul[R"SS
R[)UR,55-5 g)N�doPostInitialUpdateFrz-packages in reqReinstall state, trying to fixzPackage in inconsistent statezPackages in inconsistent statez�The package '%s' is in an inconsistent state and needs to be reinstalled, but no archive can be found for it. Please reinstall the package manually or remove it from the system.z�The packages '%s' are in an inconsistent state and need to be reinstalled, but no archive can be found for them. Please reinstall the packages manually or remove them from the system.z, rh�MetaPkgszMetaPkgs: %sr2�Obsolete: %sT)rxryr��PostInitialUpdater��foreign_packagesr�r'�req_reinstall_pkgsr��fix_req_reinstr~r�rror�r�r�r�r:rh�_getObsoletesPkgs�
obsolete_pkgs)r��	reqreinst�headerr��	meta_pkgsr�s      r*r��)DistUpgradeController.doPostInitialUpdate�s���	�
�
�+�,����%�%�'��z�z��
.2�Z�Z�-H�-H�-J��*��t�z�z�,�,�-��1��O�O�K�L��J�J�%�%�d�j�j�1��N�N���t�z�z�,�,�-��1��
�
�5�5�I��=�>�!�)�n�.�F�� ?�
 A�
 #�9�~�
/�26���9�1E�
F�G�
�J�J���V�-���	��;�;�&�&�x�
�;�C��j�j� �T�Z�Z��_�%A�%A�%A�� � ��%�<�	�
�
�n�s�x�x��y�0A�'B�B�C�"�Z�Z�9�9�;����
�
�n�s�x�x��t�7I�7I�0J�'K�K�L�r�c�z�[R"SU-5 URRR	5 UR
R
5nSnUbUnOURRSS5nSnXE:aURRU5 g
[R"S5 U(a2UR
R[S5[S
5SU-5 g![[4a:n[U5n[R"SU<SU<S35 US	-
nSnAM�SnAff=f)Nz"running doUpdate() (showErrors=%s)rrcrdr-z(IOError/SystemError in cache.update(): 'z'. Retrying (currentRetry: �)rTzdoUpdate() failed completelyzError during updatez�A problem occurred during the update. This is usually some sort of network problem, please check your network connection and retry.�%sF)rxryr��_list�read_main_listr~�getAcquireProgressr�r��updater�IOErrorr�r�r�)r��
showErrors�forceRetries�progress�currentRetryr��	error_msgr�s        r*�doUpdate�DistUpgradeController.doUpdate$s���
�
�:�Z�G�H��
�
���'�'�)��:�:�0�0�2�����#�#�J����+�+�I�l�C�J��	��'�
��
�
�!�!�(�+���
�
�4�5���J�J���Q�4�5�� 7�8�:>�	�9I�	
K�
�� ��)�
���F�	��
�
�lm�nz�{�|���!����	
�s�C0�0D:�/D5�5D:c
�H^�[RRS5(d[R"S5 g/SQn[U4SjU55(d[R"S5 gSn[
S5nUHhnUR5nUR5upVpxp�US
:waM0SnSURS5;dMI[R"SU5  SSS5 g SSS5 U(d/TRR[S5[S55 gTRR[S5[S55 g![a+n[R"S	U<S
U<S35 SnAGM	SnAff=f!,(df   N�=f)z<check that /boot/efi is a mounted partition on an EFI systemz/sys/firmware/efizNot an UEFI systemT)zshim-signedzgrub-efi-amd64z
grub-efi-ia32zgrub-efi-armzgrub-efi-arm64�
sicherbootc3�># �UH3oTR;=(a TRURv� M5 g7fr�)r�r�)r��blr�s  �r*r��6DistUpgradeController._checkBootEfi.<locals>.<genexpr>Ps.����Z�k�����#�C��
�
�2��(C�(C�C�k�s�;>z'UEFI system, but no UEFI grub installedFz/proc/mountszline 'z"' in /proc/mounts not understood (r�Nz	/boot/efi�rw�,zFound writable ESP %sz%EFI System Partition (ESP) not usablezxYour EFI System Partition (ESP) is not mounted at /boot/efi. Please ensure that it is properly configured and try again.zzThe EFI System Partition (ESP) mounted at /boot/efi is not writable. Please mount this partition read-write and try again.)
rlrnr�rxryrtr;rA�splitr&r~r�r�)r��bootloaders�mounted�mounts�line�what�where�fsrqr(�br�s`           r*�
_checkBootEfi�#DistUpgradeController._checkBootEfiEsc����w�w�~�~�1�2�2��M�M�.�/��y���Z�k�Z�Z�Z��M�M�C�D����
�.�
!�V����Z�Z�\���7;�z�z�|�4�T�"�q�
�K�'�����7�=�=��-�-��M�M�"9�4�@��!"�
!��"�$��J�J���Q�F�G�� J�K�
L��	
�J�J���Q�F�G�� J�K�
L���/"���M�M�UY�[\�"]�^�����"�
!�sB�?F�E�*F�F�,F�
F�%F�F�F�F�
F!c
�h�[S5n[S5n[S5n[S5n[S5n[S5n[S5nURRSS	S
5(a[R"S5 gUR5nURRU5 g![a�n	[RRS
5n
SnX�SUSUSUSUSU0nU	RH�n
US:waUS-
nU
RU;a@X�RU
RU
RU
RX�RS9-
nM^X�RU
RU
RU
RSS9-
nM� UR R#X5 Sn	A	g
Sn	A	ff=f)z9this checks if we have enough free space on /var and /usrzNot enough free disk spacez�The upgrade has aborted. The upgrade needs a total of {str_total} free space on disk '{str_dir}'. Please free at least an additional {str_needed} of disk space on '{str_dir}'. {str_remedy}zIRemove temporary packages of former installations using 'sudo apt clean'.z�You can remove old kernels using 'sudo apt autoremove' and you could also set COMPRESS=xz in /etc/initramfs-tools/initramfs.conf to reduce the size of your initramfs.zbEmpty your trash and remove temporary packages of former installations using 'sudo apt-get clean'.z!Reboot to clean up files in /tmp.r-�	FreeSpace�	SkipCheckFz,free space check skipped via config overrideT�Dir::Cache::archivesz/varz/boot�/z/tmpz/usrr2)�	str_total�str_dir�
str_needed�
str_remedyN)r�r�rurxr�� _is_apt_btrfs_snapshot_supportedr��checkFreeSpacerr�r��free_space_required_list�dirr�
size_total�size_neededr~r�)r��err_sum�err_msg�remedy_archivedir�remedy_boot�remedy_root�
remedy_tmp�
remedy_usr�with_snapshotsr��
archivedir�err_long�remedy�reqs              r*�_checkFreeSpace�%DistUpgradeController._checkFreeSpacets����0�1���9�:��
�F�G���=�>��
�0�1���:�;�
��r�U�
��;�;�%�%�k�+�e�D�D��O�O�J�K���>�>�@��	��J�J�%�%�n�5�4��3'�	�!���0�0�1G�H�J��H� ��/��{��;��j��j�*�F��1�1���r�>���_�X��7�7�f�$�������QT�QX�QX�:=�/�/�:@���/�!/�!K�K�H�������QT�QX�QX�:=�/�/�:<�!/�!>�>�H�2�
�J�J���W�/���1	�s�B4�4
F1�>C)F,�,F1c���URR[S55 URR	URUR
UR5(dgUR
(a5URRURR5(dgURR5nURR5 UR5 URR5 UR5(dgUR5(dgURR5 URR5 U$)N�Calculating the changesF)r~rr�r��distUpgraderr��installTasks�installedTasks�get_changesr�r�rr�)r��changess  r*�calcDistUpgrade�%DistUpgradeController.calcDistUpgrade�s����
�
����";� <�=��z�z�%�%�d�j�j�$�/�/�4�CW�CW�X�X���?�?��:�:�*�*�4�:�:�+D�+D�E�E���*�*�(�(�*���
�
� � �"�	
�����
�
� � �"��#�#�%�%���!�!�#�#���
�
� � �"�	
�
�
� � �"��r�c��UR5nU(dgURR[S5UURR
5nU$)NFz!Do you want to start the upgrade?)r	r~�confirmChangesr�r��required_download)r�rr�s   r*�askDistUpgrade�$DistUpgradeController.askDistUpgrade�sL���&�&�(�����j�j�'�'��*M�(N�(/�(,�
�
�(D�(D�F���
r�c��[R"5nURUR5=(a [R
R
S5$)Nz2/var/snap/canonical-livepatch/common/machine-token)r�r��is_ltsr�rlrn�isfile)r�r�s  r*�_isLivepatchEnabled�)DistUpgradeController._isLivepatchEnabled�s6��
�
)�
)�
+���y�y����'�p�B�G�G�N�N�;o�,p�pr�c�L^�[R"5nTR5(a URTR5(ag[U4SjUR
S55TR5nTRRS[S5U-5nU$)NTc3�r># �UH,oRTR:XdMURv� M. g7fr�)�seriesr�r�)r��rr�s  �r*r��5DistUpgradeController.askLivepatch.<locals>.<genexpr>�s&����[�+?�a�8�8�t�{�{�CZ�	��	�	�+?�s�7�7�objectzdLivepatch security updates are not available for Ubuntu %s. If you upgrade, Livepatch will turn off.)
r�r�rrr��next�get_allr~�askCancelContinueQuestionr�)r�r�r�r�s`   r*�askLivepatch�"DistUpgradeController.askLivepatch�s����
�
)�
)�
+���'�'�)�)�R�Y�Y�t�{�{�-C�-C���[�2�:�:�h�+?�[�]a�]h�]h�i���j�j�2�2�4�
�9�
:�<C�
D�E���
r�c��SnURR5nURRSSS5nU(a[[R
"5SR
S5SnURR5RU<SU<35 URRSS	5nS
nSnX:am[R"URR5n[R "U5UlURR%UR"U5 gU(a/URR1[3S5[3S55 OH[R."S5 URR/[3S5[3S5SU-5 UR55 g! [R"S5 SnGNn=f![&RR(a%n	[R*"S5 SnU	nSn	A	M�Sn	A	f[,a2n	[R."S
U	<SU<S35 US-
nU	nSn	A	GM�Sn	A	ff=f)Nrrh�SlideshowUrlr��getdefaultlocale�enz#locale=rcrdFz
user canceledT�IOError in cache.commit(): '�'. Retrying (currentTry: r�rzUpgrade canceledzwThe upgrade will cancel now and the original system state will be restored. You can resume the upgrade at a later time.�+giving up on fetching after maximum retries�Could not download the upgradesz�The upgrade has aborted. Please check your Internet connection or installation media and try again. All files downloaded so far have been kept.r�)r~r�r�ru�localer"r�rx�	exception�getHtmlViewr;r�r��PackageManagerr��	_depcache�Acquirer��_fetch_archives�apt�FetchCancelledException�infor�r�r�r�r�)
r�r��	fprogress�url�langr��
user_canceledr)�pmr�s
          r*�doDistUpgradeFetching�+DistUpgradeController.doDistUpgradeFetching�s������J�J�1�1�3�	��k�k�(�(��.��F���
��.�.�0��3�9�9�#�>�q�A��
�J�J�"�"�$�)�)�C��*F�G��[�[�'�'�	�,�?�
��
�
�	��'�
��+�+�D�J�J�,@�,@�A��&���y�9����
�
�*�*�4�<�<��<����J�J�"�"�1�%7�#8�#$�&-�$.�
/�
�M�M�G�H��J�J���Q�@�A�� C�D�"�I�-�
/�	
�
�
���w
��!�!�"4�5����8�9�9�4�4�
����_�-� $�
��	����
��
�
�^_�`l�m�n���!���	���
�s1�*F=�A+G�=G�I�;H�
I�(&I�Ic���SSKnUR5nUR5n[R"SU-5 U$![a gf=f! [R
"S5 g=f)z&check if apt-btrfs-snapshot is usable rNzfailed to check btrfs supportFz!apt btrfs snapshots supported: %s)�apt_btrfs_snapshot�ImportError�AptBtrfsSnapshot�snapshots_supportedrxr)ry)r�r:�	apt_btrfsr�s    r*r��6DistUpgradeController._is_apt_btrfs_snapshot_supported1sp��	�%�	�*�;�;�=�I��/�/�1�C�	�
�
�9�C�?�@��
���	��	��
	����=�>��s�A� A�
A�A�A,c���UR5(dgSSKnUR5nSUR-nUR	U5n[
R"SU<SU<S35 g)z1create btrfs snapshot (if btrfs layout is there) Nrzrelease-upgrade-%s-zcreating snapshot 'z' (success=r�)r�r:r<r��create_btrfs_root_snapshotrxr1)r�r:r>�prefixr�s     r*� _maybe_create_apt_btrfs_snapshot�6DistUpgradeController._maybe_create_apt_btrfs_snapshot@sT���4�4�6�6��!�&�7�7�9�	�&����4���2�2�6�:�����f�c�J�Kr�c	��0n[RS/US'S[RS'[RS/US'[R"SS9nUR[RS'SHFn[RRU5XS-'[RR
U5 MH UR5UH-nXH"n[RRX45 M$ M/ sSSS5 $!UH-nXH"n[RRX45 M$ M/ f=f!,(df   g=f)Nzdir::bin::dpkgz	/bin/truezDir::State::extended_states�apt_extended_states_)rB)zdpkg::pre-invokezdpkg::pre-install-pkgszdpkg::post-invokezdpkg::post-install-pkgsz::)	r�r��tempfile�NamedTemporaryFiler��
value_list�clear�
doDistUpgrader�)r��backupsrC�lst�items     r*�doDistUpgradeSimulation�-DistUpgradeController.doDistUpgradeSimulationJs����%,�^�^�4D�%E�$F�� �!�+6����'�(�
3:�.�.�A^�2_�1`��-�.�
�
(�
(�0F�
G�1�<=�F�F�G�N�N�8�9�s��&-�n�n�&?�&?��&D��d�
�#����$�$�S�)�t�
6��)�)�+�"�C� '������*�*�3�5�!-�#�H�
G��#�C� '������*�*�3�5�!-�#��H�
G�s%�A*E�D�3E�5E�E�
Ec��SnURR5nURRUR5nURRSS5nUR(d*URR5 UR5 SnSnX:a6URRX#5n[R"SU-5 g[R"S5 URR[-S5[-S5S U-5 UR/5 g![Ga�n[R"SU-5 Un[R R#S5(a�[%S5nUR'5nSSS5 O!,(df   O=f[R"SU-5 S	S
/n	U	H�n
[)U5R+U
5(dM$[R"S5 [-S5nUS
[)U5--
nU[-S5-
nURR[-S5U5 UR/5 M� [-S5nUR(d [15(dU[-SU-5-
nURR[-S5U5 /SQn[R2R5S5S:XaUR7S5 URR95R;U5 SnAgSnAf[<a2n[R"SU<SU<S35 US-
nUnSnAGM�SnAf[>a�n[R@"S5 UnURBS:Xa_[-S5nUS
[)U5--
nU[-S5-
nURR[-S5U5 UR/5 SnAgSnAff=f)!NrrcrdFzcache.commit() returned %sz#SystemError from cache.commit(): %sz./var/run/ubuntu-release-upgrader-apt-exceptionzfound exception: '%s'z;E:Internal Error, Could not perform immediate configurationz E:Couldn't configure pre-depend z-detected preconfigure error, restorting state�Error during commitz
'%s'
�Restoring original system statezCould not install the upgradeszrThe upgrade has aborted. Your system could be in an unusable state. A recovery will run now (dpkg --configure -a).z�

Please report this bug in a browser at http://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+filebug and attach the files in /var/log/dist-upgrade/ to the bug report.
%sr�r�r�r�r$r%r�rzcache.commit()�Tr&r'zdThe upgrade has aborted. Please check your Internet connection or installation media and try again. r�)"r~r��getInstallProgressr�r�r�r�r��StartUpgraderC�commitrxryrr�rlrnr�r;r>r��
startswithr�r�rr�rr:r�r�r�r�r)�errno)
r�r�r2�	iprogressr�r�r)r�rC�pre_configure_errors�
preconf_error�msgr�s
             r*rK�#DistUpgradeController.doDistUpgradebsY�����J�J�1�1�3�	��J�J�1�1�$�*�*�=�	��[�[�'�'�	�,�?�
��#�#��K�K�$�$�&��1�1�3����	��'�A
!��j�j�'�'�	�<���
�
�:�S�@�A�B�	�
�
�C�D��
�
����<�=��@�A� �)�+�		-�	
�
�
���U�,
��
�
�C�a�G�H��	��7�7�>�>�"R�S�S��N�O�ST��F�F�H��P�O�O���M�M�"9�A�"=�>�V�:�,<�(�*>�
��q�6�,�,�]�;�;�#�M�M�*Y�Z�#$�$9�":�C��:��A��#6�6�C��1�%F�#G�G�C� �J�J�,�,�Q�/O�-P�RU�V� �J�J�L�*>��>�?���+�+�%�<�<��q�"&�)*�	"*� +�+��
�
�
� � ��#C�!D�c�J�:���:�:�>�>�"3�4�8H�H��J�J�0�1��
�
�&�&�(�-�-�c�2����
��
�
�^_�`l�m�n���!���	����
!��!�!�"2�3��	��7�7�b�=��1�2�C��:��A��.�.�C��1�>�?�?�C��J�J�$�$�Q�'G�%H�#�N��J�J�L����
!�sR�#4D1�1P�<A
L4�F �	L4� 
F.	�*AL4�4D;L4�4
P�&M.�.
P�;BP�Pc��[5RS5 [RR	[
RRS55nURRHpn[RR	[RRUR55U:XdMO[R"UR5 Mr UR5 URR!5 UR"R%[&R(5 UR"R+[-S55 UR.R15n[2R4"SSR7[9U55-5 URR;SS5H-nXC;dM
[2R<"SU-5 [?5n O URRASS	S
5(d[2R4"S5 g
URR;SS5HinX@R.;dMUR.URB(dM4URDRGURR;US
55 Mk [2R4"SURD-5 X0RH-
nU[?URD5-nUR.RK5n[2R4"SSR7U5-5 U[?U5-nURRASS	S
5(d [2R4"S5 [?5n[2R4"SU-5 [2R4"S5 UR"RM5n[?5n[OU5H@n	UR.RQX�RR5(aM/URUU	5 MB UR.RW5 [YU5H�up�UR[U
[][_U55-S-S-5 X�RD;dMBUR"Ra5 UR.RcX�URDS
S9(d[2R4"SU	5 M�UReU	5 M� [YU5H�up�UR[U
[][_U55-S-S-S-5 UR"Ra5 UR.RcX�URDSS9(d[2R4"SU	5 M�UReU	5 M� UR.Rg5 [hRj"UR.5nURm5 UR.Rq5 UR.RrS:�Ga[2R4"S5 UR.Ru5 [?5nUR.RW5 [YU5H�up�UR[U
[][_U55-S-5 UR"Ra5 UR.RcX�URDS
S9(d[2R4"SU	5 M�UReU	5 M� SSS5 UHKn	X�R.;dMUR.U	Rv(aM4[2R4"SU	5 MM SSS5 [2R4"S5 URy5 UR.R{5n[2R4"SSR7UVs/sHoDR|PM sn5-5 [-S5n
[-S5[-S 5/n[_U5S:�aUR"RX�SUS5(a\UR"R�5nUR"R�UR.5nUR.R�UU5 UR�5 URR�5 UR�(dUR�5 g
![a GM�f=f![na GN2f=f!,(df   GN=f!,(df   GN�=fs snf![�[�4aUn[2R<"S!U-5 UR"R=[-S"5[-S#5S$U-5 SnAN�SnAff=f)%N�POSTUPGRADEr�zSearching for obsolete softwarer�r2rhrzzXthe BaseMetaPkg '%s' is in the obsolete list, something is wrong, ignoring the obsoletes�RemoveObsoletesTzSkipping obsolete Removalr�rizforced_obsoletes: %szUnused dependencies: %sz0Skipping RemoveObsoletes as stated in the configzremove_candidates: '%s'z Start checking for obsolete pkgsgY@r3)�auto_fixz:'%s' scheduled for remove but not safe to remove, skipping�2Frzuresolve_by_keep() failed to resolve conflicts from removing obsolete packages, falling back to slower implementation.z*obsolete package '%s' could not be removedz!Finish checking for obsolete pkgsz1The following packages are marked for removal: %szRemove obsolete packages?�_Keep�_Removez,cache.commit() in doPostUpgrade() failed: %srRz[A problem occurred during the clean-up. Please see the below message for more information. r�)I�
get_telemetry�	add_stagerlrnr�r�r�r�r�r��abspath�destfile�unlinkr�r�r��PostUpgrader~�setStepr�CLEANUPrr�r�r�rxryrorhr�r�r�rur�r��extendr��_getUnusedDependenciesr�r:�isRemoveCandidater�rD�actiongroup�	enumerater��floatr'r��tryMarkObsoleteForRemovalrC�_startAptResolverLogr/�ProblemResolver�resolve_by_keep�	Exception�_stopAptResolverLog�broken_countrJr��donerr�rr�rUrWrr�ra�PostCleanupr��runPostInstallScripts)r�r�rN�now_obsoleter��remove_candidates�unused_dependenciesr��scheduled_removerrE�prrr��actionsr2rZr�s                  r*�
doPostUpgrade�#DistUpgradeController.doPostUpgrade�s\����!�!�-�0��W�W�_�_��N�N�#�#�$:�;�=�
��L�L�&�&�D��w�w���r�w�w���t�}�}�=�>�*�L���I�I�d�m�m�,�'�	
����	
�����!��
�
���4�<�<�(��
�
����"C� D�E��z�z�3�3�5���
�
�n�s�x�x��|�0D�'E�E�F�
�;�;�&�&�x��?�C��"��
�
�x�{~�~��"�u���	@��{�{�)�)�(�3D�d�K�K��M�M�5�6���;�;�&�&�x�
�;�C��j�j� �T�Z�Z��_�%A�%A�%A��%�%�,�,�T�[�[�-@�-@��EV�-W�X�<�	�
�
�,�t�/D�/D�D�E�)�+=�+=�=���S��!6�!6�7�7��#�j�j�?�?�A���
�
�/����:M�1N�N�O��S�!4�5�5���{�{�)�)�(�3D�d�K�K��M�M�L�M� #����
�
�/�2C�C�D��
�
�8�9��:�:�0�0�2���5���-�.�G��:�:�/�/��9\�9\�]�]�!�(�(��1�/��Z�Z�
#�
#�
%� )�*;� <�������5��->�)?�#@�!@�%� G�!� K�L��3�3�3��J�J�,�,�.��:�:�?�?��\`�\q�\q�}A�?�B��
�
�&b�dk�l�(�,�,�W�5�!=�!*�*;� <�������5��->�)?�#@�!@�%� G�!� K�b� P�Q��
�
�(�(�*��z�z�;�;�G�X\�Xm�Xm�x}�;�~��M�M�"^�`g�h�$�(�(��1�
!=�
�J�J�+�+�-��$�$�T�Z�Z�0�B�
��"�"�$�
�J�J�*�*�,��z�z�&�&��*��
�
�V�W��
�
� � �"�#&�5� ��Z�Z�+�+�-�(1�2C�(D��� ����5��5F�1G�+H�)H�%�(O�P��
�
�0�0�2�#�z�z�C�C�G�`d�`u�`u�AE�C� F�#�M�M�*f�ho�p�,�0�0��9�
)E�.�,���z�z�)��
�
�7�+�9�9�9��M�M�"N�PW�X�,�Y&�f	�
�
�9�:��
�
���*�*�(�(�*���
�
�I�C�H�H�jq�Ur�jq�cf�V^�V^�jq�Ur�Ls�s�t��/�0���W�:�q��|�,��
��L�1���J�J�%�%�g��7�E�J�J��
�
�5�5�7�I��
�
�5�5�d�j�j�A�I�
-��
�
�!�!�)�I�6�	
���!�	
�����!��#�#��&�&�(���]�����h�
��
��.�-��E&�
%��pVs�� ��)�
-��
�
�L�q�P�Q��
�
� � ��#8�!9�!"�$3�"4�$(�!�8�	-�-��
-�s��< d�A
e�Ee�4d)�B	e�
B,d:�9e�e�7e�:e�/e#�
d&�%d&�)
d7�3e�6d7�7e�:
e		�e�
e�#g�3Ag�gc	��UR(a4URR5 URR5 URR	SS5H�n[
RRU5(d[R"SU-5 MB[R"SU-5 [U5 URR5RU/SS9 M� UR(aURR#5 g
g
![a*n[R "SU<SU<S	35 S
nAM�S
nAff=f)z�
scripts that are run in any case after the distupgrade finished
whether or not it was successful

Cache lock is released during script runs in the event that the
PostInstallScripts require apt or dpkg changes.
rh�PostInstallScriptsz!PostInstallScript: '%s' not foundzRunning PostInstallScript: '%s'T)�hiddenz!got error from PostInstallScript z (r�N)r�r�r�r�r�rlrnr�rxr�ryrr~r�r�rxr��get_lock)r��scriptr�s   r*r}�+DistUpgradeController.runPostInstallScripts]s����:�:��J�J�#�#�%��J�J�'�'�)��k�k�)�)�(�3G�H�F��7�7�>�>�&�)�)���� C�f� L�M���M�M�;�f�D�E�
X�"�6�*��
�
�&�&�(�-�-�v�h�t�-�D�I��:�:��J�J���!����
X��
�
�F�TU�V�W�W��
X�s�>4D#�#
E�-E�Ec��[R"S5 [US5(aEURR	UR
5 UR
5 UR5 URR[S55 URR5 UR5 [R"S5 g)z1abort the upgrade, cleanup (as much as possible) zabort calledr#rSrN)rxry�hasattrr#�restore_backupr�r]rar~rr�r�r�r�r�rvs r*r��DistUpgradeController.abortws����
�
�n�%��4��#�#��L�L�'�'��(?�(?�@��'�'�)��#�#�%�	
�
�
����"C� D�E��
�
������������r�c��[R"U5H�n[R"SU-5 UH�nUSnUSnUSnX@R;a[R
"SU-5   gURUn[
URSS5nUS:wdMk[R"X�U5S	:XdM�  g	 M� [R
"S
U-5 g)z*check if a given depends can be satisfied zchecking: '%s' rrr3z_checkDep: '%s' not in cacheFr�NTzdepends '%s' is not satisfied)	r��
parse_dependsrxryr�r��getattr�	installed�	check_dep)	r��depstr�or_group�dep�depname�ver�operr��instvers	         r*�	_checkDep�DistUpgradeController._checkDep�s����-�-�f�5�H��M�M�+�h�6�7����a�&���!�f���1�v���*�*�,��M�M�"@�7�"J�K� ��z�z�'�*��!�$�.�.�)�T�B���t�O��%�%�g�3�7�4�?�� �6�	�
�
�5��>�?�r�c��[R"S5 SnURRSS5nUR	URRUR
RRS55 UH}n[R"SU5 XRU5-nU(aM6UR
R[S5[SU-55 [R"S5 M U$)	zcheck if depends are satisfied zcheckViewDepends()Tr��Dependsz
depends: '%s'z!Required depends is not installedz/The required dependency '%s' is not installed. r)
rxryr�r�rnr~r|r}r�r�r�r�r�)r�r��dependsr�s    r*r�&DistUpgradeController.checkViewDepends�s����
�
�*�+����+�+�%�%�f�Y�7�����t�{�{�*�*�4�:�:�+?�+?�+H�+H�+4�6�	7��C��M�M�/�3�/��>�>�#�&�&�C��3��
�
� � ��#F�!G�!"�$1�36�$7�"8�9��������
r�c��URS5n[U5up4pVnSU;aURS5SnU<SU<U<3nURHknURS5n[	X�5(a gURS5Sn	URU	5(dMR[R"SU-5  g g)	zcheck if uri is a known mirror r��@rz://Tz//z)found apt-cacher/apt-torrent style uri %sF)�rstriprr�r�rr�rxry)
r�r�raw_uri�scheme�netlocrn�query�fragment�mirror�mirror_host_parts
          r*r7�DistUpgradeController.isMirror�s����*�*�S�/��08��0A�-���X��&�=��\�\�#�&�q�)�F�#�V�T�2���(�(�F��]�]�3�'�F���%�%�� &�|�|�D�1�!�4���|�|�,�-�-��
�
�I�C�O�P��)�r�c��URS5nURH&nURS5n[X!5(dM& g g)z.check if uri is an allowed third-party mirror r�TF)r�r�r)r�rr�s   r*r��(DistUpgradeController.isThirdPartyMirror�s@���j�j��o���+�+�F��]�]�3�'�F���%�%��,�r�c��URR[S55 URR[R
5 UR
5(d�[R"S5 [RRS5(aGURR[S5[S55 [R"SS/5 ODURR[S5[S55 [R"S	5 UR5 UR5(dUR5 UR!S
SS9 UR#5 UR%5(dUR5 URR[R&5 URR[S
55 UR)5S::aUR+5 UR-5(dUR5 UR!5(dUR5 URR[S55 UR#SS9 UR.R15UlUR55 UR6(aUR.R95UlUR:R=5 UR>RASS5GH^nXR.;d/UR.RCUR.U5(aMB[R"SU-5 XR.;a[R"SU-5 OFUR.RCUR.U5(d[R"SU-5 URR[S5[S5U-5 [RRS5(a[R"SS/5 O[R"S	5 UR5 GMa URR[S55 URE5(dUR5 URG5 URR[RH5 URR[S55 URK5(dUR5 URR[RL5 URR[S55 URO5(d>URR[S5[S55 UR5 UR.RQ5 S
nUR.SRS5 SnW(a�URR[RL5 URR[S55 UR]5(dDURR_[S 5[S!55 [`Rb"S5 UR#SS9 UR.R95UlUR:R=5 URR[S55 URe5(d\U(aEURR_[S 5[S!55 [`Rb"S5 OUR5 URR[RL5 URR[S55 UR]5(dTURg5 URR_[S"5[S#55 [`Rb"S5 URi5 [RRS$5(a[Rj"S$5 URR[Rl5 URR[S%55 [o5Rq5 [s5(d�URu5(aZURRw5 [yS&S'S(S)9nUR{S*5 SSS5 URR}5 O7URR5(a[R"/S+Q5 [`Rb"S5 g![Ta1nS[WU5;a[RX"S5 SnAGN�SnAff=f![Za UR5 GNf=f!,(df   N�=f),NzChecking package managerzself.prepare() failedz/usr/bin/apport-bugzPreparing the upgrade failedzXPreparing the system for the upgrade failed so a bug reporting process is being started.z
apport-bugzubuntu-release-upgrader-corez�Preparing the system for the upgrade failed. To report a bug install apport and then execute 'apport-bug ubuntu-release-upgrader'.z.Missing apport-bug, bug report not autocreatedFr)r�r�zUpdating repository informationrT)r�rhrzz@No '%s' available/downloadable after sources.list rewrite+updatez'%s' was not in the cachez'%s' was not downloadablezInvalid package informationa�After updating your package information, the essential package '%s' could not be located. This may be because you have no official mirrors listed in your software sources, or because of excessive load on the mirror you are using. See /etc/apt/sources.list for the current list of configured software sources.
In the case of an overloaded mirror, you may want to try the upgrade again later.r�Fetching�	UpgradingzUpgrade infeasiblezQThe upgrade could not be completed, there were errors during the upgrade process.�libc6�pkgProblemResolverz'Unable to mark libc6 alone for install.zUpgrade incompletezUThe upgrade has partially completed but there were errors during the upgrade process.�Upgrade complete�KThe upgrade has completed but there were errors during the upgrade process.z:/var/lib/ubuntu-release-upgrader/release-upgrade-availablezSystem upgrade is complete.z/run/launcher-commandzw+zutf-8)�encodingzaction: reboot
�z/usr/bin/systemctl�rebootz--check-inhibitors=no)@r~rr�rlr�PREPARErrxr�rlrnr�r��Popenr�rr�r�r��MODIFY_SOURCESr'rUr�r�r�r��_warn_about_foreign_packagesrrr��+ensure_recommends_are_installed_on_desktopsr�r��anyVersionDownloadabler�_inhibitIdle�FETCHr7�INSTALLrOrJ�mark_installrr�ry�KeyboardInterruptrKr�r�r�r	r}r�rj�REBOOTrfr{r
�_inside_WSL�adviseExitOtherWSLr;rB�adviseRestartWSL�confirmRestart)r�r��libc6_possibler�rCs     r*�fullUpgrade�!DistUpgradeController.fullUpgrade�sF���
�
����"<� =�>��
�
���4�<�<�(��|�|�~�~��M�M�1�2��w�w�~�~�3�4�4��
�
� � ��#A�!B�!"�$4�"5�6�� � �,�0N�!O�P��
�
� � ��#A�!B�!"�$?�"@�A�
�
�
�,�-��J�J�L�� � �"�"��J�J�L�	
�
�
��Q�
�7������'�'�)�)��J�J�L�m	��J�J���t�2�2�3��J�J�#�#�A�&G�$H�I�
�$�$�&�!�+��+�+�-��+�+�-�-��
�
���=�=�?�?��
�
��
�J�J�#�#�A�&@�$A�B�
�N�N��N�=�
37�*�*�2M�2M�2O�D�/��-�-�/����"&�*�*�"=�"=�"?����K�K�C�C�E�
�{�{�*�*�8�N�C���z�z�)��
�
�9�9�$�*�*�S�/�J�J�
�M�M�"d�gj�"j�k��*�*�,��
�
�&A�C�&G�H�!�Z�Z�>�>�t�z�z�#��O�O��
�
�&A�C�&G�H��J�J�$�$�Q�'D�%E�%&�(R�&S�*-�&-�
.��w�w�~�~�&;�<�<�"�(�(�,�8V�)W�X��
�
�'4�5��J�J�L�?D�F
�J�J�#�#�A�&?�$@�A��&�&�(�(��
�
������
�J�J���t�z�z�*��J�J�#�#�A�j�M�2��-�-�/�/��
�
��
�J�J���t�|�|�,��J�J�#�#�A�k�N�3��/�/�1�1��
�
� � ��#7�!8�!"�$.�"/�0��
�
��
�J�J����"�N�
��
�
�7�#�0�0�2�!%����J�J���t�|�|�,��J�J�#�#�A�k�N�3��%�%�'�'��
�
�&�&�q�)=�'>�'(�*4�(5�6�
�����	
���D��9��*�*�5�5�7������?�?�A��
�
����";� <�=��#�#�%�%���
�
�&�&�q�)=�'>�'(�*4�(5�6�
������
�
��	
�
�
���4�<�<�(��
�
����+��/��!�!�#�#��&�&�(��J�J�"�"�1�%7�#8�#$�&0�$1�
2�

�H�H�Q�K�	
�����7�7�>�>�V�W�W��I�I�R�S�	
�
�
���4�;�;�'��
�
����"?� @�A������������!�!��
�
�-�-�/��1�4�'�J�a��G�G�.�/�K��
�
�+�+�-����*�*�,�,�� � �!Z�[��H�H�Q�K���Q�
�'�3�q�6�1��M�M�"K�L����
��!�	��J�J�L�	��|K�J�sJ�#Gh)�(J(h)�g+�(i
�+
h&�5&h!�h)�!h&�&h)�)i�i�

ic�V�URR5 UR5$r�)r~r�r�rvs r*�run�DistUpgradeController.run�s!���
�
� � �"����!�!r�c��URR[R5 URR	[R
5 URR	[R5 SUlUR5 UR5(dgUR5(dgURR[R5 URR[S55 UR5(dgURR[R5 URR[S55 UR!5(d/URR#[S5[S55 gUR%5(d/URR#[S5[S55 g[&R(R+[,5(a8URR/5(a[0R2"/SQ5 gURR#[S5[S55 g)	z+partial upgrade mode, useful for repairing TFr�r�r�r�r�z"The partial upgrade was completed.)r~rlrr��hideStepr�r�r�rr�rr�rr�r7r�rKr�r�rlrnr��REBOOT_REQUIRED_FILEr�r�r�rvs r*�doPartialUpgrade�&DistUpgradeController.doPartialUpgrade�s����
�
���4�<�<�(��
�
���D�/�/�0��
�
���D�K�K�(�#��������'�'�)�)���"�"�$�$���
�
���4�:�:�&��
�
����*�
�.��)�)�+�+���
�
���4�<�<�(��
�
����+��/��!�!�#�#��J�J�"�"�1�%7�#8�#$�&0�$1�
2���!�!�#�#��J�J�"�"�1�%7�#8�#$�&0�$1�
2��
�7�7�>�>�.�/�/��z�z�(�(�*�*�� � �!Z�[��
�J�J�"�"�1�%7�#8�#$�%I�#J�
L�r�c��[R"S5 SSKn[R"SS5nURSU5nU[RS'URSS5n[R"5S:Xa)UR5=nb[R"U5 UR5UlURRSS5nURUSS9nURS	S
5 [S5n[S5n	W[RS'[R"[R"55 UR$R'X�5 g![ a�n
WS
;aASn
A
W[RS'[R"[R"55 g[R"S[#U
5-5 [S5n[S5n	Sn
A
N�Sn
A
ff=f!W[RS'[R"[R"55 f=f)Nzinhibit screensaverr�DBUS_SESSION_BUS_ADDRESSr-�XDG_SESSION_TYPEzorg.freedesktop.ScreenSaverz/org/freedesktop/ScreenSaver)�dbus_interfacerOzUpgrading UbuntuzLock screen disabledzOYour lock screen has been disabled and will remain disabled during the upgrade.)r-�ttyzfailed to inhibit screensaver: zUnable to disable lock screenz�It is highly recommended that the lock screen be disabled during the upgrade to prevent later issues. Please ensure your screen lock is disabled before continuing.)rxry�dbusrlru�get_user_envr��getuid�get_user_uid�seteuid�
SessionBusr��
get_object�	Interface�Inhibitr�rxr�r~r�)r�r��bus_address_copy�bus_address_user�xdg_session_type�uid�proxy�screensaverr��messager�s           r*r��"DistUpgradeController._inhibitIdle�s����
�
�+�,�/	$�� "�y�y�)C�R�H��#�0�0�*� � ��6F�B�J�J�1�2�#�0�0�1C�R�H���	�	��q� ��)�)�+�+��8��
�
�3��!%��� 1�D���%�%�0�0�1N�1O�Q�E��.�.��?\�.�]�K���� 9�;M�N��.�/�G��7�8�G�6F�B�J�J�1�2��J�J�r�y�y�{�#��
�
���w�0���
	7��;�.��6F�B�J�J�1�2��J�J�r�y�y�{�#�
�M�M�;�c�!�f�D�E��7�8�G��6�7�G��
	7��6F�B�J�J�1�2��J�J�r�y�y�{�#�s6�C=E-�-
H�7G;�=H�>8G;�6H�;H�H�>Ic�@�[RRS5$)Nz#/proc/sys/fs/binfmt_misc/WSLInterop)rlrnr�rvs r*r��!DistUpgradeController._inside_WSL	s���w�w�~�~�C�D�Dr�c��[R"SRSRUR555 [R"SRSRUR
555 UR
(dg[
S5n[
S5nUR
R5HSup4UcURRU5nUb
URnO[
S5nU[
USSUS	35-
nMU U[
S
5-
nURRX5(agUR5 g)Nz&Foreign (before rewriting sources): {}r2z%Foreign (after rewriting sources): {}zForeign Packages Installedz<The following unofficial packages are currently installed:

zunknown originz.<25zInstalled from: r3z�

It is recommended to install supported versions from the Ubuntu archive, and try the upgrade again.

Do you want to continue the upgrade anyways?)
rxryrror�r�r�r�r�originr~r�r�)r�r��bodyr��pkg_filer�s      r*r��2DistUpgradeController._warn_about_foreign_packagess+���
�
�4�
�V�C�H�H�T�?�?�@�
A�	
�	�
�
�3�
�V�C�H�H�T�@�@�A�
B�	
�
�2�2���/�0���L�
��!%� C� C� I� I� K��T����=�=�A�A�$�G���#�!�����+�,���A��d��#3�F�8�2�>�?�?�D�!L�	
��
;�
�	
���:�:�&�&�v�4�4���J�J�Lr�c�J�URcgURR$r�)rv�pw_uidrvs r*r��"DistUpgradeController.get_user_uid7�#���"�"�*���&�&�-�-�-r�c�J�URcgURR$r�)rv�pw_gidrvs r*�get_user_gid�"DistUpgradeController.get_user_gid=r�r�c�J�URcgURR$r�)rv�pw_namervs r*�
get_user_name�#DistUpgradeController.get_user_nameCs#���"�"�*���&�&�.�.�.r�c�J�URcgURR$r�)rv�pw_dirrvs r*�
get_user_home�#DistUpgradeController.get_user_homeIr�r�c
���UR5nUc<[[R[R
"[R55e[R"SSSUS3SSSS/UQ40UD6$)	Nzsystemd-run�--user�-M�@.hostz--waitz--pipez-qz--�r�r�rY�EINVALrl�strerrorr�r�)r��args�kwargs�users    r*�run_as_user�!DistUpgradeController.run_as_userOsz���!�!�#���<��%�,�,����E�L�L�(A�B�B��~�~������f�o�����	
��	
�
��
�	
r�c���URSSU3/[RS9RR	5R5nU(dU$U$![a Us$f=f)zB
Helper to access variables from the invoking user's environment.
�echo�$)�stdout)rr��PIPErr@rAr�)r�r-�default�vs    r*r��"DistUpgradeController.get_user_envbsj��	�� � ��1�S�E��#�!���!���f�V�V�X�e�e�g�
�����H���	��N�	�s�AA�A�A%�$A%c���UR5nUc<[[R[R
"[R55e[R"SSSUS3/UQ5$)N�	systemctlrrrr)r�rr
s   r*�systemctl_as_user�'DistUpgradeController.systemctl_as_userssd���!�!�#���<��%�,�,����E�L�L�(A�B�B��~�~������f�o�
��	
�
�	
r�) r�r�r�rvr�r�r~r�r�r�r�rpr�r�r�r�r�r�r�r�r�rqr�r�rr#r�r�r�r�r�r�)NN)TF)TNr�):r}�
__module__�__qualname__�__firstlineno__�__doc__r�r�r�r�r�r�rrr'rUr]rarkrorwr�r�r�r�r�r�r�rr	rrrr7r�rCrOrKr�r}r�r�rr7r�r�r�r�r�r�r�r�r�r�r�rr�r�__static_attributes__�r�r*rHrHts*��=�~5�@!$�FK�:	�9�v�>;�z&�4�@\R�|?�@�(
R�R���8k�Z�.4�(-�^�B-�^7�t�>
�q��E�N
�L�6�0`�DW�r"�4��&�(�,�Z�x"�%�N41�lE�)�V.�.�/�.�
�&�"
r�rH)@r/r�r<r�rYr�rlr�r(rxrGr�r�r�rrrY�configparserrrr��	telemetryrrf�utilsrrr	r
rrr
�urllib.parser�DistUpgradeViewr�DistUpgradeCacher�DistUpgradeConfigParserrr�
aptsourcesrr�DistInfo�aptsources.sourceslistrrrr�DistUpgradeGettextrr�rrrr�DistUpgradeApportrr�r+r6rFrrHrr�r*�<module>r+s���.��
���
�	��
������
��&�9�+�#�#�#�"�!�%�6�0� �"��(�(���/�/�
-�(��8�8�*�1�����K 
�F�K 
r�

Filemanager

Name Type Size Permission Actions
DistUpgradeApport.cpython-313.pyc File 6.12 KB 0644
DistUpgradeCache.cpython-313.pyc File 59.35 KB 0644
DistUpgradeConfigParser.cpython-313.pyc File 4.2 KB 0644
DistUpgradeController.cpython-313.pyc File 101.91 KB 0644
DistUpgradeFetcher.cpython-313.pyc File 7.21 KB 0644
DistUpgradeFetcherCore.cpython-313.pyc File 12.6 KB 0644
DistUpgradeFetcherKDE.cpython-313.pyc File 10.51 KB 0644
DistUpgradeGettext.cpython-313.pyc File 2.68 KB 0644
DistUpgradeMain.cpython-313.pyc File 10.22 KB 0644
DistUpgradeQuirks.cpython-313.pyc File 49.98 KB 0644
DistUpgradeVersion.cpython-313.pyc File 186 B 0644
DistUpgradeView.cpython-313.pyc File 21.06 KB 0644
DistUpgradeViewGtk3.cpython-313.pyc File 48.36 KB 0644
DistUpgradeViewKDE.cpython-313.pyc File 53.71 KB 0644
DistUpgradeViewNonInteractive.cpython-313.pyc File 17.46 KB 0644
DistUpgradeViewText.cpython-313.pyc File 13.41 KB 0644
GtkProgress.cpython-313.pyc File 4.58 KB 0644
MetaRelease.cpython-313.pyc File 18.05 KB 0644
QUrlOpener.cpython-313.pyc File 3 KB 0644
ReleaseNotesViewer.cpython-313.pyc File 8.47 KB 0644
ReleaseNotesViewerWebkit.cpython-313.pyc File 2.53 KB 0644
SimpleGtk3builderApp.cpython-313.pyc File 2.36 KB 0644
SimpleGtkbuilderApp.cpython-313.pyc File 2.34 KB 0644
__init__.cpython-313.pyc File 151 B 0644
apt_btrfs_snapshot.cpython-313.pyc File 17.36 KB 0644
dist-upgrade.cpython-313.pyc File 347 B 0644
telemetry.cpython-313.pyc File 4.72 KB 0644
utils.cpython-313.pyc File 22.68 KB 0644
xorg_fix_proprietary.cpython-313.pyc File 5.96 KB 0644
Filemanager