§
    ¸)ýfc0  ã                   óð   — d Z ddlZddlZddlmZ g d¢Z G d„ d¦  «        Z G d„ d¦  «        Zd	„ Z	 G d
„ de
¦  «        Z G d„ de
¦  «        Z G d„ d¦  «        Z[ G d„ d¦  «        Z G d„ d¦  «        ZdS )z4Implementation of the DOM Level 3 'LS-Load' feature.é    N)Ú
NodeFilter)Ú
DOMBuilderÚDOMEntityResolverÚDOMInputSourcec                   ó^   — e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdZdZdZdS )ÚOptionsz±Features object that has variables set for each DOMBuilder feature.

    The DOMBuilder class uses an instance of this class to pass settings to
    the ExpatBuilder class.
    é   TFN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
namespacesÚnamespace_declarationsÚ
validationÚexternal_parameter_entitiesÚexternal_general_entitiesÚexternal_dtd_subsetÚvalidate_if_schemaÚvalidateÚdatatype_normalizationÚcreate_entity_ref_nodesÚentitiesÚwhitespace_in_element_contentÚcdata_sectionsÚcommentsÚcharset_overrides_xml_encodingÚinfosetÚsupported_mediatypes_onlyÚerrorHandlerÚfilter© ó    ú^/home/blender/git/blender-v430/install_release/4.3/python/lib/python3.11/xml/dom/xmlbuilder.pyr   r      sƒ   € € € € € ðð ð €JØ!ÐØ€JØ"&ÐØ $ÐØÐØÐØ€HØ"ÐØ"ÐØ€HØ$(Ð!Ø€NØ€HØ%)Ð"Ø€GØ %Ðà€LØ€F€F€Fr"   r   c            
       óD  — e Zd ZdZdZdZdZdZdZdZ	eeee	fZ
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zi ddg“ddg“ddg“ddg“ddg“ddg“ddg“ddg“ddg“ddg“dddg“ddg“ddg“ddg“ddg“ddg“d d g“d!gd"gd#gg g d$¢d%gd&gd'gd(œ¥Zd)„ Zd*„ Zd+„ Zd,„ Zd-„ ZdS ).r   Nr	   é   é   é   c                 ó,   — t          ¦   «         | _        d S ©N)r   Ú_options©Úselfs    r#   Ú__init__zDOMBuilder.__init__9   s   € Ý™	œ	ˆŒˆˆr"   c                 ó   — | j         S r)   ©ÚentityResolverr+   s    r#   Ú_get_entityResolverzDOMBuilder._get_entityResolver<   s   € ØÔ"Ð"r"   c                 ó   — || _         d S r)   r/   )r,   r0   s     r#   Ú_set_entityResolverzDOMBuilder._set_entityResolver>   s   € Ø,ˆÔÐÐr"   c                 ó   — | j         S r)   ©r   r+   s    r#   Ú_get_errorHandlerzDOMBuilder._get_errorHandlerA   s   € ØÔ Ð r"   c                 ó   — || _         d S r)   r5   )r,   r   s     r#   Ú_set_errorHandlerzDOMBuilder._set_errorHandlerC   s   € Ø(ˆÔÐÐr"   c                 ó   — | j         S r)   ©r    r+   s    r#   Ú_get_filterzDOMBuilder._get_filterF   s
   € ØŒ{Ðr"   c                 ó   — || _         d S r)   r:   )r,   r    s     r#   Ú_set_filterzDOMBuilder._set_filterH   s   € ØˆŒˆˆr"   c                 ór  — |                       |¦  «        rt|rdpd}	 | j        t          |¦  «        |f         }|D ]\  }}t          | j        ||¦  «         Œd S # t
          $ r$ t          j                             d|›�¦  «        d ‚w xY wt          j         	                    dt          |¦  «        z   ¦  «        ‚)Nr	   r   zunsupported feature: zunknown feature: )ÚsupportsFeatureÚ	_settingsÚ_name_xformÚsetattrr*   ÚKeyErrorÚxmlÚdomÚNotSupportedErrÚNotFoundErrÚrepr)r,   ÚnameÚstateÚsettingsÚvalues        r#   Ú
