+
    ŒvjÀG  ã            
       ó*  € R t ^ t ^ t^ RItR t]P
                  ! ^^^^]R^ R7      t^ RR/ 3R lt ! R R4      t	]	! 4       t	Rt
^ t^tR	t]! ]4      tR
t. ROtR t^ R]3R lt]'       d   ]tR t^ tR t^ ^]3R ltR tRR ltRR lt]R8X  dà   ]! ^R7       ^ RIt^ RIt^ RIHt ^ RIt]! 4       t ^ t!]PD                  R,           F  t#]PH                  PK                  ]#4      '       g   ]&! R4       K.  ]'! ]#4      ;_uu_ 4       t(](PS                  4       t*RRR4       ]&! R]#: R]! ]*4       24       ]! ]*^R7       ]!^,          t!K�  	  ]!'       d   ]&! R]! 4       ] ,
          R R24       R# R# R#   ] d    ^t ELMi ; i  + '       g   i     Ls; i)at  Very simple and fast XML parser, used for intra-paragraph text.

Devised by Aaron Watters in the bad old days before Python had fast
parsers available.  Constructs the lightest possible in-memory
representation; parses most files we have seen in pure python very
quickly.

The output structure is the same as the one produced by pyRXP,
our validating C-based parser, which was written later.  It will
use pyRXP if available.

This is used to parse intra-paragraph markup.

Example parse::

    <this type="xml">text <b>in</b> xml</this>

    ( "this",
      {"type": "xml"},
      [ "text ",
        ("b", None, ["in"], None),
        " xml"
        ]
       None )

    { 0: "this"
      "type": "xml"
      1: ["text ",
          {0: "b", 1:["in"]},
          " xml"]
    }

Ie, xml tag translates to a tuple:
 (name, dictofattributes, contentlist, miscellaneousinfo)

where miscellaneousinfo can be anything, (but defaults to None)
(with the intention of adding, eg, line number information)

special cases: name of "" means "top level, no containing tag".
Top level parse always looks like this::

    ("", list, None, None)

 contained text of None means <simple_tag/>

In order to support stuff like::

    <this></this><one></one>

AT THE MOMENT &amp; ETCETERA ARE IGNORED. THEY MUST BE PROCESSED
IN A POST-PROCESSING STEP.

PROLOGUES ARE NOT UNDERSTOOD.  OTHER STUFF IS PROBABLY MISSING.
Nc                 ó   € \        V 4       R # )N)Úprint)Úss   &Ú[/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/reportlab/lib/rparsexml.pyÚwarnCBr   >   s	   € ÜˆaŽó    zstring input)ÚErrorOnValidityErrorsÚNoNoDTDWarningÚExpandCharacterEntitiesÚExpandGeneralEntitiesr   ÚsrcNameÚ
ReturnUTF8c                 ó|   € V\         n        \         P                  ! V 3/ VB pT;'       d    T;'       g    R RV.R3# )Ú N)ÚpyRXP_parserÚeoCBÚparse)ÚxmlTextÚoneOutermostTagr   ÚentityReplacerÚ	parseOptsÚps   &&&&& r   Úparsexmlr   I   s@   € Ø ŒÔÜ×Ò˜wÑ3¨Ñ3ˆØ×$Ð$ 1×:Ð:¨¨D°!°°TÐ(:Ð:r   c                   ó0   a € ] tR t^Pt o ]R 4       tRtV tR# )ÚsmartDecodec                óh   a€ ^ RI Ho V3R lp\        V4      \        P                  n        V! V 4      # )é    )Údetectc                 ót   <€ \        V \        4      '       d   V # S! V 4      pV P                  VR ,          4      # )Úencoding)Ú
isinstanceÚstrÚdecode)r   Úcddr   s   & €r   Ú__call__Ú&smartDecode.__call__.<locals>.__call__T   s0   ø€ Ü˜!œC× Ò ¨ (Ù˜“)ˆCØ—8‘8˜C 
�OÓ,Ð,r   )Úcharset_normalizerr   Ústaticmethodr   Ú	__class__r$   )r   r$   r   s   & @r   r$   ÚsmartDecode.__call__Q   s*   ø€ å-õ	-ô *6°hÓ)?Œ×ÑÔ&Ù˜“Ðr   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r'   r$   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r   P   s   ø‡ € Øñó ör   r   r   ú	<![CDATA[z]]>c                 óŒ   € . pV  F;  pR V9   d!   \          F  w  r4VP                  W44      pK  	  VP                  V4       K=  	  V# )Ú&)ÚreplacelistÚreplaceÚappend)ÚcontentListÚresultÚeÚoldÚnews   &    r   ÚunEscapeContentListr=   d   sE   € Ø€FÛˆØ�!Œ8ß)‘
�Ø—I‘I˜cÓ'’ñ *à�‰�aÖñ	 ð
 €Mr   c                ó€   € \         '       d   \        R4      h\        WR7      w  rEV'       d   V^,          ^ ,          # V# )z.official interface: discard unused cursor infoz)pyRXP not found, fallback parser disabled)r   )ÚRequirePyRXPÚImportErrorÚ	parsexml0)Úxmltextr   r   r   r9   Úcursors   &&&&  r   ÚparsexmlSimplerD   m   s6   € çƒ|ÜÐEÓFÐFÜ  ÔGÑ€VßØ�a�y˜�|Ðàˆr   c                 óL   € \        V R 4      P                  4       p\        V4      # )Úr)ÚopenÚreadr   )ÚfilenameÚraws   & r   Ú	parseFilerK   z   s!   € Ü
