+
    f7i  c                   s(    ^ RI Ht  ! R R]4      tR# )    )ContourFilterPenc                   s*   a  ] tR t^t o RtR tRtV tR# )ExplicitClosingLinePenaA	  A filter pen that adds an explicit lineTo to the first point of each closed
contour if the end point of the last segment is not already the same as the first point.
Otherwise, it passes the contour through unchanged.

>>> from pprint import pprint
>>> from fontTools.pens.recordingPen import RecordingPen
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.lineTo((100, 0))
>>> pen.lineTo((100, 100))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('lineTo', ((100, 0),)),
 ('lineTo', ((100, 100),)),
 ('lineTo', ((0, 0),)),
 ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.lineTo((100, 0))
>>> pen.lineTo((100, 100))
>>> pen.lineTo((0, 0))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('lineTo', ((100, 0),)),
 ('lineTo', ((100, 100),)),
 ('lineTo', ((0, 0),)),
 ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.curveTo((100, 0), (0, 100), (100, 100))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('curveTo', ((100, 0), (0, 100), (100, 100))),
 ('lineTo', ((0, 0),)),
 ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.curveTo((100, 0), (0, 100), (100, 100))
>>> pen.lineTo((0, 0))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('curveTo', ((100, 0), (0, 100), (100, 100))),
 ('lineTo', ((0, 0),)),
 ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.curveTo((100, 0), (0, 100), (0, 0))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('curveTo', ((100, 0), (0, 100), (0, 0))),
 ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)), ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.closePath()
>>> pprint(rec.value)
[('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.lineTo((100, 0))
>>> pen.lineTo((100, 100))
>>> pen.endPath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('lineTo', ((100, 0),)),
 ('lineTo', ((100, 100),)),
 ('endPath', ())]
c                s"   V'       d;   V^ ,          ^ ,          R8w  g&   VR,          ^ ,          R8w  g   \        V4      ^8  d   R# V^ ,          ^,          ^ ,          pVR,          ^,          pV'       d   W#R,          8w  d   RV33R.VRR% R# R# R# )r    ZmoveTo	closePathNZlineToii)r    )Zlen)ZselfZcontourZmovePtZlastSegs   &&  L/usr/lib64/python3.14/site-packages/fontTools/pens/explicitClosingLinePen.pyfilterContourZ$ExplicitClosingLinePen.filterContourZ   s~    qz!}(r{1~,7|aAq!"+a.v,%y13DEGBCL -7    r   N)Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      s     SjF Fr   r   N)ZfontTools.pens.filterPenr   r   r   r   r   <module>r      s    5aF- aFr   