anchor.diff:                .toDouble());
       } else {
         Float32List overrideColor = artboard.overrideColor;
  +      double o = (overrideColor[3] *
  +              artboard.modulateOpacity *
  +              opacity *
  +              shape.renderOpacity)
  +          .clamp(0.0, 1.0)
  +          .toDouble();
         paintColor = ui.Color.fromRGBO(
             (overrideColor[0] * 255.0).round(),
             (overrideColor[1] * 255.0).round(),
             (overrideColor[2] * 255.0).round(),
  -          overrideColor[3] *
  -              artboard.modulateOpacity *
  -              opacity *
  -              shape.renderOpacity);
  +          o);
       }
       _paint
         ..color = paintColor
  
positive.code: 
      int idx = 0;
      for (int i = 0; i < numStops; i++) {
        ui.Color color = ui.Color.fromRGBO(
            (colorStops[idx] * 255.0).round(),
            (colorStops[idx + 1] * 255.0).round(),
            (colorStops[idx + 2] * 255.0).round(),
            colorStops[idx + 3]);
        colors.add(color);
        stops.add(colorStops[idx + 4]);
        idx += 5;
  
negative.code: 
    Color get uiColor {
      Float32List c = displayColor;
      double o = (artboard.modulateOpacity * opacity * shape.renderOpacity)
          .clamp(0.0, 1.0)
          .toDouble();
      return Color.fromRGBO((c[0] * 255.0).round(), (c[1] * 255.0).round(),
          (c[2] * 255.0).round(), c[3] * o);
    }
  
    set uiColor(Color c) {
  