Ë @.<ºU…â-ã óv—dZddlZddlmZddlmZmZmZddlm Z d„Z d„Z d „Z d „Z d „Zd „Zej d «Zd„Zd„Zej d«Zej d«Zej d«Zej d«Zej d«Zd„ZdZd„Zd„Zd„Zej d«Zd„Zd„Z d„Z!d„Z"d„Z#d „Z$d6d!„Z%ed"«ed#«ed$«ed%«ed&«ed'«ed(«ed)«ed*«d+œ Z&d,„Z'd-„Z(d.„Z)d7d/„Z*d0„Z+d1„Z,d8d2„Z-d3„Z.d4„Z/d9d5„Z0y):a«simplified reStructuredText parser. This parser knows just enough about reStructuredText to parse the Mercurial docstrings. It cheats in a major way: nested blocks are not really nested. They are just indented blocks that look like they are nested. This relies on the user to keep the right indentation for the blocks. Remember to update https://mercurial-scm.org/wiki/HelpStyleGuide when adding support for new constructs. éNé)Ú_)ÚencodingÚpycompatÚurl)Ú stringutilcó<—d|dtj|«zfzS)Nó%s %s ó"©rÚcolwidth©Úss ú5usr/lib/python3.12/site-packages/mercurial/minirst.pyÚsectionr!s"€Ø ˜A˜u¤x×'8Ñ'8¸Ó';Ñ;Ð<Ñ <Ð<ócó<—d|dtj|«zfzS)Nr ó=r rs rÚ subsectionr%ó"€Ø ˜A˜t¤h×&7Ñ&7¸Ó&:Ñ:Ð;Ñ ;Ð;rcó<—d|dtj|«zfzS)Nr ó-r rs rÚ subsubsectionr)rrcó<—d|dtj|«zfzS)Nr ó.r rs rÚsubsubsubsectionr-rrcó<—d|dtj|«zfzS)Nr ó'r rs rÚsubsubsubsubsectionr1rrcó>—|jtjtj««}|D]5\}}|j |jd«|jd««}Œ7|j tjtj««S)aB Apply a list of (find, replace) pairs to a text. >>> replace(b"foo bar", [(b'f', b'F'), (b'b', b'B')]) 'Foo Bar' >>> encoding.encoding = b'latin1' >>> replace(b'\x81\\', [(b'\\', b'/')]) '\x81/' >>> encoding.encoding = b'shiftjis' >>> replace(b'\x81\\', [(b'\\', b'/')]) '\x81\\' Úascii)ÚdecoderÚsysstrrÚreplaceÚencode)ÚtextÚsubstsÚutextÚfÚts rr$r$5so€ð$ �K‰KœŸ™¬×(9Ñ(9Ó:Ó ;€EÛ‰ˆˆ1Ø— ‘ ˜aŸh™h wÓ/°·±¸'Ó1BÓC‰ðà �<‰<œŸ™¬×(9Ñ(9Ó:Ó ;Ð;rs \n(?:\s*\n)+có—g}tj|jd«j««D]M}|j «}|sŒt d„|D««}|D�cgc]}||d‘Œ }}|j ||dœ«ŒO|Scc}w)z¤Find continuous blocks of lines in text. Returns a list of dictionaries representing the blocks. Each block has an 'indent' field and a 'lines' field. ó c3ófK—|])}t|«t|j««z –—Œ+y­w©N)ÚlenÚlstrip)Ú.0Úls rÚ zfindblocks..Zs$èø€ÐC¹U¸œ#˜a›&¤3 q§x¡x£z£?Õ2¹Uùs‚/1N)óindentólines)Ú_blockreÚsplitr0ÚrstripÚ splitlinesÚminÚappend)r&ÚblocksÚbÚlinesÚindentr2s rÚ findblocksr@Psƒ€ð €FÜ �^‰^˜DŸK™K¨Ó.×5Ñ5Ó7Ö 8ˆØ— ‘ “ˆÚ ÜÑC¹UÓCÓCˆFÙ).Ó/© A�Q�v�w’Z¨ˆEÐ/Ø �M‰M f¸Ñ>Õ ?ð 9ð €Mùò0sÁ! Bcó¸—d}|t|«k�rÈd||d<||ddjd«�r�|dzt|«k�r~||d}||dzd|z }||ddgk(r ||=|dz}n«||ddjd «r||ddd d ||dd<nyt||d«dk(rN||ddjd «jd «r%||ddj d d«dk(r|dz }�Œ||ddd d||dd<t j ||dd«}|r&||j«z }||j«z}|dzt|«krQ||dzd|kDrCd||dzd<||dzdxx|zcc<|dz }|dzt|«kr||dzd|kDrŒC|dz }|t|«kr�ŒÈ|S)z§Finds literal blocks and adds a 'type' field to the blocks. Literal blocks are given the type 'literal', all other blocks are given type the 'paragraph'. ró paragraphótyper5éÿÿÿÿs::rr4s ::Néýÿÿÿó ó.. éóliteral)r/Úendswithr0Ú startswithÚfindÚ _bulletreÚmatchÚend)r<Úir?Ú adjustmentÚms rÚfindliteralblocksrS`sV€ð €AØ Œc�&‹k‹/ð*ˆˆq‰ �'ÑØ �!‰9�XÑ ˜rÑ "× +Ñ +¨EÕ 2°q¸1±u¼sÀ6»{Ó7JؘA‘Y˜yÑ)ˆFØ  A¡™ yÑ1°FÑ:ˆJà�a‰y˜Ñ" u gÒ-à˜1�IØ�Q‘‘ؘ‘˜8Ñ$ RÑ(×1Ñ1°&Ô9ð+1°©)°HÑ*=¸bÑ*AÀ#À2Ð*F��q‘ ˜(Ñ# BÒ'ä�F˜1‘I˜hÑ'Ó(¨AÒ-ؘ1‘I˜hÑ'¨Ñ*×1Ñ1°$Ó7×BÑBÀ6ÔJؘ1‘I˜hÑ'¨Ñ*×/Ñ/°°aÓ8¸BÒ>ð�Q‘�Ùð+1°©)°HÑ*=¸bÑ*AÀ#À2Ð*F��q‘ ˜(Ñ# BÑ'ô —‘  q¡ ¨(Ñ 3°AÑ 6Ó7ˆAÙØ˜!Ÿ%™%›'Ñ!�ؘaŸe™e›gÑ%� ð�a‘%œ#˜f›+Ò%¨&°°Q±©-¸ Ñ*BÀVÒ*KØ)3��q˜1‘u‘ ˜gÑ&Ø�q˜1‘u‘ ˜iÓ(¨JÑ6Ó(Ø�Q‘�ð�a‘%œ#˜f›+Ò%¨&°°Q±©-¸ Ñ*BÀVÓ*Kð ˆQ‰ˆðc Œc�&‹kŒ/ðd €Mrs+(\*|-|[0-9A-Za-z]+\.|\(?[0-9A-Za-z]+\)|\|) s0^(-([a-zA-Z0-9]), )?(--[a-z0-9-]+)((.*) +)(.*)$s&:(?![: ])((?:\:|[^:])*)(?rPÚitemreÚ singlelineÚline1Úline2s rrNzsplitparagraphs..match±s|€ð �a‘ˆØ�A‘œ˜E› Ñ"Ò3 u¨Q°©U¡|Ò:°sˆØ�|‰|˜EÔ"ØÙ ؘC‘<ÒL 5¨¨1 :°Ñ#5ÒL¸¿¹ÀeÓ9LÐ Là×#Ñ# DÓ)Ð )rrrCrBr5r4)rCr5r4rDr)rMÚ _optionreÚ_fieldreÚ _definitionrer/Ú enumerater;) r<Ú listtypesrNrPr>ÚtyperZr[ÚitemsÚjÚlines rÚsplitparagraphsrg¥s€ð ”I˜tÐ$Ø ”I˜tÐ$Ø ”8˜TÐ"Ø œ  uÐ-ð €Iò *ð €AØ Œc�&‹kŠ/Ø �!‰9�WÑ  Ò -ؘ1‘I˜hÑ'ˆEÛ,5Ñ(��f˜jÙ˜  6¨:Õ6Ø�EÜ#,¨UÖ#3™˜˜4Ù  ¨¨6°:Ô>Ø!ŸL™Là-1Ø.0Ø/5°a©y¸Ñ/Cñ!"ôð˜b™  (Ñ+×2Ñ2°4Õ8ð$4ð).�F˜1˜q 1™uÐ%Ùð-6ð ˆQ‰ˆð% Œc�&‹k‹/ð& €MrécóŒ—d}|t|«kr³||ddk7r|dz }Œ|}|t|«kr~||ddk(rstj||dd«}|j«\}}|||dd<|j dd«||d<|dz }|t|«kr ||ddk(rŒs|dz}|t|«krŒ³|S) zFind key for field lists.rrCrWrr5s\:ó:ókey)r/r_rNÚgroupsr$)r<rPrerRÚkeyÚrests rÚupdatefieldlistsroÚsë€à €AØ Œc�&‹kŠ/Ø �!‰9�WÑ  Ò )Ø �‰FˆAØ à ˆØ”#�f“+Šo &¨¡)¨GÑ"4¸Ò"@Ü—‘˜v a™y¨Ñ2°1Ñ5Ó6ˆAØŸ™› ‰IˆC�Ø%)ˆF�1‰I�hÑ  Ñ "Ø #§ ¡ ¨F°DÓ 9ˆF�1‰I�fÑ Ø �‰FˆAð ”#�f“+Šo &¨¡)¨GÑ"4¸Ó"@ð �‰Eˆð Œc�&‹k‹/ð €Mrcóò—d}|t|«k�re||ddk7r|dz }Œ d}|}|t|«k�r||ddk(�rtj||dd«}|jd«}|jd«}|ddj «}|jd«j «}|jd «j «} |||dd<d } |sd } d |xrd |zxsd d| || fzfz} | j «} | ||d<t |tj| ««}|dz }|t|«kr ||ddk(r�Œ|||D]} || d<Œ |dz}|t|«kr�Œe|S)NrrCrVrr5érHééró s%s%ss-%s s %s--%s %sóoptstró optstrwidth) r/r^rNÚgroupÚstripr8Úmaxrr ) r<rPÚ optstrwidthrerRÚ shortoptionÚgroup3Ú longoptionÚdescÚ longoptionargÚ noshortopÚoptÚblocks rÚupdateoptionlistsrƒïs­€Ø €AØ Œc�&‹k‹/Ø �!‰9�WÑ  Ò *Ø �‰FˆAØ àˆ Ø ˆØ”#�f“+‹o &¨¡)¨GÑ"4¸ Ó"AÜ—‘  q¡ ¨(Ñ 3°AÑ 6Ó7ˆAàŸ'™' !›*ˆKØ—W‘W˜Q“ZˆFØ  ˜×)Ñ)Ó+ˆJØ—7‘7˜1“:×#Ñ#Ó%ˆDØŸG™G A›J×,Ñ,Ó.ˆMØ%)ˆF�1‰I�hÑ  Ñ "àˆIÙØ"� àØÒ5 ¨+Ñ 5Ò<¸Ø  ¨:°}ÐEÑEðñˆCð—*‘*“,ˆCØ#&ˆF�1‰I�iÑ Ü˜k¬8×+<Ñ+<¸SÓ+AÓBˆKØ �‰FˆAð+”#�f“+Šo &¨¡)¨GÑ"4¸ Ô"Að.˜A˜a“[ˆEØ$/ˆE�.Ò !ð!à �‰EˆðA Œc�&‹kŒ/ðB €Mrcó—g}d}|dzt|«krê||ddk(rÈ||ddjd«r®||d}||dzd|z }||dddd }d }|D]}||jd «vsŒd }Œ|r|j|«||=|} |dz}| t|«kr@|| d|kDr5|r|| =n|| dxx|zcc<| dz } | t|«kr || d|kDrŒ5|dz }|dzt|«krŒê||fS) zŽPrune unwanted containers. The blocks must have a 'type' field, i.e., they should have been run through findliteralblocks first. rrrCrBr5s.. container::r4éNTrF)r/rKr7r;) r<ÚkeepÚprunedrPr?rQÚ containertypeÚpruneÚcres rÚprunecontainersr‹sm€ð €FØ €AØ ˆa‰%”#�f“+Ò ð �!‰9�WÑ  Ò -°&¸±)¸HÑ2EØ ñ3 ç ‰*Ð&Ó 'ð3(ð˜A‘Y˜yÑ)ˆFØ  A¡™ yÑ1°FÑ:ˆJØ" 1™I hÑ/°Ñ2°2°3Ð7ˆM؈EÛ�ؘ ×+Ñ+¨DÓ1Ò1Ø!‘EðñØ— ‘ ˜mÔ,ð�q� ؈AØ �‰FˆAØ”c˜&“k’/ f¨Q¡i° Ñ&:¸VÒ&CÙØ˜q™ à˜1‘I˜iÓ(¨JÑ6Ó(ؘ‘F�Að ”c˜&“k’/ f¨Q¡i° Ñ&:¸VÓ&Cð ˆQ‰ˆð? ˆa‰%”#�f“+Ó ð@ �6ˆ>Ðrs^([-=`:.'"~^_*+#])\1+$cóê—|D�]g}|ddk(sŒ t|d«dkDsŒtj|dd«sŒ;|dd|ddk(sŒMd|d<d|d <|dd}tt|««D�cgc]}|||d zd k(r|dk(s ||d z |d k(r|‘Œ!}}g}|dd dD]»}||k(rd |d <Œg}|d}t |«D]ˆ\} } | d zt|«krP|| d z| z } t j ||| «} |t| «z }|j| j««Œg|j||dj««ŒŠ|j|«Œ½||d<�Œj|Scc}w)zNFind simple tables Only simple one-line table elements are supported rCrBr5rqrrDótableFóheaderrrrFTN) r/Ú_tablererNÚrangerarÚgetcolsr;rx) r<r‚ÚdivÚxÚcolumnsÚrowsr2ÚrowÚposÚnÚstartÚwidthÚvs rÚ findtablesrœCs·€ô ˆð �'‰N˜lÓ *Ü�E˜(‘OÓ$ qÓ(Ü—‘˜u X™¨qÑ1Õ2Ø�h‘ Ñ" e¨H¡o°bÑ&9Ó9à%ˆE�'‰NØ$ˆE�)Ñ Ø˜‘/ !Ñ$ˆCô œs 3›xœóá(�AØ�q˜1˜q™5�> TÒ)¨q°Aªv¸¸QÀ¹UÀQ¸È4Ò9OòØ(ð ðð ˆDؘ8‘_ Q rÓ*�ؘ’8Ø'+�E˜)Ñ$ØØ�ð˜a‘j�Ü )¨'Ö 2‘H�A�uؘ1‘uœs 7›|Ò+Ø '¨¨A©¡°Ñ 6˜Ü$×,Ñ,¨Q°°UÓ;˜Øœs 1›v™ ˜ØŸ ™  1§7¡7£9Õ-àŸ ™  1 S T 7§=¡=£?Õ3ð!3ð— ‘ ˜CÕ ð!+ð$#ˆE�(‹Oð[ð^ €Mùò5sÁ8$E0có—|D]€}|ddk(sŒ t|d«dk(sŒtj|dd«t|dd«k(sŒLtj |dd«sŒh|dddd|d<d|d<|dd=Œ‚|S) zƒFinds sections. The blocks must have a 'type' field, i.e., they should have been run through findliteralblocks first. rCrBr5rqrró underlineósection)r/rr Ú _sectionrerN)r<r‚s rÚ findsectionsr¡{s¤€ó ˆð �'‰N˜lÓ *Ü�E˜(‘OÓ$¨Ó)Ü×!Ñ! %¨¡/°!Ñ"4Ó5¼¸UÀ8¹_ÈQÑ=OÓ9PÓPÜ× Ñ   x¡°Ñ!3Õ4à"'¨¡/°!Ñ"4°Q°qÐ"9ˆE�,Ñ Ø'ˆE�'‰NØ�h‘ Ñ"ðð €Mrcót—dg}|D]*}|ddvsŒ |dD�cgc]}t||«‘Œc}|d<Œ,|Scc}w)N)s``r rC©rBrŸr5©r$©r<r'r=r2s rÚinlineliteralsr¦”sP€Øˆ_€FÛ ˆØ ˆW‰:Ð3Ò 3Ø78¸²{ÓC±{°!œ7 1 fÕ-°{ÑCˆAˆhŠKðð €MùòDs˜5cóv—ddg}|D]*}|ddvsŒ |dD�cgc]}t||«‘Œc}|d<Œ,|Scc}w)N)s:hg:`s'hg )ó`rrCr£r5r¤r¥s rÚhgroler©œsU€Ø! <Ð 0€FÛ ˆØ ˆW‰:Ð3Ò 3ð 89¸²{ÓC±{°!œ7 1 fÕ-°{ÑCˆAˆhŠKð ð €MùòDs™6cóæ—d}|t|«kr`||d||dz dk(r||ddvr|dz }n-||dz ds|dz }n|j|dgdddœ«|d z }|t|«krŒ`|S) zÃAdds empty blocks for vertical spacing. This groups bullets, options, and definitions together with no vertical space between them, and adds an empty block between all other blocks. rrC)rUrVrWr5rrómargin)r5r4rCrq)r/Úinsert)r<rPs rÚ addmarginsr­¨s§€ð €AØ Œc�&‹kŠ/Ø �!‰9�WÑ  ¨¨A©¡¨wÑ!7Ò 7¸FÀ1¹IØ ñ= ð ñ= ð �‰F‰Aؘ˜A™‘˜xÒ(à �‰F‰Aà �M‰Mؘs˜e°¸IÑFô ð �‰FˆAð! Œc�&‹k‹/ð" €Mrcóè—d}|t|«kra||}|ddk(r@|ddjd«s |ddgk(r ||=|t|«kr||ddk(r ||=n|dz }|t|«krŒa|S) zRemove comments.rrCrBr5rGs..r«r)r/rK)r<rPr=s rÚ prunecommentsr¯Ãs�€à €AØ Œc�&‹kŠ/Ø �1‰IˆØ ˆW‰:˜Ò %Ø ˆh‰K˜‰N× %Ñ % fÔ -°°8±ÀÀÒ1Gà�q� Ø”3�v“;Š 6¨!¡9¨WÑ#5¸Ò#Bؘ1‘Ià �‰FˆAð Œc�&‹k‹/ð €Mrcó:—|xstj«}tjddj t |««ztj ¬«}d}|t|«kr²|j||dd«}|r‚d||d<||ddd|j«d z j«}||dd|j«d zd }|r||djd d |z«|||d <||dd=|d z}|t|«krŒ²|S)zj Makes the type of the block an admonition block if the first line is an admonition directive s \.\. (%s)::ó|)Úflagsrr5ó admonitionrCrHrqrNrtóadmonitiontitle) Ú_admonitiontitlesÚkeysÚreÚcompileÚjoinÚsortedÚ IGNORECASEr/rNrOÚlowerr¬)r<Ú admonitionsÚ admonitionrerPrRÚadmonitiontitleÚ firstlines rÚfindadmonitionsrÁÓs2€ð Ò9Ô!2×!7Ñ!7Ó!9€Kä—:‘:ؘ$Ÿ)™)¤F¨;Ó$7Ó8Ñ8ÄÇ Á ô€Lð €AØ Œc�&‹kŠ/Ø × Ñ ˜v a™y¨Ñ2°1Ñ5Ó 6ˆÙ Ø!.ˆF�1‰I�gÑ Ø$ Q™i¨Ñ1°!Ñ4°Q¸¿¹»À1¹ÐE×KÑKÓMˆOà˜q™  (Ñ+¨AÑ.¨q¯u©u«w¸©{¨}Ð=ˆIÙØ�q‘ ˜(Ñ#×*Ñ*¨1¨f°yÑ.@ÔAà,;ˆF�1‰IÐ(Ñ )Ø�q‘ ˜(Ñ# AÐ&Ø �‰Eˆð Œc�&‹k‹/ð €Mrs Attention:sCaution:s!Danger!sError:sHint:s Important:sNote:sTip:sWarning!) s attentionscautionsdangerserrorshints importantsnotestipswarningcó,—djttj|d««}t j |d«}|dz }|d}d|dd||z zfz}dt j |«dzz}dt j||||¬«zS) NrFr5rurrvs%s%s s %s )Ú initindentÚ hangindent)r¹ÚmapÚbytesrxrr rÚwrap)r‚ršr~r Ú usablewidthÚhangingrÃrÄs rÚ formatoptionrÊüs¡€Ø �9‰9”SœŸ™ e¨H¡oÓ6Ó 7€DÜ× Ñ   yÑ!1Ó2€Hؘ!‘)€KØ�NÑ#€Gؘe IÑ.°¸À8Ñ9KÑ0MÐNÑN€JØœ×*Ñ*¨:Ó6¸Ñ:Ñ;€JØ Ü�‰Ø �+¨*Àô ñ ðrc ó6—|dkrd}d|dz}|ddk(rŸt|d}|ds||zd zSt|dd «t|dd j««z }||dzz}djt t j |d««}d ||ztj||||¬ «fzS|dd k(ry |ddk(r"|dz }|d |zj|d«zd zS|ddk(r0tj|dd«|dz}d||dd||fzS|ddk(�r$|d}t|ŽD� � cgc].} t| D� cgc]} tj| «‘Œc} «‘Œ0} } } d}t| «t| «zdz } d|dz}dt|«| z| d z z}|D]œ} g}t| | «D]4\}}d|tj|«z z}|j||z«Œ6dj|«}tj||||¬ «}|s!|dr|d z|zdt|| «zzd z}Œ•||d zz }Œž|S|ddk(r‘||ddz}t|dd «t|dd j««z }||dzz}djt t j |ddd««}d |tj||||¬ «fzS|}|ddk(r[|ddj!d«r|dddd|dd<n­t"j%|dd«}||j'«dzz}n{|ddk(r_|d}|t(dzz}t|«dzt(kDr|j+|«}n|j+t(«}||ddz|dd<n|ddk(r t-||«Sdjt t j |d««}tj||||¬ «d zScc} wcc} } w) z"Format a block according to width.réNrFr4rCr³r´r5r,rDs%s %s )ršrÃrÄr«rIs rŸržs %s%s %s%s r�rrrŽrrXNrUs| rqrWrkrV)rµr/r0r¹rÅrÆrxrrÇrr ÚzipryÚsumr;r:rKrMrNrOÚ _fieldwidthÚljustrÊ)r‚ršr?Ú admonitionÚhangÚ defindentr&Ú underlineÚtablerŠÚeÚwidthsÚspanr–r2Úwr›ÚpadÚtermÚ subindentrRrms rÚ formatblockrÝ sª€à �‚zØˆØ �E˜)Ñ$Ñ $€FØ ˆW�~˜Ò&Ü& uÐ-?Ñ'@ÑAˆ Ø�XŠØ˜JÑ&¨Ñ.Ð .Ü�5˜‘? 2Ñ&Ó'¬#¨e°H©o¸bÑ.A×.HÑ.HÓ.JÓ*KÑKˆà˜T D™[Ñ(ˆ Ø�y‰yœœUŸ[™[¨%°©/Ó:Ó;ˆØØ �ZÑ Ü �O‰OؘE¨iÀIô ð ñ ð ð  ˆW�~˜Ò"ØØ ˆW�~˜Ò#Ø�%‰ˆØ˜ ™×-Ñ-¨e°H©oÓ>Ñ>ÀÑFÐFØ ˆW�~˜Ò#Ü×%Ñ% e¨H¡o°aÑ&8Ó9¸EÀ,ÑÓ?ˆØØ Ü �O‰OؘE¨iÀIô ð ñ ð ð €IØ ˆW�~˜Ò"Ø �‰?˜1Ñ × (Ñ (¨Ô /ð"' x¡°Ñ!3°A°BÐ!7ˆE�(‰O˜AÒ ä—‘  h¡°Ñ 2Ó3ˆAØ §¡£¨4¡Ñ/‰IØ ˆw‰˜8Ò #Ø�F‰mˆØœ[¨4Ñ/Ñ/ˆ Ü ˆs‹8�a‰<œ+Ò %à—)‘)˜EÓ"‰Cð—)‘)œKÓ(ˆCØ  5¨¡?°1Ñ#5Ñ5ˆˆh‰˜ÒØ ˆw‰˜9Ò $ܘE 5Ó)Ð)à �9‰9”SœŸ™ e¨H¡oÓ6Ó 7€Dä�‰Ø ˜¨&¸Yô ð ñ ðùòm8ùÓNsÄ;PÅ PÅ% PÐPc óp‡‡—gŠd}gŠd„}ˆˆfd„}|D�cgc] }|ddk7sŒ |‘Œ}}t|«D�]é\}}|d}|d}|d}|dk(rY|t|d «} |d jttj |«««} ‰j d | | fz«�ní|d k(r+‰j d |dj|««z«�n½|dk(r�n¶|dk(r+‰j d|dj|««z«�n†|dk(rD|d} | |vr|| z }|j| «dz}‰j d|||d«|fz«�n=|dk(r³|d} ‰j d«| D]…} ‰j d«| D]L}‰j d«‰j ||««‰j d«‰j d«ŒN‰j«‰j d«Œ‡‰j d«�n…|dk(r^|d|«||d«}|d jttj |dd«««} ‰j d || fz«�n"|d!k(r`|djd d«\}}|d"vr |d#|«n |d$|«‰j d%|d j|g|ddz««z«n½|d&k(rZ|d|«||d'«}|d jttj |«««} ‰j d || fz«n^|d(k(rY|d|«||d)«}|d jttj |«««}‰j d ||fz«‰s�Œe‰d*\}}|t|«dz k(r&‰j d+|z«‰j«�Œ¤||dz}|d}||ks||k(s�Œ½|dd,vs�ŒÆ‰j d+|z«‰j«�Œìdj‰«Scc}w)-zFormat RST blocks as HTMLrcó.—tj|d«S)NT)rÚescapers rràzformathtml..escapems€Ü�z‰z˜!˜TÓ"Ð"rcóp•—‰r ‰dd|k7r(‰j||f«‰jd|z«yy)NrDrs<%s> )r;)r™ÚlevelÚlistnestÚouts €€rÚopenlistzformathtml..openlistps;ø€Ù˜8 B™<¨™?¨eÒ3Ø �O‰O˜U E˜NÔ +Ø �J‰J�y 5Ñ(Õ )ð4rrCr«r4r5r³r´rFs

