§
    ‚ÛgW­  ã                   ó€  — d dl T ddlmZ ddlmZ ddlmZmZmZ ddl	m
Z
 ddlmZ ddlmZmZmZ dd	lmZmZ dd
lmZ ddlmZ ddlmZ ddlZddlZddlZddlZ ej        d¦  «        Z G d„ de ¦  «        Z! G d„ d¦  «        Z" G d„ de"¦  «        Z# G d„ de#¦  «        Z$ G d„ de#¦  «        Z% G d„ de"¦  «        Z&dS )é   )Ú*é    )ÚTTFont)ÚLerpGlyphSet)ÚRecordingPenÚDecomposingRecordingPenÚRecordingPointPen)ÚControlBoundsPen)ÚCairoPen)ÚSegmentToPointPenÚPointToSegmentPenÚReverseContourPointPen)ÚPerContourOrComponentPenÚSimpleRecordingPointPen)Úcycle)Úwraps)ÚBytesIONzfontTools.varLib.interpolatablec                   ó   — e Zd Zd„ Zd„ ZdS )ÚOverridingDictc                 ó   — || _         d S ©N©Úparent_dict)Úselfr   s     úY/granary/edev/quantum/lib/python3.11/site-packages/fontTools/varLib/interpolatablePlot.pyÚ__init__zOverridingDict.__init__    s   € Ø&ˆÔÐÐó    c                 ó   — | j         |         S r   r   )r   Úkeys     r   Ú__missing__zOverridingDict.__missing__#   s   € ØÔ Ô$Ð$r   N)Ú__name__Ú
__module__Ú__qualname__r   r    © r   r   r   r      s2   € € € € € ð'ð 'ð 'ð%ð %ð %ð %ð %r   r   c            	       ó¢  — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZd
ZdZdZdZdZdZdZdZdZdZdZdZ d
Z!dZ"dZ#dZ$dZ%dZ&dZ'dZ(d Z)d!Z*d"Z+dEd$„Z,d%„ Z-d&„ Z.d'„ Z/d(d#d#d)œd*„Z0d(d#d#d)œd+„Z1d,„ Z2d-„ Z3d.„ Z4d/„ Z5d(d(d0œd1„Z6d(d(d0œd2„Z7d3d3d4d3d5d#d#d#d6œd7„Z8d3d3d#d8œd9„Z9d3d3d4d:d;œd<„Z:d3d3d4d:dd=œd>„Z;d3d3d4d?œd@„Z<d3d3d4d#d#dAœdB„Z=dC„ Z>dFdD„Z?d#S )GÚInterpolatablePlotg      ƒ@i  gÍÌÌÌÌÌ@é   é   r   )ç333333Ó?r)   r)   )çš™™™™™É?r*   r*   )çÍÌÌÌÌÌì?r+   r+   ç      à?)çš™™™™™é?r-   r-   )çš™™™™™¹?r.   r.   )r   r-   r   çffffffæ?é   )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   çš™™™™™Ù?z#Your font's good! Have a cupcake...)r   r,   r   )r)   r   r)   a  
                          ,@.
                        ,@.@@,.
                  ,@@,.@@@.  @.@@@,.
                ,@@. @@@.     @@. @@,.
        ,@@@.@,.@.              @.  @@@@,.@.@@,.
   ,@@.@.     @@.@@.            @,.    .@' @'  @@,
 ,@@. @.          .@@.@@@.  @@'                  @,
,@.  @@.                                          @,
@.     @,@@,.     ,                             .@@,
@,.       .@,@@,.         .@@,.  ,       .@@,  @, @,
@.                             .@. @ @@,.    ,      @
 @,.@@.     @,.      @@,.      @.           @,.    @'
  @@||@,.  @'@,.       @@,.  @@ @,.        @'@@,  @'
     \\@@@@'  @,.      @'@@@@'   @@,.   @@@' //@@@'
      |||||||| @@,.  @@' |||||||  |@@@|@||  ||
       \\\\\\\  ||@@@||  |||||||  |||||||  //
        |||||||  ||||||  ||||||   ||||||  ||
         \\\\\\  ||||||  ||||||  ||||||  //
          ||||||  |||||  |||||   |||||  ||
           \\\\\  |||||  |||||  |||||  //
            |||||  ||||  |||||  ||||  ||
             \\\\  ||||  ||||  ||||  //
              ||||||||||||||||||||||||
)r   r)   r)   z\_(")_/z
 o
/|\
/ \
z
 o
/O\
/ \
z \o/ Nc                 ó~  — || _         || _        |pd„ |D ¦   «         | _        i | _        |                     ¦   «         D ]8\  }}t          | |¦  «        st          d|z  ¦  «        ‚t          | ||¦  «         Œ9| j        dz  | j	        dz  z
  | _
        | j        dz  | j	        dz  z
  | j        dz  z
  | j        z
  | _        d S )Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS r$   )Úrepr)Ú.0Úgs     r   ú
<listcomp>z/InterpolatablePlot.__init__.<locals>.<listcomp>u   s   € Ð:Ð:Ð:¨1�t A™wœwÐ:Ð:Ð:r   zUnknown keyword argument: %sé   é   r0   )ÚoutÚ	glyphsetsÚnamesÚtocÚitemsÚhasattrÚ	TypeErrorÚsetattrÚwidthÚpadÚpanel_widthÚheightÚ	font_sizeÚtitle_font_sizeÚpanel_height)r   r>   r?   r@   ÚkwargsÚkÚvs          r   r   zInterpolatablePlot.__init__r   sØ   € ØˆŒØ"ˆŒØÐ:Ð:Ð:°	Ð:Ñ:Ô:ˆŒ
ØˆŒà—L’L‘N”Nð 	 ð 	 ‰DˆAˆqÝ˜4 Ñ#Ô#ð DÝÐ >ÀÑ BÑCÔCÐCÝ�D˜!˜QÑÔÐÐàœ:¨™>¨D¬H°q©LÑ8ˆÔàŒK˜!‰O˜dœh¨™lÑ*¨T¬^¸aÑ-?Ñ?À$ÔBVÑVð 	ÔÐÐr   c                 ó   — | S r   r$   ©r   s    r   Ú	__enter__zInterpolatablePlot.__enter__‚   s   € Øˆr   c                 ó   — d S r   r$   ©r   ÚtypeÚvalueÚ	tracebacks       r   Ú__exit__zInterpolatablePlot.__exit__…   s   € Øˆr   c                 ó&   — | xj         dz  c_         d S )Nr   )Úpage_numberrQ   s    r   Ú	show_pagezInterpolatablePlot.show_pageˆ   s   € ØÐÔ˜AÑÐÔÐÐr   T©Úshow_toleranceÚ	toleranceÚ	kinkinessc          
      óÔ  — | j         }| j        d| j         z  z
  }| j        d| j         z  z
  }|x}}	|                      d||	d|| j        ¬¦  «         |	| j        z  }	dd l}
|D �]Ú}t          j                             |¦  «        }|	| j	        | j         z   z  }	|                      |||	d|¬¦  «         |	| j	        | j         z   z  }		 |
 
                    t          |d¦  «                             ¦   «         ¦  «                             ¦   «         }|                      d	|z  ||z   |	|¬
¦  «         |	| j	        z  }	n# t          $ r Y nw xY w|                     d¦  «        rtt!          |¦  «        }d|v r|d         nd }|rSdD ]P\  }}|                     |¦  «        }|€Œ|                      |›d|›�||z   |	|¬
¦  «         |	| j	        | j         z   z  }	ŒQ�Œk|                     d¦  «        rZddlm}  ||¦  «        }dD ]F\  }}|                      |›dt)          ||¦  «        ›�||z   |	|¬
¦  «         |	| j	        | j         z   z  }	ŒG�ŒÜ|                      |||¬¦  «         |                      ¦   «          d S )Nr=   r<   zProblem report for:T©ÚxÚyÚboldrF   rJ   r   )rb   rc   rd   rF   Úrbzsha1: %s©rb   rc   rF   z.ttfÚname))úFamily name)é   r(   r   )ÚVersion)é   z: )z.glyphsz.glyphspackage)ÚGSFont))rh   Ú
familyName)ÚVersionMajorÚversionMajor)ÚVersionMinorÚ_versionMinorr\   )rG   rF   rI   Ú
draw_labelrK   ÚhashlibÚosÚpathÚbasenamerJ   Úsha1ÚopenÚreadÚ	hexdigestÚIsADirectoryErrorÚendswithr   ÚgetFirstDebugNameÚ	glyphsLibrl   ÚgetattrÚdraw_legendr[   )r   Úfilesr]   r^   r_   rG   rF   rI   rb   rc   rs   ÚfileÚ	base_fileÚhÚttFontrg   ÚwhatÚnameIDsÚnrl   ÚfÚfields                         r   Úadd_title_pagez!InterpolatablePlot.add_title_page‹   s  € ð ŒhˆØ”
˜Q ¤™\Ñ)ˆØ”˜q 4¤8™|Ñ+ˆØˆˆˆAà�ŠØ!ØØØØØÔ*ð 	ñ 	
ô 	
ð 	
ð 	
ˆTÔ!Ñ!ˆàˆˆˆàð +	3ñ +	3ˆDÝœ×(Ò(¨Ñ.Ô.ˆIØ�” $¤(Ñ*Ñ*ˆAØ�OŠO˜I¨¨a°dÀ%ˆOÑHÔHÐHØ�” $¤(Ñ*Ñ*ˆAðØ—L’L¥ d¨DÑ!1Ô!1×!6Ò!6Ñ!8Ô!8Ñ9Ô9×CÒCÑEÔE�Ø—’ 
¨Q¡°!°c±'¸QÀe�ÑLÔLÐLØ�T”^Ñ#��øÝ$ð ð ð Ø�ðøøøð �}Š}˜VÑ$Ô$ð 3Ý ™œ�Ø)/°6Ð)9Ð)9�v˜f”~�~¸t�Øð 7ð*ð 
7ð 
7™˜˜gð !×2Ò2°7Ñ;Ô;˜Ø˜9Ø$ØŸšØ(,¨¨¨a¨aÐ0°A¸±G¸qÈð (ñ ô ð ð ˜Tœ^¨d¬hÑ6Ñ6˜˜ùØ—’Ð<Ñ=Ô=ð 3Ø,Ð,Ð,Ð,Ð,Ð,à�F˜4‘L”L�ð$ð 3ð 3‘K�D˜%ð
 —O’OØ$( D D­'°!°UÑ*;Ô*;Ð*;Ð<Ø˜c™'ØØ#ð	 $ñ ô ð ð ˜œ¨$¬(Ñ2Ñ2�A�Aùà×ÒØ)°YÈ)ð 	ñ 	
ô 	
ð 	
ð 	�ŠÑÔÐÐÐs   ÃA0D2Ä2
D?Ä>D?c                ó¶
  — t          j        | j        ¦  «        }| j        }| j        | j        z
  | j        dz  z
  }| j        d| j        z  z
  }|| j        dz  z   }|| j        dz  z   }	|r+|                      d|	||¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                     || j        dz  z
  |d| j        z  | j        ¦  «          |j	        | j
        Ž  |                     ¦   «          | j        r= |j	        | j        Ž  |                     | j        ¦  «         |                     ¦   «           |j        | j        Ž  |                     ¦   «          || j        | j        z   z  }|                      d|	||¬¦  «         |                     || j        dz  z
  |d| j        z  | j        ¦  «         | j
        r# |j	        | j
        Ž  |                     ¦   «          | j        r= |j	        | j        Ž  |                     | j        ¦  «         |                     ¦   «           |j        g | j        d	         ¢| j        ‘R Ž  |                     ¦   «          || j        | j        z   z  }|                      d
