+
    iW                     b   ^RI 5 ^ RIHt ^ RIHt ^ RIHtHtHt ^ RI	H
t
 ^ RIHt ^ RIHtHtHt ^ RIHtHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIt^ RIt^ RIt^ RIt]P<                  ! R4      t ! R R] 4      t! ! R R4      t" ! R R]"4      t# ! R R]#4      t$ ! R R]#4      t% ! R R]"4      t&R# )   )*)TTFont)LerpGlyphSet)RecordingPenDecomposingRecordingPenRecordingPointPen)ControlBoundsPen)CairoPen)SegmentToPointPenPointToSegmentPenReverseContourPointPen)PerContourOrComponentPenSimpleRecordingPointPen)cycle)wraps)BytesIONzfontTools.varLib.interpolatablec                   ,   a  ] tR t^t o R tR tRtV tR# )OverridingDictc                    Wn         R # Nparent_dict)selfr   s   &&ڃ/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/fontTools/varLib/interpolatablePlot.py__init__OverridingDict.__init__    s    &    c                (    V P                   V,          # r   r   )r   keys   &&r   __missing__OverridingDict.__missing__#   s    $$r   r   N)__name__
__module____qualname____firstlineno__r   r    __static_attributes____classdictcell____classdict__s   @r   r   r      s     '% %r   r   c                     a  ] tR t^'t o R/tR0tR1t^t^t^t	R2t
R3tR4tRtR5tR6t^tR7t^tR8t^tR8tRtR9t^tR:tR;t^	t^tR<t^t^tR<t R=t!Rt"R>t#Rt$R?t%R@t&Rt'RAt(Rt)Rt*Rt+Rt,RBR	 lt-R
 t.R t/R t0RRRRRR/R lt1RRRRRR/R lt2R t3R t4R t5R t6RRRR/R lt7RRRR/R lt8R^ R^ RRCR^ RRR RR!RR"R/R# lt9R^ R^ R$R/R% lt:R^ R^ RRCR&^
/R' lt;R^ R^ RRCR&^
R(^/R) lt<R^ R^ RRC/R* lt=R^ R^ RRCR RR!R/R+ lt>R, t?RDR- lt@R.tAV tBR# )EInterpolatablePlot      ?z#Your font's good! Have a cupcake...a  
                          ,@.
                        ,@.@@,.
                  ,@@,.@@@.  @.@@@,.
                ,@@. @@@.     @@. @@,.
        ,@@@.@,.@.              @.  @@@@,.@.@@,.
   ,@@.@.     @@.@@.            @,.    .@' @'  @@,
 ,@@. @.          .@@.@@@.  @@'                  @,
,@.  @@.                                          @,
@.     @,@@,.     ,                             .@@,
@,.       .@,@@,.         .@@,.  ,       .@@,  @, @,
@.                             .@. @ @@,.    ,      @
 @,.@@.     @,.      @@,.      @.           @,.    @'
  @@||@,.  @'@,.       @@,.  @@ @,.        @'@@,  @'
     \\@@@@'  @,.      @'@@@@'   @@,.   @@@' //@@@'
      |||||||| @@,.  @@' |||||||  |@@@|@||  ||
       \\\\\\\  ||@@@||  |||||||  |||||||  //
        |||||||  ||||||  ||||||   ||||||  ||
         \\\\\\  ||||||  ||||||  ||||||  //
          ||||||  |||||  |||||   |||||  ||
           \\\\\  |||||  |||||  |||||  //
            |||||  ||||  |||||  ||||  ||
             \\\\  ||||  ||||  ||||  //
              ||||||||||||||||||||||||
z\_(")_/z
 o
/|\
/ \
z
 o
/O\
/ \
z \o/ Nc                ,   Wn         W n        T;'       g    V Uu. uF  p\        V4      NK  	  upV n        / V n        VP                  4        F4  w  rg\        W4      '       g   \        R V,          4      h\        WV4       K6  	  V P                  ^,          V P                  ^,          ,
          V n        V P                  ^,          V P                  ^,          ,
          V P                  ^,          ,
          V P                  ,
          V n        R# u upi )zUnknown keyword argument: %sN)out	glyphsetsreprnamestocitemshasattr	TypeErrorsetattrwidthpadpanel_widthheight	font_sizetitle_font_sizepanel_height)r   r.   r/   r1   kwargsgkvs   &&&&,   r   r   InterpolatablePlot.__init__r   s    "::	:	1tAw	:
LLNDA4## > BCCDQ #
  ::>DHHqL8KK!Odhhl*T^^a-??$BVBVV 	 ;s   Dc                    V # r    r   s   &r   	__enter__InterpolatablePlot.__enter__   s    r   c                    R # r   rD   r   typevalue	tracebacks   &&&&r   __exit__InterpolatablePlot.__exit__   s    r   c                8    V ;P                   ^,          un         R# )r   N)page_numberrE   s   &r   	show_pageInterpolatablePlot.show_page   s    Ar   show_toleranceT	tolerance	kinkinessc          
        V P                   pV P                  ^V P                   ,          ,
          pV P                  ^V P                   ,          ,
          pT;rV P                  RVV	RVV P                  R7       WP                  ,          p	^ RIp
V EF  p\        P                  P                  V4      pWP                  V P                   ,           ,          p	V P                  WV	RVR7       WP                  V P                   ,           ,          p	 V
P                  \        VR4      P                  4       4      P                  4       pV P                  RV,          W,           WR7       WP                  ,          p	VP                  R	4      '       d   \!        V4      pR
V9   d
   VR
,          MRpV'       dk   R Fa  w  ppVP#                  V4      pVf   K  V P                  V: RV: 2W,           WR7       WP                  V P                   ,           ,          p	Kc  	  EK  EK  VP                  R4      '       g   EK  ^ RIHp V! V4      pR FU  w  ppV P                  V: R\)        VV4      : 2W,           V	VR7       WP                  V P                   ,           ,          p	KW  	  EK  	  V P+                  W#VR7       V P-                  4        R#   \         d     ELdi ; i)   zProblem report for:Txyboldr7   r;   N)rY   rZ   r[   r7   rbzsha1: %srY   rZ   r7   z.ttfnamez: )GSFont)rS   rT   rU   ))Family name)      r   )Version)   )z.glyphsz.glyphspackage))r`   
familyName)VersionMajorversionMajor)VersionMinor_versionMinor)r8   r7   r:   
draw_labelr<   hashlibospathbasenamer;   sha1openread	hexdigestIsADirectoryErrorendswithr   getFirstDebugName	glyphsLibr_   getattrdraw_legendrQ   )r   filesrS   rT   rU   r8   r7   r:   rY   rZ   rk   file	base_filehttFontr^   whatnameIDsnr_   ffields   &&$$$                 r   add_title_page!InterpolatablePlot.add_title_page   sk    hh

