grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a ´i(%ã@s ddlmZddlZddlZddlZddlZddlZddlZddlZddl m Z gd¢Z ej dkp€e edƒo€e edƒo€e ejd ƒZGd d „d ejƒZejZd8d d „Zej dk�rþe gd¢7Z ddlZd9ddœdd„Zdd„Zdd„Zdd„ZGdd„deƒZnFe gd¢7Z ddlZej dkZdd„Zdd „Zd!d„Zd"d„Zd#d$„Zd%d&„ZGd'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(ƒej dk�rÚd/d0„Z+d1d2„Z,eeje+ƒnd3d0„Z+d4d2„Z,eeje+ƒGd5d6„d6ed7�Z-dS):é)ÚABCMetaNé)Úcontext)Ú send_handleÚ recv_handleÚForkingPicklerÚregisterÚdumpÚwin32ÚCMSG_LENÚ SCM_RIGHTSÚsendmsgcsFeZdZiZejZ‡fdd„Zedd„ƒZ eddd„ƒZ e j Z ‡Z S) rcs*tƒj|Ž|j ¡|_|j |j¡dS©N)ÚsuperÚ__init__Ú_copyreg_dispatch_tableÚcopyÚdispatch_tableÚupdateÚ_extra_reducers©ÚselfÚargs©Ú __class__©ú1/usr/lib64/python3.9/multiprocessing/reduction.pyr&s  zForkingPickler.__init__cCs||j|<dSr)r)ÚclsÚtypeÚreducerrrr+szForkingPickler.registerNcCs t ¡}|||ƒ |¡| ¡Sr)ÚioÚBytesIOr Ú getbuffer)rÚobjÚprotocolÚbufrrrÚdumps0szForkingPickler.dumps)N)Ú__name__Ú __module__Ú __qualname__rÚcopyregrrrÚ classmethodrr&ÚpickleÚloadsÚ __classcell__rrrrr!s   rcCst||ƒ |¡dSr)rr )r#Úfiler$rrrr :sr )Ú DupHandleÚ duplicateÚ steal_handleF)Úsource_processcCs6t ¡}|dur|}|dur |}t |||d|tj¡S)Nr)Ú_winapiÚGetCurrentProcessÚDuplicateHandleÚDUPLICATE_SAME_ACCESS)ÚhandleZtarget_processÚ inheritabler3Úcurrent_processrrrr1Gsþr1c CsNt tjd|¡}z,t ||t ¡ddtjtjB¡Wt |¡St |¡0dS©NFr)r4Ú OpenProcessÚPROCESS_DUP_HANDLEr6r5r7ÚDUPLICATE_CLOSE_SOURCEÚ CloseHandle)Z source_pidr8Zsource_process_handlerrrr2Ssÿ  ý ûr2cCst|tj|ƒ}| |¡dSr)r0r4r7Úsend)Úconnr8Údestination_pidZdhrrrr_srcCs | ¡ ¡Sr)ÚrecvÚdetach)rArrrrdsrc@seZdZddd„Zdd„ZdS)r0Nc Csf|durt ¡}t tjd|¡}z(t t ¡|||dd¡|_Wt |¡n t |¡0||_ ||_ dSr;) ÚosÚgetpidr4r<r=r6r5Ú_handler?Ú_accessÚ_pid)rr8ÚaccessÚpidÚprocrrrrjs þzDupHandle.__init__c Csb|jt ¡kr|jSt tjd|j¡}z*t ||jt ¡|j dtj ¡Wt  |¡St  |¡0dS)NF) rIrErFrGr4r<r=r6r5rHr>r?)rrLrrrrDys ÿ  þ üzDupHandle.detach)N)r'r(r)rrDrrrrr0hs r0)ÚDupFdÚsendfdsÚrecvfdsÚdarwincCsVt d|¡}tt|ƒdgƒ}| |gtjtj|fg¡trR| d¡dkrRt dƒ‚dS)NÚiéróAz%did not receive acknowledgement of fd) ÚarrayÚbytesÚlenr ÚsocketÚ SOL_SOCKETr Ú ACKNOWLEDGErCÚ RuntimeError)ÚsockÚfdsÚmsgrrrrN‘s  rNc Cst d¡}|j|}| dt |¡¡\}}}}|s:|s:t‚z¦trJ| d¡t|ƒdkrft dt|ƒƒ‚|d\}} } |tj krÞ| tj krÞt| ƒ|jdkržt ‚|  | ¡t|ƒd|dkrÔtd t|ƒ|d¡ƒ‚t|ƒWSWnt tfyöYn0t dƒ‚dS) NrQrrSzreceived %d items of ancdatarrRz Len is {0:n} but msg[0] is {1!r}zInvalid data received)rTÚitemsizeÚrecvmsgrWÚ CMSG_SPACEÚEOFErrorrYr@rVrZrXr Ú ValueErrorÚ frombytesÚAssertionErrorÚformatÚlistÚ IndexError) r[ÚsizeÚaÚ bytes_sizer]ÚancdataÚflagsÚaddrÚ cmsg_levelÚ cmsg_typeÚ cmsg_datarrrrO™s:    ÿ ÿ  ÿÿrOcCsFt | ¡tjtj¡�}t||gƒWdƒn1s80YdSr)rWÚfromfdÚfilenoÚAF_UNIXÚ SOCK_STREAMrN)rAr8rBÚsrrrrµscCsHt | ¡tjtj¡�}t|dƒdWdƒS1s:0YdS)Nrr)rWrqrrrsrtrO)rArurrrrºscCsFt ¡}|dur | | |¡¡Str:ddlm}| |¡Stdƒ‚dS)Nr)Úresource_sharerz&SCM_RIGHTS appears not to be available)rÚget_spawning_popenrMÚduplicate_for_childÚHAVE_SEND_HANDLEÚrvrb)ÚfdÚ popen_objrvrrrrM¿s  rMcCs2|jdurt|j|jjffSt|j|jjffSdSr)Ú__self__ÚgetattrrÚ__func__r'©ÚmrrrÚ_reduce_methodÎs r‚c@seZdZdd„ZdS)Ú_CcCsdSrr)rrrrÚfÔsz_C.fN)r'r(r)r„rrrrrƒÓsrƒcCst|j|jffSr)r~Ú __objclass__r'r€rrrÚ_reduce_method_descriptorÙsr†cCst|j|j|jpiffSr)Ú_rebuild_partialÚfuncrÚkeywords)ÚprrrÚ_reduce_partialßsr‹cCstj|g|¢Ri|¤ŽSr)Ú functoolsÚpartial)rˆrr‰rrrr‡ásr‡cCsddlm}t||ƒffS)Nr)Ú DupSocket)rvrŽÚ_rebuild_socket)rurŽrrrÚ_reduce_socketês r�cCs| ¡Sr)rD)Zdsrrrr�ísr�cCs"t| ¡ƒ}t||j|j|jffSr)rMrrr�ÚfamilyrÚproto)ruÚdfrrrr�òs cCs| ¡}tj||||d�S)N)rr)rDrW)r“r‘rr’r{rrrr�õsc@s`eZdZeZeZeZeZeZej dkr4e Z e Z e Z n e Z eZeZeZeZeZeZeZdd„ZdS)ÚAbstractReducerr cGsNtttƒjƒtƒtttjƒtƒtttj ƒtƒtt j t ƒtt j tƒdSr)rrrƒr„r‚rfÚappendr†ÚintÚ__add__rŒr�r‹rWr�rrrrrs  zAbstractReducer.__init__N)r'r(r)rrr rrÚsysÚplatformr2r1r0rNrOrMr‚r†r‡r�r�rrrrrr”ûs$ r”)Ú metaclass)N)NF).Úabcrr*rŒr rEr,rWr˜rzrÚ__all__r™ÚhasattrryÚPicklerrrr r4r1r2rrÚobjectr0rTrYrNrOrMr‚rƒrr„r†rfr•r–r—r‹r‡r�r�r�r”rrrrÚ sj    ÿ ý    ÿ  #