Ë
    £ehü  ã                   óH  — d Z ddlmZmZmZmZmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZmZ ddlmZ dd	lZdd	lZ ej(                  e«      Zd
Z ej0                  e«      ZdZ ej0                  e«      Z G d„ de
j                  «      Z G d„ de«      Ze G d„ de«      «       Zy	)aP  Compiles/decompiles SVG table.

https://docs.microsoft.com/en-us/typography/opentype/spec/svg

The XML format is:

.. code-block:: xml

	<SVG>
		<svgDoc endGlyphID="1" startGlyphID="1">
			<![CDATA[ <complete SVG doc> ]]
		</svgDoc>
	...
		<svgDoc endGlyphID="n" startGlyphID="m">
			<![CDATA[ <complete SVG doc> ]]
		</svgDoc>
	</SVG>
é    )Ú	bytesjoinÚsafeEvalÚstrjoinÚtobytesÚtostr)Ússtructé   )ÚDefaultTable)ÚSequence)Ú	dataclassÚastuple)ÚBytesIONzj
	>   # big endian
	version:                  H
	offsetToSVGDocIndex:      L
	reserved:                 L
z‡
	>   # big endian
	startGlyphID:             H
	endGlyphID:               H
	svgDocOffset:             L
	svgDocLength:             L
c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)Útable_S_V_G_zÉScalable Vector Graphics table

    The ``SVG`` table contains representations for glyphs in the SVG
    image format.

    See also https://learn.microsoft.com/en-us/typography/opentype/spec/stat
    c           	      ó¸  — g | _         t        j                  t        |d t         | «       | j
                  dk7  r t        j                  d| j
                  «       | j                  x}}t        j                  d|||dz    «      d   | _
        |dz  }| j                  dkD  �r/||d  }g }t        | j                  «      D ]L  }||t        z  |dz   t        z   }t        j                  t        |t        «       «      }	|j                  |	«       ŒN |D ]¾  }
|
j                   |z   }||
j"                  z   }||| }d}|j%                  d«      r?dd l}t)        |«      }|j+                  d d|¬	«      5 }|j-                  «       }d d d «       ~d
}t/        |d«      }| j                   j                  t1        ||
j2                  |
j4                  |«      «       ŒÀ y y # 1 sw Y   ŒWxY w)Nr   z9Unknown SVG table version '%s'. Decompiling as version 0.ú>Hé   r	   Fó   ‹Úr)ÚfileobjTÚutf_8)ÚdocListr   ÚunpackÚSVG_format_0ÚSVG_format_0SizeÚversionÚlogÚwarningÚoffsetToSVGDocIndexÚstructÚ
numEntriesÚrangeÚdoc_index_entry_format_0SizeÚdoc_index_entry_format_0ÚDocumentIndexEntryÚappendÚsvgDocOffsetÚsvgDocLengthÚ
startswithÚgzipr   ÚGzipFileÚreadr   ÚSVGDocumentÚstartGlyphIDÚ
endGlyphID)ÚselfÚdataÚttFontÚposÚsubTableStartÚdata2ÚentriesÚiÚrecord_dataÚdocIndexEntryÚentryÚstartÚendÚdocÚ
compressedr*   ÚbytesIOÚ	gunzippers                     ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/ttLib/tables/S_V_G_.pyÚ	decompileztable_S_V_G_.decompile>   s×  € ØˆŒô 	�‰”| TÐ*;Ô+;Ð%<¸dÔCØ�<‰<˜1ÒÜ�K‰KØKØ—‘ôð #×6Ñ6Ð6ˆˆmÜ Ÿ-™-¨¨d°3¸¸q¹Ð.AÓBÀ1ÑEˆŒØˆq‰ˆØ�?‰?˜QÓØ˜˜�JˆEØˆGÜ˜4Ÿ?™?Ó+ò 	.�Ø#ØÜ2ñ3Ø67¸!±eÜ2ñ63ð�ô
 !(§¡Ü,¨kÔ;MÓ;Oó!�ð —‘˜}Õ-ð	.ð !ò �Ø×*Ñ*¨]Ñ:�Ø˜e×0Ñ0Ñ0�Ø˜5 �o�Ø"�
Ø—>‘> +Ô.Ûä% c›l�GØŸ™ t¨S¸'˜ÓBð /ÀiØ'Ÿn™nÓ.˜÷/àØ!%�JÜ˜C Ó)�Ø—‘×#Ñ#Ü  U×%7Ñ%7¸×9IÑ9IÈ:ÓVõñð ÷./ð /ús   Å)GÇG	c                 ó4  — d}t         }g }g }t        | j                  «      }t        j                  d|«      }|j                  |«       t        |«      t        |z  z   }i }	t        | dd«      }
t        | j                  «      D �]A  \  }}t        |t        t        f«      rt        |Ž }|| j                  |<   t        |j                  d¬«      }|
s|j                  ry|j!                  d«      shdd l}t%        «       }|j'                  d d|d¬	«      5 }|j)                  |«       d d d «       |j+                  «       }t        |«      t        |«      k  r|}~~t        |«      }||	v r|	|   }n|}||z  }||	|<   |j                  |«       t        j                  d
|j,                  |j.                  ||«      }|j                  |«       �ŒD |j1                  |«       t3        |«      }d}t        j                  d|||«      }||g}t3        |«      }|S # 1 sw Y   ŒîxY w)Nr   r   r>   Fr   )Úencodingr   Úw)r   Úmtimez>HHLLz>HLL)r   Úlenr   r    Úpackr&   r#   ÚgetattrÚ	enumerateÚ
isinstanceÚlistÚtupler-   r   r1   r>   r)   r*   r   r+   ÚwriteÚgetvaluer.   r/   Úextendr   )r0   r2   r   r   r   Ú	entryListr!   ÚdatumÚ	curOffsetÚseenDocsÚallCompressedr7   r=   ÚdocBytesr*   r?   ÚgzipperÚgzippedÚ	docLengthÚ	docOffsetr:   Ú
svgDocDataÚreservedÚheaderr1   s                            rA   Úcompileztable_S_V_G_.compilem   s  € Øˆäð 	ð ˆØˆ	Ü˜Ÿ™Ó&ˆ
Ü—‘˜D *Ó-ˆØ×Ñ˜ÔÜ˜“JÔ!=À
Ñ!JÑJˆ	ØˆÜ  l°EÓ:ˆÜ §¡Ó-ó 	$‰FˆAˆsÜ˜#¤¤e˜}Ô-Ü! 3Ð'�Ø"%�—‘˜Q‘Ü˜sŸx™x°'Ô:ˆHÙ §¢¸×9LÑ9LØô:ó ä!›)�ð —]‘] 4¨°gÀQ�]ÓGð ,È7Ø—M‘M (Ô+÷,à!×*Ñ*Ó,�Ü�w“<¤# h£-Ò/Ø&�HØ˜WÜ˜H›ˆIØ˜8Ñ#Ø$ XÑ.‘	à%�	Ø˜YÑ&�	Ø%.�˜Ñ"Ø—‘˜xÔ(Ü—K‘KØ˜×)Ñ)¨3¯>©>¸9ÀióˆEð ×Ñ˜UÖ#ð=	$ð> 	×Ñ˜Ô!Ü˜yÓ)ˆ
àˆÜ—‘˜V WÐ.AÀ8ÓLˆØ˜
Ð#ˆÜ˜‹ˆØˆ÷3,ð ,ús   ÄHÈH	c                 óÈ  — t        | j                  «      D ]Ê  \  }}t        |t        t        f«      rt        |Ž }|| j                  |<   |j                  |j                  dœ}|j                  rd|d<    |j                  di |¤Ž |j                  «        |j                  |j                  «       |j                  «        |j                  d«       |j                  «        ŒÌ y )N)r.   r/   r	   r>   ÚsvgDoc)r`   )rJ   r   rK   rL   rM   r-   r.   r/   r>   ÚbegintagÚnewlineÚ
writecdatar1   Úendtag)r0   Úwriterr2   r7   r=   Úattrss         rA   ÚtoXMLztable_S_V_G_.toXML£   sµ   € Ü §¡Ó-ò 	‰FˆAˆsÜ˜#¤¤e˜}Ô-Ü! 3Ð'�Ø"%�—‘˜Q‘Ø%(×%5Ñ%5ÀSÇ^Á^ÑTˆEØ�~Š~Ø&'��lÑ#ØˆF�O‰OÑ.¨Ò.Ø�N‰NÔØ×Ñ˜cŸh™hÔ'Ø�N‰NÔØ�M‰M˜(Ô#Ø�N‰NÕñ	ó    c                 óh  — |dk(  r–t        | d«      sg | _        t        |«      }|j                  «       }t	        |d   «      }t	        |d   «      }t        t        |j                  dd«      «      «      }| j                  j                  t        ||||«      «       y t        j                  d||«       y )Nr`   r   r.   r/   r>   Ú0zUnknown %s %s)Úhasattrr   r   ÚstripÚintÚboolr   Úgetr&   r-   r   r   )	r0   Únamerf   Úcontentr2   r=   ÚstartGIDÚendGIDr>   s	            rA   ÚfromXMLztable_S_V_G_.fromXML²   s•   € Ø�8ÒÜ˜4 Ô+Ø!�”Ü˜'Ó"ˆCØ—)‘)“+ˆCÜ˜5 Ñ0Ó1ˆHÜ˜˜|Ñ,Ó-ˆFÜœh u§y¡y°¸sÓ'CÓDÓEˆJØ�L‰L×Ñ¤¨C°¸6À:Ó NÕOä�K‰K˜¨¨wÕ7rh   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rB   r^   rg   rt   © rh   rA   r   r   5   s   „ ñò-ò^4òló8rh   r   c                   ó   — e Zd Zd„ Zd„ Zy)r%   c                 ó<   — d | _         d | _        d | _        d | _        y )N©r.   r/   r'   r(   ©r0   s    rA   Ú__init__zDocumentIndexEntry.__init__Á   s!   € Ø ˆÔØˆŒØ ˆÔØ ˆÕrh   c                 ón   — d| j                   ›d| j                  ›d| j                  ›d| j                  ›�S )NzstartGlyphID: z, endGlyphID: z, svgDocOffset: z, svgDocLength: r|   r}   s    rA   Ú__repr__zDocumentIndexEntry.__repr__Ç   s.   � ð × Ó  $§/£/°4×3DÓ3DÀd×FWÒFWðYð	
rh   N)ru   rv   rw   r~   r€   ry   rh   rA   r%   r%   À   s   „ ò!ó
rh   r%   c                   óF   — e Zd ZU eed<   eed<   eed<   dZeed<   d„ Zd„ Z	y)	r-   r1   r.   r/   Fr>   c                 ó$   — t        | «      d d |   S ©Né   )r   )r0   Úindexs     rA   Ú__getitem__zSVGDocument.__getitem__Û   s   € Ü�t‹}˜R˜aÐ  Ñ'Ð'rh   c                  ó   — yrƒ   ry   r}   s    rA   Ú__len__zSVGDocument.__len__Þ   s   € Ørh   N)
ru   rv   rw   ÚstrÚ__annotations__rm   r>   rn   r†   rˆ   ry   rh   rA   r-   r-   Î   s&   … à
ƒIØÓØƒOØ€J�Óò(órh   r-   ) rx   ÚfontTools.misc.textToolsr   r   r   r   r   ÚfontTools.miscr   Ú r
   Úcollections.abcr   Údataclassesr   r   Úior   r    ÚloggingÚ	getLoggerru   r   r   Úcalcsizer   r$   r#   r   Úobjectr%   r-   ry   rh   rA   ú<module>r•      s²   ðñ÷& RÕ QÝ "Ý Ý $ß *Ý Û Û ð €g×Ñ˜Ó!€ð€ð $�7×#Ñ# LÓ1Ð ðÐ ð  0˜w×/Ñ/Ð0HÓIÐ ôH8�<×,Ñ,ô H8ôV
˜ô 
ð ô�(ó ó ñrh   