Q\)q488|+!** 	 	
 	
!!!D((.I$((**AOOIad%OH$((**ALLdD!1!6!6!89CCE
Q!'QL^^# }}V$$)/6)9vf~t*g !227;9$(,a0AGq (  ^^dhh66*  <==,4L$KD%
 OO$('!U*;<'#	 $  $((22A$A Z 	)) 	 	
 	M % s   A*KKKc          	        \         P                  ! V P                  4      pV P                  pV P                  V P                  ,
          V P
                  ^,          ,
          pV P                  ^V P                  ,          ,
          pWPP                  ^,          ,           pWPP                  ^,          ,           p	V'       d8   V P                  RWVR7       W`P                  V P
                  ,           ,          pV P                  RWVR7       VP                  WP                  R,          ,
          VRV P                  ,          V P
                  4       VP                  ! V P                  !   VP                  4        V P                  '       dF   VP                  ! V P                  !   VP                  V P                  4       VP                  4        VP                   ! V P"                  !   VP%                  4        W`P                  V P
                  ,           ,          pV P                  RWVR7       VP                  WP                  R,          ,
          VRV P                  ,          V P
                  4       V P                  '       d+   VP                  ! V P                  !   VP                  4        V P                  '       dF   VP                  ! V P                  !   VP                  V P                  4       VP                  4        VP                   ! . V P&                  ^ ,          OV P(                  N5!   VP%                  4        W`P                  V P
                  ,           ,          pV P                  RWVR7       V P+                  VVW`P
                  R,          ,           V P,                  V P.                  V P0                  R	7       W`P                  V P
                  ,           ,          pV P                  R
WVR7       V P3                  VVW`P
                  R,          ,           V P4                  V P6                  R7       W`P                  V P
                  ,           ,          pV P                  RWVR7       V P3                  VVW`P
                  R,          ,           V P8                  V P:                  R7       W`P                  V P
                  ,           ,          pV P                  RV	VVR7       V P=                  VWP>                  R,          ,
          W`P
                  R,          ,           V P@                  R7       W`P                  V P
                  ,           ,          pV P                  RV	VVR7       V P3                  VVW`P
                  R,          ,           V P8                  V PB                  R7       W`P                  V P
                  ,           ,          pV P                  RWVR7       V P=                  VWP>                  R,          ,
          W`P
                  R,          ,           V PB                  R7       W`P                  V P
                  ,           ,          pV P                  RWVVRR7       W`P                  V P
                  ,           ,          pVe@   V P                  RV,          V	VVR7       W`P                  V P
                  ,           ,          pVe@   V P                  RV,          V	VVR7       W`P                  V P
                  ,           ,          pV P                  RWVVRR7       W`P                  V P
                  ,           ,          pR# )   z,Tolerance: badness; closer to zero the worser]   zUnderweight contoursffffff?g      ?z/Colored contours: contours with the wrong orderzKink artifactr,   )rY   rZ   diameterstroke_widthcolorz!Point causing kink in the contour)rY   rZ   r   r   z!Suggested new contour start pointz4Contour start point in contours with wrong direction333333?)rY   rZ   r   z5Contour start point when the first two points overlapz!Contour start point and directionzLegend:TrY   rZ   r7   r[   Nz!Kink-reporting aggressiveness: %gzError tolerance: %gzParameters:)"cairoContextsurfacer8   r:   r;   r7   rj   	rectangleset_source_rgb
fill_colorfill_preservestroke_colorset_line_widthr   stroke_preserveset_source_rgbaweight_issue_contour_colorfillcontour_colorscontour_alphadraw_circlekink_circle_sizekink_circle_stroke_widthkink_circle_colordraw_dotkink_point_sizekink_point_colorcorrected_start_point_sizecorrected_start_point_color
draw_arrowstart_arrow_lengthwrong_start_point_colorstart_point_color)
r   rS   rT   rU   crrY   rZ   r7   xxxxxs
   &$$$      r   rx   InterpolatablePlot.draw_legend   s   ]]4<<(HHKK$(("T^^a%77

Q\)A((Q,OO>#RW   DNN**A.#%H
R((S.(!S488^T^^L
4??+
t001d//0 
D;;<
		XX&&=QV 	 	
 	R((S.(!S488^T^^L???t/t001d//0 
GD//2GD4F4FG
		XX&&35A..3&&**66(( 	 	
 	
XX&&;suU..3&&))'' 	 	
 	
XX&&;suU..3&&4422 	 	
 	
XX&&B	 	 	
 	**S00..3&&..	 	 	
 	
XX&&C	 	 	
 	..3&&44(( 	 	
 	
XX&&;suU**S00..3&&((	 	 	
 	
XX&&	Q5tD	XX&& OO3i?	   DNN**A OO%	1	   DNN**Au4H	XX&&r   c           
        V P                   pV P                  ^V P                   ,          ,
          pV P                  ^V P                   ,          ,
          pT;rVV P                  RVVRVV P                  R7       W`P                  ,          p\        \        4      p\        VP                  4       4       F,  w  rV F!  p	WyR,          ,          P                  V4       K#  	  K.  	  RV9   d   VR \        VR R7       F  p
W`P                  ,          pV P                  RV
\        Wz,          4      3,          VVVRR	7       W`P                  ,          p\        Wz,          4       F~  pW`P                  ,           V8  d$   V P                  4        V P                  V,           pV P                  W^V,          ,           Wc^V,          ,
          R
7       W`P                  ,          pK  	  K  	  V P                  4        R# )rW   zSummary of problemsTrX   rJ   nothingc                 0    \         P                  V ,          # r   )InterpolatableProblemseverityrY   s   &r   <lambda>0InterpolatablePlot.add_summary.<locals>.<lambda>r  s    .C.L.LQ.Or   r   z%s: %dr   r]   N)r8   r7   r:   rj   r<   defaultdictsetsortedr3   addr;   lenrQ   )r   problemsr8   r7   r:   rY   rZ   glyphs_per_problem	glyphnameproblemproblem_types   &&         r   add_summaryInterpolatablePlot.add_summaryY  s   hh

Q\)q488|+!** 	 	
 	
!!!(-#)(..*:#;I#"6?377	B $ $< **"9-"$O
L AOOL#.@.N*OPP   A#$6$DE	~~%.NN$,A	S[AQQTW_U^^# F
( 	r   c           	        V P                   pV P                  ^V P                   ,          ,
          pV P                  ^V P                   ,          ,
          pT;rgV P                  WVRW@P                  R7       WpP                  V P                   ,           ,          pRpV F  w  p	w  rW8X  d   K  T
pWpP
                  ,           V8  d$   V P                  4        V P
                  V,           pV P                  W^V,          ,           Wt^V,          ,
          R7       V P                  \        V	4      Wg^V,          ^R7       WpP
                  ,          pK  	  V P                  4        R# )r   TrX   Nr]   )rY   rZ   r7   align)r8   r7   r:   rj   r<   r;   rQ   str)r   titler3   r8   r7   r:   rY   rZ   last_glyphnamepage_nor   r   s   &&&         r   _add_listingInterpolatablePlot._add_listing  s   hh

Q\)q488|+!$e?S?S 	 	
 	
!!DHH,,.3*G*i*&N>>!F* NNS(OOIQWSOQOOCLA!c'OKA /4 	r   c                l    V P                  R \        V P                  P                  4       4      4       R# )zTable of contentsNr   r   r2   r3   rE   s   &r   add_table_of_contents(InterpolatablePlot.add_table_of_contents  s#    -vdhhnn6F/GHr   c                r    V P                  R \        V P                  P                  4       R R7      4       R# )Indexc                 "    V ^,          ^ ,          # r   rD   r   s   &r   r   .InterpolatablePlot.add_index.<locals>.<lambda>  s    !A$q'r   r   Nr   rE   s   &r   	add_indexInterpolatablePlot.add_index  s%    '6$((..*:@Q#RSr   show_page_numberc          	        VP                  4        F  w  rER p. pV F  pRV9   d
   VR,          MVR,          VR,          3p	W8X  d   VP                  V4       K>  V'       d(   V P                  VVVVR7       V P                  4        . pT	pVP                  V4       K  	  V'       g   K  V P                  VVVVR7       V P                  4        K  	  R # )N
master_idxmaster_1_idxmaster_2_idx)rS   r   )r3   appendadd_problemrQ   )
r   r   rS   r   glyphglyph_problemslast_masterscurrent_glyph_problemspmasterss
   &&$$      r   add_problemsInterpolatablePlot.add_problems  s    %-^^%5!EL%'"# $q( lON+Q~->? 
 **11!4)$$.'5)9	 %  NN$-/*&&--a0) $* &%  *#1%5	 !   ? &6r   c                 aa: \        V4      \        \        39  d   V.pSV3V P                  V P                  &   V^ ,          R,          o:\        R V 4       4      p\        ;QJ d    V:3R lV 4       F  '       d   K   RM	  RM! V:3R lV 4       4      '       g1   RP                  \        V Uu0 uF  qfR,          kK  	  up4      4      o:\        P                  RSS:4       RV^ ,          9   d   R$MR%pV Uu. uF  q^ ,          V,          NK  	  p	pS:\        P                  8X  d;   \        V3R	 l\        V P                  4       4       4      p
V	P!                  ^ V
4       V P"                  pV P"                  pV P%                  R
S,           VVV P&                  ^ RV P(                  R7       \+        R V 4       4      pV^8  dI   V'       dA   V P%                  RV,          VVV P,                  ^V P"                  ,          ,
          ^RR7       WP(                  V P"                  ,           ,          pV P%                  RS:,           VVV P,                  ^V P"                  ,          ,
          V P&                  RR7       WP.                  V P"                  ^,          ,           ,          p. p\        V	4       F  w  ppV P                  V,          pV P0                  V,          pV P%                  VVVV P2                  V P4                  RR7       WP.                  V P"                  ,           ,          pVS,          e&   VP7                  V P9                  VSW/WR7      4       MV P;                  V P<                  WR7       WP>                  V P.                  ,           V P"                  ,           ,          pK  	  \@        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       Ed   V P"                  V P4                  ,           V P"                  ,           pV P"                  pWP(                  V P"                  ^,          ,           ,          pWP.                  V P"                  ,           ,          pV P                  V	^ ,          ,          pV P                  V	^,          ,          pV P%                  RVVV P&                  V P4                  RR7       WP.                  V P"                  ,           ,          p\C        VV4      pT P9                  TSRR/.V Uu. uFB  pVR,          \        PD                  \        PF                  \        PH                  39   g   K@  VNKD  	  up,           RVV\+        V4      R7       WP>                  V P.                  ,           V P"                  ,           ,          p\@        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       Ed1   V P%                  RVVV P&                  V P4                  RR7       WP.                  V P"                  ,           ,          p\K        X4      p\K        X4      p\M        \N        VR7      p\M        \N        VR7      pVS,          PQ                  V4       VS,          PQ                  V4       V FX  pVR,          \        PR                  8X  g   K!  V^ ,          R,           Uu. uF  pVPT                  V,          NK  	  ppVVn*        KZ  	  V EF  pVR,          \        PV                  8X  g   K"  VPT                  VR,          ,          pVPT                  VR,          ,          p\Y        4       p\[        VR4      p VP]                  V 4       \Y        4       p!\[        V!R4      p VP]                  V 4       VR,          p"VR,          '       dL   \Y        4       p#\_        V#4      p$V!P]                  V$4       T#p!\a        V!PT                  4      ^,
          V",
          p"V!PT                  R,          p%V!PT                  R&R p&V!PT                  ^R& p'V'V"R V'RV" ,           p'V%V',           V&,           V!n*        \O        4       p(\c        V(R4      p VP]                  V 4       \O        4       p)\c        V)R4      p V!P]                  V 4       V(PT                  Vn*        V)PT                  Vn*        VVPT                  VR,          &   VVPT                  VR,          &   EK  	  V EF  pVR,          \        PD                  8X  g   K"  VPT                  VR,          ,          pVPT                  VR,          ,          p\Y        4       p\[        VR4      p VP]                  V 4       \Y        4       p!\[        V!R4      p VP]                  V 4       VR ,          pV^,           p*VPT                  V*,          ^,          ^ ,          p+V!PT                  V*,          ^,          ^ ,          p,V^,
          \a        VPT                  4      ^,
          ,          ^,           p-VPT                  V-,          ^,          ^ ,          p.V!PT                  V-,          ^,          ^ ,          p/V^,           \a        VPT                  4      ^,
          ,          ^,           p0VPT                  V0,          ^,          ^ ,          p1V!PT                  V0,          ^,          ^ ,          p2\e        V+!  p+\e        V,!  p,\e        V.!  p.\e        V/!  p/\e        V1!  p1\e        V2!  p2\g        V+V.,
          4      \g        V1V.,
          4      ,          p3\g        V,V/,
          4      \g        V2V/,
          4      ,          p4V3V4,           ^,          p5V.V5V1V.,
          ,          ,           p+V/V5V2V/,
          ,          ,           p,VPT                  V*,          ^ ,          V+Ph                  V+Pj                  33VPT                  V*,          ^,          R!,          ,           VPT                  V*,          ^,          3VPT                  V*&   V!PT                  V*,          ^ ,          V,Ph                  V,Pj                  33V!PT                  V*,          ^,          R!,          ,           V!PT                  V*,          ^,          3V!PT                  V*&   \O        4       p(\c        V(R4      p VP]                  V 4       \O        4       p)\c        V)R4      p V!P]                  V 4       V(PT                  Vn*        V)PT                  Vn*        EK  	  \O        4       p6\O        4       p7VPT                   F(  p8V6PT                  Pm                  V8PT                  4       K*  	  VPT                   F(  p8V7PT                  Pm                  V8PT                  4       K*  	  V6P\                  V6n(        V7P\                  V7n(        V6VS&   V7VS&    \C        VV4      pV P9                  VSRR"/RVV\+        V4      R7       WP>                  V P"                  ,           ,          pMV P<                  p9\        PF                  V9   d   V Pp                  p9MC\        PH                  V9   d   V Pr                  p9M!\        Pt                  V9   d   V Pv                  p9V P;                  V9WR7       V'       dm   V P%                  \y        V P                  4      ^ V Pz                  V P.                  ,
          V P"                  ,
          V P,                  V P&                  RR#7       R# R# u upi u upi u upi u upi   \n         d"    T P;                  T P<                  YR7        EL]i ; i)'    rJ   c              3   2   "   T F  qR ,          x  K  	  R# 5irJ   NrD   .0r   s   & r   	<genexpr>1InterpolatablePlot.add_problem.<locals>.<genexpr>       D8FOO8   c              3   ,   <"   T F	  qS8H  x  K  	  R # 5ir   rD   r   ptr   s   & r   r   r          >"%   FTz, zDrawing %s: %sr   c              3   F   <"   T F  w  rVS,          f   K  Vx  K  	  R # 5ir   rD   )r   imr   s   &  r   r   r     s       7da1Y<7s   !
!zGlyph name: )rY   rZ   r   r   r[   r;   c              3   D   "   T F  qP                  R ^4      x  K  	  R# 5i)rT   N)get)r   r   s   & r   r   r     s     @x!k1--xs    ztolerance: %.2f)rY   rZ   r7   r   r[   z
Problems: )rY   rZ   r7   r   r[   r,   )rY   rZ   r   r7   r   N)rY   rZ   c              3      "   T Fd  pV\         P                  \         P                  \         P                  \         P                  \         P
                  \         P                  39   x  Kf  	  R # 5ir   )r   NOTHINGWRONG_START_POINTCONTOUR_ORDERKINKUNDERWEIGHT
OVERWEIGHTr   r   s   & r   r   r     s[      
 $ %--%77%33%**%11%00 $s   A,A.zmidway interpolationmidway)rY   rZ   scalec              3      "   T F7  pV\         P                  \         P                  \         P                  39   x  K9  	  R # 5ir   )r   r   r   r   r   s   & r   r   r   S  s@      
 $ %77%33%** $s   ?Azproposed fixglyphsetvalue_2contourreversed:Nr   NrK   :r   NNfixed)rY   rZ   r7   r   r   )r   )r   r   )>rJ   listtupler2   rP   r   alljoinr   loginfor   MISSINGnext	enumerater/   insertr8   rj   
head_colorr<   minr7   r;   r1   label_colorr9   r   
draw_glyphdraw_emoticonshrugr=   anyr   r   r   r   r   r   r   drawr   rK   r   r   r   replayr   r   r   complexabsrealimagextend
ValueErrorunderweight
overweightr   yayr   r:   );r   r   r   rS   r   problem_typesr   master_keysr@   master_indicessample_glyphrY   rZ   rT   scaleswhichr   r  r^   	glyphset1	glyphset2midway_glyphsetr   overriding1overriding2perContourPen1perContourPen2r   fixed_contourswrongContour1wrongContour2points1	converterpoints2proposed_startnew_points2reversedPen	beginPathendPathptssegment1segment2jpt0pt1j_prevpt0_prevpt1_prevj_nextpt0_nextpt1_nextr0r1r_midfixed1fixed2r  emoticonr   s;   &f&$$                                                     @r   r   InterpolatablePlot.add_problem  s    >$. zH&/%:!!"{6*D8DDs>>sss>>>>99VH,UHV__H,U%VWL!9l; x{* 1 	
 3>>+Q1+a..+>0888  '7  L !!!\2HHHHY&//** 	 	
 @x@@	q=^OO!I-jj1txx</   	
!!DHH,,<'**q488|+// 	 	
 	
^^dhhl**!*>!:E:~~j1H::j)DOO&&&&   $((**A	".OOHiAOS ""4::"8""T^^3dhh>>A) ";, 3 
 $
333 
 $
 
 
 4+++dhh6AA%%144A$((**A~a'89I~a'89I OO&oo&&   $((**A*9i@OOO(#$ &	%y-22-99-88 A%	
 &k#  ( ""T^^3dhh>>A3 
 $
333 
 $
 
 
 OOoo&&   $((**A(3K(3K5{N 6{N i %%n5i %%n5#6?&;&I&II9A!Y9O&9OA,,Q//9O # & ,:N( $ $6?&;&M&MM$2$8$89K$LM$2$8$89K$LM 01G 1'5 AI!((3/1G 1'5 AI!((3%,Y%7N z**&7&9&<[&I{3"-),W]]);a)?.)P !(b 1I%mmBC0G!--"-Cno._n1EEC$-Og$=GM  ,~H 1(D AINN9-+~H 1(D AINN9- +3..M'*2..M'?LN(();<?LN(();<W $Z $6?&;&@&@@$2$8$89K$LM$2$8$89K$LM 01G 1'5 AI!((3/1G 1'5 AI!((3(A AA!--*1-a0C!--*1-a0C!eGMM(:Q(>?!CF&}}V4Q7:H&}}V4Q7:H!eGMM(:Q(>?!CF&}}V4Q7:H&}}V4Q7:H!3-C!3-C&1H&1H&1H&1H S8^,s8h3F/GGBS8^,s8h3F/GGB"WME"Uh.A%BBC"Uh.A%BBC  a(+88SXX.07==3CA3Fr3JJa(+(GMM!$  a(+88SXX.07==3CA3Fr3JJa(+(GMM!$  ,~H 1(D AINN9-+~H 1(D AINN9- +3..M'*2..M'C $H "^F!^F)//##GMM2 0)//##GMM2 0 --FK --FK%+K	"%+K	"9".{K"H#W%f+    ""TXX--A zzH$00MA++&11]B??&..-?88x12OOD$$%++.9jjoo   {	 -V ?J	h&Z  9""4::"89s0   1|:|=|||"/|' '(}}rY   rZ   r   r   r[   Fr7   r:   r;   c                  Vf   V P                   pVf   V P                  pV	f   V P                  p	\        P                  ! V P
                  4      p
T
P                  R\        P                  V'       d   \        P                  M\        P                  4       V
P                  V	4       V
P                  4       pW,          V^,          ,          p	V
P                  V	4       V
P                  4       pV
P                  ! V!   V
P                  V4      pVP                   V8  dL   WVP                   ,          ,          p	V
P                  V	4       V
P                  4       pV
P                  V4      pW'VP                   ,
          V,          ,           pW;^ ,          ,           pV
P                  W4       V
P                  V4       R # )Nz@cairo:)r7   r:   r;   r   r   r   select_font_faceFONT_SLANT_NORMALFONT_WEIGHT_BOLDFONT_WEIGHT_NORMALset_font_sizefont_extentsr   text_extentsmove_to	show_text)r   labelrY   rZ   r   r   r[   r7   r:   r;   r   rW  extentslabel_xlabel_ys   &&$$$$$$$$     r   rj   InterpolatablePlot.draw_label  sR    =JJE>[[FI]]4<<(
##&*E""0H0H	

 	#()LO;	
#(
5!//%(==5 ..IY'??,Looe,G w}},551o%


7$
Ur   r  c          	       a"a# \        V4      \        \        39  d   V.p\        ;QJ d    R  V 4       F  '       g   K   RM	  RM! R  V 4       4      pV^ ,          R,          o"\	        R V 4       4      o#\
        ;QJ d    V"3R lS# 4       F  '       d   K   RM	  RM! V"3R lS# 4       4      '       g   Ro"W,          p	\        4       p
V	P                  V
4       \        V4      pV	P                  V4       \        V4      pVP                  V4       VP                  pVf   RpV^,          V^ ,          ,
          pV^,          V^,          ,
          pV'       d5   Vf   V P                  V,          pM\        WpP                  V,          4      pV'       d5   Vf   V P                  V,          pM\        WpP                  V,          4      pVf   ^p\        P                   ! V P"                  4      pVP%                  WV4       VP%                  V P                  W,          ,
          ^,          V P                  W,          ,
          ^,          4       VP'                  Ww) 4       VP%                  V^ ,          ) V^,          ) 4       V P(                  '       dn   VP*                  ! V P(                  !   VP-                  V^ ,          V^,          W4       VP/                  V P0                  V,          4       VP3                  4        V P4                  '       g   V P6                  '       d   \9        VV4      pVP                  V4       V P4                  '       d@   S"\:        P<                  8w  d+   VP*                  ! V P4                  !   VP?                  4        V P6                  '       dM   VP*                  ! V P6                  !   VP/                  V P@                  V,          4       VPC                  4        VPE                  4        \:        PF                  S#9   g   \:        PH                  S#9   d   \K        \        VR7      pV
P                  V4       V F  pVR,          \:        PF                  \:        PH                  39   g   K1  VPL                  VR	,          ,          pVP                  \9        VV4      4       VPN                  ! V PP                  !   VPS                  4        K  	  \        ;QJ dL    V#3R
 l\:        PT                  \:        PV                  \:        PX                  0 4       F  '       g   K   RMA	  RM=! V#3R
 l\:        PT                  \:        PV                  \:        PX                  0 4       4      '       Ed   VP[                  \        P\                  4       VPL                   F=  w  ppV'       g   K  VR,          w  rVVP_                  WV4       VPa                  WV4       K?  	  VPN                  ! V Pb                  !   VP/                  V Pd                  V,          4       VP3                  4        VPL                   F@  w  ppV'       g   K  VRR  F'  w  rVVP_                  WV4       VPa                  WV4       K)  	  KB  	  VPN                  ! V Pf                  !   VP/                  V Ph                  V,          4       VP3                  4        VPL                   EF  w  ppV'       g   K  VR9   d   VP^                  ! V^ ,          !   K1  VR8X  dF   V F  w  rVVPa                  WV4       K  	  VPk                  4        VP^                  ! VR,          !   K}  VR8X  d   VP`                  ! V^ ,          !   VPk                  4        VP^                  ! V^,          !   VP`                  ! V^,          !   VPk                  4        VP^                  ! VR,          !   EK  EK  	  VPN                  ! V Pl                  !   VP/                  V Pn                  V,          4       VP3                  4        RpV F  pVR,          \:        Pp                  8X  g   K!  VR,          p\s        V Pt                  4      p\K        \        VR7      pV
P                  V4       \w        VPL                  4       Fk  w  ppVV,          V8X  d   K  \y        V4      pVP                  \9        VV4      4       VPN                  ! . VOV Pz                  N5!   VPS                  4        Km  	  K  	  V EF  pVR,          \:        PT                  \:        P|                  39   Ed"   VP                  R	4      pVEe   V^8X  Ed	   RV9   Ed   \K        \        VR7      pVP                  V4       \        4       p\        VR4      pVPL                  Vf   TMVV,          ,          P                  V4       VPL                  VR,          ,          ^ ,          pVP                  4        VP$                  ! V!   VP'                  ^V,          ^V,          4       V P                  VV P                  V P                  R7       VP                  4        V^ 8X  g   VP                  R4      '       g   V P                  pMV P                  pRp^ pVP                  4        VPL                   EF  w  ppVR8X  d   V^ ,          pK  Vf   K  VR8X  d   Tp M	V^ ,          p Ve	   VV8X  EdG   VP                  4        \        V!  p\        V !  p \        V V,
          4      p!VP%                  VP                  VP                  4       V!'       d   VP                  \        P                  ! V P                  VP                  ,
          V P                  VP                  ,
          4      4       VP'                  ^V,          ^V,          4       V P                  VVR7       M>VP'                  ^V,          ^V,          4       V P                  VV P                  VR7       VP                  4        Ve    MRpV^,          pEK  	  VP                  4        VR,          \:        P                  8X  g   EKq  VP                  R	4      p\K        \        VR7      pVP                  V4       \        4       p\        VR4      pVPL                  Vf   TMVV,          ,          P                  V4       VPL                  VR,          ,          ^ ,          pVP                  4        VP$                  ! V!   VP'                  ^V,          ^V,          4       V'       d5   V P                  VV P                  V P                  V P                  R7       M(V P                  VV P                  V P                  R7       VP                  4        EK  	  V# )c              3   8   "   T F  qR ,          R8H  x  K  	  R# 5i)rJ   r   NrD   r   s   & r   r   0InterpolatablePlot.draw_glyph.<locals>.<genexpr>M  s     IWV_0s   TFrJ   c              3   2   "   T F  qR ,          x  K  	  R# 5ir   rD   r   s   & r   r   rb  O  r   r   c              3   ,   <"   T F	  qS8H  x  K  	  R # 5ir   rD   r   s   & r   r   rb  P  r   r   mixedNr  r  c              3   .   <"   T F
  pVS9   x  K  	  R # 5ir   rD   )r   tr&  s   & r   r   rb    s!      
 s   moveToqCurveTocurveTor  )r   r   r  	closePath)r   rK   )r   r   r   )r   r   r   r   r	  )rh  lineTo)XrJ   r
  r  r  r   r  r   r  r   r	   r  boundsr9   r  r=   r   r   r   	translater  border_colorr   r   r   border_widthstroker   r   r
   r   	OPEN_PATHr   r   r   new_pathr   r   r   rK   r   r   r   r   
NODE_COUNTNODE_INCOMPATIBILITYset_line_capLINE_CAP_ROUNDrY  line_tooncurve_node_coloroncurve_node_diameteroffcurve_node_coloroffcurve_node_diameternew_sub_pathhandle_colorhandle_widthr   r   r   r  r  r   r   r   r   r   saver   r   r   restorer   r   r  r  r  r   rotatemathatan2r   r   r   r   r   r   r   r   )$r   r  r   r   r+  rY   rZ   r  r   r   	recordingdecomposedRecording	boundsPenrm  glyph_widthglyph_heightr   penperContourPenr   r  segmentargsmatchingcolorsr   r   idxpointsr7  targetPointfirst_pt	second_ptlengthr   r&  s$   &&&&&$$$                          @@r   r  InterpolatablePlot.draw_glyphI  s
   >$. zHIIIII{6*D8DDs>>sss>>>>"L# N	

95h?

&'$X.	""9-!!>!FQi&)+ay6!9,}((;6E#4#4|#CD}))L8E#4#4|#CD=E]]4<<(
Q
 33q8!55:	
 	
fQiZ&),t001LLF1I{Id//%78IIK???d///8R(C&&s+<3H3R3R#R!!4??3  "   !!4#4#45!!$"3"3e";<""$KKM "-->$//=@4\HUM]+#6?)55)44'  ,11')2DEGNN8Hb#9:&&(G(GHGGI $ 3 
 &--%00%::
333 
 &--%00%::
 
 
 OOE001 "5!:!:Bx

1 

1  ";  7 78d885@AIIK "5!:!: "IDAJJq$JJq$ & ";  8 89d99EABIIK "5!:!: 44JJQ(
* $

1( !%OO%JJR)	)JJQ(OO%JJQ(JJQ(OO%JJR)% ";(  1 12d//%78IIKGv"7"E"EE"9-t223 8 8!   /"+M,?,?"@JAw{a'  LENN8Hb#9:&&BBt/A/ABGGI #A     Gv%--%77#  kk), ?uzi76J$<$x%M (..}=46F 1&% @I!'''/Xc]fY'"(,,wy/A"B1"EKGGILL+.HHQYE	2MM!%!@!@">> " 
 JJL A:W[[%<%< 22E 88E	%8%>%>MGT(*#'7 ' +-$,	$(G	{a3h	#*H#5$+Y$7	!$Y%9!:X]]HMMB!II $

$-NNX]]$B$-NNX]]$B!" HHQYE	: OOBeO< HHQYE	: MM ")-)H)H&+ * 
 

?!#HFAS &?V 

v"7"<"<<kk), 8 8! $**=902-fe<	##8+;C#OVV %ll77+;<Q?	k*UAI.$$!%!6!6%)%B%B"44	 %  MM!%!5!5"33 " 
 

_  b r   r   c               \   VP                  4        VP                  V4       VP                  \        P                  4       VP                  W#4       VP                  W#4       \        V4      ^8X  d
   VR,           pVP                  ! V!   VP                  4        VP                  4        R# )rW   Nr   )r  r   rv  r   rw  rY  rx  r   r   rq  r  )r   r   rY   rZ   r   r   s   &&$$$$r   r   InterpolatablePlot.draw_dot[  sw    
	
(#
,,-


1


1u:?DLE
E"
		


r   r   c               x   VP                  4        VP                  V4       VP                  \        P                  4       VP                  W#V^,          ^ ^\        P                  ,          4       \        V4      ^8X  d
   VR,           pVP                  ! V!   VP                  4        VP                  4        R# )r   Nr   )r  r   rv  r   LINE_CAP_SQUAREarcr  pir   r   rq  r  )r   r   rY   rZ   r   r   r   s   &&$$$$$r   r   InterpolatablePlot.draw_circleg  s     		
,'
--.
qX\1a$''k2u:?DLE
E"
		


r   c                  VP                  4        \        V4      ^8X  d
   VR,           pVP                  ! V!   VP                  V P                  V,           V4       VP                  ^ ^ 4       VP                  V P                  ) V P                  ) R,          4       VP                  V P                  ) V P                  R,          4       VP                  4        VP                  4        VP                  4        R# )rW   皙?Nr   )
r  r   r   rn  r   rY  rx  
close_pathr   r  )r   r   rY   rZ   r   s   &&$$$r   r   InterpolatablePlot.draw_arrowt  s    
	u:?DLE
E"
T,,q0!4


1a


$$$$$$s*	
 	

$$$##c)	
 	
	


r   c                  Vf   V P                   pVf   V P                  pVP                  4       p\        P                  ! V P
                  4      pVP                  ! V!   VP                  V P                  4       VP                  R\        P                  \        P                  4       ^ p^ p	VP                  4       p
V
^,          pV
^ ,          pV F1  pVP                  V4      p\        WP                  4      pW,          p	K3  	  V'       g   R # VP!                  W#4       \#        WX,          Wi,          4      pVP!                  WXV,          ,
          ^,          WiV,          ,
          ^,          4       VP%                  W4       VP!                  ^ V4       V F8  pVP'                  ^ ^ 4       VP)                  V4       VP!                  ^ V4       K:  	  R # )Nz@cairo:monospace)r7   r:   
splitlinesr   r   r   r   rV  r;   rR  rS  rU  rW  rX  max	x_advancern  r  r  rY  rZ  )r   textrY   rZ   r   r7   r:   r   
text_widthtext_heightrW  font_font_sizefont_ascentliner\  r  s   &&$$$$$         r   	draw_textInterpolatablePlot.draw_text  sv   =JJE>[[F ]]4<<(
5!
(
 7 79Q9Q	
 
(%a"1oDood+GZ):):;J)K  
QE&(<=
%''1,ve8K/Kq.P	
 	
Q$DJJq!LLLLN+ r   c                *   V P                  V P                  V P                  V P                  V P                  V P                  ^V P                  ,          ,
          RRV P
                  R7       V P                  V P                  V P                  V P                  V P                  ,           V P                  ^V P                  ,          ,
          V P                  ^V P                  ,          ,
          V P                  ,
          V P                  R7       R# )r   r,   T)rY   rZ   r   r7   r   r[   r;   )rY   rZ   r7   r:   r   N)rj   no_issues_labelr8   no_issues_label_colorr7   r<   r  cupcaker;   r:   cupcake_colorrE   s   &r   draw_cupcakeInterpolatablePlot.draw_cupcake  s      hhhh,,**q488|+** 	 		
 	LLhhhh'**q488|+;;TXX->$$ 	 	
r   c           	     p    V P                  VVVV P                  V P                  V P                  R 7       R# ))rY   rZ   r   r7   r:   N)r  emoticon_colorr9   r=   )r   rO  rY   rZ   s   &&&&r   r   InterpolatablePlot.draw_emoticon  s7    %%""$$ 	 	
r   )r/   r1   r.   r=   r9   r2   g      @i  g@)r   r   r   )皙?r  r  )?r  r  )皙?r  r  )皙?r  r  )r   r  r   r   )r   r,   r   r   )r   r  r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   ))r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r  )r   r,   r   )r   r   r   )r   r   r   r   )r   r   r   )r   r   )Cr"   r#   r$   r%   r7   r:   r8   r<   r;   rP   r  r  ro  rp  r   r   r   ry  rz  r{  r|  r~  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r#  r$  r%  r   rF   rM   rQ   r   rx   r   r   r   r   r   r   rj   r  r   r   r   r  r  r  r&   r'   r(   s   @r   r+   r+   '   s    EF
COIK J!K"LL J"LL)*#LL"2!",&O% &WNM!/;O'!MG2 #NEK
J
 C
 D'+D7;DGKDLF'D F'D F'D F'P,\2IT !t  !d  !DP59PLPPd
