+
    VBiF5                       R t ^ RIHt Rt^ RIt^ RIt^ RIHtHt ^ RI	H
t
 ^ RIHt  ! R R]
4      t ! R	 R
]
4      t ! R R]
4      t ! R R]
4      t ! R R]
4      t ! R R]
4      t ! R R]
4      t ! R R]
4      t ! R R]
4      tR# )a  
Transforms needed by most or all documents:

- `Decorations`: Generate a document's header & footer.
- `ExposeInternals`: Expose internal attributes.
- `Messages`: Placement of system messages generated after parsing.
- `FilterMessages`: Remove system messages below verbosity threshold.
- `TestMessages`: Like `Messages`, used on test runs.
- `StripComments`: Remove comment elements from the document tree.
- `StripClassesAndElements`: Remove elements with classes
  in `self.document.settings.strip_elements_with_classes`
  and class values in `self.document.settings.strip_classes`.
- `SmartQuotes`: Replace ASCII quotation marks with typographic form.
- `Validate`: Validate the document tree, report violations as warning.
)annotationsreStructuredTextN)nodesutils)	Transform)smartquotesc                  6    ] tR t^!tRtRtR R ltR tR tRt	R# )	Decorationsz<
Populate a document's decoration element (header, footer).
i4  c                   V ^8  d   QhRR/#    returnNone )formats   "B/usr/lib/python3.14/site-packages/docutils/transforms/universal.py__annotate__Decorations.__annotate__)   s     
( 
(t 
(    c                	V   V P                  4       pV'       d<   V P                  P                  4       pVP                  4       pVP	                  V4       V P                  4       pV'       d>   V P                  P                  4       pVP                  4       pVP	                  V4       R # R # N)generate_headerdocumentget_decoration
get_headerextendgenerate_footer
get_footer)selfheader_nodes
decorationheaderfooter_nodesfooters   &     r   applyDecorations.apply)   s    ++-557J**,FMM,'++-557J**,FMM,' r   c                	    R # r   r   )r   s   &r   r   Decorations.generate_header5   s    r   c                	   V P                   P                  pVP                  '       g8   VP                  '       g&   VP                  '       g   VP
                  '       Ed   . pVP                  '       d   VP                  '       g   VP
                  '       d   VP
                  '       d   VP
                  pM+\        P                  ! VP                  VP                  4      pVP                  \        P                  ! R RVR7      \        P                  ! R4      .4       VP                  '       dh   \        P                  ! VP                  \        P                   ! 4       4      pVP#                  \        P                  ! RV,           R,           4      4       VP                  '       d   VP                  \        P                  ! R4      \        P                  ! R RRR7      \        P                  ! R4      \        P                  ! R R	R
R7      \        P                  ! R4      .4       \        P$                  ! R R .VO5!  .# R# ) zView document source)refuriz.
zGenerated on: zGenerated by Docutilsz https://docutils.sourceforge.io/z from r   z(https://docutils.sourceforge.io/rst.htmlz	 source.
N)r   settings	generator	datestampsource_link
source_url_sourcer   relative_pathoutput_pathr   r   	referenceTexttimestrftimegmtimeappend	paragraph)r   r,   textsourcer.   s   &    r   r   Decorations.generate_footer8   s    ==))("4"4"4###x':':':D$$$)9)9)9&&&&&&%00F"001E1E191A1ACFOOB(>+13JJu%' ( !!! MM(*<*<dkkmL	EJJ'7)'Ce'KLM!!!JJ/OOB
+MOJJx(OOB(:,/0 JJ|,. / OOB2T233r   r   N)
__name__
__module____qualname____firstlineno____doc__default_priorityr$   r   r   __static_attributes__r   r   r   r	   r	   !   s     
(%r   r	   c                  6    ] tR t^`tRtRtR R ltR R ltRtR# )	ExposeInternalszD
Expose internal attributes if ``expose_internals`` setting is set.
iH  c                   V ^8  d   QhRR/# r   r   boolr   )r   s   "r   r   ExposeInternals.__annotate__h   s     0 0 0r   c                	@    \        V\        P                  4      '       * # r   )
isinstancer   r5   r   nodes   &&r   not_TextExposeInternals.not_Texth   s    dEJJ///r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rJ   k   s     8 8t 8r   c                	6   V P                   P                  P                  '       ds   V P                   P                  V P                  4       FG  pV P                   P                  P                   F   p\        WR 4      pVf   K  W1RV,           &   K"  	  KI  	  R # R # )Nz	internal:)r   r,   expose_internalsfindallrO   getattr)r   rN   attvalues   &   r   r$   ExposeInternals.applyk   st    ==!!222--dmm<==11BBC#Dt4E(27[3./ C = 3r   r   N)	r>   r?   r@   rA   rB   rC   rO   r$   rD   r   r   r   rF   rF   `   s     08 8r   rF   c                  *    ] tR t^ttRtRtR R ltRtR# )MessageszHandle "loose" messages.

Place system messages generated by parsing or transforms that are not
attached to the document tree into a dedicated section of the document.
i\  c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   Messages.__annotate__~   s     
% 
%t 
%r   c                	   . V P                   P                  OV P                   P                  OpV Uu. uF  q"P                  '       d   K  VNK  	  ppV'       ds   \        P
                  ! R .R7      pV\        P                  ! RR4      ,          pWC,          p. V P                   P                  R&   V ;P                   V,          un         R# R# u upi )system-messages)classesr)   zDocutils System MessagesNNNN)r   parse_messagestransform_messagesparentr   sectiontitle)r   messagesmsgloose_messagesrd   s   &    r   r$   Messages.apply~   s    7T]]11 7]]557)1D###Dmm->,?@Gu{{2'ABBG%G24DMM,,Q/MMW$M  Es   CCr   Nr>   r?   r@   rA   rB   rC   r$   rD   r   r   r   rZ   rZ   t   s     
% 
%r   rZ   c                  *    ] tR t^tRtRtR R ltRtR# )FilterMessagesz
Remove system messages below verbosity threshold.

