__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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]: ~ $
�

��gr���SSKrSSKrSSKrSSKrSSKJr SSKJrJr SSKJ	r	 SSK
JrJrJ
r
JrJr SSKJrJrJrJrJrJrJr SSKJr SSKJrJr SS	KJrJr SS
K J!r!J"r" SSK#J$r$ SSK%J&r&J'r'J(r(J)r) SS
K*J+r+J,r,J-r-J.r. SSK/J0r0 SSK1J2r2 \Rf"5r4\Rj"\Rl"\755r8Sr9Sr:Sr;\)RxRz\2R|\R~-\2R�-\)R�Rz\2R�\R�-\2R�-\)R�Rz\2R�\R�-\2R�-\)R�Rz\2R�\R�-\2R�-\)R�Rz\2R�\R�-\2R�-\&R�Rz\2R|\R�-\2R�-\&R�Rz\2R�\R�-\2R�-\9\2R|\R�-\2R�-\:\2R|\R�-\2R�-\;\2R|\R�-\2R�-0
rSSrTSrUSR�\R�\R�\R�\R�S9r[Sr\Sr]0SS_SS_S\R�"5_SS_SS _S!S_S"S_S#S_S$/_S%\(R�Rz_S&\R�_S'0_S(/_S)S*S*S*/\)R�RzS+._S,S*S*S*/S-._S.S _r`S/raS0\\b\44S1jrcS2\S0\\b\44S3jrdS2\S0\\b\44S4jreS0\\b\44S5jrfSHS2\S6\gS0\\b\44S7jjrhS8\
\\b\4S9\bS0\\b\44S:jriSHS;\bS6\gS0\\\b\4\j44S<jjrkS=\bS0\b4S>jrlS?\
\
\bS0\b4S@jrmSISA\
\\b\b4SB\\bS0\
\b4SCjjrnS"\\S0\b4SDjroSHSE\\b\4S6\gS0\b4SFjjrpSGrqg)J�N)�OrderedDict)�datetime�timezone)�Enum)�Any�Dict�List�Optional�Tuple)�event_logger�
exceptions�	livepatch�lock�messages�util�version)�_is_attached)�UA_CONFIGURABLE_KEYS�UAConfig)�get_available_resources�get_contract_information)�ATTACH_FAIL_DATE_FORMAT�PRINT_WRAP_WIDTH)�entitlement_factory)�ContractStatus�UserFacingAvailability�UserFacingConfigStatus�UserFacingStatus)�
machine_token�notices�state_files�user_config_file)�Notice)�TxtColor�	essential�standard�advancedz({name: <17}{available: <11}{description}zJ{name: <17}{available: <11}{entitled: <11}{auto_enabled: <16}{description}z4{name: <17}{entitled: <10}{status: <13}{description}��name�entitled�status�descriptionz4{name: <17}{entitled: <19}{status: <22}{description}z={marker} {name: <15}{entitled: <19}{status: <22}{description}�_doczUContent provided in json response is currently considered Experimental and may change�_schema_versionz0.1r�
machine_id�attachedF�	effective�expires�origin�services�execution_status�execution_details�featuresr �contract���idr)�
created_at�products�tech_support_level�account�r)r;r<�external_account_ids�	simulatedc�0�UR5Vs/sHvnURR(dURROURRUR
RUR
RS.PMx sn$s snf)N)r)�reason_code�reason)�blocking_incompatible_services�entitlement�
is_variantr)�variant_name�	named_msg�msg)�ent�services  �1/usr/lib/python3/dist-packages/uaclient/status.py�_get_blocked_by_servicesrO�s����9�9�;��<�G�
�*�*�5�5��#�#�(�(��(�(�5�5�"�,�,�1�1��'�'�+�+�	
�<����s�A=B�returnc�F�SnSnUR5nUR5nURU;aSOSn0nU[R:Xa[
Rn	O�URU;a[
Rn	XRnO�UR5up�U	[
R:XaU
RU
RS.nOU
(aU
RnU	[
R:XaSnUR(a>URR5VVs0sHup�U[U"US9UU5_M nnn[U5n
URUR UR"U	R"UUUU
US.	nUR$(dX�S'U$s snnf)Nr9�no�yes)�code�message)�cfg)	r)r,r*r+�status_details�description_override�	available�
blocked_by�warning�variants)�status_description_override�contract_statusr)r�
UNENTITLEDr�UNAVAILABLE�INAPPLICABLE�user_facing_status�WARNINGrKr\�items�_attached_service_statusrO�presentation_namer,�valuerH)rL�inapplicable_resourcesrVr[rWrXr^rYr\�
ent_status�detailsrI�variant_clsrZ�service_statuss               rNrere�s����G��N��:�:�<���)�)�+�O����$:�:���I��H��.�3�3�3�%�1�1�
��8�8�-�-�)�6�6�J�#9�(�(�#C� �"%�"8�"8�":��J��-�5�5�5�#�L�L�&�{�{����!(�����-�:�:�:� �	��|�|�69�\�\�5G�5G�5I�
�6J�1��!�":�#��,�.��#��
6J�
��*�#�.�J��%�%����#�)�)��"�"�(� 4�� ��
�N��>�>�%-�z�"����5s�&FrVc�v�[R"[R5 [R"[R5 [U5R(a$[R"[R5 [R"[5n[R"U5nURSnUSn[RRnUR!USSUR#S5[R$"5=(d /USUSUR#SS	5UR#S
/5US.UR&SUR&SUR&R#SS	5UR&R#S/5S
.S.5 UR#S5(aUR(US'UR#S5(aUSUS'URR#S5nU(d[+U5n[-USS9Vs0sH0nUR#S5(aMUSUR#S5_M2 nnUH;n[/XR#SS	5S9n	USR5[7X�U55 M= USR9SS9 UR;5R#S05R#S5n
U
(a/U
R#S05R#S5nU(aX�SS 'U$s snf![0R2a M�f=f)!z8Return configuration of attached status as a dictionary.�machineTokenInfo�contractInfo�	machineIdTr3r;r)�	createdAtr9r=r:�externalAccountIDsr@)r/r0r3r r8r?�effectiveTor2�
effectiveFromr1�availableResourcesc�&�URSS5$�Nr)r9��get��xs rN�<lambda>�"_attached_status.<locals>.<lambda>s�����f�b�8I���keyrYr,�rVr)r4c�&�URSS5$rwrxrzs rNr|r}���A�E�E�&�"�,=r~�supportrG�affordances�supportLevelr8r>)r �remover#�AUTO_ATTACH_RETRY_FULL_NOTICE�AUTO_ATTACH_RETRY_TOTAL_FAILUREr�is_attached_and_contract_valid�CONTRACT_EXPIRED�copy�deepcopy�DEFAULT_STATUSr�get_machine_token_filerrarg�updatery�listr?�contract_expiry_datetimer�sortedrr
�EntitlementNotFoundError�appendre�sort�entitlements)rV�response�machine_token_filernror>�	resources�resourcerhrLr�r�s            rN�_attached_statusr��s����N�N�6�7�7�8��N�N�6�9�9�:��C��7�7����v�.�.�/��}�}�^�,�H�&�=�=�c�B��)�7�7�8J�K��#�N�3�L�)�6�6�<�<���O�O�*�;�7��"�&�&�x�0��|�|�~�+��"�4�(�$�V�,�*�.�.�{�B�?�(�,�,�Z��<�&8��+�2�2�6�:�(�0�0��6�0�8�8�<�<�[�"�M�(:�(B�(B�(F�(F�(�"�)�	�	
��.���
�&�&�0�I�I��������(�(� ,�_� =����"�0�0�4�4�5I�J�I��+�C�0�	��y�.I�J��J�H��|�|�K�(�	6����(�,�,�}�5�5�J�����	�%�#�L�L���4L�M�C�	���#�#�$�S�#�F�	
�
�
�Z����"=��>�	�'�'�)�-�-�i��<�@�@��O����{�{�=�"�5�9�9�.�I���9E�Z� �!5�6��O��1���2�2�	��	�s�'L�L�&L � L8�7L8c	���[R"[5n[U5nUH�nUR	S5(a[
RRnO[
RRn[XR	SS5S9nURS:XaB[R "5[R"R$:XaUR'5nOSnUS	R)UR	S
US5UR*UUS.5 M� US	R-SS
9 U$![Ra+ [RSUR	SS55 GMIf=f)z#Return unattached status as a dict.rYr)r9r�z@Ignoring availability of unknown service %s from contract serverzwithout a 'name' keyrNr4�presentedAs)r)r,rXrYc�&�URSS5$rwrxrzs rNr|�$_unattached_status.<locals>.<lambda>Gr�r~r)r�r�r�rryr�	AVAILABLErgr`rr
r��LOG�debugr)r�on_supported_kernel�LivepatchSupport�UNSUPPORTEDr]r�r,r�)rVr�r�r�rYrL�descr_overrides       rN�_unattached_statusr�sG���}�}�^�,�H�'��,�I����<�<��$�$�.�8�8�>�>�I�.�:�:�@�@�I�		�%�#�L�L���4L�M�C�
�H�H��#��-�-�/��)�)�5�5�6�!�<�<�>�N�!�N����#�#� ���]�H�V�4D�E�"���(6�&�	
�	
�7�F
�Z����"=��>��O��;�2�2�	��I�I�����V�%;�<�
�

�
	�s�7D3�3:E2�1E2c�<�[nURRn[Rn[
R"5upE[R"5=(d /nUS:�a4URRn[RRXES9nOT[RR(a5URRnSn[R RUS9nUUUUR"UR$UR&S.n[(R*R,R/5n	[0HLn
[3X
5(dMX�bM[5X
5n[7U[85(aURnX�U
'MN X�SS'U$)a/Return a dict with execution_status, execution_details and notices.

Values for execution_status will be one of UserFacingConfigStatus
enum:
    inactive, active, reboot-required
execution_details will provide more details about that state.
notices is a list of tuples with label and description items.
r)�pid�lock_holderzconfiguration changes)�	operation)r5r6r �config_path�configr7r��	ua_config)r�INACTIVErgr�NO_ACTIVE_OPERATIONSr�check_lock_infor r��ACTIVE�	LOCK_HELD�formatr!�reboot_cmd_marker_file�
is_present�REBOOTREQUIRED�ENABLE_REBOOT_REQUIRED_TMPL�cfg_pathrVr7r"�user_config�
public_config�to_dictr�hasattr�getattr�
isinstancer)rV�
userStatus�
status_val�status_desc�lock_pidr��notices_listr��retr�r��vals            rN�_get_config_statusr�Ls[��(�J��$�$�*�*�J��/�/�K�"�2�2�4��X��<�<�>�'�R�L��!�|��&�&�,�,�
��(�(�/�/��0�
��
�	+�	+�	6�	6��.�.�4�4�
�+�	��:�:�A�A��B�
��'�(���|�|��'�'��L�L�
�C�!�,�,�:�:�B�B�D�I�#���3�����!7��#�#�C��#�t�$�$��i�i�� �c�N�$�"+��M�+���Jr~�show_allc��[U5R(a[U5nO[U5nUR	[U55 [R"5(a[RRU5 U(d>URS/5Vs/sHnURSS5S:XdMUPM nnXBS'U$s snf)z�Return status as a dict, using a cache for non-root users

When unattached, get available resources from the contract service
to report detailed availability of different resources for this
machine.

Write the status-cache when called by root.
r4rYrS)r�is_attachedr�r�r�r�r�we_are_currently_rootr!�status_cache_file�writery)rVr�r�rM�available_servicess     rNr+r+{s����C��$�$�#�C�(��%�c�*���O�O�&�s�+�,��!�!�#�#��%�%�+�+�H�5��$�<�<�
�B�7�
�7���{�{�;��.�%�7�
�7�	�
�
 2����O��
s� C�>Cr��entitlement_namec��UHpnURS5U:XdMURS5(aSOSURS05RS5(aSOSURS05S.s $ SS0S.$)	z0Extract information from the entitlements array.�typer*rSrR�obligations�enableByDefaultr�)r*�auto_enabledr�rx)r�r�rGs   rN�_get_entitlement_informationr��s���$���?�?�6�"�&6�6�%0�_�_�Z�%@�%@�E�d�#���}�b�9�=�=�)�����*���}�b�A�
�

�$��d�2�F�Fr~�tokenc
�	�Sn[R"[5n[X5nURS05nURS05nURURSS5URS	S5URS
S5URS/5S.URS	S5URS5URS
S5URS
/5S.SS.5 [R"[R5n	URS5(a�URS5US'USn
X�-
nUR5S::a�[ R"R%USSU
R'[(5S9n[*R-UR.UR0S9 [*R3[ R4S-UR.-S-5 SnURS5(a�URS5US'USn
X�-
nUR5S::a�[ R6R%USSU
R'[(5S9n[*R-UR.UR0S9 [*R3[ R4S-UR.-S-5 Sn[9U5n[;USS9Vs/sHnUS(aMUS	PM nnURS/5nUH�nURS	S5n[=UUS9n[AUU5nUSRCURS UR05URDUS!US"UR0U;aS#OS$S%.5 M� USRGS&S9 [AUS'5nUS!(a#US(RS)5nU(aUUSS*'UR[IU55 U(d?URS/5Vs/sHnURSS#5S#:XdMUPM nnUUS'XC4$![R
a=n[
US5(a%URS:Xa[R"5eUeSnAff=fs snf![R>a GM�f=fs snf)+z�Get a status dictionary based on a token.

Returns a tuple with the status dictionary and an integer value - 0 for
success, 1 for failure
rrTi�Nro�accountInfor;r9r)rqr=)r;r)r<r=rrr@T)r8r?rBrsr2r8)�contract_id�date)�	error_msg�
error_code�
�rtr1c��US$)Nr)�rzs rNr|�!simulate_status.<locals>.<lambda>�s���&�	r~rrY�resourceEntitlementsr�r4r�r*r�rSrR)r)r,r*r�rYc�&�URSS5$rwrxrzs rNr|r�r�r~r�r�r�r>)%r�r�r�rr
�ContractAPIErrorr�rT�AttachInvalidTokenErrorryr�r�nowr�utc�
total_secondsr�E_ATTACH_FORBIDDEN_EXPIREDr��strftimer�event�errorrKr)�info�STATUS_TOKEN_NOT_VALID�E_ATTACH_FORBIDDEN_NOT_YETrr�rr�r�r�r,r�r�)rVr�r�r�r��contract_information�e�
contract_info�account_infor��expiration_datetime�deltarU�effective_datetimer�r�rhr�r�rL�entitlement_informationr�r�rMr�s                         rN�simulate_statusr��s����C��}�}�^�,�H��7��C��)�,�,�^�R�@�M�'�+�+�M�2�>�L��O�O�$�'�'��b�1�%�)�)�&�"�5�+�/�/��R�@�)�-�-�j�"�=�	�%�(�(���4�"�&�&�t�,�*�.�.�{�B�?�(4�(8�(8�(�"�)�	��	
��(�,�,�x�|�|�
$�C�����'�'�+�/�/�
�>����&�y�1��#�)����� �A�%��9�9�@�@�$�Z�0��6�(�1�1�2I�J�A��G�
�K�K�'�+�+�'�,�,�K�G��J�J��/�/�$�6����D�t�K�
��C�����)�)� -� 1� 1�/� B����%�k�2���(����� �A�%��9�9�@�@�$�Z�0��6�'�0�0�1H�I�A��G�
�K�K�'�+�+�'�,�,�K�G��J�J��/�/�$�6����D�t�K�
��C�'��,�I��y�.A�B��B�H���$�	����B���!�$�$�%;�R�@�L���#�<�<���3��	�%�#�4D�E�C�#?��*�#
��	���#�#� ���]�C�H�H�=�"���3�J�?� 7�� G� �X�X�-C�C�E��

�
	
��(
�Z����"=��>�*�<��C�G��z���}�-�1�1�.�A���9E�H�Z� �!5�6��O�O�&�s�+�,��$�<�<�
�B�7�
�7���{�{�;��.�%�7�
�7�	�
�
 2�����=���Q�&�&���1�f���!�&�&�C�-��4�4�6�6������v���2�2�	��	��6
sA�Q	�#R�5	R�*
R"�R>�9R>�	R�8R�R�"R;�:R;�stringc�v�[RR5(a[R	X5$U$)z=Return colorized string if using a tty, else original string.)�sys�stdout�isatty�STATUS_HUMANIZE_COLORIZEry)r�s rN�for_human_colorizedr%s6���:�:�����	!�$�$�V�4���r~�commandsc�,�SnUH#nU(aUS-
nUSRU5-
nM% SR[R"U[S-
SS95nSU;aS	nS
nOSnSnS
R	[
RUUU[
RS9$)Nr9z && � z \
�z  )�width�subsequent_indentr�z{
  z
}z{ z }z%{color}{prefix}{content}{suffix}{end})�color�prefix�content�suffix�end)�join�textwrap�wraprr�r$�DISABLEGREY�ENDC)rr	�cmd�wrapped_contentrr
s      rN�colorize_commandsr.s����G�����v��G��3�8�8�C�=� ����l�l��
�
��,�q�0�T�	
��O�
�����������2�9�9��"�"�����M�M�:��r~�column_data�headerc	�~�/nU(aURU5 [UVs/sHn[US5PM sn5nUS:�aASRU5nUR	UVs/sHo5R"U6PM sn5 U$UR	UVs/sHo3SPM	 sn5 U$s snfs snfs snf)z�Return a list of content lines to print to console for a section

Content lines will be center-aligned based on max value length of first
column.
rz{{:>{}}}: {{}}r�)r��max�lenr��extend)rrr	�pair�template_length�templates      rN�get_section_column_contentrJs����G�
����v���K�@�K�D�3�t�A�w�<�K�@�A�O����#�*�*�?�;�����;�G�;�4����.�;�G�H��N�	���K�8�K�D�Q��K�8�9��N��A��H��9s�B0�)B5�B:c��Uc[R$UR5nUR	S5$![a Nf=f)Nz%c %Z)r�STATUS_CONTRACT_EXPIRES_UNKNOWN�
astimezone�	Exceptionr�)r2s rN�format_expiresr"_sM�����7�7�7�
��$�$�&�����G�$�$���
��
�s�6�
A�Ar+c�D�URS5(Gd�URS5(a�URSS5(d[R$[R	[R
[R[R[R[RS9/nURS/5H(nUR[R"S)0UD65 M* SRU5$URSS5(d[R/nO�[R	[R
[R[RS9/nURS/5H�nURS5nU(aUOURS	S
5nURS5S:Xa[RO[RnUR[R	URS
S
5UUS95 M� URS5nU(a0UR[R5 UR!U5 URS5(atURS[R"-5 [%URS05R'55H%up�URSR	X�55 M' U(d!UR!S
[R(/5 UR!S
[R*R,/5 [.R0"5[.R2R4:Xa!UR!S
[R6/5 SRU5$/n
SnURSS5(d[R/nGO�[8/nURS/5GH�nURSS
5n
URS5nU(aUOURS	S
5nURS
S
5[;U
5[;URSS
55US.nURSS5nUb&URSS5nUbU
RU5 URS5nU(a U(dSnSR	US
5US
'UR[<R"S)0UD65 U(dGMU(dGM'[?UR'55H�ununnU[AU5S-
:waSOSnUR[BR	UURS
5[;URSS
55[;URSS
55URS	S
5S95 M� GM� U(a0URS
5 UR[RD5 URS5(d[AU
5S:�ayURS
5 UR[R5 URS5nU(aUR!U5 [AU
5S:�aUR!U
5 URS5(atURS[R"-5 [%URS05R'55H%up�URSR	X�55 M' URS
5 U(dFU(a UR[RF5 OUR[R(5 UR[RHR	SS 95 /nURS!05RS
S"5nU(a!UR[RJU45 URS#05RS
S"5nU(a!UR[RLU45 URS$S5S%:wa�UR[RN[QURS&5545 URS#05RS'S"5nUR[RR[;U545 U(a)URS
5 UR![UUS(95 SRU5$)*z&Format status dict for tabular output.r0rBr4N)r)rYr*r�r,r�)r)rYr,rXr,r9rYrSr)r r7z{}: {}Fr*r+r(r[rUr\Tz{}*r�u├u└)�markerr)r*r+r,rzpro enable <service>)�commandr?�unknownr8r3�freer2r>)rr�)+ryr�STATUS_NO_SERVICES_AVAILABLE�STATUS_SIMULATED_TMPLr��STATUS_SERVICE�STATUS_AVAILABLE�STATUS_ENTITLED�STATUS_AUTO_ENABLED�STATUS_DESCRIPTIONr�r�STATUS_UNATTACHED_TMPL�STANDALONE_YES�
STANDALONE_NO�STATUS_NOTICESr�STATUS_FEATURESr�rd�STATUS_ALL_HINT�E_UNATTACHEDrKrr�r�r��)LIVEPATCH_KERNEL_NOT_SUPPORTED_UNATTACHED�
STATUS_HEADERr�STATUS_TMPL�	enumerater�VARIANT_STATUS_TMPL�STATUS_SERVICE_HAS_VARIANTS�STATUS_ALL_HINT_WITH_VARIANTS�"STATUS_FOOTER_ENABLE_SERVICES_WITH�STATUS_FOOTER_ACCOUNT�STATUS_FOOTER_SUBSCRIPTION�STATUS_FOOTER_VALID_UNTILr"�STATUS_FOOTER_SUPPORT_LEVELr)r+r�r	rMr�r,rYr r�rg�service_warnings�has_variantsrlr*�fmt_argsr[�warning_messager\�idx�_�variantr$�pairs�account_name�
contract_namer>s                          rN�format_tabularrLisY���:�:�j�!�!��:�:�k�"�"��:�:�j�$�/�/��<�<�<�&�,�,�!�0�0�&�7�7�%�5�5�!)�!=�!=� (� ;� ;�-���G�"�:�:�j�"�5�����4�;�;�F�g�F�G�6��9�9�W�%�%��z�z�*�d�+�+��<�<�=�G�'�-�-�!�0�0�&�7�7� (� ;� ;�.���G�"�:�:�j�"�5��!(���-C�!D��&�#� ���]�B�7���{�{�;�/�5�8��+�+�!�/�/��
���*�1�1�$�[�[���4�"+�$/�2���6�(�*�*�Y�'����N�N�8�2�2�3��N�N�7�#��:�:�j�!�!��N�N�4�(�":�":�:�;�$�V�Z�Z�
�B�%?�%E�%E�%G�H�
�����x���s�:�;�I���N�N�B�� 8� 8�9�:�����H�1�1�5�5�6�7��)�)�+��)�)�5�5�
6�
�N�N��X�G�G�H�
��y�y��!�!����L��:�:�j�$�'�'��8�8�9�� �/��$�j�j��R�8�N�%�)�)�*�b�9�H�+�/�/�0F�G�N�"��#�'�'�
�r�:�
�'�*�*�6�2�6�/��9�-�"�&�&�x��4�� +�
�H�%�(�(��D�9�G��"�")�+�+�i��">��"�.�$�+�+�O�<�%�)�)�*�5�H���#��#(�<�<���0@�#A��� ��N�N�;�-�-�9��9�:��x�H�H�)2�8�>�>�3C�)D�%�C��!�W�&)�S��]�Q�->�&>�U�E�F��N�N�+�2�2�#)�!(���V�!4�%8� '���J�� ;�&�$7� '���H�b� 9�$�)0���M�2�(F�3�
��*E�99�X����r�����x�;�;�<�
�z�z�)����$4� 5�� 9����r�����x�.�.�/��*�*�Y�'����N�N�7�#��� �1�$��N�N�+�,�
�z�z�*������t�h�6�6�6�7� ����J��!;�!A�!A�!C�D�J�C��N�N�8�?�?�3�6�7�E��N�N�2�����N�N�8�A�A�B��N�N�8�3�3�4��N�N��3�3�:�:�*�	;�	
��

�E��:�:�i��,�0�0���C�L��
���h�4�4�l�C�D��J�J�z�2�.�2�2�6�9�E�M��
���h�9�9�=�I�J�
�z�z�(�D�!�V�+�
����2�2��v�z�z�)�4�5�
�	
�$�Z�Z�
�B�7�;�;� �)�
��	����4�4�#�$6�7�
�	
�
����r�����1�e�D�E��9�9�W��r~c�&�[U5nSn[5nXS'UH2nUSU:XdURS5U:XdM#[XSS9nUn O Uc[R"US9e[U5R(a[W0U5nUSnUSUS'X�S'OCUS(a[RRn	O[RRn	X�S'WRUS	'U$![R
a M�f=f)
z�Return help information from an uaclient service as a dict

:param name: Name of the service for which to return help data.

:raises: UbuntuProError when no help is available.
Nr)r�r�)r)r+r*rY�help)rrryrr
r��
NoHelpContentrr�rerr�rgr`�	help_info)
rVr)r��
help_resource�
response_dictr��help_entrl�
status_msgrYs
          rNrNrN%s#��(��,�I��M�
 �M�M� �&�����F��t�#�x�|�|�M�'B�d�'J�
�.�3�f�=M�N��%�M������&�&�D�1�1��C��$�$�1�(�B��D��#�H�-�
�$2�:�$>�
�j�!�",�h����%�.�8�8�>�>�I�.�:�:�@�@�I�%.�k�"�$�.�.�M�&�����1�6�6�
��
�s�C8�8D�D)F)N)rr��loggingr�r
�collectionsrrr�enumr�typingrrr	r
r�uaclientrr
rrrrr�(uaclient.api.u.pro.status.is_attached.v1r�uaclient.configrr�uaclient.contractrr�uaclient.defaultsrr�uaclient.entitlementsr�(uaclient.entitlements.entitlement_statusrrrr�uaclient.filesrr r!r"�uaclient.files.noticesr#�uaclient.messagesr$�get_event_loggerr��	getLogger�replace_top_level_logger_name�__name__r��	ESSENTIAL�STANDARD�ADVANCEDr�rg�OKGREEN�STATUS_STATUS_ENABLEDrr��FAIL�STATUS_STATUS_DISABLEDrar�STATUS_STATUS_INAPPLICABLEr`�STATUS_STATUS_UNAVAILABLErc�
WARNINGYELLOW�STATUS_STATUS_WARNING�ENTITLED�STATUS_ENTITLED_ENTITLEDr_�STATUS_ENTITLED_UNENTITLED�STATUS_SUPPORT_ESSENTIAL�STATUS_SUPPORT_STANDARD�STATUS_SUPPORT_ADVANCEDr�r/r)r�r*r,�
STATUS_STATUSr.r7r8r:�get_versionr�r�rO�strrer�r�r��boolr+r��intr�rrrr"rLrNr�r~rN�<module>r}sx����
��#�'��3�3����B�:�O�G�5�����*�&��%�%�'��
����:�:�8�D�E��
�	�����
���!�!����8�9�9�9�H�M�M�I����#�#��
�
��7�7�7�(�-�-�G��!�!�'�'����
�
-�
-�	.�
�-�-�	�� � �&�&����
�
,�
,�	-�
�-�-�	����"�"�����!?�!?�?�(�-�-�O����!�!����8�<�<�<�x�}�}�L����#�#����
�
-�
-�	.�
�-�-�	��x����'�'�(��m�m��
�h����&�&�'��m�m��
�h����&�&�'��m�m��E%��PD��N��G�M�M�	�	 �	 �
�
%�
%��!�!��+�+�	N��
�E��C���
�
#���u���w�"�"�$�	�
�$����
�����t��
�d������.�7�7�=�=����6�6������r�������.�;�;�A�A���,���� "�	�-�8��9��@�8�	�#�s�(�^�8�vD�(�D�t�C��H�~�D�N+�H�+��c�3�h��+�\,�t�C��H�~�,�^���D��T�#�s�(�^��<G��t�C��H�~�&�G�:=�G�	�#�s�(�^�G�*',�u��u�#�u�
�4��S��>�3���u�p�������T�#�Y���C��:AE���e�C��H�o�&��08��
��	�#�Y��*%�H�X�.�%�3�%�y�4��S��>�y�T�y�c�y�x,r~

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 148 B 0644
actions.cpython-313.pyc File 18.6 KB 0644
apt.cpython-313.pyc File 43.75 KB 0644
apt_news.cpython-313.pyc File 11.98 KB 0644
config.cpython-313.pyc File 25.18 KB 0644
contract.cpython-313.pyc File 38.45 KB 0644
contract_data_types.cpython-313.pyc File 11.96 KB 0644
data_types.cpython-313.pyc File 20.03 KB 0644
defaults.cpython-313.pyc File 3.9 KB 0644
event_logger.cpython-313.pyc File 10.3 KB 0644
exceptions.cpython-313.pyc File 35.47 KB 0644
gpg.cpython-313.pyc File 1.34 KB 0644
livepatch.cpython-313.pyc File 16.32 KB 0644
lock.cpython-313.pyc File 6.38 KB 0644
log.cpython-313.pyc File 7.58 KB 0644
secret_manager.cpython-313.pyc File 1.64 KB 0644
security_status.cpython-313.pyc File 28.89 KB 0644
snap.cpython-313.pyc File 9.61 KB 0644
status.cpython-313.pyc File 33.61 KB 0644
system.cpython-313.pyc File 35.37 KB 0644
types.cpython-313.pyc File 573 B 0644
update_contract_info.cpython-313.pyc File 1.77 KB 0644
upgrade_lts_contract.cpython-313.pyc File 4.38 KB 0644
util.cpython-313.pyc File 17.73 KB 0644
version.cpython-313.pyc File 3.7 KB 0644
yaml.cpython-313.pyc File 1.97 KB 0644
Filemanager