- 	-
 - - - - - - -^PA P PRV Pd
 
Q 
i 
" 
%.9;JK! q 	 &$,1 $, $, $,$ $,t $,L
*
 
r   r+   c                   8   a a ] tR tRt oR tV 3R ltRtVtV ;t# )InterpolatablePostscriptLikei  c                :    V P                   P                  4        R # r   )r   finishrI   s   &&&&r   rM   %InterpolatablePostscriptLike.__exit__  s    r   c                X   < \         SV `  4        V P                  P                  4        R # r   )superrQ   r   r   	__class__s   &r   rQ   &InterpolatablePostscriptLike.show_page  s     r   rD   )	r"   r#   r$   r%   rM   rQ   r&   r'   __classcell__r  r)   s   @@r   r  r    s     ! !r   r  c                   &   a  ] tR tRt o R tRtV tR# )InterpolatablePSi  c                |    \         P                  ! V P                  V P                  V P                  4      V n        V # r   )r   	PSSurfacer.   r7   r:   r   rE   s   &r   rF   InterpolatablePS.__enter__  s'    txxT[[Ir   r   Nr"   r#   r$   r%   rF   r&   r'   r(   s   @r   r  r    s      r   r  c                   &   a  ] tR tRt o R tRtV tR# )InterpolatablePDFi  c                $   \         P                  ! V P                  V P                  V P                  4      V n        V P
                  P                  \         P                  R 4       V P
                  P                  \         P                  R4       V # )zfonttools varLib.interpolatable )	r   
