paint method

  1. @override
void paint(
  1. Canvas canvas,
  2. Size size
)
override

Called whenever the object needs to paint. The given Canvas has its coordinate space configured such that the origin is at the top left of the box. The area of the box is the size of the size argument.

Paint operations should remain inside the given area. Graphical operations outside the bounds may be silently ignored, clipped, or not clipped. It may sometimes be difficult to guarantee that a certain operation is inside the bounds (e.g., drawing a rectangle whose size is determined by user inputs). In that case, consider calling Canvas.clipRect at the beginning of paint so everything that follows will be guaranteed to only draw within the clipped area.

Implementations should be wary of correctly pairing any calls to Canvas.save/Canvas.saveLayer and Canvas.restore, otherwise all subsequent painting on this canvas may be affected, with potentially hilarious but confusing results.

To paint text on a Canvas, use a TextPainter.

To paint an image on a Canvas:

  1. Obtain an ImageStream, for example by calling ImageProvider.resolve on an AssetImage or NetworkImage object.

  2. Whenever the ImageStream's underlying ImageInfo object changes (see ImageStream.addListener), create a new instance of your custom paint delegate, giving it the new ImageInfo object.

  3. In your delegate's paint method, call the Canvas.drawImage, Canvas.drawImageRect, or Canvas.drawImageNine methods to paint the ImageInfo.image object, applying the ImageInfo.scale value to obtain the correct rendering size.

Implementation