setFeaturezDOMBuilder.setFeatureK   sé   € Ø×Ò Ñ%Ô%ð 	HØ�K˜aÐ$ 1ˆEð8Øœ>­;°tÑ+<Ô+<¸eÐ*DÔE�ð
 $,ð 8ð 8‘K�D˜%Ý˜DœM¨4°Ñ7Ô7Ð7Ð7ð8ð 8øõ	 ð Cð Cð CÝ”g×-Ò-Ð-Ø15°Ð7ñ9ô 9Ø>BðCðCøøøõ ”'×%Ò%Ð&9½DÀ¹J¼JÑ&FÑGÔGÐGs   �A Á.Bc                 óF   — t          | j        t          |¦  «        ¦  «        S r)   )Úhasattrr*   rA   )r,   rI   s     r#   r?   zDOMBuilder.supportsFeatureY   s   € Ý�t”}¥k°$Ñ&7Ô&7Ñ8Ô8Ð8r"   c                 ó>   — t          |¦  «        |rdpdf}|| j        v S )Nr	   r   )rA   r@   )r,   rI   rJ   Úkeys       r#   ÚcanSetFeaturezDOMBuilder.canSetFeature\   s*   € Ý˜4Ñ Ô  % +¨AÐ"2°Ð3ˆØ�d”nÐ$Ð$r"   ©r   r   )r   r	   )r   r   )r   r   )r   r	   )r   r   )r   r	   ©r   r   ©r   r   )r   r	   ©r   r   )r   r	   )r   r   ©r   r	   ©r   r   )r   r	   )r   r   ©r   r	   ©r   r   ©r   r	   )	rS   rT   rU   rV   rX   )r   r	   rW   rY   r[   ©r   r   ©r   r   ©r   r	   )rY   rZ   r[   )r   r   )r   r	   r\   r]   r^   c                 ód  — t          |¦  «        }	 t          | j        |¦  «        S # t          $ r |dk    rI| j        }|j        o8|j        o1|j        o*|j        o#|j        p|j	        p|j
        p|j        p|j         cY S t          j                             dt!          |¦  «        z  ¦  «        ‚w xY w)Nr   zfeature %s not known)rA   Úgetattrr*   ÚAttributeErrorr   r   r   r   r   r   r   r   r   rD   rE   rG   rH   )r,   rI   ÚxnameÚoptionss       r#   Ú
