Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 2øªjT ã@sbdd„Zdd„Zdd„Zdd„Zdd d „Zidd fd d „Zdd„Zdd„Zddd„Zddd„Z d S)cCsddg}xðdD]è}g||<}||||||||f\}} } } || kr~t|ƒ} | | krl|j| g| ƒq|jdg| ƒq|| krš| |}} | | } } | | | |} xJ|D]B}||}||krÊ| }n|| krØ| }n| ||| }|j|ƒq°WqWt|ŽS)Néé)rr)ÚlenÚextendÚappendÚzip)ÚcoordsZrc1Zrd1Zrc2Zrd2Z out_arraysÚjÚoutÚx1Zx2Úd1Úd2ÚnZscaleÚpairÚxÚd©rú9/tmp/pip-build-_d5lkt3n/fonttools/fontTools/varLib/iup.pyÚ iup_segments.  $   rc Cs®t|ƒt|ƒkst‚d|kr |St|ƒ}dd„t|ƒDƒ}|sHdg|Sg}t|ƒ}t|ƒ}|dkrªd|||df\}}} } |jt|||…|| || || || ƒƒ|j||ƒxr|D]j} | |dk�r|d| || f\}}} } |jt|||…|| || || || ƒƒ|j|| ƒ| }q¾W||dk�r„|d|||df\}}} } |jt|||…|| || || || ƒƒt|ƒt|ƒk�sªtt|ƒt|ƒfƒ‚|S)NcSsg|]\}}|dk r|‘qS)Nr)Ú.0ÚiÚvrrrú .sziup_contour..rr)rréÿÿÿÿ)rÚAssertionErrorÚ enumerateÚiterÚnextrrr) Údeltarr Úindicesr ÚitÚstartÚi1Úi2Zri1Zri2ÚendrrrÚ iup_contour's2 . ..&r$cCs¢t|ƒ|kr,t|ƒ|r"|ddnddks0t‚t|ƒ}||d|d|d|dg}g}d}x<|D]4}|d7}t|||…|||…ƒ}|j|ƒ|}qfW|S)Nrrééér)Úsortedrrr$r)rrÚendsr r r r#ÚcontourrrrÚ iup_deltaIs0   r+cs€||dkst‚tt||d|…||||||||ƒƒ}||d|…}t|ƒt|ƒksdt‚t‡fdd„t||ƒDƒƒS)Nr'rc3s4|],\\}}\}}tt||||ƒƒˆkVqdS)N)ÚabsÚcomplex)rrÚyÚpÚq)Ú tolerancerrú `sz%can_iup_in_between..)rÚlistrrÚallr)Zdeltasrrrr1Zinterpr)r1rÚcan_iup_in_betweenYs 0r5rcCst|ƒt|ƒkst‚tƒ}|d|d}}|d|d}}�xÀtt|ƒdddƒD�]¦}||} } ||d||d}}�xpd D�]f} | | } | | } || }|| }|| }|| }||krÜ||}}||}}n||}}||}}d}|| k�o|kn�rFt||ƒ|| k�o8t||ƒ|kn�sàd}nš||k�r‚||k�rrt| |ƒ|k�r€d}nt| ƒ|k�ràn^||k�rà| |k�r¼| |k�rà| ||k||kk�ràd}n$|| k�rà|| |k||kk�ràd}|rˆ|j|ƒPqˆW| | }}qVW|S) a–The forced set is a conservative set of points on the contour that must be encoded explicitly (ie. cannot be interpolated). Calculating this set allows for significantly speeding up the dynamic-programming, as well as resolve circularity in DP. The set is precise; that is, if an index is in the returned set, then there is no way that IUP can generate delta for that point, given coords and delta. rrFTrrrr)rr)rrÚsetÚrangeÚminÚmaxr,Úadd)rrr1ÚforcedZndZncÚldÚlcrrÚcrÚcjZdjZlcjZldjZncjZndjÚc1Úc2r r ÚforcerrrÚ_iup_contour_bound_forced_setbsP     0       rCNc CsØt|ƒ}|dkr|}ddi}ddi}xªtd|ƒD]œ}||dd} | ||<|d||<|d|krfq0xdt|dt||dƒdƒD]F} || d} | | kr¾t||| ||ƒr¾| ||<} | ||<| |kr‚Pq‚Wq0W||fS) aÇStraightforward Dynamic-Programming. For each index i, find least-costly encoding of points 0 to i where i is explicitly encoded. We find this by considering all previous explicit points j and check whether interpolation can fill points between j and i. Note that solution always encodes last point explicitly. Higher-level is responsible for removing that restriction. As major speedup, we stop looking further whenever we see a "forced" point.Nrrr'rréþÿÿÿr)rr7r9r5) rrr;r1Zlookbackr ÚcostsÚchainrÚ best_costrÚcostrrrÚ_iup_contour_optimize_dp¦s&       rIcCs8t|ƒ}||;}|s|S|||d…|d||…S)zxRotate list by k items forward. Ie. item at position 0 will be at position k in returned list. Negative k is allowed.N)r)ÚlÚkr rrrÚ _rot_listËs rLcs$ˆˆ;‰ˆs|S‡‡fdd„|DƒS)Ncsh|]}|ˆˆ’qSrr)rr)rKr rrú Ösz_rot_set..r)ÚsrKr r)rKr rÚ_rot_setÓsrOçc stˆƒ}t‡fdd„ˆDƒƒr(dg|S|dkr4ˆSˆd‰t‡fdd„ˆDƒƒrfˆgdg|dStˆ|ˆƒ}|�r0|dt|ƒ}|dks”t‚tˆ|ƒ‰t||ƒ}t|||ƒ}tˆ||ˆƒ\}}tƒ‰|d}x|dk ròˆj |ƒ||}qÖW|ˆk�s t|ˆfƒ‚‡‡fdd„t |ƒDƒ‰tˆ| ƒ‰nÐtˆˆ|||ˆ|ƒ\}}d|d‰} xŒt |dd|dƒD]r} tƒ‰| }x*|| |k�rªˆj ||ƒ||}�q‚W|| |k�rr|| || |} | | k�rrˆ| ‰} �qrW‡‡fd d„t |ƒDƒ‰ˆS) Nc3s|]}tt|ŽƒˆkVqdS)N)r,r-)rr/)r1rrr2Þsz'iup_contour_optimize..rrc3s|]}ˆ|kVqdS)Nr)rr)Úd0rrr2çscs g|]}|ˆkrˆ|nd‘qS)Nr)rr)rÚsolutionrrrsz(iup_contour_optimize..r'cs g|]}|ˆkrˆ|nd‘qS)Nr)rr)Úbest_solrrrrs) rr4rCr9rrLrOrIr6r:r7) rrr1r r;rKrFrErrGr rHr)rSrQrrRr1rÚiup_contour_optimizeØsL          rTc CsÀt|ƒ|kr,t|ƒ|r"|ddnddks0t‚t|ƒ}||d|d|d|dg}g}d}xZ|D]R}t|||d…|||d…|ƒ}t|ƒ||dks¦t‚|j|ƒ|d}qfW|S)Nrrr%r&r'r)r(rrrTr) rrr)r1r r r r#r*rrrÚiup_delta_optimize s0  $  rU)r)rP)rP) rr$r+r5rCrIrLrOrTrUrrrrÚs&" D% H