|	||¬¦  «         |                      |||| j        dz  z   | j        | j        | j        ¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                      |||| j        dz  z   | j        | j        ¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                      |||| j        dz  z   | j        | j        ¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                      ||| j        dz  z
  || j        dz  z   | j         ¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                      |||| j        dz  z   | j        | j!        ¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                      ||| j        dz  z
  || j        dz  z   | j!        ¬¦  «         || j        | j        z   z  }|                      d|||d¬¦  «         || j        | j        z   z  }|�.|                      d|z  |	||¬¦  «         || j        | j        z   z  }|�.|                      d|z  |	||¬¦  «         || j        | j        z   z  }|                      d|||d¬¦  «         || j        | j        z   z  }d S )Nr<   r1   z,Tolerance: badness; closer to zero the worserf   zUnderweight contoursr/   g      ø?z/Colored contours: contours with the wrong orderr   zKink artifactr,   )rb   rc   ÚdiameterÚstroke_widthÚcolorz!Point causing kink in the contour)rb   rc   r�   r�   z!Suggested new contour start pointz4Contour start point in contours with wrong directionr)   ©rb   rc   r�   z5Contour start point when the first two points overlapz!Contour start point and directionzLegend:T©rb   rc   rF   rd   z!Kink-reporting aggressiveness: %gzError tolerance: %gzParameters:)"ÚcairoÚContextÚsurfacerG   rI   rJ   rF   rr   Ú	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   r]   r^   r_   Úcrrb   rc   rF   ÚxxÚxxxs
             r   r€   zInterpolatablePlot.draw_legendÑ   sE  € ÝŒ]˜4œ<Ñ(Ô(ˆàŒHˆØŒK˜$œ(Ñ" T¤^°aÑ%7Ñ7ˆØ”
˜Q ¤™\Ñ)ˆà�”˜A‘ÑˆØ�$”(˜Q‘,Ñˆàð 	+Ø�OŠOØ>À#ÈÐRWð ñ ô ð ð �”˜DœNÑ*Ñ*ˆAà�ŠÐ.°#¸À%ˆÑHÔHÐHØ
�Š�R˜$œ( S™.Ñ(¨!¨S°4´8©^¸T¼^ÑLÔLÐLØˆÔ˜4œ?Ð+Ð+Ø
×ÒÑÔÐØÔð 	!ØˆBÔ˜tÔ0Ð1Ð1Ø×Ò˜dÔ/Ñ0Ô0Ð0Ø×ÒÑ Ô Ð ØˆÔ˜DÔ;Ð<Ð<Ø
�Š‰	Œ	ˆ	Ø	ˆTŒX˜œÑ&Ñ&ˆà�ŠØ=ÀÈÐQVð 	ñ 	
ô 	
ð 	
ð 	�Š�R˜$œ( S™.Ñ(¨!¨S°4´8©^¸T¼^ÑLÔLÐLØŒ?ð 	ØˆBÔ˜tœÐ/Ð/Ø×ÒÑÔÐØÔð 	!ØˆBÔ˜tÔ0Ð1Ð1Ø×Ò˜dÔ/Ñ0Ô0Ð0Ø×ÒÑ Ô Ð ØˆÔÐG˜DÔ/°Ô2ÐG°DÔ4FÐGÐGÐGÐGØ
�Š‰	Œ	ˆ	Ø	ˆTŒX˜œÑ&Ñ&ˆà�Š˜¨3°!¸5ˆÑAÔAÐAØ×ÒØØØ�$”. 3Ñ&Ñ&ØÔ*ØÔ6ØÔ(ð 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�ŠÐ;¸sÀaÈuˆÑUÔUÐUØ�ŠØØØ�$”. 3Ñ&Ñ&ØÔ)ØÔ'ð 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�ŠÐ;¸sÀaÈuˆÑUÔUÐUØ�ŠØØØ�$”. 3Ñ&Ñ&ØÔ4ØÔ2ð 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�ŠØBØØØð	 	ñ 	
ô 	
ð 	
ð 	�ŠØØ�4Ô*¨SÑ0Ñ0Ø�$”. 3Ñ&Ñ&ØÔ.ð	 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�ŠØCØØØð	 	ñ 	
ô 	
ð 	
ð 	�ŠØØØ�$”. 3Ñ&Ñ&ØÔ4ØÔ(ð 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�ŠÐ;¸sÀaÈuˆÑUÔUÐUØ�ŠØØ�4Ô*¨SÑ0Ñ0Ø�$”. 3Ñ&Ñ&ØÔ(ð	 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�Š˜	 Q¨!°5¸tˆÑDÔDÐDØ	ˆTŒX˜œÑ&Ñ&ˆàÐ Ø�OŠOØ3°iÑ?ØØØð	 ñ ô ð ð �”˜DœNÑ*Ñ*ˆAàÐ Ø�OŠOØ%¨	Ñ1ØØØð	 ñ ô ð ð �”˜DœNÑ*Ñ*ˆAà�Š˜¨¨a°uÀ4ˆÑHÔHÐHØ	ˆTŒX˜œÑ&Ñ&ˆˆˆr   c           
      óL  — | j         }| j        d| j         z  z
  }| j        d| j         z  z
  }|x}}|                      d||d|| j        ¬¦  «         || j        z  }t          t          ¦  «        }t          |                     ¦   «         ¦  «        D ]+\  }}|D ]#}	||	d                   	                    |¦  «         Œ$Œ,d|v r|d= t          |d„ ¬	¦  «        D ]»}
|| j
        z  }|                      d
|
t          ||
         ¦  «        fz  |||d¬¦  «         || j
        z  }t          ||
         ¦  «        D ]]}|| j
        z   |k    r|                      ¦   «          | j
        |z   }|                      ||d|z  z   ||d|z  z
  ¬¦  «         || j
        z  }Œ^Œ¼|                      ¦   «          d S )Nr=   r<   zSummary of problemsTra   rU   Únothingc                 ó&   — t           j        |          S r   )ÚInterpolatableProblemÚseverity©rb   s    r   ú<lambda>z0InterpolatablePlot.add_summary.<locals>.<lambda>r  s   € Õ.CÔ.LÈQÔ.O€ r   ©r   z%s: %dr‘   rf   )rG   rF   rI   rr   rK   ÚdefaultdictÚsetÚsortedrB   ÚaddrJ   Úlenr[   )r   ÚproblemsrG   rF   rI   rb   rc   Úglyphs_per_problemÚ	glyphnameÚproblemÚproblem_types              r   Úadd_summaryzInterpolatablePlot.add_summaryY  s  € ØŒhˆØ”
