L iA ddlmZddlmZddlmZddlZddlZdZ ejdd\Z Z Z ejd d Zeejd e d zzdZeejd e d zzdZeeddDZeejde d zzd ZdgZed e d zD]6ZedZedeeeDdzZej7e8edeDZ[[edeeDZedeeDZedeeDZdZ Gdde!Z"GddeZ#ee#d Z$ee#e Z%ee#e Z&ee#e e zZ'ee#e e zZ(ee#e e zZ)ejTdfdZ+e,d k(r}ddlZejZd driejZd Z.eejZd!dd!ejZddd!Dcgc]\}}|e/|fc}}Z0e+e.e0ejT"yyycc}}w)#)BasePen)partial)countNzt x yTrealcFzx:%dzy:%dc#bK|]'}tjdtdz|fzd)yw)zp:%d[%s]r TrN)spsymbolsn).0ws \/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/misc/symfont.py rs+M1 :Q 2>>Ms-/01zc:%d)r rc#HK|]}t|dz t|zywr N)last)rjs rrrs!A1a!etAw&As ")rc#8K|]}t|ddyw)Nr)tuple)ritems rrrsME$s),Msc#^K|]$\}tfdt|D&yw)c3\K|]#\}}|t|zzdtz |z zz%ywr)t)rir rs rrz.s/ FDAq!ad(a!eQ' ' Fs),N)r enumerate)rcoeffsrs @rrrs-6 FIf4E FF*-c#^K|]$\}tfdtdD&yw)c3ZK|]!tfdtD#yw)c3BK|]\}}t||zywN)P)rr bernsteinrs rrz..!s" JLAyAaDGi  JsNsumr )rr bernsteinss @rrz. s)   JIj4I JJ s'+N)rrangerrr+s @rrrs5 :   q r"c#XK|]"\}}tdt|D$yw)c3:K|]\}}t||zywr&)C)rrr(s rrz.'sC\Q !yCsNr)r.s rrr&s,:CYz-BCCs(*ctjtj|t }|j t |dt|di}tj|tj |dtztddf}|S)Nrr )r integratesympifyysubsxdiffr)fcurveXYs rgreenr;,sk bjjmQ ''A 71:q'!*-.A QQ//!Q;A HceZdZdZdZy)_BezierFuncsLazyc ||_i|_yr&)_symfunc _bezfuncs)selfsymfuncs r__init__z_BezierFuncsLazy.__init__4s r<ct|dzDcgc]}d|z }}t|jt|}t j |j ttd}t j||Scc}w)Nr zp%d) r-r;r@ BezierCurver gcd_termscollectr*r'lambdify)rBrdargsr9s r __missing__z_BezierFuncsLazy.__missing__8sh#(Q<0a 00 $--Q 0 LL3q":. /{{4##1s BN)__name__ __module__ __qualname__rDrMrFr<rr>r>3s $r<r>cLeZdZiZedZd dZdZdZdZ dZ dZ d Z y) GreenPenct|}||jvrt||j|<|j|Sr&)str _BezierFuncsr>)celffuncfuncstrs r_getGreenBezierFuncszGreenPen._getGreenBezierFuncsBs?d)$+++)9$)?D  g &  ))r<Ncjtj|||j||_d|_y)Nr)rrDrY_funcsvalue)rBrWglyphsets rrDzGreenPen.__init__Is+x(//5  r<c||_yr&) _startPointrBp0s r_moveTozGreenPen._moveToNs r<cz|j}||jk7r|j|jyyr&)_getCurrentPointr__lineTor`s r _closePathzGreenPen._closePathQs5  " " $ !! ! LL)) * "r<cN|j}||jk7rtyr&)rdr_NotImplementedErrorr`s r_endPathzGreenPen._endPathVs)  " " $ !! !% % "r<cv|j}|xj|jd||z c_y)Nr rdr\r[)rBp1ras rrezGreenPen._lineTo\s/  " " $ ndkk!nR,, r<cx|j}|xj|jd|||z c_y)Nr,rk)rBrlp2ras r _qCurveToOnezGreenPen._qCurveToOne`s1  " " $ ndkk!nRR00 r<cz|j}|xj|jd||||z c_y)Nrrk)rBrlrnp3ras r _curveToOnezGreenPen._curveToOneds3  " " $ ndkk!nRR44 r<r&) rNrOrPrU classmethodrYrDrbrfrirerorrrFr<rrRrR?s<L**  + & -15r<rR)rWc |td|ztd|d|d||D]\}}td|z|tdd| d D]}t|d zDcic]/}td D]}t||ttg||!1} }}|Dcgc]\}}t |t |} }}| Dcgc]4}tj|jttd 6} }| Dcgc]}|j| } }tj| ddtD\} } t| D]\}} td|z||d k(rtd|n%|d k(rtd|n|dk(r td|| D]\}} td|d| |t|t|Dcgc]}|d c}| D]\}} td|d| |td|z||D]"\}}td|dt|d|$td|ycc}}wcc}}wcc}wcc}wcc}w) Nz"""%s"""afrom 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." ) )endrv)r r,rr r,rFbasicc3LK|]}tjd|zyw)zr%dN)r Symbol)rrs rrz printGreenPen..s;aRYYuqy);s"$) 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 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 ra= @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 = rz self.z += zj if __name__ == '__main__': from fontTools.misc.symfont import x, y, printGreenPen printGreenPen('%s', [z ('z', z),z ]))printr-r'XYr;rGr rHrIr*r6cserziprT)penNamefuncsrv docstringnamer9rrrr6greensdefsexprsr\s r printGreenPenrts j9$% " G! "%(1a o$401    %*:@/4QU|N!U1XN!Q!Q1%NNN:?@wtQ%;q>*@@?EF!",,qyyQ45FF(./1!&&,//ff !;57; e  IKD% 5<4 H I 6  !V  !V     :KD% u-D 9 : 4e4!4e< @KD% tU3$ ? @s:@x       Aa tSV44@A +D!KO@F/j 5s$4I  I9II I" __main__r,ru)1fontTools.pens.basePenr functoolsr itertoolsrsympyr sysrr rr7r5r rr~rrr'r1BinomialCoefficientr-rrlenthisappendr BernsteinPolynomialrG BezierCurveCr;dictr>rRAreaPen MomentXPen MomentYPen MomentXXPen MomentYYPen MomentXYPenstdoutrrNargvrevalr)rr9s00rrs*  "**W4 (1aBJJs *"**Vq1u%D 12 *"**Vq1u%D 12 #MM NO *"**Vq1u%E 23h q!a%%A r "D Ac$i0@A AD HDt$%M9LMM$23  ##67  "#67   $t $'5w'5Z ( # XA & XA & hQU+ hQU+ hQU+ (+zzTu"p z xx|((1+03CHHQTTNCHHQTPQTN0STWT1$QTgu3::6 UsI