+
    =l j‘  ã            
       óÂ  € ^ 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HtHtHtHtHtHt ^ RIt^ RIHt ^ RIHtHtHtHtHtHtHt ^ RIH t  ^ RI!H"t" Rt#R	t$R
t%Rt&Rt'Rt(Rt)Rt*Rt+Rt,Rt-Rt.Rt/Rt0Rt1Rt2Rt3Rrt4Rt5R]Pl                  Po                  ] R4      ]Pl                  Po                  ] R4      .R]Pl                  Po                  ] R4      ]Pl                  Po                  ] R4      ]Pl                  Po                  ] R 4      ]Pl                  Po                  ] R!4      ./t8. RsOt9]Pt                  ! 4       t;]Px                  ! ]Pz                  ! ]>4      4      t?]P€                   ! R" R#]P‚                  4      4       tB]! R$R%]C3R&]C3R']C3.4      tDR( tE]ER) R* l4       tFR+ tGR, R- ltHRtR. R/ lltI]
! RR07      RtR1 R2 ll4       tJ ! R3 R44      tKR5 tLR6 tMR7 R8 ltNRuR9 R: lltORvR; R< lltP]P¢                  ! ]P¤                  ]P¦                  3]94      R= R> l4       tTRtR? R@ lltURA RB ltVRC RD ltWRvRE RF lltXRG RH ltYRuRI RJ lltZRuRK RL llt[RM t\RN t]RvRO RP llt^RQ t_RR t`RS taRT tbRU RV ltcRW RX ltdRY RZ lteRR]BPÌ                  3R[ R\ lltgR] R^ lthR_ R` ltiRa Rb ltjRc tkRd Re ltlRf Rg ltmRh Ri ltnRj Rk ltoRl tpRm tqRn Ro ltrRp Rq ltsR# )wé    N)Ú	lru_cacheÚwraps)ÚDictÚIterableÚListÚ
NamedTupleÚOptionalÚSetÚUnion)ÚAcquireProgress)Úevent_loggerÚ
exceptionsÚgpgÚmessagesÚsecret_managerÚsystemÚutil)ÚESM_APT_ROOTDIR)Ústatus_cache_fileg      N@z  # ubuntu-pro-clientzDir::Etc::netrc/zDir::Etc::netrcparts/zDir::State::lists/a�  /*
 * Autogenerated by ubuntu-pro-client
 * Do not edit this file directly
 *
 * To change what ubuntu-pro-client sets, use the `pro config set`
 * or the `pro config unset` commands to set/unset either:
 *      global_apt_http_proxy and global_apt_https_proxy
 * for a global apt proxy
 * or
 *      ua_apt_http_proxy and ua_apt_https_proxy
 * for an apt proxy that only applies to Ubuntu Pro related repos.
 */
z$Acquire::http::Proxy "{proxy_url}";
z%Acquire::https::Proxy "{proxy_url}";
z4Acquire::http::Proxy::esm.ubuntu.com "{proxy_url}";
z5Acquire::https::Proxy::esm.ubuntu.com "{proxy_url}";
z/etc/apt/trusted.gpg.d/z/usr/share/keyringsz/usr/lib/apt/methods/httpsz /usr/sbin/update-ca-certificatesz//etc/apt/apt.conf.d/90ubuntu-advantage-aptproxyz*/var/lib/apt/periodic/update-success-stampz/var/lib/dpkg/statuszŠ# Written by ubuntu-pro-client
Types: deb{deb_src}
URIs: {url}
Suites: {suites}
Components: main
Signed-By: {keyrings_dir}/{keyring_file}
Úfileszetc/apt/sources.listzvar/lib/dpkg/statusÚfolderszetc/apt/apt.conf.dzetc/apt/preferences.dzvar/cache/apt/archives/partialzvar/lib/apt/lists/partialc                   ó2   € ] tR t^ct]! 4       t]! 4       tRtR# )ÚAptProxyScope© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚobjectÚGLOBALÚUACLIENTÚ__static_attributes__r   ó    Ú./usr/lib/python3/dist-packages/uaclient/apt.pyr   r   c   s   † á‹X€FÙ‹x„Hr#   r   ÚInstalledAptPackageÚnameÚversionÚarchc                ó0   a € \        S 4      V 3R l4       pV# )z*Decorator ensuring apt_pkg is initialized.c                  ó†   <€ \         P                  P                  R 4      R8X  d   \         P                  ! 4        S! V / VB # )ÚDirÚ )Úapt_pkgÚconfigÚgetÚinit)ÚargsÚkwargsÚfs   *,€r$   Únew_fÚ"ensure_apt_pkg_init.<locals>.new_fq   s5   ø€ ô �>‰>×Ñ˜eÓ$¨Ô*Ü�LŠLŒNÙ�$Ð!˜&Ñ!Ð!r#   )r   )r3   r4   s   f r$   Úensure_apt_pkg_initr6   n   s"   ø€ ô ˆ1ƒXô"ó ð"ð €Lr#   c                ó0   € V ^8„  d   QhR\         R\         /# )é   ÚaÚb©Ústr)Úformats   "r$   Ú__annotate__r>   }   s   € ÷ )ñ )”sð )œsñ )r#   c                 ó.   € \         P                  ! W4      # ©N)r-   Úversion_compare)r9   r:   s   &&r$   rA   rA   |   s   € ä×"Ò" 1Ó(Ð(r#   c                ó  € \         P                  P                  R4      '       g   R# V P                  R4      w  r4\	        4       pVR,           pVP                  R4      '       g   VR,           pMTpRP                  VVVR7      p \        P                  ! WhRR	7       \        P                  ! 4       ;_uu_ 4       p	\        P                  ! RR
RP                  W44      \         P                  P                  V	R4      .\        \        R7       RRR4       \        P>                  ! T4       R#   + '       g   i     L(; i  \        P                    dá   p
\"        P%                  R\'        T
4      4       T
P(                  ^d8X  dŒ   \'        T
P*                  4      P-                  4       p\.        P0                  ! RT4      '       d   \        P2                  ! T R7      h\.        P0                  ! RT4      '       d   \        P4                  ! T R7      h\        P6                  ! \'        T
4      R7      hRp
?
i\8        P:                   d    \        P<                  ! \        TR7      hi ; i  \        P>                  ! T4       i ; i)zûValidate apt credentials for a PPA.

@param repo_url: private-ppa url path
@param username: PPA login username.
@param password: PPA login password or resource token.

@raises: UbuntuProError for invalid credentials, timeout or unexpected
    errors.
z/usr/lib/apt/apt-helperNú://z-validationÚ/z9machine {repo_path} login {username} password {password}
)Ú	repo_pathÚusernameÚpasswordé€  ©Úmodezdownload-filez{}://{}/pool/zapt-helper-output)ÚtimeoutÚretry_sleepszError running apt-helper: %sz401\s+unauthorized|httperror401)Úrepozconnection timed out©Údetail)ÚsecondsrM   ) ÚosÚpathÚexistsÚsplitÚ!get_apt_auth_file_from_apt_configÚendswithr=   r   Ú
write_fileÚtempfileÚTemporaryDirectoryÚsubpÚjoinÚAPT_HELPER_TIMEOUTÚAPT_RETRIESr   ÚProcessExecutionErrorÚLOGÚerrorr<   Ú	exit_codeÚstderrÚlowerÚreÚsearchÚAPTInvalidCredentialsÚ
APTTimeoutÚAPTUnexpectedErrorÚ
subprocessÚTimeoutExpiredÚAPTCommandTimeoutÚensure_file_absent)Úrepo_urlrF   rG   ÚprotocolrE   Úapt_auth_fileÚ	auth_pathÚrepo_path_slashÚ	auth_lineÚtmpdÚerb   s   &&&         r$   Úassert_valid_apt_credentialsru   �   sá  € ô �7‰7�>‰>Ð3×4Ò4ÙØ"Ÿ.™.¨Ó/Ñ€HÜ5Ó7€MØ Õ-€IØ×Ñ˜c×"Ò"Ø# c�/‰à#ˆð	!ß!'¡Ø%ØØð "(ó "
ð ð-Ü×Ò˜)°UÕ;Ü×(Ò(×*Ô*¨dÜ�KŠKà-Ø#Ø#×*Ñ*¨8Ó?Ü—G‘G—L‘L Ð':Ó;ð	ô +Ü(õ	÷ +ô2 	×!Ò! )Ö,÷3 +×*ûô ×+Ñ+ô ;Ü�	‰	Ð0´#°a³&Ô9Ø�;‰;˜#ÔÜ˜Ÿ™“]×(Ñ(Ó*ˆFÜ�yŠyÐ;¸V×DÒDÜ ×6Ò6¸HÔEÐEÜ—’Ð2°F×;Ò;Ü ×+Ò+°Ô:Ð:Ü×+Ò+´3°q³6Ô:Ð:ûÜ×$Ñ$ô 
Ü×*Ò*Ü&¨Yô
ð 	
ð
ûô
 	×!Ò! )Õ,úsV   Â5E Â;AD.ÄE Ä.D>	Ä9E Ä=I) Ä>E ÅI&ÅB#H1Ç:7H1È1I&ÉI&É&I) É)Jc                óF   € V ^8„  d   QhR\         R\        \         ,          /# )r8   Ú	apt_errorÚreturn)r<   r
   )r=   s   "r$   r>   r>   º   s    € ÷ #ñ #Üð#äŒ…Xñ#r#   c                óF  € \        4       pV P                  4       P                  R4       Fs  pV'       g   K  \        P                  ! RV4      pV'       g   K.  RVP                  4       R,          P                  R4      ^ ,          ,           pVP                  V4       Ku  	  V# )a  Parse apt update errors for invalid apt config in user machine.

