OwlCyberSecurity - MANAGER
Edit File: reduction.cpython-38.pyc
U ����e5d(%����������������������@���s��d�dl�mZ�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZddl m Z �ddddd gZejd kp�e ed�o�e ed�o�e ejd �ZG�dd��dej�ZejZd6dd �Zejd k�redddg7�Zd�dlZd7dd�dd�Zdd��Zdd��Zdd��ZG�dd��de�ZnHedddg7�Zd�dlZejdkZdd��Zdd��Zd d��Zd!d��Zd"d��Zd#d$��ZG�d%d&��d&�Z ee!e ��j"�e��d'd(��Z#ee!e$j%�e#��ee!e&j'�e#��d)d*��Z(d+d,��Z)eej*e(��ejd k�r�d-d.��Z+d/d0��Z,eeje+��nd1d.��Z+d2d0��Z,eeje+��G�d3d4��d4ed5�Z-dS�)8�����)�ABCMetaN����)�context�send_handle�recv_handle�ForkingPickler�register�dump�win32ZCMSG_LEN� SCM_RIGHTS�sendmsgc�����������������������sJ���e�Zd�ZdZi�ZejZ��fdd�Ze dd���Z e d dd��Zej Z ���ZS�) r���z)Pickler subclass used by multiprocessing.c��������������������s*���t���j|���|�j���|�_|�j�|�j��d�S��N)�super�__init__�_copyreg_dispatch_table�copy�dispatch_table�update�_extra_reducers��self�args�� __class__���1/usr/lib64/python3.8/multiprocessing/reduction.pyr���&���s����zForkingPickler.__init__c�����������������C���s���||�j�|<�dS�)z&Register a reduce function for a type.N)r���)�cls�type�reducer���r���r���r���+���s����zForkingPickler.registerNc�����������������C���s ���t����}|�||��|��|���S�r ���)�io�BytesIOr ���� getbuffer)r����obj�protocolZbufr���r���r����dumps0���s����zForkingPickler.dumps)N)�__name__� __module__�__qualname__�__doc__r����copyregr���r���r����classmethodr���r$����pickle�loads� __classcell__r���r���r���r���r���!���s��� c�����������������C���s���t�||��|���dS�)z3Replacement for pickle.dump() using ForkingPickler.N)r���r ���)r"����filer#���r���r���r���r ���:���s����� DupHandle� duplicate�steal_handleF)�source_processc����������������C���s6���t����}|dkr|}|dkr |}t��||�|d|t�j�S�)z<Duplicate a handle. (target_process is a handle not a pid!)Nr���)�_winapi�GetCurrentProcess�DuplicateHandle�DUPLICATE_SAME_ACCESS)�handleZtarget_processZinheritabler2���Zcurrent_processr���r���r���r0���G���s���������c�������������� ���C���sF���t��t�jd|��}z$t��||t����ddt�jt�jB��W��S�t��|��X�dS�)z5Steal a handle from process identified by source_pid.Fr���N)r3����OpenProcess�PROCESS_DUP_HANDLE�CloseHandler5���r4���r6����DUPLICATE_CLOSE_SOURCE)Z source_pidr7���Zsource_process_handler���r���r���r1���S���s���������� �c�����������������C���s���t�|tj|�}|��|��dS��z&Send a handle over a local connection.N)r/���r3���r6����send)�connr7����destination_pidZdhr���r���r���r���_���s����c�����������������C���s���|��������S�)�)Receive a handle over a local connection.)�recv�detach)r>���r���r���r���r���d���s����c�������������������@���s"���e�Zd�ZdZddd�Zdd��ZdS�)r/���zPicklable wrapper for a handle.Nc�������������� ���C���s\���|d�krt����}t�tjd|�}zt�t���|||dd�|�_W�5�t�|��X�||�_ ||�_ d�S�)NFr���)�os�getpidr3���r8���r9���r:���r5���r4����_handle�_access�_pid)r���r7����access�pid�procr���r���r���r���j���s��������� zDupHandle.__init__c�������������� ���C���sZ���|�j�t���kr|�jS�t�tjd|�j��}z"t�||�jt� ��|�j dtj�W��S�t�|��X�dS�)z1Get the handle. This should only be called once.FN)rG���rC���rD���rE���r3���r8���r9���r:���r5���r4���rF���r;���)r���rJ���r���r���r���rB���y���s���� ������zDupHandle.detach)N)r%���r&���r'���r(���r���rB���r���r���r���r���r/���h���s��� �DupFd�sendfds�recvfds�darwinc�����������������C���sV���t���d|�}tt|�d�g�}|��|gtjtj|fg��trR|��d�dkrRt d��dS�)z,Send an array of fds over an AF_UNIX socket.�i����r�������Az%did not receive acknowledgement of fdN) �array�bytes�lenr����socket� SOL_SOCKETr����ACKNOWLEDGErA����RuntimeError)�sockZfds�msgr���r���r���rL�������s ����c�������������� ���C���s��t���d�}|j|�}|��dt�|��\}}}}|s:|s:t�z�trJ|��d��t|�dkrft dt|����|d�\}} } |tj kr�| tjkr�t| �|j�dkr�t�|� | ��t|�d�|d�kr�td�t|�|d����t|�W�S�W�n�ttfk r����Y�nX�t d��d S�) z/Receive an array of fds over an AF_UNIX socket.rO���r���rQ���zreceived %d items of ancdatar���rP���z Len is {0:n} but msg[0] is {1!r}zInvalid data receivedN)rR����itemsizeZrecvmsgrU���Z CMSG_SPACE�EOFErrorrW���r=���rT���rX���rV���r���� ValueErrorZ frombytes�AssertionError�format�list� IndexError)rY����size�aZ bytes_sizerZ���Zancdata�flagsZaddrZ cmsg_levelZ cmsg_typeZ cmsg_datar���r���r���rM�������s<���� � � ���c�������������� ���C���s2���t��|����t�jt�j��}t||g��W�5�Q�R�X�dS�r<���)rU����fromfd�fileno�AF_UNIX�SOCK_STREAMrL���)r>���r7���r?����sr���r���r���r�������s����c�������������� ���C���s<���t��|����t�jt�j��}t|d�d�W��5�Q�R���S�Q�R�X�dS�)r@���r���r���N)rU���re���rf���rg���rh���rM���)r>���ri���r���r���r���r�������s����c�����������������C���sF���t����}|dk r |�|�|���S�tr:ddlm}�|�|��S�td��dS�)zReturn a wrapper for an fd.Nr���)�resource_sharerz&SCM_RIGHTS appears not to be available)r���Zget_spawning_popenrK���Zduplicate_for_child�HAVE_SEND_HANDLE��rj���r]���)�fdZ popen_objrj���r���r���r���rK�������s���� c�����������������C���s2���|�j�d�krt|�j|�jjffS�t|�j�|�jjffS�d�S�r ���)�__self__�getattrr����__func__r%�����mr���r���r����_reduce_method����s���� rs���c�������������������@���s���e�Zd�Zdd��ZdS�)�_Cc�����������������C���s���d�S�r ���r���)r���r���r���r����f����s����z_C.fN)r%���r&���r'���ru���r���r���r���r���rt�������s���rt���c�����������������C���s���t�|�j|�jffS�r ���)ro����__objclass__r%���rq���r���r���r����_reduce_method_descriptor����s����rw���c�����������������C���s���t�|�j|�j|�jpi�ffS�r ���)�_rebuild_partial�funcr����keywords)�pr���r���r����_reduce_partial����s����r|���c�����������������C���s���t�j|�f|�|�S�r ���)� functools�partial)ry���r���rz���r���r���r���rx�������s����rx���c�����������������C���s���ddl�m}�t||��ffS�)Nr���)� DupSocket)rj���r����_rebuild_socket)ri���r���r���r���r����_reduce_socket����s����r����c�����������������C���s���|�����S�r ���)rB���)Zdsr���r���r���r��������s����r����c�����������������C���s"���t�|�����}t||�j|�j|�jffS�r ���)rK���rf���r�����familyr����proto)ri����dfr���r���r���r��������s����c�����������������C���s���|�����}tj||||d�S�)N)rf���)rB���rU���)r����r����r���r����rm���r���r���r���r��������s����c�������������������@���sd���e�Zd�ZdZeZeZeZeZeZe j dkr8eZeZe Z neZeZeZeZeZeZeZeZdd��ZdS�)�AbstractReducerz�Abstract base class for use in implementing a Reduction class suitable for use in replacing the standard reduction mechanism used in multiprocessing.r ���c�����������������G���sN���t�tt��j�t��t�ttj�t��t�ttj �t��t�t jt��t�t j t��d�S�r ���)r���r���rt���ru���rs���r`����appendrw����int�__add__r}���r~���r|���rU���r����r���r���r���r���r�����s ����zAbstractReducer.__init__N)r%���r&���r'���r(���r���r���r ���r���r����sys�platformr1���r0���r/���rL���rM���rK���rs���rw���rx���r����r����r���r���r���r���r���r��������s&��� r����)� metaclass)N)NF).�abcr���r)���r}���r���rC���r+���rU���r����rl���r����__all__r�����hasattrrk���ZPicklerr���r���r ���r3���r0���r1���r���r����objectr/���rR���rW���rL���rM���rK���rs���rt���r���ru���rw���r`���r����r����r����r|���rx���r~���r����r����r����r���r���r���r����<module> ���sj��� � � �#