˜Q ¤™\Ñ)ˆØ”˜q 4¤8™|Ñ+ˆØˆˆˆAà�ŠØ!ØØØØØÔ*ð 	ñ 	
ô 	
ð 	
ð 	
ˆTÔ!Ñ!ˆå(­Ñ-Ô-ÐÝ#)¨(¯.ª.Ñ*:Ô*:Ñ#;Ô#;ð 	Cð 	CÑˆI�xØ#ð Cð C�Ø" 7¨6¤?Ô3×7Ò7¸	ÑBÔBÐBÐBðCð Ð*Ð*Ð*Ø" 9Ð-å"ØÐ$OÐ$Oð
ñ 
ô 
ð 	$ð 	$ˆLð �”ÑˆAØ�OŠOØ˜L­#Ð.@ÀÔ.NÑ*OÔ*OÐPÑPØØØØð ñ ô ð ð �”ÑˆAå#Ð$6°|Ô$DÑEÔEð $ð $�	Ø�t”~Ñ%¨Ò.Ð.Ø—N’NÑ$Ô$Ð$Øœ¨Ñ,�AØ—’ 	¨Q°°S±©[¸AÀUÈQÐQTÉWÁ_�ÑUÔUÐUØ�T”^Ñ#��ð$ð 	�ŠÑÔÐÐÐr   c           	      ó&  — | j         }| j        d| j         z  z
  }| j        d| j         z  z
  }|x}}|                      |||d|| j        ¬¦  «         || j        | j         z   z  }d }|D ]–\  }	\  }
}|
|k    rŒ|
}|| j        z   |k    r|                      ¦   «          | j        |z   }|                      |
|d|z  z   ||d|z  z
  ¬¦  «         |                      t          |	¦  «        ||d|z  d¬¦  «         || j        z  }Œ—|                      ¦   «          d S )	Nr<   Tra   rk   rf   r1   r   )rb   rc   rF   Úalign)rG   rF   rI   rr   rK   rJ   r[   Ústr)r   ÚtitlerB   rG   rF   rI   rb   rc   Úlast_glyphnameÚpage_norÀ   r¾   s               r   Ú_add_listingzInterpolatablePlot._add_listing‡  sJ  € ØŒhˆØ”
˜Q ¤™\Ñ)ˆØ”˜q 4¤8™|Ñ+ˆØˆˆˆAà�ŠØ�Q˜! $¨e¸tÔ?Sð 	ñ 	
ô 	
ð 	
ð 	
ˆTÔ! D¤HÑ,Ñ,ˆàˆØ.3ð 		 ð 		 Ñ*ˆGÑ*�i Ø˜NÒ*Ð*ØØ&ˆNØ�4”>Ñ! FÒ*Ð*Ø—’Ñ Ô Ð Ø”N SÑ(�Ø�OŠO˜I¨¨Q°©W©¸ÀÈÈSÉÁˆOÑQÔQÐQØ�OŠO�C ™LœL¨A°¸!¸c¹'ÈˆOÑKÔKÐKØ�”ÑˆAˆAà�ŠÑÔÐÐÐr   c                 óz   — |                       dt          | j                             ¦   «         ¦  «        ¦  «         d S )NzTable of contents©rÊ   r»   rA   rB   rQ   s    r   Úadd_table_of_contentsz(InterpolatablePlot.add_table_of_contents   s3   € Ø×ÒÐ-­v°d´h·n²nÑ6FÔ6FÑ/GÔ/GÑHÔHÐHÐHÐHr   c                 ó€   — |                       dt          | j                             ¦   «         d„ ¬¦  «        ¦  «         d S )NÚIndexc                 ó   — | d         d         S )Nr   r   r$   r¶   s    r   r·   z.InterpolatablePlot.add_index.<locals>.<lambda>¤  s   € È!ÈAÌ$ÈqÌ'€ r   r¸   rÌ   rQ   s    r   Ú	add_indexzInterpolatablePlot.add_index£  s;   € Ø×Ò˜'¥6¨$¬(¯.ª.Ñ*:Ô*:Ð@QÐ@QÐ#RÑ#RÔ#RÑSÔSÐSÐSÐSr   ©r]   Úshow_page_numberc                óª  — |                      ¦   «         D ]½\  }}d }g }|D ]‚}d|v r|d         n|d         |d         f}	|	|k    r|                     |¦  «         Œ:|r/|                      ||||¬¦  «         |                      ¦   «          g }|	}|                     |¦  «         Œƒ|r-|                      ||||¬¦  «         |                      ¦   «          Œ¾d S )NÚ
master_idxÚmaster_1_idxÚmaster_2_idxrÒ   )rB   ÚappendÚadd_problemr[   )
r   r¾   r]   rÓ   ÚglyphÚglyph_problemsÚlast_mastersÚcurrent_glyph_problemsÚpÚmasterss
             r   Úadd_problemszInterpolatablePlot.add_problems¦  s@  € Ø%-§^¢^Ñ%5Ô%5ð 	!ð 	!Ñ!ˆE�>ØˆLØ%'Ð"Ø#ð 1ð 1�ð $ qÐ(Ð(ð �l”O�Oà˜NÔ+¨Q¨~Ô->Ð?ð ð
 ˜lÒ*Ð*Ø*×1Ò1°!Ñ4Ô4Ð4Øà)ð 0Ø×$Ò$ØØ.Ø'5Ø)9ð	 %ñ ô ð ð —N’NÑ$Ô$Ð$Ø-/Ð*Ø&�Ø&×-Ò-¨aÑ0Ô0Ð0Ð0Ø%ð !Ø× Ò ØØ*Ø#1Ø%5ð	 !ñ ô ð ð —’Ñ Ô Ð øð?	!ð 	!r   c                ó<  ‡‡‡7‡8— t          ‰¦  «        t          t          fvr‰gŠ‰‰f| j        | j        <   ‰d         d         Š8t          d„ ‰D ¦   «         ¦  «        }t          ˆ8fd„|D ¦   «         ¦  «        s,d                     t          d„ ‰D ¦   «         ¦  «        ¦  «        Š8t           
                    d‰‰8¦  «         d‰d         v rd	nd
}ˆfd„|D ¦   «         }‰8t          j        k    rCt          ˆfd„t          | j        ¦  «        D ¦   «         ¦  «        }|                     d|¦  «         | j        }	| j        }
|                      d‰z   |	|
| j        dd| j        ¬¦  «         t+          d„ ‰D ¦   «         ¦  «        }|dk     r0|r.|                      d|z  |	|
| j        d| j        z  z
  dd¬¦  «         |
| j        | j        z   z  }
|                      d‰8z   |	|
| j        d| j        z  z
  | j        d¬¦  «         |
| j        | j        dz  z   z  }
g }t          |¦  «        D ]Ä\  }}| j        |         }| j        |         }|                      ||	|
| j        | j        d¬¦  «         |
| j        | j        z   z  }
|‰         �/|                     |                      |‰‰||	|
¬¦  «        ¦  «         n|                      | j        |	|
¬¦  «         |
| j        | j        z   | j        z   z  }
ŒÅtA          d„ |D ¦   «         ¦  «        �r| j        | j        z   | j        z   }	| j        }
|
| j        | j        dz  z   z  }
|
| j        | j        z   z  }
| j        |d                  }| j        |d                  }|                      d|	|
| j        | j        d¬¦  «         |
| j        | j        z   z  }
tC          ||¦  «        }|                      |‰ddigd„ ‰D ¦   «         z   d |	|
t+          |¦  «        ¬¦  «         |
| j        | j        z   | j        z   z  }
tA          d„ |D ¦   «         ¦  «        �rN|                      d |	|
| j        | j        d¬¦  «         |
| j        | j        z   z  }
tE          |¦  «        }tE          |¦  «        }tG          tH          |¬!¦  «        }tG          tH          |¬!¦  «        Š7|‰          %                    |¦  «         |‰          %                    ‰7¦  «         ‰D ]9}|d         t          j&        k    r!ˆ7fd"„‰d         d#         D ¦   «         }|‰7_'        Œ:‰D �]ñ}|d         t          j(        k    �r×|j'        |d$                  }‰7j'        |d$                  }tS          ¦   «         }tU          |d%¦  «        }| +                    |¦  «         tS          ¦   «         }tU          |d%¦  «        }| +                    |¦  «         |d#         }|d&         rNtS          ¦   «         }tY          |¦  «        } | +                    | ¦  «         |}t[          |j'        ¦  «        dz
  |z
  }|j'        d d…         }!|j'        d'd …         }"|j'        dd'…         }#|#|d …         |#d |…         z   }#|!|#z   |"z   |_'        tI          ¦   «         }$t]          |$d¦  «        }| +                    |¦  «         tI          ¦   «         }%t]          |%d¦  «        }| +                    |¦  «         |$j'        |_'        |%j'        |_'        ||j'        |d$         <   |‰7j'        |d$         <   �Œó‰D �]U}|d         t          j/        k    �r;|j'        |d$                  }‰7j'        |d$                  }tS          ¦   «         }tU          |d%¦  «        }| +                    |¦  «         tS          ¦   «         }tU          |d%¦  «        }| +                    |¦  «         |d(         }&|&dz   }'|j'        |'         d         d         }(|j'        |'         d         d         })|&dz
  t[          |j'        ¦  «        dz
  z  dz   }*|j'        |*         d         d         }+|j'        |*         d         d         },|&dz   t[          |j'        ¦  «        dz
  z  dz   }-|j'        |-         d         d         }.|j'        |-         d         d         }/ta          |(Ž }(ta          |)Ž })ta          |+Ž }+ta          |,Ž },ta          |.Ž }.ta          |/Ž }/tc          |(|+z
  ¦  «        tc          |.|+z
  ¦  «        z  }0tc          |)|,z
  ¦  «        tc          |/|,z
  ¦  «        z  }1|0|1z   dz  }2|+|2|.|+z
  z  z   }(|,|2|/|,z
  z  z   })|j'        |'         d         |(j2        |(j3        ff|j'        |'         d         dd …         z   |j'        |'         d         f|j'        |'<   |j'        |'         d         |)j2        |)j3        ff|j'        |'         d         dd …         z   |j'        |'         d         f|j'        |'<   tI          ¦   «         }$t]          |$d¦  «        }| +                    |¦  «         tI          ¦   «         }%t]          |%d¦  «        }| +                    |¦  «         |$j'        |_'        |%j'        |_'        �ŒWtI          ¦   «         }3tI          ¦   «         }4|j'        D ]!}5|3j'         4                    |5j'        ¦  «         Œ"‰7j'        D ]!}5|4j'         4                    |5j'        ¦  «         Œ"|3j+        |3_%        |4j+        |4_%        |3|‰<   |4|‰<   	 tC          ||¦  «        }|                      |‰dd)id |	|