This functions parses apt update errors regarding the presence of
invalid apt config in the system, for example, a ppa that cannot be
reached, for example.

In that scenario, apt will output a message in the following formats:

The repository 'ppa 404 Release' ...
Failed to fetch ppa 404 ...

On some releases, both of these errors will be present in the apt error
message.

:param apt_error: The apt error string
:return: a NamedMessage containing the error message
Ú
z2(Failed to fetch |The repository .)(?P<url>[^\s]+)z- Úurlz/dists)ÚsetÚstriprT   rd   re   Ú	groupdictÚadd)rw   Úfailed_reposÚlineÚpattern_matchÚrepo_url_matchs   &    r$   Ú(_parse_apt_update_for_invalid_apt_configr„   º   s‰   € ô( “5€Là—‘Ó!×'Ñ'¨Ö-ˆß‰4ÜŸIšIØEÀtóˆM÷ ‰}à˜=×2Ñ2Ó4°UÕ;×AÑAÀ(ÓKÈAÕNÕNð ð × Ñ  Ö0ñ .ð Ðr#   c          	      ó¬   € V ^8„  d   QhR\         \        ,          R\        \        ,          R\        \        \        \        3,          ,          R\        /# )r8   ÚcmdÚ	error_msgÚoverride_env_varsrx   ©r   r<   r	   r   )r=   s   "r$   r>   r>   à   sE   € ÷ (ñ (Ü	Œc�ð(äœ�}ð(ô  ¤¤S¬# X¥Õ/ð(ô 	ñ	(r#   c                ó$  €  \         P                  ! V R\        VR7      w  r4V#   \        P                   d×   p\
        P                  R\        T 4      \        T4      4       R\        TP                  4      9   d   \        P                  ! 4       h \        TP                  4      pT'       d0   \        P                  ! RP                  \        T4      4      R7      hT'       d   TM
\        T4      p\        P                  ! TR7      hRp?ii ; i)	a¦  Run an apt command, retrying upon failure APT_RETRIES times.

:param cmd: List containing the apt command to run, passed to subp.
:param error_msg: The string to raise as UbuntuProError when all retries
   are exhausted in failure.
:param override_env_vars: Passed directly as subp's override_env_vars arg

:return: stdout from successful run of the apt command.
:raise UbuntuProError: on issues running apt-cache policy.
T)ÚcapturerL   rˆ   z Error running apt command %s: %sz%Could not get lock /var/lib/dpkg/lockrz   )r€   rN   N)r   rZ   r]   r   r^   r_   r`   r<   rb   ÚAPTProcessConflictErrorr„   ÚAPTInvalidRepoErrorr[   Úsortedrh   )r†   r‡   rˆ   ÚoutÚ_errrt   r€   Úmsgs   &&&     r$   Úrun_apt_commandr’   à   s×   € ð8Ü—K’KØØÜ$Ø/ô	
‰	ˆð0 €Jøô% ×+Ñ+ô 8Ü�	‰	Ð4´c¸#³hÄÀAÃÔGØ2´c¸!¿(¹(³mÔCÜ×4Ò4Ó6Ð6ðô
 DÀAÇHÁHÓMˆLßÜ ×4Ò4Ø!%§¡¬6°,Ó+?Ó!@ôð ÷ %‰i¬#¨a«&ˆÜ×+Ò+°3Ô7Ð7ûð#8ús   ‚ $ ¤D¹B,D
Ã&$D
Ä
D)Úmaxsizec                óŠ   € V ^8„  d   QhR\         \        ,          R\         \        \        \        3,          ,          R\        /# )r8   r‡   rˆ   rx   )r	   r<   r   )r=   s   "r$   r>   r>     s7   € ÷ ñ Üœ�}ðä¤¤S¬# X¥Õ/ðô 	ñr#   c                 ó"   € \        R R.V VR7      # )ú	apt-cacheÚpolicy)r†   r‡   rˆ   )r’   )r‡   rˆ   s   &&r$   Úget_apt_cache_policyr˜     s   € ô
 Ø˜(Ð#ØØ+ôð r#   c                   ó2   a € ] tR tRt o R tR tR tRtV tR# )ÚPreserveAptCfgi  c                ó    € Wn         / V n        R # r@   ©Úapt_funcÚcurrent_apt_cfg)Úselfr�   s   &&r$   Ú__init__ÚPreserveAptCfg.__init__  s   € Ø ŒØ!ˆÖr#   c           	     óÜ   € \         P                  pVP                  4        Uu/ uF(  q"\        P                  ! VP                  V4      4      bK*  	  upV n        V P                  4       # u upi r@   )r-   r.   ÚkeysÚcopyÚdeepcopyr/   rž   r�   )rŸ   ÚcfgÚkeys   &  r$   Ú	__enter__ÚPreserveAptCfg.__enter__  sT   € Ü�n‰nˆà8;¿¹¼
ó 
Ù8B°”—’˜sŸw™w s›|Ó,Ò,¹
ñ 
ˆÔð �}‰}‹Ðùò	 
s   £.A)c                óÖ   € \         P                  pV P                  P                  4        F%  pVP	                  WPP                  V,          4       K'  	  \         P
                  ! 4        R # r@   )r-   r.   rž   r£   r|   Úinit_system)rŸ   ÚtypeÚvalueÚ	tracebackr¦   r§   s   &&&&  r$   Ú__exit__ÚPreserveAptCfg.__exit__$  sI   € Ü�n‰nˆð ×'Ñ'×,Ñ,Ö.ˆCØ�G‰G�C×-Ñ-¨cÕ2Ö3ñ /ä×ÒÖr#   rœ   N)	r   r   r   r   r    r¨   r¯   r"   Ú__classdictcell__©Ú__classdict__s   @r$   rš   rš     s   ø‡ € ò"ò÷ð r#   rš   c                  óà   € \         P                  P                  4        F"  p \         P                  P                  V 4       K$  	  \         P                  ! 4        \         P
                  ! R 4      # r@   )r-   r.   r£   Úclearr0   ÚCache©r§   s    r$   Úget_apt_pkg_cacher¸   .  sC   € Ü�~‰~×"Ñ"Ö$ˆÜ�‰×Ñ˜SÖ!ñ %ä‡L‚L„NÜ�=Š=˜ÓÐr#   c                  ó¢  €  \        4        \        P                  P                  4        FA  p \        P
                  ! R V 4      '       d   K"  \        P                  P                  V 4       KC  	  \        P                  P                  R\        4       \        P                  ! 4        \        P                  ! R4      #   \         d    / u # i ; i)z^Acquirer+   N)Ú_ensure_esm_cache_structurer-   r.   r£   rd   re   rµ   r|   r   r0   r¶   Ú	Exceptionr·   s    r$   Úget_esm_apt_pkg_cacher¼   5  s�   € ðô 	$Ô%ô —>‘>×&Ñ&Ö(ˆCÜ—9’9˜Z¨×-Ô-Ü—‘×$Ñ$ SÖ)ñ )ô 	�‰×Ñ˜5¤/Ô2Ü�ŠŒä�}Š}˜TÓ"Ð"øÜô ð Š	ðús   ‚AB> ÁA1B> Â>CÃCc                óF   € V ^8„  d   QhR\         R\        \         ,          /# )r8   Úpkg_namerx   )r<   r	   )r=   s   "r$   r>   r>   M  s   € ÷ 
ñ 
œcð 
¤h¬s¥mñ 
r#   c                 ó  € \        \        4      ;_uu_ 4       p W,          p R R R 4       XP                  '       d   TP                  P                  # R #   \         d     R R R 4       R # i ; i  + '       g   i     LT; ir@   )rš   r¸   ÚKeyErrorÚcurrent_verÚver_str)r¾   ÚcacheÚpackages   &  r$   Úget_pkg_versionrÅ   M  si   € Ü	Ô)×	*Ô	*¨eð	Ø•o‰G÷ 
+ð ××ÐØ×"Ñ"×*Ñ*Ð*áøô ô 	Ø÷	 
+Ñ	*ð	ú÷ 
+×	*ús(   ˜A/šAÁA,Á A/Á+A,Á,A/Á/A?	c                óR   € V ^8„  d   QhR\         R\        R\        \         ,          /# )r8   r¾   Úcheck_esm_cacherx   )r<   Úboolr	   )r=   s   "r$   r>   r>   Z  s(   € ÷ )ñ )Üð)Ü$(ð)äŒc…]ñ)r#   c                 óô  € \        \        4      ;_uu_ 4       p W ,          p\        P                  ! T4      pTP                  T4      pT'       g    R R R 4       R # TP                  pR R R 4       T'       g   X# \        \        4      ;_uu_ 4       pT'       dy    Yp,          p\        P                  ! T4      p	T	P                  T4      p
T
'       g   XuuR R R 4       # T
P                  p\        P                  ! TX4      ^ 8¼  d   TuuR R R 4       # R R R 4       X#   \         d     R R R 4       R # i ; i  + '       g   i     LÖ; i  \         d    Xu uuR R R 4       # i ; i  + '       g   i     X# ; ir@   )	rš   r¸   rÀ   r-   ÚDepCacheÚget_candidate_verrÂ   r¼   rA   )r¾   rÇ   rÃ   rÄ   Ú	dep_cacheÚ	candidateÚcandidate_versionÚ	esm_cacheÚesm_packageÚesm_dep_cacheÚesm_candidateÚesm_candidate_versions   &&          r$   Úget_pkg_candidate_versionrÔ   Z  sU  € ô 
Ô)×	*Ô	*¨eð	Ø•oˆGô ×$Ò$ UÓ+ˆ	Ø×/Ñ/°Ó8ˆ	ßØ÷ 
+Ñ	*ð &×-Ñ-Ð÷ 
+÷ Ø Ð ä	Ô-×	.Ô	.°)ßð)Ø'Õ1�ô $×,Ò,¨YÓ7ˆMØ)×;Ñ;¸KÓHˆMß Ø(÷ 
/Ò	.ð %2×$9Ñ$9Ð!ô ×'Ò'Ø)Ð+<óð ôð
 -÷) 
/×	.Ò	.ð, ÐøôG ô 	Ø÷	 
+Ñ	*ð	ú÷ 
+×	*ûô( ô )Ø(Ñ(÷ 
/Ò	.ð)ú÷	 
/Ö	.ð, Ðúsu   ˜D6šD¢.D6ÁD6ÁD6Â	E&ÂE	Â#.E&ÃE&Ã)E&ÄD3Ä'D6Ä2D3Ä3D6Ä6E	Å	E#ÅE&Å"E#Å#E&Å&E7	c                óh   € V ^8„  d   QhR\         \        \        \        3,          ,          R\        /# )r8   rˆ   rx   )r	   r   r<   )r=   s   "r$   r>   r>   †  s)   € ÷ ñ Ü¤¤S¬# X¥Õ/ðäñr#   c                 ó  €  \        R R.V R7      p \        P                  4        T#   \        P                   d:   p\        P	                  R\        T4      4       \        P                  ! 4       hRp?i\        P                   d'   p\        P                  ! TP                  R7      hRp?i\        P                   d'   p\        P                  ! TP                  R7      hRp?ii ; i  \        P                  4        i ; i)úapt-getÚupdate©r†   rˆ   z Error running apt-get update: %sN©Úrepo_msgrN   )r’   r   rŒ   r_   r`   r<   ÚAPTUpdateProcessConflictErrorr�   ÚAPTUpdateInvalidRepoErrorr‘   ÚUbuntuProErrorÚAPTUpdateFailedr˜   Úcache_clear)rˆ   r�   rt   s   &  r$   Úrun_apt_update_commandrá   †  sÁ   € ð+ÜØ˜HÐ%Ð9Jô
‰ô 	×(Ñ(Ô*à€Jøô ×-Ñ-ô 9Ü�	‰	Ð4´c¸!³fÔ=Ü×6Ò6Ó8Ð8ûÜ×)Ñ)ô CÜ×2Ò2¸A¿E¹EÔBÐBûÜ×$Ñ$ô 7Ü×(Ò(°·±Ô6Ð6ûð7ûô 	×(Ñ(Õ*úsD   ‚( ¨C(½4A1Á1C(ÂC(Â	!B*Â*C(ÃC(Ã!C#Ã#C(Ã(C+ Ã+Dc                ó$   € V ^8„  d   QhR\         /# )r8   Úsources_list_pathr;   )r=   s   "r$   r>   r>   ¡  s   € ÷ #/ñ #/¬3ñ #/r#   c           	      ó:  € \        \        4      ;_uu_ 4       p\        P                  P	                  R \
        P                  P                  V 4      4       \        P                  P	                  RR4       \        P                  P	                  RR4       \        P                  ! 4       pVP                  4        \        4       p\
        P                  P                  \        P                  P                  R4      R4      p\        P                  ! V4      p V;_uu_ 4        VP                  W2^ 4       RRR4       \.        P1                  4         RRR4       R#   + '       g   i     L/; i  \        \        RR4       d:   p\         P#                  R	\%        T4      4       \&        P(                  ! 4       hRp?i\*         d&   p\&        P,                  ! \%        T4      R
7      hRp?ii ; i  \.        P1                  4        i ; i  + '       g   i     R# ; i)zDir::Etc::sourcelistzDir::Etc::sourcepartszN.O.F.O.L.D.E.RzAPT::List-CleanupÚ0zDir::State::ListsÚlockNÚErrorzError updating apt cache: %srN   r   )rš   r¸   r-   r.   r|   rQ   rR   ÚabspathÚ
SourceListÚread_main_listr   r[   Úfind_dirÚFileLockrØ   Úgetattrr_   r`   r<   r   rŒ   ÚSystemErrorrß   r˜   rà   )rã   rÃ   Úsources_listÚfetch_progressÚ	lock_fileræ   rt   s   &      r$   Úupdate_sources_listrò   �  su  € ô
 
Ô)×	*Ô	*¨eä�‰×ÑØ"¤B§G¡G§O¡OÐ4EÓ$Fô	
ô 	�‰×ÑÐ2Ð4EÔFÜ�‰×ÑÐ.°Ô4Ü×)Ò)Ó+ˆØ×#Ñ#Ô%ô )Ó*ˆô —G‘G—L‘LÜ�N‰N×#Ñ#Ð$7Ó8¸&ó
ˆ	ô ×Ò 	Ó*ˆð
	/ß’Ø—‘˜^¸1Ô=÷ ô !×,Ñ,Õ.÷E 
+Ñ	*÷2 —ûô ”w ¨Ó,ô 	7Ü�I‰IÐ4´c¸!³fÔ=Ü×4Ò4Ó6Ð6ûÜô 	<Ü×,Ò,´C¸³FÔ;Ð;ûð	<ûô !×,Ñ,Õ.ú÷E 
+×	*Ð	*úsr   ˜D H	Ä
E0Ä#E	Ä6E0Ä>H	ÅE-Å(E0Å,G0Å-E0Å0G-Æ4F:Æ:G-ÇG-Ç G(Ç(G-Ç-G0Ç0HÈH	È	H	c          	      óÂ   € V ^8„  d   QhR\         \        ,          R\        \         \        ,          ,          R\        \        \        \        3,          ,          R\        /# )r8   ÚpackagesÚapt_optionsrˆ   rx   r‰   )r=   s   "r$   r>   r>   Ç  sJ   € ÷ ñ Ü”3�iðäœ$œs�)Õ$ðô  ¤¤S¬# X¥Õ/ðô 	ñ	r#   c                 óH  € Vf   . p \        . ROV,           V ,           VR7      pV#   \        P                   d-    \        P	                  RT 4       \        P
                  ! 4       h\        P                   d'   p\        P                  ! TP                  R7      hR p?ii ; i)NrÙ   z)Error running apt install for packages %srÚ   )r×   Úinstallú--assume-yes)	r’   r   rŒ   r_   r`   ÚAPTInstallProcessConflictErrorr�   ÚAPTInstallInvalidRepoErrorr‘   )rô   rõ   rˆ   r�   rt   s   &&&  r$   Úrun_apt_install_commandrû   Ç  s™   € ð
 ÒØˆðDÜÚ6Øõàõð 0ô	
ˆð €Jøô ×-Ñ-ô :Ü�	‰	Ð=¸xÔHÜ×7Ò7Ó9Ð9Ü×)Ñ)ô DÜ×3Ò3¸Q¿U¹UÔCÐCûðDús   ˆ' §AB!Á:B!Á;!BÂB!c                óZ   € V ^8„  d   QhR\         R\        \        P                  ,          /# ©r8   Úoriginrx   )r<   r   r-   ÚPackage)r=   s   "r$   r>   r>   ß  s#   € ÷ ñ ¬Sð ´T¼'¿/¹/Õ5Jñ r#   c                 óV  € \        4       p\        \        4      ;_uu_ 4       pVP                   FR  pVP                  pV'       g   K  VP
                   F)  w  rVVP                  V 8X  g   K  VP                  V4       K+  	  KT  	  R R R 4       \        V4      #   + '       g   i     L; ir@   )	r|   rš   r¸   rô   rÁ   Ú	file_listrþ   r   Úlist)rþ   ÚresultrÃ   rÄ   Úinstalled_versionÚfileÚ_s   &      r$   Ú get_installed_packages_by_originr  ß  s}   € ô ‹U€FÜ	Ô)×	*Ô	*¨eØ—~”~ˆGØ '× 3Ñ 3Ðß Ñ Ø0×:Ô:‘G�DØ—{‘{ fÖ,ØŸ
™
 7Ö+ó  ;ñ &÷ 
+ô �‹<Ð÷ 
+×	*ús   ¢!BÁBÁ,BÂB(	c                óp   € V ^8„  d   QhR\         \        ,          R\        \        P                  ,          /# rý   )r	   r<   r   r-   rÿ   )r=   s   "r$   r>   r>   î  s)   € ÷ ñ Ü”S�Mðä	Œ'�/‰/Õñr#   c                 óÔ  € V f   . # \        4       p\        \        4      ;_uu_ 4       p\        P                  ! V4      pVP
                   Fu  pVP                  pV'       g   K  VP                  V4      pV'       g   K4  We8w  g   K<  VP                   F)  w  rxVP                  V 8X  g   K  VP                  V4       K+  	  Kw  	  R R R 4       \        V4      #   + '       g   i     L; ir@   )r|   rš   r¸   r-   rÊ   rô   rÁ   rË   r  rþ   r   r  )	rþ   r  rÃ   rÌ   rÄ   r  rÍ   r  r  s	   &        r$   Ú;get_installed_packages_with_uninstalled_candidate_in_originr
  î  s³   € ð ‚~Øˆ	ô ‹U€FÜ	Ô)×	*Ô	*¨eÜ×$Ò$ UÓ+ˆ	Ø—~”~ˆGØ '× 3Ñ 3Ðß Ñ Ø%×7Ñ7¸Ó@�	ß‘9 Ö!?Ø#,×#6Ô#6™˜ØŸ;™;¨&Ö0Ø"ŸJ™J wÖ/ó $7ñ &÷ 
+ô �‹<Ð÷ 
+×	*ús#   ¨7CÁ$CÁ?CÂCÂ+CÃC'	c                ó�   € V ^8„  d   QhR\         P                  R\        \        ,          R\        \         P
                  ,          /# )r8   rÄ   Úexclude_originrx   )r-   rÿ   r	   r<   r   ÚVersion)r=   s   "r$   r>   r>     s5   € ÷ ñ Ü�_‰_ðÜ.6´s­mðä	Œ'�/‰/Õñr#   c                 óü   € . pV P                    Fc  pVP                   UUu. uF-  w  rEVP                  R 8w  g   K  VP                  V8w  g   K+  VNK/  	  pppV'       g   KR  VP	                  V4       Ke  	  V# u uppi )Únow)Úversion_listr  Ú	componentrþ   Úappend)rÄ   r  Úvalid_versionsr'   r  r  Úvalid_originss   &&     r$   Úget_remote_versions_for_packager    sˆ   € ð €NØ×'Ô'ˆð #×,Ò,ô
á,‘�ð �~‰~ Ñ&ô ð
 ,0¯;©;¸.Ñ+H÷ ˆDÙ,ð 	ñ 
÷ ‰=Ø×!Ñ! 'Ö*ñ (ð Ðùó
s   ¡A8»A8ÁA8c          
      ój   € V ^8„  d   QhR\         \        ,          R\        R\        R\        R\        /# )r8   ÚsuitesÚseriesÚupdates_enabledrm   rx   ©r   r<   rÈ   )r=   s   "r$   r>   r>     s8   € ÷ ñ Ü”�IðÜ"ðÜ59ðÜEHðäñr#   c                 ó´   € R pV  FO  pW9  d   K  R pRV9   d"   V'       g   \         P                  RVV4       RpVRP                  WcVR7      ,          pKQ  	  V# )r,   ú-updatesz?Not enabling apt suite "%s" because "%s-updates" is not enabledz# zC{maybe_comment}deb {url} {suite} main
# deb-src {url} {suite} main
)Úmaybe_commentr{   Úsuite)r_   Úwarningr=   )r  r  r  rm   Úcontentr  r  s   &&&&   r$   Ú_get_list_file_contentr!    ss   € ð €GÛˆØÔÙØˆØ˜Ô§Ü�K‰KðàØô	ð !ˆMØð-ß-3©VØ+Àð .4ó .õ	
Šñ ð& €Nr#   c                ó‚   € V ^8„  d   QhR\         \        ,          R\        R\        R\        R\        R\        R\        /# )r8   r  r  r  rm   Úkeyring_fileÚinclude_deb_srcrx   r  )r=   s   "r$   r>   r>   2  sR   € ÷ ñ Ü”�Iðäðô ðô ð	ô
 ðô ðô 	ñr#   c                 ó.  € V  Uu. uF  qaV9   g   K  VNK  	  ppV'       g1   \         P                  R V4       V Uu. uF  pRV9  g   K  VNK  	  ppV'       d   RMRp\        P                  VRP	                  V4      \
        VVR7      p	V	# u upi u upi )zPNot enabling service-related -updates suites because "%s-updates" is not enabledr  z deb-srcr,   Ú )r{   r  Úkeyrings_dirr#  Údeb_src)r_   r  ÚDEB822_REPO_FILE_CONTENTr=   r[   ÚKEYRINGS_DIR)
r  r  r  rm   r#  r$  r  Úappliable_suitesr(  r   s
   &&&&&&    r$   Ú_get_sources_file_contentr,  2  s©   € ñ ,2ÓE©6 %¸u±_Ÿ˜©6ÐÐEßÜ�‰ð+àô	
ñ  0ó
Ù/�e°:ÀUÑ3J�EˆEÑ/ð 	ð 
÷ ,‰j°€Gä&×-Ñ-ØØ�x‰xÐ(Ó)Ü!Ø!Øð .ó €Gð €Nùò+ Fùò
s   …B’B¼	BÁ
Bc                ó²   € V ^8„  d   QhR\         R\         R\         R\        \         ,          R\         R\        \         ,          R\        \        ,          RR	/# )
r8   Úrepo_filenamerm   Úcredentialsr  r#  Úsnapshot_urlsÚcheck_updates_pocketrx   N)r<   r   r	   rÈ   )r=   s   "r$   r>   r>   R  sd   € ÷ >.ñ >.Üð>.äð>.ô ð>.ô ”�Ið	>.ô
 ð>.ô œ•9ð>.ô #¤4�.ð>.ð 
ñ>.r#   c                óX  €  VP                  R4      w  rx\        P                  P	                  V4       \
        P                  ! 4       P                  p	VP                  R4      '       d   VRR p\        WV4       Rp
V'       dY   Rp
\        RR.\        P                  4      pVP                  4        F&  pR	P                  V	4      V9  d   K  R
V9  d   K$  Rp
 M	  V.V,            F  p\        W×V4       K  	  V	\         9   dl   \"        P$                  P'                  \(        V4      p\"        P$                  P'                  \*        V4      p\,        P.                  ! Wï4       \1        W9W¡4      pM\3        W9W¡V4      p\
        P4                  ! V V4       R#   \         d	    RpTp EL“i ; i)z™Add an authenticated apt repo and credentials to the system.

@raises: InvalidAPTCredentialsError when the token provided can't access
    the repo PPA.
Ú:ÚbearerrD   NTFr–   r—   za={}-updatesz	o=Ubuntu,éÿÿÿÿ)rT   Ú
ValueErrorr   ÚsecretsÚ
add_secretr   Úget_release_infor  rV   ru   r’   r   ÚAPT_POLICY_FAILEDÚ
splitlinesr=   Úadd_apt_auth_conf_entryÚSERIES_NOT_USING_DEB822rQ   rR   r[   r*  ÚAPT_KEYS_DIRr   Úexport_gpg_keyr!  r,  rW   )r.  rm   r/  r  r#  r0  r1  rF   rG   r  r  r—   r�   r{   Úsource_keyring_fileÚdestination_keyring_filer   s   &&&&&&&          r$   Úadd_auth_apt_reporB  R  s…  € ðØ(×.Ñ.¨sÓ3Ñˆô ×Ñ×%Ñ% hÔ/Ü×$Ò$Ó&×-Ñ-€FØ×Ñ˜×ÒØ˜C˜R�=ˆÜ  °XÔ>ð €OßØˆÜ Ø˜(Ð#¤X×%?Ñ%?ó
ˆð ×%Ñ%Ö'ˆDà×$Ñ$ VÓ,°DÔ8Ùà $Ô&ÙØ"ˆOÙñ (ð ˆz˜M×)Ð)ˆÜ ¨xÖ8ñ *ð Ô(Ô(Ü Ÿg™gŸl™l¬<¸ÓFÐÜ#%§7¡7§<¡<´¸lÓ#KÐ Ü×ÒÐ.ÔIä(Ø˜Oó
‰ô ,Ø˜O°|ó
ˆô ×Ò�m WÖ-øô] ô ØˆØ‹ðús   ‚F ÆF)Æ(F)c                ó  € \        4       pRV 9   d   V P                  R4      w  rEMT pVP                  R4      '       g
   VR,          p\        P                  P                  V4      '       d   \        P                  ! V4      pMRpRP                  VVV\        R7      pRp. p	VP                  4        Fy  p
V'       g^   V
P                  4       p\        V4      ^8¼  d>   V^,          pWÅ8X  d   V	P                  V4       RpKO  WÅ9   d   V	P                  V4       RpV	P                  V
4       K{  	  V'       g   V	P                  V4       V	P                  R4       \        P                  ! VRP                  V	4      R	R
7       R# )zBAdd or replace an apt auth line in apt's auth.conf file or conf.d.rC   rD   r,   z:machine {repo_path} login {login} password {password}{cmt})rE   ÚloginrG   ÚcmtFTrz   rH   rI   N)rU   rT   rV   rQ   rR   rS   r   Ú	load_filer=   ÚAPT_AUTH_COMMENTr;  Úlenr  rW   r[   )rm   rD  rG   ro   Ú	_protocolrE   Úorig_contentÚrepo_auth_lineÚadded_new_authÚ	new_linesr�   Ú
split_lineÚcurr_line_repos   &&&          r$   r<  r<  “  sU  € ä5Ó7€MØ�ÔØ'Ÿ~™~¨eÓ4Ñˆ	�9àˆ	Ø×Ñ˜c×"Ò"Ø�SÕˆ	Ü	‡w�w‡~�~�m×$Ò$Ü×'Ò'¨Ó6‰àˆð	ß‘ØØØÜ ð	 ó 
ð ð €NØ€IØ×'Ñ'Ö)ˆßØŸ™›ˆJÜ�:‹ !Ô#Ø!+¨A¥�Ø!Ô.à×$Ñ$ ^Ô4Ø%)�NÙØ!Ô.ð ×$Ñ$ ^Ô4Ø%)�NØ×Ñ˜Öñ *÷  Ø×Ñ˜Ô(Ø×Ñ�RÔÜ
×Ò�m T§Y¡Y¨yÓ%9À×Fr#   c                ó  € RV 9   d   V P                  R4      w  rMT pVP                  R4      '       d   VRR	 p\        4       p\        P                  P                  V4      '       dš   \        P                  ! V4      pRP                  VR7      pRP                  VP                  4        Uu. uF  qeV9  g   K  VNK  	  up4      pV'       g   \        P                  ! V4       R# \        P                  ! W7RR7       R# R# u upi )
z+Remove a repo from the shared apt auth filerC   rD   Nzmachine {repo_path}/ login)rE   rz   rH   rI   r5  )rT   rV   rU   rQ   rR   rS   r   rF  r=   r[   r;  rl   rW   )rm   rI  rE   ro   Úapt_authÚauth_prefixr�   r   s   &       r$   Úremove_repo_from_apt_auth_filerS  Â  sÜ   € à�ÔØ'Ÿ~™~¨eÓ4Ñˆ	�9àˆ	Ø×Ñ˜#×ÒØ˜c˜r�Nˆ	Ü5Ó7€MÜ	‡w�w‡~�~�m×$Ò$Ü×#Ò# MÓ2ˆØ2×9Ñ9ÀIÐ9ÓNˆØ—)‘)Ø&×1Ñ1Ô3ÓOÑ3�dÈ$Ñ7N�TˆTÑ3ÑOó
ˆ÷ Ü×%Ò% mÖ4ä×Ò˜m¸5×Añ %ùò Ps   Â.DÂ;Dc          
      óx   € V ^8„  d   QhR\         R\         R\        \         ,          R\        \         ,          RR/# )r8   r.  rm   r0  r#  rx   N)r<   r   r	   )r=   s   "r$   r>   r>   ×  sB   € ÷ ,ñ ,Üð,äð,ô œ•9ð,ô œ3•-ð	,ð
 
