old_contents: import copy
  from cereal import car
  
  VisualAlert = car.CarControl.HUDControl.VisualAlert
  
  def create_steering_control(packer, apply_steer, frame, steer_step):
  
    idx = (frame / steer_step) % 16
  
    values = {
      "Counter": idx,
      "LKAS_Output": apply_steer,
      "LKAS_Request": 1 if apply_steer != 0 else 0,
      "SET_1": 1
    }
  
    return packer.make_can_msg("ES_LKAS", 0, values)
  
  def create_steering_status(packer, apply_steer, frame, steer_step):
    return packer.make_can_msg("ES_LKAS_State", 0, {})
  
  def create_es_distance(packer, es_distance_msg, pcm_cancel_cmd):
  
    values = copy.copy(es_distance_msg)
    if pcm_cancel_cmd:
      values["Cruise_Cancel"] = 1
  
    return packer.make_can_msg("ES_Distance", 0, values)
  
  def create_es_lkas(packer, es_lkas_msg, visual_alert, left_line, right_line):
  
    values = copy.copy(es_lkas_msg)
    if visual_alert == VisualAlert.steerRequired:
      values["Keep_Hands_On_Wheel"] = 1
  
    values["LKAS_Left_Line_Visible"] = int(left_line)
    values["LKAS_Right_Line_Visible"] = int(right_line)
  
    return packer.make_can_msg("ES_LKAS_State", 0, values)
  
  # *** Subaru Pre-global ***
  
  def subaru_preglobal_checksum(packer, values, addr):
    dat = packer.make_can_msg(addr, 0, values)[2]
    return (sum(dat[:7])) % 256
  
  def create_preglobal_steering_control(packer, apply_steer, frame, steer_step):
  
    idx = (frame / steer_step) % 8
  
    values = {
      "Counter": idx,
      "LKAS_Command": apply_steer,
      "LKAS_Active": 1 if apply_steer != 0 else 0
    }
    values["Checksum"] = subaru_preglobal_checksum(packer, values, "ES_LKAS")
  
    return packer.make_can_msg("ES_LKAS", 0, values)
  
  def create_es_throttle_control(packer, fake_button, es_accel_msg):
  
    values = copy.copy(es_accel_msg)
    values["Button"] = fake_button
  
    values["Checksum"] = subaru_preglobal_checksum(packer, values, "ES_CruiseThrottle")
  
    return packer.make_can_msg("ES_CruiseThrottle", 0, values)
  
new_contents: import copy
  from cereal import car
  
  VisualAlert = car.CarControl.HUDControl.VisualAlert
  
  def create_steering_control(packer, apply_steer, frame, steer_step):
  
    idx = (frame / steer_step) % 16
  
    values = {
      "Counter": idx,
      "LKAS_Output": apply_steer,
      "LKAS_Request": 1 if apply_steer != 0 else 0,
      "SET_1": 1
    }
  
    return packer.make_can_msg("ES_LKAS", 0, values)
  
  def create_steering_status(packer, apply_steer, frame, steer_step):
    return packer.make_can_msg("ES_LKAS_State", 0, {})
  
  def create_es_distance(packer, es_distance_msg, pcm_cancel_cmd):
  
    values = copy.copy(es_distance_msg)
    if pcm_cancel_cmd:
      values["Cruise_Cancel"] = 1
  
    return packer.make_can_msg("ES_Distance", 0, values)
  
  def create_es_lkas(packer, es_lkas_msg, visual_alert, left_line, right_line):
  
    values = copy.copy(es_lkas_msg)
    if visual_alert == VisualAlert.steerRequired:
      values["Keep_Hands_On_Wheel"] = 1
  
    values["LKAS_Left_Line_Visible"] = int(left_line)
    values["LKAS_Right_Line_Visible"] = int(right_line)
  
    return packer.make_can_msg("ES_LKAS_State", 0, values)
  
  # *** Subaru Pre-global ***
  
  def subaru_preglobal_checksum(packer, values, addr):
    dat = packer.make_can_msg(addr, 0, values)[2]
    return (sum(dat[:7])) % 256
  
  def create_preglobal_steering_control(packer, apply_steer, frame, steer_step):
  
    idx = (frame / steer_step) % 8
  
    values = {
      "Counter": idx,
      "LKAS_Command": apply_steer,
      "LKAS_Active": 1 if apply_steer != 0 else 0
    }
    values["Checksum"] = subaru_preglobal_checksum(packer, values, "ES_LKAS")
  
    return packer.make_can_msg("ES_LKAS", 0, values)
  
  def create_es_throttle_control(packer, cruise_button, es_accel_msg):
  
    values = copy.copy(es_accel_msg)
    values["Cruise_Button"] = cruise_button
  
    values["Checksum"] = subaru_preglobal_checksum(packer, values, "ES_CruiseThrottle")
  
    return packer.make_can_msg("ES_CruiseThrottle", 0, values)
  
subject: Fix Subaru Preglobal create_es_throttle_control (#21010)