
    ]MhA              	          d dl mZ d dlmZ d dlmZ d dlZd dlZdZ	 ej
        dd          \  ZZZ ej
        d	d
          Z e ej
        de	dz   z  d                    Z e ej
        de	dz   z  d                    Z e ed dD                        Z e ej
        de	dz   z  d
                    ZdgZ ede	dz             D ]IZed         Z ed  e ee                    D                       dz   Ze                    e           J ed eD                       Z[[ ed  ee          D                       Z ed  ee          D                       Z ed  ee          D                       Zd Z  G d de!          Z" G d de          Z# ee#d          Z$ ee#e          Z% ee#e          Z& ee#eez            Z' ee#eez            Z( ee#eez            Z)ej*        dfdZ+e,d k    rgd dlZej-        dd         rVej-        d         Z.d!  eej-        d"dd"         ej-        ddd"                   D             Z/ e+e.e/ej*        #           dS dS dS )$    )BasePen)partial)countN   zt x yTrealcFzx:%d   zy:%dc              #   \   K   | ]'}t          j        d t          dz   |fz  d          V  (dS )zp:%d[%s]r
   Tr   N)spsymbolsn).0ws     V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fontTools/misc/symfont.py	<genexpr>r      s>      MM1
:Q
2>>>MMMMMM    01zc:%d)r
   r   c              #   R   K   | ]"}t           |d z
           t           |         z   V  #dS r
   N)last)r   js     r   r   r      s3      AA1a!etAw&AAAAAAr   r   c              #   D   K   | ]}t          |d d                   V  d S )Nr   )tuple)r   items     r   r   r      s2      MME$ss),,MMMMMMr   c              #   n   K   | ]/\  }t          fd t          |          D                       V  0dS )c              3   Z   K   | ]%\  }}|t           |z  z  d t           z
  |z
  z  z  V  &dS r   )t)r   ir	   r   s      r   r   z<genexpr>.<genexpr>   sA      	F	FDAq!ad(a!eQ'
'	F	F	F	F	F	Fr   N)r   	enumerate)r   coeffsr   s     @r   r   r      s`        6 
	F	F	F	FIf4E4E	F	F	FFF     r   c              #   n   K   | ]/\  }t          fd t          d          D                       V  0dS )c              3   j   K   | ],t          fd t                    D                       V  -dS )c              3   J   K   | ]\  }}t           |                  |z  V  d S N)P)r   r!   	bernsteinr   s      r   r   z<genexpr>.<genexpr>.<genexpr>!   s4      JJLAyAaDGiJJJJJJr   Nsumr"   )r   r   
bernsteinss    @r   r   z<genexpr>.<genexpr>    s]       
 
 	JJJJIj4I4IJJJJJ
 
 
 
 
 
r      N)r   ranger   r   r,   s     @r   r   r      ss        
 	:	 
 
 
 
 
q
 
 
       r   c              #   h   K   | ]-\  }}t          d  t          |          D                       V  .dS )c              3   <   K   | ]\  }}t           |         |z  V  d S r'   )C)r   r!   r)   s      r   r   z<genexpr>.<genexpr>'   s/      CC\Q	!yCCCCCCr   Nr*   r/   s      r   r   r   &   sY        : CCYz-B-BCCCCC     r   c                 :   t          j        t          j        |           t                     } |                     t
          |d         t          |d         i          } t          j        | t          j        |d         t                    z  t          ddf          } | S )Nr   r
   )r   	integratesympifyysubsxdiffr    )fcurveXYs     r   greenr<   ,   sq    	bjmmQ	'	''A	71:q'!*-..A
QQ///!Q;;AHr   c                       e Zd Zd Zd ZdS )_BezierFuncsLazyc                 "    || _         i | _        d S r'   )_symfunc	_bezfuncs)selfsymfuncs     r   __init__z_BezierFuncsLazy.__init__4   s    r   c                    d t          |dz             D             }t          | j        t          |                   }t	          j        |                    t          t          d                              }t	          j	        ||          S )Nc                     g | ]}d |z  S )zp%d )r   ds     r   
<listcomp>z0_BezierFuncsLazy.__missing__.<locals>.<listcomp>9   s    000a	000r   r
   rG   )