%s %s

rBs

%s

r,rIs
%s
rŸržrs%s rr�s sss s
s
rXsdlNs
%s
%s rU)ó*rsulsols
  • %s rWrkrVrurDs sdefinition bullet field option) rarµr¹rÅrÆrxr;ÚindexÚpopr7r/)r<Ú headernestràrår=r—Úbtyperâr>rÑr&rPrÕr–r›rÛÚbulletÚheadrmr�r~r™ÚnbÚnirãräs @@rÚ formathtmlrïfsù€ð €CØ€JØ€Hò#õ*ñ  Ó ;™�A 1 W¡:°Ó#:Ša˜€FÐ ;ä˜F×#‰ˆˆQØ�'‘ ˆØ�)‘ ˆØ�(‘ ˆà �MÒ !ÙÔ 1°!Ð4FÑ2GÑ HÓIˆJÙ˜$Ÿ)™)¤C¬¯ © °UÓ$;Ó<Ó=ˆDØ �J‰JÐ3°zÀ4Ð6HÑHÖ IØ �lÒ "Ø �J‰JÐ)©F°5·:±:¸eÓ3DÓ,EÑEÖ FØ �iÒ Ù Ø �jÒ Ø �J‰JÐ-±°u·z±zÀ%Ó7HÓ0IÑIÖ JØ �jÒ Ø�,‘ˆAؘ Ñ"ؘa‘� Ø×$Ñ$ QÓ'¨!Ñ+ˆEØ �J‰JÐ)¨U±F¸5À¹8Ó4DÀeÐ,LÑLÖ MØ �hÒ Ø�h‘KˆEØ �J‰J�|Ô $Û�Ø— ‘ ˜7Ô#Û�AØ—J‘J˜wÔ'Ø—J‘J™v a›yÔ)Ø—J‘J˜xÔ(Ø—J‘J˜uÕ%ð ð —‘” Ø— ‘ ˜:Õ&ðð �J‰J�}Ö %Ø �mÒ #Ù �U˜EÔ "Ù˜% ™(Ó#ˆDÙ˜$Ÿ)™)¤C¬¯ © °U¸1¸2°YÓ$?Ó@ÓAˆDØ �J‰JÐ,°°d¨|Ñ;Ö <Ø �iÒ Ø  ™8Ÿ>™>¨$°Ó2‰LˆF�DؘÑ%Ù˜ Õ&ᘠÔ&Ø �J‰J�}¡v¨d¯i©i¸¸ÀÀqÀrÀÑ8JÓ.KÓ'LÑLÕ MØ �hÒ Ù �U˜EÔ "Ù˜˜6™Ó#ˆCÙ˜$Ÿ)™)¤C¬¯ © °UÓ$;Ó<Ó=ˆDØ �J‰JÐ,°°T¨{Ñ:Õ ;Ø �iÒ Ù �U˜EÔ "Ù˜˜9™Ó&ˆCÙ˜$Ÿ)™)¤C¬¯ © °UÓ$;Ó<Ó=ˆDØ �J‰JÐ,°°T¨{Ñ:Ô ;ó Ø# B™<‰LˆE�5Ø”c˜&“k A‘oÒ%Ø— ‘ ˜:¨Ñ-Ô.Ø— ‘ –à˜C !™G‘_�ؘ ‘]�ؘ’:ؘ%”Kؘ7™ Ð+LÓLà—J‘J˜z¨EÑ1Ô2Ø—L‘L–NðO$ðR �8‰8�C‹=ÐùòWÐrcó<‡—djˆfd„|D««}|S)Nrc3ó6•K—|]}t|‰«–—Œy­wr.©rÝ©r1r=ršs €rr3zformatblocks..Øóøèø€Ð:±6¨a”K  5×)±6ùóƒ©r¹)r<ršr&s ` rÚ formatblocksrù×sø€Ø �8‰8Ó:±6Ó:Ó :€DØ €Krcó8‡—djˆfd„|D««S)z"Format parsed blocks as plain textrc3ó6•K—|]}t|‰«–—Œy­wr.rôrõs €rr3zformatplain..Þrör÷rø)r<ršs `rÚ formatplainrüÜsø€à �8‰8Ó:±6Ó:Ó :Ð:rcó€—t|||xsg«\}}|r t||«}|dk(r t|«St||¬«S)z-Parse and format the text according to width.shtml)rš)rñÚfiltersectionsrïrü)r&ršr?r†Ústylerr<r‡s rÚformatrásG€ä˜4 ¨ª°Ó4�N€FˆFÙÜ ¨Ó0ˆØ �Òܘ&Ó!Ð!ä˜6¨Ô/Ð/rcó—g}t|«}g}d}g}g}d}|t|«k�ri||\}} } || d…=|j|«||k(s|jd|z«�r||k7r¥t|«} t|«} | r| | k7rd}g} t d| dz «D]_}||}|| k\s |||k7sŒ| jt|««||d}|j|d«|j|d «Œa| r|j| «|dd}|j | «|dzt|«krJ||dzd| kDr<|dz }|j ||d«|dzt|«kr||dzd| kDrŒ<|dz }|t|«kr�Œi|ru|j «|D]`} | D�cgc] }||d d‘Œ}}| d dz}||d }d dj||dgz«jd d «z|d<|| d|…=Œb|Scc}w)z—Select parsed blocks under the specified section The section name is separated by a dot, and matches the suffix of the full section path. rTNrFrHrrqrDr5s"%s"r r) Ú _getsectionsr/r;rJr�ÚextendÚreverser¹r$)r<rÚparentsÚsectionsrPÚ lastparentsÚ syntheticÚcollapseÚpathÚnestr=ÚllenÚplenrreÚparentÚsecÚsynÚrealÚreallines rrþrþìsc€ð €GܘFÓ#€HØ €FØ €AØ€KØ€IØ€HØ Œc�(‹mÓ Ø  ™ ‰ ˆˆd�AØ �D‘EˆNØ�‰�qÔØ �7Š?˜dŸm™m¨D°7©NÕ;ؘgÒ%ܘ;Ó'�ܘ7“|�Ù˜D DšLØ$�HØ�ܘq $¨¡(Ö+�AØ$ Q™Z�FؘD’y K°¡N°fÓ$<ØŸ™¤ V£Ô-Ø& vÑ.¨qÑ1˜ØŸ ™  c¨!¡fÔ-ØŸ ™  c¨"¡gÕ.ð ,ñØ×$Ñ$ QÔ'à!¡!˜*ˆKØ �M‰M˜!Ô ð�a‘%œ#˜h›-Ò'¨H°Q¸±U©O¸AÑ,>ÀÒ,EØ�Q‘�Ø— ‘ ˜h q™k¨!™nÔ-ð�a‘%œ#˜h›-Ò'¨H°Q¸±U©O¸AÑ,>ÀÓ,Eð ˆQ‰ˆð9 Œc�(‹mÔ ñ:Ø×ÑÔÛˆAÙ89Ó:¹°�F˜3‘K Ñ)¨!Ó,¸ˆDÐ:Ø�R‘5˜1‘9ˆDؘd‘| HÑ-ˆHØ! D§I¡I¨d°h¸q±k°]Ñ.BÓ$C×$KÑ$KØ�có%ñˆH�Q‰Kð�q˜‘t˜d�{Ñ#ðð €Mùò;sÆ+H cóh—d}d}g}d„}|D�]}|ddk(r[|d}||vr||z }|j|«dz}|d|}|d|||«fz}|jd j|«||gf«Œg|dd vrÉd }||vr||z }|j|«dz}|d|}tdt |«dz«D]U}|| }|d|krnE|d D� cgc] } | dd k(sŒ | ‘Œ} } | sŒ1| dd} |d} | | kr|dz }n| | k(sŒP|d}n|d|||«fz}|jd j|«||gf«�Œ7|sddgfg}|ddk7rÀd} |d}| t |«kry|| d d}|ddk7rQ|d}t |d«dkDr5|t |dd«t |ddj d ««z z }||k\rn| dz } | t |«krŒy| dkDr-|| d}d|dk7r|dz }|jd|gf«|dd j|«�Œ |Scc} w)z=return a list of (section path, nesting level, blocks) tuplesr©cóª—|ddk(r|d}n|dd}tj|«jd«}d|vr|jd«d}|S)NrCrWrkr5rr ó()rr¼rxr7)r=r“s rÚgetnamez_getsections..getname*s[€Ø ˆW‰:˜Ò !Ø�&‘ ‰Aà�(‘ ˜A‘ˆAÜ �N‰N˜1Ó × #Ñ # DÓ )ˆØ �1‰9Ø—‘˜“ ˜aÑ ˆA؈rrCrŸržrNr)rXrWrFrqrXrDr4rr«r5)rçr;r¹r�r/r0)r<r ÚnamesÚsecsrr=rPrârÚaÚsiblingsÚ siblingindentr?ÚpointerÚbindentrÚsindentÚblevels rrr$sè€à €DØ €EØ €DòôˆØ ˆW‰:˜Ò #Ø�,‘ˆAؘ‰}ؘ‘ �Ø—J‘J˜q“M AÑ%ˆEؘ˜�<ˆDؘ&˜5�M¡W¨Q£Z MÑ1ˆEØ �K‰K˜Ÿ™ 5Ó)¨5°1°#Ð6Õ 7Ø ˆw‰ZÐ4Ñ 4؈Aؘ‰}ؘ‘ �Ø—J‘J˜q“M AÑ%ˆEؘ˜�<ˆDܘ1œc $›i¨!™mÖ,�ؘA˜2‘h�Ø�q‘6˜E’>ÙØ'*¨1¢vÓM¡v !°°7±¸}Ó1LšA v�ÐMÚØ$,¨R¡L°Ñ$;�Mؘy™\�FØ$ vÒ-Ø ™ ˜ÙØ&¨&Ó0Ø # A¡˜Ùð-ð˜&˜5�M¡W¨Q£Z MÑ1ˆEØ �K‰K˜Ÿ™ 5Ó)¨5°1°#Ð6Ö 7áà˜a ˜ �~�Ø�‰z˜YÒ&Ø�ؘI™,�ؤ D£ Ò)Ø" G 8™n¨QÑ/°Ñ2�GؘwÑ'¨9Ò4Ø")¨)Ñ"4˜Ü˜w xÑ0Ó1°AÒ5Ø#¤s¨7°8Ñ+<¸QÑ+?Ó'@Ä3Ø '¨Ñ 1°!Ñ 4× ;Ñ ;¸DÓ AóDñ(ñ˜Gð# gÒ-Ø!ؘq‘L�Gð¤ D£ Ó)ð˜Q’;Ø! 7 (™^¨AÑ.�FؘwÑ'¨1¨W©:Ò5Ø !™ ˜Ø—K‘K  f¨bÐ 1Ô2Ø �‰H�Q‰K× Ñ ˜qÖ !ðmðn €KùòINs à H/ÃH/cóF—t|ŽD�cgc]}td„|D««‘Œ}}d|z}|djd„|D««zdz}|g}|D]˜}g}t||«D]_\} } d| vr'djd„| jd«D««} d| t j | «z z} |j | | z«Œa|j |dj|«zdz«Œš|r t|«dkDr|jd|«|j |«|Scc}w)zAGenerate an RST table for the given table data as a list of linesc3óFK—|]}tj|«–—Œy­wr.r ©r1rÖs rr3zmaketable..qsèø€Ð2±¨1”(×#Ñ# A×&±ùs‚!rFc3ó&K—|] }d|z–—Œ y­w)rNr)r1rÙs rr3zmaketable..ssèø€Ð6©v¨!˜T A�X©vùs‚r,c3ó<K—|]}|j«–—Œy­wr.)r0r#s rr3zmaketable..|sèø€ÐA±.¨Q˜aŸh™hŸj±.ùs‚rrq) rÍryr¹r7rr r;r/r¬) Údatar?ÚheaderrŠr×r’rär–r2rÙr›rÚs rÚ maketabler(ns€ô=@À¹JÓ G¹J°qŒcÑ2±Ó2Õ2¸J€FÐ GØ �F‰]€FØ �4—9‘9Ñ6©vÓ6Ó6Ñ 6¸Ñ >€Cà ˆ%€CÛˆØ ˆÜ˜ Ö$‰DˆAˆqؘ‰zð—I‘IÑA°!·'±'¸%´.ÓAÓA�ؘ!œh×/Ñ/°Ó2Ñ2Ñ3ˆCØ �H‰H�Q˜‘WÕ ð %ð � ‰ �6˜DŸI™I a›LÑ(¨5Ñ0Õ1ðñ”#�d“)˜a’-Ø � ‰ �1�cÔØ‡J�Jˆs„OØ €Jùò%Hs‹Dr.)rNN)éPrNsplainN)rF)1Ú__doc__r·Úi18nrÚrrrÚutilsrrrrrrr$r¸r6r@rSrMr^r_r`r�rgrÏrorƒr‹r rœr¡r¦r©r­r¯rÁrµrÊrÝrïrñrùrürrþrr(rrrÚr.s�ðñ ó å÷ñõ ò=ò<ò<ò<ò<ò<ð0 ˆ2�:‰:Ð&Ó '€ò ò 9ðx ˆB�J‰JÐFÓ G€ Ø ˆB�J‰JØ=ó € ð ˆ2�:‰:Ð@Ó A€Ø�— ‘ ˜8Ó$€ Ø ˆ2�:‰:�nÓ %€ò/ðd€ òò*#òL(ðVˆR�Z‰ZÐ6Ó 7€ ò5òpò2ò òò6 ó ñ:�MÓ"Ù�+“Ù�‹~Ù� ‹lÙ ˆx‹[Ù�MÓ"Ù ˆx‹[Ù ˆg‹JÙ�+“ñ Ðò òYòxZózò(ò ;ó 0ò5òpGôTr