§
    ‚Ûgž  ã                   ór   — d Z ddlmZmZmZmZ ddlZddlZddlZdZ	 G d„ de
¦  «        Zd„ Zd„ Zd	„ Zd
„ ZdS )z*xmlWriter.py -- Simple XML authoring classé    )ÚbyteordÚstrjoinÚtobytesÚtostrNz  c                   óŠ   — e Zd Zedddfd„Zd„ Zd„ Zd„ Zdd	„Zd
„ Z	dd„Z
d„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú	XMLWriterNÚutf_8ú
c                 ód  — |                      ¦   «                              dd¦  «                             dd¦  «        dk    rt          d¦  «        ‚|dk    rt          j        }t          |d¦  «        s$|| _        t          |d¦  «        | _        d| _	        nd | _        || _        d	| _	        	 | j         
                    d
¦  «         t          | _        n6# t          $ r) | j         
                    d¦  «         t          | _        Y nw xY w|                      |¦  «        | _        |€%|                      t           j        ¦  «        | _        n|                      |¦  «        | _        d| _        g | _        d| _        || _        d| _        |                      d¦  «         |                      ¦   «          d S )Nú-Ú Ú_Úutf8z!Only UTF-8 encoding is supported.ÚwriteÚwbTFó    r   é   z&<?xml version="1.0" encoding="UTF-8"?>)ÚlowerÚreplaceÚ	ExceptionÚsysÚstdoutÚhasattrÚfilenameÚopenÚfileÚ_closeStreamr   r   ÚtotypeÚ	TypeErrorr   ÚindentwhiteÚosÚlinesepÚ
newlinestrÚindentlevelÚstackÚ
needindentÚidlefuncÚidlecounterÚ	_writerawÚnewline)ÚselfÚ
fileOrPathr    r'   Úencodingr#   s         úN/granary/edev/quantum/lib/python3.11/site-packages/fontTools/misc/xmlWriter.pyÚ__init__zXMLWriter.__init__   s’  € ð �>Š>ÑÔ×#Ò# C¨Ñ,Ô,×4Ò4°S¸"Ñ=Ô=ÀÒGÐGÝÐ?Ñ@Ô@Ð@Ø˜ÒÐÝœˆJÝ�z 7Ñ+Ô+ð 	&Ø&ˆDŒMÝ˜Z¨Ñ.Ô.ˆDŒIØ $ˆDÔÐà ˆDŒMà"ˆDŒIØ %ˆDÔð	 ð ŒI�OŠO˜CÑ Ô Ð Ý!ˆDŒKˆKøÝð 	 ð 	 ð 	 àŒI�OŠO˜BÑÔÐÝˆDŒKˆKˆKð	 øøøð  Ÿ;š; {Ñ3Ô3ˆÔØÐØ"Ÿkšk­"¬*Ñ5Ô5ˆDŒOˆOà"Ÿkšk¨*Ñ5Ô5ˆDŒOØˆÔØˆŒ
ØˆŒØ ˆŒØˆÔØ�ŠÐ?Ñ@Ô@Ð@Ø�Š‰Œˆˆˆs   Â,&C Ã0DÄDc                 ó   — | S ©N© ©r+   s    r.   Ú	__enter__zXMLWriter.__enter__9   s   € Øˆr   c                 ó.   — |                       ¦   «          d S r1   )Úclose)r+   Úexception_typeÚexception_valueÚ	tracebacks       r.   Ú__exit__zXMLWriter.__exit__<   s   € Ø�
Š
‰Œˆˆˆr   c                 óJ   — | j         r| j                             ¦   «          d S d S r1   )r   r   r6   r3   s    r.   r6   zXMLWriter.close?   s/   € ØÔð 	ØŒI�OŠOÑÔÐÐÐð	ð 	r   Tc                 óN   — |                       t          |¦  «        |¬¦  «         dS )zWrites text.©ÚindentN©r)   Úescape)r+   Ústringr>   s      r.   r   zXMLWriter.writeC   s$   € à�Š•v˜f‘~”~¨fˆÑ5Ô5Ð5Ð5Ð5r   c                 ó<   — |                       d|z   dz   ¦  «         dS )zWrites text in a CDATA section.z	<![CDATA[z]]>N)r)   ©r+   rA   s     r.   Ú
writecdatazXMLWriter.writecdataG   s$   € à�Š�{ VÑ+¨eÑ3Ñ4Ô4Ð4Ð4Ð4r   Fc                 óN   — |                       t          |¦  «        |¬¦  «         dS )z¸Writes a bytes() sequence into the XML, escaping
        non-ASCII bytes.  When this is read in xmlReader,
        the original bytes can be recovered by encoding to
        'latin-1'.)ÚstripN)r)   Ú
