      // FIXME: painter.drawPolygon can be slow if hue is not rounded
      end_hue = int(end_hue * 100 + 0.5) / 100;
  
      bg.setColorAt(0.0, QColor::fromHslF(start_hue / 360., 0.97, 0.56, 0.4));
      bg.setColorAt(0.5, QColor::fromHslF(end_hue / 360., 1.0, 0.68, 0.35));
      bg.setColorAt(1.0, QColor::fromHslF(end_hue / 360., 1.0, 0.68, 0.0));
    } else {
      const auto &orientation = (*s->sm)["modelV2"].getModelV2().getOrientation();
      float orientation_future = 0;
      if (orientation.getZ().size() > 16) {
        orientation_future = std::abs(orientation.getZ()[16]);  // 2.5 seconds
 
</s> remove     end_hue = int(end_hue * 100 + 0.5) / 100;
 </s> add     start_hue = int(start_hue * 100 + 0.5) / 100; </s> remove     start_hue = 60;
    // speed up: 120, slow down: 0
    end_hue = fmax(fmin(start_hue + acceleration_future * 30, 120), 0);
 </s> add     // speed up: 148, slow down: 0
    start_hue = fmax(fmin(60 + accel_filter.update(acceleration_future) * 80, 148), 0); </s> remove     if (acceleration.getZ().size() > 16) {
      acceleration_future = acceleration.getX()[16];  // 2.5 seconds
 </s> add     if (acceleration.getZ().size() > 10) {
      acceleration_future = acceleration.getX()[10];  // 1.0 second </s> remove AnnotatedCameraWidget::AnnotatedCameraWidget(VisionStreamType type, QWidget* parent) : fps_filter(UI_FREQ, 3, 1. / UI_FREQ), CameraWidget("camerad", type, true, parent) {
 </s> add AnnotatedCameraWidget::AnnotatedCameraWidget(VisionStreamType type, QWidget* parent) : fps_filter(UI_FREQ, 3, 1. / UI_FREQ), accel_filter(UI_FREQ, .5, 1. / UI_FREQ), CameraWidget("camerad", type, true, parent) {
    bg.setColorAt(0.75, QColor::fromHslF(63 / 360., 1.0, 0.68, 0.35));
    bg.setColorAt(1.0, QColor::fromHslF(63 / 360., 1.0, 0.68, 0.0));
      // FIXME: painter.drawPolygon can be slow if hue is not rounded
      end_hue = int(end_hue * 100 + 0.5) / 100;
  
      bg.setColorAt(0.0, QColor::fromHslF(start_hue / 360., 0.97, 0.56, 0.4));
    bg.setColorAt(0.75, QColor::fromHslF(63 / 360., 1.0, 0.68, 0.35));
    bg.setColorAt(1.0, QColor::fromHslF(63 / 360., 1.0, 0.68, 0.0));
    bg.setColorAt(0.75, QColor::fromHslF(63 / 360., 1.0, 0.68, 0.35));
    bg.setColorAt(1.0, QColor::fromHslF(63 / 360., 1.0, 0.68, 0.0));
    } else {
      const auto &orientation = (*s->sm)["modelV2"].getModelV2().getOrientation();
      float orientation_future = 0;
      if (orientation.getZ().size() > 16) {
        orientation_future = std::abs(orientation.getZ()[16]);  // 2.5 seconds
keep keep keep keep replace replace keep keep keep keep keep
 ui: minor e2e path tweaks (#26351)

* new e2e path

* clean up

* fix

* 2.5 seconds feels disjointed 
selfdrive/ui/qt/onroad.cc