+
    ÂHàjL  ã                   ó^  € R t ^ RIHtHt ^ RIt^ RIt^ RIHt ^RI	H
t
HtHt ]P                  ^ ,          ^8¬  tRt]P                   t]P"                  ! R]^R7        ! R R	]P&                  4      t ! R
 R]P*                  4      t]! 4       t]P0                  tRR ltRR ltRR lt]tR tR# )zkDEPRECATED Example code for lxml.etree protection

The code has NO protection against decompression bombs.
)Úprint_functionÚabsolute_importN)Úetree)ÚDTDForbiddenÚEntitiesForbiddenÚNotSupportedErrorz
lxml.etreezOdefusedxml.lxml is no longer supported and will be removed in a future release.)ÚcategoryÚ
stacklevelc                   ó´   a a€ ] tR t^!t oRtR
t]P                  tR t	V 3R lt
RV 3R lltRV 3R lltRV 3R lltRV 3R lltV 3R ltRV 3R	 lltR
tVtV ;t# )ÚRestrictedElementzEA restricted Element class that filters out instances of some classesc              #  óf   "  € V P                   pV F  p\        W24      '       d   K  Vx € K  	  R # 5i©N)Ú	blacklistÚ
isinstance)ÚselfÚiteratorr   Úchilds   &&  Ú‘/home/ubuntu/.hermes/installs/5f0a1ff4045d044e/environments/50f6b671e3f94b538e344231dfcb664f/venv/lib/python3.14/site-packages/defusedxml/lxml.pyÚ_filterÚRestrictedElement._filter(   s+   é € Ø—N‘Nˆ	ÛˆEÜ˜%×+Ò+ÙØŒKó ùs   ‚/1c                óJ   <€ \         \        V `  4       pV P                  V4      # r   )Úsuperr   Ú__iter__r   ©r   r   Ú	__class__s   & €r   r   ÚRestrictedElement.__iter__/   s"   ø€ ÜÔ*¨DÑ:Ó<ˆØ�|‰|˜HÓ%Ð%ó    c                óN   <€ \         \        V `  WR 7      pV P                  V4      # ))ÚtagÚreversed)r   r   Úiterchildrenr   )r   r   r   r   r   s   &&& €r   r    ÚRestrictedElement.iterchildren3   s'   ø€ ÜÔ*¨DÑ>À3Ð>ÓZˆØ�|‰|˜HÓ%Ð%r   c                óN   <€ \         \        V `
  ! VR V/ pV P                  V4      # ©r   )r   r   Úiterr   ©r   r   Útagsr   r   s   &&* €r   r$   ÚRestrictedElement.iter7   s)   ø€ ÜÔ*¨DÒ6ÀÐF¸3ÑFˆØ�|‰|˜HÓ%Ð%r   c                óN   <€ \         \        V `
  ! VR V/ pV P                  V4      # r#   )r   r   Úiterdescendantsr   r%   s   &&* €r   r)   Ú!RestrictedElement.iterdescendants;   s)   ø€ ÜÔ*¨DÒAÈDÐQÀcÑQˆØ�|‰|˜HÓ%Ð%r   c                óN   <€ \         \        V `  WR 7      pV P                  V4      # ))r   Ú	preceding)r   r   Úitersiblingsr   )r   r   r,   r   r   s   &&& €r   r-   ÚRestrictedElement.itersiblings?   s'   ø€ ÜÔ*¨DÑ>À3Ð>Ó\ˆØ�|‰|˜HÓ%Ð%r   c                ó\   <€ \         \        V `  4       p\        V P	                  V4      4      # r   )r   r   r   Úlistr   r   s   & €r   ÚgetchildrenÚRestrictedElement.getchildrenC   s'   ø€ ÜÔ*¨DÑ:Ó<ˆÜ�D—L‘L Ó*Ó+Ð+r   c                óL   <€ \         \        V `  V4      pV P                  V4      # r   )r   r   Úgetiteratorr   )r   r   r   r   s   && €r   r4   ÚRestrictedElement.getiteratorG   s$   ø€ ÜÔ*¨DÑ=¸cÓBˆØ�|‰|˜HÓ%Ð%r   © )NFr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__Ú_etreeÚ_Entityr   r   r   r    r$   r)   r-   r1   r4   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   Ú__classdict__s   @@r   r   r   !   sC   ù‡ € ÙOà€Ià—‘€Iòõ&÷&÷&÷&÷&õ,÷&÷ &r   r   c                   óB   a € ] tR t^Lt o RtRR/t]tR tR t	R t
RtV tR# )	ÚGlobalParserTLSz0Thread local context for custom parser instancesÚresolve_entitiesFc                óÊ   € \         P                  ! R/ V P                  B pV P                  pV P                  e)   \         P                  ! VR7      pVP                  V4       V# )N)Úelementr6   )r=   Ú	XMLParserÚparser_configÚelement_classÚElementDefaultClassLookupÚset_element_class_lookup)r   ÚparserrJ   Úlookups   &   r   ÚcreateDefaultParserÚ#GlobalParserTLS.createDefaultParserW   sU   € Ü×!Ò!Ñ7 D×$6Ñ$6Ñ7ˆØ×*Ñ*ˆØ×ÑÒ)Ü×5Ò5¸mÔLˆFØ×+Ñ+¨FÔ3Øˆr   c                ó   € Wn         R # r   ©Ú_default_parser©r   rM   s   &&r   ÚsetDefaultParserÚ GlobalParserTLS.setDefaultParser_   s   € Ø%Ör   c                ój   € \        V R R4      pVf"   V P                  4       pV P                  V4       V# )rS   N)ÚgetattrrO   rU   rT   s   & r   ÚgetDefaultParserÚ GlobalParserTLS.getDefaultParserb   s7   € Ü˜Ð0°$Ó7ˆØŠ>Ø×-Ñ-Ó/ˆFØ×!Ñ! &Ô)Øˆr   rR   N)r7   r8   r9   r:   r;   rI   r   rJ   rO   rU   rY   r?   r@   )rB   s   @r   rD   rD   L   s1   ø‡ € Ù:ð 	˜Eð€Mð &€Mòò&÷ð r   rD   c           
     ó¶  € V P                   pVP                  '       dS   V'       d,   \        VP                  VP                  VP                  4      hV'       d   \
        '       g   \        R4      hV'       da   VP                  VP                  3 FB  pVf   K	  VP                  4        F%  p\        VP                  VP                  RRRR4      h	  KD  	  R# R# )z©Check docinfo of an element tree for DTD and entity declarations

The check for entity declarations needs lxml 3 or newer. lxml 2.x does
not support dtd.iterentities().
z3Unable to check for entity declarations in lxml 2.xN)ÚdocinfoÚdoctyper   Ú
system_urlÚ	public_idÚLXML3r   ÚinternalDTDÚexternalDTDÚiterentitiesr   ÚnameÚcontent)ÚelementtreeÚ
forbid_dtdÚforbid_entitiesr\   ÚdtdÚentitys   &&&   r   Úcheck_docinfork   n   sª   € ð ×!Ñ!€GØ‡‡€ßÜ˜wŸ™°×0BÑ0BÀG×DUÑDUÓVÐVß§5£5ä#Ð$\Ó]Ð]çØ×&Ñ&¨×(;Ñ(;Ó;ˆCØŠ{ÙØ×*Ñ*Ö,�Ü'¨¯©°V·^±^ÀTÈ4ÐQUÐW[Ó\Ð\ó -ó <ñ r   c                 ój   € Vf   \        4       p\        P                  ! WVR7      p\        WSV4       V# ©N)Úbase_url)rY   r=   Úparserk   )ÚsourcerM   rn   rg   rh   rf   s   &&&&& r   ro   ro   „   s/   € Ø‚~Ü!Ó#ˆÜ—,’,˜v¸ÔA€KÜ�+¨?Ô;ØÐr   c                 óŠ   € Vf   \        4       p\        P                  ! WVR7      pVP                  4       p\	        WcV4       V# rm   )rY   r=   Ú
fromstringÚgetroottreerk   )ÚtextrM   rn   rg   rh   Úrootelementrf   s   &&&&&  r   rr   rr   Œ   s?   € Ø‚~Ü!Ó#ˆÜ×#Ò# D¸8ÔD€KØ×)Ñ)Ó+€KÜ�+¨?Ô;ØÐr   c                  ó   € \        R 4      h)z*defused lxml.etree.iterparse not available)r   )ÚargsÚkwargss   *,r   Ú	iterparsery   ˜   s   € Ü
ÐHÓ
IÐIr   )FT)NNFT)r;   Ú
__future__r   r   Ú	threadingÚwarningsÚlxmlr   r=   Úcommonr   r   r   ÚLXML_VERSIONr`   Ú
__origin__ÚtostringÚwarnÚDeprecationWarningÚElementBaser   ÚlocalrD   Ú_parser_tlsrY   rk   ro   rr   ÚXMLry   r6   r   r   Ú<module>rˆ      s®   ðñ÷ 7ã Û å  ç FÑ Fà×Ñ˜AÕ !Ñ#€à€
à�?‰?€ð 	‡‚ØUØØõô(&˜×*Ñ*ô (&ôV�i—o‘oô ñ< Ó€Ø×/Ñ/Ð ô]ô,ôð €ôJr   