t+          |¦  «        ¬¦  «         n-# tj          $ r  |                      | j        |	|
¬¦  «         Y nw xY w|
| j        | j        z   z  }
n`| j        }6t          j6        |v r| j7        }6n+t          j8        |v r| j9        }6nt          j:        |v r| j;        }6|                      |6|	|
¬¦  «         |rN|                      ty          | j        ¦  «        d| j=        | j        z
  | j        z
  | j        | j        d¬*¦  «         d S d S )+Nr   rU   c              3   ó&   K  — | ]}|d          V — ŒdS ©rU   Nr$   ©r9   rÁ   s     r   ú	<genexpr>z1InterpolatablePlot.add_problem.<locals>.<genexpr>Ñ  ó&   è è € ÐDÐD°˜G FœOÐDÐDÐDÐDÐDÐDr   c              3   ó$   •K  — | ]
}|‰k    V — Œd S r   r$   ©r9   ÚptrÂ   s     €r   rå   z1InterpolatablePlot.add_problem.<locals>.<genexpr>Ò  ó(   øè è € Ð>Ð>¨"�2˜Ò%Ð>Ð>Ð>Ð>Ð>Ð>r   z, c                 ó   — h | ]
}|d          ’ŒS ©rU   r$   rä   s     r   ú	<setcomp>z1InterpolatablePlot.add_problem.<locals>.<setcomp>Ó  s   € Ð,UÐ,UÐ,UÀ¨W°V¬_Ð,UÐ,UÐ,Ur   zDrawing %s: %srÕ   )rÕ   )rÖ   r×   c                 ó,   •— g | ]}‰d          |         ‘ŒS )r   r$   )r9   rN   r¾   s     €r   r;   z2InterpolatablePlot.add_problem.<locals>.<listcomp>Ü  s!   ø€ Ð>Ð>Ð>¨Q˜( 1œ+ aœ.Ð>Ð>Ð>r   c              3   ó2   •K  — | ]\  }}|‰         ®|V — Œd S r   r$   )r9   ÚiÚmrÀ   s      €r   rå   z1InterpolatablePlot.add_problem.<locals>.<genexpr>ß  s9   øè è € ð  ð  Ù�a˜¸1¸Y¼<Ð;S�Ð;SÐ;SÐ;SÐ;Sð ð  r   zGlyph name: T)rb   rc   r�   rÅ   rd   rJ   c              3   óB   K  — | ]}|                      d d¦  «        V — ŒdS )r^   r   N)Úget©r9   rÞ   s     r   rå   z1InterpolatablePlot.add_problem.<locals>.<genexpr>ð  s0   è è € Ð@Ð@°!˜Ÿš˜k¨1Ñ-Ô-Ð@Ð@Ð@Ð@Ð@Ð@r   r   ztolerance: %.2fr<   )rb   rc   rF   rÅ   rd   z
Problems: )rb   rc   rF   r�   rd   r,   )rb   rc   r�   rF   rÅ   )rb   rc   c              3   ó¢   K  — | ]J}|t           j        t           j        t           j        t           j        t           j        t           j        fv V — ŒKd S r   )r´   ÚNOTHINGÚWRONG_START_POINTÚCONTOUR_ORDERÚKINKÚUNDERWEIGHTÚ
OVERWEIGHT©r9   ré   s     r   rå   z1InterpolatablePlot.add_problem.<locals>.<genexpr>  sf   è è € ð 
ð 
ð ð å%Ô-Ý%Ô7Ý%Ô3Ý%Ô*Ý%Ô1Ý%Ô0ððð
ð 
ð 
ð 
ð 
ð 
r   zmidway interpolationÚmidwayc                 óh   — g | ]/}|d          t           j        t           j        t           j        fv ¯-|‘Œ0S rì   )r´   rù   rú   rû   rô   s     r   r;   z2InterpolatablePlot.add_problem.<locals>.<listcomp>A  sP   € ð 	ð 	ð 	àØ˜”yå-Ô2Ý-Ô9Ý-Ô8ððð ð ðð ð r   ©rb   rc   Úscalec              3   ó`   K  — | ])}|t           j        t           j        t           j        fv V — Œ*d S r   )r´   r÷   rø   rù   rü   s     r   rå   z1InterpolatablePlot.add_problem.<locals>.<genexpr>S  sT   è è € ð 
ð 
ð ð å%Ô7Ý%Ô3Ý%Ô*ððð
ð 
ð 
ð 
ð 
ð 
r   zproposed fix©Úglyphsetc                 ó*   •— g | ]}‰j         |         ‘ŒS r$   )rV   )r9   rð   ÚperContourPen2s     €r   r;   z2InterpolatablePlot.add_problem.<locals>.<listcomp>u  s.   ø€ ð &ð &ð &Ø45˜Ô,¨QÔ/ð&ð &ð &r   Úvalue_2ÚcontourFÚreversedéÿÿÿÿrV   Úfixed)rb   rc   rF   r�   rÅ   )>rU   ÚlistÚtuplerA   rZ   rº   ÚallÚjoinr»   ÚlogÚinfor´   ÚMISSINGÚnextÚ	enumerater?   ÚinsertrG   rr   Ú
head_colorrK   ÚminrF   rJ   r@   Úlabel_colorrH   rØ   Ú
draw_glyphÚdraw_emoticonÚshrugrL   Úanyr   r   r   r   Údrawrø   rV   r÷   r	   r   Úreplayr   r½   r   rù   ÚcomplexÚabsÚrealÚimagÚextendÚ
ValueErrorrú   Úunderweightrû   Ú
overweightrö   ÚyayrÆ   rI   )9r   rÀ   r¾   r]   rÓ   Úproblem_typesÚmaster_keysÚmaster_indicesÚsample_glyphrb   rc   r^   ÚscalesÚwhichrÕ   r  rg   Ú	glyphset1Ú	glyphset2Úmidway_glyphsetÚoverriding1Úoverriding2ÚperContourPen1rÁ   Úfixed_contoursÚwrongContour1ÚwrongContour2Úpoints1Ú	converterÚpoints2Úproposed_startÚnew_points2ÚreversedPenÚ	beginPathÚendPathÚptsÚsegment1Úsegment2rð   ÚjÚpt0Úpt1Új_prevÚpt0_prevÚpt1_prevÚj_nextÚpt0_nextÚpt1_nextÚr0Úr1Úr_midÚfixed1Úfixed2r  Úemoticonr  rÂ   s9    ``                                                    @@r   rÙ   zInterpolatablePlot.add_problemÈ  s¯  øøøø€ õ �‰>Œ>¥$­ Ð.Ð.Ø �zˆHà&/°Ð%:ˆŒ�Ô!Ñ"à ”{ 6Ô*ˆÝÐDÐD¸8ÐDÑDÔDÑDÔDˆÝÐ>Ð>Ð>Ð>°Ð>Ñ>Ô>Ñ>Ô>ð 	XØŸ9š9¥VÐ,UÐ,UÈHÐ,UÑ,UÔ,UÑ%VÔ%VÑWÔWˆLå�ŠÐ! 9¨lÑ;Ô;Ð;ð ˜x¨œ{Ð*Ð*ð ˆOà1ð 	ð
 ?Ð>Ð>Ð>°+Ð>Ñ>Ô>ˆàÕ0Ô8Ò8Ð8Ýð  ð  ð  ð  Ý'¨¬Ñ7Ô7ð ñ  ô  ñ ô ˆLð ×!Ò! ! \Ñ2Ô2Ð2àŒHˆØŒHˆà�ŠØ˜YÑ&ØØØ”/ØØØÔ*ð 	ñ 	
