parameters: (
      domain: str, kernel_profile: str, timeout: int = 30
  )
docstring: Call vmi-win-offsets helper and obtain VmiOffsets values
docstring_summary: Call vmi-win-offsets helper and obtain VmiOffsets values
docstring_tokens: Call vmi - win - offsets helper and obtain VmiOffsets values
function: def extract_vmi_offsets(
      domain: str, kernel_profile: str, timeout: int = 30
  ) -> VmiOffsets:
      """Call vmi-win-offsets helper and obtain VmiOffsets values"""
      try:
          output = subprocess.check_output(
              ["vmi-win-offsets", "--name", domain, "--json-kernel", kernel_profile],
              timeout=timeout,
          ).decode("utf-8", "ignore")
  
          return VmiOffsets.from_tool_output(output)
      except TypeError:
          logging.exception("Invalid output of vmi-win-offsets")
      except subprocess.CalledProcessError:
          logging.exception("vmi-win-offsets exited with an error")
      except subprocess.TimeoutExpired:
          logging.exception("vmi-win-offsets timed out")
  
      raise RuntimeError("Extracting VMI offsets failed")
function_tokens: def extract_vmi_offsets ( domain : str , kernel_profile : str , timeout : int = 30 ) -> VmiOffsets : try : output = subprocess . check_output ( [ "vmi-win-offsets" , "--name" , domain , "--json-kernel" , kernel_profile ] , timeout = timeout , ) . decode ( "utf-8" , "ignore" ) return VmiOffsets . from_tool_output ( output ) except TypeError : logging . exception ( "Invalid output of vmi-win-offsets" ) except subprocess . CalledProcessError : logging . exception ( "vmi-win-offsets exited with an error" ) except subprocess . TimeoutExpired : logging . exception ( "vmi-win-offsets timed out" ) raise RuntimeError ( "Extracting VMI offsets failed" )