Also convert <problematic> nodes referencing removed messages
to <Text> nodes and remove "System Messages" section if empty.
if  c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   FilterMessages.__annotate__   s     ) )t )r   c                	   . p\        V P                  P                  \        P                  4      4       F  pVR ,          V P                  P
                  P                  8  g   K1  VP                  P                  V4       VR,           F:  pV P                  P                  P                  VR4       VP                  V4       K<  	  K  	  \        V P                  P                  \        P                  4      4       FZ  pRV9   g   K  VR,          V9   g   K  VP                  P                  V\        P                  ! VP                  4       4      4       K\  	  V P                  P                  \        P                   4       F@  pRVR,          9   g   K  \#        V4      ^8X  g   K%  VP                  P                  V4       KB  	  R# )levelidsNrefidr^   r_   )tupler   rT   r   system_messagereporterreport_levelrc   removerq   popr9   problematicreplacer5   astextrd   len)r   removed_idsrN   _ids   &   r   r$   FilterMessages.apply   s5   $--//0D0DEFDG}t}}55BBB""4(;;CMM%%))#t4&&s+ ' G $--//0A0ABCD$4=K#?##D%**T[[]*CD D MM))%--8D DO3D	Q""4( 9r   r   Nrj   r   r   r   rl   rl      s     ) )r   rl   c                  .    ] tR t^tRtRtRtR R ltRtR# )TestMessagesz_
Append all post-parse system messages to the end of the document.

Used for testing purposes.
Fip  c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   TestMessages.__annotate__   s     % %t %r   c                	    V P                   P                   F0  pVP                  '       d   K  V ;P                   V,          un         K2  	  R # r   )r   rb   rc   )r   rg   s   & r   r$   TestMessages.apply   s-    ==33C:::$ 4r   r   N)	r>   r?   r@   rA   rB   __test__rC   r$   rD   r   r   r   r   r      s     H% %r   r   c                  *    ] tR t^tRtRtR R ltRtR# )StripCommentsze
Remove comment elements from the document tree (only if the
``strip_comments`` setting is enabled).
i  c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   StripComments.__annotate__   s     ) )t )r   c                	    V P                   P                  P                  '       dW   \        V P                   P	                  \
        P                  4      4       F  pVP                  P                  V4       K   	  R # R # r   )	r   r,   strip_commentsrs   rT   r   commentrc   rw   rM   s   & r   r$   StripComments.apply   sR    ==!!000dmm33EMMBC""4( D 1r   r   Nrj   r   r   r   r   r      s    
 ) )r   r   c                  6    ] tR t^tRtRtR R ltR R ltRtR# )	StripClassesAndElementsz
Remove from the document tree all elements with classes in
`self.document.settings.strip_elements_with_classes` and all "classes"
attribute values in `self.document.settings.strip_classes`.
i  c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   $StripClassesAndElements.__annotate__   s      t r   c                	   V P                   P                  P                  '       dx   0 V P                   P                  P                  mV n        \	        V P                   P                  V P                  4      4       F  pVP                  P                  V4       K   	  V P                   P                  P                  '       g   R # V P                   P                  P                  pV P                   P                  \        P                  4       F%  pV F  p VR,          P                  V4       K  	  K'  	  R #   \         d     K4  i ; i)Nr_   )r   r,   strip_elements_with_classesstrip_elementsrs   rT   check_classesrc   rw   strip_classesr   Element
ValueError)r   rN   r   class_values   &   r   r$   StripClassesAndElements.apply   s    ==!!===#ADMM$:$:$?$?#AD dmm33D4F4FGH""4( I }}%%333..<<MM))%--8D,O**;7  - 9 " s   D::E	E	c                   V ^8  d   QhRR/# rH   r   )r   s   "r   r   r      s      T r   c                	    \        V\        P                  4      '       g   R # VR,          R,           F  pW P                  9   g   K   R# 	  R # )Fr_   r`   T)rL   r   r   r   )r   rN   r   s   && r   r   %StripClassesAndElements.check_classes   s@    $..	?1--K111 . r   )r   N)	r>   r?   r@   rA   rB   rC   r$   r   rD   r   r   r   r   r      s     & r   r   c                     ] tR t^tRtRt]P                  ]P                  3t	 ]P                  ]P                  ]P                  ]P                  ]P                  ]P                  ]P                  3t Rt R R ltR tR R ltR	tR
# )SmartQuoteszu
Replace ASCII quotation marks with typographic form.