ô 	
ð 	
õ Ð@Ð@°xÐ@Ñ@Ô@Ñ@Ô@ˆ	Ø�qŠ=ˆ=˜^ˆ=Ø�OŠOØ! IÑ-ØØØ”j 1 t¤x¡<Ñ/ØØð ñ ô ð ð 	
ˆTÔ! D¤HÑ,Ñ,ˆØ�ŠØ˜<Ñ'ØØØ”*˜q 4¤8™|Ñ+Ø”/Øð 	ñ 	
ô 	
ð 	
ð 	
ˆTŒ^˜dœh¨™lÑ*Ñ*ˆàˆÝ!*¨>Ñ!:Ô!:ð 	?ð 	?ÑˆE�:Ø”~ jÔ1ˆHØ”:˜jÔ)ˆDà�OŠOØØØØÔ&ØÔ&Øð ñ ô ð ð �” $¤(Ñ*Ñ*ˆAà˜	Ô"Ð.Ø—’Ø—O’O H¨i¸À5ÈAÐQR�OÑSÔSñô ð ð ð ×"Ò" 4¤:°°aÐ"Ñ8Ô8Ð8Ø�Ô" T¤^Ñ3°d´hÑ>Ñ>ˆAˆAåð 
ð 
ð $ð
ñ 
ô 
ñ 
ô 
ñ 5	?ð ”˜4Ô+Ñ+¨d¬hÑ6ˆAØ”ˆAØ�Ô%¨¬°1©Ñ4Ñ4ˆAØ�” $¤(Ñ*Ñ*ˆAàœ ~°aÔ'8Ô9ˆIØœ ~°aÔ'8Ô9ˆIð �OŠOØ&ØØØ”oØÔ&Øð ñ ô ð ð �” $¤(Ñ*Ñ*ˆAå*¨9°iÑ@Ô@ˆOØ�OŠOØØØ˜(Ð#Ð$ð	ð 	à%ð	ñ 	ô 	ñ
ð ØØÝ˜&‘k”kð# ñ ô ð ð( �Ô" T¤^Ñ3°d´hÑ>Ñ>ˆAåð 
ð 
ð $ð
ñ 
ô 
ñ 
ô 
ñ {	3ð �OŠOØØØØ”oØÔ&Øð ñ ô ð ð �” $¤(Ñ*Ñ*ˆAå(¨Ñ3Ô3ˆKÝ(¨Ñ3Ô3ˆKÝ5Ý {ðñ ô ˆNõ 6Ý {ðñ ô ˆNð �iÔ ×%Ò% nÑ5Ô5Ð5Ø�iÔ ×%Ò% nÑ5Ô5Ð5à#ð :ð :�Ø˜6”?Õ&;Ô&IÒIÐIð&ð &ð &ð &Ø9AÀ!¼ÀYÔ9Oð&ñ &ô &�Nð ,:�NÔ(øà#ð +Mñ +M�Ø˜6”?Õ&;Ô&MÒMÑMà$2Ô$8¸ÀÔ9KÔ$L�MØ$2Ô$8¸ÀÔ9KÔ$L�Mõ 0Ñ1Ô1�GÝ 1°'¸5Ñ AÔ A�IØ!×(Ò(¨Ñ3Ô3Ð3Ý/Ñ1Ô1�GÝ 1°'¸5Ñ AÔ A�IØ!×(Ò(¨Ñ3Ô3Ð3à%,¨YÔ%7�Nð ˜zÔ*ð QÝ&7Ñ&9Ô&9˜Ý&<¸[Ñ&IÔ&I˜ØŸš {Ñ3Ô3Ð3Ø"-˜Ý),¨W¬]Ñ);Ô);¸aÑ)?À.Ñ)P˜ð !(¤¨b¨q¨bÔ 1�IØ%œm¨B¨C¨CÔ0�GØ!œ-¨¨"¨Ô-�CØ˜n˜o˜oÔ.°°_°n°_Ô1EÑE�CØ$-°¡O°gÑ$=�G”Mõ  ,™~œ~�HÝ 1°(¸DÑ AÔ A�IØ—N’N 9Ñ-Ô-Ð-Ý+™~œ~�HÝ 1°(¸DÑ AÔ A�IØ—N’N 9Ñ-Ô-Ð-ð +3¬.�MÔ'Ø*2¬.�MÔ'Ø?L�NÔ(¨°Ô);Ñ<Ø?L�NÔ(¨°Ô);Ñ<ùà#ð A9ñ A9�à˜6”?Õ&;Ô&@Ò@Ñ@à$2Ô$8¸ÀÔ9KÔ$L�MØ$2Ô$8¸ÀÔ9KÔ$L�Mõ 0Ñ1Ô1�GÝ 1°'¸5Ñ AÔ A�IØ!×(Ò(¨Ñ3Ô3Ð3Ý/Ñ1Ô1�GÝ 1°'¸5Ñ AÔ A�IØ!×(Ò(¨Ñ3Ô3Ð3à Ô(�Að ˜A™�AØ!œ-¨Ô*¨1Ô-¨aÔ0�CØ!œ-¨Ô*¨1Ô-¨aÔ0�CØ !™e­¨G¬MÑ(:Ô(:¸QÑ(>Ñ?À!ÑC�FØ&œ}¨VÔ4°QÔ7¸Ô:�HØ&œ}¨VÔ4°QÔ7¸Ô:�HØ !™e­¨G¬MÑ(:Ô(:¸QÑ(>Ñ?À!ÑC�FØ&œ}¨VÔ4°QÔ7¸Ô:�HØ&œ}¨VÔ4°QÔ7¸Ô:�Hå! 3˜-�CÝ! 3˜-�CÝ&¨Ð1�HÝ&¨Ð1�HÝ&¨Ð1�HÝ&¨Ð1�Hõ ˜S 8™^Ñ,Ô,­s°8¸hÑ3FÑ/GÔ/GÑG�BÝ˜S 8™^Ñ,Ô,­s°8¸hÑ3FÑ/GÔ/GÑG�BØ "™W¨™M�Eà" U¨h¸Ñ.AÑ%BÑB�CØ" U¨h¸Ñ.AÑ%BÑB�Cð  œ aÔ(¨Ô+Øœ8 S¤XÐ.Ð0°7´=ÀÔ3CÀAÔ3FÀqÀrÀrÔ3JÑJØœ aÔ(¨Ô+ð(�G”M !Ñ$ð  œ aÔ(¨Ô+Øœ8 S¤XÐ.Ð0°7´=ÀÔ3CÀAÔ3FÀqÀrÀrÔ3JÑJØœ aÔ(¨Ô+ð(�G”M !Ñ$õ  ,™~œ~�HÝ 1°(¸DÑ AÔ A�IØ—N’N 9Ñ-Ô-Ð-Ý+™~œ~�HÝ 1°(¸DÑ AÔ A�IØ—N’N 9Ñ-Ô-Ð-ð +3¬.�MÔ'Ø*2¬.�MÔ'ùõ "‘^”^ˆFÝ!‘^”^ˆFØ)Ô/ð 3ð 3�Ø”×#Ò# G¤MÑ2Ô2Ð2Ð2Ø)Ô/ð 3ð 3�Ø”×#Ò# G¤MÑ2Ô2Ð2Ð2Ø œ-ˆFŒKØ œ-ˆFŒKà%+ˆK˜	Ñ"Ø%+ˆK˜	Ñ"ð9Ý".¨{¸KÑ"HÔ"H�Ø—’Ø#ØØ˜WÐ%ØØØÝ˜f™+œ+ð  ñ ô ð ð øõ ð 9ð 9ð 9Ø×"Ò" 4¤:°°aÐ"Ñ8Ô8Ð8Ð8Ð8ð9øøøà�Ô" T¤XÑ-Ñ-ˆAˆAð ”zˆHÝ$Ô0°MÐAÐAØÔ+��Ý&Ô1°]ÐBÐBØœ?��Ý&Ô.°-Ð?Ð?Øœ8�Ø×Ò˜x¨1°ÐÑ2Ô2Ð2àð 	Ø�OŠOÝ�DÔ$Ñ%Ô%ØØ”+ ¤Ñ.°´Ñ9Ø”jØ”oØð ñ ô ð ð ð ð	ð 	s   ë0;l, ì,'mímr   )r   r   r   F)rb   rc   r�   rÅ   rd   rF   rI   rJ   c                ó  — |€| j         }|€| j        }|	€| j        }	t          j        | j        ¦  «        }
|
                     dt          j        |rt          j        nt          j	        ¦  «         |
 
                    |	¦  «         |
                     ¦   «         }|	|	z  |d         z  }	|
 
                    |	¦  «         |
                     ¦   «         } |
j        |Ž  |
                     |¦  «        }|j         |k    rK|	||j         z  z  }	|
 
                    |	¦  «         |
                     ¦   «         }|
                     |¦  «        }|||j         z
  |z  z   }||d         z   }|
                     ||¦  «         |
                     |¦  «         d S )Nz@cairo:r<   r   )rF   rI   rJ   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   Úlabelrb   rc   r�   rÅ   rd   rF   rI   rJ   r®   rV  ÚextentsÚlabel_xÚlabel_ys                  r   rr   zInterpolatablePlot.draw_label  sŽ  € ð ˆ=Ø”JˆEØˆ>Ø”[ˆFØÐØœˆIÝŒ]˜4œ<Ñ(Ô(ˆØ
×ÒØÝÔ#Ø&*ÐH�EÔ"Ð"µÔ0Hñ	
ô 	
ð 	
ð
 	×Ò˜Ñ#Ô#Ð#Ø—’Ñ(Ô(ˆØ 	Ñ)¨L¸¬OÑ;ˆ	Ø
×Ò˜Ñ#Ô#Ð#Ø—’Ñ(Ô(ˆàˆÔ˜5Ð!Ð!à—/’/ %Ñ(Ô(ˆØŒ=˜5Ò Ð à˜ ¤Ñ.Ñ.ˆIØ×Ò˜YÑ'Ô'Ð'ØŸ?š?Ñ,Ô,ˆLØ—o’o eÑ,Ô,ˆGð �u˜wœ}Ñ,°Ñ5Ñ5ˆØ�l 1”oÑ%ˆØ
�
Š
�7˜GÑ$Ô$Ð$Ø
�Š�UÑÔÐÐÐr   rÿ   c          	      ó˜  ‡"‡#— t          |¦  «        t          t          fvr|g}t          d„ |D ¦   «         ¦  «        }|d         d         Š"t	          d„ |D ¦   «         ¦  «        Š#t          ˆ"fd„‰#D ¦   «         ¦  «        sdŠ"||         }	t          ¦   «         }
|	                     |
¦  «         t          |¦  «        }|	                     |¦  «         t          |¦  «        }| 
                    |¦  «         |j        }|€d}|d         |d         z
  }|d	         |d
         z
  }|r%|€| j        |z  }nt          || j        |z  ¦  «        }|r%|€| j        |z  }nt          || j        |z  ¦  «        }|€d
}t          j        | j        ¦  «        }|                     ||¦  «         |                     | j        ||z  z
  dz  | j        ||z  z
  dz  ¦  «         |                     || ¦  «         |                     |d          |d	          ¦  «         | j        rd |j        | j        Ž  |                     |d         |d
         ||¦  «         |                     | j        |z  ¦  «         |                     ¦   «          | j        s| j        rºt9          ||¦  «        }| 
                    |¦  «         | j        r3‰"t:          j        k    r# |j        | j        Ž  |                     ¦   «          | j        r@ |j        | j        Ž  |                     | j         |z  ¦  «         | !                    ¦   «          | "                    ¦   «          t:          j#        ‰#v st:          j$        ‰#v r©tK          t          |¬¦  «        }|
 
                    |¦  «         |D ]{}|d         t:          j#        t:          j$        fv rY|j&        |d                  }| 
                    t9          ||¦  «        ¦  «          |j'        | j(        Ž  | )                    ¦   «          Œ|t          ˆ#fd„t:          j*        t:          j+        t:          j,        hD ¦   «         ¦  «        �rO| -                    t          j.        ¦  «         |j&        D ]?\  }}|sŒ|d         \  }}| /                    ||¦  «         | 0                    ||¦  «         Œ@ |j'        | j1        Ž  |                     | j2        |z  ¦  «         |                     ¦   «          |j&        D ]D\  }}|sŒ|d d…         D ]1\  }}| /                    ||¦  «         | 0                    ||¦  «         Œ2ŒE |j'        | j3        Ž  |                     | j4        |z  ¦  «         |                     ¦   «          |j&        D ]Õ\  }}|sŒ|dv r |j/        |d         Ž  Œ|dk    rC|D ]\  }}| 0                    ||¦  «         Œ| 5                    ¦   «           |j/        |d         Ž  Œf|dk    ri |j0        |d         Ž  | 5                    ¦   «           |j/        |d
         Ž   |j0        |d         Ž  | 5                    ¦   «           |j/        |d         Ž  ŒÕŒÖ |j'        | j6        Ž  |                     | j7        |z  ¦  «         |                     ¦   «          d }|D ]à}|d         t:          j8        k    rÈ|d         }ts          | j:        ¦  «        }tK          t          |¬¦  «        }|
 
                    |¦  «         tw          |j&        ¦  «        D ]l\  }}||         |k    rŒty          |¦  «        }| 
                    t9          ||¦  «        ¦  «          |j'        g |¢| j=        ‘R Ž  | )                    ¦   «          ŒmŒá|D �]O}|d         t:          j*        t:          j>        fv �rØ| ?                    d¦  «        }|��|d