ˆx˜Ó
×
"Ñ
"Ó
$€CÜ�C‹=Ðr   c                ó.  € RpRpVf�   V P                  RV4      pV^ 8  d    V# V^,           pRpV FU  p\        V4      pWWX,            V8X  g   K  ^pV P                  RV4      pV^ 8  d   \        RV,          4      hV^,           pKW  	  Ve   KŒ  ^pK�  V# )zBskip any prologue found after cursor, return index of rest of textNÚ<Ú>zcan't close prologue %r)z!DOCTYPEz?xmlz!--)ÚfindÚlenÚ
ValueError)	ÚtextrC   Úprologue_elementsÚdoneÚopenbracketÚpastÚfoundr:   Úles	   &&       r   Úskip_prologuerY   €   s­   € ð 4ÐØ€DØ
Š,à—i‘i  VÓ,ˆØ�qŒ=˜%ð €Mð ˜1�}ˆØˆÛ"ˆAÜ�Q“ˆBØ˜�Ð! 1Ö$Ø�ØŸ™ 3¨Ó-�Ø˜!”8Ü$Ð%>ÀÕ%BÓCÐCØ �’ñ #ð Œ=ØŠDà€Mr   c                óŽ  € \        V 4      p \        pR;p;rgVe   V P                  4       p TpV P                  RV4      p	W	^,           V	^,            p
^pV	^ 8  dM   Ve%   WR .pV'       d	   V! V4      pWFWW3\	        V 4      3# \        R\        WV^,            4      ,          4      h. pVe   \        ;rM\        W4      pEMHV	^ 8  d#   \        R\        V R,          4      ,          4      hV
R8X  d€   W	V	^	,            R8X  dp   V	^	,           pV P                  \        V4      pV^ 8  d%   \        R\        WV^,            4      ,          4      h\        pWV .pV\	        \        4      ,           pRpEM™V
R	8X  d›   W	V	^,            R
8X  d‹   V P                  RV	^,           4      pVV	8  d%   \        R\        WV^,            4      ,          4      hV^,           pV V,          R8w  d%   \        R\        WV^,            4      ,          4      hRV^,           3# V P                  RV	4      pV^ 8  pV^,           pV	^,           pV VV pRV9  d,   VR#,          R8X  d   VRR# pRpVP                  4       pTpTpEM˜RV9   d    RpV'       g/   \	        VR,           P                  R4      4      ^,          '       d   ^pVfb   V P                  RV4      pV^,           pV^ 8  pV VV pV'       g1   \	        VR,           P                  R4      4      ^,          '       g   Ka  ^pKe  V'       d%   \        R\        W	V	^,            4      ,          4      hTpV V^,
          ,          R8X  d   V^,
          pVRR# pRpVP                  4       pVP                  R4      pV^ ,          pVP                  4       pV^ ,          pTpVR#,          pVR#,          R,           VR#&   / ;pp^p\	        V4      pVV8  Ed&   VV,          pV^,           pVP                  4       pV^ ,          R8w  d   \        R\        V4      ,           4      hRVR,          9  d@   VV8”  d   \        R\        V4      ,           4      hVV,          p V^,           pV: RV : 2pKM  VP                  4       pVP                  4       p!V!R#,          p"VR\	        V"4      )  p#V#P                  4       p# V#^ ,          p$V#R#,          p%T$T%u;8X  d   R8X  g   M T$T%u;8X  d   R8X  d	   M MT#^R# p#T#TT&   T"pEK-  Ve   TpVEeò   V P                  RV4      p&V&V8  d_   X\        8X  d/   RpWR p'\	        V 4      pV''       d   VP                  V'4       KU  KW  \        RV: R\        WV^,            4      : 24      hV V&^,           ,          R8X  Ed   V P                  RV&4      p(V(V&8  d&   \        R\        V V&V&^,            4      ,          4      hV V&^,           V( p)V)P                  4       p*V*^ ,          p+XV+8w  d‚   V RV p,\	        V,P                  R4      4      p-V RV p,\	        V,P                  R4      4      p.\        RV.: RV-: R \        V4      : R\        V+4      : R!\        WV^d,            4      : 2