ñ,r#   c                ór  € \         P                  ! V 4       V P                  R4      '       d,   \         P                  ! \        P                  ! V R4      4       V'       d;   \
        P                  P                  \        V4      p\         P                  ! V4       V.V,            F  p\        V4       K  	  R# )z>Remove an authenticated apt repo and credentials to the systemz.sourcesr  N)
r   rl   rV   r   Úset_filename_extensionrQ   rR   r[   r>  rS  )r.  rm   r0  r#  r{   s   &&&& r$   Úremove_auth_apt_reporW  ×  s„   € ô ×Ò˜mÔ,à×Ñ˜j×)Ò)Ü×!Ò!Ü×'Ò'¨°vÓ>ô	
÷ Ü—w‘w—|‘|¤L°,Ó?ˆÜ×!Ò! ,Ô/Øˆz˜M×)Ð)ˆÜ& sÖ+ó *r#   c                ó´   € VP                  R4      w  rEVP                  R4      '       d   VRR pRP                  W#R7      p\        P                  ! W4       R# )z.Add an apt preferences file and pin for a PPA.rC   rD   Nz<Package: *
Pin: release o={origin}
Pin-Priority: {priority}
)rþ   Úpriorityr5  )rT   rV   r=   r   rW   )Úapt_preference_filerm   rþ   rY  rI  rE   r   s   &&&&   r$   Úadd_ppa_pinningr[  ì  sV   € à#Ÿ>™>¨%Ó0Ñ€IØ×Ñ˜#×ÒØ˜c˜r�Nˆ	ð	%ç%+¡V°6 VÓ%Mð ô
 ×ÒÐ)Ö3r#   c                 ó  € \         P                  ! RRR\        .4      w  rV '       d    V P                  R4      ^,          R,           # \         P                  ! RRR\        .4      w  rV P                  R4      ^,          P                  R4      # )z7Return to patch to the system configured APT auth file.ú