r.   r<   r@   BezierCurver   	gcd_termscollectr+   r(   lambdify)rB   r!   argsr:   s       r   __missing__z_BezierFuncsLazy.__missing__8   si    005Q<<000$-Q00L3q"::..//{4###r   N)__name__
__module____qualname__rD   rO   rG   r   r   r>   r>   3   s2          $ $ $ $ $r   r>   c                   T    e Zd Zi Zed             Zd
dZd Zd Zd Z	d Z
d Zd	 ZdS )GreenPenc                 z    t          |          }|| j        vrt          |          | j        |<   | j        |         S r'   )str_BezierFuncsr>   )celffuncfuncstrs      r   _getGreenBezierFuncszGreenPen._getGreenBezierFuncsB   s>    d))$+++)9$)?)?Dg& ))r   Nc                 r    t          j        | |           |                     |          | _        d| _        d S )Nr   )r   rD   r[   _funcsvalue)rB   rY   glyphsets      r   rD   zGreenPen.__init__I   s5    x(((//55


r   c                     || _         d S r'   )_startPointrB   p0s     r   _moveTozGreenPen._moveToN   s    r   c                 |    |                                  }|| j        k    r|                     | j                   d S d S r'   )_getCurrentPointra   _lineTorb   s     r   
_closePathzGreenPen._closePathQ   sD    ""$$!!!LL)***** "!r   c                 R    |                                  }|| j        k    rt          d S r'   )rf   ra   NotImplementedErrorrb   s     r   _endPathzGreenPen._endPathV   s/    ""$$!!!%% "!r   c                 x    |                                  }| xj         | j        d         ||          z  c_        d S )Nr
   rf   r^   r]   )rB   p1rc   s      r   rg   zGreenPen._lineTo\   s9    ""$$

ndk!nR,,,



