403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /lib/python3.11/site-packages/ansible/executor/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /lib/python3.11/site-packages/ansible/executor/__pycache__/task_executor.cpython-311.pyc
�

���c����.�ddlmZmZmZeZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlmZddlmZmZmZmZmZmZddlmZddlmZddlmZddlm Z dd	l!m"Z"m#Z#dd
l$m%Z%ddl&m'Z'ddl(m)Z)dd
l*m+Z+ddl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2ddl3m4Z4ddl5m6Z6m7Z7ddl8m9Z9ddl:m;Z;m<Z<ddl=m>Z>m?Z?ddl@mAZAddlBmCZCmDZDeA��ZEd�ejF�G��D��ZHdgZIGd�deJ��ZKd�ZLd�ZMGd�d��ZNd�ZOdS)�)�absolute_import�division�print_functionN)�	constants)�AnsibleError�AnsibleParserError�AnsibleUndefinedVariable�AnsibleConnectionFailure�AnsibleActionFail�AnsibleActionSkip)�
TaskResult)�get_action_args_with_defaults)�boolean)�binary_type)�to_text�	to_native)�write_to_file_descriptor)�Conditional)�Task)�get_plugin_class)�
become_loader�cliconf_loader�connection_loader�httpapi_loader�netconf_loader�terminal_loader)�Templar)�AnsibleCollectionConfig�AnsibleCollectionRef)�listify_lookup_plugin_terms)�to_unsafe_text�wrap_var)�namespace_facts�clean_facts)�Display)�combine_vars�isidentifierc�"�g|]}d|v�d|v�
|��
S)�become�_pass�)�.0�xs  �C/usr/lib/python3.11/site-packages/ansible/executor/task_executor.py�
<listcomp>r/(s.��e�e�e�Q�h�a�>O�>O�T[�cd�Td�Td�q�Td�Td�Td��TaskExecutorc��eZdZdS)�TaskTimeoutErrorN)�__name__�
__module__�__qualname__r+r0r.r3r3-s�������Dr0r3c��t��N)r3)�signum�frames  r.�task_timeoutr;1s��
�r0c���t|t��s|Si}|���D]�}|d�kr�t|dt��r t|d���||d<�Jt|dt��r�fd�|dD��||d<��|d||d<��|S)z�
    Remove args with a value equal to the ``omit_token`` recursively
    to align with now having suboptions in the argument_spec
    �rc�0��g|]}t|�����Sr+)�remove_omit)r,�v�
omit_tokens  �r.r/zremove_omit.<locals>.<listcomp>Es#���G�G�G�Q�k�!�Z�8�8�G�G�Gr0)�
isinstance�dict�itemsr?�list)�	task_argsrA�new_args�is `  r.r?r?5s�����i��&�&�����H�
�_�_�
�
�"�"���Q�4�:����
��!��d�
#�
#�	"�(��1��z�:�:�H�Q�q�T�N�N�
��!��d�
#�
#�	"�G�G�G�G�!�A�$�G�G�G�H�Q�q�T�N�N��q�T�H�Q�q�T�N�N��Or0c�d�eZdZdZd�Zd�Zd�Zd�Zdd�Zdd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�ZdS)r1z�
    This is the main worker class for the executor pipeline, which
    handles loading an action plugin to actually dispatch the task to
    a given host. This class roughly corresponds to the old Runner()
    class.
    c	���||_||_||_||_||_||_||_d|_||_d|_	|j�
��dSr8)�_host�_task�	_job_vars�
_play_context�
_new_stdin�_loader�_shared_loader_obj�_connection�_final_q�_loop_eval_error�squash)	�self�host�task�job_vars�play_context�	new_stdin�loader�shared_loader_obj�final_qs	         r.�__init__zTaskExecutor.__init__Usf����
���
�!���)���#������"3��������
� $����
�������r0c�	��t�d|jjz��		|���}n #t
$r}d}||_Yd}~nd}~wwxYw|���t|��dk�r\|�|��}t|���}d|d<|D�]}d|vr"|dr|�
d��sd|d<|drd|vsd|vr
|dsd|d<d	|vrc|d	r[|�d
��}|�
d	��sd|d	<d|d<||j_n|jjr|s||j_d
D]U}||vrO||rG||vrg||<t||t��s||g||<||||z||<||=�V��|�
d	d��sd|d<|drd|d<n\tdddg���}nHt�d��|���}t�d��d|vrd|d<d�fd�	�t�d���|��}t�d��|	|j���S#t$$rYSt&$r4}t�dt)|��z��Yd}~Sd}~wwxYw#t*$r�}tdt-t)|d�����|jj���cYd}~	|j���S#t$$rYSt&$r4}t�dt)|��z��Yd}~Sd}~wwxYwd}~wt&$r�}tdt-dt3|d���z��t)t5j����d|jj���cYd}~	|j���S#t$$rYSt&$r4}t�dt)|��z��Yd}~Sd}~wwxYwd}~wwxYw#	|j���w#t$$rYwt&$r4}t�dt)|��z��Yd}~wd}~wwxYwxYw) a
        The main executor entrypoint, where we determine if the specified
        task requires looping and either runs the task with self._run_loop()
        or self._execute(). After that, the returned results are parsed and
        returned as a dict.
        zin run() - task %sNr)�resultsT�skipped�changedF�failed�_ansible_ignore_errorszOne or more items failed�msg)�warnings�deprecationszAll items completedzAll items skippedzNo items in the list)rcrb�skipped_reasonrazcalling self._execute()z_execute() done�surrogate_or_strictc���t|t��rt||���St|t��re|D]a}	�|||���||<�#t$r;|dkr1t
�d���||d���||<n�Y�^wxYwn:t|t��r%t|��D]\}}�||���||<�|S)N��errors�diffz{We were unable to decode all characters in the module return data. Replaced some in an effort to return as much as possible�surrogate_then_replace)	rBrr!rC�UnicodeError�display�warningrE�	enumerate)�resrm�k�idx�item�
_clean_ress     �r.rxz$TaskExecutor.run.<locals>._clean_res�s0����c�;�/�/�C�)�#�f�=�=�=�=���T�*�*�C� �&�&��
&�%/�Z��A��v�%F�%F�%F�C��F�F��+�&�&�&� �F�{�{�!(���1l�!m�!m�!m�)3��C��F�C[�)\�)\�)\��A��� %�!'��
&����&� ��T�*�*�C�%.�s�^�^�C�C�	��T�#-�:�d�6�#B�#B�#B��C����
s�A�AB�Bzdumping result to jsonzdone dumping result, returningzerror closing connection: %s�
simplerepr)�	nonstring)rdrf�_ansible_no_logz.Unexpected failure during module execution: %s�)rdrf�	exception�stdoutr{)rj)rq�debugrL�_uuid�_get_loop_itemsr	rT�len�	_run_looprC�get�pop�
ignore_errorsrBrE�_executerR�close�AttributeError�	Exceptionrrr"rN�no_logr�	traceback�
format_exc)	rVrD�e�item_resultsrtrw�item_ignore�arrayrxs	        @r.�runzTaskExecutor.runcs]���	�
�
�*�T�Z�-=�=�>�>�>�\	L�
*��,�,�.�.����+�
*�
*�
*���()��%�%�%�%�%�%�����
*����
� ��u�:�:��>�>�#'�>�>�%�#8�#8�L��|�4�4�4�C�&*�C�	�N� ,�0�0��$��,�,��i��,����QZ�I[�I[�,�-1�C�	�N��y�>�3�y��/D�/D��VZ�IZ�IZ�cg�hq�cr�IZ�-2�C�	�N�#�t�+�+��X��+�*.�(�(�3K�*L�*L�K�#&�7�7�8�#4�#4�G�04��H�
�-G��E�
�;F��
� 8� 8�!%��!9�G�+�G�;F��
� 8�&B�0�0�E�$��}�}��e��}�#(��#3�#3�13�C��J�'1�$�u�+�t�'D�'D�!@�37��;�-�D��K�-0��Z�$�u�+�-E��E�
�$(��K��0��7�7�8�U�3�3�;�%:��E�
��9�~�9�%8��E�
���u�d�Ka�km�n�n�n�C�C��
�
�7�8�8�8��m�m�o�o���
�
�/�0�0�0���#�#�!&��I��
�
�
�
�
�
�*
�M�M�2�3�3�3��*�S�/�/�C��M�M�:�;�;�;��
L�� �&�&�(�(�(�(��!�
�
�
����
L�
L�
L��
�
�=���
�
�J�K�K�K�K�K�K�K�K�����
L������	B�	B�	B��t��'�!�|�2T�2T�2T�)U�)U�gk�gy�hA�B�B�B�
B�
B�
B�
B�
B�

L�� �&�&�(�(�(�(��!�
�
�
����
L�
L�
L��
�
�=���
�
�J�K�K�K�K�K�K�K�K�����
L���������	y�	y�	y��t��2b�fo�pq�~J�gK�gK�gK�3L�*M�*M�")�)�*>�*@�*@�"A�"A�"�^b�^p�^w�y�y�y�
y�
y�
y�
y�
y�
L�� �&�&�(�(�(�(��!�
�
�
����
L�
L�
L��
�
�=���
�
�J�K�K�K�K�K�K�K�K�����
L��������	y�����
L�� �&�&�(�(�(�(��!�
�
�
����
L�
L�
L��
�
�=���
�
�J�K�K�K�K�K�K�K�K�����
L������s��A�K%�
A�
	A�K%�A�H!K%�?J�
K"�%	K"�.*K�K"�%
Q*�/7N�&Q*�'Q-�,M�
N�	N�*N
�
N�
Q*�AQ%�9Q*�:Q-�?P�
Q"�%	Q"�.*Q�Q"�%Q*�*Q-�-S�/R	�S�	
S�S�	S�*S
�S�
S�Sc�.��|j���|jd<|j���|jdvr7|jd�|j�����t
|j|j����d}|j�d��}|�|}�nX|jjr�|jj|j	j
vr�d}|jjdkrd}t|jj�|d���}|s�fd	�|D��}|j	j
�|jj|j��
��}dD]}||jj
vrn�t|d|d
z��t|�||jd�����}nnt#d|jjz���|jj�F��|jj��}t'|t(��st#d|z���|S)z�
        Loads a lookup plugin to handle the with_* portion of a task (if specified),
        and returns the items result.
        �ansible_search_path�r\�	variablesN�_ansible_loop_cacheT�first_foundF)�terms�templar�fail_on_undefined�convert_barec�>��g|]}��|���|��Sr+)�is_template)r,�tr�s  �r.r/z0TaskExecutor._get_loop_items.<locals>.<listcomp>�s-���!V�!V�!V��w�?R�?R�ST�?U�?U�!V�!�!V�!V�!Vr0)r\r�)�template�var�file�_subdir�s)r�r��wantlistzSUnexpected failure in finding the lookup named '%s' in the available lookup pluginsz�Invalid data passed to 'loop', it requires a list, got this instead: %s. Hint: If you passed a list/dict of just one element, try adding wantlist=True to your lookup invocation or use q/query instead of lookup.)rL�get_search_pathrMrP�get_basedir�appendrr��	loop_withrQ�
lookup_loaderr �loop�action�setattrr"r�rr�rBrE)rVrD�
loop_cache�fail�
loop_terms�mylookup�subdirr�s       @r.r�zTaskExecutor._get_loop_items�sY���15�
�0J�0J�0L�0L���,�-��<�#�#�%�%�T�^�<Q�-R�R�R��N�0�1�8�8���9Q�9Q�9S�9S�T�T�T������H�H�H�����^�'�'�(=�>�>�
��!��E�E�
�Z�
!� 	��z�#�t�'>�'L�L�L����:�'�=�8�8� �D�8�t�z��X_�sw�GL�M�M�M�
��W�!V�!V�!V�!V�Z�!V�!V�!V�J� �2�@�D�D�T�Z�EY�bf�bn�x�D�A�A��:���F����!2�2�2���3���)�V�c�\�:�:�:�!����J�$�.�cg��!h�!h�i�i���"�#x�{�|F�|P�$P�Q�Q�Q�
�Z�_�
(��$�$�T�Z�_�5�5�E��e�T�*�*�
�"�l�ns�t�����r0c
�
�|j}t|j|���}|jj�|���|jjj}|jjj}|jjj}|jjj	}|jjj
}|jjjpd|zdz}	||vr%t�
|j�d|�d���d}
d}t|��}g}
t|��D�]�\}}||d<|||<|r
||d	<|||<|rt|d
z||dk|d
z|k|||z
||z
d
z
d�|d
<|r||d
d<	||d
z|d
d<n#t $rYnwxYw|d
z
dkr||d
z
|d
d<||_|r|
rt%j|��nd}
	|j�dd���}|jj|_|j���}nI#t.$r<}|
�t3dt5|�������Yd}~��=d}~wwxYw||jc|_}||jc|_}|�|���}|j���}||jc|_}||jc|_}|p|j}|||<||d<|r
|||<||d	<|r|d
|d
<d|d<|�d��|d<	|�|	��|d<n?#t@$r2}|�!ddt5|��zd���Yd}~nd}~wwxYwtE|j#j$|jj%||���}|�&��s|�'��r|j(�)d|��n�|�*��r|j(�)d|��ndtW|jdd��r|j(�)d|��|jj,tZj.vr|j(�)d |��|
�|��||=|j/r�|j/j0|j/j1j0d!�}|j/j2r|j/j2j0|d"<|�3��D]8\}}tZj4�5||��D]}||vr||jvr||=��9���||j_|
S)#z�
        Runs the task with the loop items specified and collates the result
        into an array named 'results' which is inserted into the final result
        along with the item for which the loop ran.
        r��r�z{{z}}z: The loop variable 'z�' is already in use. You should set the `loop_var` value in the `loop_control` option for the task to something else to avoid variable collisions and unexpected behavior.F�ansible_loop_var�ansible_index_varr=r)�index�index0�first�last�length�revindex�	revindex0�ansible_loop�allitems�nextitem�previtemT)�exclude_parent�
exclude_tasks�rdrfN)r��_ansible_item_resultr�re�_ansible_item_labelz)Failed to template loop_control.label: %s��task_fields�v2_runner_item_on_failed�v2_runner_item_on_skippedrn�v2_on_file_diff�v2_runner_item_on_ok)�
connection�shellr))6rMrrPrL�loop_control�
post_validate�loop_var�	index_var�pause�extended�extended_allitems�labelrqrrr�rs�
IndexError�available_variables�time�sleep�copy�_parentrNrr�rCrr��
dump_attrsr�r�r�r	�updater
rK�namer��	is_failed�is_unreachablerS�
send_callback�
is_skipped�getattrr��C�_ACTION_INVENTORY_TASKSrR�
_load_name�_shellr)rD�config�get_plugin_vars)rVrD�	task_varsr�r�r��
loop_pauser�r�r��ran_oncer��	items_lenra�
item_indexrw�tmp_task�tmp_play_contextr�rtr��tr�
clear_plugins�plugin_type�plugin_namer�s                          r.r�zTaskExecutor._run_loops#���N�	�����C�C�C���
��-�-�g�-�>�>�>��:�*�3���J�+�5�	��Z�,�2�
��:�*�3�� �J�3�E���
�'�-�G����4�1G���y� � ��O�O�ko�ku�ku�ku�w�w�w�A�
B�
B�
B�������J�J�	��� )�%� 0� 0�m	/�m	/��J��,4�I�(�)�"&�I�h���
2�1:�	�-�.�'1�	�)�$��
R�'�!�^�(�'�1�_�&��N�i�7�'� )�J� 6�!*�Z�!7�!�!;�-�-�	�.�)�%�B�<A�I�n�-�j�9��<A�*�q�.�<Q�I�n�-�j�9�9��!�����D�������>�Q�&�&�<A�*�q�.�<Q�I�n�-�j�9�+4�G�'��
 �h�
 ��
�:�&�&�&�&���
��:�?�?�$�d�?�S�S��#'�:�#5�� �#'�#5�#:�#:�#<�#<� � ��%�
�
�
����t�4�W�Q�Z�Z�@�@�@�A�A�A����������
����'/��
�"�T�Z��6F��HZ�2�T�
�!1��-�-�)�-�4�4�C��*�/�/�1�1�K�&.��
�"�T�Z��6F��HZ�2�T�
�!1��.�x��F�!�C��M�&.�C�"�#��
5�!+��I��+4��'�(��
@�&/��&?��N�#�*.�C�&�'�,7�O�O�O�,L�,L�C�(�)�
�-4�-=�-=�e�-D�-D��)�*�*��+�
�
�
��
�
�"�F��QR���S���������������
������
���
� ��'�	���B��|�|�~�~�
L��!2�!2�!4�!4�
L��
�+�+�,F��K�K�K�K������
L��
�+�+�,G��L�L�L�L��4�:�v�u�5�5�G��M�/�/�0A�2�F�F�F��:�$�A�,E�E�E��M�/�/�0F��K�K�K��N�N�3�����(�#���
/�"&�"2�"=�!�-�4�?�!�!�
��#�*�Q�.2�.>�.E�.P�M�(�+�0=�0C�0C�0E�0E�/�/�,�K�� �x�7�7��[�Q�Q�/�/���)�+�+��4�>�0I�0I� )�#���/��#��
���sC�	E�
E+�*E+�.AG5�5
H;�?1H6�6H;�3L�
M�(M�MNc�:"�� �!�|��j}t�j|���� d}|���}	�j��j|� ����_�j�� ����jjs�j	j
�j_�j�|��n#t$r}|}Yd}~nd}~wwxYw�jj
}	�j�� |��s-t�d��t#ddd|�	��SnH#t$r;}�j�.t�t)|�����j��d}~wwxYw�j��j�|�gd}�jjrUt-|t.��rd}n=t-|t0��r(t3|d
d��}t-|t.��rd}|r|�|� _�jjt8jvrm�jj���}|�dd��}	|	st#dd�
��S� � |	��}	t#|	|���S�jjt8j!vr.�jj���}t#|���S	�j�� ���nK#t$r�tD$r4t#dd|t)tGj$�������cYSwxYwd�jjvr��jj�d��}
t-|
t"��rQt8j%rt�&d��|
�'�jj��|
�j_�jj
}i}�jjr5|�(di���(�jji��}n|}|� _|�(d���� � |d��}n�jj)}�j*rPt3�j*dd��r:�j*�+|g��r�jj�j*jjkr��,|� |���_*n-�j�j*_��-|� �j*����.|� ��}
|����!�j*��!���!� _�j��j�!� ����j*_t_�j*j0ot8j1�j*j2f��r��j*�3d���j_4t�5d�jj���t�5d�j*j6z�jj����j*�7��}tq�j|�jj9��}t�5d|z�jj���tu�j*d|��d|vrd|vrtvj<|d<��=�j*� ���\�_>}|�|j?}n�jj@}t�|�jj�jjB� �jjCjDjE����j_|�(d ��}|�$t��jj|���j_�jjGr �jjH}|�d!}n|d"krd#}n|d#z
}nd#}�jjI}|d"krd#}t�d$��d}t�d#|d#z��D�]�}t�d%��	�jj4rBt�jKt�jLt���}t�jN�jj4���j>�O�!�&��}�n�#t�t�f$rk}|jRcYd}~�jj4r3t�jNd"��t�jKt�jL|��}�j>�S��cSd}~wt�$r�}t#dt)|���'��cYd}~�jj4r3t�jNd"��t�jKt�jL|��}�j>�S��cSd}~wt�$r�}d(�jj�jj4fz}t#d|�
��cYd}~�jj4r3t�jNd"��t�jKt�jL|��}�j>�S��cSd}~wwxYw	�jj4r3t�jNd"��t�jKt�jL|��}�j>�S��n]#�jj4r3t�jNd"��t�jKt�jL|��}�j>�S��wxYwt�d)��||d*<�jjt8jVvrt�|��}�jjXrDt��jjX��std+�jjXz���|�!�jjX<�jjZd"k�r�jj[d"k�r|�(d,��s�|�(d-��s܉�\|� �!�.��}|�(d-��rX�j]�^d/t��j	j`�jj9|�j�a���0����nW�j]�^d1t��j	j`�jj9|�j�a���0����||d*<�� �!fd2�}�� �!fd3�}d4|v�r
�jjt8jbvr��jjt8jVvrf�jjr>�jjcr2d5�!vr"�!d5�'|d4��n�|d4�!d5<n��!�'|d4��nwt�|d4��}t��!�(d4i��t�|�����!d4<t8j%r"�!�'t�|����d-|vrd6|vr|d6d7vrd|d-<nd|d-<�jjGr||d8<d9|vrd|d9<�jjt8jVvrt�|��}�jjXr|�!�jjX<d,|vrMd9}	||��d-}||��n1#t$r$}d|d-<t)|��|d:|z<Yd}~nd}~wwxYw|d#kr�t��j�;��}�jjG|_h|�� �!��rn�||kr�d|d<<||d=<t�d>||fz���j]�^d?t��j	j`�jj9|�j�a���0����t�jj|����k�j*� ����_>���|d#kr
|d#z
|d8<d|d-<�jjt8jVvrt�|��}�jjXr||�jjX<d4|vrÉjjt8jbvr��jjt8jVvr|�'|d4��nwt�|d4��}t�|�(d4i��t�|����|d4<t8j%r"|�'t�|�����jjl��jjl|d@<�jjredA�jji|d5<|
D] }|�(|��|d5|<�!dBD].}||d5vr"||vr|�(|��|d5|<�/t�dC��|S)Dz�
        The primary workhorse of the executor system, this runs the task
        on the specified host (which may be the delegated_to host) and handles
        the retry/until and block rescue/always execution
        Nr�)rXr�r�r�z,when evaluation is False, skipping this taskFTzConditional result was False)rcrb�skip_reasonr{�orig_exc�_raw_paramsz,No include file was specified to the includer�)�include�include_args)r�)rcrdr{r}�_variable_paramsz�Using a variable for a task's 'args' is unsafe in some situations (see https://docs.ansible.com/ansible/devel/reference_appendices/faq.html#argsplat-unsafe)�ansible_delegated_vars�ansible_connection�	connected�persistent_command_timeoutzattempting to start connection�rWzusing connection plugin %szlocal domain socket path is %s�_socket_path�ansible_network_os�ansible_python_interpreter)r�r�)�
action_groups�omit�rr=zstarting attempt loopzrunning the handler�r�)�unreachablerfzRThe %s action failed to execute in the expected time frame (%d) and was terminatedzhandler run completer{z3Invalid variable name in 'register' specified: '%s'rbrd)�resultr�r��v2_runner_on_async_failedr��v2_runner_on_async_okc����jj�M�jjrCt�j���}�jj|_|�����|d<dSdSdS)N�r\rc)rL�changed_whenrrP�when�evaluate_conditional)r
�condrVr��	vars_copys  ���r.�_evaluate_changed_when_resultz<TaskExecutor._execute.<locals>._evaluate_changed_when_result�sd����:�*�6�4�:�;R�6�&�d�l�;�;�;�D� $�
� 7�D�I�(,�(A�(A�'�9�(U�(U�F�9�%�%�%�7�6�6�6r0c����jjrGt�j���}�jj|_|�����}|x|d<|d<nd}|S)Nr�failed_when_resultrdF)rL�failed_whenrrPrr)r
rrrVr�rs   ���r.�_evaluate_failed_when_resultz;TaskExecutor._execute.<locals>._evaluate_failed_when_result�sh����:�)�/�&�d�l�;�;�;�D� $�
� 6�D�I�)-�)B�)B�7�I�)V�)V�&�FX�X�F�/�0�6�(�3C�3C�).�&�)�)r0�
ansible_facts�_ansible_delegated_vars�rc)r�0�attemptsrcz%s_when_resultr�_ansible_retry�retrieszRetrying task, attempt %d of %d�v2_runner_retry�_ansible_notify�ansible_delegated_host)�ansible_host�ansible_port�ansible_userr�z'attempt loop complete, returning result)mrMrrPr�rN�set_task_and_variable_overriderLr��remote_addrrK�address�update_varsrr�rrqrrCrTr@r�delegate_torBr	rr�r�r�r��_ACTION_ALL_INCLUDE_TASKS�argsr�r��_ACTION_INCLUDE_ROLEr�r�r��INJECT_FACTS_AS_VARSrrr�r�r�rR�matches_name�_get_connection�_set_become_plugin�_set_connection_options�any�supports_persistence�USE_PERSISTENT_CONNECTIONS�force_persistence�
get_option�timeout�vvvv�	transport�get_options�start_connectionr�r��sys�
executable�'_get_action_handler_with_module_context�_handler�
resolved_fqcn�resolved_actionr�module_defaultsr��_play�_action_groupsr?�untilr�delay�range�signal�SIGALRMr;�alarmr�rrr
�cleanupr
r3�_ACTION_WITH_CLEAN_FACTSr"�registerr'�	async_val�poll�_poll_async_resultrSr�r
r�r��
_ACTION_DEBUG�delegate_factsr&r#r$rrr�r��_get_action_handler�notify)"rVr��context_validation_error�tempvarsr�r��raiseitr�r��include_file�variable_params�cvars�current_connection�plugin_vars�options�socket_path�module_context�module_defaults_fqcnrArrGr
�attempt�old_sigrfrr�af�condnamerru�requireshedr�rs"`                               @@r.r�zTaskExecutor._execute�sE���������I�����C�C�C��#'� ��>�>�#�#��	)�"&�!3�!R�!R�X\�Xb�nw�BI�!R�"J�"J�D��
��,�,�W�,�=�=�=��%�1�
D�15��1C��"�.�
��*�*�8�4�4�4�4���	)�	)�	)�()�$�$�$�$�$�$�����	)����
�#�*��	��:�2�2�7�H�E�E�
}��
�
�L�M�M�M��E�4�Ec�u{�|�|�|�|�
}���	�	�	��$�0��	�	�'�!�*�*�%�%�%��+�+������	����� �,��'�'�$�/��G��z�%�
(��6�8P�Q�Q�(�#�G�G�� 8�:L�M�M�(�&�'?��T�R�R�H�!�(�,D�E�E�(�"'���
/�.�.�'/��#��:��� ;�;�;��:�?�/�/�1�1�L�'�+�+�M�4�@�@�L��
]��4�-[�\�\�\�\�"�+�+�L�9�9�L���<�H�H�H�H��Z�
�!�"8�
8�
8��:�?�/�/�1�1�L��\�2�2�2�2�	w��J�$�$�W�$�5�5�5�5���	�	�	���	w�	w�	w���d�F�V]�^g�^r�^t�^t�Vu�Vu�v�v�v�v�v�v�	w��������0�0�"�j�o�1�1�2D�E�E�O��/�4�0�0�
2��)�B��O�O�%A�B�B�B��&�&�t�z��7�7�7�"1��
����"�����:�!�	��M�M�":�B�?�?�C�C�D�J�DZ�\^�_�_�E�E��E�&+��#��9�9�)�*�*�6�!(�!1�!1�%�8L�2M�!N�!N���!%��!6��� �	F��D�,�k�5�A�A�	F��$�1�1�3E�2F�G�G�	F�
�"�.�$�2B�2P�2\�\�\�#�3�3�E�7�DV�W�W�D���.2�-?�D��*��#�#�E�7�D�4D�E�E�E��2�2�5�'�B�B���N�N�$�$�	���$�$�Y�/�/�/�&/��#�*.�);�)Z�)Z�`d�`j�v�JQ�)Z�*R�*R���&���!�6�W�1�;W�Z^�Zj�Z|�}�~�~�	C�)-�)9�)D�)D�Ea�)b�)b�D��&��L�L�9��@R�@^�L�_�_�_��L�L�5��8H�8R�R�Y]�Yk�Yw�L�x�x�x��&�2�2�4�4�G�*�4�+=�w��
�HX�Y�Y�K��L�L�9�K�G�d�N`�Nl�L�m�m�m��D�$�n�k�B�B�B� �5�(�(�-I�QV�-V�-V�25�.�E�.�/�)-�(T�(T�`d�`p�{B�(T�)C�)C�%��
�~��%�#1�#?� � �#'�:�#=� �8� �$�*�/�4�:�3M�w��*�,�2�A�
�
�
��
���]�]�6�*�*�
��!�)�$�*�/�:�F�F�D�J�O��:��		��j�(�G�������A�������1�����G��
� ���1�9�9��E��
�
�-�.�.�.����Q��!��,�,�Z	(�Z	(�G��M�M�/�0�0�0�
(��:�%�5�$�m�F�N�L�I�I�G��L���!3�4�4�4���*�*�Y�*�?�?����%�'8�9�
 �
 �
 ��x�������:�%�E��L��O�O�O�$�m�F�N�G�D�D�G��
�%�%�'�'�'�'�'�'�����,�
>�
>�
>���'�!�*�*�=�=�=�=�=�=�=�=�
�:�%�E��L��O�O�O�$�m�F�N�G�D�D�G��
�%�%�'�'�'�'�'�'�����$�
2�
2�
2�j�nr�nx�n�BF�BL�BT�nU�U���4�S�1�1�1�1�1�1�1�1��:�%�E��L��O�O�O�$�m�F�N�G�D�D�G��
�%�%�'�'�'�'�'�'�����
2������:�%�E��L��O�O�O�$�m�F�N�G�D�D�G��
�%�%�'�'�'�'���:�%�E��L��O�O�O�$�m�F�N�G�D�D�G��
�%�%�'�'�'�'�����M�M�0�1�1�1�)/�F�$�%��z� ��(B�B�B�!�&�)�)���z�"�
8�#�D�J�$7�8�8�t�&�'\�_c�_i�_r�'r�s�s�s�17�	�$�*�-�.��z�#�a�'�'��:�?�Q�&�&�v�z�z�)�/D�/D�&�V�Z�Z�X`�Ma�Ma�&�!�4�4�F�G�_h�4�i�i�F��z�z�(�+�+�
M��
�3�3�7�&�t�z��'+�z�'7�'-�37�:�3H�3H�3J�3J�L�L�L�M�M�M�M��
�3�3�3�&�t�z��'+�z�'7�'-�37�:�3H�3H�3J�3J�L�L�L�M�M�M�-3��(�)�
V�
V�
V�
V�
V�
V�
V�
*�
*�
*�
*�
*�
*�
*��&�(�(�T�Z�->�a�o�-U�-U��:�$��(B�B�B��z�-�B�$�*�2K�B�4�	�A�A�%�&?�@�G�G���H_�`�`�`�`�CI�/�CZ�I�&?�@�@�!�(�(���)@�A�A�A�A�"�&��"9�:�:�B�1=�i�m�m�O�]_�>`�>`�bq�rt�bu�bu�1v�1v�I�o�.��-�:�!�(�(��R���9�9�9��v�%�%��6�>�>�f�T�l�(�&B�&B�'+�F�8�$�$�',�F�8�$��z��
-�%,��z�"���&�&�$)��y�!��z� ��(B�B�B�!�&�)�)���z�"�
8�17�	�$�*�-�.���&�&�$��E�1�1�&�9�9�9�'�H�0�0��8�8�8�8��#�E�E�E�'+�F�8�$�:A�!�*�*�F�+�h�6�7�7�7�7�7�7�����E������{�{�"�$�,�7�7�7�� �J�,��	��,�,�W�i�@�@�o��E���(�(�37��/�0�,3��y�)��
�
�&G�7�T[�J\�&\�]�]�]��
�3�3�-�&� $�
�� $�
� 0� &�,0�J�,A�,A�,C�,C�	�������
�5�)�)�)�(,�(@�(@�D�L\�fm�(@�(n�(n��
����{�{�%,�q�[��z�"�#'��x� ��:��A�$>�>�>��f�%�%�F��:��	4�-3�I�d�j�)�*��f�$�$���):�!�/�)Q�)Q��z� �A�$>�>�>�� � ���!8�9�9�9�9��f�_�5�6�6��-9�)�-�-��Y[�:\�:\�^m�np�^q�^q�-r�-r�	�/�*��)�6��$�$�[��_�_�5�5�5�
�:��(�(,�
�(9�F�$�%�
�:�!�	\�1I�4�:�Ka�0b�F�,�-� �
D�
D��7<�y�y��|�|��0�1�!�4�4� f�
\�
\���f�-F�&G�G�G�K�[`�L`�L`�EJ�Y�Y�{�E[�E[�F�4�5�k�B��	�
�
�?�@�@�@��
s��A>B9�9
C�C
�
C�AD(�(
E-�26E(�(E-�:K�AL�L�(A)a�i�g1�$c
�*g1�+i�

g1�e�4g1�5i�
g1�!+g,�g1�
i�,g1�1i�Aj(�x'�'
y�1y�yc
��|�|j}|�d��}|�tdd���Stjtdd|i|jj�����}|jj�d	||j	|j
|j||j�
��}|jj}|dk�r�tj|jj��	|�|���}t#|�d
d����dksd|vr|�dd��sd|vr�n"	||jjz}|j�dt)|jj|j||��������n�#t2$r�}	t4�dt9|	��z��t4�dt9t=j����z��	|j	� ��n#tB$rYnwxYw||jjz}|dkr�Yd}	~	nd}	~	wwxYw|dk���t#|�d
d����dkrF|�d��rtdd|jjz|���Stdd|���Stj|dd�|jjd���}
|jj�d	|
|j	|j
|j||j�
��}|�|���|�"d���|�"d���|S)z<
        Polls for the specified JID to be complete
        N�ansible_job_idTz(No job id was returned by the async taskr��async_status�jid)r�r,�environmentzansible.legacy.async_status)rXr�rZr\r�r]rr�finishedr=rd�_ansible_parsedFrb�v2_runner_on_async_pollr�z-Exception during async poll, retrying... (%s)zAsync poll exception was:
%sz;async task did not complete within the requested time - %ss)rdrf�async_resultz'async task produced unparseable resultsrL)rj�mode)rirk)�force)#rMr�rCr�loadrLrkrQ�
action_loaderrRrNrPrOr�r�rPr��intrSr�r
rKr�r�r�r�rqr9rrr�r��resetr�rL)rVr
r�r��	async_jid�
async_task�
async_handler�	time_leftror��cleanup_task�cleanup_handlers            r.rQzTaskExecutor._poll_async_result4s���
����I��J�J�/�0�0�	����t�)S�T�T�T�T��Y�t�>��	�@R�`d�`j�`v�w�w�w�x�x�
��/�=�A�A�)���'��+��<��"�5�B�
�
�
��J�(�	��!�m�m��J�t�z��'�'�'�$
�,�0�0�9�0�E�E����(�(��Q�7�7�8�8�A�=�=�!�\�1�1�l�6F�6F�GX�Z_�6`�6`�1�!�\�1�1��2�$�T�Z�_�,�	��
�+�+�-���
��"�(�$�$.�$9�$9�$;�$;�	��������#�
�
�
����L�w�WX�z�z�Y�Z�Z�Z��
�
�=��	�H\�H^�H^�@_�@_�_�`�`�`��!�-�3�3�5�5�5�5��%�����D������T�Z�_�,�	���>�>��"�>�>�>�>�����
�����!�m�m�R�|���
�A�.�.�/�/�1�4�4���� 1�2�2�
s��4�-j�mq�mw�nB�.B�Q]�^�^�^�^��4�-V�eq�r�r�r�r� �9� )� )�%�%�$(�:�#9�����L�#�5�C�G�G�-�!��+�!�/��|��"&�"9�H���O�
���)��4�4�4��#�#�$�#�/�/�/��!�!��!�-�-�-��s>�AF	�	
I�A%H>�9H�H>�
H �H>�H � H>�>Ic�V�tj|��}|std|z���|S)Nz�Invalid become method specified, could not find matching plugin: '%s'. Use `ansible-doc -t become -l` to list available plugins.)rr�r)rVr�r)s   r.�_get_becomezTaskExecutor._get_become�sD���"�4�(�(���	c�� [�]a� b�c�c�
c��
r0c
�r�||j_|jj}|jj�||j|j|jjttj
�������\}}|std|z���|�|||��|j�
|��|S)z�
        Reads the connection property for the host, and returns the
        correct connection object from the list of connection plugins
        )�	task_uuid�ansible_playbook_pidz(the connection plugin '%s' was not found)rNr�rQr�get_with_contextrOrLr�r�os�getppidrr1�set_attributes_from_plugin)rVr[r�r\�	conn_typer��plugin_load_contexts       r.r0zTaskExecutor._get_connection�s���);���%�
�&�1�	�*.�*A�*S�*d�*d�����O��j�&�!(�����!6�!6�+e�+
�+
�'�
�'��	W��I�I�U�V�V�V�����w�
�;�;�;�	
��5�5�j�A�A�A��r0c��|�d���)t|�|d����}n|jj}|rd|�d��r/|�|�|d����}n"|�|jj��}nd}	|�|��n#t$rYnwxYw|rht|jdd��r1t|dd��s td|j�d|j�d����|j
�|j��dSdS)	N�ansible_become�ansible_become_method�require_ttyF�has_ttyzThe 'zV' connection does not provide a TTY which is required for the selected become plugin: �.)r�rr�rLr)r}�
become_method�set_become_pluginr�r�rr�r�rN)rVr[r�r�r)�
become_plugins      r.r1zTaskExecutor._set_become_plugin�s}���9�9�%�&�&�2��W�-�-�e�4D�.E�F�F�G�G�F�F��Z�&�F��		!��y�y�0�1�1�
K� $� 0� 0��1A�1A�%�H_�B`�1a�1a� b� b�
�
� $� 0� 0���1I� J� J�
�
�
!�M�	��(�(��7�7�7�7���	�	�	��D�	�����
	E��z�(�-��?�?�
��PZ�\e�gl�Hm�Hm�
�"�l�,6�,A�,A�,A�=�CU�CU�CU�W����
��0�0��1C�D�D�D�D�D�
	E�
	Es�4C
�

C�Cc�^�	t|jd|z��}n%#t$rt|j|��}YnwxYw|dkrd}tj�||j��}i}|D]$}||vr|�||��||<�%|�||���|S)Nz_%s�
ssh_type_connr���	task_keys�var_options)	r�rRr�r�r�r�r�r��set_options)	rVr�r�r�r��plugin�option_varsr^rus	         r.�_set_plugin_optionsz TaskExecutor._set_plugin_options�s���	<��T�-�u�{�/B�C�C�F�F���	<�	<�	<��T�-�{�;�;�F�F�F�	<�����/�)�)�&�K��h�.�.�{�F�<M�N�N�����	<�	<�A��I�~�~�$�-�-�i��l�;�;���
�����Y�G��D�D�D��s��=�=c��g}tj�d|jj��}|�|��dii}|D]$}||vr|�||��||<�%t|jdd��rO|D]L}|�d|jjz��r(||vr$|�||��|d|<�M|j	�
��}|jj|d<|jj
r|jj
|d<|d=|j�||�	��|�|�d
|||����|jj��|jjr|jj|d<|�|�d|||����d
D]F}	t%|j||jj�|�����7#t($rY�CwxYw|jjj|j_t|jdd��}	|	�f|	�d��dkrMt/|	�d����}
|�|�|
|||����t|jdd��}|�+|�|�d|||����|S)Nr��_extras�allow_extrasFzansible_%s_r8�passwordrr�r��become_passr))�become_user�become_flags�
become_exer��_sub_plugin�type�external�objr�)r�r�r�rRr��extendr�r��
startswithrLr�rNr8r�r�r�r)r�r�r7�KeyError�promptr�r)rVr�r��varnamesr�r^rur��option�subr��sub_conns            r.r2z$TaskExecutor._set_connection_options�s�����h�.�.�|�T�=M�=X�Y�Y������$�$�$��b�/���	<�	<�A��I�~�~�$�-�-�i��l�;�;���
���4�#�^�U�;�;�	K��
K�
K���<�<�
��0@�0K� K�L�L�K�QR�Za�Qa�Qa�,3�,<�,<�Y�q�\�,J�,J�G�I�&�q�)���J�)�)�+�+�	� $�1�9�	�)����&�	@�
%)�$6�$?�I�j�!�
�i� �	
��$�$�y�g�$�N�N�N�����0�0��)�W�i�X�X�Y�Y�Y���"�.��!�-�
J�
,0�+=�+I�	�-�(��O�O�D�4�4�X�y�'�S\�]�]�^�^�^�W�
�
����D�.���8H�8O�8Z�8Z�[a�8b�8b�c�c�c�c�������D�����(,�(8�(?�(F�D��%��d�&�
�t�<�<���?�s�w�w�v���*�<�<�*�3�7�7�5�>�>�:�:�K��O�O�D�4�4�[�)�W�V_�`�`�a�a�a��4�+�_�d�C�C�����O�O�D�4�4�_�i�QX�Zc�d�d�e�e�e��s�63G*�*
G7�6G7c�:�|�||��dS)zX
        Returns the correct action plugin to handle the requestion task action
        r)r?)rVr�r�s   r.rTz TaskExecutor._get_action_handlerBs ���;�;�J��P�P�QR�S�Sr0c
�|�|jj�d��\}}}|�d��d}|rd�||��}n|}|jj}|jj�|jj|���}	|	j	r|	j
sd}	|	�|	j
}
n�|jj�|jj|���r
|jj}
n�t|tjv|jj�||���f��rH|}
t �d�|
|jj���|jj�	��nd
}
d}|jj�|
|j||j|j||j|���}|st-d|
z���||	fS)
zo
        Returns the correct action plugin to handle the requestion task action and the module context
        r��_rz{0}.{1})�collection_listNz1Using network group action {handler} for {action})�handlerr�rzansible.legacy.normal)rXr�rZr\r�r]r�zthe handler '%s' was not found)rLr��
rpartition�split�format�collectionsrQ�
module_loader�find_plugin_with_context�resolved�
action_pluginrs�
has_plugin�allr��NETWORK_GROUP_MODULESrqr9rNr'r�rPr)rVr�r��module_collection�	separator�module_name�
module_prefix�network_actionr��module�handler_namer�s            r.r?z4TaskExecutor._get_action_handler_with_module_contextHs��59�J�4E�4P�4P�QT�4U�4U�1��9�k�#�)�)�#�.�.�q�1�
��	+�'�-�-�.?��O�O�N�N�*�N��j�,���(�6�O�O��J��{�P�
�
����	�f�&:�	��F���!�/�L�L�
�
$�
2�
=�
=�d�j�>O�al�
=�
m�
m�
	��:�,�L�L�
�-�1�#:�:�D�<S�<a�<l�<l�m{�NY�<l�=Z�=Z�[�\�\�	�)�L��L�L�L�S�S�\h�[_�[e�[l�T�n�n�"�0�<�
�
>�
>�
>�
>�
3�L��K��)�7�;�;����!��+��<��"�5�'�<�	
�	
���	P��?�,�N�O�O�O����r0r8)r4r5r6�__doc__r_r�r�r�r�rQr}r0r1r�r2rTr?r+r0r.r1r1Ls�����������fL�fL�fL�P6�6�6�pM�M�M�^`�`�`�`�D
g �g �g �g �R������>"E�"E�"E�H���*D�D�D�LT�T�T�3�3�3�3�3r0c
��
�tjp.tj�t
jd��g}|�tj�	dd���
tj����|D]p}tj�|d��}tj�
|��r/t�d�|����n�qt#d���tj���}|�t)j��t-j��t/tj�t0j����t5j��t7j��t9j��t;j��d���g}tjr%|�dd	tjzz��t
j }tCj"��\}	}
tGj$||g|�tKtj&�����tK|���|
tFj'tFj'|�
��}tj(|
��tSj*|	��}tSj*|	��}
|
dtRj+z|
d<	tSj,|	tRj-|
��t]|	|��t]|	|�/����|�0��\}}tSj,|	tRj-|��n%#tSj,|	tRj-|��wxYwtj(|	��|j1dkr$tej3tK|d�
����}na	tej3tK|d�
����}n<#titdj5dtl��$rdtK|d�
��i}YnwxYwd|vr�|dD]�\}}|dkrt�|d����(|dvr&tit|��||j7����Rtqt|��rtit|��|����t�||j7�����d|vrktjdkrF|�	d��r1d|dz}t�|tj9���t#|d���|dS)z*
    Starts the persistent connection
    r�PATHr|zansible-connectionz$Found ansible-connection at path {0}ziUnable to find location of 'ansible-connection'. Please set or check the value of ANSIBLE_CONNECTION_PATH)�ANSIBLE_BECOME_PLUGINS�ANSIBLE_CLICONF_PLUGINS�ANSIBLE_COLLECTIONS_PATH�ANSIBLE_CONNECTION_PLUGINS�ANSIBLE_HTTPAPI_PLUGINS�ANSIBLE_NETCONF_PLUGINS�ANSIBLE_TERMINAL_PLUGINSz-%sr@)�stdinr~�stderr�envrrorl�JSONDecodeError�error�messages�logT)�log_only)rr@�vv�vvvr9�vvvvv�vvvvvvr�r}zThe full traceback is:
)�colorr_):r��ANSIBLE_CONNECTION_PATHr��path�dirnamer=�argvr��environr�r��pathsep�join�isfilerqr9r�rr�r�r�print_pathsrrr�collection_pathsrrrr�	verbosityr�r>�pty�openpty�
subprocess�Popenrr��PIPEr��termios�	tcgetattr�ICANON�	tcsetattr�TCSANOWr�	serialize�communicate�
returncode�json�loadsr��decoder�
ValueErrorr'�hasattr�COLOR_ERROR)rZr^r�candidate_pathsr�r�r�r��python�master�slave�p�old�newr~r�r
�level�messagerfs                    r.r<r<~s����0�P�B�G�O�O�C�H�Q�K�4P�4P�Q�O����2�:�>�>�&�"�5�5�;�;�B�J�G�G�H�H�H�"�W�W���W�\�\�'�3G�H�H��
�7�>�>�,�-�-�	��L�L�?�F�F�GY�Z�Z�[�[�[��E�	��V�W�W�	W�
�*�/�/�
�
�C��J�J�
#0�";�"=�"=�#1�#=�#?�#?�$-�b�j�o�o�>U�>f�.g�.g�$h�$h�&7�&C�&E�&E�#1�#=�#?�#?�#1�#=�#?�#?�$3�$?�$A�$A�������I���<�����#��(9�"9�:�;�;�;�
�^�F��K�M�M�M�F�E���	�#�[�i�[������1F�1F�[��PY�HZ�HZ�[��J�O�J�O��	�	�	�A��H�U�O�O�O�
�
�F�
#�
#�C�
�
�F�
#�
#�C�
��V�w�~�o�
%�C��F�8���&�'�/�3�7�7�7� ���1�1�1� ���)?�)?�)A�)A�B�B�B��=�=�?�?������&�'�/�3�7�7�7�7����&�'�/�3�7�7�7�7�����H�V�����|�q�����G�F�3K�L�L�L�M�M���	Q��Z���7O� P� P� P�Q�Q�F�F���t�|�%6�
�C�C�	Q�	Q�	Q��w�v�6N�O�O�O�P�F�F�F�	Q�����V���$�Z�0�		I�		I�N�E�7���~�~�����$��7�7�7�7��P�P�P�'����'�'��l�6N�O�O�O�O�O��7�E�*�*�I�+�G�G�U�+�+�G�4�4�4�4��L�L��|�/G�L�H�H�H�H��&�����q� � ��z�z�+�&�&�
:�0�6�+�3F�F������1�=��9�9�9��6�'�?�+�+�+��-� � s�/A)M9�9"N�"#P�6P?�>P?)P�
__future__rrrr��
__metaclass__r�r�r�r�rIr�r=r�r��ansiblerr��ansible.errorsrrr	r
rr�ansible.executor.task_resultr
�ansible.executor.module_commonr�)ansible.module_utils.parsing.convert_boolr�ansible.module_utils.sixr�ansible.module_utils._textrr�ansible.module_utils.connectionr�ansible.playbook.conditionalr�ansible.playbook.taskr�ansible.pluginsr�ansible.plugins.loaderrrrrrr�ansible.templater�ansible.utils.collection_loaderrr�ansible.utils.listifyr �ansible.utils.unsafe_proxyr!r"�ansible.vars.cleanr#r$�ansible.utils.displayr%�ansible.utils.varsr&r'rq�MAGIC_VARIABLE_MAPPINGrD�RETURN_VARS�__all__�
BaseExceptionr3r;r?r1r<r+r0r.�<module>rsa��C�B�B�B�B�B�B�B�B�B��
�	�	�	�	�
�
�
�
���������
�
�
�
�����
�
�
�
���������"�"�"�"�"�"�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�3�3�3�3�3�3�H�H�H�H�H�H�=�=�=�=�=�=�0�0�0�0�0�0�9�9�9�9�9�9�9�9�D�D�D�D�D�D�4�4�4�4�4�4�&�&�&�&�&�&�,�,�,�,�,�,�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�$�$�$�$�$�$�Y�Y�Y�Y�Y�Y�Y�Y�=�=�=�=�=�=�?�?�?�?�?�?�?�?�;�;�;�;�;�;�;�;�)�)�)�)�)�)�9�9�9�9�9�9�9�9�
�'�)�)��f�e�!�2�8�8�:�:�e�e�e���
��	�	�	�	�	�}�	�	�	�������.o�o�o�o�o�o�o�o�d!U!�U!�U!�U!�U!r0

Youez - 2016 - github.com/yon3zu
LinuXploit