apt-configÚshellr§   Ú'z90ubuntu-advantagerD   )r   rZ   ÚAPT_CONFIG_AUTH_PARTS_DIRrT   ÚAPT_CONFIG_AUTH_FILEÚrstrip)r�   r�   s     r$   rU   rU   ù  sz   € ä—’Ø	�w Ô'@ÐAó�I€C÷ Ø�y‰y˜‹~˜aÕ Ð#7Õ7Ð7ä—K’KØ˜7 EÔ+?Ð@ó
‰	ˆð �y‰y˜‹~˜aÕ ×'Ñ'¨Ó,Ð,r#   c                ó¬  € V P                  R4      w  r#VP                  R4      '       d   VRR pRp\        P                  ! RRR\        .4      w  rVV'       d   VP                  R4      ^,          pVP                  RR	4      p\        \        P                  ! \        P                  P                  WGR
P                  V4      ,           4      4      4      # )zEList any apt files in APT_CONFIG_LISTS_DIR given repo_url and series.rC   rD   Nz/var/lib/apt/listsr]  r^  r§   r_  r  z
_dists_{}*r5  )rT   rV   r   rZ   ÚAPT_CONFIG_LISTS_DIRÚreplacerŽ   ÚglobrQ   rR   r[   r=   )rm   r  rI  rE   Ú	lists_dirr�   r�   Úaptlist_filenames   &&      r$   Úfind_apt_list_filesri    s·   € à#Ÿ>™>¨%Ó0Ñ€IØ×Ñ˜#×ÒØ˜c˜r�Nˆ	Ø$€IÜ—’Ø	�w Ô';Ð<ó�I€C÷ Ø—I‘I˜c“N 1Õ%ˆ	à ×(Ñ(¨¨cÓ2ÐÜÜ�	Š	Ü�G‰G�L‰LØ¨l×.AÑ.AÀ&Ó.IÕIóó	
óð r#   c                óV   € \        W4       F  p\        P                  ! V4       K  	  R# )z?Remove any apt list files present for this repo_url and series.N)ri  r   rl   )rm   r  rR   s   && r$   Úremove_apt_list_filesrk    s   € ä# HÖ5ˆÜ×!Ò! $Ö'ó 6r#   c                ó0   € V ^8„  d   QhR\         R\        /# )r8   Úpkgrx   )r<   rÈ   )r=   s   "r$   r>   r>   #  s   € ÷ 1ñ 1”cð 1œdñ 1r#   c                 ó   € V \        4       9   # r@   )Úget_installed_packages_names)rm  s   &r$   Úis_installedrp  #  s   € ØÔ.Ó0Ñ0Ð0r#   c                ó:   € V ^8„  d   QhR\         \        ,          /# ©r8   rx   )r   r%   )r=   s   "r$   r>   r>   '  s   € ÷ ñ ¤Ô%8Õ 9ñ r#   c                  ó:  € . p \        \        4      ;_uu_ 4       pVP                   FT  pVP                  pV'       g   K  V P	                  \        VP                  VP                  VP                  R 7      4       KV  	  RRR4       V #   + '       g   i     T # ; i))r&   r'   r(   N)	rš   r¸   rô   rÁ   r  r%   r&   rÂ   r(   )Ú	installedrÃ   rÄ   r  s       r$   Úget_installed_packagesru  '  s‚   € Ø€IÜ	Ô)×	*Ô	*¨eØ—~”~ˆGØ '× 3Ñ 3Ðß Ñ Ø× Ñ Ü'Ø$Ÿ\™\Ø 1× 9Ñ 9Ø.×3Ñ3ôöñ &÷ 
+ð Ð÷ 
+Ö	*ð Ðús   š!B	Á ?B	Â	B	c                ó:   € V ^8„  d   QhR\         \        ,          /# rr  ©r   r<   )r=   s   "r$   r>   r>   7  s   € ÷ ñ ¤d¬3¥iñ r#   c                  óX   € \        4       p V  Uu. uF  qP                  NK  	  ppV# u upi r@   )ru  r&   )Úpackage_listrm  Ú	pkg_namess      r$   ro  ro  7  s+   € Ü)Ó+€LÙ%1Ó2¡\˜c—”¡\€IÐ2ØÐùò 3s   �'c                ó‚   € V ^8„  d   QhR\         \        ,          R\         \        ,          R\         \        ,          RR/# )r8   Ú
http_proxyÚhttps_proxyÚproxy_scoperx   N)r	   r<   r   )r=   s   "r$   r>   r>   =  sC   € ÷ 5Añ 5AÜœ•ð5Aäœ#•ð5Aô œ-Õ(ð5Að 
ñ	5Ar#   c                óZ  € V '       g	   V'       dm   V'       de   RpV\         P                  8X  d   RpMV\         P                  8X  d   Rp\        P	                  \
        P                  P                  VR7      4       RpV '       df   V\         P                  8X  d   V\        P                  V R7      ,          pM2V\         P                  8X  d   V\        P                  V R7      ,          pV'       df   V\         P                  8X  d   V\        P                  VR7      ,          pM2V\         P                  8X  d   V\        P                  VR7      ,          pVR8w  d   \        V,           pVR8X  d   \        P                  ! \        4       R# \        P                   ! \        V4       R# )a�  