Also replace multiple dashes with em-dash/en-dash characters.
iW  qDec                   V ^8  d   QhRR/# r   r   )r   s   "r   r   SmartQuotes.__annotate__  s     + +t +r   c                	T    \         P                  ! WVR 7       \        4       V n        R# ))	startnodeN)r   __init__setunsupported_languages)r   r   r   s   &&&r   r   SmartQuotes.__init__  s    4Y?%(U"r   c              #  	<  "   V F  p\        VP                  V P                  4      '       g1   \        VP                  P                  V P                  4      '       d   R \        V4      3x  Kj  \        P
                  ! RR\        V4      4      pRV3x  K  	  R# 5i)literalz(?<= )([-\'".`])z\\\1plainN)rL   rc   literal_nodesstrresub)r   txtnodesrN   txts   &&  r   
get_tokensSmartQuotes.get_tokens  sw      D4;;(:(:;;dkk00$2D2DEET** ff4gs4yIsl" s   BBc                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r     s     <+ <+t <+r   c                	(   V P                   P                  P                  R R4      pV'       g   R#  VP                  R4      pV P                   P                  P
                  pV P                   P                  P                  pV'       d3   \        P                  P                  P                  \        V4      4       V P                   P                  \        P                  4       EF  p\        WPP                   4      '       d   K!  \        VP"                  \        P                  4      '       d   KM  VP                  \        P$                  4       Uu. uF1  p\        VP"                  \        P&                  4      '       d   K/  VNK3  	  ppVP)                  V4      pV'       d$   RV9   d   VP+                  RR4      pM	VR,          p\,        P.                  ! V4       F&  p	V	\        P                  P                  9   g   K$  T	p M]	  WP0                  9  d/   V P                   P2                  P5                  RV,          VR7       V P0                  P7                  V4       Rp\        P8                  ! V P;                  V4      V P<                  VR7      p
\?        Wz4       F5  w  rkVP"                  P+                  V\        P$                  ! V4      4       K7  	  EK  	  V P0                  PA                  4        R#   \         d    Rp ELi ; iu upi )	smart_quotesFNaltz
-x-altquotr)   z*No smart quotes defined for language "%s".	base_node)attrlanguage)!r   r,   
setdefault
startswithAttributeErrorlanguage_codesmartquotes_localesr   
smartcharsquotesupdatedictrT   r   TextElementrL   nodes_to_skiprc   r5   option_stringget_language_coderz   r   normalize_language_tagr   ru   warningaddeducate_tokensr   smartquotes_actionzipclear)r   r   alternativedocument_languagelc_smartquotesrN   txtnoder   langtagteachernewtexts   &           r   r$   SmartQuotes.apply  sh   }}--889>@	 &11%8K !MM22@@//CC""))00n1EF MM))%*;*;<D$ 2 233$++u'8'899 04||EJJ/G @/GG)'..*/*=*= ?  /GH @
 ))*;<D4'<<b9DL(D33D9+00777D :
 999MM**22DtK"& 3 ( **..t4 "00),,t=G %($: &&w

70CD %;Q =V 	""((*k  	 K	 &@s   K; ,LL;LL)r   N)r>   r?   r@   rA   rB   rC   r   FixedTextElementSpecialr   imager   mathrawry   r   r   r   r   r$   rD   r   r   r   r   r      s     ++U]];MM++U]][[%--YY 1 13M G+#<+ <+r   r   c                  *    ] tR tRtRtRtR R ltRtR# )ValidateiW  z;
Validate the document tree, report violations as warning.
iC  c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   Validate.__annotate___  s     E Et Er   c                	   \        V P                  P                  R R4      '       g   R# V P                  P                  4        F  p VP	                  RR7       K  	  R#   \
        P                   dP   pT P                  P                  P                  \        T4      TP                  ;'       g    TR7        Rp?K{  Rp?ii ; i)validateFN)	recursiver   )rU   r   r,   rT   r   r   ValidationErrorru   r   r   problematic_element)r   rN   es   &  r   r$   Validate.apply_  s    t}}--z5AAMM))+DE. , (( E&&..Fa&;&;&C&Ct / E EEs   A  C5AB??Cr   Nrj   r   r   r   r   r   W  s     E Er   r   )rB   
__future__r   __docformat__r   r6   docutilsr   r   docutils.transformsr   docutils.utilsr   r	   rF   rZ   rl   r   r   r   r   r   r   r   r   <module>r      s     #" 	  ! ) &<) <~8i 8(%y %.)Y )6%9 %&)I )#i #Lf+) f+REy Er   