getFeaturezDOMBuilder.getFeature¢   sö   € Ý˜DÑ!Ô!ˆð	KÝ˜4œ=¨%Ñ0Ô0Ð0øÝð 	Kð 	Kð 	KØ�yÒ Ð Øœ-�ØÔ6ð <Ø#ÔAð<à#Ô,ð<ð $ÔBð<ð ")Ô!?ð ";Ø$+Ô$>ð";à$+Ô$Cð";ð %,Ô$4ð";ð %,Ô$:ð	<ð	=ð =ð =õ ”'×%Ò%Ð&<½tÀD¹z¼zÑ&IÑJÔJÐJð	Køøøs   ‘& ¦AB/Á?0B/c                 ó¶   — | j         r| j                              d |¦  «        }n"t          ¦   «                              d |¦  «        }|                      |¦  «        S r)   )r0   ÚresolveEntityr   Úparse)r,   ÚuriÚinputs      r#   ÚparseURIzDOMBuilder.parseURI´   sU   € ØÔð 	AØÔ'×5Ò5°d¸CÑ@Ô@ˆEˆEå%Ñ'Ô'×5Ò5°d¸CÑ@Ô@ˆEØ�zŠz˜%Ñ Ô Ð r"   c                 óö   — t          j         | j        ¦  «        }| j        |_        | j        |_        |j        }|€*|j        r#dd l}|j                             |j        ¦  «        }|  	                    ||¦  «        S ©Nr   )
Úcopyr*   r    r   Ú
byteStreamÚsystemIdÚurllib.requestÚrequestÚurlopenÚ_parse_bytestream)r,   ri   rc   ÚfpÚurllibs        r#   rg   zDOMBuilder.parse»   st   € Ý”)˜DœMÑ*Ô*ˆØœˆŒØ#Ô0ˆÔØÔˆØˆ:˜'Ô*ˆ:Ø!Ð!Ð!Ð!Ø”×'Ò'¨¬Ñ7Ô7ˆBØ×%Ò% b¨'Ñ2Ô2Ð2r"   c                 óP   — || j         vrt          d¦  «        ‚t          d¦  «        ‚)Nznot a legal actionzHaven't written this yet...)Ú_legal_actionsÚ
ValueErrorÚNotImplementedError)r,   ri   ÚcnodeÚactions       r#   ÚparseWithContextzDOMBuilder.parseWithContextÅ   s.   € Ø˜Ô,Ð,Ð,ÝÐ1Ñ2Ô2Ð2Ý!Ð"?Ñ@Ô@Ð@r"   c                 ór   — dd l }|j        j                             |¦  «        }|                     |¦  «        S rl   )Úxml.dom.expatbuilderrE   ÚexpatbuilderÚmakeBuilderÚ	parseFile)r,   Ústreamrc   rD   Úbuilders        r#   rs   zDOMBuilder._parse_bytestreamÊ   s:   € Ø#Ð#Ð#Ð#Ø”'Ô&×2Ò2°7Ñ;Ô;ˆØ× Ò  Ñ(Ô(Ð(r"   )r
   r   r   r0   r   r    ÚACTION_REPLACEÚACTION_APPEND_AS_CHILDRENÚACTION_INSERT_AFTERÚACTION_INSERT_BEFORErw   r-   r1   r3   r6   r8   r;   r=   rM   r?   rR   r@   rd   rj   rg   r|   rs   r!   r"   r#   r   r   ,   sÖ  € € € € € Ø€NØ€LØ€Fà€NØ !ÐØÐØÐà$Ð&?Ø)Ð+?ðA€Nð"ð "ð "ð#ð #ð #ð-ð -ð -ð!ð !ð !ð)ð )ð )ðð ð ðð ð ðHð Hð Hð9ð 9ð 9ð%ð %ð %ð;Ø%Ø)ð(+ð;ð 	&Ø)ð(+ð;ð
 	Øðð;ð 	)Ø,ð+.ð;ð 	)Ø,ð+.ð;ð 	+Ø.ð-0ð;ð 	+Ø.ð-0ð;ð 	"Ø%ð$'ð;ð" 	'Ø*ð),ð#;ð& 	'Ø*ð),ð';ð* 	Ø*Øðð+;ð0 	Øðð1;ð4 	-Ø0ð/2ð5;ð8 	-Ø0ð/2ð9;ð< 	Ø!ð #ð=;ð@ 	Ø!ð #ðA;ðD 	ØððE;ðJ ðð 2ð03ð 2ð03àð	3ð 	3ð 	3ð -ð+.ð ðð ððs;ð ;ð ;€IðzKð Kð Kð$!ð !ð !ð3ð 3ð 3ðAð Að Að
)ð )ð )ð )ð )r"   r   c                 óR   — |                       ¦   «                              dd¦  «        S )Nú-Ú_)ÚlowerÚreplace)rI   s    r#   rA   rA   Ð   s    € Ø�:Š:‰<Œ<×Ò  SÑ)Ô)Ð)r"   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )r   )Ú_openerc                 óÔ  — |€J ‚t          ¦   «         }||_        ||_        |                      ¦   «                              |¦  «        |_        |                      |¦  «        |_        dd l}dd l	}|j
                             |¦  «        }|\  }}}	}
}}|	rT|	                     d¦  «        s?|                     |	¦  «        dz   }	|||	|
||f}|j
                             |¦  «        |_        |S )Nr   ú/)r   ÚpublicIdro   Ú_get_openerÚopenrn   Ú_guess_media_encodingÚencodingÚ	posixpathÚurllib.parserg   ÚurlparseÚendswithÚdirnameÚ