4      hWV& p'V''       d   VP                  V'4       V(^,           pRpEK¨  WV& p'V''       d   VP                  V'4       \        V V&RVR"7      w  p/pV/'       g   EKâ  VP                  V/4       EKö  V'       d   V'       d	   V! V4      pWFWW3p0V0V3#    \        R\        T#TT!34      ,           4      h; i)$z{simple recursive descent xml parser...
return (dictionary, endcharacter)
special case: comment returns (None, endcharacter)NrM   zno tags at non-toplevel %sz.non top level entry should be at start tag: %s:Né
   Nz![r2   zunclosed CDATA %sz!-z<!--z--zunterminated comment %srN   z*invalid comment: contains double dashes %sÚ=Ú/Ú"Ú.zunclosed start tag %sz fz-attribute value must start with double quotesºé   NNzunclosed value zattvalue,attentry,attlist=Ú'zno close bracket for z found after zunclosed close tag %sÚ
z	at lines z...z close tag name doesn't match Ú )Ú
startingatÚtoplevelr   éÿÿÿÿ)r   ÚNONAMEÚstriprO   rP   rQ   ÚreprrY   ÚCDATAENDMARKERÚCDATAMARKERÚsplitr7   rA   )1rB   re   rf   r   Ú
NameStringÚContentListÚAttDictÚ
ExtraStuffrC   ÚfirstbracketÚafterbracket2charÚ
docontentsÚLÚnameÚ
startcdataÚendcdataÚendcommentdashesÚ
endcommentÚclosebracketÚnocloseÚstartsearchÚpastfirstbracketÚ
tagcontentÚstopÚtaglistÚtaglist0Útaglist0listÚattributenameÚDÚtaglistindexÚlasttaglistindexÚattentryÚnextattentryÚattlistÚnextattnameÚattvalueÚfirstÚlastÚnextopenbracketÚ	remainderÚnextclosebracketÚclosetagcontentsÚclosetaglistÚ	closenameÚprefixÚ
endlinenumÚlinenumÚ	parsetreeÚts1   &&&&                                             r   rA   rA   ˜   sZ  € ô ˜'Ó"€Gô €JØ)-Ð-€KÐ-�'ØÒð —-‘-“/ˆØ€Fà—<‘<  VÓ,€LØ¨Q¥¨|¸A­~Ð>Ðð
 €JØ�A„~ð Ò#à& wÐ/Ð0�ß!±ÀÓ1L ;Ø"¨[ÐEÄsÈ7Ã|ÐSÐSä Ð!=ÄÀWÐTZÐ[]ÕT]ÐE^Ó@_Õ!_Ó`Ð`à
€Að
 Òä &Ð&ˆJÜ" 7Ó3ŠFà	�aŒÜÐMÔPTÐU\Ð]`ÕUaÓPbÕbÓcÐcà	˜DÔ	  W¸,Àq½.Ð%IÈ;Ô%Vð & a�ˆJØ—|‘|¤N°JÓ?ˆHØ˜ŒzÜ Ð!4´t¸GÈ6ÐRTÍ9Ð<UÓ7VÕ!VÓWÐWÜ$ˆJØ"¨xÐ8Ð9ˆKØœc¤.Ó1Õ1ˆFØŠJà	˜DÔ	  W¸,Àq½.Ð%IÈ6Ô%Qà&Ÿ|™|¨D°,¸qµ.ÓAÐØ Ô,Ü Ð!:¼TÀ'ÐQWÐXZÕQZÐB[Ó=\Õ!\Ó]Ð]Ø)¨!Õ+ˆJØ�zÕ" CÔ'Ü Ð!MÔPTÐU\ÐdjÐkmÕdmÐUnÓPoÕ!oÓpÐpØ˜* Q�,Ð'Ð'ð
 #Ÿ<™<¨¨\Ó:ˆLØ" 1‘nˆGØ& q�.ˆKØ+¨A�~ÐØ Ð!1°,Ð?ˆJà˜*Ô$Ø˜b•> 3Ô&ð ",¨C¨R �JØ!%�JØ!×'Ñ'Ó)�Ø!�
Ø$’à˜*Ô$à�Dç¤# z°#¥~×&<Ñ&<¸SÓ&AÓ"BÀA×"EÔ"EØ˜Øš,Ø'.§|¡|°C¸Ó'E˜Ø&2°1¥n˜Ø".¨q¡.˜Ø%,Ð-=¸lÐ%K˜
ç"¤c¨:°c­>×*@Ñ*@ÀÓ*EÓ&FÈ×&IÖ&IØ!"šDßÜ$Ð%<¼tÀGÐYeÐfhÕYhÐDiÓ?jÕ%jÓkÐkØ$�ð ˜<¨�>Õ*¨CÔ/à#/°¥>�LØ!+¨C¨R �JØ!%�Jà'×-Ñ-Ó/�
Ø$×*Ñ*¨3Ó/�ð # 1�:�Ø'Ÿ~™~Ó/�ð $ A•�à!�
à ,¨RÕ 0�à% b�k¨$Õ.�˜‘Ø Ð �˜!Ø �Ü#& w£<Ð à"Ð#3Õ3à& |Õ4�HØ#/°¥>�LØ'Ÿ~™~Ó/�HØ •{ CÔ'Ü(Ð)XÔ[_Ð`hÓ[iÕ)iÓjÐjØ X¨b¥\Ô1à'Ð(8Ô8Ü",Ð->ÄÀhÃÕ-OÓ"PÐPØ'.¨|Õ'<˜Ø'3°A¥~˜Û.6ºÐ#EšØ'Ÿ~™~Ó/�HØ&Ÿn™nÓ.�GØ")¨"¥+�KØ'Ð(:¬#¨kÓ*:Ð):Ð;�HØ'Ÿ~™~Ó/�HðjØ (¨¥˜°(¸2µ,¨Tð ˜dÖ' CÖ'¨5°$Ö+;¸×+;Ø#+¨A¨b >˜à'/�A�mÑ$Ø$/“MàÒàˆØ
Ó
 Ø%Ÿl™l¨3°Ó7ˆOØ˜vÔ%àœ”<à#�JØ '¨Ð 0�IÜ  ›\�Fß ØŸ™ Ö+ñ !õ %ÓQUÔVZÐ[bÐkqÐrtÕktÐ[uÕVvÐ%wÓxÐxà˜¨Õ*Õ+¨SÕ0à#*§<¡<°°_Ó#EÐ Ø# OÔ3Ü$Ð%<¼tÀGÈOÐ]lÐmoÕ]oÐDpÓ?qÕ%qÓrÐrØ#*¨?¸1Õ+<Ð>NÐ#OÐ Ø/×5Ñ5Ó7�ð
 )¨�O�	à˜”?Ø$ W fÐ-�FÜ!$ V§\¡\°$Ó%7Ó!8�JØ$ [ jÐ1�FÜ! &§,¡,¨tÓ"4Ó5�GÝ$Û£
¬D°®J¼¸Y¾ÌÈgÐ^dÐehÕ^hÐNiÕIjð&ló mð mà#¨?Ð;�	ßà—H‘H˜YÔ'Ø)¨!Õ+�à!“
ð $¨?Ð;�	ßØ—H‘H˜YÔ'ô '0°ÀOÐ^bð  tBô  'CÑ#�˜Fß’9Ø—H‘H˜Y×'÷ ß©¸Ó)D˜;Ø	˜kÐ6€AØˆvˆ;ÐøðQjÜ(Ð)EÄdÈHÐV^Ð_fÐKgÓFhÕ)hÓiÐiús   Ó\$ Ü$ ]c           	     ó6  € \        V \        \        34      '       d   V # V w  rr4V'       g   / p. pVP                  4        F,  pW&,          pVP	                  V: R\        V4      : 24       K.  	  RP                  V4      pV'       g   V'       d   \        R4      hVeq   \        \        \        V4      4      p	RP                  V	4      p
V'       g   V
# V
P                  R4      pRRP                  V4      ,           p
RV: RV: RV
: R	V: R
2	# RV: RV: R2# )z!pretty printer mainly for testingr\   rd   zname missing with attributes???rc   z   z
   rM   z>