escape8bit)r+   ÚdatarF   s      r.   Ú	write8bitzXMLWriter.write8bitK   s(   € ð
 	�Š•z $Ñ'Ô'¨uˆÑ5Ô5Ð5Ð5Ð5r   c                 óN   — |                       t          |¦  «        d¬¦  «         dS )z Writes text without indentation.Fr=   Nr?   rC   s     r.   Úwrite_noindentzXMLWriter.write_noindentR   s$   € à�Š•v˜f‘~”~¨eˆÑ4Ô4Ð4Ð4Ð4r   c                 ó  — |r5| j         r.| j                             | j        | j        z  ¦  «         d| _         |                      |d¬¦  «        }|r|                     ¦   «         }| j                             |¦  «         dS )z Writes bytes, possibly indented.r   r	   )r-   N)r&   r   r   r$   r    r   rF   )r+   rH   r>   rF   Úss        r.   r)   zXMLWriter._writerawV   s}   € àð 	 �d”oð 	 ØŒI�OŠO˜DÔ,¨tÔ/?Ñ?Ñ@Ô@Ð@ØˆDŒOØ�KŠK˜ wˆKÑ/Ô/ˆØð 	Ø—’‘	”	ˆAØŒ	�Š˜ÑÔÐÐÐr   c                 ó´   — | j                              | j        ¦  «         d| _        | j        }|dz  s| j        �|                      ¦   «          |dz   | _        d S )Nr   éd   )r   r   r#   r&   r(   r'   )r+   r(   s     r.   r*   zXMLWriter.newline`   sZ   € ØŒ	�Š˜œÑ(Ô(Ð(ØˆŒØÔ&ˆØ˜SÑ ð 	 T¤]Ð%>Ø�MŠM‰OŒOˆOØ&¨™?ˆÔÐÐr   c                 ó&  — t          |¦  «        }|                     d¦  «        }|                      d|d         z   ¦  «         |dd …         D ].}|                      ¦   «          |                      d|z   ¦  «         Œ/|                      d¦  «         d S )Nr
   z<!-- r   r   z     z -->)r@   Úsplitr)   r*   )r+   rH   ÚlinesÚlines       r.   ÚcommentzXMLWriter.commenth   sŽ   € Ý�d‰|Œ|ˆØ—
