Hand Figure Does Not Fill Properly

I’m trying to use the Hand function from figure.js. That code doesn’t close the figure and doesn’t fill it. When I close the figure and set fill to true, the fill doesn’t look right. Anyway to update the function so that it fills properly?

go.Shape.defineFigureGenerator("Hand", function(shape, w, h) {
  var geo = new go.Geometry();
  var fig = new go.PathFigure(0, 0.5 * h, true);
  geo.add(fig);

  fig.add(new go.PathSegment(go.PathSegment.Bezier, 0.1 * w, 0.3 * h, 0, 0.375 * h, 0.05 * w, 0.325 * h));
  fig.add(new go.PathSegment(go.PathSegment.Bezier, 0.45 * w, 0.075 * h, 0.3 * w, 0.225 * h, 0.4 * w, 0.175 * h));
  fig.add(new go.PathSegment(go.PathSegment.Bezier, 0.525 * w, 0.075 * h, 0.46 * w, 0.05 * h, 0.525 * w, 0.05 * h));
  fig.add(new go.PathSegment(go.PathSegment.Bezier, 0.3 * w, 0.4 * h, 0.525 * w, 0.275 * h, 0.475 * w, 0.325 * h));
  fig.add(new go.PathSegment(go.PathSegment.Line, 0.9 * w, 0.4 * h));
  fig.add(new go.PathSegment(go.PathSegment.Bezier, 0.9 * w, 0.55 * h, w, 0.4 * h, w, 0.55 * h));
  fig.add(new go.PathSegment(go.PathSegment.Line, 0.425 * w, 0.55 * h));
  fig.add(new go.PathSegment(go.PathSegment.Line, 0.6 * w, 0.55 * h));
  fig.add(new go.PathSegment(go.PathSegment.Bezier, 0.6 * w, 0.7 * h, 0.675 * w, 0.55 * h, 0.675 * w, 0.7 * h));
  fig.add(new go.PathSegment(go.PathSegment.Line, 0.4 * w, 0.7 * h));
  fig.add(new go.PathSegment(go.PathSegment.Line, 0.575 * w, 0.7 * h));
  fig.add(new go.PathSegment(go.PathSegment.Bezier, 0.575 * w, 0.85 * h, 0.65 * w, 0.7 * h, 0.65 * w, 0.85 * h));
  fig.add(new go.PathSegment(go.PathSegment.Line, 0.4 * w, 0.85 * h));
  fig.add(new go.PathSegment(go.PathSegment.Line, 0.525 * w, 0.85 * h));
  fig.add(new go.PathSegment(go.PathSegment.Bezier, 0.535 * w, h, 0.61 * w, 0.85 * h, 0.61 * w, h));
  fig.add(new go.PathSegment(go.PathSegment.Bezier, 0, 0.9 * h, 0.435 * w, h, 0, h).close());
  return geo;
});