JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrU e5dc @sbddlZddlZddlmZdZGdddeZeZddZ dd Z da d d Z dd d Z dS)N)wrapsTc@seZdZddZddZdS)_InterruptHandlercCsNd|_||_t|trD|tjkr(tj}n|tjkr.default_handlerzYexpected SIGINT signal handler to be signal.SIG_IGN, signal.SIG_DFL, or a callable object) calledoriginal_handler isinstanceintsignalSIG_DFLdefault_int_handlerSIG_IGN TypeErrorr)selfrrrr__init__ s    z_InterruptHandler.__init__cCsRttj}||k r ||||jr2|||d|_tD] }|q@dS)NT)r getsignalSIGINTrr_resultskeysstop)rZsignumframeZinstalled_handlerresultrrr__call__s    z_InterruptHandler.__call__N)__name__ __module__ __qualname__rrrrrrr srcCs dt|<dS)N)rrrrrregisterResult*sr cCstt|dSr)boolrpoprrrr removeResult-sr#cCs.tdkr*ttj}t|attjtdSr)_interrupt_handlerr rrr)rrrrinstallHandler1s r%cs<dk r tfdd}|Stdk r8ttjtjdS)Nc s6ttj}tz||WSttj|XdSr)r rr removeHandler)argskwargsinitialmethodrrinner;s  zremoveHandler..inner)rr$r rr )r+r,rr*rr&9s r&)N)r weakref functoolsrZ __unittestobjectrWeakKeyDictionaryrr r#r$r%r&rrrrs