urlunparseÚbaseURI)r,   r‘   ro   Úsourcer–   ru   ÚpartsÚschemeÚnetlocÚpathÚparamsÚqueryÚfragments                r#   rf   zDOMEntityResolver.resolveEntity×   s  € ØÐ#Ð#Ð#ÝÑ!Ô!ˆØ"ˆŒØ"ˆŒØ ×,Ò,Ñ.Ô.×3Ò3°HÑ=Ô=ˆÔð ×4Ò4°VÑ<Ô<ˆŒð 	'Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø”×%Ò% hÑ/Ô/ˆØ8=Ñ5ˆ�˜˜f e¨Xàð 	<˜Ÿš cÑ*Ô*ð 	<Ø×$Ò$ TÑ*Ô*¨SÑ0ˆDØ˜F D¨&°%¸ÐAˆEØ#œ\×4Ò4°UÑ;Ô;ˆFŒNàˆr"   c                 ór   — 	 | j         S # t          $ r# |                      ¦   «         | _         | j         cY S w xY wr)   )rŽ   ra   Ú_create_openerr+   s    r#   r’   zDOMEntityResolver._get_openerí   sK   € ð	 Ø”<ÐøÝð 	 ð 	 ð 	 Ø×.Ò.Ñ0Ô0ˆDŒLØ”<ÐÐÐð	 øøøs   ‚	 ‰*6µ6c                 ó<   — dd l }|j                             ¦   «         S rl   )rp   rq   Úbuild_opener)r,   ru   s     r#   r¦   z DOMEntityResolver._create_openerô   s"   € ØÐÐÐØŒ~×*Ò*Ñ,Ô,Ð,r"   c                 óü   — |j                              ¦   «         }d|v r\|                     ¦   «         D ]I}|                     d¦  «        r0|                     dd¦  «        d                              ¦   «         c S ŒHd S d S )NzContent-Typezcharset=ú=r	   )rn   ÚinfoÚgetplistÚ
startswithÚsplitr‹   )r,   r�   r«   Úparams       r#   r”   z'DOMEntityResolver._guess_media_encodingø   s�   € ØÔ ×%Ò%Ñ'Ô'ˆØ˜TÐ!Ð!ØŸš™œð :ð :�Ø×#Ò# JÑ/Ô/ð :Ø Ÿ;š; s¨AÑ.Ô.¨qÔ1×7Ò7Ñ9Ô9Ð9Ð9Ð9ð:ð "Ð!ð:ð :r"   N)r
   r   r   Ú	__slots__rf   r’   r¦   r”   r!   r"   r#   r   r   Ô   sU   € € € € € Ø€Iðð ð ð, ð  ð  ð-ð -ð -ð:ð :ð :ð :ð :r"   r   c                   ól   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )r   ©rn   ÚcharacterStreamÚ