k    �r d|v rütK          t          |¬¦  «        }| 
                    |¦  «         t�          ¦   «         }tƒ          |d¦  «        }|j&        |€|n||                   
                    |¦  «         |j&        |d                  d         }| B                    ¦   «           |j        |Ž  |                     d
|z  d
|z  ¦  «         |  C                    || jD        | jE        ¬¦  «         | F                    ¦   «          |dk    s| ?                    d¦  «        s| jG        }n| jH        }d }d}| B                    ¦   «          |j&        D �]Z\  }}|dk    r	|d         }Œ|€Œ|dk    r|} n|d         } |�||k    �r!| B                    ¦   «          t“          |Ž }t“          | Ž } t•          | |z
  ¦  «        }!|                     |jK        |jL        ¦  «         |!rv| M                    t�          jO        | jL        |jL        z
  | jK        |jK        z
  ¦  «        ¦  «         |                     d
|z  d
|z  ¦  «         |  P                    ||¬¦  «         n9|                     d
|z  d
|z  ¦  «         |  C                    || jD        |¬¦  «         | F                    ¦   «          |� n	d }|d
z  }�Œ\| F                    ¦   «          |d         t:          jQ        k    �r<| ?                    d¦  «        }tK          t          |¬¦  «        }| 
                    |¦  «         t�          ¦   «         }tƒ          |d¦  «        }|j&        |€|n||                   
                    |¦  «         |j&        |d                  d         }| B                    ¦   «           |j        |Ž  |                     d
|z  d
|z  ¦  «         |r)|  R                    || jS        | jT        | jU        ¬¦  «         n"|  C                    || jV        | jW        ¬¦  «         | F                    ¦   «          �ŒQ|S )Nc              3   ó.   K  — | ]}|d          dk    V — ŒdS )rU   rý   Nr$   rä   s     r   rå   z0InterpolatablePlot.draw_glyph.<locals>.<genexpr>M  s+   è è € ÐIÐI°W�W˜V”_¨Ò0ÐIÐIÐIÐIÐIÐIr   r   rU   c              3   ó&   K  — | ]}|d          V — ŒdS rã   r$   rä   s     r   rå   z0InterpolatablePlot.draw_glyph.<locals>.<genexpr>O  ræ   r   c              3   ó$   •K  — | ]
}|‰k    V — Œd S r   r$   rè   s     €r   rå   z0InterpolatablePlot.draw_glyph.<locals>.<genexpr>P  rê   r   Úmixed)r   r   r   r   r<   r=   r   r  r  c              3   ó    •K  — | ]}|‰v V — Œ	d S r   r$   )r9   Útr'  s     €r   rå   z0InterpolatablePlot.draw_glyph.<locals>.<genexpr>ž  s<   øè è € ð 
ð 
àð �Ðð
ð 
ð 
ð 
ð 
ð 
r   r	  )ÚmoveToÚlineToÚqCurveToÚcurveTor  F)r�   r�   r  re  Ú	closePath)r�   rV   )r�   rŽ   r�   )XrU   r  r  r  rº   r  r   r  r   r
   r  ÚboundsrH   r  rL   r’   r“   r”   Ú	translater   Úborder_colorr–   r•   rš   Úborder_widthÚstroker—   r™   r   r´   Ú	OPEN_PATHr˜   rŽ   r›   Únew_pathrú   rû   r   rV   rœ   r�   rž   rö   Ú
