+
    i                    :   R t ^ RIHt ^ RIHtHtHt ^ RIHtH	t	H
t
Ht ^ RIt^ RIt^ RIt^ RIt^ RItRt]P$                  ! R4      tRt]P-                  ]P.                  ! ]! ^ ^	4      R]! ^^ 4      ]! RR	4      R4      ]4      t ! R
 R]4      tR tR tR tR tR# )z*xmlWriter.py -- Simple XML authoring class)annotations)BinaryIOCallableTextIO)byteordstrjointobytestostrNz  zfontTools.ttx?i   i   c                      ] tR t^t]RRR3R R lltR tR tR R	 ltRR
 lt	R t
RR ltR tRR ltR tR tR tR tR tR tR tR tR tRtR# )	XMLWriterNutf_8
c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )   
fileOrPathz*str | os.PathLike[str] | BinaryIO | TextIOindentwhitestridlefunczCallable[[], None] | Noneencoding
newlinestrzstr | bytesreturnNone )formats   "x/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/fontTools/misc/xmlWriter.py__annotate__XMLWriter.__annotate__   sF     0 0>0 0 ,	0
 0  0 
0    c                	   VP                  4       P                  R R4      P                  RR4      R8w  d   \        R4      hVR 8X  d   \        P                  pV  \        VR4      '       gQ   \        V\        \        P                  34      '       g   \        R4      hWn        \        VR4      V n        RV n        MR	V n        Wn        R
V n         V P                  P                  R4       \         V n        V P#                  V4      V n        Vf&   V P#                  \        P(                  4      V n        MV P#                  V4      V n        ^ V n        . V n        ^V n        W0n        ^ V n        V P7                  R4       V P9                  4        R	#   \         d*    T P                  P                  R4       \$        T n         Li ; i)- _utf8z!Only UTF-8 encoding is supported.writez]fileOrPath must be a file path (str or PathLike) if it isn't an object with a `write` method.wbTNFr   z&<?xml version="1.0" encoding="UTF-8"?>)lowerreplace	Exceptionsysstdouthasattr
isinstancer   osPathLike	TypeErrorfilenameopenfile_closeStreamr$   r   totyper	   r   linesepr   indentlevelstack
needindentr   idlecounter	_writerawnewline)selfr   r   r   r   r   s   &&&&&&r   __init__XMLWriter.__init__   sm    >>##C,44S"=G?@@Jz7++j3*<==s  'MZ.DI $D DM"I %D	  IIOOC !DK
  ;;{3"kk"**5DO"kk*5DO
 ?@  	 IIOOBDK	 s   &F 1GGc                	    V # Nr   r<   s   &r   	__enter__XMLWriter.__enter__O   s    r   c                	&    V P                  4        R # r@   )close)r<   exception_typeexception_value	tracebacks   &&&&r   __exit__XMLWriter.__exit__R   s    

r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   U   s      t r   c                	    V P                   '       dO   \        V P                  \        \        P
                  34      '       d   Q hV P                  P                  4        R # R # r@   )r3   r,   r2   r   r-   r.   rE   rA   s   &r   rE   XMLWriter.closeU   sA    !$))c2;;-?@@@@IIOO r   c                >    V P                  \        V4      VR7       R# )zWrites text.indentNr:   escape)r<   stringrP   s   &&&r   r$   XMLWriter.writeZ   s    vf~f5r   c                D    V P                  RV,           R,           4       R# )zWrites text in a CDATA section.z	<![CDATA[z]]>N)r:   r<   rS   s   &&r   
writecdataXMLWriter.writecdata^   s    {V+e34r   c                >    V P                  \        V4      VR7       R# )zWrites 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<   datarZ   s   &&&r   	write8bitXMLWriter.write8bitb   s    
 	z$'u5r   c                >    V P                  \        V4      RR7       R# )z Writes text without indentation.FrO   NrQ   rV   s   &&r   write_noindentXMLWriter.write_noindenti   s    vf~e4r   c                @   V'       dP   V P                   '       d>   V P                  P                  V P                  V P                  ,          4       ^ V n         V P                  VRR7      pV'       d   VP                  4       pV P                  P                  V4       R# )z Writes bytes, possibly indented.r   )r   N)r8   r2   r$   r6   r   r4   rZ   )r<   r\   rP   rZ   ss   &&&& r   r:   XMLWriter._writerawm   se    doooIIOOD,,t/?/??@DOKKwK/	A		r   c                	    V P                   P                  V P                  4       ^V n        V P                  pV^d,          '       g   V P
                  e   V P                  4        V^,           V n        R#    N)r2   r$   r   r8   r9   r   )r<   r9   s   & r   r;   XMLWriter.newlinew   sQ    		(&&S  T]]%>MMO&?r   c                	   \        V4      pVP                  R 4      pV P                  RV^ ,          ,           4       VR,           F+  pV P                  4        V P                  RV,           4       K-  	  V P                  R4       R# )r   z<!-- :rg   NNz     z -->N)rR   splitr:   r;   )r<   r\   lineslines   &&  r   commentXMLWriter.comment   se    d|

4 wq)*"IIDLLNNN7T>*  	vr   c                	`    V P                   ! V/ VB pR V: V: R2pV P                  V4       R# )<z/>N)stringifyattrsr:   r<   _TAG_argskwargsattrdatar\   s   &&*,  r   	simpletagXMLWriter.simpletag   s-    &&77!8,tr   c                	    V P                   ! V/ VB pR V: V: R2pV P                  V4       V P                  P                  V4       V P	                  4        R# )rp   >N)rq   r:   r7   appendrP   rr   s   &&*,  r   begintagXMLWriter.begintag   sH    &&77 (+t

% r   c                	    V P                   '       d   V P                   R,          V8X  g   Q R4       hV P                   R V P                  4        RV,          pV P                  V4       R# )rg   znonmatching endtagz</%s>N)r7   dedentr:   )r<   rs   r\   s   && r   endtagXMLWriter.endtag   sO    zzzdjjn5K7KK5JJrNtr   c                	"   ^pV^,          p^p\        ^ \        V4      V4       Fg  p\        WWR,            4      pRpRp\        ^ W44       F  p	Wx,           WiW,            ,           pRpK  	  V P                  V4       V P	                  4        Ki  	  R# )   r!    N)rangelenhexStrr:   r;   )
r<   r\   
linelengthhexlinelength	chunksizeihexlinerl   whitejs
   &&        r   dumphexXMLWriter.dumphex   s    
"Q	q#d)Z0ATan56GDE1m7|g!-&@@ 8 NN4 LLN 1r   c                	6    V P                   ^,           V n         R# rf   r6   rA   s   &r   rP   XMLWriter.indent   s    ++a/r   c                	\    V P                   ^ 8  g   Q hV P                   ^,
          V n         R# )    Nr   rA   s   &r   r   XMLWriter.dedent   s)    !###++a/r   c                	H   V'       d%   V'       d   Q h\        VP                  4       4      pM&V'       d   \        V4      ^8X  g   Q hV^ ,          pMR# RpV FG  w  rV\        V\        \
        34      '       g   \        V4      pVRV: R\        V4      : R2,           pKI  	  V# )rg   r!   r   z="")sorteditemsr   r,   bytesr   
escapeattr)r<   rt   ru   
attributesr\   attrvalues   &*,    r   rq   XMLWriter.stringifyattrs   s    O8/Jt9>!>aJ%KDeeS\22E
j.?@@D & r   )r3   r2   r0   r9   r   r6   r   r8   r   r7   r4   )T)F)TF)__name__
__module____qualname____firstlineno__INDENTr=   rB   rI   rE   r$   rW   r]   r`   r:   r;   rm   rw   r|   r   r   rP   r   rq   __static_attributes__r   r   r   r   r      sk     ".2"&0d
6565+
00r   r   c                   \        V R4      p V P                  RR4      p V P                  RR4      p V P                  RR4      p V P                  RR	4      p V P                  \        4      pW8w  dQ   ^
p\	        V 4      p\        V 4      V8  d   \	        V R
V 4      ^R R,           p\        P                  RV\        4       V# )zQEscape characters not allowed in `XML 1.0 <https://www.w3.org/TR/xml/#NT-Char>`_.r   &z&amp;rp   z&lt;rz   z&gt;z&#13;Nz...zEIllegal XML character(s) found; replacing offending string %r with %rr   )	r	   r'   	translateILLEGAL_XML_CHARSreprr   TTX_LOGwarningREPLACEMENT)r\   newDatamaxLenpreviews   &   r   rR   rR      s    wD<<W%D<<V$D<<V$D<<g&Dnn./Gt*t9v4=)!B/%7GS	

 Nr   c                @    \        V 4      p V P                  R R4      p V # )r   z&quot;)rR   r'   )r\   s   &r   r   r      s     $<D<<X&DKr   c                N    R p\        \        WP                  R4      4      4      # )zInput is Unicode string.c                    \        V 4      p^ Tu;8:  d   ^8:  d   M M	V R9  d   V # R\        V4      ,           R,           # )    z<&>z&#;)ordr   )cns   & r   
escapecharescape8bit.<locals>.escapechar   s4    F>c>aunH$q'>C''r   zlatin-1)r   mapdecode)r\   r   s   & r   r[   r[      s"    ( 3z;;y#9:;;r   c                    \         P                  pR pV  F?  p\        V4      pW!V^,	          ^,          ,          ,           W^,          ,          ,           pKA  	  V# )r!   )rS   	hexdigitsr   )rc   hrr   r   s   &    r   r   r      sL    A
AAJ16S.!!A#gJ.  Hr   )      )i  i  ) __doc__
__future__r   typingr   r   r   fontTools.misc.textToolsr   r   r   r	   r)   r-   rS   logging	itertoolsr   	getLoggerr   r   dictfromkeyschainr   r   objectr   rR   r   r[   r   r   r   r   <module>r      s    0 " - - E E 
 	   	


O
,MMOOdDdDff 	 b bJ,
<r   