r   c                 z    |                                  }| xj         | j        d         |||          z  c_        d S )Nr-   rm   )rB   rn   p2rc   s       r   _qCurveToOnezGreenPen._qCurveToOne`   s;    ""$$

ndk!nRR000



r   c                 |    |                                  }| xj         | j        d         ||||          z  c_        d S )Nr   rm   )rB   rn   rp   p3rc   s        r   _curveToOnezGreenPen._curveToOned   s=    ""$$

ndk!nRR444



r   r'   )rP   rQ   rR   rW   classmethodr[   rD   rd   rh   rk   rg   rq   rt   rG   r   r   rT   rT   ?   s        L* * [*   
  + + +
& & &- - -1 1 15 5 5 5 5r   rT   )rY   c           	        
 |t          d|z             t          d| d| d|           |D ]\  }}t          d|z  |           t          dd|	           d
D ]N
d t          
dz             D             
fd|D             }d |D             }fd|D             }t          j        |dd t	                      D                       \  }}t                       |D ]\  }}	t          d|z  |           
dk    rt          d|           n/
dk    rt          d|           n
dk    rt          d|           |D ]\  }}	t          d|d|	|           t          |           t          d |D             |          D ]\  }}	t          d|d|	|           Pt          d| z  |           |D ]*\  }}t          d|d t          |          d!|           +t          d"|           d S )#Nz"""%s"""a  from fontTools.pens.basePen import BasePen, OpenContourError
try:
	import cython
except (AttributeError, ImportError):
	# if cython not installed, use mock module with no-op decorators and types
	from fontTools.misc import cython
COMPILED = cython.compiled


__all__ = ["z
"]

class zS(BasePen):

	def __init__(self, glyphset=None):
		BasePen.__init__(self, glyphset)
filez		self.%s = 0aT  
	def _moveTo(self, p0):
		self._startPoint = p0

	def _closePath(self):
		p0 = self._getCurrentPoint()
		if p0 != self._startPoint:
			self._lineTo(self._startPoint)

	def _endPath(self):
		p0 = self._getCurrentPoint()
		if p0 != self._startPoint:
			raise OpenContourError(
							"Glyph statistics is not defined on open contours."
			)
 )endrx   )r
   r-   r   c                     i | ]@}t          d           D ].}t          |         |         t          t          g|         |         /AS )r-   )r.   r(   XY)r   r!   r   s      r   
<dictcomp>z!printGreenPen.<locals>.<dictcomp>   sA    NNN!U1XXNN!Q!Q1NNNNr   r
   c                 L    g | ] \  }}t          |t                             !S rG   )r<   rJ   )r   namer:   r   s      r   rI   z!printGreenPen.<locals>.<listcomp>   s+    @@@wtQ%;q>**@@@r   c           
          g | ]<}t          j        |                    t          t          d                               =S )rG   )r   rK   rL   r+   r(   r   r:   s     r   rI   z!printGreenPen.<locals>.<listcomp>   s6    FFF!",qyyQ4455FFFr   c                 :    g | ]}|                               S rG   )r7   )r   r:   r7   s     r   rI   z!printGreenPen.<locals>.<listcomp>   s#    ///1!&&,,///r   basicc              3   D   K   | ]}t          j        d |z            V  dS )zr%dN)r   Symbol)r   r!   s     r   r   z printGreenPen.<locals>.<genexpr>   s0      ;;aRYuqy));;;;;;r   )optimizationsr   z!	@cython.locals(%s=cython.double)z	@cython.locals(x0=cython.double, y0=cython.double)
	@cython.locals(x1=cython.double, y1=cython.double)
	def _lineTo(self, p1):
		x0,y0 = self._getCurrentPoint()
		x1,y1 = p1
r-   z	@cython.locals(x0=cython.double, y0=cython.double)
	@cython.locals(x1=cython.double, y1=cython.double)
	@cython.locals(x2=cython.double, y2=cython.double)
	def _qCurveToOne(self, p1, p2):
		x0,y0 = self._getCurrentPoint()
		x1,y1 = p1
		x2,y2 = p2
r   a=  	@cython.locals(x0=cython.double, y0=cython.double)
	@cython.locals(x1=cython.double, y1=cython.double)
	@cython.locals(x2=cython.double, y2=cython.double)
	@cython.locals(x3=cython.double, y3=cython.double)
	def _curveToOne(self, p1, p2, p3):
		x0,y0 = self._getCurrentPoint()
		x1,y1 = p1
		x2,y2 = p2
		x3,y3 = p3
z		z = c                     g | ]
}|d          S r   rG   r   s     r   rI   z!printGreenPen.<locals>.<listcomp>   s    444!444r   z		self.z += zj
if __name__ == '__main__':
	from fontTools.misc.symfont import x, y, printGreenPen
	printGreenPen('%s', [z
		      ('z', z),z			     ]))printr.   r   cser   ziprV   )penNamefuncsrx   	docstringr   r:   greensdefsexprsr^   r   r7   s             @@r   printGreenPenr   t   s=   j9$%%%	E" 77GGG!	" %   (  1 1ao$400000		  %   *  :@ :@NNuQU||NNN@@@@%@@@FFvFFF///////f!;;577;;;
 
 
e 	 	I 	IKD%5<4HHHHH66 	 	 	 	 	 !VV      !VV
       	: 	:KD%Euu-D99999444e444e<< 	@ 	@KD%EtttUU3$?????	@ 
	 		
      A AatttSVVVV44@@@@@	+D!!!!!!r   __main__c                 6    g | ]\  }}|t          |          fS rG   )eval)r   r   r:   s      r   rI   rI      s&    TTTWT1$QTTTr   r-   rw   )0fontTools.pens.basePenr   	functoolsr   	itertoolsr   sympyr   sysr   r   r    r8   r6   r	   r   r|   r}   r   r(   r2   BinomialCoefficientr.   r!   r   lenthisappendr"   BernsteinPolynomialrJ   BezierCurveCr<   dictr>   rT   AreaPen
MomentXPen
MomentYPenMomentXXPenMomentYYPenMomentXYPenstdoutr   rP   argvr   r   rG   r   r   <module>r      s    * * * * * *                 




"*W4
(
(
(1aBJs	E*"*Vq1u%D
1
1
122	E*"*Vq1u%D
1
1
122	E##MMMMM
NOO	E*"*Vq1u%E
2
2
233 h 	q!a% % %Ar"D5AAcc$ii0@0@AAAAADHDt$$$$eMM9LMMMMM $e  Y233     
 e  
 ##677     u  "#677      	$ 	$ 	$ 	$ 	$t 	$ 	$ 	$'5 '5 '5 '5 '5w '5 '5 '5Z '(
#
#
#WXA&&&
WXA&&&
ghQU+++ghQU+++ghQU+++ (+zT u" u" u" u"p zJJJ
x| 7(1+TTCHQTTNCHQTPQTN0S0STTTgu3:666666 7 7r   