stringDatar•   r‘   ro   rœ   c                 óh   — d | _         d | _        d | _        d | _        d | _        d | _        d | _        d S r)   r²   r+   s    r#   r-   zDOMInputSource.__init__  s8   € ØˆŒØ#ˆÔØˆŒØˆŒØˆŒØˆŒØˆŒˆˆr"   c                 ó   — | j         S r)   ©rn   r+   s    r#   Ú_get_byteStreamzDOMInputSource._get_byteStream  ó
   € ØŒÐr"   c                 ó   — || _         d S r)   r·   )r,   rn   s     r#   Ú_set_byteStreamzDOMInputSource._set_byteStream  s   € Ø$ˆŒˆˆr"   c                 ó   — | j         S r)   ©r³   r+   s    r#   Ú_get_characterStreamz#DOMInputSource._get_characterStream  s   € ØÔ#Ð#r"   c                 ó   — || _         d S r)   r½   )r,   r³   s     r#   Ú_set_characterStreamz#DOMInputSource._set_characterStream  s   € Ø.ˆÔÐÐr"   c                 ó   — | j         S r)   ©r´   r+   s    r#   Ú_get_stringDatazDOMInputSource._get_stringData  r¹   r"   c                 ó   — || _         d S r)   rÂ   )r,   Údatas     r#   Ú_set_stringDatazDOMInputSource._set_stringData  s   € ØˆŒˆˆr"   c                 ó   — | j         S r)   ©r•   r+   s    r#   Ú_get_encodingzDOMInputSource._get_encoding  ó
   € ØŒ}Ðr"   c                 ó   — || _         d S r)   rÈ   )r,   r•   s     r#   Ú_set_encodingzDOMInputSource._set_encoding  ó   € Ø ˆŒˆˆr"   c                 ó   — | j         S r)   ©r‘   r+   s    r#   Ú_get_publicIdzDOMInputSource._get_publicId!  rÊ   r"   c                 ó   — || _         d S r)   rÏ   )r,   r‘   s     r#   Ú_set_publicIdzDOMInputSource._set_publicId#  rÍ   r"   c                 ó   — | j         S r)   ©ro   r+   s    r#   Ú_get_systemIdzDOMInputSource._get_systemId&  rÊ   r"   c                 ó   — || _         d S r)   rÔ   )r,   ro   s     r#   Ú_set_systemIdzDOMInputSource._set_systemId(  rÍ   r"   c                 ó   — | j         S r)   ©rœ   r+   s    r#   Ú_get_baseURIzDOMInputSource._get_baseURI+  s
   € ØŒ|Ðr"   c                 ó   — || _         d S r)   rÙ   ©r,   rh   s     r#   Ú_set_baseURIzDOMInputSource._set_baseURI-  s   € ØˆŒˆˆr"   N)r
   r   r   r°   r-   r¸   r»   r¾   rÀ   rÃ   rÆ   rÉ   rÌ   rÐ   rÒ   rÕ   r×   rÚ   rÝ   r!   r"   r#   r   r      sý   € € € € € ð@€Iðð ð ðð ð ð%ð %ð %ð$ð $ð $ð/ð /ð /ðð ð ðð ð ðð ð ð!ð !ð !ðð ð ð!ð !ð !ðð ð ð!ð !ð !ðð ð ðð ð ð ð r"   r   c                   óB   — e Zd ZdZdZdZdZdZej	        Z
d„ Zd„ Zd„ Zd	S )
ÚDOMBuilderFilterzSElement filter which can be used to tailor construction of
    a DOM instance.
    r	   r%   r&   r'   c                 ó   — | j         S r)   )Ú
whatToShowr+   s    r#   Ú_get_whatToShowz DOMBuilderFilter._get_whatToShowB  r¹   r"   c                 ó   — | j         S r)   ©ÚFILTER_ACCEPT©r,   Úelements     r#   Ú
acceptNodezDOMBuilderFilter.acceptNodeE  ó   € ØÔ!Ð!r"   c                 ó   — | j         S r)   rä   ræ   s     r#   ÚstartContainerzDOMBuilderFilter.startContainerH  ré   r"   N)r
   r   r   r   rå   ÚFILTER_REJECTÚFILTER_SKIPÚFILTER_INTERRUPTr   ÚSHOW_ALLrá   râ   rè   rë   r!   r"   r#   rß   rß   1  sj   € € € € € ðð ð €MØ€MØ€KØÐàÔ$€Jðð ð ð"ð "ð "ð"ð "ð "ð "ð "r"   rß   c                   ó:   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