z
</rN   z/>)r    r!   ÚbytesÚkeysr7   rj   ÚjoinrQ   ÚlistÚmapÚpprettyprintrm   )Ú	parsedxmlrv   ÚattdictÚtextlistÚextrarŠ   ÚkÚvÚ
attributesÚtextlistpprintÚ
textpprintÚnllists   &           r   r    r    €  sî   € ä�)œS¤˜K×(Ò(ØÐØ'0Ñ$€T�Hß˜B�GØ€GØ�\‰\Ž^ˆØ�JˆØ�‰£!¤T¨!¥WÐ-Ö.ñ ð —‘˜'Ó"€Jß—JÜÐ:Ó;Ð;ØÒäœc¤,°Ó9Ó:ˆØ—Y‘Y˜~Ó.ˆ
ßØÐà×!Ñ! $Ó'ˆØ˜WŸ\™\¨&Ó1Õ2‰
Û'+«Z»ÃTÐJÐJð ó ›zÐ*Ð*r   c                 ó  € ^ RI H p ^ RIHp V! 4       p\        V ^R7      p\        RV! 4       V,
          4       V^,          '       d	   V! V4       V^,          '       d$   \        R4       \	        V4      p\        V4       R# R# )r   ©Útime)Úpprint)r   ÚDONEz============== reformattingN)r­   r®   rD   r   r    )r   Údumpr­   r®   Únowr…   r   s   &&     r   Ú	testparser²   š  sb   € ÝÝÙ
‹&€CÜ�q¨Ô+€AÜ	ˆ&‘$“&˜•*ÔØˆA‡v„vÙˆqŒ	àˆA‡v„vÜÐ+Ô,Ü˜‹OˆÜˆaŽñ r   c                 ó    € \        R V R7       R# )a-  <this type="xml">text &lt;&gt;<b>in</b> <funnytag foo="bar"/> xml</this>
                 <!-- comment -->
                 <![CDATA[
                 <this type="xml">text <b>in</b> xml</this> ]]>
                 <tag with="<brackets in values>">just testing brackets feature</tag>
                 ©r°   N)r²   r´   s   &r   Útestrµ   ¨  s   € Üð ð
 ÷ r   Ú__main__r´   r¬   r`   z!!!!! no file at {f!r}zparsing z |t|=z	timed at z.2fz secs.))z&lt;rM   )z&gt;rN   )z&amp;r4   )r   )+Ú__doc__r?   ÚsimpleparseÚpyRXPUr   ÚParserr   r   r@   r   rh   ÚNAMEKEYÚCONTENTSKEYrl   rP   ÚLENCDATAMARKERrk   r5   r=   rD   rK   ÚverboserY   rA   r    r²   rµ   r+   ÚsysÚosr­   Ú	reportlabr±   ÚseenÚargvÚfÚpathÚisfiler   rG   Ú_frH   r™   r*   r   r   Ú<module>rÈ      sÈ  ðñ5ðn €ðà€KÛòà—=’=Ø./Ø'(Ø01Ø./Ø!'Ø .Ø%&ô€Lð +,°ÀTÐTVô ;÷	ñ 	ñ ‹m€à	€Ø
€Ø€Ø€Ù�[Ó!€Ø€Ú<€òð -.°4ÐGZô ÷ Ø€Hòð €òð0 #$¨aà*ôfòP+ô4ô ð ˆZÔÙˆa…LßÝÛÙ
‹&€CØ€DØ�X‰X�b�\ˆ\ˆØ�w‰w�~‰~˜a× Ò ÙÐ*Ö+á�a—”˜BØ—G‘G“I�÷ á�H˜Q™E ¡s¨1£v hÐ/Ô0Ù�a˜QÕØ�A�IŠDñ ÷ Ù�	™$›& �* SÐ)¨Ð0Ö1ñ ñ! øðG ô ØƒKðú÷\ —ús   †+E2 ÄFÅ2	E?Å>E?ÆF