NODE_COUNTÚNODE_INCOMPATIBILITYÚset_line_capÚLINE_CAP_ROUNDrX  Ú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,  rb   rc   r   rý   rÚ   Ú	recordingÚdecomposedRecordingÚ	boundsPenrj  Úglyph_widthÚglyph_heightr®   ÚpenÚperContourPenrÁ   r  ÚsegmentÚargsÚmatchingÚcolorsrð   r�   ÚidxÚpointsr7  ÚtargetPointÚfirst_ptÚ	second_ptÚlengthrÂ   r'  s$                                     @@r   r  zInterpolatablePlot.draw_glyphI  sÙ  øø€ Ý�‰>Œ>¥$­ Ð.Ð.Ø �zˆHåÐIÐIÀÐIÑIÔIÑIÔIˆØ ”{ 6Ô*ˆÝÐDÐD¸8ÐDÑDÔDÑDÔDˆÝÐ>Ð>Ð>Ð>°Ð>Ñ>Ô>Ñ>Ô>ð 	#Ø"ˆLØ˜Ô#ˆå ‘N”Nˆ	Ø�
Š
�9ÑÔÐÝ5°hÑ?Ô?ÐØ�
Š
Ð&Ñ'Ô'Ð'å$ XÑ.Ô.ˆ	Ø×"Ò" 9Ñ-Ô-Ð-ØÔ!ˆØˆ>Ø!ˆFà˜Q”i &¨¤)Ñ+ˆØ˜a”y 6¨!¤9Ñ,ˆàð 	EØˆ}ØÔ(¨;Ñ6��å˜E 4Ô#4°|Ñ#CÑDÔD�Øð 	EØˆ}ØÔ)¨LÑ8��å˜E 4Ô#4°|Ñ#CÑDÔD�Øˆ=ØˆEåŒ]˜4œ<Ñ(Ô(ˆØ
�Š�Q˜ÑÔÐà
�ŠØÔ ¨eÑ 3Ñ3°qÑ8ØÔ °Ñ!5Ñ5¸Ñ:ñ	
ô 	
ð 	
ð 	�Š�˜˜ÑÔÐØ
�Š�f˜Q”i�Z &¨¤) Ñ,Ô,Ð,àÔð 	ØˆBÔ˜tÔ0Ð1Ð1Ø�LŠL˜ œ F¨1¤I¨{¸LÑIÔIÐIØ×Ò˜dÔ/°%Ñ7Ñ8Ô8Ð8Ø�IŠI‰KŒKˆKàŒ?ð 	˜dÔ/ð 	Ý˜8 RÑ(Ô(ˆCØ×&Ò& sÑ+Ô+Ð+àŒð # <Õ3HÔ3RÒ#RÐ#RØ!�Ô! 4¤?Ð3Ð3Ø× Ò Ñ"Ô"Ð"àÔ ð %Ø!�Ô! 4Ô#4Ð5Ð5Ø×!Ò! $Ô"3°eÑ";Ñ<Ô<Ð<Ø×"Ò"Ñ$Ô$Ð$à�KŠK‰MŒMˆMõ "Ô-°Ð>Ð>Ý$Ô/°=Ð@Ð@å4µ\ÈHÐUÑUÔUˆMØ×Ò˜]Ñ+Ô+Ð+Ø#ð ð �Ø˜6”?Ý)Ô5Ý)Ô4ð'ð ð ð ,Ô1°'¸)Ô2DÔE�GØ—N’N¥8¨H°bÑ#9Ô#9Ñ:Ô:Ð:Ø&�BÔ&¨Ô(GÐHÐHØ—G’G‘I”I�Iøåð 
ð 
ð 
ð 
õ &Ô-Ý%Ô0Ý%Ô:ðð
ñ 
ô 
ñ 
ô 
ñ 7	ð �OŠO�EÔ0Ñ1Ô1Ð1ð "5Ô!:ð !ð !‘�˜Øð ØØ˜B”x‘��1Ø—
’
˜1˜aÑ Ô Ð Ø—
’
˜1˜aÑ Ô Ð Ð ØˆBÔ Ô 7Ð8Ð8Ø×Ò˜dÔ8¸5Ñ@ÑAÔAÐAØ�IŠI‰KŒKˆKð "5Ô!:ð %ð %‘�˜Øð ØØ   " œIð %ð %‘D�A�qØ—J’J˜q !Ñ$Ô$Ð$Ø—J’J˜q !Ñ$Ô$Ð$Ð$ð%ð ˆBÔ Ô 8Ð9Ð9Ø×Ò˜dÔ9¸EÑAÑBÔBÐBØ�IŠI‰KŒKˆKð "5Ô!:ð ð ‘�˜Øð ØØÐ 4Ð4Ð4Ø�B”J  Q¤Ð(Ð(Ð(Ø 
Ò*Ð*Ø $ð )ð )™˜˜1ØŸ
š
 1 aÑ(Ô(Ð(Ð(Ø—O’OÑ%Ô%Ð%Ø�B”J  R¤Ð)Ð)Ð)Ø 	Ò)Ð)Ø�B”J  Q¤Ð(Ð(Ø—O’OÑ%Ô%Ð%Ø�B”J  Q¤Ð(Ð(Ø�B”J  Q¤Ð(Ð(Ø—O’OÑ%Ô%Ð%Ø�B”J  R¤Ð)Ð)Ð)ààˆBÔ Ô 1Ð2Ð2Ø×Ò˜dÔ/°%Ñ7Ñ8Ô8Ð8Ø�IŠI‰KŒKˆKàˆØð 	ð 	ˆGØ�vŒÕ"7Ô"EÒEÐEØ" 9Ô-�Ý˜tÔ2Ñ3Ô3�Ý 8Ý ¨8ð!ñ !ô !�ð × Ò  Ñ/Ô/Ð/Ý"+¨MÔ,?Ñ"@Ô"@ð ð ‘J�A�wØ ”{ aÒ'Ð'Ø Ý  ™LœL�EØ—N’N¥8¨H°bÑ#9Ô#9Ñ:Ô:Ð:Ø&�BÔ&ÐB¨ÐB¨tÔ/AÐBÐBÐBÐBØ—G’G‘I”I�I�Iøàð o	ñ o	ˆGØ�vŒÝ%Ô-Ý%Ô7ð#ð ñ ð —k’k )Ñ,Ô,�ð ‘? u°¢z¡z°iÀ7Ð6JÐ6JÝ$<Ý$¨xð%ñ %ô %�Mð (×.Ò.¨}Ñ=Ô=Ð=Ý4Ñ6Ô6�FÝ 1°&¸%Ñ @Ô @�IØ!Ô'Ø'Ð/˜˜°X¸c´]ôç’f˜YÑ'Ô'Ð'Ø"(¤,¨w°yÔ/AÔ"BÀ1Ô"E�KØ—G’G‘I”I�IØ �B”L +Ð.Ð.Ø—H’H˜Q ™Y¨¨E©	Ñ2Ô2Ð2Ø—M’MØØ!%Ô!@Ø"Ô>ð "ñ ô ð ð
 —J’J‘L”L�Lð ˜A’:�: W§[¢[°Ñ%<Ô%<�:Ø Ô2�E�Eà Ô8�EØ�Ø�Ø—’‘	”	�	Ø%8Ô%>ð )ñ )‘M�G˜TØ (Ò*Ð*Ø#'¨¤7˜Ø ØÐ'Ø Ø +Ò-Ð-Ø$,˜	˜	à$(¨¤G˜	à�{ a¨3¢h¡hØŸš™	œ	˜	Ý#*¨HÐ#5˜Ý$+¨YÐ$7˜	Ý!$ Y°Ñ%9Ñ!:Ô!:˜ØŸš X¤]°H´MÑBÔBÐBØ!ð àŸIšIÝ $¤
Ø$-¤N°X´]Ñ$BØ$-¤N°X´]Ñ$Bñ!"ô !"ñô ð ð ŸHšH Q¨¡Y°°E±	Ñ:Ô:Ð:Ø ŸOšO¨B°e˜OÑ<Ô<Ð<Ð<ð ŸHšH Q¨¡Y°°E±	Ñ:Ô:Ð:Ø ŸMšMØ "Ø)-Ô)HØ&+ð *ñ ô ð ð
 Ÿ
š
™œ˜à˜?Ø!˜Eà#�HØ˜‘F�A‘Aà—
’
‘”�à�vŒÕ"7Ô"<Ò<Ñ<Ø—k’k )Ñ,Ô,�Ý 8Ý ¨8ð!ñ !ô !�ð $×*Ò*¨=Ñ9Ô9Ð9Ý0Ñ2Ô2�Ý-¨f°eÑ<Ô<�	ØÔ#¨8Ð+; C CÀÈ#ÄÔO×VÒVØñô ð ð %œl¨7°7Ô+;Ô<¸QÔ?�Ø—’‘	”	�	Ø�”˜kÐ*Ð*Ø—’˜˜U™ A¨¡IÑ.Ô.Ð.Øð Ø×$Ò$ØØ!%Ô!6Ø%)Ô%BØ"Ô4ð	 %ñ ô ð ð ð —M’MØØ!%Ô!5Ø"Ô3ð "ñ ô ð ð
 —
’
‘”�ùàˆr   é
   )rb   rc   r�   r�   c                ó‚  — |                      ¦   «          |                     |¦  «         |                     t          j        ¦  «         |                     ||¦  «         |                     ||¦  «         t          |¦  «        dk    r|dz   } |j        |Ž  | 	                    ¦   «          | 
                    ¦   «          d S )Nr=   ©r   )r}  rš   rs  r’   rt  rX  ru  r½   rœ   rn  r~  )r   r®   rb   rc   r�   r�   s         r   r¥   zInterpolatablePlot.draw_dot[  s¦   € Ø
�Š‰	Œ	ˆ	Ø
×Ò˜(Ñ#Ô#Ð#Ø
�Š�Ô,Ñ-Ô-Ð-Ø
�
Š
�1�aÑÔÐØ
�
Š
�1�aÑÔÐÝˆu‰:Œ:˜Š?ˆ?Ø˜D‘LˆEØˆÔ˜EÐ"Ð"Ø
�	Š	‰ŒˆØ
�
Š
‰Œˆˆˆr   )rb   rc   r�   r�   rŽ   c                ó|  — |                      ¦   «          |                     |¦  «         |                     t          j        ¦  «         |                     |||dz  ddt          j        z  ¦  «         t          |¦  «        dk    r|dz   } |j	        |Ž  | 
                    ¦   «          |                     ¦   «          d S )Nr<   r   r=   r•  )r}  rš   rs  r’   ÚLINE_CAP_SQUAREÚarcr€  Úpir½   rœ   rn  r~  )r   r®   rb   rc   r�   r�   rŽ   s          r   r¡   zInterpolatablePlot.draw_circleg  s¤   € ð 	�Š‰	Œ	ˆ	Ø
×Ò˜,Ñ'Ô'Ð'Ø
�Š�Ô-Ñ.Ô.Ð.Ø
�Šˆq�!�X ‘\ 1 a­$¬'¡kÑ2Ô2Ð2Ýˆu‰:Œ:˜Š?ˆ?Ø˜D‘LˆEØˆÔ˜EÐ"Ð"Ø
�	Š	‰ŒˆØ
�
Š
‰Œˆˆˆr   r�   c                óä  — |                      ¦   «          t          |¦  «        dk    r|dz   } |j        |Ž  |                     | j        |z   |¦  «         |                     dd¦  «         |                     | j         | j         dz  ¦  «         |                     | j         | j        dz  ¦  «         |                     ¦   «          |                     ¦   «          | 	                    ¦   «          d S )Nr=   r•  r   r5   )
r}  r½   rœ   rk  r«   rX  ru  Ú
close_pathrž   r~  )r   r®   rb   rc   r�   s        r   rª   zInterpolatablePlot.draw_arrowt  sí   € Ø
�Š‰	Œ	ˆ	Ýˆu‰:Œ:˜Š?ˆ?Ø˜D‘LˆEØˆÔ˜EÐ"Ð"Ø
�Š�TÔ,¨qÑ0°!Ñ4Ô4Ð4Ø
�
Š
�1�aÑÔÐØ
�
Š
ØÔ$Ð$ØÔ$Ð$ sÑ*ñ	
ô 	
ð 	
ð 	�
Š
ØÔ$Ð$ØÔ# cÑ)ñ	
ô 	
ð 	
ð 	�Š‰ŒˆØ
�Š‰	Œ	ˆ	Ø
�
Š
‰Œˆˆˆr   ©rb   rc   r�   rF   rI   c                ón  — |€| j         }|€| j        }|                     ¦   «         }t          j        | j        ¦  «        } |j        |Ž  |                     | j        ¦  «         | 	                    dt          j
        t          j        ¦  «         d}d}	|                     ¦   «         }
|
d         }|
d         }|D ]1}|                     |¦  «        }t          ||j        ¦  «        }|	|z  }	Œ2|sd S |                     ||¦  «         t#          ||z  ||	z  ¦  «        }|                     |||z  z
  dz  ||	|z  z
  dz  ¦  «         |                     ||¦  «         |                     d|¦  «         |D ]C}|                     dd¦  «         |                     |¦  «         |                     d|¦  «         ŒDd S )Nz@cairo:monospacer   r<   )rF   rI   Ú