Ú
DocumentLSz=Mixin to create documents that conform to the load/save spec.Fc                 ó   — dS )NFr!   r+   s    r#   Ú
_get_asynczDocumentLS._get_asyncS  s   € Øˆur"   c                 óH   — |rt           j                             d¦  «        ‚d S )Nz.asynchronous document loading is not supported)rD   rE   rF   )r,   Úflags     r#   Ú
_set_asynczDocumentLS._set_asyncV  s7   € Øð 	BÝ”'×)Ò)Ø@ñBô Bð Bð	Bð 	Br"   c                 ó    — t          d¦  «        ‚)Nz'haven't figured out what this means yet©ry   r+   s    r#   ÚabortzDocumentLS.abort[  s   € õ "Ø5ñ7ô 7ð 	7r"   c                 ó    — t          d¦  «        ‚©Nzhaven't written this yetrø   rÜ   s     r#   ÚloadzDocumentLS.loada  ó   € Ý!Ð"<Ñ=Ô=Ð=r"   c                 ó    — t          d¦  «        ‚rû   rø   )r,   r�   s     r#   ÚloadXMLzDocumentLS.loadXMLd  rý   r"   c                 ó‚   — |€| }n'|j         | urt          j                             ¦   «         ‚|                     ¦   «         S r)   )ÚownerDocumentrD   rE   ÚWrongDocumentErrÚtoxml)r,   Úsnodes     r#   ÚsaveXMLzDocumentLS.saveXMLg  s>   € Øˆ=ØˆEˆEØÔ ¨Ð,Ð,Ý”'×*Ò*Ñ,Ô,Ð,Ø�{Š{‰}Œ}Ðr"   N)r
   r   r   r   Úasync_ró   rö   rù   rü   rÿ   r  r!   r"   r#   rñ   rñ   N  s|   € € € € € ØGÐGà€Fðð ð ðBð Bð Bð
7ð 7ð 7ð>ð >ð >ð>ð >ð >ðð ð ð ð r"   rñ   c                   ó(   — e Zd ZdZdZd„ Zd„ Zd„ ZdS )ÚDOMImplementationLSr	   r%   c                 óè   — |�t           j                             d¦  «        ‚|| j        k    rt	          ¦   «         S || j        k    rt           j                             d¦  «        ‚t          d¦  «        ‚)NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)rD   rE   rF   ÚMODE_SYNCHRONOUSr   ÚMODE_ASYNCHRONOUSrx   )r,   ÚmodeÚ
schemaTypes      r#   ÚcreateDOMBuilderz$DOMImplementationLS.createDOMBuilders  sw   € ØÐ!Ý”'×)Ò)Ø.ñ0ô 0ð 0à�4Ô(Ò(Ð(Ý‘<”<ÐØ�4Ô)Ò)Ð)Ý”'×)Ò)Ø9ñ;ô ;ð ;åÐ1Ñ2Ô2Ð2r"   c                 ó    — t          d¦  «        ‚)Nz-the writer interface hasn't been written yet!rø   r+   s    r#   ÚcreateDOMWriterz#DOMImplementationLS.createDOMWriter~  s   € Ý!Ø;ñ=ô =ð 	=r"   c                 ó   — t          ¦   «         S r)   )r   r+   s    r#   ÚcreateDOMInputSourcez(DOMImplementationLS.createDOMInputSource‚  s   € ÝÑÔÐr"   N)r
   r   r   r
  r  r  r  r  r!   r"   r#   r  r  o  sM   € € € € € ØÐØÐð	3ð 	3ð 	3ð=ð =ð =ð ð  ð  ð  ð  r"   r  )r   rm   Úxml.domrD   Úxml.dom.NodeFilterr   Ú__all__r   r   rA   Úobjectr   r   rß   rñ   r  r!   r"   r#   ú<module>r     s„  ðØ :Ð :à €€€Ø €€€à )Ð )Ð )Ð )Ð )Ð )ð @Ð
?Ð
?€ðð ð ð ð ñ ô ð ð@a)ð a)ð a)ð a)ð a)ñ a)ô a)ð a)ðH*ð *ð *ð):ð ):ð ):ð ):ð ):˜ñ ):ô ):ð ):ðX.ð .ð .ð .ð .�Vñ .ô .ð .ðb"ð "ð "ð "ð "ñ "ô "ð "ð4 ðð ð ð ð ñ ô ð ðB ð  ð  ð  ð  ñ  ô  ð  ð  ð  r"   