@override
void paint(Canvas canvas, Size size) {
  final scaleX = size.width / 23.0;
  final scaleY = size.height / 23.0;
  final scale = math.min(scaleX, scaleY);

  final translationX = (size.width - 23.0 * scale) / 2 - 0.5 * scale;
  final translationY = (size.height - 23.0 * scale) / 2 - 0.5 * scale;

  final path = Path();
  final paint = Paint()..color = color;

  path.moveTo(
    22.5 * scale + translationX,
    5.5 * scale + translationY,
  );

  path.cubicTo(
    23.052284749830793 * scale + translationX,
    5.5 * scale + translationY,
    23.5 * scale + translationX,
    5.052284749830793 * scale + translationY,
    23.5 * scale + translationX,
    4.5 * scale + translationY,
  );

  path.lineTo(
    23.5 * scale + translationX,
    1.5 * scale + translationY,
  );

  path.cubicTo(
    23.5 * scale + translationX,
    0.9477152501692067 * scale + translationY,
    23.052284749830793 * scale + translationX,
    0.5 * scale + translationY,
    22.5 * scale + translationX,
    0.5 * scale + translationY,
  );

  path.lineTo(
    19.5 * scale + translationX,
    0.5 * scale + translationY,
  );

  path.cubicTo(
    18.947715250169207 * scale + translationX,
    0.5 * scale + translationY,
    18.5 * scale + translationX,
    0.9477152501692064 * scale + translationY,
    18.5 * scale + translationX,
    1.4999999999999998 * scale + translationY,
  );

  path.cubicTo(
    18.5 * scale + translationX,
    1.7761423749153966 * scale + translationY,
    18.2761423749154 * scale + translationX,
    2.0 * scale + translationY,
    18.0 * scale + translationX,
    2.0 * scale + translationY,
  );

  path.cubicTo(
    17.723857625084605 * scale + translationX,
    2.0 * scale + translationY,
    17.5 * scale + translationX,
    1.7761423749153966 * scale + translationY,
    17.5 * scale + translationX,
    1.5 * scale + translationY,
  );

  path.cubicTo(
    17.5 * scale + translationX,
    0.9477152501692067 * scale + translationY,
    17.052284749830793 * scale + translationX,
    0.5 * scale + translationY,
    16.5 * scale + translationX,
    0.5 * scale + translationY,
  );

  path.lineTo(
    13.5 * scale + translationX,
    0.5 * scale + translationY,
  );

  path.cubicTo(
    12.947715250169207 * scale + translationX,
    0.5 * scale + translationY,
    12.5 * scale + translationX,
    0.9477152501692064 * scale + translationY,
    12.5 * scale + translationX,
    1.4999999999999998 * scale + translationY,
  );

  path.cubicTo(
    12.5 * scale + translationX,
    1.7761423749153966 * scale + translationY,
    12.276142374915397 * scale + translationX,
    2.0 * scale + translationY,
    12.0 * scale + translationX,
    2.0 * scale + translationY,
  );

  path.cubicTo(
    11.723857625084603 * scale + translationX,
    2.0 * scale + translationY,
    11.5 * scale + translationX,
    1.7761423749153966 * scale + translationY,
    11.5 * scale + translationX,
    1.5 * scale + translationY,
  );

  path.cubicTo(
    11.5 * scale + translationX,
    0.9477152501692067 * scale + translationY,
    11.052284749830793 * scale + translationX,
    0.5 * scale + translationY,
    10.5 * scale + translationX,
    0.5 * scale + translationY,
  );

  path.lineTo(
    7.5 * scale + translationX,
    0.5 * scale + translationY,
  );

  path.cubicTo(
    6.947715250169207 * scale + translationX,
    0.5 * scale + translationY,
    6.5 * scale + translationX,
    0.9477152501692064 * scale + translationY,
    6.5 * scale + translationX,
    1.4999999999999998 * scale + translationY,
  );

  path.cubicTo(
    6.5 * scale + translationX,
    1.7761423749153966 * scale + translationY,
    6.276142374915397 * scale + translationX,
    2.0 * scale + translationY,
    6.0 * scale + translationX,
    2.0 * scale + translationY,
  );

  path.cubicTo(
    5.723857625084603 * scale + translationX,
    2.0 * scale + translationY,
    5.5 * scale + translationX,
    1.7761423749153966 * scale + translationY,
    5.5 * scale + translationX,
    1.5 * scale + translationY,
  );

  path.cubicTo(
    5.5 * scale + translationX,
    0.9477152501692067 * scale + translationY,
    5.052284749830793 * scale + translationX,
    0.5 * scale + translationY,
    4.5 * scale + translationX,
    0.5 * scale + translationY,
  );

  path.lineTo(
    1.5 * scale + translationX,
    0.5 * scale + translationY,
  );

  path.cubicTo(
    0.9477152501692068 * scale + translationX,
    0.5 * scale + translationY,
    0.5000000000000001 * scale + translationX,
    0.9477152501692064 * scale + translationY,
    0.5 * scale + translationX,
    1.4999999999999998 * scale + translationY,
  );

  path.lineTo(
    0.5 * scale + translationX,
    4.5 * scale + translationY,
  );

  path.cubicTo(
    0.5000000000000001 * scale + translationX,
    5.052284749830793 * scale + translationY,
    0.9477152501692067 * scale + translationX,
    5.5 * scale + translationY,
    1.5 * scale + translationX,
    5.5 * scale + translationY,
  );

  path.cubicTo(
    1.7761423749153966 * scale + translationX,
    5.5 * scale + translationY,
    2.0 * scale + translationX,
    5.723857625084603 * scale + translationY,
    2.0 * scale + translationX,
    6.0 * scale + translationY,
  );

  path.cubicTo(
    2.0 * scale + translationX,
    6.276142374915397 * scale + translationY,
    1.7761423749153966 * scale + translationX,
    6.5 * scale + translationY,
    1.5 * scale + translationX,
    6.5 * scale + translationY,
  );

  path.cubicTo(
    0.9477152501692068 * scale + translationX,
    6.5 * scale + translationY,
    0.5000000000000001 * scale + translationX,
    6.947715250169207 * scale + translationY,
    0.5 * scale + translationX,
    7.5 * scale + translationY,
  );

  path.lineTo(
    0.5 * scale + translationX,
    10.5 * scale + translationY,
  );

  path.cubicTo(
    0.5000000000000001 * scale + translationX,
    11.052284749830793 * scale + translationY,
    0.9477152501692067 * scale + translationX,
    11.5 * scale + translationY,
    1.5 * scale + translationX,
    11.5 * scale + translationY,
  );

  path.cubicTo(
    1.7761423749153966 * scale + translationX,
    11.5 * scale + translationY,
    2.0 * scale + translationX,
    11.723857625084603 * scale + translationY,
    2.0 * scale + translationX,
    12.0 * scale + translationY,
  );

  path.cubicTo(
    2.0 * scale + translationX,
    12.276142374915397 * scale + translationY,
    1.7761423749153966 * scale + translationX,
    12.5 * scale + translationY,
    1.5 * scale + translationX,
    12.5 * scale + translationY,
  );

  path.cubicTo(
    0.9477152501692068 * scale + translationX,
    12.5 * scale + translationY,
    0.5000000000000001 * scale + translationX,
    12.947715250169207 * scale + translationY,
    0.5 * scale + translationX,
    13.5 * scale + translationY,
  );

  path.lineTo(
    0.5 * scale + translationX,
    16.5 * scale + translationY,
  );

  path.cubicTo(
    0.5000000000000001 * scale + translationX,
    17.052284749830793 * scale + translationY,
    0.9477152501692067 * scale + translationX,
    17.5 * scale + translationY,
    1.5 * scale + translationX,
    17.5 * scale + translationY,
  );

  path.cubicTo(
    1.7761423749153966 * scale + translationX,
    17.5 * scale + translationY,
    2.0 * scale + translationX,
    17.7238576250846 * scale + translationY,
    2.0 * scale + translationX,
    18.0 * scale + translationY,
  );

  path.cubicTo(
    2.0 * scale + translationX,
    18.2761423749154 * scale + translationY,
    1.7761423749153966 * scale + translationX,
    18.5 * scale + translationY,
    1.5 * scale + translationX,
    18.5 * scale + translationY,
  );

  path.cubicTo(
    0.9477152501692068 * scale + translationX,
    18.5 * scale + translationY,
    0.5000000000000001 * scale + translationX,
    18.947715250169207 * scale + translationY,
    0.5 * scale + translationX,
    19.5 * scale + translationY,
  );

  path.lineTo(
    0.5 * scale + translationX,
    22.5 * scale + translationY,
  );

  path.cubicTo(
    0.5000000000000001 * scale + translationX,
    23.052284749830793 * scale + translationY,
    0.9477152501692067 * scale + translationX,
    23.5 * scale + translationY,
    1.5 * scale + translationX,
    23.5 * scale + translationY,
  );

  path.lineTo(
    4.5 * scale + translationX,
    23.5 * scale + translationY,
  );

  path.cubicTo(
    5.052284749830793 * scale + translationX,
    23.5 * scale + translationY,
    5.5 * scale + translationX,
    23.052284749830793 * scale + translationY,
    5.5 * scale + translationX,
    22.5 * scale + translationY,
  );

  path.cubicTo(
    5.5 * scale + translationX,
    22.223857625084605 * scale + translationY,
    5.723857625084603 * scale + translationX,
    22.0 * scale + translationY,
    6.0 * scale + translationX,
    22.0 * scale + translationY,
  );

  path.cubicTo(
    6.276142374915397 * scale + translationX,
    22.0 * scale + translationY,
    6.5 * scale + translationX,
    22.2238576250846 * scale + translationY,
    6.5 * scale + translationX,
    22.5 * scale + translationY,
  );

  path.cubicTo(
    6.5 * scale + translationX,
    23.052284749830793 * scale + translationY,
    6.947715250169207 * scale + translationX,
    23.5 * scale + translationY,
    7.5 * scale + translationX,
    23.5 * scale + translationY,
  );

  path.lineTo(
    10.5 * scale + translationX,
    23.5 * scale + translationY,
  );

  path.cubicTo(
    11.052284749830793 * scale + translationX,
    23.5 * scale + translationY,
    11.5 * scale + translationX,
    23.052284749830793 * scale + translationY,
    11.5 * scale + translationX,
    22.5 * scale + translationY,
  );

  path.cubicTo(
    11.5 * scale + translationX,
    22.223857625084605 * scale + translationY,
    11.723857625084603 * scale + translationX,
    22.0 * scale + translationY,
    12.0 * scale + translationX,
    22.0 * scale + translationY,
  );

  path.cubicTo(
    12.276142374915397 * scale + translationX,
    22.0 * scale + translationY,
    12.5 * scale + translationX,
    22.2238576250846 * scale + translationY,
    12.5 * scale + translationX,
    22.5 * scale + translationY,
  );

  path.cubicTo(
    12.5 * scale + translationX,
    23.052284749830793 * scale + translationY,
    12.947715250169207 * scale + translationX,
    23.5 * scale + translationY,
    13.5 * scale + translationX,
    23.5 * scale + translationY,
  );

  path.lineTo(
    16.5 * scale + translationX,
    23.5 * scale + translationY,
  );

  path.cubicTo(
    17.052284749830793 * scale + translationX,
    23.5 * scale + translationY,
    17.5 * scale + translationX,
    23.052284749830793 * scale + translationY,
    17.5 * scale + translationX,
    22.5 * scale + translationY,
  );

  path.cubicTo(
    17.5 * scale + translationX,
    22.223857625084605 * scale + translationY,
    17.7238576250846 * scale + translationX,
    22.0 * scale + translationY,
    18.0 * scale + translationX,
    22.0 * scale + translationY,
  );

  path.cubicTo(
    18.276142374915395 * scale + translationX,
    22.0 * scale + translationY,
    18.5 * scale + translationX,
    22.2238576250846 * scale + translationY,
    18.5 * scale + translationX,
    22.5 * scale + translationY,
  );

  path.cubicTo(
    18.5 * scale + translationX,
    23.052284749830793 * scale + translationY,
    18.947715250169207 * scale + translationX,
    23.5 * scale + translationY,
    19.5 * scale + translationX,
    23.5 * scale + translationY,
  );

  path.lineTo(
    22.5 * scale + translationX,
    23.5 * scale + translationY,
  );

  path.cubicTo(
    23.052284749830793 * scale + translationX,
    23.5 * scale + translationY,
    23.5 * scale + translationX,
    23.052284749830793 * scale + translationY,
    23.5 * scale + translationX,
    22.5 * scale + translationY,
  );

  path.lineTo(
    23.5 * scale + translationX,
    19.5 * scale + translationY,
  );

  path.cubicTo(
    23.5 * scale + translationX,
    18.947715250169207 * scale + translationY,
    23.052284749830793 * scale + translationX,
    18.5 * scale + translationY,
    22.5 * scale + translationX,
    18.5 * scale + translationY,
  );

  path.cubicTo(
    22.223857625084605 * scale + translationX,
    18.5 * scale + translationY,
    22.0 * scale + translationX,
    18.2761423749154 * scale + translationY,
    22.0 * scale + translationX,
    18.0 * scale + translationY,
  );

  path.cubicTo(
    22.0 * scale + translationX,
    17.723857625084605 * scale + translationY,
    22.2238576250846 * scale + translationX,
    17.5 * scale + translationY,
    22.5 * scale + translationX,
    17.5 * scale + translationY,
  );

  path.cubicTo(
    23.052284749830793 * scale + translationX,
    17.5 * scale + translationY,
    23.5 * scale + translationX,
    17.052284749830793 * scale + translationY,
    23.5 * scale + translationX,
    16.5 * scale + translationY,
  );

  path.lineTo(
    23.5 * scale + translationX,
    13.5 * scale + translationY,
  );

  path.cubicTo(
    23.5 * scale + translationX,
    12.947715250169207 * scale + translationY,
    23.052284749830793 * scale + translationX,
    12.5 * scale + translationY,
    22.5 * scale + translationX,
    12.5 * scale + translationY,
  );

  path.cubicTo(
    22.223857625084605 * scale + translationX,
    12.5 * scale + translationY,
    22.0 * scale + translationX,
    12.276142374915397 * scale + translationY,
    22.0 * scale + translationX,
    12.0 * scale + translationY,
  );

  path.cubicTo(
    22.0 * scale + translationX,
    11.723857625084603 * scale + translationY,
    22.2238576250846 * scale + translationX,
    11.5 * scale + translationY,
    22.5 * scale + translationX,
    11.5 * scale + translationY,
  );

  path.cubicTo(
    23.052284749830793 * scale + translationX,
    11.5 * scale + translationY,
    23.5 * scale + translationX,
    11.052284749830793 * scale + translationY,
    23.5 * scale + translationX,
    10.5 * scale + translationY,
  );

  path.lineTo(
    23.5 * scale + translationX,
    7.5 * scale + translationY,
  );

  path.cubicTo(
    23.5 * scale + translationX,
    6.947715250169207 * scale + translationY,
    23.052284749830793 * scale + translationX,
    6.5 * scale + translationY,
    22.5 * scale + translationX,
    6.5 * scale + translationY,
  );

  path.cubicTo(
    22.223857625084605 * scale + translationX,
    6.5 * scale + translationY,
    22.0 * scale + translationX,
    6.276142374915397 * scale + translationY,
    22.0 * scale + translationX,
    6.0 * scale + translationY,
  );

  path.cubicTo(
    22.0 * scale + translationX,
    5.723857625084603 * scale + translationY,
    22.2238576250846 * scale + translationX,
    5.5 * scale + translationY,
    22.5 * scale + translationX,
    5.5 * scale + translationY,
  );

  path.close();

  path.moveTo(
    21.5 * scale + translationX,
    3.71 * scale + translationY,
  );

  path.cubicTo(
    20.59051431805362 * scale + translationX,
    4.108325363495087 * scale + translationY,
    20.00294590400034 * scale + translationX,
    5.007111455379732 * scale + translationY,
    20.00294590400034 * scale + translationX,
    6.000000089406967 * scale + translationY,
  );

  path.cubicTo(
    20.00294590400034 * scale + translationX,
    6.9928887234342 * scale + translationY,
    20.59051431805362 * scale + translationX,
    7.891674815318846 * scale + translationY,
    21.500000320374966 * scale + translationX,
    8.290000123530625 * scale + translationY,
  );

  path.lineTo(
    21.5 * scale + translationX,
    9.71 * scale + translationY,
  );

  path.cubicTo(
    20.59051431805362 * scale + translationX,
    10.108325452902054 * scale + translationY,
    20.00294590400034 * scale + translationX,
    11.007111544786701 * scale + translationY,
    20.00294590400034 * scale + translationX,
    12.000000178813934 * scale + translationY,
  );

  path.cubicTo(
    20.00294590400034 * scale + translationX,
    12.99288881284117 * scale + translationY,
    20.590514318053618 * scale + translationX,
    13.891674904725814 * scale + translationY,
    21.500000320374966 * scale + translationX,
    14.290000212937592 * scale + translationY,
  );

  path.lineTo(
    21.5 * scale + translationX,
    15.71 * scale + translationY,
  );

  path.cubicTo(
    20.59051431805362 * scale + translationX,
    16.10832554230902 * scale + translationY,
    20.00294590400034 * scale + translationX,
    17.007111634193667 * scale + translationY,
    20.00294590400034 * scale + translationX,
    18.0000002682209 * scale + translationY,
  );

  path.cubicTo(
    20.00294590400034 * scale + translationX,
    18.992888902248136 * scale + translationY,
    20.590514318053618 * scale + translationX,
    19.891674994132785 * scale + translationY,
    21.500000320374966 * scale + translationX,
    20.290000302344563 * scale + translationY,
  );

  path.lineTo(
    21.5 * scale + translationX,
    21.5 * scale + translationY,
  );

  path.lineTo(
    20.29 * scale + translationX,
    21.5 * scale + translationY,
  );

  path.cubicTo(
    19.891674994132785 * scale + translationX,
    20.590514318053618 * scale + translationY,
    18.992888902248136 * scale + translationX,
    20.002945904000335 * scale + translationY,
    18.0000002682209 * scale + translationX,
    20.002945904000335 * scale + translationY,
  );

  path.cubicTo(
    17.007111634193667 * scale + translationX,
    20.002945904000335 * scale + translationY,
    16.108325542309018 * scale + translationX,
    20.590514318053618 * scale + translationY,
    15.71000023409724 * scale + translationX,
    21.500000320374966 * scale + translationY,
  );

  path.lineTo(
    14.29 * scale + translationX,
    21.5 * scale + translationY,
  );

  path.cubicTo(
    13.891674904725814 * scale + translationX,
    20.59051431805362 * scale + translationY,
    12.99288881284117 * scale + translationX,
    20.00294590400034 * scale + translationY,
    12.000000178813934 * scale + translationX,
    20.00294590400034 * scale + translationY,
  );

  path.cubicTo(
    11.0071115447867 * scale + translationX,
    20.00294590400034 * scale + translationY,
    10.108325452902054 * scale + translationX,
    20.59051431805362 * scale + translationY,
    9.710000144690275 * scale + translationX,
    21.500000320374966 * scale + translationY,
  );

  path.lineTo(
    8.29 * scale + translationX,
    21.5 * scale + translationY,
  );

  path.cubicTo(
    7.891674815318846 * scale + translationX,
    20.59051431805362 * scale + translationY,
    6.9928887234342 * scale + translationX,
    20.00294590400034 * scale + translationY,
    6.000000089406966 * scale + translationX,
    20.00294590400034 * scale + translationY,
  );

  path.cubicTo(
    5.007111455379731 * scale + translationX,
    20.00294590400034 * scale + translationY,
    4.108325363495085 * scale + translationX,
    20.59051431805362 * scale + translationY,
    3.7100000552833072 * scale + translationX,
    21.500000320374966 * scale + translationY,
  );

  path.lineTo(
    2.5 * scale + translationX,
    21.5 * scale + translationY,
  );

  path.lineTo(
    2.5 * scale + translationX,
    20.29 * scale + translationY,
  );

  path.cubicTo(
    3.4094860395742494 * scale + translationX,
    19.891674994132785 * scale + translationY,
    3.997054453627533 * scale + translationX,
    18.992888902248136 * scale + translationY,
    3.997054453627533 * scale + translationX,
    18.0000002682209 * scale + translationY,
  );

  path.cubicTo(
    3.997054453627533 * scale + translationX,
    17.007111634193667 * scale + translationY,
    3.4094860395742494 * scale + translationX,
    16.108325542309018 * scale + translationY,
    2.500000037252903 * scale + translationX,
    15.71000023409724 * scale + translationY,
  );

  path.lineTo(
    2.5 * scale + translationX,
    14.29 * scale + translationY,
  );

  path.cubicTo(
    3.4094860395742477 * scale + translationX,
    13.891674904725814 * scale + translationY,
    3.9970544536275296 * scale + translationX,
    12.99288881284117 * scale + translationY,
    3.9970544536275296 * scale + translationX,
    12.000000178813934 * scale + translationY,
  );

  path.cubicTo(
    3.9970544536275296 * scale + translationX,
    11.0071115447867 * scale + translationY,
    3.4094860395742477 * scale + translationX,
    10.108325452902054 * scale + translationY,
    2.500000037252903 * scale + translationX,
    9.710000144690275 * scale + translationY,
  );

  path.lineTo(
    2.5 * scale + translationX,
    8.29 * scale + translationY,
  );

  path.cubicTo(
    3.4094860395742477 * scale + translationX,
    7.891674815318847 * scale + translationY,
    3.997054453627529 * scale + translationX,
    6.9928887234342 * scale + translationY,
    3.997054453627529 * scale + translationX,
    6.000000089406966 * scale + translationY,
  );

  path.cubicTo(
    3.997054453627529 * scale + translationX,
    5.007111455379731 * scale + translationY,
    3.4094860395742477 * scale + translationX,
    4.108325363495085 * scale + translationY,
    2.500000037252903 * scale + translationX,
    3.710000055283307 * scale + translationY,
  );

  path.lineTo(
    2.5 * scale + translationX,
    2.5 * scale + translationY,
  );

  path.lineTo(
    3.71 * scale + translationX,
    2.5 * scale + translationY,
  );

  path.cubicTo(
    4.108325363495086 * scale + translationX,
    3.4094860395742472 * scale + translationY,
    5.007111455379732 * scale + translationX,
    3.997054453627529 * scale + translationY,
    6.000000089406967 * scale + translationX,
    3.997054453627529 * scale + translationY,
  );

  path.cubicTo(
    6.992888723434202 * scale + translationX,
    3.997054453627529 * scale + translationY,
    7.891674815318847 * scale + translationX,
    3.4094860395742477 * scale + translationY,
    8.290000123530625 * scale + translationX,
    2.500000037252903 * scale + translationY,
  );

  path.lineTo(
    9.71 * scale + translationX,
    2.5 * scale + translationY,
  );

  path.cubicTo(
    10.108325452902054 * scale + translationX,
    3.4094860395742477 * scale + translationY,
    11.0071115447867 * scale + translationX,
    3.9970544536275296 * scale + translationY,
    12.000000178813934 * scale + translationX,
    3.9970544536275296 * scale + translationY,
  );

  path.cubicTo(
    12.99288881284117 * scale + translationX,
    3.9970544536275296 * scale + translationY,
    13.891674904725818 * scale + translationX,
    3.4094860395742477 * scale + translationY,
    14.290000212937596 * scale + translationX,
    2.500000037252903 * scale + translationY,
  );

  path.lineTo(
    15.71 * scale + translationX,
    2.5 * scale + translationY,
  );

  path.cubicTo(
    16.10832554230902 * scale + translationX,
    3.4094860395742477 * scale + translationY,
    17.007111634193667 * scale + translationX,
    3.9970544536275296 * scale + translationY,
    18.0000002682209 * scale + translationX,
    3.9970544536275296 * scale + translationY,
  );

  path.cubicTo(
    18.992888902248136 * scale + translationX,
    3.9970544536275296 * scale + translationY,
    19.891674994132785 * scale + translationX,
    3.4094860395742477 * scale + translationY,
    20.290000302344563 * scale + translationX,
    2.500000037252903 * scale + translationY,
  );

  path.lineTo(
    21.5 * scale + translationX,
    2.5 * scale + translationY,
  );

  path.close();

  path.moveTo(
    12.0 * scale + translationX,
    5.0 * scale + translationY,
  );

  path.cubicTo(
    8.13400728762625 * scale + translationX,
    5.000000536441803 * scale + translationY,
    5.000000536441804 * scale + translationX,
    8.134007287626247 * scale + translationY,
    5.000000536441803 * scale + translationX,
    12.000000536441801 * scale + translationY,
  );

  path.cubicTo(
    5.000000536441803 * scale + translationX,
    15.865993785257356 * scale + translationY,
    8.134007287626247 * scale + translationX,
    19.000000536441803 * scale + translationY,
    12.000000536441801 * scale + translationX,
    19.000000536441803 * scale + translationY,
  );

  path.cubicTo(
    13.229392439167153 * scale + translationX,
    19.002666884799087 * scale + translationY,
    14.437365376284534 * scale + translationX,
    18.678239867401842 * scale + translationY,
    15.500000001769745 * scale + translationX,
    18.060000002062036 * scale + translationY,
  );

  path.cubicTo(
    15.825478386698212 * scale + translationX,
    17.889737140651107 * scale + translationY,
    16.031412491516413 * scale + translationX,
    17.55473866288757 * scale + translationY,
    16.036383893064727 * scale + translationX,
    17.18745007519667 * scale + translationY,
  );

  path.cubicTo(
    16.041355294613037 * scale + translationX,
    16.820161487505768 * scale + translationY,
    15.844563655454522 * scale + translationX,
    16.479711951761537 * scale + translationY,
    15.523812817828698 * scale + translationX,
    16.300702115038344 * scale + translationY,
  );

  path.cubicTo(
    15.203061980202875 * scale + translationX,
    16.12169227831515 * scale + translationY,
    14.809989073154359 * scale + translationX,
    16.13294062822024 * scale + translationY,
    14.5 * scale + translationX,
    16.33 * scale + translationY,
  );

  path.cubicTo(
    12.54014991249679 * scale + translationX,
    17.46152032021922 * scale + translationY,
    10.06464477213601 * scale + translationX,
    17.13560587141994 * scale + translationY,
    8.464443878724753 * scale + translationX,
    15.53538463749029 * scale + translationY,
  );

  path.cubicTo(
    6.864242985313497 * scale + translationX,
    13.935163403560642 * scale + translationY,
    6.538360003050795 * scale + translationX,
    11.459654120653314 * scale + translationY,
    7.669904991788354 * scale + translationX,
    9.49981820015986 * scale + translationY,
  );

  path.cubicTo(
    8.801449980525913 * scale + translationX,
    7.539982279666405 * scale + translationY,
    11.108269671870213 * scale + translationX,
    6.584509182444409 * scale + translationY,
    13.294187478703105 * scale + translationX,
    7.17026872232778 * scale + translationY,
  );

  path.cubicTo(
    15.480105285535998 * scale + translationX,
    7.7560282622111485 * scale + translationY,
    17.000057724057683 * scale + translationX,
    9.736959990595741 * scale + translationY,
    17.000000253319737 * scale + translationX,
    12.00000017881393 * scale + translationY,
  );

  path.lineTo(
    17.0 * scale + translationX,
    12.5 * scale + translationY,
  );

  path.cubicTo(
    17.00000030334388 * scale + translationX,
    12.958396567690164 * scale + translationY,
    16.628396629519713 * scale + translationX,
    13.330000241514332 * scale + translationY,
    16.17000027242065 * scale + translationX,
    13.330000224574349 * scale + translationY,
  );

  path.cubicTo(
    15.709957520547007 * scale + translationX,
    13.330032052833976 * scale + translationY,
    15.335476066708464 * scale + translationX,
    12.960008711541128 * scale + translationY,
    15.329999375176437 * scale + translationX,
    12.499999490522207 * scale + translationY,
  );

  path.lineTo(
    15.330000000000002 * scale + translationX,
    9.67 * scale + translationY,
  );

  path.cubicTo(
    15.319344507797137 * scale + translationX,
    9.250261673122319 * scale + translationY,
    15.047619962931133 * scale + translationX,
    8.881880757728043 * scale + translationY,
    14.649742245040716 * scale + translationX,
    8.747764673045879 * scale + translationY,
  );

  path.cubicTo(
    14.2518645271503 * scale + translationX,
    8.613648588363715 * scale + translationY,
    13.812579625471392 * scale + translationX,
    8.742363398181057 * scale + translationY,
    13.550000000000002 * scale + translationX,
    9.07 * scale + translationY,
  );

  path.cubicTo(
    13.074764995585742 * scale + translationX,
    8.809520698342297 * scale + translationY,
    12.541936206017288 * scale + translationX,
    8.672016494582696 * scale + translationY,
    12.000000447034836 * scale + translationX,
    8.670000322982668 * scale + translationY,
  );

  path.cubicTo(
    10.160936444154968 * scale + translationX,
    8.6700632929811 * scale + translationY,
    8.670114768120312 * scale + translationX,
    10.160936443058802 * scale + translationY,
    8.670114768120312 * scale + translationX,
    11.999999717914307 * scale + translationY,
  );

  path.cubicTo(
    8.670114768120312 * scale + translationX,
    13.839062992769811 * scale + translationY,
    10.160936444154968 * scale + translationX,
    15.329936142847513 * scale + translationY,
    11.999999717914307 * scale + translationX,
    15.329999639635526 * scale + translationY,
  );

  path.cubicTo(
    12.79906910831021 * scale + translationX,
    15.330118122222942 * scale + translationY,
    13.570698526016765 * scale + translationX,
    15.03853465562415 * scale + translationY,
    14.170000214239442 * scale + translationX,
    14.510000219379979 * scale + translationY,
  );

  path.cubicTo(
    14.98279021521784 * scale + translationX,
    15.308362082963606 * scale + translationY,
    16.194009687773065 * scale + translationX,
    15.543728196443512 * scale + translationY,
    17.246638366049158 * scale + translationX,
    15.107857108130428 * scale + translationY,
  );

  path.cubicTo(
    18.299267044325255 * scale + translationX,
    14.671986019817345 * scale + translationY,
    18.989535103070423 * scale + translationX,
    13.649254468945976 * scale + translationY,
    18.999999674928016 * scale + translationX,
    12.50999978596576 * scale + translationY,
  );

  path.lineTo(
    19.0 * scale + translationX,
    12.0 * scale + translationY,
  );

  path.cubicTo(
    19.00000102218957 * scale + translationX,
    8.1340070432171 * scale + translationY,
    15.865994029666506 * scale + translationX,
    5.000000050694039 * scale + translationY,
    12.000000536441803 * scale + translationX,
    5.000000223517419 * scale + translationY,
  );

  path.close();

  path.moveTo(
    12.0 * scale + translationX,
    13.33 * scale + translationY,
  );

  path.cubicTo(
    11.265461528486506 * scale + translationX,
    13.330000310001777 * scale + translationY,
    10.670000219501016 * scale + translationX,
    12.734539008587968 * scale + translationY,
    10.670000217165981 * scale + translationX,
    12.000000264309282 * scale + translationY,
  );

  path.cubicTo(
    10.670000214830946 * scale + translationX,
    11.265461520030598 * scale + translationY,
    11.265461520030595 * scale + translationX,
    10.670000214830946 * scale + translationY,
    12.00000026430928 * scale + translationX,
    10.670000217165981 * scale + translationY,
  );

  path.cubicTo(
    12.734539008587966 * scale + translationX,
    10.670000219501016 * scale + translationY,
    13.330000310001774 * scale + translationX,
    11.265461528486506 * scale + translationY,
    13.33000030299667 * scale + translationX,
    12.000000272765192 * scale + translationY,
  );

  path.cubicTo(
    13.33268914991857 * scale + translationX,
    12.353555715469389 * scale + translationY,
    13.193428124221098 * scale + translationX,
    12.693410890420042 * scale + translationY,
    12.94341950732057 * scale + translationX,
    12.94341950732057 * scale + translationY,
  );

  path.cubicTo(
    12.693410890420042 * scale + translationX,
    13.193428124221098 * scale + translationY,
    12.353555715469389 * scale + translationX,
    13.33268914991857 * scale + translationY,
    12.000000362396236 * scale + translationX,
    13.330000402561819 * scale + translationY,
  );

  path.close();

  canvas.drawPath(path, paint);
}