a DOglF@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddlm Z ddl Z z ddl Z WneydZ Yn0z ddlZWneydZYn0gdZzddlZddlZdZWn.eydZddlZddlZddlZYn`0ddlmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)e*gdGdd d e+Z,Gd d d e,Z-Gd d d e,Z.erGdddZ/Gddde0Z1n&e2eddZ3e4edrej5Z6nej7Z6erdZ8ddZ9n gZ8ddZ9dZ:dZ;dZddd d!Z?d"d#Z@ddd$d%ZAGd&d'd'eBZCddddd(d)d*ZDd+d,ZEd-d.ZFd/d0ZGd1d2ZHeHZIGd3d4d4eBZJdS)5N) monotonic)PopenPIPESTDOUTcall check_callgetstatusoutput getoutput check_outputrunCalledProcessErrorDEVNULLSubprocessErrorTimeoutExpiredCompletedProcessTF)CREATE_NEW_CONSOLECREATE_NEW_PROCESS_GROUPSTD_INPUT_HANDLESTD_OUTPUT_HANDLESTD_ERROR_HANDLESW_HIDESTARTF_USESTDHANDLESSTARTF_USESHOWWINDOWABOVE_NORMAL_PRIORITY_CLASSBELOW_NORMAL_PRIORITY_CLASSHIGH_PRIORITY_CLASSIDLE_PRIORITY_CLASSNORMAL_PRIORITY_CLASSREALTIME_PRIORITY_CLASSCREATE_NO_WINDOWDETACHED_PROCESSCREATE_DEFAULT_ERROR_MODECREATE_BREAKAWAY_FROM_JOB)rrrrrrrr STARTUPINFOrrrrrrrr r!r"c@s eZdZdS)rN)__name__ __module__ __qualname__r'r'//opt/alt/python39/lib64/python3.9/subprocess.pyrirc@s8eZdZd ddZddZeddZejddZdS) r NcCs||_||_||_||_dSN) returncodecmdoutputstderr)selfr+r,r-r.r'r'r(__init__sszCalledProcessError.__init__cCsf|jrR|jdkrRzd|jt|j fWStyNd|j|j fYS0nd|j|jfSdS)NrzCommand '%s' died with %r.z)Command '%s' died with unknown signal %d.z.Command '%s' returned non-zero exit status %d.)r+r,signalZSignals ValueErrorr/r'r'r(__str__ys  zCalledProcessError.__str__cCs|jSr*r-r3r'r'r(stdoutszCalledProcessError.stdoutcCs ||_dSr*r5r/valuer'r'r(r6s)NNr$r%r&r0r4propertyr6setterr'r'r'r(r ls    r c@s8eZdZd ddZddZeddZejddZdS) rNcCs||_||_||_||_dSr*)r,timeoutr-r.)r/r,r<r-r.r'r'r(r0szTimeoutExpired.__init__cCsd|j|jfS)Nz'Command '%s' timed out after %s seconds)r,r<r3r'r'r(r4s zTimeoutExpired.__str__cCs|jSr*r5r3r'r'r(r6szTimeoutExpired.stdoutcCs ||_dSr*r5r7r'r'r(r6s)NNr9r'r'r'r(rs   rc@s,eZdZdddddddddZddZdS)r#rNdwFlags hStdInput hStdOutput hStdError wShowWindowlpAttributeListcCs0||_||_||_||_||_|p(dgi|_dS)N handle_listr=)r/r>r?r@rArBrCr'r'r(r0s zSTARTUPINFO.__init__cCs@|j}d|vr"t|d|d<t|j|j|j|j|j|dS)NrDr=) rCcopylistr#r>r?r@rArB)r/Z attr_listr'r'r(rEs zSTARTUPINFO.copy)r$r%r&r0rEr'r'r'r(r#s r#c@s2eZdZdZejfddZddZddZeZ dS) HandleFcCs|jsd|_||dS)NT)closed)r/ CloseHandler'r'r(Closesz Handle.ClosecCs |jsd|_t|StddS)NTzalready closed)rHintr2r3r'r'r(Detachsz Handle.DetachcCsd|jjt|fS)Nz%s(%d)) __class__r$rKr3r'r'r(__repr__szHandle.__repr__N) r$r%r&rH_winapirIrJrLrN__del__r'r'r'r(rGs rGZPIPE_BUFi PollSelectorcCsdSr*r'r'r'r'r(_cleanupsrRc CsZtdur dStddD]<}|jtjd}|durzt|WqtyRYq0qdS)N _deadstate)_active_internal_pollsysmaxsizeremover2)instresr'r'r(rRs cCs*g}tjj}|dkr&|dd||S)Nr-O)rWflagsoptimizeappend)argsr8r'r'r("_optim_args_from_interpreter_flagss rec CsVddddddd}t}|D].\}}ttj|}|dkr |d ||q tjjrd|d n$tjjrv|d tjjr|d tj dd}tjj }ttd i}d|v}|dkr| dn|r| d|r| d|D]}|d|q|r | ddD]B}||vr||} | dur4|} n d|| f} | d| fq|S)NdBSvbq)debugdont_write_bytecodeno_siteverbose bytes_warningquietrr_z-Iz-Ez-s _xoptionsdevzerror::BytesWarningzdefault::BytesWarningdefaultz-W)-Xrs)Z faulthandler tracemallocZ importtimeZ showrefcountutf8Z oldparserTz%s=%srv) reitemsgetattrrWrarcisolatedignore_environment no_user_site warnoptionsrprYextend) Z flag_opt_maprdflagoptriZwarnoptsrpZxoptionsdev_moder8argr'r'r(_args_from_interpreter_flagssP             rr<cOsft|i|D}z|j|dWWdS|Yn0Wdn1sX0YdS)Nr)rwaitkill)r< popenargskwargspr'r'r(rUs rcOs:t|i|}|r6|d}|dur,|d}t||dS)Nrdr)rgetr )rrretcoder,r'r'r(rfs   rcOsbd|vrtdd|vrJ|ddurJ|ds8|dr>d}nd}||d<t|t|dd |jS) Nr6z3stdout argument not allowed, it will be overridden.inputuniversal_newlinestextr)T)r6r<check)r2rr rr6)r<rremptyr'r'r(r ys#r c@s0eZdZdddZddZeejZddZ dS) rNcCs||_||_||_||_dSr*)rdr+r6r.)r/rdr+r6r.r'r'r(r0szCompletedProcess.__init__cCshd|jd|jg}|jdur4|d|j|jdurP|d|jdt|jd|S)Nz args={!r}zreturncode={!r}z stdout={!r}z stderr={!r}z{}({})z, ) formatrdr+r6rcr.typer$join)r/rdr'r'r(rNs    zCompletedProcess.__repr__cCs |jrt|j|j|j|jdSr*)r+r rdr6r.r3r'r'r(check_returncodesz!CompletedProcess.check_returncode)NN) r$r%r&r0rN classmethodtypes GenericAlias__class_getitem__rr'r'r'r(rs  r)rcapture_outputr<rc Os<|dur&|ddurtdt|d<|r^|ddusF|ddurNtdt|d<t|d<t|i|}z|j||d\}}Wn`ty} z4|tr|\| _| _ n| WYd} ~ nd} ~ 0|Yn0| } |r | r t | |j ||dWdn1s"0Yt|j | ||S)Nstdinz/stdin and input arguments may not both be used.r6r.z@stdout and stderr arguments may not be used with capture_output.rr-r.)rr2rr communicaterr _mswindowsr6r.rpollr rdr) rrr<rrrZprocessr6r.excrr'r'r(r s6 &r cCsg}d}ttj|D]}g}|r*|dd|vp>d|vp>| }|rN|d|D]b}|dkrj||qR|dkr|dt|dg}|dqR|r||g}||qR|r|||r|||dqd|S) NF  "\z\"r)maposfsdecoderclenrr)seqresultZ needquoterZbs_bufcr'r'r( list2cmdlines4         rc Csnzt|ddtd}d}Wn0tyH}z|j}|j}WYd}~n d}~00|dddkrf|dd}||fS)NT)shellrr.rr\ )r rr r-r+)r,dataZexitcodeZexr'r'r(r^s rcCs t|dSNrt)r)r,r'r'r(r }s r c CststtdsdStjdkr dSzjtd}|jdd}t|dkrHt|d }t t t |dd }tjd kr|d kr|d krWdSWnt tt fyYn0dS)N posix_spawnFdarwinTCS_GNU_LIBC_VERSIONrt)maxsplitrr.ZlinuxZglibc)r)rhasattrrrWplatformconfstrsplitrr2tuplerrKAttributeErrorOSError)ZverpartsZlibcversionr'r'r(_use_posix_spawns      rc@seZdZdZdLdddddddddd Zd d ZeejZ e d d Z e j dd Z ddZ ddZddZejejfddZddZddZdMddZddZdd ZdNd!d"ZdOd#d$Zd%d&Zer0d'd(Zd)d*Zd+d,Z d-d.Z!de"j#e"j$e"j%fd/d0Z&d1d2Z'd3d4Z(d5d6Z)d7d8Z*d9d:Z+e+Z,n~d;d(Zdd.Z!e.j/e.j0e.j1fd?d@Z2de.j3e.j4e5j6fdAd0Z&dBdCZ7dDd2Z'dEd6Z)dFdGZ8dHd8Z*dId:Z+dJdKZ,dS)PrFr\NTrr')usergroup extra_groupsencodingerrorsrumaskc(CsFtt|_d|_d|_|dur(d}t|ts:tdt rP|durt dn8|rh|sht dt d}| durxt d|dkrt d ||_d|_d|_d|_d|_d|_||_||_|dur| durt| t|krtd ||||\}}}}}}t rN|dkrt|d}|dkr4t|d}|dkrNt|d}|pb|pb|pb| |_d |_d|_|jr|d krd}d}nd}d} |durtt d st dnPt|t!rt"durt dt"#|j$} n$t|tr|} ntd%t&|| dkrt d| d}!|durtt dsBt dnt|t!rVt dg}!|D]b}"t|"t!rt"durt d|!'t"#|"j$n*t|"tr|!'|"ntd%t&|"q^|!D]}#|#dkrt d|#qd}$|durhtt ds t dnFt|t!r6t(dur(t dt()|j*}$nt|trH|}$ntd|$dkrht d|$z|dkrt+,|d||_|jrt+j-|jd|||d|_|dkrt+,|d||_|jrt+j-|j||d|_|dkrt+,|d||_|jrt+j-|j||d|_|.|||||| | | || |||||||| |!|$||Wnt/d|j|j|jfD](}%z |%0Wnt1yYn0qd|js:g}&|t2kr|&'||t2kr|&'||t2kr|&'|t|d r|&'|j3|&D]F}'z*t rt|'t4r|'5n t 0|'Wnt1y4Yn0qYn0dS)!NFr\zbufsize must be an integerz0preexec_fn is not supported on Windows platformszpass_fds overriding close_fds.Tz2startupinfo is only supported on Windows platformsrz4creationflags is only supported on Windows platformszlCannot disambiguate when both text and universal_newlines are supplied but different. Pass one or the other.g?rtsetregidz>The 'group' parameter is not supported on the current platformzHThe group parameter cannot be a string on systems without the grp modulez,Group must be a string or an integer, not {}z!Group ID cannot be negative, got setgroupszEThe 'extra_groups' parameter is not supported on the current platformz#Groups must be a list, not a stringzIItems in extra_groups cannot be strings on systems without the grp modulez9Items in extra_groups must be a string or integer, not {}setreuidz=The 'user' parameter is not supported on the current platformzGThe user parameter cannot be a string on systems without the pwd modulez#User must be a string or an integerz User ID cannot be negative, got wb) write_throughline_bufferingrrrb)rr_devnull)6rR threadingZLock _waitpid_lock_input_communication_started isinstancerK TypeErrorrr2warningswarnRuntimeWarningrdrr6r.pidr+rrboolr _get_handlesmsvcrtZopen_osfhandlerL text_mode_sigint_wait_secs_closed_child_pipe_fdsrrstrgrpZgetgrnamZgr_gidrrrcpwdgetpwnamZpw_uidioopen TextIOWrapper_execute_childfiltercloserrrrGrJ)(r/rdbufsize executablerr6r. preexec_fn close_fdsrcwdenvr startupinfo creationflagsrestore_signalsstart_new_sessionpass_fdsrrrrrrrp2creadp2cwritec2preadc2pwriteerrreaderrwritergidgidsZ extra_groupZ gid_checkuidfZto_closefdr'r'r(r0s.                                                    zPopen.__init__cCs@d|jjd|jd|jd}t|dkr<|ddd}|S)NPLz...>)rMr$r+rdr)r/Zobj_reprr'r'r(rNs  zPopen.__repr__cCs|jSr*)rr3r'r'r(rszPopen.universal_newlinescCst||_dSr*)rr)r/rr'r'r(rscCs |||}|ddddS)Nz r )decodereplace)r/rrrr'r'r(_translate_newliness zPopen._translate_newlinescCs|Sr*r'r3r'r'r( __enter__szPopen.__enter__cCs|jr|j|jr |jz^|jr2|jW|tkrv|jdkrlz|j|jdWntyjYn0d|_dS|nT|tkr|jdkrz|j|jdWntyYn0d|_YdS|0dS)Nrr) r6rr.rKeyboardInterruptr_waitrr)r/exc_typer8 tracebackr'r'r(__exit__s2         zPopen.__exit__cCsT|js dS|jdur(|d|jt|d|j|d|jdurPtdurPt|dS)Nzsubprocess %s is still running)sourcerS)_child_createdr+rResourceWarningrVrUrc)r/Z_maxsizeZ_warnr'r'r(rPs   z Popen.__del__cCs"t|dsttjtj|_|jS)Nr)rrrdevnullO_RDWRrr3r'r'r( _get_devnull$s zPopen._get_devnullc Cs|rZz|j|WnDty&Yn4tyX}z|jtjkrBnWYd}~n d}~00z|jWnDtyzYn4ty}z|jtjkrnWYd}~n d}~00dSr*)rwriteBrokenPipeErrorrerrnoZEINVALr)r/rrr'r'r( _stdin_write)s"    zPopen._stdin_writec CsV|jr|rtd|dur|js|j|j|jgddkrd}d}|jrT||n6|jrp|j}|jn|jr|j}|j| n|durt |}nd}zz| |||\}}Wndt y(|durt |j||}n|j}d|_z|j|dWnty Yn0Yn0Wd|_nd|_0|j ||d}||fS)Nz.Cannot send input after starting communicationrrrT)rr2rr6r.countrreadrr_time _communicater minr_remaining_timer r)r/rr<r6r.endtimesigint_timeoutstsr'r'r(rBsH         zPopen.communicatecCs|Sr*)rVr3r'r'r(rsz Popen.pollcCs|dur dS|tSdSr*)r)r/rr'r'r(rszPopen._remaining_timecCsL|dur dS|st|krHt|j||r0d|nd|r@d|ndddS)Nr)r)rrrdr)r/r orig_timeoutZ stdout_seqZ stderr_seqskip_check_and_raiser'r'r(_check_timeoutszPopen._check_timeoutc Cs|durt|}z|j|dWSty|durJt|j||}n|j}d|_z|j|dWntyxYn0Yn0dS)Nrr)rr r rrrr)r/r<rr r'r'r(rs    z Popen.waitc Cst|dd}t}trX|dkr.||j|dkrB||j|dkr||jnr|dkr~|dkr~||kr~|tj||dkr|dkr||kr|tj||dkr|dkr||kr|tj||dur|tj|Wdn1s0Yd|_dS)Nrr\T) rz contextlib ExitStackrcallbackrJrrr) r/rrrrrrZ devnull_fdstackr'r'r(_close_pipe_fdss$    ,zPopen._close_pipe_fdsc Cs~|dur|dur|durdSd\}}d\}}d\}} |durtttj}|durtdd\}} t|}t| nh|tkrtdd\}}t|t|}}n<|tkrt | }n$t |t rt |}nt | }||}|dur*ttj}|durtdd\} }t|}t| nn|tkrXtdd\}}t|t|}}n@|tkrrt | }n&t |t rt |}nt | }||}|durttj} | durdtdd\} } t| } t| n~|tkrtdd\}} t|t| }} nP|tkr$|} n@|tkr>t | } n&t |t rVt |} nt | } || } |||||| fS)N)r\r\r\r\r\r\r\r\r)rOZ GetStdHandlerZ CreatePiperGrIrr rZ get_osfhandlerrrKfileno_make_inheritablerrr) r/rr6r.rrrrrr_r'r'r(rsp                        zPopen._get_handlescCs&tt|tddtj}t|S)Nrrt)rOZDuplicateHandleZGetCurrentProcessZDUPLICATE_SAME_ACCESSrG)r/handlehr'r'r(r, s  zPopen._make_inheritablecCstdd|DS)NcSs,h|]$}|d@dks$t|tjkr|qS))rOZ GetFileTypeZFILE_TYPE_CHAR).0r.r'r'r( 0s  z,Popen._filter_handle_list..)rF)r/rDr'r'r(_filter_handle_list)szPopen._filter_handle_listc!Cst|tr nNt|tr.| r"tdt|g}n,t|tjrR| rFtdt|g}nt|}|durlt|}|dur|t}n| }d| ||fv}|r|j t j O_ | |_ ||_||_|j}t|od|vo|d}|s|r^|r^|duri}|_t|dg}|d<|r0|t| t|t|g7}|||dd<|r^|sZtdtd}| r|j t jO_ t j|_|stjd}|stjdd }tj|d d }tj|st d tj|r|}n|}d !||}|durt|}t"#d||||z@t $||ddt| | ||| \}}}} W|%| | | |||n|%| | | |||0d|_&t'||_(||_)t *|dS)Nz$bytes args is not allowed on Windows0path-like args is not allowed when shell is truer\rDz?startupinfo.lpAttributeList['handle_list'] overriding close_fdsFZComSpecZ SystemRootrZSystem32zcmd.exez:shell not found: neither %ComSpec% nor %SystemRoot% is setz {} /c "{}"subprocess.PopenT)+rrbytesrrrPathLikerr#rEr>rOrr?r@rArCrrFrrKr3rrrrrrBenvironpathrisabsFileNotFoundErrorrrWauditZ CreateProcessr)rrG_handlerrI)!r/rdrrrrrrrrrrrrrrrZunused_restore_signalsZ unused_gidZ unused_gidsZ unused_uidZ unused_umaskZunused_start_new_sessionZuse_std_handlesZattribute_listZhave_handle_listrDZcomspecZ system_rootZhpZhtrtidr'r'r(r6s             zPopen._execute_childcCs,|jdur&||jd|kr&||j|_|jSNr)r+r=)r/rTZ_WaitForSingleObjectZ_WAIT_OBJECT_0Z_GetExitCodeProcessr'r'r(rVs  zPopen._internal_pollcCs^|durtj}n t|d}|jdurXt|j|}|tjkrJt|j|t |j|_|jS)Ni) rOZINFINITErKr+WaitForSingleObjectr=Z WAIT_TIMEOUTrrdGetExitCodeProcess)r/r<Ztimeout_millisrr'r'r(r s    z Popen._waitcCs|||dSr*)rcrr)r/Zfhbufferr'r'r( _readerthreadszPopen._readerthreadcCs\|jrBt|dsBg|_tj|j|j|jfd|_d|j_|j|j rt|dsg|_ tj|j|j |j fd|_ d|j _|j |j r| ||jdur|j|||jrt|j||j dur|j |||j rt|j|d}d}|jr|j}|j|j r0|j }|j |r>|dnd}|rP|dnd}||fS)N _stdout_buff)targetrdT _stderr_buffr)r6rrDrZThreadrCZ stdout_threadZdaemonstartr.rFZ stderr_threadrrrrZis_aliverrdr)r/rrr"r6r.r'r'r(rsJ             zPopen._communicatecCsl|jdurdS|tjkr"|nF|tjkr>t|jtjn*|tjkrZt|jtjnt d |dS)NzUnsupported signal: {}) r+r1SIGTERM terminateZ CTRL_C_EVENTrrrZCTRL_BREAK_EVENTr2rr/Zsigr'r'r( send_signal s     zPopen.send_signalcCsV|jdurdSzt|jdWn0tyPt|j}|tjkrF||_Yn0dSr)r+rOZTerminateProcessr=PermissionErrorrAZ STILL_ACTIVE)r/Zrcr'r'r(rIs    zPopen.terminatec Cs,d\}}d\}}d\}} |dur"n@|tkr8t\}}n*|tkrJ|}nt|trZ|}n|}|durln@|tkrt\}}n*|tkr|}nt|tr|}n|}|durnf|tkrt\}} nP|tkr|dkr|} n t j } n.|tkr|} nt|tr|} n|} |||||| fS)Nr*r\) rrpiper rrrKr+rrW __stdout__) r/rr6r.rrrrrrr'r'r(r0sL        c Cs|durtj}i} |rJg} dD]"} tt| d}|dur| |q| | d<g}||| fD]}|dkrX|tj|fqX|df|df| dffD]"\}}|dkr|tj||fq|r|| d<tj|||fi| |_d|_ | ||||| | dS) N)SIGPIPEZSIGXFZSIGXFSZZ setsigdefr\rrtr file_actionsT) rr8rzr1rcPOSIX_SPAWN_CLOSEPOSIX_SPAWN_DUP2rrrr))r/rdrrrrrrrrrrZsigsetZsignameZsignumrQrZfd2r'r'r( _posix_spawnfs8   zPopen._posix_spawnc-st|ttfr|g}n(t|tjr6| r.td|g}nt|}| rlttdrPdnd}|dg|}rl|d<dur||dt d|||t rFtj rF|durF|sF|sF|durF| dks| d krF|dks|d krF|dks|d krF|sF|durF|durF|durF|dkrF| |||| | | ||| dS}t\}}g}|d kr|||t|}qZ|D]}t|qzhz|durg}|D]>\}}t|}d |vrtd ||d t|qnd}ttj rf} ntfd dt|D} t|}!|!|t|| |tttt|!||| | | |||||||||||||_d|_Wt|n t|0| | | | |||t!}"t"|d}#|"|#7}"|#rt#|"dkrqqWt|n t|0|"rz6t$|jd\}$}%|$|jkr<|%|%ntj&|_'Wnt(yZYn0z|")dd \}&}'}(|(*}(Wn*tyd}&d}'d+t|"}(Yn0t,t-|&*dt.})t/|)t0r|'rt|'d}*|(dk}+|+rd}(|},n|},|*dkrt1|*}(|)|*|(|,|)|(dS)Nr4Zgetandroidapilevelz/system/bin/shz/bin/shz-crr5r\rr0=z!illegal environment variable namec3s"|]}tjt|VqdSr*)rr9rfsencode)r1dirrr'r( sz'Popen._execute_child..TiP:sSubprocessError0z#Bad exception data from child: {!r}asciiZnoexecr)2rrr6rr7rrFrrWr<_USE_POSIX_SPAWNr9dirnamerTrMrcduprryrVr2r get_exec_pathsetadd_posixsubprocessZ fork_execsortedrrKrrr) bytearrayrrwaitpid_handle_exitstatusrXr+ChildProcessErrorrrrrzbuiltinsr issubclassrstrerror)-r/rdrrrrrrrrrrrrrrrrrrrrrZ unix_shellZorig_executableZ errpipe_readZ errpipe_writeZlow_fds_to_closeZlow_fdZenv_listkriZexecutable_listZ fds_to_keepZ errpipe_datapartrr!Zexception_nameZ hex_errnoerr_msgZchild_exception_typeZ errno_numZchild_exec_never_calledZ err_filenamer'rXr(rs                                 cCs$||r|| |_n |||_dSr*)r+)r/r!waitstatus_to_exitcodeZ _WIFSTOPPEDZ _WSTOPSIGr'r'r(rh1szPopen._handle_exitstatusc Cs|jdur|jdsdSzzF|jdur<|jWW|jS||j|\}}||jkr`||WnDty}z,|dur||_n|j|krd|_WYd}~n d}~00W|jn |j0|jS)NFr)r+racquirereleaserrhrr)r/rTZ_waitpidZ_WNOHANGZ_ECHILDrr!er'r'r(rV=s$      cCs<zt|j|\}}Wnty2|j}d}Yn0||fSr?)rrgrri)r/Z wait_flagsrr!r'r'r( _try_wait`s   zPopen._try_waitcCsP|jdur|jS|durt|}d}|jdrzX|jdurLW|jq|tj\}}||jkr~| |W|jqW|jn |j0| |}|dkrt |j |t |d|d}t|q&nv|jdurJ|jP|jdurWdqJ|d\}}||jkr(| |Wdq1s>0Yq|jS)NgMb@?Frrg?)r+rrrqrrrtrWNOHANGrrhrrrdrtimesleep)r/r<rZdelayrr!Z remainingr'r'r(r ms>             ,c Cs2|jrT|jsTz|jWnty,Yn0|sTz|jWntyRYn0d}d}|jsi|_|jrzg|j|j<|jrg|j|j<|jr|j|j}|jr|j|j}|||j rt |j }t }|jr|r| |jt j|jr|jjs| |jt j|jr2|jjs2| |jt j|r||}|durv|dkrv|j||||ddtd||} |||||| D]\} } | j|jur0||j|jt} z|jt| j| 7_Wn*ty|| j| jYn*0|jt|j kr|| j| jnP| j|j|jfvrt| jd} | sn|| j| j|j| j| qq2Wdn1s0Y|j ||d|durd!|}|durd!|}|j"r*|dur |#||jj$|jj%}|dur*|#||jj$|jj%}||fS)NrT)r#zN_check_timeout(..., skip_check_and_raise=True) failed to raise TimeoutExpired.irr))&rrflushrrZ_fileobj2outputr6r. _save_inputr memoryview_PopenSelectorregister selectorsZ EVENT_WRITErHZ EVENT_READZget_maprr$ RuntimeErrorselectZfileobj _input_offset _PIPE_BUFrrrZ unregisterrrrcrrrrrr)r/rrr"r6r.Z input_viewZselectorr<ZreadykeyZeventschunkrr'r'r(rs                    :      cCsF|jrB|jdurBd|_||_|durB|jrB|j|jj|jj|_dSr?)rrrrencoderr)r/rr'r'r(rys zPopen._save_inputcCs@||jdurdSzt|j|Wnty:Yn0dSr*)rr+rrrProcessLookupErrorrJr'r'r(rKs  cCs|tjdSr*)rKr1rHr3r'r'r(rI(scCs|tjdSr*)rKr1SIGKILLr3r'r'r(r-sz Popen.kill)r\NNNNNTFNNNNrTFr')NN)F)N)9r$r%r&rr0rNrrrrr:rr;rr rrWrXrrrPrrrrrr$rr)rrr,r3rrOr@Z WAIT_OBJECT_0rArVr rCrrKrIrrTrrp WIFSTOPPEDWSTOPSIGrhrgrurZECHILDrtryr'r'r'r(rs6 j    D H   26'&  # )f  r)Krjrrrrvr1rWrrr%rrrr ImportErrorr__all__rrOrModuleNotFoundErrorrdrr}rrrrrrrrrrrrrrrr r!r"r Exceptionrr rr#rKrGrzrrrQr{ZSelectSelectorrUrRrrr rerrrr objectrr rrr rr^rr'r'r'r(,s~        P  %      ;3% EI /