splitlinesr’   r“   r”   r–   rU  rJ   rQ  rR  rT  rV  rW  ÚmaxÚ	x_advancerk  r  r   rX  rY  )r   Útextrb   rc   r�   rF   rI   r®   Ú
text_widthÚtext_heightrV  Úfont_font_sizeÚfont_ascentÚliner[  r   s                   r   Ú	draw_textzInterpolatablePlot.draw_text‡  sã  € Øˆ=Ø”JˆEØˆ>Ø”[ˆFà�ŠÑ Ô ˆÝŒ]˜4œ<Ñ(Ô(ˆØˆÔ˜5Ð!Ð!Ø
×Ò˜œÑ(Ô(Ð(Ø
×ÒØ¥Ô 7½Ô9Qñ	
ô 	
ð 	
ð ˆ
ØˆØ—’Ñ(Ô(ˆØ% aœˆØ" 1”oˆØð 	*ð 	*ˆDØ—o’o dÑ+Ô+ˆGÝ˜Z¨Ô):Ñ;Ô;ˆJØ˜>Ñ)ˆKˆKØð 	ØˆFØ
�Š�Q˜ÑÔÐÝ�E˜JÑ&¨°Ñ(<Ñ=Ô=ˆà
�ŠØ�Z %Ñ'Ñ'¨1Ñ,¨v¸ÀeÑ8KÑ/KÈqÑ.Pñ	
ô 	
ð 	
ð 	�Š�˜ÑÔÐà
�Š�Q˜Ñ$Ô$Ð$Øð 	,ð 	,ˆDØ�JŠJ�q˜!ÑÔÐØ�LŠL˜ÑÔÐØ�LŠL˜˜NÑ+Ô+Ð+Ð+ð	,ð 	,r   c           
      óP  — |                       | j        | j        | j        | j        | j        d| j        z  z
  dd| j        ¬¦  «         |                      | j        | j        | j        | j        z   | j        d| j        z  z
  | j	        d| j        z  z
  | j        z
  | j
        ¬¦  «         d S )Nr<   r,   T)rb   rc   r�   rF   rÅ   rd   rJ   )rb   rc   rF   rI   r�   )rr   Úno_issues_labelrG   Úno_issues_label_colorrF   rK   r§  ÚcupcakerJ   rI   Úcupcake_colorrQ   s    r   Údraw_cupcakezInterpolatablePlot.draw_cupcake­  s¹   € Ø�ŠØÔ ØŒhØŒhØÔ,Ø”*˜q 4¤8™|Ñ+ØØØÔ*ð 	ñ 		
ô 		
ð 		
ð 	�ŠØŒLØŒhØŒh˜œÑ'Ø”*˜q 4¤8™|Ñ+Ø”;  T¤X¡Ñ-°´Ñ>ØÔ$ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 óZ   — |                       |||| j        | j        | j        ¬¦  «         d S )Nrœ  )r§  Úemoticon_colorrH   rL   )r   rO  rb   rc   s       r   r  z InterpolatablePlot.draw_emoticonÂ  sB   € Ø�ŠØØØØÔ%ØÔ"ØÔ$ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   r   )r   r   )@r!   r"   r#   rF   rI   rG   rK   rJ   rZ   r  r  rl  rm  r—   r™   rŽ   rv  rw  rx  ry  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   rR   rX   r[   r‹   r€   rÃ   rÊ   rÍ   rÑ   rà   rÙ   rr   r  r¥   r¡   rª   r§  r­  r  r$   r   r   r&   r&   '   s*  € € € € € Ø€EØ€FØ
€CØ€OØ€IØ€KØ €JØ!€KØ"€LØ€LØ €JØ"€LØ€LØ)ÐØÐØ*ÐØÐØ#€LØ€LØ"2ÐØ!"ÐØ,ÐØ&ÐØÐØ€OØ%ÐØÐØ ÐØ&ÐØW€NØ€MØ!/ÐØ;€OØ'ÐØ!€Mð€Gð2 #€NØ€Eð€Kð
€Jð
 €Cð
ð 
ð 
ð 
ð ð ð ðð ð ðð ð ð (,°tÀtðDð Dð Dð Dð DðL -1¸DÈDð F'ð F'ð F'ð F'ð F'ðP,ð ,ð ,ð\ð ð ð2Ið Ið IðTð Tð Tð 8<Èdð  !ð  !ð  !ð  !ð  !ðF 6:ÈDðPð Pð Pð Pð Pðl
 Ø
ØØØØØØð-ð -ð -ð -ð -ð^ EFÈÐRVð Pð Pð Pð Pð Pðd !" Q¨iÀ"ð 
ð 
ð 
ð 
ð 
ð ˜A Y¸È!ðð ð ð ð ð #$ q°	ð ð ð ð ð ð& $%¨°À$Ètð $,ð $,ð $,ð $,ð $,ðL
ð 
ð 
ð*
ð 
ð 
ð 
ð 
ð 
r   r&   c                   ó$   ‡ — e Zd Zd„ Zˆ fd„Zˆ xZS )ÚInterpolatablePostscriptLikec                 ó8   — | j                              ¦   «          d S r   )r”   ÚfinishrT   s       r   rX   z%InterpolatablePostscriptLike.__exit__Î  s   € ØŒ×ÒÑÔÐÐÐr   c                 óz   •— t          ¦   «                              ¦   «          | j                             ¦   «          d S r   )Úsuperr[   r”   ©r   Ú	__class__s    €r   r[   z&InterpolatablePostscriptLike.show_pageÑ  s3   ø€ Ý‰Œ×ÒÑÔÐØŒ×ÒÑ Ô Ð Ð Ð r   )r!   r"   r#   rX   r[   Ú__classcell__©r·  s   @r   r±  r±  Í  sG   ø€ € € € € ðð ð ð!ð !ð !ð !ð !ð !ð !ð !ð !r   r±  c                   ó   — e Zd Zd„ ZdS )ÚInterpolatablePSc                 óZ   — t          j        | j        | j        | j        ¦  «        | _        | S r   )r’   Ú	PSSurfacer>   rF   rI   r”   rQ   s    r   rR   zInterpolatablePS.__enter__×  s"   € Ý” t¤x°´¸T¼[ÑIÔIˆŒØˆr   N©r!   r"   r#   rR   r$   r   r   r»  r»  Ö  s#   € € € € € ðð ð ð ð r   r»  c                   ó   — e Zd Zd„ ZdS )ÚInterpolatablePDFc                 óî   — t          j        | j        | j        | j        ¦  «        | _        | j                             t           j        d¦  «         | j                             t           j        d¦  «         | S )Nzfonttools varLib.interpolatableÚ )	r’   Ú
PDFSurfacer>   rF   rI   r”   Úset_metadataÚPDF_METADATA_CREATORÚPDF_METADATA_CREATE_DATErQ   s    r   rR   zInterpolatablePDF.__enter__Ý  sc   € ÝÔ'¨¬°$´*¸d¼kÑJÔJˆŒØŒ×!Ò!ÝÔ&Ð(Iñ	
ô 	
ð 	
ð 	Œ×!Ò!¥%Ô"@À"ÑEÔEÐEØˆr   Nr¾  r$   r   r   rÀ  rÀ  Ü  s#   € € € € € ðð ð ð ð r   rÀ  c                   ó*   ‡ — e Zd Zd„ Zd„ Zˆ fd„Zˆ xZS )ÚInterpolatableSVGc                 ó€   — t          ¦   «         | _        t          j        | j        | j        | j        ¦  «        | _        | S r   )r   Úsinkr’   Ú
SVGSurfacerF   rI   r”   rQ   s    r   rR   zInterpolatableSVG.__enter__ç  s.   € Ý‘I”IˆŒ	ÝÔ'¨¬	°4´:¸t¼{ÑKÔKˆŒØˆr   c                 ó@   — | j         �|                      ¦   «          d S d S r   )r”   r[   rT   s       r   rX   zInterpolatableSVG.__exit__ì  s(   € ØŒ<Ð#Ø�NŠNÑÔÐÐÐð $Ð#r   c                 óV  •— t          ¦   «                              ¦   «          | j                             ¦   «          | j                             | j                             ¦   «         ¦  «         t          ¦   «         | _        t          j
        | j        | j        | j        ¦  «        | _        d S r   )rµ  r[   r”   r³  r>   rØ   rÊ  Úgetvaluer   r’   rË  rF   rI   r¶  s    €r   r[   zInterpolatableSVG.show_pageð  sz   ø€ Ý‰Œ×ÒÑÔÐØŒ×ÒÑÔÐØŒ�Š˜œ	×*Ò*Ñ,Ô,Ñ-Ô-Ð-Ý‘I”IˆŒ	ÝÔ'¨¬	°4´:¸t¼{ÑKÔKˆŒˆˆr   )r!   r"   r#   rR   rX   r[   r¸  r¹  s   @r   rÈ  rÈ  æ  s_   ø€ € € € € ðð ð ð
ð ð ðLð Lð Lð Lð Lð Lð Lð 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€  rt   ÚloggingÚ	getLoggerr  Údictr   r&   r±  r»  rÀ  rÈ  r$   r   r   ú<module>rÝ     sq  ðØ $Ð $Ð $Ð $Ø "Ð "Ð "Ð "Ð "Ð "Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ð ð
 6Ð 5Ð 5Ð 5Ð 5Ð 5Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€à€gÔÐ9Ñ:Ô:€ð%ð %ð %ð %ð %�Tñ %ô %ð %ðc
ð c
ð c
ð c
ð c
ñ c
ô c
ð c
ðL%!ð !ð !ð !ð !Ð#5ñ !ô !ð !ðð ð ð ð Ð3ñ ô ð ðð ð ð ð Ð4ñ ô ð ðLð Lð Lð Lð LÐ*ñ Lô Lð Lð Lð Lr   