’
˜4Ñ Ô ˆØ�Š�w  q¤Ñ)Ñ*Ô*Ð*Ø˜!˜"˜"”Ið 	+ð 	+ˆDØ�LŠL‰NŒNˆNØ�NŠN˜7 T™>Ñ*Ô*Ð*Ð*Ø�Š�vÑÔÐÐÐr   c                 óZ   —  | j         |i |¤Ž}d|›|›d�}|                      |¦  «         d S )Nú<z/>)Ústringifyattrsr)   ©r+   Ú_TAG_ÚargsÚkwargsÚattrdatarH   s         r.   Ú	simpletagzXMLWriter.simpletagq   sC   € Ø&�4Ô&¨Ð7°Ð7Ð7ˆˆØ!˜E 8 8 8Ð,ˆØ�Š�tÑÔÐÐÐr   c                 ó¶   —  | j         |i |¤Ž}d|›|›d�}|                      |¦  «         | j                             |¦  «         |                      ¦   «          d S )NrV   ú>)rW   r)   r%   Úappendr>   rX   s         r.   ÚbegintagzXMLWriter.begintagv   sd   € Ø&�4Ô&¨Ð7°Ð7Ð7ˆˆØ ˜5 ( ( (Ð+ˆØ�Š�tÑÔÐØŒ
×Ò˜%Ñ Ô Ð Ø�Š‰Œˆˆˆr   c                 ó¶   — | j         r| j         d         |k    s
J d¦   «         ‚| j         d= |                      ¦   «          d|z  }|                      |¦  «         d S )Néÿÿÿÿznonmatching endtagz</%s>)r%   Údedentr)   )r+   rY   rH   s      r.   ÚendtagzXMLWriter.endtag}   s`   € ØŒzÐK˜dœj¨œn°Ò5Ð5Ð5Ð7KÑ5Ô5Ð5ØŒJ�rˆNØ�Š‰ŒˆØ˜‰ˆØ�Š�tÑÔÐÐÐr   c                 ó:  — d}|dz  }d}t          dt          |¦  «        |¦  «        D ]r}t          ||||z   …         ¦  «        }d}d}t          d||¦  «        D ]}	||z   ||	|	|z   …         z   }d}Œ|                      |¦  «         |                      ¦   «          Œsd S )Né   é   é   r   r   ú )ÚrangeÚlenÚhexStrr)   r*   )
r+   rH   Ú
linelengthÚhexlinelengthÚ	chunksizeÚiÚhexlinerS   ÚwhiteÚjs
             r.   ÚdumphexzXMLWriter.dumphex„   sÄ   € Øˆ
Ø" Q™ˆØˆ	Ý�q�#˜d™)œ) ZÑ0Ô0ð 	ð 	ˆAÝ˜T ! a¨*¡nÐ"4Ô5Ñ6Ô6ˆGØˆDØˆEÝ˜1˜m¨YÑ7Ô7ð ð �Ø˜e‘| g¨a°!°i±-Ð.?Ô&@Ñ@�Ø��Ø�NŠN˜4Ñ Ô Ð Ø�LŠL‰NŒNˆNˆNð	ð 	r   c                 ó$   — | j         dz   | _         d S )Nr   ©r$   r3   s    r.   r>   zXMLWriter.indent’   s   € ØÔ+¨aÑ/ˆÔÐÐr   c                 ó>   — | j         dk    sJ ‚| j         dz
  | _         d S )Nr   r   rw   r3   s    r.   rd   zXMLWriter.dedent•   s,   € ØÔ !Ò#Ð#Ð#Ð#ØÔ+¨aÑ/ˆÔÐÐr   c                 ó6  — |r&|rJ ‚t          |                     ¦   «         ¦  «        }n"|rt          |¦  «        dk    sJ ‚|d         }ndS d}|D ]I\  }}t          |t          t
          f¦  «        st          |¦  «        }|d|›dt          |¦  «        ›d�z   }ŒJ|S )Nr   r   r   rj   z="ú")ÚsortedÚitemsrl   Ú
isinstanceÚbytesÚstrÚ
escapeattr)r+   rZ   r[   Ú
attributesrH   ÚattrÚvalues          r.   rW   zXMLWriter.stringifyattrs™   sº   € Øð 	ØˆOˆOˆOÝ §¢¡¤Ñ/Ô/ˆJˆJØð 	Ý�t‘9”9 ’>�>�>�>Ø˜aœˆJˆJà�2ØˆØ%ð 	Að 	A‰KˆD�%Ý˜e¥e­S \Ñ2Ô2ð #Ý˜E™
œ
�Ø�4¨¨¨­j¸Ñ.?Ô.?Ð.?Ð.?Ð@Ñ@ˆDˆDØˆr   )T)F)TF)Ú__name__Ú
__module__Ú__qualname__ÚINDENTr/   r4   r:   r6   r   rD   rI   rK   r)   r*   rT   r]   ra   re   ru   r>   rd   rW   r2   r   r.   r   r      sE  € € € € € ð ØØØð+ð +ð +ð +ðZð ð ðð ð ðð ð ð6ð 6ð 6ð 6ð5ð 5ð 5ð6ð 6ð 6ð 6ð5ð 5ð 5ðð ð ð ð+ð +ð +ðð ð ðð ð ð
ð ð ðð ð ðð ð ð0ð 0ð 0ð0ð 0ð 0ðð ð ð ð r   r   c                 óÖ   — t          | d¦  «        } |                      dd¦  «        } |                      dd¦  «        } |                      dd¦  «        } |                      dd	¦  «        } | S )
Nr	   ú&z&amp;rV   z&lt;r_   z&gt;úz&#13;)r   r   ©rH   s    r.   r@   r@   ª   sb   € Ý��wÑÔ€DØ�<Š<˜˜WÑ%Ô%€DØ�<Š<˜˜VÑ$Ô$€DØ�<Š<˜˜VÑ$Ô$€DØ�<Š<˜˜gÑ&Ô&€DØ€Kr   c                 óP   — t          | ¦  «        } |                      dd¦  «        } | S )Nrz   z&quot;)r@   r   r‹   s    r.   r€   r€   ³   s%   € Ý�$‰<Œ<€DØ�<Š<˜˜XÑ&Ô&€DØ€Kr   c                 óh   — d„ }t          t          ||                      d¦  «        ¦  «        ¦  «        S )zInput is Unicode string.c                 óv   — t          | ¦  «        }d|cxk    rdk    r	n n| dvr| S dt          |¦  «        z   dz   S )Né    é   z<&>z&#ú;)ÚordÚrepr)ÚcÚns     r.   Ú
escapecharzescape8bit.<locals>.escapechar¼   sH   € Ý�‰FŒFˆØ�ˆ>ˆ>Š>ˆ>�cŠ>ˆ>ˆ>ˆ>ˆ>˜a u˜n˜nØˆHà�$˜q™'œ'‘> CÑ'Ð'r   zlatin-1)r   ÚmapÚdecode)rH   r–   s     r.   rG   rG   ¹   s7   € ð(ð (ð (õ •3�z 4§;¢;¨yÑ#9Ô#9Ñ:Ô:Ñ;Ô;Ð;r   c                 ó„   — t           j        }d}| D ].}t          |¦  «        }|||dz	  dz           z   ||dz           z   }Œ/|S )Nr   é   é   )rA   Ú	hexdigitsr   )rM   ÚhÚrr”   rq   s        r.   rm   rm   Æ   sT   € ÝÔ€AØ
€AØð /ð /ˆÝ�A‰JŒJˆØ��1˜‘6˜S‘.Ô!Ñ! A a¨#¡g¤JÑ.ˆˆØ€Hr   )Ú__doc__ÚfontTools.misc.textToolsr   r   r   r   r   r!   rA   r‡   Úobjectr   r@   r€   rG   rm   r2   r   r.   ú<module>r¢      sÈ   ðØ 0Ð 0à EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ 
€
€
€
Ø 	€	€	€	Ø €€€à	€ð\ð \ð \ð \ð \�ñ \ô \ð \ð~ð ð ðð ð ð
<ð 
<ð 
<ðð ð ð ð r   