L i9dZddlmZddlmZddlmcmcmZddlmcmcm Z ddl m Z ddl m cmZddlmZddlmZddlmZddlmZdd lmZd d gZGd d eZej9ej:d dfej:ddfej:ddfej:ddfej:ddfej:ddfe j<dfe j>dfe j@dfe jBdfe jDdfe jFdff dZ$ejKej:dej:d fd!d"Z$ejKej:d#d$d%Z$ejKej:d&d'd(Z$ejKej:d)d*d+Z$ejKej:d,d-d.Z$ejKej:d/d0d1Z$d2Z&ejKej:d3ej:d4fd5d6Z$ejOe jPd7Z$d8Z)ejOe jTd9Z$ejOe jVd:Z$d;Z,d>d<Z-e.d=k(rddl/Z/e/j`e-yy)?zsChange the units-per-EM of a font. AAT and Graphite tables are not supported. CFF/CFF2 fonts are de-subroutinized.) TTVisitorN) VarStoreData)builder)OnlineMultiVarStoreBuilder)Vector)otRound)batched scale_upem ScalerVisitorceZdZdZdZy)r c||_yN) scaleFactor)selfrs _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/ttLib/scaleUpem.py__init__zScalerVisitor.__init__s &c2t||jzSr)rr)rvs rscalezScalerVisitor.scalesq4+++,,rN)__name__ __module__ __qualname__rrrrr r s '-rhead) unitsPerEmxMinyMinxMaxyMaxpost)underlinePositionunderlineThicknessVORGdefaultVertOriginYhhea)ascentdescentlineGapadvanceWidthMaxminLeftSideBearingminRightSideBearing xMaxExtent caretOffsetvhea)r'r(r)advanceHeightMaxminTopSideBearingminBottomSideBearing yMaxExtentr.zOS/2) xAvgCharWidthySubscriptXSizeySubscriptYSizeySubscriptXOffsetySubscriptYOffsetySuperscriptXSizeySuperscriptYSizeySuperscriptXOffsetySuperscriptYOffsetyStrikeoutSizeyStrikeoutPosition sTypoAscendersTypoDescender sTypoLineGap usWinAscent usWinDescentsxHeight sCapHeight)XAdvanceYAdvance XPlacement YPlacement) XCoordinate YCoordinate CoordinateValue)rrrr c<t|||j|yr)setattrr)visitorobjattrvalues rvisitrTsD Cw}}U+,rhmtxvmtxmetricscl|D]/}||\}}|j||j|f||<1yrr)rPrQrRrWgadvancelsbs rrTrTcsB@qz ]]7+W]]3-?? @rVMTXVOriginRecordsc@|D]}|j||||<yrrY)rPrQrRr^rZs rrTrTls) =#MM.*;<q=rglyfglyphsc |jD]}dD].}t||d}|t|||j|0|j rR|j D]B}|j|j |_|j|j|_Dt|ds|j}t|D]-\}\} } |j| |j| f||</y)N)rrrr coordinates) valuesgetattrrOr isComposite componentsxyhasattrrc enumerate) rPrQrRrarZr componentrcirhris rrTrTrs ]]_D4 3D4&A}4q!12 3 ==?\\ 9 %mmIKK8 %mmIKK8  9  1m $--K&{3 D 6Aq!(q!17==3C!C A DDrgvar variationsc|jd}|jD]^\}}||}|D]O}|j} t| D]3\} } |  |j | d|j | df| | <5Q`y)Nr`r)fontitemsrcrkr) rPrQrRro glyfTable glyphNamevarlistglyphvarrcrmxys rrTrTs V$I(..0L 7)$ LC//K";/ L2:!(r!u!5w}}RU7K!K A L LLrVARCtablec |jd}|jDcgc]}|j}}|j}t |}|j j D]~} | jD]k} | j} |j| j| _ |j| j| _ |j| j| _ |j| j| _ | jtj k7r| j} | tj k7r| dz } | dz}|j"| }|j$|}|j'|j)| |j|r\t+||j,z}t/t1||}|Dcgc] }t3|}}|j5|| _ntj | _| j6tj k7s| j6} | tj k7s| dz } | dz}j$| dz}| dz } | dz}|j"| }|j$|}|j'|j)| |j|rt+||j,z}| j8}t/t1||}g}|D]}t/|}d}|tj:j<zr|j||||<|dz }|tj:j>zr|j||||<|dz }|tj:j@zr|dz }|tj:jBzr|dz }|tj:jDzr|dz }|tj:jFzr|dz }|tj:jHzr|dz }|tj:jJzr|j||||<|dz }|tj:jLzr|j||||<|dz }|jOt3||}|j5|| _Wtj | _n|jQ|_ycc}wcc}w)Nfvarirrq))rraxesaxisTag MultiVarStorerVarCompositeGlyphsVarCompositeGlyphrg transformr translateX translateYtCenterXtCenterYaxisValuesVarIndexotTablesNO_VARIATION_INDEX MultiVarDataItem setSupports get_supportslenVarRegionCountlistr r storeDeltastransformVarIndexflagsVarComponentFlagsHAVE_TRANSLATE_XHAVE_TRANSLATE_Y HAVE_ROTATION HAVE_SCALE_X HAVE_SCALE_Y HAVE_SKEW_X HAVE_SKEW_YHAVE_TCENTER_XHAVE_TCENTER_Yappendfinish)rPrQrRvarcr}afvarAxesstore storeBuilderrZrltvarIdxmajorminorvarDatavecmrrnewVecrms rrTrTsX << D#'99-a -H-   E-h7L  $ $ 6 6JRI RI##A"==6AL"==6AL qzz2AJ qzz2AJ++x/J/JJ"55X888"bLE"VOE#007G!,,u-C ,,U-?-?tyy-QRH(>(>>"73?3256Qvay667C7O7OPS7T 47?7R7R 4**h.I.II"44X888"bLE"VOE!,,v7C"bLE"VOE#007G!,,u-C ,,U-?-?tyy-QRH(>(>> )"73?3!#!$5A $QA !A$x'A'A'R'RR'.}}QqT':! !Q$x'A'A'R'RR'.}}QqT':! !Q$x'A'A'O'OO !Q$x'A'A'N'NN !Q$x'A'A'N'NN !Q$x'A'A'M'MM !Q$x'A'A'M'MM !Q$x'A'A'P'PP'.}}QqT':! !Q$x'A'A'P'PP'.}}QqT':! !Q"MM&)4758%6B6N6Ns6S 36>6Q6Q 3SI RJRX&,,.Dc.47s S8S=kern kernTablesc|D]:}|j}|jD]}|j||||<<yr) kernTablekeysr)rPrQrRrr{rks rrTrTsF7OO ! 7A"==16IaL 77rct|D]Q\}}t|ts&t|tr'|j |||<<|d}t ||||d<Sy)N)rk isinstancerbytesr _cff_scale)rPargsrmarg num_blendss rrrs[D/!3#t$c5)!--,QRJ w $ CG!rzCFF CFF2cffc |j|jd}t|dd}| |jnd}t }|j D]}||} | j } | jD]} | j| \} } |j| jtj| j|}|D]\}}|dk(r t||tj|| jdddD]K}t||d}|t!|t"r t||0t%|||j'|Mt)dD]#}|j*|xx|j,zcc<%|D]R}dD]K}t||d}|t!|t"r t||0t%|||j'|MTy)NrVarStore) getNumRegionsvsindex)UnderlinePositionUnderlineThicknessFontBBox StrokeWidth) BlueValues OtherBlues FamilyBluesFamilyOtherBluesStdHWStdVW StemSnapH StemSnapV defaultWidthX nominalWidthX)desubroutinize topDictIndexrersetr CharStringscharsetgetItemAndSelectoraddprivatecffSpecializerprogramToCommandsprogramrcommandsToProgramrrrOrrange FontMatrixr)rPrQrRrtopDictvarStorerprivatesfontnamerrcsrZc_commandsoprrSrmrs rrTrTsq!Gw D1H.6.BH**MuHHHJ9A8}    FA((+DAq LL #%77 H% *D?7D) **;;HEAIIaL F =D GT40E}%&7E*w}}U';< =q 9A   q !W%8%8 8 ! 9  AG A t4=eT*w.GT7==+?@+ A AG9Arc|jD])}t|D]\}}|j|||<+|jyr)rrkrcalculateNumShorts)rPritemrmrs rrTrTHsL 'dO 'DAqmmA&DG ''  rcVd|cxkrdkr*nn'tjj|_||_ytj }|j dx|_x|_x|_ |_ |x|_ |_ tjj|_||_y)Nr)r PaintFormatPaintScaleUniformFormatr Affine2x3populateDefaultsryyxdxdyxxyyPaintTransform Transform)paintrrs r_setup_scale_paintrSs U#m#++==  ""$I  @AAILA9<A),"''IL9<''66ELEOrc|j}tj}t||j||_||_y)NT)Paintrrr)rPrecordoldPaintrs rrTrTbs8||H NN Eug112EKFL rc`|jtjjk7rytj}|j|_|j|_|j |_|`|`t |d|jz ||_|j|jy)NTrqF) rrr PaintGlyphrGlyphrrrT)rPrnewPaints rrTrTos ||x++666~~HllHO[[HN[[HN  ua'"5"556EK MM(..! rc`|dj}t||z }|j|y)z1Change the units-per-EM of font to the new value.rN)rr rT)rrnew_upemupemrPs rr r s+ < " "DHtO,G MM$rc|ddl}|jdd}ddlm}ddlm}ddl}|jdd}|jddd |jd d d |jdddd|j|}||j}t|j}|j |jn||jdd} t||td| z|j!| y)z Change the units-per-EM of fontsNrrq)TTFont)makeOutputFileNamezfonttools ttLib.scaleUpem) descriptionrrz Font file.)metavarhelprznew-upemzNew units-per-EM integer value.z --output-filepathz Output file.)r defaultr Tz-scaled) overWritesuffixz Writing %s)sysargvfontTools.ttLibr fontTools.misc.cliToolsr argparseArgumentParser add_argument parse_argsrrintr output_filer printsave) rrr r rparseroptionsrrrrs rmainr s |xx|&:  $ $#1S%F \B J-N N%G ',, D7##$H    *   Y O tX , $%IIkr__main__r)1__doc__fontTools.ttLib.ttVisitorrrttLibfontTools.ttLib.tables.otBasetablesotBasefontTools.ttLib.tables.otTablesrfontTools.cffLibrfontTools.cffLib.specializercffLib specializerrfontTools.varLibrfontTools.varLib.multiVarStorerfontTools.misc.vectorrfontTools.misc.fixedToolsrfontTools.misc.iterToolsr __all__r register_attrs getTableClass ValueRecordAnchor CaretValue BaseCoordMathValueRecordClipBoxrT register_attrrregisterVarDatarBaseGlyphPaintRecordrr r rrexitrrrr@s 0..22)55$E(-,  )-I-   V $&TU   V $&QR   V $';= E   '   E   '   E   '  0  @  89   |-   l,  ! !G-   ;<{>@B-C@B-U "5%"5"5f"=> @@ 0U008:JK=L= 0U008(CDDD&0U008,G LH L0U008'BU/CU/p0U008,G7H7!U "5%"5"5f"=>?A?AJ(()!*!  556 7 '(&$N z CHHTVr