PDFSurfacer.   r7   r:   r   set_metadataPDF_METADATA_CREATORPDF_METADATA_CREATE_DATErE   s   &r   rF   InterpolatablePDF.__enter__  sc    ''$**dkkJ!!&&(I	
 	!!%"@"@"Er   r  Nr  r(   s   @r   r  r    s      r   r  c                   >   a a ] tR tRt oR tR tV 3R ltRtVtV ;t	# )InterpolatableSVGi  c                    \        4       V n        \        P                  ! V P                  V P                  V P
                  4      V n        V # r   )r   sinkr   
SVGSurfacer7   r:   r   rE   s   &r   rF   InterpolatableSVG.__enter__  s2    I	''		4::t{{Kr   c                F    V P                   e   V P                  4        R # R # r   )r   rQ   rI   s   &&&&r   rM   InterpolatableSVG.__exit__  s    <<#NN $r   c                R  < \         SV `  4        V P                  P                  4        V P                  P                  V P                  P                  4       4       \        4       V n        \        P                  ! V P                  V P                  V P                  4      V n        R # r   )r  rQ   r   r  r.   r   r  getvaluer   r   r  r7   r:   r  s   &r   rQ   InterpolatableSVG.show_page  sf    		**,-I	''		4::t{{Kr   )r  r   )
r"   r#   r$   r%   rF   rM   rQ   r&   r'   r  r  s   @@r   r  r    s     
L Lr   r  )'interpolatableHelpersfontTools.ttLibr   fontTools.ttLib.ttGlyphSetr   fontTools.pens.recordingPenr   r   r   fontTools.pens.boundsPenr	   fontTools.pens.cairoPenr
   fontTools.pens.pointPenr   r   r   &fontTools.varLib.interpolatableHelpersr   r   	itertoolsr   	functoolsr   ior   r   r  rl   logging	getLoggerr  dictr   r+   r  r  r  r  rD   r   r   <module>r     s    $ " 3 
 6 , 
      	 9:%T %c
 c
L%!#5 !3 4 L* Lr   