Writes an apt conf file that configures apt to use the proxies provided as
args.
If both args are None, then no apt conf file is written. If this function
previously wrote a conf file, and was run again with both args as None,
the existing file is removed.

:param http_proxy: the url of the http proxy apt should use, or None
:param https_proxy: the url of the https proxy apt should use, or None
:return: None
r,   z	UA-scopedÚglobal)Úscope)Ú	proxy_urlN)r   r!   r    ÚeventÚinfor   ÚSETTING_SERVICE_PROXY_SCOPEr=   ÚAPT_CONFIG_UA_PROXY_HTTPÚAPT_CONFIG_GLOBAL_PROXY_HTTPÚAPT_CONFIG_UA_PROXY_HTTPSÚAPT_CONFIG_GLOBAL_PROXY_HTTPSÚAPT_PROXY_CONFIG_HEADERr   rl   ÚAPT_PROXY_CONF_FILErW   )r|  r}  r~  ÚmessageÚapt_proxy_configs   &&&  r$   Úsetup_apt_proxyrŽ  =  sm  € ÷  —[ßØˆGØœm×4Ñ4Ô4Ø%‘Ø¤× 4Ñ 4Ô4Ø"�Ü�J‰JÜ×4Ñ4×;Ñ;À'Ð;ÓJôð ÐßØœ-×0Ñ0Ô0ØÔ 8× ?Ñ ?Ø$ð !@ó !õ Ñð œM×0Ñ0Ô0ØÔ <× CÑ CØ$ð !Dó !õ Ð÷ Øœ-×0Ñ0Ô0ØÔ 9× @Ñ @Ø%ð !Aó !õ Ñð œM×0Ñ0Ô0ØÔ =× DÑ DØ%ð !Eó !õ Ðð ˜2ÔÜ2Ð5EÕEÐà˜2ÔÜ×!Ò!Ô"5Ö6ä×ÒÔ-Ð/?Ö@r#   c                ó:   € V ^8„  d   QhR\         \        ,          /# rr  ©r	   Úfloat)r=   s   "r$   r>   r>   u  s   € ÷ ñ œH¤U�Oñ r#   c                  ó¤   € R p \         P                  P                  \        4      '       d%   \         P                  ! \        4      P
                  p V # r@   )rQ   rR   rS   ÚAPT_UPDATE_SUCCESS_STAMP_PATHÚstatÚst_mtime©Ú
cache_times    r$   Úget_apt_cache_timer˜  u  s6   € Ø€JÜ	‡w�w‡~�~Ô3×4Ò4Ü—W’WÔ:Ó;×DÑDˆ
ØÐr#   c                ó:   € V ^8„  d   QhR\         \        ,          /# rr  r�  )r=   s   "r$   r>   r>   |  s   € ÷ ñ œh¤u�oñ r#   c                  ó¤   € R p \         P                  P                  \        4      '       d%   \         P                  ! \        4      P
                  p V # r@   )rQ   rR   rS   ÚDPKG_STATUS_PATHr”  r•  )Ústatus_times    r$   Úget_dpkg_status_timer�  |  s6   € Ø€KÜ	‡w�w‡~�~Ô&×'Ò'Ü—g’gÔ.Ó/×8Ñ8ˆØÐr#   c                óN   € V ^8„  d   QhR\         \        P                  ,          /# rr  )r	   Údatetime)r=   s   "r$   r>   r>   ƒ  s!   € ÷ Nñ N¤¬×):Ñ):Õ ;ñ Nr#   c                  ó’   € \        4       p V f   R # \        P                  P                  V \        P                  P                  4      # r@   )r˜  rŸ  ÚfromtimestampÚtimezoneÚutcr–  s    r$   Úget_apt_cache_datetimer¤  ƒ  s8   € Ü#Ó%€JØÒÙÜ×Ñ×*Ñ*¨:´x×7HÑ7H×7LÑ7LÓMÐMr#   c                  ó   a€ \         P                   ! \        P                  P                  \        R 4      RR7      o\
        R,          \
        R,          ,           p \        ;QJ d    V3R lV  4       F  '       d   K   RM	  RM! V3R lV  4       4      '       d   R# \        P                  ! \        4       \
        R,           F  p\        P                  ! V4       K  	  \
        R,           F  p\        P                  ! VRRR	7       K  	  R# )
z**/*T)Ú	recursiver   r   c              3   ó,   <"  € T F	  qS9   x € K  	  R # 5ir@   r   )Ú.0r  Úexisting_filess   & €r$   Ú	<genexpr>Ú._ensure_esm_cache_structure.<locals>.<genexpr>’  s   øé € Ð=©} t�NÖ"«}ùs   ƒFNií  )Úexist_okrJ   )rf  rQ   rR   r[   r   ÚESM_BASIC_FILE_STRUCTUREÚallr   Úensure_folder_absentÚcreate_fileÚmakedirs)Údesired_filesr  Úfolderr©  s      @r$   rº   rº   Š  s¹   ø€ ä—Y’YÜ
�‰�‰”_ fÓ-¸ô€Nô 	! Õ)Ô,DÀYÕ,OÕOð ÷ ƒsÔ=©}Ó=‡s‡s‚sÔ=©}Ó=×>Ò>Ùô ×Ò¤Ô0ô )¨×1Ð1ˆÜ×Ò˜4Ö ñ 2ä*¨9×5Ð5ˆÜ
�Š�F T°×6ó 6r#   c                ó   € V ^8„  d   QhRR/# )r8   rx   Nr   )r=   s   "r$   r>   r>   Ÿ  s   € ÷ BPñ BP˜dñ BPr#   c           
      óÚ  € \         P                  ! 4       '       g   R # \        4        ^ RIHp ^ RIHp ^ RIHpH	p RpRp\        P                  ! 4       pVf   V! V 4      ^ ,          pVP                  R. 4       F]  pVP                  RR4      R8X  d   VP                  R	R
4      R8H  pVP                  RR4      R8X  g   KH  VP                  R	R
4      R8H  pK_  	  V! V 4      p	V'       d8   V	P                  4       ^ ,          VP                  8X  d   V	P                  4        MV	P!                  4        \         P"                  ! 4       '       dX   V! V 4      p
V'       d8   V
P                  4       ^ ,          VP                  8X  d   V
P                  4        MV
P!                  4        \%        \&        4      ;_uu_ 4       p\(        P*                  ! 4       pVP-                  4         ! R R\.        4      pV! 4       p VP1                  Wì^ 4       R R R 4       R #   \2         d8   p\4        P7                  RP9                  \;        T4      4      4        R p?LGR p?ii ; i  + '       g   i     R # ; i)N)Ústatus)ÚApplicationStatus)ÚESMAppsEntitlementÚESMInfraEntitlementFÚservicesr&   r,   zesm-appsÚ	availableÚnoÚyesz	esm-infrac                   óD   a € ] tR tRt o V 3R lR ltV 3R lR ltRtV tR# )Ú-update_esm_caches.<locals>.EsmAcquireProgressiÔ  c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r8   Úitem©r-   ÚAcquireItemDesc)r=   r³   s   "€r$   r>   Ú:update_esm_caches.<locals>.EsmAcquireProgress.__annotate__Õ  s   ø€ ÷ Mñ M¡×!8Ñ!8ñ Mr#   c                ób   € \         P                  R P                  VP                  4      4       R# )zFetched ESM Apt Cache item: {}N)r_   Údebugr=   Úuri©rŸ   rÂ  s   &&r$   ÚdoneÚ2update_esm_caches.<locals>.EsmAcquireProgress.doneÕ  s   € Ü—	‘	Ð:×AÑAÀ$Ç(Á(ÓKÖLr#   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rÁ  rÃ  )r=   r³   s   "€r$   r>   rÅ  Ø  s   ø€ ÷ ñ ¡×!8Ñ!8ñ r#   c                ób   € \         P                  R P                  VP                  4      4       R# )z&Failed to fetch ESM Apt Cache item: {}N)r_   r  r=   rÈ  rÉ  s   &&r$   ÚfailÚ2update_esm_caches.<locals>.EsmAcquireProgress.failØ  s    € Ü—‘Ø<×CÑCÀDÇHÁHÓMör#   r   N)r   r   r   r   rÊ  rÎ  r"   r±   r²   s   @r$   ÚEsmAcquireProgressr¿  Ô  s   ø‡ € ÷Mð M÷ö r#   rÐ  z%Failed to fetch the ESM Apt Cache: {})r   Úis_current_series_ltsrº   Úuaclient.actionsr¶  Ú(uaclient.entitlements.entitlement_statusr·  Úuaclient.entitlements.esmr¸  r¹  r   Úreadr/   Úapplication_statusÚDISABLEDÚsetup_local_esm_repoÚdisable_local_esm_repoÚis_current_series_active_esmrš   r¼   r-   ré   rê   r   rØ   rî   r_   r  r=   r<   )r¦   r¶  r·  r¸  r¹  Úapps_availableÚinfra_availableÚcurrent_statusÚserviceÚappsÚinfrarÃ   rï   rÐ  rð   rt   s   &               r$   Úupdate_esm_cachesrá  Ÿ  sí  € Ü×'Ò'×)Ò)ÙäÔ!å'ÝJ÷ð
 €NØ€Oä&×+Ò+Ó-€NØÒÙ › Q�ˆà!×%Ñ% j°"Ö5ˆØ�;‰;�v˜rÓ" jÔ0Ø$Ÿ[™[¨°dÓ;¸uÑDˆNØ�;‰;�v˜rÓ" kÖ1Ø%Ÿk™k¨+°tÓ<ÀÑEŠOñ	 6ñ ˜cÓ"€D÷ 	Ø×#Ñ#Ó% aÕ(Ð,=×,FÑ,FÔFà×!Ñ!Õ#à×#Ñ#Ô%ô ×*Ò*×,Ò,Ù# CÓ(ˆçØ×(Ñ(Ó*¨1Õ-Ð1B×1KÑ1KÔKà×&Ñ&Õ(à×(Ñ(Ô*ô 
Ô-×	.Ô	.°%Ü×)Ò)Ó+ˆØ×#Ñ#Ô%ô	¤ô 	ñ ,Ó-ˆð	PØ�L‰L˜°qÔ9÷ 
/Ñ	.øô  ô 	PÜ�K‰KÐ?×FÑFÄsÈ1ÃvÓN×OÑOûð	Pú÷! 
/×	.Ð	.ús0   Æ;<IÇ8HÈIÈ-IÉIÉIÉIÉI*	c                óF   € V ^8„  d   QhR\         \        ,          R\        /# ©r8   Úpackage_namesÚerror_messagerw  )r=   s   "r$   r>   r>   ä  s   € ÷ ñ ¤4¬¥9ð ¼Sñ r#   c                óJ   € \        . RO\        V 4      ,           VRR/R7       R# )ae  
Remove APT packages from the system.

Setting DEBIAN_FRONTEND to noninteractive makes sure no prompts will
appear during the operation. In this case, --force-confdef will
automatically pick the default option when some debconf should appear.
In the absence of a default option, --force-confold will automatically
choose to keep the old configuration file.
ÚDEBIAN_FRONTENDÚnoninteractive©rˆ   N)r×   Úremoverø   ú$-o Dpkg::Options::="--force-confdef"ú$-o Dpkg::Options::="--force-confold"©r’   r  ©rä  rå  s   &&r$   Úremove_packagesrï  ä  ó.   € ô ò	
ô ˆ}Ó
õ	ð 	Ø,Ð.>Ð?÷r#   c                óF   € V ^8„  d   QhR\         \        ,          R\        /# rã  rw  )r=   s   "r$   r>   r>   ü  s   € ÷ ñ ¤$¤s¥)ð ¼Cñ r#   c                óJ   € \        . RO\        V 4      ,           VRR/R7       R# )ax  
Purge APT packages from the system - remove everything.

Setting DEBIAN_FRONTEND to noninteractive makes sure no prompts will
appear during the operation. In this case, --force-confdef will
automatically pick the default option when some debconf should appear.
In the absence of a default option, --force-confold will automatically
choose to keep the old configuration file.
rç  rè  ré  N)r×   Úpurgerø   rë  rì  rí  rî  s   &&r$   Úpurge_packagesrô  ü  rð  r#   c                ó:   € V ^8„  d   QhR\         \        ,          /# )r8   rä  rw  )r=   s   "r$   r>   r>     s   € ÷ ñ ¤d¬3¥iñ r#   c                ó*   € \        V . RORR/R7       R# )a  
Install packages, allowing downgrades.

The --allow downgrades flag is needed because sometimes we need to
reinstall the packages to a lower version (passed in the package_name
string, as package=version).

Setting DEBIAN_FRONTEND to noninteractive makes sure no prompts will
appear during the operation. In this case, --force-confdef will
automatically pick the default option when some debconf should appear.
In the absence of a default option, --force-confold will automatically
choose to keep the old configuration file.
rç  rè  )rõ   rˆ   N)z--allow-downgradesrë  rì  )rû   )rä  s   &r$   Úreinstall_packagesr÷    s   € ô Øò
ð
 -Ð.>Ð?÷r#   c                  óÔ   € \         P                  P                  4        F"  p \         P                  P                  V 4       K$  	  \         P                  ! 4        \         P                  # r@   )r-   r.   r£   rµ   Úinit_configr·   s    r$   Ú_get_apt_configrú  -  sE   € ô �~‰~×"Ñ"Ö$ˆÜ�‰×Ñ˜SÖ!ñ %ô ×ÒÔÜ�>‰>Ðr#   c                 ó�   € \        \        4      ;_uu_ 4       pVP                  V 4      pR R R 4       V#   + '       g   i     X# ; ir@   )rš   rú  r  )Úbase_keyÚapt_cfgÚapt_cfg_keyss   &  r$   Úget_apt_config_keysrÿ  7  s;   € Ü	œ×	(Ô	(¨GØ—|‘| HÓ-ˆ÷ 
)ð Ð÷ 
)Ö	(ð Ðús	   ˜4´A	c          	      ó    € V ^8„  d   QhR\         \        ,          R\        \        \        \        \        \        ,          3,          3,          /# )r8   Ú	cfg_namesrx   )r   r<   r   r   r   )r=   s   "r$   r>   r>   >  s7   € ÷ ñ Üœ�}ðä	Œ#Œu”Sœ$œs�)�^Õ$Ð
$Õ%ñr#   c                ó  € / p\        \        4      ;_uu_ 4       pV  FD  pVP                  V4      p\        V4      '       g   VP	                  V4      ;'       g    RpWAV&   KF  	  RRR4       V#   + '       g   i     T# ; i)z¦
Get all APT configuration values for the given config names. If
one of the config names is not present on the APT config, that
config name will have a value of None
N)rš   rú  r/   r<   Ú
value_list)r  Úapt_cfg_dictrý  Úcfg_nameÚ	cfg_values   &    r$   Úget_apt_config_valuesr  >  su   € ð €Lä	œ×	(Ô	(¨GÛ!ˆHØŸ™ HÓ-ˆIä�y—>’>Ø#×.Ñ.¨xÓ8×@Ð@¸D�	à%.˜Ó"ñ "÷ 
)ð Ð÷ 
)Ö	(ð Ðús   š?A/ÁA/Á/B 	c                ó$   € V ^8„  d   QhR\         /# rr  r;   )r=   s   "r$   r>   r>   T  s   € ÷ ñ ¤ñ r#   c                  ó\   € R p Rp\         P                  P                  V4      '       d   V# T # )z/etc/apt/sources.listz&/etc/apt/sources.list.d/ubuntu.sources)rQ   rR   rS   )Úold_sources_pathÚnew_sources_paths     r$   Úget_system_sources_filer  T  s8   € Ø.ÐØ?Ðô �7‰7�>‰>Ð*×+Ò+ð 	ðð ðr#   )ÚxenialÚbionicÚfocalÚjammy)g      ð?g      @g      $@)NN)Fr@   )tr¤   rŸ  Úenumrf  ÚloggingrQ   rd   ri   rX   Ú	functoolsr   r   Útypingr   r   r   r   r	   r
   r   r-   Úapt.progress.baser   Úuaclientr   r   r   r   r   r   r   Úuaclient.defaultsr   Úuaclient.files.state_filesr   r\   rG  ra  r`  rd  rŠ  r‡  r‰  r†  rˆ  r>  r*  ÚAPT_METHOD_HTTPS_FILEÚCA_CERTIFICATES_FILEr‹  r“  r›  r=  r)  rR   r[   r­  r]   Úget_event_loggerrƒ  Ú	getLoggerÚreplace_top_level_logger_namer   r_   ÚuniqueÚEnumr   r<   r%   r6   rA   ru   r„   r’   r˜   rš   r¸   r¼   rÅ   rÔ   rá   ÚretryrŒ   rß   rò   rû   r  r
  r  r!  r,  rB  r<  rS  rW  r[  rU   ri  rk  rp  ru  ro  r    rŽ  r˜  r�  r¤  rº   rá  rï  rô  r÷  rú  rÿ  r  r  r   r#   r$   Ú<module>r!     s  ðÛ Û Û Û Û Û 	Û 	Û Û ß &ß I× IÑ Iã Ý -÷÷ ñ õ .Ý 8àÐ Ø*Ð Ø)Ð Ø3Ð Ø+Ð ðÐ ð  KÐ Ø LÐ à?ð ð Að ð )€Ø$€Ø4Ð Ø9Ð ØGÐ à LÐ Ø)Ð à@Ð ðÐ ð Ø
�‰�‰�_Ð&<Ó=Ø
�‰�‰�_Ð&;Ó<ðð Ø
�‰�‰�_Ð&:Ó;Ø
�‰�‰�_Ð&=Ó>Ø
�‰�‰�_Ð&FÓGØ
�‰�‰�_Ð&AÓBð	ðÐ ò" €à×%Ò%Ó'€Ø×Ò˜×:Ò:¸8ÓDÓE€ð ‡�ô�D—I‘Ió ó ðñ
 !Ø˜V S˜M¨I°sÐ+;¸fÀc¸]ÐKóÐ ò
ð ô)ó ð)ò6-õr#÷L(ñV �4Ôöó ð÷ñ ò.òõ0
÷)÷Xð. ‡‚Ø×'Ñ'¨×)CÑ)CÐDØóô#/ó	ð#/÷Lõ0õ÷.õ&÷4÷@>.òB,Gò^B÷*,ò*
4ò-òò,(õ1õõ ð !%Ø!%Ø+8×+?Ñ+?÷5AõpõõNò7õ*BPõJõ0õ0ò2òõ÷,r#   