              print("Sending Exit Signal", flush=True)
              try:
                  now = time()
                  if os.name == "nt":
                      os.kill(self.process.pid, signal.CTRL_BREAK_EVENT)
                  else:
                      self.process.send_signal(signal.SIGINT)
                  while True:
                      timeelapsed = time() - now
                      if self.process.poll() is not None:
 
</s> remove         if returncode == 0 or returncode == 3221225786:
 </s> add         if returncode in (0, 3221225786): </s> remove             try:
                self.process.terminate()
                self.process.wait(timeout=10)
 </s> add             children = psutil.Process().children(recursive=True)
            for child in children:
                child.terminate()
            _, alive = psutil.wait_procs(children, timeout=10)
            if not alive: </s> remove             except TimeoutExpired:
                print("Termination timed out. Killing Process...")
                self.process.kill()
 </s> add                 return

            print("Termination timed out. Killing Process...")
            for child in alive:
                child.kill()
            _, alive = psutil.wait_procs(alive, timeout=10)
            if not alive: </s> remove         self.consoleregex = {"loss": re.compile(r"([a-zA-Z_]+):.*?(\d+\.\d+)"),
                             "tqdm": re.compile(r"(\d+%|\d+/\d+|\d+:\d+|\d+\.\d+[a-zA-Z/]+)")}
 </s> add         self.consoleregex = {
            "loss": re.compile(r"([a-zA-Z_]+):.*?(\d+\.\d+)"),
            "tqdm": re.compile(r"(\d+%|\d+/\d+|\d+:\d+|\d+\.\d+[a-zA-Z/]+)")}
                    os.kill(
                        self.process.pid,
                        signal.CTRL_BREAK_EVENT) # pylint: disable=no-member
              print("Sending Exit Signal", flush=True)
              try:
                  now = time()
                  if os.name == "nt":
                    os.kill(
                        self.process.pid,
                        signal.CTRL_BREAK_EVENT) # pylint: disable=no-member
                  else:
                      self.process.send_signal(signal.SIGINT)
                  while True:
                      timeelapsed = time() - now
                      if self.process.poll() is not None:
keep keep keep keep replace keep keep keep keep keep
 gui bugfix - termination on extract 
lib/gui/wrapper.py