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

���g�@��
�SSKrSSKrSSKJrJr SSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK
r
SSKrSSKrSSKrSSKrSSKrSSK7 SSKrSSKJrJrJrJr SSKJrJrJrJrJrJ r Jr SSK!J"r" SSK#r#SSK$J%s J&r& Sr'SSK)r)Sr*SSK+r+SS
K+J,r,J-r-J.r. Sr/SSK0r0Sr1SSK7 SSK37 SS
K!J4r4 Sr5Sr6Sr7Sr8Sr9Sr:Sr;Sr<Sr=Sr>Sr?Sr@\R�SrB\R�SrC\4R�\4R�SSSSSSSSSSS S!/rF/rG\FH2rH\R�"\H\R�5rK\GR�\K5 M4 S"rNS#rOS$rPS�S%jrQ\"S&5\"S&5\"S&5S4S'jrRS(rSS�S)jrTS�S*jrUS�S+jrVS,rW"S-S.5rX"S/S05rY"S1S25rZ"S3S4\Z5r["S5S65r\"S7S85r]S9r^S:r_S�S;jr`\R�rbS�S=jrd"S>S?\e5rfS@rgSArhSBriSCrjSDrkSSEKJlrl SLrp\(a>\qR�SMSM5rs\sR�\s\R�R�SN55rwO/\R�"S&S&5rs\sR�\s\R�5rwSOruSP4SQjrxSR4SSjry/STQrzSUS&S&SVS&ST.r{SWr|S�SXjr}SYr~S�SZjrS�S[jr�"S\S]5r�"S^S_5r�"S`Sa5r�Sbr�\GR
Sc:aS�Sdjr�S�Sejr�Sfr�S�Sgjr�O'\�GRr�\�GRr�\�GRr�Shr�Sir�Sjr�S�Skjr�Slr�Smr�S�Snjr�S�Sojr�Spr�Sqr�"SrSs\e5r�Str�Sur�Svr�Swr�Sxr�Syr�Szr�S{r�S|r�S}r�S~r�Sr�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�\�GRgS�S�S�5S�:XaS�r�S�r�S�r�O=\�GRgS�S�S�5S�:XaS�r�S�r�S�r�O\�GRgS�S�S�5S�:XaS�r�S�r�S�r�S�r�S�S�jr�S�S�jr�S�S�jr�S�r�S�r�S�r�S�r�S�r�S�r�S�\�4S�jr�S�S�jr�"S�S�5r�S�S�jr�S�r�S�r�S�r�S�r�S�S�jr�S�S�jr�S�r�\;\<4S�jr�S�S�jr�S�r�S�S�jr�S�r�S�S�jr�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�S�jr�S�r�g!\(a S	r'GN�f=f!\(a S	r*GN�f=f!\(a S	r/GN�f=f!\(a SSK2r2Sr1GNf=f!\Ma \GR�\H5 GM�f=f!\ca	 S�S<jrbGNf=f!\(a# "SFSG5rm"SHSI\n5ro"SJSK5rlGNf=f)��N)�Popen�PIPE�)�*)�
html_entities�urllib2_request�
urllib2_parse�
urllib2_error)�PY3�
to_unicode�
to_bytes_utf8�to_string_utf8�BytesIO�StringIO�
subprocess)�os_utilsTF)�	SystemBus�lowlevel�
SessionBusc�J�[R"U5R5$�N)�hashlib�sha1�	hexdigest��ss �/usr/share/hplip/base/utils.py�get_checksumrHs���|�|�A��(�(�*�*�c�J�[R"U5R5$r)�sha�newrrs rrrNs���w�w�q�z�#�#�%�%r)�pexpectzrm -rfzrm -fzcom.hplip.StatusServicez/http://hplipopensource.com/hplip-web/index.htmlzhttp://www.hp.comz
www.hp.com��z	Continue?zpasswor[dt]:�kennwortzpassword forzmot de passeucontraseñaz
palavra passeu口令�
wachtwoord�heslou密码u	Lösenordc�v�/n[S5n[R"SWR55SRSS5RS5nSU;aURS5 UR!5 U$![a� S[R"[R
"S5R5R:waA[R"[R
"S5R5R/s$GN![a Uss$f=ff=f![a Us$f=f)Nz/etc/cups/cupsd.conf�rootzSystemGroup [\w* ]*rzSystemGroup �� )�open�IOError�grp�getgrgid�os�stat�st_gid�gr_name�OSError�re�findall�read�replace�split�
IndexError�remove�close)�lis�fps  r�get_cups_systemgroup_listr@�s	��
�C���&�'����
�
�1�"�'�'�)�<�a�@�H�H��XZ�[�b�b�cf�g����}��
�
�6���H�H�J��J����	�����b�g�g�.D�&E�&L�&L�M�U�U�U����R�W�W�-C�%D�%K�%K�L�T�T�U�U�V���	��J�	��	�����
��sB�B�AD)�
D&�BD�D&�D"�D&�!D"�"D&�)D8�7D8c�B�[RSUR-5 [R"UR5[R[R-5 g![[4a% [RSUR-5 gf=f)NzLocking: %sTzFailed to unlock %s.F)
�log�debug�name�fcntl�flock�fileno�LOCK_EX�LOCK_NBr.r5��fs r�lockrL�sm���I�I�m�a�f�f�$�%��
���A�H�H�J��
�
��
�
� =�>����W����	�	�(�1�6�6�1�2���s�AA)�)2B�Bc�$�Ubw[RSUR-5 [R"UR5[R5 [R"UR5 gg![[4a gf=f)Nz
Unlocking: %s)rBrCrDrErFrG�LOCK_UNr1r<r.r5rJs r�unlockrO�sg���}��	�	�/�A�F�F�*�+�	��K�K����
�E�M�M�2��I�I�a�f�f��	��
��!�	��	�s�AA<�<B�Bc��[Rn[R"5S:XaSnO:[RRU5(d[R"U5 [RRUSRUS/55n[US5n[U5(d&U(d[RSU<S	U<S
35 gSU4$![a" U(d[RSU-5 gf=f)Nrz/var�.rL�wzUnable to open %s lock file.)FNzUnable to lock z. Is z already running?T)
�prop�user_dirr1�geteuid�path�exists�makedirs�joinr-r.rB�errorrL)�application�suppress_error�dir�	lock_file�lock_file_fs     r�lock_appr`�s���
�-�-�C�	�z�z�|�q����
�W�W�^�^�C�
 �
 �
���C�������S�#�(�(�K��+@�"A�B�I���9�c�*��������I�I�Y�P[�\�]�����������I�I�4�y�@�A���s�C�)D�
Dr+c�4^^�[U5S:XaU[U5-n[(a[nO[nUR	[S5[S55nUR	X5mUb!UR
XSR
UT55mUU4SjnU$)Nrr+c�(>�URTT5$r)�	translate)r�delete�transs ��r�callable�Translator.<locals>.callable�s����{�{�5�&�)�)r)�lenr�bytes�string�	maketransr
rc)�frm�tord�keep�
data_types�allcharsrfres  `    @r�
Translatorrq�s����
�2�w�!�|�
�#�c�(�]��
�s��
��
��#�#�M�"�$5�}�R�7H�I�H�� � ��)�E����#�#�H�n�n�X�v�.N�O��*��Orc���[U5S:Xag[U5S:Xa[SUS-S-5$[U5S:�a4SSRU5-S-[UR55-S-$g)Nrr+r�"z", "z" and ")rh�strrY�pop)r>s r�list_to_stringrv�sp��
�3�x�1�}��
�3�x�1�}��4��A��;�t�#�$�$�
�3�x�1�}��H�M�M�#�&�&�{�2�3�s�w�w�y�>�A�$�F�F�rc���[U[5(aKU(aDUSR5S;a[S5$USR5S;a[S5$U$)zCConvert an arbitrary 0/1/T/F/Y/N string to a normalized string 0/1.r��1�t�yry��0rK�nr})�
isinstancert�lowerr�r�defaults  r�to_bool_strr��sN���!�S���a��Q�4�:�:�<�?�*��c�?�"�
�q�T�Z�Z�\�_�
,��c�?�"��Nrc���[U[5(a:U(a3USR5S;agUSR5S;agU$[U[5(aU$U$)zFConvert an arbitrary 0/1/T/F/Y/N string to a boolean True/False value.rrxTr|F)rrtr��boolr�s  r�to_boolr��s`���!�S���a��Q�4�:�:�<�?�*��
�q�T�Z�Z�\�_�
,��-�
�N�
�A�t�	�	����Nrc	#�# �UcUn[R"U5nU=(d SnURS5nUGH	n[RR[RR
X55n	UH|n
[R"X�5(dM U(d&[RRU	5(aMMU(aU	v� MZ[RRU	5v� M~ U(dM�[RRU	5(dM�[X�X#XE5HnUv� M	 GM g![Ra gf=f![a U	v� M�f=f7f)Nr�;)r1�listdirrZr:rV�normpathrY�fnmatch�isdir�basename�
ValueError�	walkFiles)r*�recurse�	abs_paths�return_folders�patternrV�names�pat_listrD�fullname�patrKs            rr�r�s����|�����
�
�4� ��
�n��G��}�}�S�!�H����7�7�#�#�B�G�G�L�L��$<�=���C����t�)�)�!������x�)@�)@� �&��+�"$�'�'�"2�"2�8�"<�<���7�r�w�w�}�}�X�.�.��x�)�W�[����\�%���8�8�����$ *�+�"*�N�+�sd�E;�E�A<E;�)E;�
E;�!E&�;	E;�"E;�.E;�E#� E;�"E#�#E;�&E8�4E;�7E8�8E;c��[RRU5(a�[R"U5nU[RS-nUS-(agU[R
[R"5:XaUS-(agU[R[R"5:XaUS-(agg)Ni�r$T��F)	r1rVrWr2�ST_MODE�ST_GID�getgid�ST_UID�getuid)rVr�modes   r�is_path_writabler�(s��	�w�w�~�~�d����G�G�D�M��������&���#�:��
�t�{�{�^�r�y�y�{�
*�t�d�{��
�t�{�{�^�r�y�y�{�
*�t�e�|��rc�0�\rSrSrSrSrSrSrS	SjrSr	g)
�
TextFormatteri:rrr$c�l�/UlUH'nURR[S0UD65 M) g)N�)�columns�append�Column)�self�colspeclist�colspecs   r�__init__�TextFormatter.__init__@s-�����"�G��L�L���� 1�� 1�2�#rc��Sn[U5n[U5[UR5:wa[R	S5 g[[SXR55H5upEUR
U5 [U[UR55nM7 S/U-n[U5H.nURHnXgURU5-Xg'M M0 U(aSRU5S-$SRU5$)Nrz6Formatter: Number of text items does not match columnsc��U$rr���xs r�<lambda>�'TextFormatter.compose.<locals>.<lambda>Ks��rr+�
)�listrhr�rBrZ�map�wrap�max�lines�range�getlinerY)r��textlist�add_newline�numlines�text�column�	complines�lns        r�compose�TextFormatter.composeEs�������>���x�=�C����-�-��I�I�N�O�� ��\�8�\�\�!J�K�L�D��K�K����8�S����%6�7�H�L��D�8�O�	���/�B��,�,�� )�
����r�0B� B�	�
�'�"���9�9�Y�'�$�.�.��9�9�Y�'�'r)r�N�F)
�__name__�
__module__�__qualname__�__firstlineno__�LEFT�CENTER�RIGHTr�r��__static_attributes__r�rrr�r�:s��
�D�
�F�
�E�3�
(rr�c�J�\rSrSrS\R
S4SjrSrSrSr	Sr
g	)
r�iW�Nrc�J�[U5UlX lX0l/Ulgr)�int�width�	alignment�marginr�)r�r�r�r�s    rr��Column.__init__Ys����Z��
�"������
rc��UR[R:XaURUR5$UR[R
:XaUR
UR5$URUR5$r)r�r�r��centerr�r��rjust�ljust)r��lines  r�align�Column.align_s_���>�>�]�1�1�1��;�;�t�z�z�*�*�
�^�^�}�2�2�
2��:�:�d�j�j�)�)��:�:�d�j�j�)�)rc��/Ul/nUR5HunU[UR5::aUR	U5 M/[S[
U5UR5H"nUR	X4X@R-5 M$ Mw [
U5(dgURS5nUHcnS[
U5-n[
U5U-UR:�a.URR	URU55 UnM[US-U-nMe URR	URU55 g)Nrrr,)	r�r:rtr�r�r�rhrur�)r�r��words�word�i�current�	increments       rr��Column.wrapgs�����
����J�J�L�D��s�4�:�:��&����T�"��q�#�d�)�T�Z�Z�8�A��L�L���*�*��!5�6�9�	!��5�z�z�6��)�)�A�,���D��C��I�
�I��7�|�i�'�$�*�*�4��
�
�!�!�$�*�*�W�"5�6���!�C�-�$�.��
�	
�
�
���$�*�*�W�-�.rc��U[UR5:aSUR-URU-$SURUR--$)Nr,)rhr�r�r�)r��indexs  rr��Column.getline{sF���3�t�z�z�?�"��t�{�{�?�T�Z�Z��%6�6�6��$�+�+��
�
�2�3�3r)r�r�r�r�N)r�r�r�r�r�r�r�r�r�r�r�r�rrr�r�Ws#���=�+=�+=�a��*�/�(4rr�c�8�\rSrSrSrSrSrSrSrSr	Sr
g	)
�Stacki�c��/Ulgr��stack�r�s rr��Stack.__init__��	����
rc�6�URR5$r�r�rur�s rru�	Stack.pop�s���z�z�~�~��rc�:�URRU5 gr)r�r��r��values  r�push�
Stack.push�s���
�
���%� rc��UR$rr�r�s r�as_list�
Stack.as_list�s���z�z�rc��/Ulgrr�r�s r�clear�Stack.clear�r�rc�,�[UR5$r)rhr�r�s r�__len__�
Stack.__len__�s���4�:�:��rr�N)r�r�r�r�r�rur�r�r�r�r�r�rrr�r��s ��� �!���rr�c�&�\rSrSrSrSrSrSrg)�Queuei�c�.�[RU5 gr)r�r�r�s rr��Queue.__init__�s��
���t�rc�8�URRS5$�Nrr�r�s r�get�	Queue.get�s���z�z�~�~�a� � rc�.�[RX5 gr)r�r�r�s  r�put�	Queue.put�s��
�
�
�4�rr�N)r�r�r�r�r�rr	r�r�rrrr�s���!� rrc�0�\rSrSrSSjrSrSrSrSrg)	�
RingBufferi�c��Xl/Ulgr)r��data)r��size_maxs  rr��RingBuffer.__init__�s������	rc��URRU5 [UR5UR:XaSUl[
Ulgg)z*append an element at the end of the bufferrN)rr�rhr��cur�RingBufferFull�	__class__�r�r�s  rr��RingBuffer.append�s;���	�	������t�y�y�>�T�X�X�%��D�H�+�D�N�&rc� �XRS'g)z.replace the last element instead off appending���N�rrs  rr9�RingBuffer.replace�s
���	�	�"�
rc��UR$)z7return a list of elements from the oldest to the newestrr�s rr�RingBuffer.get�s���y�y�r)rrrr�N)�2�	r�r�r�r�r�r�r9rr�r�rrrr�s���,��rrc�,�\rSrSrSrSrSrSrSrg)ri�c��grr�)r�r~s  rr��RingBufferFull.__init__�s��rc�v�XRUR'URS-UR-Ulg�Nr)rrr�rs  rr��RingBufferFull.append�s*���	�	�$�(�(���H�H�Q�J�$�(�(�*��rc��URS-
UR-UlXRUR'URS-UR-Ulgr#)rr�rrs  rr9�RingBufferFull.replace�sB���H�H�Q�J�$�(�(�*����	�	�$�(�(���H�H�Q�J�$�(�(�*��rc�h�URURSURSUR-$r)rrr�s rr�RingBufferFull.get�s+���y�y�����#�d�i�i�	����&:�:�:r)rNrr�rrrr�s��
�+�+�;rrc���[UR55nUVs/sHo"SUS/PM nnUR5 [S[	U55Vs/sH
oCUSPM sn$s snfs snf)z8Returns the keys of dictionary d sorted by their values rr)r��items�sortr�rh)�dr*�v�	backitemsr�s     r�sort_dict_by_valuer/�si��
�q�w�w�y�/�E�$)�*�E�q�!��Q�q�T�{�E�I�*�
�N�N��%*�1�c�)�n�%=�>�%=��a�L��O�%=�>�>��+��>s�A.�A3c�.�[R"SUSS9$)N�%sT)�grouping)�locale�format)�vals r�commafyr6�s���=�=��s�T�2�2rc�J�US:aSR[U5S/5$SUs=:aS:ayO OvU(a=SR[[US-S55[S5[U5S/5$SR[[US-S55[S	5/5$SUs=:aS
:ayO OvU(a=SR[[US-S55[S5[U5S/5$SR[[US-S55[S
5/5$U(a=SR[[US-S55[S5[U5S/5$SR[[US-S55[S5/5$)Nir+z Big�@rz KB (�)z KBi@g0Az MB (z MBg�Az GB (z GB)rYr6r�round)r�
show_bytess  r�format_bytesr;�s^���4�x��w�w���
�D�)�*�*�	
��	�G�	���7�7�J�u�Q�v�X�q�'9�:�Z��=P�SZ�[\�S]�_b�c�d�d��7�7�J�u�Q�v�X�q�'9�:�Z��=N�O�P�P�	�1�	!�z�	!���7�7�J�u�Q�y�[�!�'<�=�z�'�?R�U\�]^�U_�ad�e�f�f��7�7�J�u�Q�y�[�!�'<�=�z�%�?P�Q�R�R���7�7�J�u�Q�|�^�Q�'?�@�*�W�BU�X_�`a�Xb�dg�h�i�i��7�7�J�u�Q�|�^�Q�'?�@�*�U�BS�T�U�Urc���[R"U5n[R"U[R[R
-[R-S5n[R"US5U4$)Ni�zw+b)�tempfile�mktempr1r-�O_RDWR�O_CREAT�O_EXCL�fdopen)�suffix�prefixr]r�rV�fds      r�make_temp_filerF�sN�����v�&��
�W�W�T�2�9�9�R�Z�Z�/��	�	�9�5�
A�����B��'��/�/rc���/n[R"S5nU(aURS5nURS5 URS5 URS5 URS5 URS5 SnUH#n[R"U5nX;aUn OM% U(a'U(a[RRX@5$gU$![
a Mdf=f)	N�PATH�:z/usr/binz/usr/local/binz/sbinz	/usr/sbinz/usr/local/sbinr+)r1�getenvr:r�r�r5rVrY)�command�return_full_pathrV�path_val�
found_path�p�filess       r�whichrQ�s���	�D��y�y�� �H���~�~�c�"���K�K�
���K�K� �!��K�K����K�K����K�K�!�"��J�
��	��J�J�q�M�E����
�� �
����7�7�<�<�
�4�4������	��	�s�C!�!
C/�.C/c�2�\rSrSrSrSrSrSrSrSr	g)	�UserSettingsic�$�UR5 gr)�loadr�s rr��UserSettings.__init__ s���	�	�rc��SUl[S5n[U5S:�aSUlOe[S5n[U5S:�aSUlOC[S5n[U5S:�aSUlO![S	5n[U5S:�aS
UlSUl[S5n[U5S:�aSUlOe[S
5n[U5S:�aSUlOC[S5n[U5S:�aSUlO![S5n[U5S:�aSUl[S5n[U5(aSUlOSUl[S5n[U5(aSUlOSUl[S5n[U5(aSUlOSUl[S5n[U5(aSUlgSUlg)Nr+zhp-printrzhp-print -p%PRINTER%�kprinterz"kprinter -P%PRINTER% --system cups�gtklpzgtklp -P%PRINTER%�xppzxpp -P%PRINTER%zsimple-scanzsimple-scan %SANE_URI%�xsanezxsane -V %SANE_URI%�kooka�
xscanimagez	hp-unloadzhp-unload -d %DEVICE_URI%z'python %HOME%/unload.py -d %DEVICE_URI%z
hp-makecopieszhp-makecopies -d %DEVICE_URI%z+python %HOME%/makecopies.py -d %DEVICE_URI%z
hp-sendfaxzhp-sendfax -d %FAX_URI%z%python %HOME%/sendfax.py -d %FAX_URI%zhp-fabzpython %HOME%/fab.py)�	cmd_printrQrh�cmd_scan�	cmd_pcard�cmd_copy�cmd_fax�cmd_fab)r�rVs  r�loadDefaults�UserSettings.loadDefaults#sy������Z� ���t�9�q�=�3�D�N���$�D��4�y�1�}�!E����W�~���t�9�q�=�%8�D�N� ��<�D��4�y�1�}�):�����
��]�#���t�9�q�=�4�D�M���>�D��4�y�1�}� 5��
��W�~���t�9�q�=�$+�D�M� ��.�D��4�y�1�}�(4��
��[�!���t�9�9�8�D�N�F�D�N��_�%���t�9�9�;�D�M�I�D�M��\�"���t�9�9�4�D�L�B�D�L��X����t�9�9�#�D�L�1�D�Lrc��UR5 [RS5 [[RSSS55Ul[[RSSS55Ul[[RSSS55Ul
[RS
SUR5Ul[RS
SUR5Ul[RS
S
UR5Ul
[RS
SUR5Ul[RS
SUR5Ul[RS
SUR 5Ul[[RSSS55Ul[[RSSS55Ul[[RSSS55Ul[)[RSSS55UlUR5 g![a SUlGN�f=f![a S	Ul
GN�f=f)NzLoading user settings...�refresh�enabler}�rate�30��typer�commands�prnt�scan�pcard�cpy�fax�fab�upgrade�notify_upgrade�last_upgraded_time�pending_upgrade_time�latest_available_versionr+)rdrBrCr��	user_confr�auto_refreshr��auto_refresh_rater��auto_refresh_typer^r_r`rarbrc�upgrade_notify�upgrade_last_update_time�upgrade_pending_update_timertrxr�s rrU�UserSettings.loadis��������	�	�,�-�#�I�M�M�)�X�s�$K�L���	(�%(����y�&�$�)O�%P�D�"�	'�%(����y�&�#�)N�%O�D�"�#���z�6�4�>�>�J���!�
�
�j�&�$�-�-�H��
�"���z�7�D�N�N�K���!�
�
�j�%����G��
� �}�}�Z�����E��� �}�}�Z�����E���$�Y�]�]�9�>N�PS�%T�U���(+�I�M�M�)�DX�Z]�,^�(_��%�*-�i�m�m�I�G]�_b�.c�*d��(�&)�)�-�-�	�C]�^`�*a�&b��%��
�
���'�	(�%'�D�"�	(��
�	'�%&�D�"�	'�s$�%H �2%H8� H5�4H5�8I
�I
c�4�[RSUR-5 [RSUR-5 [RSUR-5 [RSUR
-5 [RSUR-5 [RSUR-5 [RSUR-5 [RSUR-5 [RS	UR-5 [RS
UR-5 [RSUR-5 [RSUR-5 g)
NzPrint command: %szPCard command: %szFax command: %szFAB command: %szCopy command: %s zScan command: %szAuto refresh: %szAuto refresh rate: %szAuto refresh type: %szUpgrade notification:%dzLast Installed time:%dz#Next scheduled installation time:%d)rBrCr^r`rbrcrar_rzr{r|r}r~rr�s rrC�UserSettings.debug�s���	�	�%����6�7��	�	�%����6�7��	�	�#�d�l�l�2�3��	�	�#�d�l�l�2�3��	�	�%��
�
�5�6��	�	�$�t�}�}�4�5��	�	�$�t�'8�'8�8�9��	�	�)�D�,B�,B�B�C��	�	�)�D�,B�,B�B�C��	�	�+�d�.A�.A�A�B��	�	�*�D�,I�,I�I�J��	�	�7�$�:Z�:Z�Z�[rc�f�[RS5 [RSSUR5 [RSSUR
5 [RSSUR5 [RSSUR5 [RSSUR5 [RSS	UR5 [RSS
UR5 [RSSUR5 [RSS
UR5 [RSSUR5 [RSSUR5 [RSSUR5 UR5 g)NzSaving user settings...rmrnrprrrorqrgrhrirlrtrurvrwrx)rBrCry�setr^r`rbr_rarzr{r|r}r~rrxr�s r�save�UserSettings.save�s���	�	�+�,��
�
�j�&�$�.�.�9��
�
�j�'�4�>�>�:��
�
�j�%����6��
�
�j�&�$�-�-�8��
�
�j�%����7��
�
�i��$�*;�*;�<��
�
�i���)?�)?�@��
�
�i���)?�)?�@��
�
�i�!1�4�3F�3F�G��
�
�i� 4�d�6S�6S�T��
�
�i�!7��9Y�9Y�Z��
�
�i�!;�T�=Z�=Z�[��
�
�r)
rzr{r|rarcrbr`r^r_rxr~r}rN)
r�r�r�r�r�rdrUrCr�r�r�rrrSrSs���D2�L�8\�rrSc�6�SSKnUR5nURXRUR-UR
URS5nUR5 UR5 g![a [RS5 gf=f)Nrz`PyQt not installed. GUI not available. Please check that the PyQt package is installed. Exiting.)�gtk�Window�
MessageDialog�DIALOG_MODAL�DIALOG_DESTROY_WITH_PARENT�MESSAGE_WARNING�
BUTTONS_OK�run�destroy�ImportErrorrBrZ)r�rR�dialogs   r�no_qt_message_gtkr��s���
v���J�J�L���"�"�1�&6�&6��9W�9W�&W�#&�#6�#6����$F�G��	�
�
��������v��	�	�t�u�v�s�A3A6�6B�Bc��[R(d[RS5 g[R
"S5(d[RS5 g[
5(d[RS5 gg)N�GUI mode disabled in build.F�DISPLAY�No display found.z Qt/PyQt 3 initialization failed.T)rS�	gui_buildrB�warnr1rJ�checkPyQtImportr�rr�canEnterGUIModer��sT���>�>����.�/��
�Y�Y�y�
!�
!����$�%��
�
�
����3�4��rc�*�[R(d[RS5 g[R
"S5(d[RS5 g[
5 g![an[RU5 SnAgSnAff=f)Nr�Fr�r�T)rSr�rBr�r1rJ�checkPyQtImport45r�)�es r�canEnterGUIMode4r��sh���>�>����.�/��
�Y�Y�y�
!�
!����$�%��	���
��	�	��H�H�Q�K���	�s�
A)�)
B�3B
�
Bc��SSKnSSKn[UR5RS5S5nU[:a[RS5 gURnURS5S:aUS	-
nURS5S:aMURS5upEnUR!S
5S:�a[R#S5 g[U5n[U5n[U5nU[&:dU[&:Xa\U[(:aR[RS
XEU4-5 [RS[&[(4-5 [RS5 gg![aX [R"S5(a%[R"S5(a
[5 [RS5 gf=f![a URnGN�f=f![$a	 SupEnGNf=f)Nrr��STARTED_FROM_MENUz/PyQt not installed. GUI not available. Exiting.FrQzBIncorrect version of Qt installed. Ver. 3.0.0 or greater required.r$z.0�snapshotz3A non-stable snapshot version of PyQt is installed.)rrrz]This program may not function properly with the version of PyQt that is installed (%d.%d.%d).zDIncorrect version of pyQt installed. Ver. %d.%d or greater required.zUThis program will continue, but you may experience errors, crashes or other problems.T)�qt�uir�r1rJr�rBrZr��qVersionr:�MINIMUM_QT_MAJOR_VER�PYQT_VERSION_STR�AttributeError�PYQT_VERSION�count�find�warningr��MINIMUM_PYQT_MAJOR_VER�MINIMUM_PYQT_MINOR_VER)r�r��qtMajor�pyqtVersion�maj_ver�min_ver�pat_vers       rr�r��s�������"�+�+�-�%�%�c�*�1�-�.�G��%�%��	�	�V�W��&��)�)���
�
�C�
 �1�
$��t����
�
�C�
 �1�
$�#.�"3�"3�C�"8��W�w����
�#�q�(����I�J� �	0��'�l�G��'�l�G��'�l�G��+�+�
�.�
.�7�=S�3S��I�I�u�zA�LS�yT�T�
U��I�I�\�`v�yO�`P�P�
Q��I�I�m�n����W��
�9�9�Y���B�I�I�.A�$B�$B����	�	�C�D����$�&��o�o��&���	0�(/�%�G�g�	0�s6�E%�G
�!G'�%AG�G�
G$�#G$�'G:�9G:c�p�SSKnSSKn[RS5 g![a SSKnSSKngf=f)NrzgHPLIP is not installed properly or is installed without graphical support. Please reinstall HPLIP againFT)�PyQt4�ui4rBrCr��PyQt5�ui5)r�r�r�r�s    r�checkPyQtImport4r�s;�����
	�	�	�{�|��������
�s� �5�5)�Templatec�$�\rSrSrSrSrSrSrg)�	_multimapi+z{Helper class for combining multiple mappings.

Used by .{safe_,}substitute() to combine the mapping and keyword
arguments.
c��XlX lgr��_primary�
_secondary)r��primary�	secondarys   rr��_multimap.__init__1s��#�M�'�Orc�`�URU$![a URUs$f=fr)r��KeyErrorr��r��keys  r�__getitem__�_multimap.__getitem__5s4��
,��}�}�S�)�)���
,����s�+�+�
,�s��-�-r�N)r�r�r�r��__doc__r�r�r�r�rrr�r�+s��	�
	(�	,rr�c�,^�\rSrSrSrU4SjrSrU=r$)�_TemplateMetaclassi<aK
        %(delim)s(?:
          (?P<escaped>%(delim)s) |   # Escape sequence of two delimiters
          (?P<named>%(id)s)      |   # delimiter and a Python identifier
          {(?P<braced>%(id)s)}   |   # delimiter and a braced identifier
          (?P<invalid>)              # Other ill-formed delimiter exprs
        )
        c�F>�[[U]XU5 SU;a
URnO>[R[R
"UR5URS.-n[R"U[R[R-5Ulg)Nr�)�delim�id)�superr�r�r�r6�escape�	delimiter�	idpattern�compile�
IGNORECASE�VERBOSE)�clsrD�bases�dctr�rs     �rr��_TemplateMetaclass.__init__Fss����$�c�3�D��E��C���+�+��,�4�4� �i�i��
�
�6�!�m�m�8����*�*�W�b�m�m�b�j�j�.H�I�C�Krr�)r�r�r�r�r�r�r��
__classcell__)rs@rr�r�<s�����		J�		Jrr�c�<�\rSrSrSr\rSrSrSr	Sr
SrSrS	r
g
)r�iUz.A string class for supporting $-substitutions.�$z[_a-z][_a-z0-9]*c��Xlgr��template)r�r�s  rr��Template.__init__\s��$�Mrc���URS5nURSURS5nU(dSnSnO+U[SR	USS55-
n[U5n[SXT4-5e)N�invalidTrr+rz.Invalid placeholder in string: line %d, col %d)�startr��
splitlinesrhrYr�)r��mor�r��colno�linenos      r�_invalid�Template._invalid`sy������#�A��M�M�"�1�%�0�0��6�E�������C�����c�r�
� 3�4�4���U����M�$�_�-�.�
.rc��^^�[U5S:�a[S5eU(dUmOU(a[X!S5mOUSmUU4SjnTRR	UTR
5$)Nr�Too many positional argumentsrc�>�URS5=(d URS5nUb
TUnSU-$URS5bTR$URS5bTRU5 [STR5e)N�named�bracedr1�escapedr��#Unrecognized named group in pattern)�groupr�r�r�r�)r�r�r5�mappingr�s   ��r�convert�$Template.substitute.<locals>.convertvs��������)�?�R�X�X�h�-?���$�!�%�.�C� �#�:�%��8�8�I�&�2��>�>�)��8�8�I�&�2��M�M�"�%� �!F�!%���/�/r�rh�	TypeErrorr�r��subr��r��args�kwsr�r�s`   @r�
substitute�Template.substitutels^����4�y�1�}�� ?�@�@�����#�C�a��1���q�'��

/��<�<�#�#�G�T�]�]�;�;rc��^^�[U5S:�a[S5eU(dUmOU(a[X!S5mOUSmUU4SjnTRR	UTR
5$)Nrr�rc�>�URS5nUb	STU-$URS5nUb	STU-$URS5bTR$URS5bTR$[STR5e![a TRU-s$f=f![a TRS-U-S-s$f=f)	Nr�r1r��{�}r�r�r�)r�r�r�r�r�)r�r�r�r�r�s   ��rr��)Template.safe_substitute.<locals>.convert�s��������)���$�6� $�g�e�n�4�4����(�+���%�C�#�g�f�o�5�5��8�8�I�&�2��>�>�)��8�8�I�&�2��>�>�)� �!F�!%���/�/��$�6�#�~�~��5�5�6��$�C�#�~�~��3�f�<�s�B�B�C�s"�B�B-�B*�)B*�-C�Cr�r�s`   @r�safe_substitute�Template.safe_substitute�s^����4�y�1�}�� ?�@�@�����#�C�a��1���q�'��
/�*�<�<�#�#�G�T�]�]�;�;rr�N)r�r�r�r�r�r��
__metaclass__r�r�r�r�r�rr�r�rrr�r�Us(��<�*�
��	�'�	�	%�
	.�	<�6	<rr�c�R�[R"S5RR5nSU;aUS	[R"S5RR5nSU;aUS	[U5R"[R"S5R40UD6$)Nrr�)�sys�	_getframe�	f_globals�copy�f_localsr�r�)r�globals�localss   r�catr�s����m�m�A��(�(�-�-�/�G�
����F�O�
�]�]�1�
�
&�
&�
+�
+�
-�F�
����6�N��A�;�!�!�#�-�-��"2�"<�"<�G��G�Grrzutf-8c�6�UR[[5$r)rc�identity�unprintablers r�	printabler�s���;�;�x��-�-rc��U$rr�r�s rr�r�����Qrc�4�UHnU"U5(dM g g)NTFr���SrKr�s   r�anyr�s��
���Q�4�4���rc��U$rr�r�s rr�r��rrc�4�UHnU"U5(aM g g)NFTr�rs   r�allr�s��
����t�t�E��r)�firefox�mozilla�	konqueror�epiphany�	skipstonez-new-tabz	--new-tabc��[(a[R"5S:Xag[S5(ag[Hn[U5(dMUs $ g)N�Darwinr-�xdg-open)�platform_avail�platform�systemrQ�BROWSERS)�bs r�find_browserr)�sC���~�(�/�/�+�x�7��	�z�	�	���A��Q�x�x����rc���[(a5[R"5S:XaSU-n[R"U5 g[S5(aSU-n[R"U5 g[HSn[USS9nU(dMU(aU<S[U<SU<S	3nO
U<SU<S	3n[R"U5  g [RS
U-5 g)Nr"z	open "%s"r#z
xdg-open "%s"�True)rLr,z "z" &zUnable to open URL: %s)
r$r%r&r�executerQr'�BROWSER_OPTSrBr�)�url�use_browser_opts�cmdr(�bbs     r�openURLr2�s����~�(�/�/�+�x�7��C��������	�z�	�	���#��������A��q�6�2�B��r�#�02�L��O�S�I�C�-/��5�C�� � ��%���
�H�H�-��3�4rc��/nUVs/sH+o!RU5(aMURU5PM-  nU$s snfr)r�r�)�input�tempr�s   r�
uniqueListr6�s5��
�D�"�8�U��*�*�Q�-�^�T�[�[��^�U�8��K��9s�=�=c�^^^�TcUU4SjnOUUU4Sjn[S[T55H)nU"U5(dMTUTUS-
sTUS-
'TU'M+ g)Nc�>�TUT:H$rr��r��l�ms ��rr��list_move_up.<locals>.<lambda>��
���a��d�a�irc�>�T"TUT5$rr��r��cmpr:r;s ���rr�r<�����c�!�A�$��lrr�r�rh�r:r;r@rKr�s```  r�list_move_uprD�sS���
�{���"��
�1�c�!�f�
���Q�4�4��Q�4��1�Q�3��L�A�a��c�F�A�a�D�rc�^^^�TcUU4SjnOUUU4Sjn[[T5S-
SS5H)nU"U5(dMTUS-TUsTU'TUS-'M+ g)Nc�>�TUT:H$rr�r9s ��rr�� list_move_down.<locals>.<lambda>r=rc�>�T"TUT5$rr�r?s ���rr�rG	rArr$rrrBrCs```  r�list_move_downrIsY���
�{���"��
�3�q�6�!�8�R��
$���Q�4�4��Q�q�S�6�1�Q�4�L�A�a�D�!�A�a�C�&�%rc�8�\rSrSrSrSrSrSrSrSr	Sr
g	)
�XMLToDictParseric�.�/Ul0UlSUlg�Nr+)r�r�
last_startr�s rr��XMLToDictParser.__init__s����
���	���rc��URR[U5R55 [U5R5Ul[U5(aiUHbnURR[U5R55 UR
X#5 URR5 Md ggr)r�r�rr�rNrh�addDataru)r�rD�attrs�as    r�startElement�XMLToDictParser.startElements����
�
���*�T�*�0�0�2�3�$�T�*�0�0�2����u�:�:����
�
�!�!�*�Q�-�"5�"5�"7�8����U�X�&��
�
��� ��rc��UR5UR:XaURS5 URR	5 grM)r�rNrQr�ru�r�rDs  r�
endElement�XMLToDictParser.endElement"s0���:�:�<�4�?�?�*��L�L���	
�
�
���rc��[U5R5nU(a$UR(aURU5 gggr)r�stripr�rQ)r�rs  r�charData�XMLToDictParser.charData)s1���$��%�%�'���D�J�J��L�L����4rc
���SUl[U5nSR	UR
5nSR	US/5nURU URUURU'XRSR	US/5'URU	g![a [U5nN�f=f![a� URU SnURSR	U[U5/5 O9![a, XRSR	U[U5/5'gf=fUS-
nMk![a XRU'gf=ff=f)Nr+�-r}ryr$r)rNr�r�rrYr�rr�)r�r�	stack_str�stack_str_0�js     rrQ�XMLToDictParser.addData/sT�����	$��t�9�D��H�H�T�Z�Z�(�	��h�h�	�3�/�0��	%��I�I�i� �"&*�Y�Y�y�%9�D�I�I�k�"�48�I�I�c�h�h�	�3�/�0�1��	�	�)�$��5�	$��d�#�D�	$���
	�
��	�	�+�&������	�	�#�(�(�I�z�!�}�+E�"F�G��#��JN�	�	�#�(�(�I�z�!�}�+E�"F�G������F�A�
��	�
,�'+�	�	�)�$�
,��
	�se�B�B6�B3�2B3�6
E�D>�E�)C>�=E�>2D4�0E�3D4�4
E�>E�E�E�Ec�&�[(af[R"5nURUlUR
UlURUlURUS5 UR$[RS5 UR$�NTzRFailed to import expat module , check python-xml/python3-xml package installation.)
�xml_expat_avail�expat�ParserCreaterT�StartElementHandlerrX�EndElementHandlerr\�CharacterDataHandler�ParserBrZr)r�r��parsers   r�parseXML�XMLToDictParser.parseXMLQsn���?��'�'�)�F�)-�):�):�F�&�'+���F�$�*.�-�-�F�'��L�L��t�$�
�y�y��
�I�I�j�k��y�y�r)rrNr�N)r�r�r�r�r�rTrXr\rQrnr�r�rrrKrKs!���
	!���%�D
rrKc�J�\rSrSrSrSrSrSrSSjrSSjr	S
S	jr
S
rg)�Elementiac�8�XlX lSUl/UlgrM)rD�
attributes�chardata�children)r�rDrss   rr��Element.__init__bs���	�$����
���
rc�:�URRU5 gr)rur�)r��elements  r�AddChild�Element.AddChildhs���
�
���W�%rc�8�URRU5$r)rsrr�s  r�getAttribute�Element.getAttributeks�����"�"�3�'�'rc��UR$r)rtr�s r�getData�Element.getDatans���}�}�rNc��U(a
URnOURnU(dUR$/nUHOnURU:XaURU5 URX5nUHnURU5 M MQ U$r)rurDr��getElementsByTagName)r�rD�ElementNode�
Children_list�elementsrx�rec_elementsrSs        rr��Element.getElementsByTagNameqsz���'�0�0�M� �M�M�M���=�=� ��H�(���<�<�4�'��O�O�G�,�#�8�8�$�G��%�A��O�O�A�&�&�)��Orc��U(dUR$/nURH&nURU:XdMURU5 M( U$r)rurDr�)r�rDr�rxs    r�getChildElements�Element.getChildElements�sA����=�=� ��H��=�=���<�<�4�'��O�O�G�,�)��Orc��SU-nUSUR--
nURHnUSU<SURU<S3-
nM  SnURHnXERUS-5-
nM US:Xa=UR(a$USUR-SUR---
nU$US	-
nU$USU-SUR---
nU$)
Nr,z<%sz="rsr+r�>z</%s>z/>)rDrsru�toStringrt)r��level�retval�	attribute�c�childs      rr��Element.toString�s����u����%�$�)�)�#�#�����I��i�����1K�L�L�F�)����]�]�E�
����a��(�(�A�#���7��}�}��#�d�m�m�+�w����/B�C�C��
�
��$����
�
�c�A�g��4�9�9�!4�5�5�F��
r)rsrtrurD)r+N)r+�r)r�r�r�r�r�ryr|rr�r�r�r�r�rrrqrqas%���&�(���$�rrqc�2�\rSrSrSrSrSrSrSrSr	g)	�
extendedExpati�c� �SUl/Ulgr)r*�	nodeStackr�s rr��extendedExpat.__init__�s����	���rc���[X5n[UR5S:�a!URSnURU5 OX0lURRU5 g)Nrr)rqrhr�ryr*r�)r�rDrsrx�parents     r�StartElement_EE�extendedExpat.StartElement_EE�sN���$�+���t�~�~���"��^�^�B�'�F��O�O�G�$��I������g�&rc�,�URSSUlg�Nr)r�rWs  r�
EndElement_EE�extendedExpat.EndElement_EE�s�������,��rc�\�U(a%URSnU=RU-
slggr�)r�rt)r�rrxs   r�charData_EE�extendedExpat.charData_EE�s,����n�n�R�(�G�����$���rc�&�[(af[R"5nURUlUR
UlURUlURUS5 UR$[RS5 UR$re)
rfrgrhr�rir�rjr�rkrlrBrZr*)r��	xmlString�Parsers   rrl�extendedExpat.Parse�sr���?��'�'�)�F�)-�)=�)=�F�&�'+�'9�'9�F�$�*.�*:�*:�F�'��L�L��D�)��y�y��
�I�I�j�k��y�y�r)r�r*N)
r�r�r�r�r�r�r�r�rlr�r�rrr�r��s���'�-��rr�c�*�SRSUS/5$)Nr+rs)rYrs r�dquoter��s��
�7�7�C��C�=�!�!ri�c
�|�Sn[U[[[U5555Hup2X1;dM O XS$r)�zipr�r�rh)r�charsr�r�s    r�xlstripr��s:��
����4��c�!�f�
�.�/�D�A��~��0���u�rc�>�[[[U5U55$r��xreverser��rr�s  r�xrstripr��s�������U�3�4�4rc�Z�[U5nUR5 SRU5$rM)r��reverserY)rr:s  rr�r��s"����G��	�	�	���w�w�q�z�rc
�P�[[[[X55U55$rr�r�s  r�xstripr��s�������):� ;�U�C�D�Drc��[(a$[[R"5SSS5$[R
"S5S-$)Nr����Pr%)r$r�r%�architecture�struct�calcsizer�rr�
getBitnessr��s;���~��8�(�(�*�1�-�c�r�2�3�3����s�#�q�(�(rc��[(a3[R"5RSS5R	5$g)Nr,�_�i686)r$r%�machiner9r�r�rr�getProcessorr��s/���~����!�)�)�#�s�3�9�9�;�;�rc�B�[RS:Xa[$[$)N�big)r�	byteorder�
BIG_ENDIAN�
LITTLE_ENDIANr�rr�	getEndianr��s��
�}�}������rc�<�SSKnUR5nSnU(a�SU;dSU;a�[R"5S:wauUR	5n[
R
SU<SU<S35 US:XaAURUS5n	UR	5n[
R
SU-5 U	S:Xag	[R"XS
9n
SnU(a
[5 U
R[5n
U
R(a�U(arU[;ah[
R
SU-5 [ R""U[ R$5n[R'U5 [R'U5 UR+U
R5 U(a[
R
U
R5 U
S:XaO[U
S
:XaGMU
S:XaU
R-S5 O7U(d[S5eU
R-URX,55 US
-
nGMUU(a
[15 U
R35 U
R4UR754$![Ra
nSnAgSnAff=f![a GM�f=f![(a [R'U5 GN7f=f![a GNf=f![a"n[
R/SU-5 SnAN�SnAff=f![Ra
nSnAN�SnAff=f)Nrr+�su�sudozcmd = z pwd_prompt_str = [�]zpwd_prompt_str2 = [%s])�r+)�timeout)rr+zAdding %s to EXPECT LISTrr$�YESz.password Object(i.e. passwordObj) is not validz
Exception: %s)�iorr1rU�getPasswordPromptStringrBrC�getPasswordr#�spawnu�ExceptionPexpect�update_spinner�expect�EXPECT_LIST�	Exception�beforer6r��Ir�r��write�sendlinerZ�cleanup_spinnerr=�
exitstatus�getvalue)r0�passwordObj�pswd_msg�
log_output�spinnerr�r��output�pwd_prompt_str�passwdr�r��pswd_queried_cntr�rOs               rr�r��s���
�
�[�[�]�F��N�����v��}�"�*�*�,�!�:K�$�<�<�>���	�	�C��H�I��R�� �,�,�X�q�9�F�(�@�@�B�N��I�I�.��?�@���|������s�4��.'������ �
��L�L��-���|�|�!�n�K�&G��I�I�8��G�H�;��J�J�~�r�t�t�<��$�*�*�1�-�#�*�*�>�:���L�L����.�!��	�	�%�,�,�/��A�v���a����a�����u�%�#�#�$T�U�U����{�6�6�x�R�S� �A�%� �S�Z���
�
���
�
���V�_�_�.�.�.��u�#�#�������
��
��%�;�#�*�*�>�:�;��!�����&�'��	�	�/�A�%�&�&��'���#�#�
���
�s��9I$�K�#J�8:K�3%J�*K�AJ=�K�AK�8K=�$J�=J�
J�K�J�K�J:�6K�9J:�:K�=
K�K�
K�K�
K:�K5�5K:�=L�Lc
�T�/nUR[S55GH}nUR5nURS5n[U5S:XGa7USR	[S55nUS[U5SUS'US(a
US(d[SU-5eUS[S	5:Xd[USS5S	:waUS
-
nOOUVs/sHn[U5PM nnUSUS:�a[SU-5eU[S5[
U5--
nUVs/sHn[US
5PM nnUSUS:�a[SU-5e[USUSS-5HnURXE-5 M GMlURU5 GM� [[[U5VVs/sHupRX%4PM
 snn5R55nUVs/sHow(dM[U5PM nnUR5 U$s snfs snfs snnfs snf)z�Credit: Jean Brouwers, comp.lang.python 16-7-2004
Convert a string representation of a set of ranges into a
list of ints, e.g.
u"1-4, 7, 9-12" --> [1,2,3,4,7,9,10,11,12]
�,r_r$r�
0123456789Nrz
empty range: r}z%dzwide range: z%%0%dd�
zbad range: )r:rr[rh�rstripr�r�r�r�r�r��dict�	enumerate�keysr+)�ns�fsr~�r�hr�rRr�s        r�expand_ranger�Ns���
�B�
�X�X�j��o�
&��
�G�G�I��
�G�G�C�L���q�6�Q�;��!����J�|�4�5�A��Q�4��A���=�A�a�D��a�D�Q�q�T� ��1�!4�5�5���t�z�#��&�*�Q�q�T�!�W�*=��*D��T�	��%&�'�Q��S��V�Q��'��Q�4�!�A�$�;�#�N�Q�$6�7�7��Z��)�C��F�2�2��%&�'�Q���Q���Q�A�'���t�a��d�{��
�� 1�2�2��1�Q�4��1��a��(���	�	�!�%� �)�
�I�I�a�L�1'�6
�d�y��}�5�}�t�q�Q�F�}�5�6�;�;�=�	>�B��	"�"�Q��&�#�a�&�"�B�	"��G�G�I�
�I��'(��
(��6��	"s�H�%H�7H�$
H%�2H%c�b�U(dg[US5/USSp2nUSSHUnXBS-:XaSnOEU(a!UR[S5X$4-5 SnOUR[S5U-5 UnMW U(aUR[S	5W-5 SRU5$)
zhConvert a list of integers into a string
range representation:
[1,2,3,4,7,9,10,11,12] --> u"1-4,7,9-12"
r+rFrNTz-%s,%sz,%sz-%s)rtr�rrY)r�rr�r�r�s     r�collapse_ranger�xs���

���1�Q�4�y�k�1�Q�4��!�A�
�q�r�U���1��:��A������H�-���5�6�������E�*�Q�.�/�
���	�	����E�"�Q�&�'�
�7�7�1�:�rc	��Uc[R"5nSn[USSSSSS9Hfn[RR	U5upgURU5(dM<X:XdMC[
U[U5S5n[XH5nMh [RRUSXUS-U4-5$![a M�f=f�NrFr)r�r�r�r�rVz%s%0*d%sr�r1�getcwdr�rV�splitext�
startswithr�rhr�r�rY�	r��extr]�digitsr;rKr�r�r�s	         r�createBBSequencedFilenamer����
�{��i�i�k��	�A�
�s�E�U�5�Z]�dh�
i���w�w����"����<�<��!�!�c�h�
���#�h�-�.�)�*����I��j��7�7�<�<��Z�8�Q�q�S�#�*F�F�G�G���
��
���-B<�<
C
�	C
c	��Uc[R"5nSn[USSSSSS9Hfn[RR	U5upgURU5(dM<X:XdMC[
U[U5S5n[XH5nMh [RRUSXUS-U4-5$![a M�f=fr�r�r�s	         r�createSequencedFilenamer�rrc��Uc[R"5nU$UR5R5n[	[
R
55H
upX;dM U$ Sn[RSU-5 U$)N�en_USz)Unknown lang/locale. Using default of %s.)	r�getSystemLocaler�r[r��supported_localesr*rBr�)�lang�loc�lls   r�validate_languager
�sz���|��&�&�(���J��z�z�|�!�!�#���-�3�3�5�6�G�C��z��
�J�7��C��H�H�@�3�F�G��Jrc���SSKn[UR55$![aM [	S5nU(a8[
RRUS5n[R"U5s$gf=f)Nr�uuidgenr+)
�uuidrt�uuid4r�rQr1rVrYr�	getoutput)rrs  r�gen_random_uuidr�s_��
���4�:�:�<� � �����	�"����g�g�l�l�7�I�6�G��'�'��0�0��
�s��AA6�5A6c�*�\rSrSrSSjrSrSrSrg)�RestTableFormatteri�Nc��Xl/Ulgr��header�rows)r�rs  rr��RestTableFormatter.__init__�s������	rc�:�URRU5 gr)rr�)r��row_datas  r�add�RestTableFormatter.add�s���	�	����"rc
�:�UR(Ga�[URS5nURH,n[U5U:wdM[RSU-5  g [UR5U:wa[RS5 /n[UR5HNupV[U5nURHn[
U[X555nM URUS-5 MP SnUHnSRUSUS--S/5nM SRUS/5nURU5 UR(a�S	n[U5HGup�SRUS
URUS
US-[URU5-
-S	/5nMI SRUS/5nURU5 SnUHnSRUSUS--S/5nM SRUS/5nURU5 [UR5H�up�S	n[U5HMup�SRUS
URU	US
US-[URU	U5-
-S	/5nMO SRUS/5nURU5 SnUHnSRUSUS--S/5nM SRUS/5nURU5 M� g[RS
5 g)Nrz"Invalid number of items in row: %sz"Invalid number of items in header.r$�+r+r_r��|r,r�=zNo data rows)
rrhrBrZrr�r�r�rYr�)
r�rR�num_colsr��
col_widthsr�r��	max_widthr�rbs
          rr��RestTableFormatter.output�s����9�9�9��4�9�9�Q�<�(�H��Y�Y���q�6�X�%��I�I�B�Q�F�G���
�4�;�;��8�+��	�	�>�?��J�!�$�+�+�.�����F�	����A� #�I�s�1�4�y� 9�I�#��!�!�)�A�+�.�/��A����G�G�Q��q��s��S�1�2�� �����D�	�"�A�
�G�G�A�J��{�{���%�j�1�D�A�����C����Q����!��C����TU��DW�@W�9X�Z]� ^�_�A�2��G�G�Q��I�&������
���#�A�����C�1�Q�3�K�� 5�6�A�$��G�G�Q��I�&������
�"�$�)�)�,�����%�j�1�D�A�����C����1��a��#��1��S����ST��VW��EY�AY�:Z�\_� `�a�A�2��G�G�Q��I�&������
���#�A�����C�1�Q�3�K�� 5�6�A�$��G�G�Q��I�&������
�-� 
�I�I�n�%rrr)r�r�r�r�r�rr�r�r�rrrr�s���#�;&rrc��SSKnUR5SSRnSU;a[S5eURR5nUR
SS5 UR
SS5 URU5 g)Nrrr�z(Must call mixin() from within class def.r�)�inspectr�rr��__dict__r
ru�update)r�r(r
r�s    r�mixinr+sn���
�]�]�_�Q�
��
"�
+�
+�F��6�!��B�C�C��<�<����D��H�H�Y����H�H�\�4� �
�M�M�$�r)z	[OPTIONS]r+�headingF)zSet the logging level:z-l<level> or --logging=<level>�optionF)r+z5<level>: none, info\*, error, warn, debug (\*default)r-F)zRun in debug mode:z-g (same as option: -ldebug)r-F)zOutput plain text only:z-tr-F)z[PRINTER|DEVICE-URI]r+r,F)z	[PRINTER]r+r,F)zTo specify a device-URI:z'-d<device-uri> or --device=<device-uri>r-F)zTo specify a CUPS printer:z"-p<printer> or --printer=<printer>r-F)z'Bus to probe (if device not specified):z-b<bus> or --bus=<bus>r-F)r+zf<bus>: cups\*, usb\*, net, bt, fw, par\* (\*defaults) (Note: bt and fw not supported in this release.)r-F)zThis help information:z-h or --helpr-T)r+r+�spaceF)z	Examples:r+r,F)zNotes:r+r,F)znIf device or printer is not specified, the local device bus is probed and the program enters interactive mode.r+�noteF)z<If -p\* is specified, the default CUPS printer will be used.r+r/F)z	See Also:r+r,F)�Set the language:za--loc=<lang> or --lang=<lang>. Use --loc=? or --lang=? to see a list of available language codes.r-F)r0zF--lang=<lang>. Use --lang=? to see a list of available language codes.r-F)z[MODE]r+rF)zRun in non-interactive mode:z-n or --non-interactiver-F)zRun in graphical UI mode:z-u or --gui (Default)r-F)zRun in interactive mode:z-i or --interactiver-F�	configurez
ui-toolkit�qt3)�Use Qt3:z--qt3 (Default)r-F)�Use Qt4:z--qt4r-F)�Use Qt5:z--qt5r-F�qt4)r3z--qt3r-F)r4z--qt4 (Default)r-F�qt5)r5z--qt5 (Default)r-Fc�^�[R"S5R5SnSSS.nURS5H8nUR5n[	U5S:XdM$USXS'USXS'M: [US5[US5pTXE4$![a	 S	upEXE4$f=f)
Nzstty -ar)rr�r�r$rrr�)��P)rrr�r:rhr�r�)�ln1�vals�phr�r�colss      r�ttysizer?Ts���
�
�
�y�
)�
4�
4�
6�q�
9�C��4�(�D��i�i��n���H�H�J���q�6�Q�;��1��D�1��J��1��D�1��J�	�
���f��&��D��O�(<�d��:������
��d��:���s�;B�B,�+B,c��[5upU(a
UnX#-
S-
nO[US-5S-
nX#-
S-
n[USS.USS.45$)N�r%r$)r�r�)r?r�r�)�overriderr>�col1�col2s     r�usage_formatterrEds\����J�D�����{�Q����4�!�8�}�q� ���{�Q����D�Q�7�&*�q�9�<�=�=rc�R�US:XGa�[5nUGH�nUupxp�URSS5nURSS5nU	S:Xa?[R[R	U55 [RS5 MrU	S;a5[RU5 U
(a[RS5 M�M�U	S;a*[R[R	U55 M�U	S;a)[RURXx4U
55 GMU	S:XaWUR
S	5(a)[RS
UR5-5 GMQ[RU5 GMiU	S:XdGMr[RS5 GM� [RS5 gPUS:XGa�S
up�S
up�S
unnUH�nUupxp�U	S:Xa,[[U5U5n[[U5U5nM:U	S:Xa,[[U5U
5n
[[U5U5nMlU	S:XdMt[[U5U5n[[U5U5nM� US-
nUS-
nU
S-
n
US-
nUS-
nUS-
nX�-nX�-nUU-n[RSU<SU<S35 U<SU<SU<S3n[RU5 [RS[U5-5 [RS5 /nSnUGH nUupxp�U	S:XaURU5 SU-n[U5[U5nnU	S:Xa>[RSRSUS/55 [RS5 MU	S;aA[RS5 [RU5 [RS5 M�U	S;aJ[RS5 [RSU-S-5 [RS5 SnGMU	S:XGaOU(a[[RS5 [RS5 [RSRSS U-SS U-S/55 SnU(aBS!U;a<[RSRS"US#S	UU-
S$-
-S%US	UU-
-S%/55 OrU(a8[RSRS%US	UU-
-S%US	UU-
-S%/55 O3[RSRS%S	U-S%US	UU-
-S%/55 [RSRSS U-SS U-S/55 GMlU	S:XGaOU(a[[RS5 [RS5 [RSRSS U
-SS U-S/55 SnU(aBS!U;a<[RSRS"US#S	U
U-
S$-
-S%US	UU-
-S%/55 OrU(a8[RSRS%US	U
U-
-S%US	UU-
-S%/55 O3[RSRS%S	U
-S%US	UU-
-S%/55 [RSRSS U
-SS U-S/55 GM�U	S:Xa+U(a!S!U;a[RU5 GM�GM�GM�U	S:XGaU(a[[RS5 [RS5 [RSRSS U-SS U-S/55 SnUR
S	5(a-[RSRS%S	US&--S%/55 [RSRS%US	UU-
S&--S%/55 [RSRSS U-SS U-S/55 GMU	S:XdGM[RS5 GM# UH1n[RS'U<S(URS)S5<S*35 M3 [RS5 gPUS+:XGa[RS,U<S-U<S.35 [RS/U<S0U<35 UGHqnUupxp�URS1S#5nURS1S#5n[U5[U5nnU	S:Xa?[RS25 [RS3URS4S5-5 M�U	S5:Xa#U(a[RS6U-5 M�M�U	S7;a=U(a[RS8U<S9U<35 M�[RU5 M�U	S:;aY[RS;UR5RS<S5RS=S5RS>S5-5 GMSU	S?;dGM\[RU5 GMt [RS@5 [RSA5 [RSB5 [RSC5 [RSD5 [RSE5 [RSF5 [RSG5 [RSH5 [RSI5 [RSJ5 [RSK5 [RSL5 [RSM5 [RSN5 [RSO5 [RS5 gPgP)Qz�
Format usage text in multiple formats:
    text: for --help in the console
    rest: for conversion with rst2web for the website
    man: for manpages
r��\r+�summary)�pararD�seealso)r,r)r-�exampler/r,�	r.�rest)rrr-rK�zrestindex
page-title: z
crumb: z=
format: rest
file-extension: html
encoding: utf8
/restindex
z: z (ver. r8r"FrJz`%s`_z**)rIrDTz.. class:: borderlessr r_z`_z| *rr%r!rz
.. _`z`: zhp-z.html
�manz.TH "z" 1 "z" Linux "User Manuals"z
.SH NAME\nz \- z\*z.SH SYNOPSISz.B %szUsage:rDz.SH DESCRIPTION
%s)r-rKr/z.IP "z"
)rr,z.SH %srI�[r�z
seealso, paraz
.SH AUTHORz+HPLIP (HP Linux Imaging and Printing) is anz=HP developed solution for printing, scanning, and faxing withz,HP inkjet and laser based printers in Linux.z.SH REPORTING BUGSzThe HPLIP Launchpad.net sitez.B https://launchpad.net/hplipz is available to get help, reportz>bugs, make suggestions, discuss the HPLIP project or otherwisezcontact the HPLIP Team.z
.SH COPYRIGHTz2Copyright (c) 2001-18 HP Development Company, L.P.z.LP�0This software comes with ABSOLUTELY NO WARRANTY.�;This is free software, and you are welcome to distribute it�<under certain conditions. See COPYING file for more details.N)
rEr9rB�info�boldr�r��lstripr�rhr�rY�upper)�	text_list�typ�title�crumb�version�	formatterr��text1�text2r4�trailing_space�
opt_colwidth1�
opt_colwidth2�exmpl_colwidth1�exmpl_colwidth2�note_colwidth1�note_colwidth2�opt_tablewidth�exmpl_tablewidth�note_tablewidthrz�links�needs_header�len1�len2r:s                          r�format_textrnrs}	���f�}�#�%�	��D�37�0�E�&��M�M�$��+�E��M�M�$��+�E���"�������%��)�������6�6������!��H�H�R�L�"��0�0�������%��)��0�0�����*�*�E�>�>�J�K��6�!��#�#�C�(�(��H�H�T�E�L�L�N�2�3��H�H�U�O��7�"������=�@	�����

���'+�$�
�+/�(��)-�&����D�37�0�E�&��(�"� #�C��J�
� >�
� #�C��J�
� >�
��9�$�"%�c�%�j�/�"B��"%�c�%�j�/�"B���6�!�!$�S��Z��!@��!$�S��Z��!@���	���
����
��1����1����!����!���&�6��*�<��(�>�9��	����%�
!�	"�#(���8�����������S��V�������������D�37�0�E�&���"����U�#��%����U��S��Z�$�D���"�������$��t�!4�5�6�������+�+�����������������0�0�������������,�-������#���8�#���H�H�4�5��H�H�R�L��H�H�R�W�W�c�3�}�+<�c�3�}�CT�VY�%Z�[�\�#(�L��T��.��H�H�R�W�W�e�U�C��m�D�>P�QR�>R�9S�UX�Z_�ad�fs�tx�fx�ay�{~�%�A�B���H�H�R�W�W�c�5�#�}�T�7I�2J�C�QV�X[�]j�ko�]o�Xp�ru�%v�w�x��H�H�R�W�W�c�3�
�+>��U�C�Q^�_c�Qc�Ld�fi�%j�k�l�������#�s�=�'8�#�s�=�?P�RU�!V�W�X��9�$���H�H�4�5��H�H�R�L��H�H�R�W�W�c�3��+>��S��EX�Z]�%^�_�`�#(�L��T��.��H�H�R�W�W�e�U�C��o�d�>R�ST�>T�9U�WZ�\a�cf�hw�x|�h|�c}�@C�&D�E�F���H�H�R�W�W�c�5�#��t�7K�2L�c�SX�Z]�_n�os�_s�Zt�vy�%z�{�|��H�H�R�W�W�c�3��+@�#�u�c�Sb�cg�Sg�Nh�jm�%n�o�p�������#�s�?�':�C��_�AT�VY�!Z�[�\��9�$��T��.��H�H�U�O�/�5��6�!���H�H�4�5��H�H�R�L��H�H�R�W�W�c�3�~�+=�s�C��DV�X[�%\�]�^�#(�L��#�#�C�(�(��H�H�R�W�W�c�3���0A�+B�C�%H�I�J�������#�u�c�?�4�3G��3I�.J�C�!P�Q�R�������#�s�>�'9�3��N�@R�TW�!X�Y�Z��7�"������Y�\�A��H�H��1�9�9�U�B�3G�H�I��	�����	������5�'�J�K����%��7�8��D�37�0�E�&��M�M�%��-�E��M�M�%��-�E��U��S��Z�$�D���"�����(�����5�=�=��2�#>�>�?��6�!���H�H�2�U�:�;���8�8���H�H�u�e�<�=��H�H�U�O��0�0�����E�K�K�M�$9�$9�#�r�$B�$J�$J�3�PR�$S�$[�$[�\_�ac�$d�d�e��O�,������5�8	��������>�?����P�Q����?�@����%�&����/�0����1�2����3�4����Q�R����*�+�����!����E�F���������C�D����N�O����O�P������g
rc�Z�[RS5 U(a:[R[RS[R-55 O([R[RS55 [R[RU<SU<355 [RS5 [RS5 [RS5 [RS5 [RS5 [RS5 g)	Nr+z.HP Linux Imaging and Printing System (ver. %s)z$HP Linux Imaging and Printing Systemz ver. z0Copyright (c) 2001-18 HP Development Company, LPrQrRrS)rBrTrUrSr\)�program_namer\�show_vers   r�	log_titlerrVs����H�H�R�L��������J�T�\�\�Y�Z�[�������@�A�B��H�H�S�X�X�l�G�<�
=�>��H�H�R�L��H�H�
?�@��H�H�
?�@��H�H�
J�K��H�H�
K�L��H�H�R�Lrc�b�S[R"U5-n[R"X2U5$)Nz(?i))r6r�r�)�old�searchr9�regexs    r�ireplacerwgs&���R�Y�Y�v�&�&�E�
�6�6�%�#�&�&rc�6�Sn[R"SX5$)Nc�0�URS5nUSSS:Xa9USSS:Xa[[USSS55$[[USS55$[[R
USS5nU$![a U$f=f![a U$f=f)	Nrr$z&#r%z&#xrr�r)r��chrr�r�r�name2codepointr�)r;r�s  r�fixup�unescape.<locals>.fixupps����w�w�q�z�����8�t��
����8�u�$��s�4��"�:�r�2�3�3��s�4��"�:��/�/�

��=�7�7��Q�r�
�C�D������
����
���
����
�s(� A6�A6�B�6
B�B�
B�Bz&#?\w+;)r6r�)r�r|s  r�unescaper~os���*�6�6�*�e�*�*rc��[U[5(d[U5nURSS5n[R
H:nUS:wdMUR[
U5S[R
U-5nM< [[S55[[SS55-H!nUR[
U5SU-5nM# U$)	N�&z&amp;�&z&%s;� r��z&#%d;)	rrtrr9r�codepoint2namerzr�r�)rr�s  rr�r��s����a�����q�M��	�	�	�#�w��A�
�
)�
)����9��	�	�#�a�&�&�=�+G�+G��+J�"J�K�A�*��%��+�
��e�D�$�&7�!8�
8��
�I�I�c�!�f�g��k�*��9�
�Hrc��/SQnSnUH3n[U5(dMUS-n[RSU-5  U$ U$)N)zgnome-terminal�konsolezx-terminal-emulator�xterm�gtktermz -e zAvailable Terminal = %s )rQrBrC)�
terminal_list�terminal_cmdr0s   r�get_terminalr��sK��Y�M��L�����:�:���;�L��I�I�0�,�>�?����
��rc��US:XdUS:XdUS:XdUS:Xa[RS5 gURS5nURS5n[RSU<SU<35 SnSn[R"S5nU[U5:Ga�U[U5:Ga�SnS	nSn	S	n
UR
X$5(aN[UR
X$5RS
55nUR
X$5RS5nO
[X$5nUR
X45(aN[UR
X45RS
55n	UR
X45RS5n
O
[X45n	Xy:aSnO�Xy:�a[RS
5 gUR5U
R5:aSnO^UR5U
R5:�a[RS
5 gUS
-
nU[U5:aU[U5:aGM�USLa[U5[U5:aSnU$! [RS[-5 g=f)Nr+zavailable_version is ''FrQzHPLIP Installed_version=z  Available_version=rz(\d{1,})([a-z]{1,})r,rr$Tz Already new verison is installedz_Failed to get the latest version. Check out %s for manually installing latest version of HPLIP.)rBrCr:r6r�rhrur�r�r�rZ�HPLIP_WEB_SITE)�installed_version�available_version�installed_array�available_array�cnt�Is_olderr��installed_ver_dig�installed_ver_alph�available_ver_dig�available_ver_alphs           r�Is_HPLIP_older_versionr��s\���B��"3�t�";�?P�TV�?V�Zk�os�Zs��	�	�+�,��%�+�+�C�0�O�%�+�+�C�0�O��I�I�BS�Te�f�g�
�C��H�
�
�
�-�.�C�*��3��'�'�C��_�1E�,E���"����"���z�z�/�.�/�/�$'��
�
�?�3G�(H�(N�(N�q�(Q�$R�!�%(�Z�Z��0D�%E�%K�%K�A�%N�"�$'��(<�$=�!��z�z�/�.�/�/�$'��
�
�?�3G�(H�(N�(N�q�(Q�$R�!�%(�Z�Z��0D�%E�%K�%K�A�%N�"�$'��(<�$=�!�!�5����#�7��	�	�<�=��'�,�,�.�1C�1I�1I�1K�K�#�H��(�.�.�0�3E�3K�3K�3M�M��I�I�@�A� ��1�H�C�C�3��'�'�C��_�1E�,E�H�u���_�!5��O�8L�!L��H��O��	��	�	�s�uC�C�	D��s �	D0I�:AI�#I�=I�I>c�"�[X-S-U-5nUS:wa[RRS5 [RRS[RSU-S5-5 [RR
5 g)N�drzr1z%2d%%rU)r�r�stdoutr�rB�color�flush)r��	blockSize�	totalSize�percents    r�downLoad_statusr��sg���%�/�#�%�i�/�0�G���z��
�
����"��J�J���T�C�I�I�g�g�o�v�>�?�@��J�J���ri c��UR5(a[UR5RS5(a7[UR5RS5R55nO[RS5 SnSnUR
U5nU(dgURU5 U[U5-
nU(a
U"USW5 MK)NzContent-LengthzIgnoring progres barrr)	rTrr�r[rBrCr8r�rh)�response�out_fd�
chunk_size�
status_bar�
total_size�bytes_so_far�chunks       r�chunk_writer��s����m�m�o�o�(�-�-�/�-�-�.>�?�?���
�
��+�+�,<�=�C�C�E�F�z�
�y�y�'�(��z��<�	
��m�m�J�'�e�
�	��l�l�5���c�%�j� �l�	�	�L�!�Z�	0�
rc�f�SnUS:XdUc[RS5 US4$Uc[5upAUSLap[S5nU(a\[R
R
US5n[U<SU<SU<35upgU(a[RSU-5 US4$OS	nU(a?[R"U5n[US
5n	[X�5 U	R5 O[R
R#U5(d [RS
[$-5 US4$SU4$![Ra&n
[RSU-5 US4sSn
A
$Sn
A
ff=f![a0n
[RSU
R -5 US4sSn
A
$Sn
A
ff=f)Nrr+zURL is emptyF�wgetz6 --cache=off --tries=3 --timeout=60 --output-document=r,z0Failed to connect to HPLIP site. Error code = %dT�wbzFailed to open URL: %sz
I/O Error: %sz/Failed to get hplip version/ %s file not found.r)rBrZrFrQr1rVrYr�r�urlopenr-r�r=r
�URLErrorr.�strerrorrW�hplip_version_file)�weburl�
outputFile�	useURLLIB�retValuer?r��statusr�r��file_fdr�s           r�download_from_networkr�
s����H�
��|�v�~��	�	�.�!���|����'�)���������=�D���w�w�|�|�D�&�1��!$�gk�mw�y�&A�"B�����I�I�P�RX�X�Y�#�R�<�'��!�	��
$�*�2�2�6�:���z�4�0���H�.��
�
��� �7�7�>�>�*�%�%��	�	�C�DV�V�W���|���j�=���!�)�)�
$��	�	�2�V�;�<���|�#��
$�����	�	�/�A�J�J�.�/���|����sN�A1E6�'
E6�2=D9�9E3�
E.�(E3�)E6�.E3�3E6�6
F0�%F+�%F0�+F0c�,�\rSrSrSrSrSrSrSrg)�	Sync_Locki:c�F�Xl[URS5Ulg)NrR)�
Lock_filenamer-�handler)r��filenames  rr��Sync_Lock.__init__;s��%���D�.�.��4��rc�b�[R"UR[R5 gr)rErFr�rHr�s r�acquire�Sync_Lock.acquire@���
���D�L�L�%�-�-�0rc�b�[R"UR[R5 gr)rErFr�rNr�s r�release�Sync_Lock.releaseCr�rc�8�URR5 gr)r�r=r�s r�__del__�Sync_Lock.__del__Fs�������r)r�r�N)	r�r�r�r�r�r�r�r�r�r�rrr�r�:s��5�
1�1�rr�c�0�[(d[RS5 g[RS5 XXXEU/n[R"S[
SS9nUR"USS06 [5RU5 [RS5 g)	NzFailed to import dbus, lowlevelzsend_message() entered�/�Event)rV�	interfacerD�	signature�ssisisszsend_message() returning)	�
dbus_availrBrCr�
SignalMessage�DBUS_SERVICEr�r�send_message)	�
event_code�
device_uri�printer_name�username�job_idrZ�	pipe_namer��msgs	         r�	sendEventr�Ist���:��	�	�3�4���I�I�&�'��j�F�9�U�D�
�
 �
 �c�\��
P�C��J�J�T�*��*�
�K���S�!��I�I�(�)rc�l�[R"U5nU(aSRU5nX4$/S4$)Nr,r+)�globrY)�File_exp�	File_list�
File_list_strs   r�expand_listr�Vs3���y�y��"�9���h�h�y�)�m�
�
%�%�
��U�lrc�b�SnSnURS5S:wa-URSS5SnURS5(dOOU$MF[U5S::aU$XS:XaUnU$U[U5:a�SnXS:XdXS	:XdXS
:Xa#US-nXS:XaMXS	:XaMXS
:XaM#XS
:wa3XS	:wa+US-[	XS5-nUS-nXS
:wa
XS	:waM+US:XaU$X XU-S--nX1-S-nU[U5:aM�U$![
a U$f=f)
Nrr+r�

r�HTTP�<r,�
r�r�r$)r�r:r�rhr�r;)�src_datar��dst_data�buf_lens    r�unchunck_xml_datar�`s���
�E�
�H�
��=�=��$��*��~�~�j�!�4�Q�7�H��&�&�v�.�.��/��O�
��8�}�������#����&�O�#	���X��&��W��?�c�)�X�_��-D���[_�H_��a�x�u��?�c�)�X�_��-D���[_�H_��?�d�*�x��$�/F� �"��s�8�?�B�'?�?�w��a�x�u��?�d�*�x��$�/F��1����O�!�5���q��"A�A�X��_�q�(�U���X��&� �O���	���O�	�s0�*6D �"D �,D �69D �1D �:"D � 
D.�-D.c�P�Sn/n[R"S5nU(aiURU5(aSURU5RS5n[R"SS[U55nUR
S5nOURS5 [RSU-5 URS	5nUR
S
5nUHnSnUHn	Xy:XaX8	 MUS-
nM M [U5S:XaSnSn
UHnU
(aU
S-
n
X�-
n
M X*4$)
NFz.*-G(.*)rz\sr+r��lpzRequied groups list =[%s]�
r,rT)r6r�rur�r�rtr:r�rBrCr�rh)�required_grps_str�avl_grps�result�exp_grp_list�exp_pat�grps�grp_list�g�	grp_indexrO�missing_groups_strrSs            r�check_user_groupsr��s��
�F��L�
�Z�Z��
'�G��W�^�^�,=�>�>��~�~�/�0�6�6�q�9���f�f�U�B��D�	�*���z�z�#������D�!��I�I�)�,�6�7����v�&�H��n�n�S�!�H����	��A��v� �+����M�I�	���<��A������
����#�%�������%�%rc�p�Sn[RRU5(d[R	SU-5 O�[RRU5(a [RR
U5nOUn[RRU5(d[R	SU-5 OZ[R"U5RS-S:wa[R	SU-5 O[R	SU-5 Sn[R	SX4-5 U$)	NFz9Either %s file is not present or symbolic link is missingz%s library file is missing.�Hz;%s library file doesn't have user/group execute permission.z%s library file present.Tz%s library status: %d)	r1rVrWrBrC�islink�realpathr2�st_mode)�so_file_path�ret_val�	real_files   r�
check_libraryr�s����G�
�7�7�>�>�,�'�'��	�	�M�P\�]�^��7�7�>�>�,�'�'����(�(��6�I�$�I��w�w�~�~�i�(�(��I�I�3�y�A�B��g�g�l�#�+�+�b�0�R�
7��I�I�S�Wc�d�e��I�I�0�L�A�B��G��I�I�%��(?�?�@��Nrc�H�Sn[S5nU(axU(aq[RRUS5nU<SU<3nU(aUS-
n[RU5 [
U5up%[RSU-5 U$[RS5 U$)Nrr�z8 --cache=off --tries=3 --timeout=60 --output-document=- z --spider -Szwget returned: %dzwget not found�rQr1rVrYrBrCr�)�target�headr�r�r0r�s      r�download_via_wgetr�s���
�F���=�D�
�$��w�w�|�|�D�&�)��PT�V\�]����>�!�C��	�	�#���S�����	�	�%��.�/��M�	�	�	�"�#��Mrc�H�Sn[S5nU(axU(aq[RRUS5nU<SU<3nU(aUS-
n[RU5 [
U5up%[RSU-5 U$[RS5 U$)Nr�curlz. --output - --connect-timeout 5 --max-time 10 z --headzcurl returned: %dzcurl not foundr)rrr�rr0r�s      r�download_via_curlr	�s���
�F���=�D�
�$��w�w�|�|�D�&�)��FJ�F�S����9��C��	�	�#���S�����	�	�%��.�/��M�	�	�	�"�#��Mrc�0�Sn[S5nU(alU(ae[RRUS5nU<SU<3n[RU5 [
U5up[RSU-5 U$[RS5 U$)Nr�pingz -c1 -W1 -w10 zping returned: %dzping not foundr)rr�rr0r�s     r�check_network_via_pingr�sv��
�F���=�D�
�$��w�w�|�|�D�&�)��&*�F�3���	�	�#���S�����	�	�%��.�/��M�	�	�	�"�#��Mrc�b�[USS9nUS:wa[USS9nUS:wa[U5nUS:H$)NT)rr)rr	r)r.�ping_serverr�s   r�check_network_connectionr�s<��
�s��
.�F��!��"�3�T�2���a�K�+�K�8�F��a�K�rc���/nUH[nU(aUS-U-nSU;a2[R"U5nUHnURU5 M MJURU5 M] U$)Nr�r)r�r�)�
Files_List�
prefix_dir�Expanded_Files_listrK�f_full�files      r�
expandListr�sh����
����C��!�#�A��!�8��Y�Y�q�\�F���!�(�(��.��
 �&�&�q�)���rc�v�[[U5[U55$![a [X5s$f=fr)r@�floatr��r�r{s  r�comparer		s5����5��8�U�1�X�&�&�����1�y���s� �8�8c	��Ubf[RSU-5 UHHn[U5up#USLdMUH+n[RSX4<SU<S35 XCU4s s $ MJ [RS5 g)Nz*Searching for '%s' in running processes...TzFound: z (r8z	Not found)rr+)rBrC�Is_Process_Running)�package_mgrsrOr��process�pids     r�
check_pkg_mgrr 	sr�����	�	�>��M�N��A�!3�A�!6����T�>�&���	�	�g�l�C�"H�I� #�S�\�2�2� '���I�I�k��rc�t�U(dS04$0n[/SQ[S9n[SU/UR[S9n[/SQUR[S9nUR5Sn[RSU-5 U(abUR
5HJnS	U-n[R"U5up�S
U-n[R"U5up�U	(dMFX�U	'ML SU4$S04$![a@n[RSU-5 [[R-	S
U4 S04sSnA$SnAff=f)NF)�ps�-wr#�aux)r��grep)�stdinr�)r%z-vr%rzIs_Process_Running output = %s zecho '%s' | awk {'print $2'}z!echo '%s' | awk {'print $11,$12'}Tz"Execution failed: process Name[%s]zExecution failed:)rrr��communicaterBrCr�r�getstatusoutputr�rZ�printr�stderr)�process_namer�p1�p2�p3r�rOr0r�r�cmdliner�s            rrr#	s#����b�y�����
�,�T�
:��
�F�L�)����4�
H��
�)����4�
H�����!�!�$���	�	�3�V�;�<���&�&�(��4�a�7��'�7�7��<�
��9�1�<��!+�!;�!;�C�!@����3�#*�C�L�
)���=� ��"�9������	�	�6��D�E�
��
�
��/��2��b�y����s*�CC-�C-�)C-�-
D7�75D2�,D7�2D7c���[S-U-nU(aU(aUR5U-n[RSU<SU<S35 [	X15upESU:wa[RSU-5 gg)Nr,z	Removing z cmd = rzFailed to remove=%s )�RMDIR�
getAuthCmdrBrCr�)rVr��cksudor0r�r�s      rr<r<B	sc��	���t�	�C�
�+�
�
#�
#�
%�s�
*���I�I��c�2�3���*�N�F��F�{��	�	�(��-�.�rc�,^�"U4SjS[5nU$)z,Convert a cmp= function into a key= functionc�d>�\rSrSrSrU4SjrU4SjrU4SjrU4SjrU4Sjr	U4Sjr
S	rg
)zcmp_to_key.<locals>.KiO	c��Xlgr��obj)r�r8r�s   rr��cmp_to_key.<locals>.K.__init__P	s���Hrc�D>�T"URUR5S:$rr7�r��other�mycmps  �r�__lt__�cmp_to_key.<locals>.K.__lt__R	��������5�9�9�-��1�1rc�D>�T"URUR5S:�$rr7r;s  �r�__gt__�cmp_to_key.<locals>.K.__gt__T	r@rc�D>�T"URUR5S:H$rr7r;s  �r�__eq__�cmp_to_key.<locals>.K.__eq__V	��������5�9�9�-��2�2rc�D>�T"URUR5S:*$rr7r;s  �r�__le__�cmp_to_key.<locals>.K.__le__X	rGrc�D>�T"URUR5S:�$rr7r;s  �r�__ge__�cmp_to_key.<locals>.K.__ge__Z	rGrc�D>�T"URUR5S:g$rr7r;s  �r�__ne__�cmp_to_key.<locals>.K.__ne__\	rGrr7N)r�r�r�r�r�r>rBrErIrLrOr�)r=s�r�K�cmp_to_key.<locals>.KO	s+���	�	2�	2�	3�	3�	3�	3�	3rrQ)�object)r=rQs` r�
cmp_to_keyrTM	s���3�F�3�
�Hrc�l�USUS:�USUS:-
=(d USUS:�USUS:-
$)Nrr%r�rs  r�	levelsCmprVa	sG��
�a�D�1�Q�4�K�A�a�D�1�Q�4�K�(�I�Q�q�T�A�a�D�[�Q�q�T�A�a�D�[�,I�Irc���[S[[5S-[[5--5(a%S[[5S-[[5--$[S[[5-5(aS[[5-$[S[[5-5(aS[[5-$[S[[5S-[[5--5(a%S[[5S-[[5--$[S[[5-5(aS[[5-$[S5(ag[RS[-5 g)zbDetermine the pip command syntax available for a particular distro.
since it varies across distroszpip-%srQzpip%szpip-python%sz
pip-pythonzEpython pip command not found. Please install '%s' package(s) manuallyN)rQrt�MAJ_VER�MIN_VERrBrZ�depends_to_install_using_pipr�rr�find_pipr[e	s��
�X�s�7�|�C�'��G��4�
5�6�6���W��c�)�#�g�,�6�7�7�	�x��G��$�	%�	%���G��$�$�	�w�s�7�|�#�	$�	$��s�7�|�#�#�	�w��G��S�(��W��5�6�	7�	7���G��S�(��W��5�6�6�	�~�c�'�l�*�	+�	+��c�'�l�*�*�	�|�	�	���	�	�Y�Zv�v�wrc���[R"[R[R5nURS5 UR	5 g![R
a gf=f)N)z1.2.3.4�8TF)�socket�AF_INET�
SOCK_DGRAM�connectr=rZr�s r�	check_lanrby	sO����M�M�&�.�.�&�*;�*;�<��	�	�	�/�"�	���	����<�<����s�AA�A.�-A.c�2�URS5(aURS5nXS-SnUSSS:wa_SnSnU(aRURS5n[USUS-S	5nX0US
-US
-U--nXS
-U-S
-[U5nU(aMRUnU$)Nr�rNrrr�rr+r�r�r$)r�r�rh)rr��sizer5s    r�extract_xml_chunkre�	s����y�y�����	�	�*�%���!�G�H�~���A�a�y�C��������I�I�f�%�E��t�A�e�A�g���+�D��u�Q�w�u�Q�w�t�|�4�4�D��a����Q��s�4�y�1�D�	�d�
���Krc���SSKng![an[RU5 SnAOSnAff=fSSKng![an[RU5 SnAOSnAff=f[S5e)Nrr�r�z-GUI Modules PyQt4 and PyQt5 are not installed)r�r�rBrCr�)r�r�r�s   rr�r��	s`���������	�	�!�������������	�	�!�������E�
F�Fs%��
0�+�0�9�
A"�A�A"c��Sn[5n[RSU-5 U$![an[R	U5 SnAgSnAff=f)Nr+zUsing GUI Module %s)r�rBr/r�rZ)�
_ui_statusr�s  r�	ui_statusri�	sI���J��&�(�
����&��3�4�������	�	�!�����s�#(�
A�A�Ac��US:Xa SSKJn [RS5 US4$US:Xa SSKJn [RS5 US	4$g![a5n[RU5 [R"S5 SnAgSnAff=f![a5n[RU5 [R"S5 SnAgSnAff=f)
Nr6r)�QApplicationzUsing PyQt4r�rr7zUsing PyQt5r�)	�PyQt4.QtGuirkrBrCr�rZr�exit�PyQt5.QtWidgets)�
ui_toolkitrkr�s   r�
import_dialogrp�	s����U��	�0��I�I�m�$�!�5�)�)�
�u�	�		�4��I�I�m�$� �%�(�(�	
���	��I�I�a�L��H�H�Q�K�K��	���	��I�I�a�L��H�H�Q�K�K��	�s.�A�B�
B
�+B�B
�
C�+C
�
Cc�l�URS5n[U5nUSSHn[X#5nM U$)NrQr)r:�
__import__�getattr)�mod_name_as_str�
components�mod�comps    r�dyn_import_modrx�	s;�� �&�&�s�+�J�
�_�
%�C��1�2����c� ����Jrc���[R"U5$![aK SSKn[R
R
URS55 [R"U5s$f=f)Nr�platlib)�	importlib�
import_moduler��	sysconfigrrVr��get_path)�ext_namer}s  r�
import_extr��	sV��1��&�&�x�0�0���1�������	�*�*�9�5�6��&�&�x�0�0�1�s��AA-�,A-c���[RS5 SupSn[5nSSKnUR"5SR5nUR"5SnU(dSn[RS5 OSn[RS	5 U(aUS:XdUS:Xa�[S
S5nU(as[RS5 [US-U5up�U(dFU(a?[US-U5up�U(d'U(a UR5R5nSnU(d�[SS5R5R5R5nSnUR!5H:n	U	n
SU	;a#SR#U	R!S5SS5n
[%U
5nM< SU;aSnU(d�[SS5nUHunUR5R-S5(aUR!S5SnUR5R-S5(aUR!S5SnSnMw U(a�UR5R5n[RSU-5 UR/S5S:�dUR/S5S:�aSn[RSU-5 US:XaUSS :XaUSS:XaS!nOUS:XaUSS":XaUSS:XaS#nS$U;aS%nUS&S'nS(UR5;aUR!S5n
U
SS-U
S-nO[R1S)5 S*up[RS+[U5<S,[U5<35 X4$![aM SSKnUR5SR5nUR5SnURS5nGN�f=f![a Sn[RS
5 GN~f=f![&a& [)U
5nGM�![&a SnGM�f=ff=f![*a SnGN�f=f! SnGN=f)-NzDetermining distro...)r+�0.0FrrrDzNot able to detect distroTzAble to detect distroz&Not able to detect distro using python�redhat�arch�lsb_releasez/Using 'lsb_release -is/-rs' to determine distroz -isz -rsz
/etc/issuer�rQr$r��welcomez/etc/os-releasezname=rszversion=zDistro name=%s�redhatenterpriser�rhelzDistro version=%s�5z5.0�6z6.0�MX�mxlinuxr%��manjaroz%Failed to get the distro information.)rr�zdistro=z, distro_version=)rBrCrtr%�distr�r��distro�linux_distribution�distro_release_attrr�rQr�r[r-r8r:rYrr�r�r.r�r�r�)r�rD�ver�found�distro_release_namer%r��lsb_relr�r~r;�
os_releaser�r\s              r�get_distro_namer��	s����I�I�%�&��I�D��E��%��<��	E��=�=�?�1�%�+�+�-�D��-�-�/�!�$�C���E��I�I�1�2��E��I�I�-�.��D�H�$�����
�t�,����I�I�G�H��w��/��=�L�F��d�!�'�F�"2�K�@����#��)�)�+�+�+�-�C� �E��	$���c�*�/�/�1�7�7�9�?�?�A�D�
�E��Z�Z�\�����!�8���������b�q�!1�2�A�$���(�C�
"��D�����		��/��5�J�"���:�:�<�*�*�7�3�3��:�:�c�?�1�-�D��:�:�<�*�*�:�6�6��*�*�S�/�!�,�C���#�
��z�z�|�!�!�#���	�	�"�T�)�*��9�9�'�(�2�-����8�1D�r�1I��D��	�	�%��+�,��6�>�c�!�f��m��A��#�
��C�
�V�^��A��#�
�#�a�&�C�-��C��&�&��D�%�a��*�C���
�
��$��i�i��n�G��!�*�c�/�'�!�*�,�C��	���8�9��	���I�I�s�4�y��S��B�C��:���q�	E���,�,�.�q�1�7�7�9�D��+�+�-�a�0�C�"(�"<�"<�V�"D��		E���<����	�	�:�;�<��D"�$�$�!�!�f���%�$�#��$��$���	��E�	��8	��E�s��O3�6N�"O3�O3�:6Q�1P�BQ!�AO0�,O3�/O0�0O3�3!P�P�
Q�&P5�5Q�Q�Q�Q�Q�Q�!Q(c�B�SSKnSSKJn SnUR"S5nU"S5RnX4;aSnU$SnU$![
a6 U"S5RnN-! [RS5 Uss$=ff=f! [RS5 W$=f)	Nr)�getgrnamr��USER�wheelr�z can not get user group zunable to determine auth_type )r1r/r�rJ�gr_memr�rBr�)r1r��authType�user�memberss     r�readAuthTyper�6
s���3�� ����y�y�� ��	 ��w�'�.�.�G��?��H�
�O��H��O���	 �
 �"�6�*�1�1���
 ����3�5����	 ��3����1�2��O�sJ�B�A�B�B�
B�A �B� A=�9B�;B�=B�B�Br�)r})TFFrN)r+r+r+F)Tr)r,)Nr+TTr)Nr%r�)r�r+r+r+)NF)r+rr+r+)�rr1rrrr/r�r=r^r��select�timerE�errnor2rjr�r6�datetimer�r3�sixext.movesrrr	r
�sixextrrr
rrrr+rr{�xml.parsers.expat�parsersrgrfr�r%r$�dbusrrrr�rrr!�codesr#r�r�r1�RMr�r��HTTP_CHECK_TARGET�PING_CHECK_TARGET�
ERROR_NONE�ERROR_FILE_CHECKSUM�ERROR_UNABLE_TO_RECV_KEYS�ERROR_DIGITAL_SIGN_BAD�version_inforXrY�EOF�TIMEOUT�EXPECT_WORD_LISTr�rr�r�rOr�r�r@rLrOr`rqrvr�r�r�r�r�r�r�rrrr/r6r;�mkstemprFr�rQrSrSr�r�r�r�r�r�r�rlr�rrirkrrcr�encoderrrr'r-r)r2r6rDrIrKrqr�r��
hexversionr�r�r�r�rtrVr�r[r�r�r�r�r�r�rrr
rrr+�
USAGE_OPTIONS�USAGE_LOGGING1�USAGE_LOGGING2�USAGE_LOGGING3�USAGE_LOGGING_PLAIN�
USAGE_ARGS�USAGE_ARGS2�USAGE_DEVICE�
USAGE_PRINTER�
USAGE_BUS1�
USAGE_BUS2�
USAGE_HELP�USAGE_SPACE�USAGE_EXAMPLES�USAGE_NOTES�USAGE_STD_NOTES1�USAGE_STD_NOTES2�
USAGE_SEEALSO�USAGE_LANGUAGE�USAGE_LANGUAGE2�
USAGE_MODE�USAGE_NON_INTERACTIVE_MODE�USAGE_GUI_MODE�USAGE_INTERACTIVE_MODE�sys_confr�
USAGE_USE_QT3�
USAGE_USE_QT4�
USAGE_USE_QT5r?rErnrrrwr~r�r�r�r�r�r�r�r�r�r�r�rrr	rrrrr rr<rTrVr[rbrer�rirprxr�r�r�r�rr�<module>r�si��6�	�"�
���
�
�
�����
��	���
�V�V�a�a�a����%�%��O����N���4�4��J�
&��+�����
��
���
��
&��A��'�� ��
�
�������

�
�
�1�
��

�
�
�1�
���K�K��O�O��������
���
����$��	�A���J�J�q�"�$�$���	���1��

��*���:!��$��r�):�=�QS�CT�[_��*G��
� �F�$(�(�:(4�(4�X��* �E� � ��,;�;�*?�3�V�*0��%�%�N��BD�6�D�Pv�
� �,0�f
�.A<��L	H�����s�C�(�H��$�$�X�v�/?�/?�/F�/F�w�/O�P�K�����2�&�H��$�$�X�v�/?�/?�@�K�.�
��
��
H��%�"�2�S^�mo�p��
�5�*�(�(�M�M�`;�;�z$�$�P"�
�>�>�J���5��
E��j�j�G��j�j�G�
�Y�Y�F�)���K/�^'�T�6H�&H�$��C&��C&�L�&4�
�^��`��X��H��
;�
�1��g��e�
�
c�
�N�
�
G�
�&��4��.��Y��g��3�
�]��C��
,�
�i��X��]���<�<��\�5�1�U�:�G�M�=�M�=�M�
�\�\�+�|�U�3�u�<�=�M�G�M�=�M�
�\�\�+�|�U�3�u�<�=�M�=�M�G�M�
� =�a�H�"'�+�6

�(	� 9�x�/3��1�2*�`
�
�*��$�`&�B�.
�
��"3�@Q�����&�>/�
�(J�x�(�
� 
G� ��,�1�c�J��CP���O������N������J����&��&�&��r�����1�����d�0�0�0��b	�<�,�,�"J�T�J�2Q<�Q<�]<�s~�;Q1�R�R�R�R2�S�=S#�1Q=�<Q=�R�R�R�R�
R/�.R/�2S�
S�S �S �#%T�T

Filemanager

Name Type Size Permission Actions
CdmWifi.cpython-313.pyc File 16.36 KB 0644
LedmWifi.cpython-313.pyc File 32.9 KB 0644
__init__.cpython-313.pyc File 194 B 0644
avahi.cpython-313.pyc File 2.54 KB 0644
codes.cpython-313.pyc File 24.52 KB 0644
device.cpython-313.pyc File 119.56 KB 0644
dime.cpython-313.pyc File 4.41 KB 0644
exif.cpython-313.pyc File 32.61 KB 0644
g.cpython-313.pyc File 21.39 KB 0644
imageprocessing.cpython-313.pyc File 40.63 KB 0644
imagesize.cpython-313.pyc File 7.26 KB 0644
ldif.cpython-313.pyc File 18.57 KB 0644
local.cpython-313.pyc File 2.31 KB 0644
logger.cpython-313.pyc File 22.16 KB 0644
magic.cpython-313.pyc File 64.16 KB 0644
maint.cpython-313.pyc File 68.32 KB 0644
mdns.cpython-313.pyc File 12.97 KB 0644
mfpdtf.cpython-313.pyc File 11.25 KB 0644
models.cpython-313.pyc File 21.22 KB 0644
module.cpython-313.pyc File 28.83 KB 0644
os_utils.cpython-313.pyc File 2.97 KB 0644
password.cpython-313.pyc File 13.44 KB 0644
pkit.cpython-313.pyc File 15.27 KB 0644
pml.cpython-313.pyc File 26.85 KB 0644
queues.cpython-313.pyc File 18.9 KB 0644
services.cpython-313.pyc File 11.37 KB 0644
six.cpython-313.pyc File 27.04 KB 0644
sixext.cpython-313.pyc File 8.11 KB 0644
slp.cpython-313.pyc File 8.03 KB 0644
smart_install.cpython-313.pyc File 11.66 KB 0644
status.cpython-313.pyc File 74.51 KB 0644
strings.cpython-313.pyc File 38.94 KB 0644
tui.cpython-313.pyc File 18.18 KB 0644
utils.cpython-313.pyc File 115.18 KB 0644
validation.cpython-313.pyc File 5.31 KB 0644
vcard.cpython-313.pyc File 45.18 KB 0644
wifi.cpython-313.pyc File 24.22 KB 0644
Filemanager