ó
    6°h‘­  ã            
      ó¸  • S SK Jr  S SKrS SKrS SKrS SKrS SKJrJrJrJ	r	J
r
Jr  SSKJr  SSKJr  SSKJr  SSKJr  \R(                  (       a  S SKrSS	KJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'  SS
K(J)r)J*r*  S r+     S:S jr,        S;S jr- " S S5      r.S r/ " S S5      r0 " S S\05      r1 " S S\05      r2S<S jr3S<S jr4S=S jr5S>S jr6\Rn                   " S S5      5       r8        S?S jr9S r:S r;S  r<S@S! jr=S" r>SAS# jr?S$S%S&S'S(S)S*S+S,S-.	r@S. rAS/ rB      SBS0 jrC      SCS1 jrDS2 rES3 rFS4 rGSDS5 jrHS6 rIS7 rJS8 rKS9 rLg)Eé    )ÚannotationsN)ÚAnyÚCallableÚDictÚOptionalÚSequenceÚTupleé   )Ú_)ÚMatcherT)Úwdirrev)Úattr)ÚdagopÚdiffutilÚerrorÚ	formatterÚgraphmodÚmatchÚmdiffÚpatchÚpathutilÚpycompatÚrevsetÚ
revsetlangÚscmutilÚsmartsetÚ
templatekwÚ	templaterÚutil)ÚdateutilÚ
stringutilc                óü   • U R                  S5      nU(       a4   [        U5      nUS::  a  [        R                  " [        S5      5      e U$ SnU$ ! [         a     [        R                  " [        S5      5      ef = f)z0get the log limit according to option -l/--limits   limits    limit must be a positive integerr   s   limit must be positiveN)ÚgetÚintÚ
ValueErrorr   Ú
InputErrorr   )ÚoptsÚlimits     Ú6/usr/lib/python3/dist-packages/mercurial/logcmdutil.pyÚgetlimitr*   >   s„   € à�H‰H�XÓ€EÞð	KÜ˜“JˆEð �A‹:Ü×"Ò"¤1Ð%>Ó#?Ó@Ð@ð ð €Lð ˆØ€Løô ó 	KÜ×"Ò"¤1Ð%HÓ#IÓJÐJð	Kús   šA Á*A;c           
     óB  ^^^• U	(       a1  [         R                  " UR                  UR                  5       U	5      mOSmS nS nU4S jnTS:w  Ga  [        R
                  " USS9nU" U" T5      5      nTS-  mUR                  5        HF  nUR                  T5      (       a  M  U R                  [        S5      U" U" U5      5      U4-  5        MH     [        R                  " UT/SS	9n[        R                  " UU5      nUnUR                  R                  S
S5      =(       d    UR                  R                  S
S5      mUU4S jnU" UU5      nU(       a4  UR                  SSS9nT(       d  U" [        R
                  " U5      U5      nUR!                  UUUUUUU
S9$ )Nó    c                ó   ^ ^• U U4S j$ )Nc                ó    >• T" T" U 5      5      $ ©N© )ÚxÚfÚgs    €€r)   Ú<lambda>Ú2get_diff_chunks.<locals>.compose.<locals>.<lambda>a   s   ø€ ™™1˜Q›4œr,   r0   )r2   r3   s   ``r)   ÚcomposeÚ get_diff_chunks.<locals>.compose`   s	   ù€ Ý Ð r,   c                ó2   >• [         R                  " TU 5      $ r/   )Ú	posixpathÚjoin)r2   Úprefixs    €r)   ÚpathfnÚget_diff_chunks.<locals>.pathfnc   s   ø€ Ü�~Š~˜f aÓ(Ð(r,   T)Úlegacyrelativevalueó   /s(   warning: %s not inside relative root %s
s   path)ÚpatsÚdefaults   devels   all-warningss   check-relrootc                óz   >• T(       a&  U R                  T5      (       d  [        SU T4-  5      eU [        T5      S  $ )Ns%   file %s doesn't start with relroot %s)Ú
startswithÚAssertionErrorÚlen)r2   Ú	checkrootÚrelroots    €€r)   ÚrelrootpathfnÚ&get_diff_chunks.<locals>.relrootpathfn{   s@   ø€ Þ §¡¨g×!6Ñ!6Ü$Ø<ÀÀ7¸|ÑKóð ð ”S˜“\�^Ð$Ð$r,   r   F©ÚcontextÚnoprefix)r'   r<   ÚcopysourcematchÚhunksfilterfn)r   Ú	canonpathÚrootÚgetcwdr   ÚgetuipathfnÚfilesrC   Úwarnr   r   ÚmatchmodÚintersectmatchersÚuiÚ
configboolÚcopyÚdiff)rW   ÚrepoÚdiffoptsÚctx1Úctx2r   ÚchangesÚstatr;   rP   rN   rM   r6   r<   ÚuipathfnÚ	uirelrootÚ	matchrootÚrelrootmatchrH   rF   rG   s           `          @@r)   Úget_diff_chunksre   M   s‹  ú€ ö Ü×$Ò$ T§Y¡Y°·±³¸tÓD‰àˆØ€Oò!õ)ð �#„~ô ×&Ò& tÀÑFˆÙ™V G›_Ó-ˆ	Ø�4‰ˆØŸ™žˆIØ×'Ñ'¨×0Ó0Ø—‘ÜÐBÓCÙ¡ yÓ 1Ó2°IÐ>ñ?öñ 'ô —}’} T°°	À7ÑKˆÜ×*Ò*¨5°,Ó?ˆØ&ˆà—G‘G×&Ñ&Ø�oó
÷ <à�W‰W×Ñ Ð*:Ó;ð 	ö	%ñ ˜¨Ó/ˆæØ—=‘=¨°U�=Ð;ˆæÙœW×0Ò0°Ó6¸Ó?ˆFà�9‰9ØØØØØØ'Ø#ð ð ð r,   c                ó.  ^ ^• [        T UUUUUUUU
UUS9mU(       a:  UR                  SSS9nSnT R                  5       (       d  T R                  5       U	-
  nUc  T R	                  5       (       a  U=(       d    T nU(       a*  [
        R                  " [        R                  " T5      WS9/m[        R                  " [        R                  " T5      5       H  nUR                  U5        M     OÈU(       a*  [
        R                  " [        R                  " T5      WS9mO[
        R                  " S TUS	9mT R                  5       (       aO  UU 4S
 jn[        R                  " [        R                  " U" 5       5      5       H  nT R                  U5        M     OT H  u  nnT R                  UUS9  M     UR                  5       n[         R"                  " X45       H¤  u  nnUn Ub  UR$                  U   S   n[(        R*                  " UU5      nUR,                  R/                  U
U5      nU(       d6  UR1                  U5      (       d   [3        UR5                  5       5      (       d  MŽ  UR7                  T UUUUUUUS9  M¦     g! [&         a    Sn N™f = f)zshow diff or diffstat.)r_   r`   r;   rP   rN   r   FrJ   éP   N)Úwidthc                ó   • U $ r/   r0   )ÚchunksÚkwargss     r)   r4   Ú diffordiffstat.<locals>.<lambda>Æ   s   € ©r,   )r'   c               3  óF   >#   • T H  u  pTR                  XS9v •  M     g 7f)N©Úlabelrn   )Úchunkro   rj   rW   s     €€r)   ÚgenÚdiffordiffstat.<locals>.genÊ   s#   øé € Û$*‘L�EØŸ(™( 5˜(Ð6Ô6ò %+ùs   ƒ!rn   r
   )r_   r`   Úfpr;   )re   rY   ÚplainÚ	termwidthÚcanwritewithoutlabelsr   Údiffstatr   Ú	iterlinesÚfilechunkiterÚchunkbufferÚwriteÚ
diffstatuiÚ	difflabelÚcanbatchlabeledwritesÚnoder   ÚitersubreposÚsubstateÚKeyErrorrU   ÚsubdirmatcherÚwvfsÚreljoinÚexactÚanyrS   rZ   )rW   r[   r\   r]   r^   r   r_   r`   rs   Ú
graphwidthr;   rP   ÚlistsubreposrN   rh   Úoutrp   rq   ro   Únode2ÚsubpathÚsubÚ	tempnode2ÚsubmatchÚ	subprefixrj   s   `                        @r)   Údiffordiffstatr‘   •   s@  ù€ ô$ Ø
ØØØØØØØØØØ#ñ€Fö Ø—=‘=¨°U�=Ð;ˆØˆØ�x‰x�z‰zØ—L‘L“N ZÑ/ˆEà	�~˜×1Ñ1×3Ñ3Ø�h�BˆÞÜ—n’n¤T§^¢^°FÓ%;À5ÑIÐJˆFÜ×'Ò'¬×(8Ò(8¸Ó(@ÖAˆEØ�I‰I�eÖò Bö Ü×%Ò%¤d§n¢n°VÓ&<ÀEÑJ‰Fä—_’_Ù/°¸hñˆFð ×#Ñ#×%Ñ%ö7ô ×+Ò+¬D×,<Ò,<¹S»UÓ,CÖD�Ø—‘˜–ò Eó !'‘��uØ—‘˜ e�Ó,ñ !'ð �I‰I‹K€EÜ×,Ò,¨TÖ8‰ˆ�Øˆ	ð	ØÑ Ø ŸM™M¨'Ñ2°1Ñ5�	ô ×)Ò)¨'°5Ó9ˆØ—I‘I×%Ñ% f¨gÓ6ˆ	Þ˜5Ÿ;™; w×/Ñ/´3°x·~±~Ó7G×3HÓ3HØ�H‰HØØØØØØØØ ð ó 	ò 9øô
 ó 	ð ŠIð		ús   Ç%JÊJÊJc                  ó8   • \ rS rSrSrS rS rS	S jrS
S jrSr	g)Úchangesetdifferéî   zBGenerate diff of changeset with pre-configured filtering functionsc                óJ   • [         R                  " UR                  5       5      $ r/   )r   Úmatchallr[   ©ÚselfÚctxs     r)   Ú_makefilematcherÚ changesetdiffer._makefilematcherñ   s   € Ü×Ò §¡£
Ó+Ð+r,   c                ó   • g r/   r0   r—   s     r)   Ú_makehunksfilterÚ changesetdiffer._makehunksfilterô   s   € Ør,   c                ó¦   • [        UUR                  5       U[        R                  " U5      UU R	                  U5      UUU R                  U5      S9	  g )N)r   r`   rˆ   rN   )r‘   r[   r   Údiff_parentrš   r�   )r˜   rW   r™   r\   rˆ   r`   s         r)   ÚshowdiffÚchangesetdiffer.showdiff÷   sL   € ÜØØ�H‰H‹JØÜ× Ò  Ó%ØØ×'Ñ'¨Ó,ØØ!Ø×/Ñ/°Ó4ó
	
r,   c                ó>  • [        UUR                  5       U[        R                  " U5      UU R	                  U5      UU R                  U5      S9n/ n[        R                  " [        R                  " U5      5       H  u  pxpšUR                  UUU	U
S.5        M     U$ )N)r   r`   rN   )ó   names	   additionss   removalss   binary)re   r[   r   r    rš   r�   r   Údiffstatdatar   rx   Úappend)r˜   rW   r™   r\   r`   rj   ÚdiffdataÚfilenameÚ	additionsÚremovalsÚbinarys              r)   ÚgetdiffstatsÚchangesetdiffer.getdiffstats  sž   € Ü ØØ�H‰H‹JØÜ× Ò  Ó%ØØ×'Ñ'¨Ó,ØØ×/Ñ/°Ó4ñ	
ˆð ˆÜ5:×5GÒ5GÜ�NŠN˜6Ó"ö6
Ñ1ˆH ð �O‰Oà%Ø"+Ø!)Ø%ñ	öñ6
ð ˆr,   r0   N)r   F©F)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rš   r�   r¡   r¬   Ú__static_attributes__r0   r,   r)   r“   r“   î   s   † ÙLò,òô
÷r,   r“   c                ó<  • SSU R                  5       -  /nU R                  5       (       a  UR                  S5        U R                  5       (       a<  UR                  S5        U R	                  5        H  nUR                  SU-  5        M     SR                  U5      $ )Ns   log.changesets   changeset.%ss   changeset.obsoletes   changeset.unstables   instability.%só    )ÚphasestrÚobsoleter¦   Ú
isunstableÚinstabilitiesr:   )r™   ÚlabelsÚinstabilitys      r)   Úchangesetlabelsr½      s}   € Ø °#·,±,³.Ñ @ÐA€FØ
‡|�|‡~�~Ø�‰Ð+Ô,Ø
‡~�~×ÑØ�‰Ð+Ô,Ø×,Ñ,Ö.ˆKØ�M‰MÐ+¨kÑ9Ö:ñ /à�9‰9�VÓÐr,   c                  óT   • \ rS rSrSrSS jrS rS rSS jrS r	S	 r
S
 rSS jrSrg)Úchangesetprinteri+  z9show changeset information when templating not requested.Nc                óv  • Xl         X l        XPl        U=(       d
    [        5       U l        [
        R                  " X5      U l        U=(       a    UR                  S5      U l	        U=(       a    UR                  S5      U l
        0 U l        0 U l        S U l        S U l        [        R                   " 5       U l        g )Ns   stats   patch)rW   r[   Úbufferedr“   Ú_differr   ÚdiffalloptsÚ	_diffoptsr#   Ú_includestatÚ_includediffÚheaderÚhunkÚ
lastheaderÚfooterr   ÚgetlogcolumnsÚ_columns)r˜   rW   r[   Údifferr\   rÁ   s         r)   Ú__init__Úchangesetprinter.__init__.  sŠ   € ØŒØŒ	Ø ŒØ×2¤Ó!2ˆŒÜ×*Ò*¨2Ó8ˆŒØ$×>¨¯©°gÓ)>ˆÔØ$×?¨¯©°hÓ)?ˆÔØˆŒØˆŒ	ØˆŒØˆŒÜ"×0Ò0Ó2ˆ�r,   c                ód  • UR                  5       nX R                  ;   aL  U R                  U   nX0R                  :w  a!  X0l        U R                  R	                  U5        U R                  U	 X R
                  ;   a6  U R                  R	                  U R
                  U   5        U R
                  U	 g g r/   )ÚrevrÇ   rÉ   rW   r{   rÈ   )r˜   r™   rÑ   Úhs       r)   ÚflushÚchangesetprinter.flush<  s‚   € Ø�g‰g‹iˆØ—+‘+ÓØ—‘˜CÑ ˆAØ—O‘OÓ#Ø"#”Ø—‘—‘˜aÔ Ø—‘˜CÐ Ø—)‘)ÓØ�G‰G�M‰M˜$Ÿ)™) C™.Ô)Ø—	‘	˜#‘ð r,   c                ór   • U R                   (       a&  U R                  R                  U R                   5        g g r/   )rÊ   rW   r{   ©r˜   s    r)   ÚcloseÚchangesetprinter.closeH  s"   € Ø�;�;Ø�G‰G�M‰M˜$Ÿ+™+Õ&ð r,   c                ó8  • [         R                  " U5      nU R                  (       aa  U R                  R	                  SS9  U R                  XU5        U R                  R                  5       U R                  UR                  5       '   g U R                  XU5        g )NT)Úlabeled)	r   ÚbyteskwargsrÁ   rW   Ú
pushbufferÚ_showÚ	popbufferrÈ   rÑ   )r˜   r™   ÚcopiesÚpropss       r)   ÚshowÚchangesetprinter.showL  sk   € Ü×$Ò$ UÓ+ˆØ�=�=Ø�G‰G×Ñ tÐÑ,Ø�J‰J�s EÔ*Ø#'§7¡7×#4Ñ#4Ó#6ˆD�I‰I�c—g‘g“iÒ à�J‰J�s EÕ*r,   c                ó¼  • UR                  5       nUR                  SS5      nU R                  R                  (       a2  U R                  R	                  S[
        R                  " U5      -  SS9  gU R                  nU R                  R	                  US   [
        R                  " U5      -  [        U5      S9  UR                  5       nUS:w  a   U R                  R	                  US	   U-  S
S9  U R                  R                  R                  5        Hd  u  p‰US:X  a  M  U	R                  U R                  U5       H7  n
U R                  R	                  U	R                  U
-  SU	R                  -  S9  M9     Mf     U R                  R                  (       a.  U R                  R	                  US   UR!                  5       -  SS9  [
        R"                  " U R                  U5       HJ  nSUR!                  5       -  nU R                  R	                  US   [
        R                  " U5      -  US9  ML     U R                  R                  (       až  UR%                  5       nUc'  U R                  R&                  R(                  n[*        nO%U R                  R,                  R/                  U5      nU R                  R	                  US   [
        R0                  " U R                  Xí5      -  SS9  U R                  R	                  US   UR3                  5       -  SS9  U R                  R	                  US   [4        R6                  " UR9                  5       5      -  SS9  UR;                  5       (       a@  UR=                  5       nU R                  R	                  US   SR?                  U5      -  SS9  O&URA                  5       (       a  U RC                  U5        U RE                  U5        U R                  R                  (       a~  [G        / SQURI                  5       URK                  5       URM                  5       /5       H>  u  nnU(       d  M  U R                  R	                  UU   SR?                  U5      -  SS9  M@     OmURO                  5       (       aX  U R                  RP                  (       a=  U R                  R	                  US   SR?                  URO                  5       5      -  SS9  U(       a_  U R                  RP                  (       aD  U Vs/ s H  nSU-  PM
     nnU R                  R	                  US    SR?                  U5      -  S!S9  URS                  5       nU(       at  U R                  R                  (       aY  [U        UR                  5       5       H<  u  nnU R                  R	                  US"   U[V        RX                  " U5      4-  S#S9  M>     UR[                  5       R]                  5       nU(       a¨  U R                  RP                  (       aY  U R                  R	                  [_        S$5      S%S9  U R                  R	                  US%S9  U R                  R	                  S&5        O4U R                  R	                  US'   [V        R`                  " U5      -  S(S9  U R                  R	                  S)5        U Rc                  X5        gs  snf )*ú(show a single changeset or file revisionó
   graphwidthr   s   %s
s   log.nodern   Nó	   changesets   defaultó   branchs
   log.branchs   branchess   log.%ss   phases	   log.phases   log.parent changeset.%só   parentó   manifests   ui.debug log.manifestó   users   log.useró   dates   log.dates   instabilitys   , s   log.instability)ó   filess   files+s   files-r¶   s   ui.debug log.filesrì   s   ui.note log.filess   %s (%s)ó   copiess   ui.note log.copiesó   extras   ui.debug log.extras   description:
s   ui.note log.descriptions   

s   summarys   log.summaryó   
)2r   r#   rW   Úquietr{   r   ÚformatchangeidrÌ   r½   Úbranchr[   ÚnamesÚitemsÚlogfmtÚ	colornameÚ	debugflagr·   ÚmeaningfulparentsÚmanifestnodeÚnodeconstantsÚwdiridr   ÚmanifestlogrÑ   ÚformatrevnodeÚuserr    ÚdatestrÚdater¹   rº   r:   r¸   Ú_showobsfateÚ_exthookÚzipÚfilesmodifiedÚ
filesaddedÚfilesremovedrS   ÚverboseÚextraÚsortedr!   Ú	escapestrÚdescriptionÚstripr   Ú	firstlineÚ
_showpatch)r˜   r™   rß   rà   Ú
changenoderˆ   Úcolumnsrò   ÚnsnameÚnsÚnameÚpctxro   ÚmnodeÚmrevrº   ÚkeyÚvalueÚcr  r  s                        r)   rÝ   Úchangesetprinter._showU  sh  € à—X‘X“Zˆ
Ø—Y‘Y˜}¨aÓ0ˆ
à�7‰7�=�=Ø�G‰G�M‰MØœ'×0Ò0°Ó5Ñ5¸[ð ñ ð à—-‘-ˆØ�‰�‰Ø�LÑ!¤G×$:Ò$:¸3Ó$?Ñ?Ü! #Ó&ð 	ñ 	
ð —‘“ˆà�ZÓØ�G‰G�M‰M˜' )Ñ,¨vÑ5¸]ˆMÑKàŸ)™)Ÿ/™/×/Ñ/Ö1‰JˆFð ˜Ó$Ùð Ÿ™ §¡¨JÖ7�Ø—‘—‘˜bŸi™i¨$Ñ.°iÀ"Ç,Á,Ñ6N�ÓOó 8ñ 2ð �7‰7××Ø�G‰G�M‰MØ˜Ñ! C§L¡L£NÑ2¸,ð ñ ô ×-Ò-¨d¯i©i¸Ö=ˆDØ.°·±³Ñ@ˆEØ�G‰G�M‰MØ˜	Ñ"¤W×%;Ò%;¸DÓ%AÑAÈð ó ñ >ð �7‰7××Ø×$Ñ$Ó&ˆEØ‰}ØŸ	™	×/Ñ/×6Ñ6�Ü‘à—y‘y×,Ñ,×0Ñ0°Ó7�Ø�G‰G�M‰MØ˜Ñ$Ü×'Ò'¨¯©°Ó=ñ>à.ð ñ ð
 	�‰�‰�g˜gÑ&¨¯©«Ñ3¸;ˆÑGØ�‰�‰Ø�GÑœx×/Ò/°·±³
Ó;Ñ;À;ð 	ñ 	
ð �>‰>×ÑØ×-Ñ-Ó/ˆMØ�G‰G�M‰MØ˜Ñ'¨%¯*©*°]Ó*CÑCØ(ð ò ð
 �\‰\�^‰^Ø×Ñ˜cÔ"à�‰�cÔà�7‰7××Ü!Ú0Ø×"Ñ"Ó$ c§n¡nÓ&6¸×8HÑ8HÓ8JÐKö‘
��U÷ �5Ø—G‘G—M‘MØ ™ t§y¡y°Ó'7Ñ7Ø3ð "ó òð �Y‰Y�[‰[˜TŸW™WŸ_Ÿ_Ø�G‰G�M‰MØ˜Ñ! D§I¡I¨c¯i©i«kÓ$:Ñ:Ø*ð ñ ö �d—g‘g—o—oÙ.4Ó5ªf¨�j 1”n©fˆFÐ5Ø�G‰G�M‰MØ˜	Ñ" T§Y¡Y¨vÓ%6Ñ6Ø+ð ñ ð
 —	‘	“ˆÞ�T—W‘W×&×&Ü$ U§[¡[£]Ö3‘
��UØ—‘—‘Ø˜HÑ%¨¬j×.BÒ.BÀ5Ó.IÐ(JÑJØ/ð ó ñ 4ð —o‘oÓ'×-Ñ-Ó/ˆÞØ�w‰w��Ø—‘—‘ÜÐ'Ó(Ð0Jð ñ ð —‘—‘˜kÐ1K�ÑLØ—‘—‘˜gÕ&à—‘—‘Ø˜JÑ'¬*×*>Ò*>¸{Ó*KÑKØ(ð ñ ð 	�‰�‰�eÔà�‰˜Õ(ùò; 6s   Ô[c                ó˜  • [         R                  " U R                  R                  U R                  5      n[         R                  " U R                  R                  S[
        R                  US9nUR                  SU05      R                  5       nU(       a4  U H-  nU R                  R                  U R                  S   U-  SS9  M/     g g )Ns   {join(obsfate, "
")}©ÚdefaultsÚ	resourcesó   ctxs   obsoletes   log.obsfatern   )r   Útemplateresourcesr[   rW   Úmaketemplaterr   ÚkeywordsÚrenderdefaultÚ
splitlinesr{   rÌ   )r˜   r™   ÚtresÚtÚobsfateÚobsfatelines         r)   r  Úchangesetprinter._showobsfateÌ  s¢   € ä×*Ò*¨4¯9©9¯<©<¸¿¹ÓCˆÜ×#Ò#Ø�I‰I�L‰LØ$Ü×(Ñ(Øñ	
ˆð —/‘/ 6¨3 -Ó0×;Ñ;Ó=ˆæÛ&�Ø—‘—‘Ø—M‘M +Ñ.°Ñ<Ø(ð ó ò  'ð r,   c                ó   • g)z.empty method used by extension as a hook pointNr0   r—   s     r)   r  Úchangesetprinter._exthookÞ  s   � r,   c                óþ  • U R                   (       a0  U R                  R                  U R                  XR                  USS9  U R                   (       a,  U R
                  (       a  U R                  R                  S5        U R
                  (       a0  U R                  R                  U R                  XR                  USS9  U R                   (       d  U R
                  (       a  U R                  R                  S5        g g )NT©r`   rï   F)rÅ   rÂ   r¡   rW   rÄ   rÆ   r{   )r˜   r™   rˆ   s      r)   r  Úchangesetprinter._showpatchá  s¯   € Ø××Ø�L‰L×!Ñ!Ø—‘˜Ÿn™n¨j¸tð "ñ ð ×× ×!2×!2Ø�G‰G�M‰M˜%Ô Ø××Ø�L‰L×!Ñ!Ø—‘˜Ÿn™n¨j¸uð "ñ ð ×× × 1× 1Ø�G‰G�M‰M˜%Õ ð !2r,   )rÌ   rÂ   rÄ   rÆ   rÅ   rÁ   rÊ   rÇ   rÈ   rÉ   r[   rW   ©NNFr/   )r   )r¯   r°   r±   r²   r³   rÎ   rÓ   r×   rá   rÝ   r  r  r  r´   r0   r,   r)   r¿   r¿   +  s/   † ÙCô3ò
ò'ô+òu)ònò$=÷!r,   r¿   c                  ó0   • \ rS rSrSr SS jrS rS rSrg)	Úchangesetformatterið  z1Format changeset information by generic formatterNc                ór   • [         R                  XX$XV5        [        R                  " XSS9U l        X0l        g )NT)Úgit)r¿   rÎ   r   ÚdifffeatureoptsrÄ   Ú_fm)r˜   rW   r[   ÚfmrÍ   r\   rÁ   s          r)   rÎ   Úchangesetformatter.__init__ó  s/   € ô 	×!Ñ! $¨D¸(ÔMÜ×.Ò.¨rÀÑFˆŒØ�r,   c                ó8   • U R                   R                  5         g r/   )r5  ÚendrÖ   s    r)   r×   Úchangesetformatter.closeú  s   € Ø�‰�‰�r,   c                ó	  • U R                   nUR                  5         UR                  US9  UR                  [        R
                  " U5      UR                  [        R                  " U5      5      S9  UR                  5       nU R                  R                  (       a  U(       d  gUR                  UR                  5       UR                  5       UR                  5       UR                  UR                  5       5      UR!                  5       UR#                  UR%                  5       SS9UR#                  UR'                  5       SS9UR#                  UR)                  5        Vs/ s H!  odR                  UR+                  5       5      PM#     snSS9S9  U R                  R,                  (       d  S	U;   aS  UR                  UR                  UR/                  5       =(       d     U R0                  R2                  R4                  5      S
9  U R                  R,                  (       d  SU;   a,  UR                  UR7                  UR9                  5       5      S9  U R                  R,                  (       d  SU;   d  SU;   d  SU;   ae  UR                  UR#                  UR;                  5       SS9UR#                  UR=                  5       SS9UR#                  UR?                  5       SS9S9  U R                  R,                  (       + =(       a    U R                  R@                  nU(       d  SU;   a+  UR                  UR#                  URC                  5       SS9S9  U(       a  U(       d  SU;   a'  UR                  UR7                  U=(       d    0 SSS9S9  U RD                  (       d  SU;   aL  U RF                  RI                  U R                  XRJ                  SS9nUR                  UR#                  USS9S9  U RL                  (       d  SU;   aq  U R                  RO                  5         U RF                  RQ                  U R                  XRJ                  SS9  UR                  U R                  RS                  5       S9  ggs  snf ) rä   )r™   )rÑ   r   Nó   bookmark)r  s   tags   node)rò   Úphaserþ   r   ÚdescÚ	bookmarksÚtagsÚparentsré   )Úmanifestrî   )r  s   modifieds   addedó   removeds   file)ÚmodifiedÚaddedÚremovedrì   )rS   rí   r¤   s   source)r  r  ©rß   s   diffstatTr-  )rw   s   diffF)rZ   )*r5  Ú	startitemrK   Údatar   ÚintrevÚhexfuncÚbinnodeÚdatahintrW   rð   rò   r·   rþ   Ú
formatdater   r  Ú
formatlistr?  r@  rA  r   r÷   rù   r[   rú   rû   Ú
formatdictr  r  r  r  r  rS   rÅ   rÂ   r¬   rÄ   rÆ   rÜ   r¡   rÞ   )	r˜   r™   rß   rà   r6  rM  r  r  rI  s	            r)   rÝ   Úchangesetformatter._showý  sY  € à�X‰XˆØ
�‰ŒØ
�
‰
�sˆ
ÑØ
�‰”G—N’N 3Ó'¨b¯j©j¼¿ºÈÓ9MÓ.NˆÑOà—;‘;“=ˆØ�7‰7�=�=¦Øà
�‰Ø—:‘:“<Ø—,‘,“.Ø—‘“Ø—‘˜sŸx™x›zÓ*Ø—‘Ó"Ø—m‘m C§M¡M£O¸+�mÐFØ—‘˜sŸx™x›z°�Ð7Ø—M‘MØ/2¯{©{¬}Ó=ª}¨!—‘˜AŸF™F›HÖ%©}Ñ=ÀGð "ð ð 	ñ 	
ð �7‰7×× ¨xÓ 7Ø�G‰GØŸ™Ø×$Ñ$Ó&×H¨$¯)©)×*AÑ*A×*HÑ*Hóð ñ ð
 �7‰7×× ¨HÓ 4Ø�G‰G˜"Ÿ-™-¨¯	©	«Ó4ˆGÑ5ð �G‰G××Ø˜hÓ&Ø˜8Ó#Ø˜XÓ%à�G‰GØŸ™ s×'8Ñ'8Ó':À˜ÐIØ—m‘m C§N¡NÓ$4¸7�mÐCØŸ™ c×&6Ñ&6Ó&8¸w˜ÐGð ñ ð —g‘g×'Ñ'Ô'×;¨D¯G©G¯O©OˆÞ�h (Ó*Ø�G‰G˜"Ÿ-™-¨¯	©	«¸'˜-ÐBˆGÑCÞ–v ¨hÓ!6Ø�G‰GØ—}‘} V§\¨r°wÀi�}ÐPð ñ ð ×× ¨xÓ 7Ø—<‘<×,Ñ,Ø—‘˜Ÿn™n°4ð -ð ˆDð �G‰G˜RŸ]™]¨4°k˜]ÐBˆGÑCØ×× ¨8Ó 3Ø�G‰G×ÑÔ Ø�L‰L×!Ñ! $§'¡'¨3·±ÀUÐ!ÑKØ�G‰G˜Ÿ™×*Ñ*Ó,ˆGÒ-ð !4ùòM >s   Å"(Q<)rÄ   r5  r/  )	r¯   r°   r±   r²   r³   rÎ   r×   rÝ   r´   r0   r,   r)   r1  r1  ð  s   † Ù;ð BGôòõ=.r,   r1  c                  ó^   ^ • \ rS rSr% SrS\S'   S\S'   S\S'    SS	 jrU 4S
 jrS rSr	U =r
$ )Úchangesettemplateri=  a  format changeset information.

Note: there are a variety of convenience functions to build a
changesettemplater for common cases. See functions such as:
maketemplater, changesetdisplayer, buildcommittemplate, or other
functions that use changesest_templater.
zformatter.templateresourcesÚ_tresourceszOptional[bytes]rÉ   ztemplater.templaterr&  c                óp  • [         R                  XX$XV5        [        R                  " X5      =U l        n[        R
                  " UU[        R                  U[        R                  S9U l	        [        R                  " 5       U l        UR                  U l        SSSSUR                  UR                  SSSSSS0U l        UR                   (       a“  SU R"                  R$                  S	4U R"                  R&                  S
4U R"                  R(                  S4/nU HD  u  pšU R                   H/  nXº-   nU	(       d  M  XÀR                  ;   d  M!  XÀR                  U'   M1     MF     OwU R                  R+                  5        Vs/ s H  oÝUR                  :w  d  M  UPM     nn[        R,                  " X0R                  U5      nU R                  R/                  U5        U R                  S   (       aC  U R"                  R1                  U R                  R3                  U R                  S   0 5      5        g g s  snf )N)r  r  Úcacheó   headerr,   ó   footers	   docheaderó	   docfooteró	   separator)Tr,   s   _verboses   _quiets   _debug)r¿   rÎ   r   r   rT  Úloadtemplaterr   r"  Údefaulttemplr&  Ú	itertoolsÚcountÚ_counterÚrefÚ_trefÚ_partsÚmapfilerW   r  rð   r÷   ÚkeysÚtemplatepartsmapÚupdater{   Úrender)r˜   rW   r[   ÚtmplspecrÍ   r\   rÁ   r%  Ú	tmplmodesÚmodeÚpostfixr&  ÚcurÚpÚ	partnamesÚms                   r)   rÎ   Úchangesettemplater.__init__L  s¾  € ô 	×!Ñ! $¨D¸(ÔMä"+×"=Ò"=¸bÓ"GÐGˆÔ˜4Ü×(Ò(ØØÜ×(Ñ(ØÜ×)Ñ)ñ
ˆŒô "ŸšÓ)ˆŒà—\‘\ˆŒ
à�sØ�sØ�L‰L˜(Ÿ,™,Ø˜#Ø˜#Ø˜#ð
ˆŒð ××ð Ø—‘—‘ +Ð.Ø—‘—‘ 	Ð*Ø—‘×"Ñ" IÐ.ð	ˆIó "+‘�ØŸœ�AØ™+�Cß�t §v¡v¥Ø),Ÿ™ A›ó %ò "+ð %)§K¡K×$4Ñ$4Ô$6ÓLÒ$6˜q¸x¿|¹|Ñ:KŸÑ$6ˆIÐLÜ×*Ò*¨8·V±V¸YÓGˆAØ�K‰K×Ñ˜qÔ!à�;‰;�|×$Ø�G‰G�M‰M˜$Ÿ&™&Ÿ-™-¨¯©°LÑ(AÀ2ÓFÕGð %ùò	 Ms   Æ H3ÆH3c                óð   >• U R                   S   (       aT  U R                  (       d  SU l        U =R                  U R                  R                  U R                   S   0 5      -  sl        [        TU ]  5       $ )NrY  r,   )rb  rÊ   r&  rg  Úsuperr×   )r˜   Ú	__class__s    €r)   r×   Úchangesettemplater.closez  sO   ø€ Ø�;‰;�|×$Ø—;—;Ø!�”Ø�KŠK˜4Ÿ6™6Ÿ=™=¨¯©°\Ñ)BÀBÓGÑG�KÜ‰w‰}‹Ðr,   c                ó
  • UR                  5       nXS'   [        U R                  5      =US'   nSU0US'   UR                  SS5      nU R                  S   (       aH  US:”  aB  U R
                  R                  U R                  R                  U R                  S   0 5      5        U R                  S   (       aˆ  U R                  R                  U R                  S   U5      nU R                  (       a  X`R                  UR                  5       '   O1U R                  U:w  a!  X`l        U R
                  R                  U5        U R                  U R                     nU R
                  R                  U R                  R                  Xs5      5        U R                  U5        U R                  X5        U R                  S	   (       aA  U R                   (       d/  U R                  R                  U R                  S	   U5      U l        g
g
g
)rä   r  s   indexrí   s   revcacherå   r   rZ  rW  rX  N)rY   Únextr_  r#   rb  rW   r{   r&  rg  rÁ   rÇ   rÑ   rÉ   ra  r  r  rÊ   )r˜   r™   rß   rà   Úindexrˆ   rÒ   r  s           r)   rÝ   Úchangesettemplater._show�  sp  € à—
‘
“ˆØˆf‰Ü"& t§}¡}Ó"5Ð5ˆˆh‰˜%Ø'¨Ð0ˆˆkÑØ—Y‘Y˜}¨aÓ0ˆ
ð
 �;‰;�|×$¨°«Ø�G‰G�M‰M˜$Ÿ&™&Ÿ-™-¨¯©°LÑ(AÀ2ÓFÔGð �;‰;�y×!Ø—‘—‘˜dŸk™k¨)Ñ4°eÓ<ˆAØ�}�}Ø)*—‘˜CŸG™G›IÒ&à—?‘? aÓ'Ø&'”OØ—G‘G—M‘M !Ô$ð �k‰k˜$Ÿ*™*Ñ%ˆØ�‰�‰�d—f‘f—m‘m CÓ/Ô0Ø�‰�cÔØ�‰˜Ô(à�;‰;�y×!Ø—;—;Ø"Ÿf™fŸm™m¨D¯K©K¸	Ñ,BÀEÓJ�•ð ð "r,   )r_  rb  ra  rT  rÊ   rÉ   r&  r/  )r¯   r°   r±   r²   r³   Ú__annotations__rÎ   r×   rÝ   r´   Ú__classcell__)rs  s   @r)   rS  rS  =  s;   ø‡ ñð -Ó,ØÓØÓð
 HMô,Hõ\÷ Kð  Kr,   rS  c                óŠ   • U (       a	  U(       a   eU(       a  [         R                  " SU5      $ [         R                  " U 5      $ )Nræ   )r   Úmapfile_templatespecÚliteral_templatespec)Útmplrc  s     r)   Útemplatespecr  ¤  s4   € ÞžÐ!Ð!ÞÜ×-Ò-¨l¸GÓDÐDä×-Ò-¨dÓ3Ð3r,   c                óB  • U(       dp  U(       di  U R                  SS5      nU(       a*  [        R                  " [        R                  " U5      5      $ [
        R                  " U R                  SS5      5      nU(       dŠ  U(       aƒ  UnSn[        R                  R                  U5      S   (       dA  [        R                  " SU-   5      =(       d    [        R                  " U5      u  pTU(       a  Un[        R                  " SX45      $ [        R                  " U SU5      $ )	ziFind the template matching the given template spec or style

See formatter.lookuptemplate() for details.
ó   command-templatesó   logs   uió   styleNr   s   map-cmdline.ræ   )Úconfigr   r}  r   Úunquotestringr   Ú
expandpathÚosÚpathÚsplitÚtry_open_templater|  Úlookuptemplate)rW   r~  Ústylerc  rs   Úmapnames         r)   Ú_lookuptemplaterŽ  ¬  sØ   € ö žØ�y‰yÐ-¨vÓ6ˆÞÜ×1Ò1´)×2IÒ2IÈ$Ó2OÓPÐPä—O’O B§I¡I¨e°XÓ$>Ó?ˆEæ–EØˆØˆÜ�w‰w�}‰}˜WÓ% a×(Ü%×7Ò7Ø 'Ñ)ó÷ 6ä×,Ò,¨WÓ5ñ ˆWö Ø!�Ü×-Ò-¨l¸GÓHÐHä×#Ò# B¨°dÓ;Ð;r,   c                óB   • [         R                  " U5      n[        XXCS9$ )zGCreate a changesettemplater from a literal template 'tmpl'
byte-string.)rÁ   )r   r}  rS  )rW   r[   r~  rÁ   Úspecs        r)   r!  r!  È  s!   € ô ×)Ò)¨$Ó/€DÜ˜b¨Ñ@Ð@r,   c                óT  • X2U4n[        XR                  S5      UR                  S5      5      nUR                  S;   a  U R                  SU5      n[	        XU/UQ76 $ UR                  (       d.  UR
                  (       d  UR                  (       d  [        X/UQ76 $ [        XU/UQ76 $ )a?  show one changeset using template or regular display.

Display format will be the first non-empty hit of:
1. option 'template'
2. option 'style'
3. [command-templates] setting 'log'
4. [ui] setting 'style'
If all of these values are either the unset or the empty string,
regular display via changesetprinter() is done.
s   templaterƒ  >   ó   cboró   jsonr‚  )	rŽ  r#   r`  r   r1  r~  rc  r¿   rS  )rW   r[   r'   rÍ   rÁ   Úpostargsr�  r6  s           r)   Úchangesetdisplayerr•  Ï  s’   € ð ˜hÐ'€HÜ˜2Ÿx™x¨Ó4°d·h±h¸xÓ6HÓI€Dð
 ‡x�xÐ%Ó%Ø�\‰\˜& $Ó'ˆÜ! "¨BÐ:°Ò:Ð:à�8�8˜DŸIŸI¨d¯l¯lÜ Ð4¨8Ò4Ð4ä˜b¨Ð8¨xÒ8Ð8r,   c                  ó>  • \ rS rSrSr\R                  " 5       r\R                  " 5       r\R                  " 5       r	\R                  " \R                  " \5      S9r\R                  " \R                  " \5      S9r\R                  " SS9r\R                  " \R                  " \5      S9r\R                  " SS9r\R                  " SS9r\R                  " \R                  " \5      S9r\R                  " \R                  " \5      S9r\R                  " \R                  " \5      S9r\R                  " \R                  " \5      S9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9rSrg)	Úwalkoptsiê  z_Options to configure a set of revisions and file matcher factory
to scan revision/file history
)rA   NFr   Tr0   )r¯   r°   r±   r²   r³   r   Úibr@   r'   ÚrevspecÚFactoryÚlistr?  Úbranchesr   r"  Ú	no_mergesÚonly_mergesÚprune_ancestorsÚusersÚinclude_patsÚexclude_patsÚfollowÚforce_changelog_traversalÚfilter_revisions_by_patsÚsort_revisionsr(   r´   r0   r,   r)   r—  r—  ê  sM  † ñð
 �7Š7‹9€DØ�7Š7‹9€Dð �gŠg‹i€Gð —’ §¢¨TÓ 2Ñ3€IØ�wŠw˜tŸ|š|¨DÓ1Ñ2€HØ�7Š7˜4Ñ €DØ�wŠw˜tŸ|š|¨DÓ1Ñ2€HØ—’ Ñ&€IØ—'’' %Ñ(€KØ—g’g d§l¢l°4Ó&8Ñ9€OØ�GŠG˜DŸLšL¨Ó.Ñ/€Eð —7’7 4§<¢<°Ó#5Ñ6€LØ—7’7 4§<¢<°Ó#5Ñ6€Lð �WŠW˜QÑ€Fð !%§¢°Ñ 6Ðð  $Ÿwšw¨tÑ4Ðð —W’W TÑ*€Nð �GŠG˜DÑ!ƒEr,   r—  c           
     ó2  • UR                  S5      (       a  SnOUR                  S5      (       a  SnOSnUR                  S5      (       a  U R                  SS5      (       a  S	nOS
nOSn[        S*0 SU_SU_SUR                  S/ 5      _SUR                  S/ 5      _SUR                  S/ 5      UR                  S/ 5      -   _SUR                  S5      _SUR                  S/ 5      _S[        UR                  S5      5      _S[        UR                  S5      5      _SUR                  S/ 5      _SUR                  S / 5      _S!UR                  S"/ 5      _S#UR                  S$/ 5      _S%U_S&[        UR                  S'5      5      _S(U_S)[	        U5      _6$ )+zoParse log command options into walkopts

The returned walkopts will be passed in to getrevs() or makewalker().
s   follow_firstr
   s   followé   r   ó   graphó   experimentals   log.topoó   topoó   descNr@   r'   r™  s   revr?  r<  rœ  rç   s   only_branchr   rë   r"  ó   keywordr�  ó	   no_mergesrž  ó   only_mergesrŸ  ó   pruner   rê   r¡  s   includer¢  s   excluder£  r¤  rC  r¦  r(   r0   )r#   rX   r—  Úboolr*   )rW   r@   r'   r£  r¦  s        r)   Ú	parseoptsr²    s²  € ð ‡x�x�× Ñ Ø‰Ø	�‰�)×	Ñ	Ø‰àˆà‡x�x�×ÑØ�=‰=˜¨+×6Ñ6Ø$‰Nà$‰Nàˆäò Ùðáðð —‘˜ Ô$ðð —(‘(˜;¨Ô+ð	ð —‘˜) RÓ(¨4¯8©8°NÀBÓ+GÒGðð �X‰X�gÔðð —‘˜* bÔ)ðô �t—x‘x Ó-Ô.ðô ˜Ÿ™ .Ó1Ô2ðð Ÿ™ ¨2Ô.ðð �h‰h�w Ô#ðð —X‘X˜j¨"Ô-ðð —X‘X˜j¨"Ô-ðñ  ð!ô" #' t§x¡x°
Ó';Ô"<ð#ñ$ &ð%ô& �tŒnð'ð r,   c                ó  • U S   n[         R                  " X2R                  UR                  5      u  pEUR	                  5       =(       d(    UR                  5       (       + =(       a    UR                  nU(       Gd	  UR                  (       aÌ  UR                  (       a»  [        UR                  5       5      n[        U5      nUn	U H^  n
U	(       d    OVX
   nU	 HH  nXË;   a  UR                  U5        M  UR                  U5      (       d  M3  UR                  U5        SnUn	MJ     M`     U H*  nXÈ;   d  M
  [        R                  " [!        S5      U-  5      e   OôUR                  (       a°  UR                  5        H›  nXÃ;  aY  ["        R$                  R'                  U R)                  U5      5      (       a  SnM?  [        R                  " [!        S5      U-  5      eU R+                  U5      nU(       a  M{  [        R                  " [!        S5      U-  5      e   O3UR                  5        H  nU R+                  U5      nU(       a  M  SnM!     U(       a1  UR                  5        H  nU(       a  XàR,                  ;   d  M    O   SnXEU4$ )aF  Build matcher and expanded patterns from log options

If --follow, revs are the revisions to follow from.

Returns (match, pats, slowpath) where
- match: a matcher built from the given pats and -I/-X opts
- pats: patterns used (globs are expanded on Windows)
- slowpath: True if patterns aren't as simple as scanning filelogs
NTs>   cannot follow file not in any of the specified revisions: "%s"ó/   cannot follow file not in parent revision: "%s"s$   cannot follow nonexistent file: "%s"F)r   Úmatchandpatsr@   r'   ÚanypatsÚalwaysr¤  r£  r™  r›  rS   ÚsetÚdiscardÚhasdirr   Ú
StateErrorr   r‡  rˆ  ÚexistsÚwjoinÚfileÚstore)r[   ÚrevsÚwoptsÚwctxr   r@   ÚslowpathÚ	all_filesÚmissing_filesrS   Úrr™   r2   Úfilelogrˆ  s                  r)   Ú_makematcherrÈ  G  s!  € ð �‰:€DÜ×&Ò& t¯Z©Z¸¿¹ÓD�K€EØ�}‰}‹÷ Ø�L‰L‹NÔ×>˜u×>Ñ>ð ÷ Ø�<�<˜EŸMŸMô ˜UŸ[™[›]Ó+ˆIÜ 	›NˆMØˆEÛ�ÞáØ‘g�Û�AØ“xØ%×-Ñ-¨aÖ0ØŸ™ AŸ›ð &×-Ñ-¨aÔ0Ø#'˜à -šó ñ ó �ØÕ%Ü×*Ò*Üð/óð ñ	óð ò ð �\�\Ø—[‘[–]�Ø“=ô —w‘w—~‘~ d§j¡j°£m×4Ñ4Ø#'˜Ù ä#×.Ò.Üð!2óð  ñ	 óð ð Ÿ)™) A›,�ß�wô  ×*Ò*ÜÐAÓBÀQÑFóð ò' #ð. —[‘[–]�ØŸ)™) A›,�ß�wð  $’Hñ #ö ØŸ™ž�Þ˜t§z¡zÕ1Ùñ &ð !�à˜Ð Ð r,   c                óÚ   ^ ^^^^	• / m	U H2  nT U   mT	R                  U4S jTR                  U5       5       5        M4     0 mUU 4S jnUU	U4S jn[        R                  " U" 5       SS9U4$ )Nc              3  óJ   >#   • U  H  nTU   R                  5       v •  M     g 7fr/   )Úintrofilectx)Ú.0r2   r™   s     €r)   Ú	<genexpr>Ú!_fileancestors.<locals>.<genexpr>«  s!   øé € ÐD²O¨q�S˜‘V×(Ñ(×*Ð*²Oùs   ƒ #c                óz   >• [         R                  " TTR                  [         R                  " U 5      / 5      5      $ r/   )r   Ú
matchfilesr#   rJ  )r™   Úfcacher[   s    €€r)   ÚfilematcherÚ#_fileancestors.<locals>.filematcher´  s*   ø€ Ü×!Ò! $¨¯
©
´7·>²>À#Ó3FÈÓ(KÓLÐLr,   c               3  ó¢   >#   • [         R                  " TTS9 H,  u  pU Vs/ s H  o"R                  5       PM     snTU '   U v •  M.     g s  snf 7f)N©Úfollowfirst)r   Úfilectxancestorsrˆ  )rÑ   Úcsr  rÑ  ÚfctxsrÖ  s      €€€r)   ÚrevgenÚ_fileancestors.<locals>.revgen·  sD   øé € Ü×-Ò-¨eÀÔM‰GˆCÙ-/Ó0ªR¨Ÿ6™6ž8©RÑ0ˆF�3‰KØŒIò NùÚ0ùs   ƒA¢A
»AF)Úiterasc)ÚextendÚwalkr   Úgeneratorset)
r[   rÀ  r   rÖ  rÆ  rÒ  rÚ  r™   rÑ  rÙ  s
   `  `   @@@r)   Ú_fileancestorsrà  §  sc   ü€ Ø€EÛˆØ�1‰gˆØ�‰ÔD°C·H±H¸U´OÓDÖDñ ð €FöM÷ô
 × Ò ¡£°5Ñ9¸;ÐFÐFr,   c                ó   • g)zDhook for extensions to override the filematcher for non-follow casesNr0   )r[   r@   r'   s      r)   Ú_makenofollowfilematcherrâ  ¿  s   € àr,   c                óÂ   •  [         R                  " XX#5      $ ! [        R                   a1  n[        R                  " UR
                  S   UR                  S9eSnAff = f)z¤Resolves user-provided revset(s) into a single revision.

This just wraps the lower-level scmutil.revsingle() in order to raise an
exception indicating user error.
r   ©ÚhintN)r   Ú	revsingler   ÚRepoLookupErrorr&   Úargsrå  )r[   r™  rA   Ú
localaliasÚes        r)   ræ  ræ  Ä  sO   € ð7Ü× Ò  °ÓDÐDøÜ× Ñ ó 7Ü×Ò˜qŸv™v a™y¨q¯v©vÑ6Ð6ûð7úó   ‚ ™A­,AÁAc                óÀ   •  [         R                  " X5      $ ! [        R                   a1  n[        R                  " UR
                  S   UR                  S9eSnAff = f)zžResolves user-provided revset(s) into two revisions.

This just wraps the lower-level scmutil.revpair() in order to raise an
exception indicating user error.
r   rä  N)r   Úrevpairr   rç  r&   rè  rå  )r[   rÀ  rê  s      r)   rí  rí  Ð  sK   € ð7Ü�Š˜tÓ*Ð*øÜ× Ñ ó 7Ü×Ò˜qŸv™v a™y¨q¯v©vÑ6Ð6ûð7ús   ‚ ˜A¬,AÁAc                óÂ   •  [         R                  " XU5      $ ! [        R                   a1  n[        R                  " UR
                  S   UR                  S9eSnAff = f)zŒResolves user-provided revset(s).

This just wraps the lower-level scmutil.revrange() in order to raise an
exception indicating user error.
r   rä  N)r   Úrevranger   rç  r&   rè  rå  )r[   Úspecsré  rê  s       r)   rï  rï  Ü  sO   € ð7Ü×Ò ¨ZÓ8Ð8øÜ× Ñ ó 7Ü×Ò˜qŸv™v a™y¨q¯v©vÑ6Ð6ûð7úrë  )s   not merge()N)s   merge()N)Ns   _matchfiles(%ps))s   date(%s)N)s
   branch(%s)ó   %lr)s   filelog(%s)rñ  )s   keyword(%s)rñ  )s   ancestors(%s)s   not %lr)s   user(%s)rñ  )	r®  r¯  ó   _matchfilesrë   rç   ó   _patslogr­  r°  rê   c                óœ  • UR                    Vs/ s H  nSU R                  U5      -   PM     snUR                  UR                  UR                  UR
                  UR                  UR                   Vs/ s H  nSU-   PM
     snS.nUR                  (       a…  U(       a~  SS/nUR                   H  nUR                  SU-   5        M     UR                   H  nUR                  SU-   5        M     UR                   H  nUR                  SU-   5        M     XeS'   O:UR                  (       a)  UR                  (       d  [        UR                  5      US	'   / n[        UR!                  5       5       H¹  u  pšU
(       d  M  ["        U	   u  p¼U(       a  S
U;  a  UR                  U5        M9  U(       d'  UR                  [$        R&                  " Xº5      5        Mg  U(       a&  U
 Vs/ s H  n[$        R&                  " X´5      PM     n
nUR                  [$        R&                  " XÊ5      5        M»     UR(                  (       aU  UR                  [$        R&                  " SUR(                   Vs/ s H  n[*        R,                  " U5      PM     sn5      5        U(       a  SSR/                  U5      -   S-   nU$ SnU$ s  snf s  snf s  snf s  snf )z?Return a revset string built from log options and file patternss   literal:)rç   rë   r­  r®  r¯  r°  rê   s   r:s	   d:relpaths   p:s   i:s   x:rò  ró  ó   %rñ  ó   (s    and ó   )N)rœ  Úlookupbranchr   r"  r�  rž  rŸ  r   r¥  r@   r¦   r¡  r¢  r£  r›  r	  rô   Ú_opt2logrevsetr   Ú
formatspecr?  r   Úformat_bookmark_revspecr:   )r[   rÁ  rÃ  ÚbÚvr'   Ú	matchargsrm  ÚexprÚopÚvalÚrevopÚlistops                r)   Ú_makerevsetr  õ  sB  € ð AFÇÂÓOÂ¸1�K $×"3Ñ"3°AÓ"6Ô6ÁÑOØ—‘Ø—N‘NØ—o‘oØ×)Ñ)Ø×'Ñ'Ø+0¯;ª;Ó7ª; a�+ ”/©;Ñ7ñ€Dð ×%×%®(ð ˜LÐ)ˆ	Ø—”ˆAØ×Ñ˜U Q™YÖ'ñ à×#Ô#ˆAØ×Ñ˜U Q™YÖ'ñ $à×#Ô#ˆAØ×Ñ˜U Q™YÖ'ñ $à(ˆ^ÒØ	×	'×	'°··Ü  §¡Ó,ˆˆ[Ñà€DÜ˜$Ÿ*™*›,Ö'‰ˆÞÙÜ& rÑ*‰ˆÞ�T Ó&Ø�K‰K˜ÖÞØ�K‰Kœ
×-Ò-¨eÓ9Ö:æÙ@CÓDÂ¸1”z×,Ò,¨UÖ6Á�ÐDØ�K‰Kœ
×-Ò-¨fÓ:Ö;ñ (ð ‡‡Ø�‰Ü×!Ò!ØØ=B¿_º_ÓMº_¸”×0Ò0°Ö3¹_ÑMóô	
ö Ø�h—m‘m DÓ)Ñ)¨DÑ0ˆð €Kð ˆØ€Kùòk Pùò 8ùò@ Eùò Ns   �J:Á4J?Ç% KÉ+ K	c                óŠ  • UR                   (       a  [        XR                   5      nU$ UR                  (       a?  U R                  R	                  5       U R
                  :X  a  [        R                  " 5       nU$ UR                  (       a  U R                  S5      nU$ [        R                  " U 5      nUR                  5         U$ )z>Return the initial set of revisions to be filtered or followedó   .)r™  rï  r£  ÚdirstateÚp1Únullidr   ÚbasesetrÀ  ÚspansetÚreverse)r[   rÁ  rÀ  s      r)   Ú_initialrevsr  0  s‘   € à‡}‡}Ü˜Ÿm™mÓ,ˆð €Kð 
��˜$Ÿ-™-×*Ñ*Ó,°·±Ó;Ü×ÒÓ!ˆð €Kð 
��Ø�y‰y˜‹ˆð €Kô ×Ò Ó%ˆØ�‰ŒØ€Kr,   c                ób  ^• [        X5      nU(       d  [        R                  " 5       S4$ [        XU5      u  mp4[        R
                  " XS9nSnUR                  (       a|  U(       d  TR                  5       (       a#  [        R                  " XUR                  S:H  S9nO-UR                  (       a   e[        XTUR                  S:H  S9u  p%UR                  5         Uc   [        XR                  UR                  5      nUc  U4S jn[!        XU5      nUR"                  (       a¹  UR"                  S;   d   eUR"                  S:X  a^  UR%                  5       (       dH  [        R&                  " X R(                  R*                  5      n[,        R                  " [/        U5      SS	9nO9UR1                  5       (       d$  UR%                  5       (       d  UR3                  SS
9  U(       a  [,        R4                  " SU5      nU" X5      nUR6                  b  UR9                  SUR6                  5      nX%4$ )z¯Build (revs, makefilematcher) to scan revision/file history

- revs is the smartset to be traversed.
- makefilematcher is a function to map ctx to a matcher for that revision
N)r@   r
   rÕ  c                ó   >• T$ r/   r0   )r™   r   s    €r)   rÒ  Úmakewalker.<locals>.filematcher\  s   ø€ ØˆLr,   >   r¬  r«  r«  T)Úistopo©r  r   )r  r   r
  rÈ  r   Úevolver£  r·  r   Úrevancestorsr¤  rà  r  râ  r@   r'   r  r¦  r  ÚtoposortÚ	changelogÚ
parentrevsr   r›  ÚisdescendingÚsortr   r(   Úslice)	r[   rÁ  rÀ  r@   rÃ  rÒ  rÿ  Úmatcherr   s	           @r)   Ú
makewalkerr  >  s²  ø€ ô ˜Ó$€DÞÜ×ÒÓ! 4Ð'Ð'ä(¨°UÓ;Ñ€Eˆ4Ü�KŠK˜Ñ)€Eà€KØ‡|‡|Þ�u—|‘|—~‘~Ü×%Ò% d¸e¿l¹lÈaÑ>OÑP‰Dà×6×6Ð6Ð6Ü .Ø˜E¨u¯|©|¸qÑ/@ñ!ÑˆDð 	�‰ŒØÑÜ.¨t·Z±ZÀÇÁÓLˆØÑõ	ô �t HÓ-€DØ××Ø×#Ñ#Ð'9Ó9Ð9Ð9Ø×Ñ 7Ó*Ø—;‘;—=‘=Ü—~’~ d¯N©N×,EÑ,EÓF�ä—~’~¤d¨4£j¸Ñ>�øØ×#Ñ#×%Ñ%¨¯©¯©à�I‰I˜dˆIÑ#ÞÜ—,’,˜t TÓ*ˆÙ�tÓ"ˆØ‡{�{ÑØ�z‰z˜!˜UŸ[™[Ó)ˆàÐÐr,   c                óX   • [        X5      u  p#U(       d  US4$ [        5       nX4l        X$4$ )znReturn (revs, differ) where revs is a smartset

differ is a changesetdiffer with pre-configured file matcher.
N)r  r“   rš   )r[   rÁ  rÀ  rÒ  rÍ   s        r)   Úgetrevsr  s  s4   € ô # 4Ó/Ñ€DÞØ�TˆzÐÜÓ€FØ)ÔØˆ<Ðr,   c                ó  • / nUR                  S/ 5       H‡  n UR                  SS5      u  p4 [        [        UR                  S5      5      u  pV[        S5      U-  n[        R                  " U SX75      nUR                  U[        R                  " XV5      45        M‰     U$ ! [         a#    [        R                  " [        S5      U-  5      ef = f! [         a#    [        R                  " [        S5      U-  5      ef = f)	zZParse --line-range log option and return a list of tuples (filename,
(fromline, toline)).
s
   line_rangeó   ,r
   s"   malformatted line-range pattern %só   :s   invalid line range for %ss3   line range pattern '%s' must match exactly one fileN)r#   Úrsplitr%   r   r&   r   Úmapr$   r‰  r   Úparsefollowlinespatternr¦   r   Úprocesslinerange)	r[   r'   ÚlinerangebyfnameÚpatÚ	linerangeÚfromlineÚtolineÚmsgÚfnames	            r)   Ú_parselinerangeoptr-  ƒ  s  € ð ÐØ�x‰x˜ rÖ*ˆð	Ø ŸZ™Z¨¨aÓ0‰NˆCð
	JÜ"¤3¨	¯©¸Ó(=Ó>ÑˆHô ÐFÓGÈ#ÑMˆÜ×/Ò/°°d¸CÓEˆØ×ÑØ”D×)Ò)¨(Ó;Ð<ö	
ñ +ð  Ðøô ó 	Ü×"Ò"ÜÐ7Ó8¸3Ñ>óð ð	ûô ó 	JÜ×"Ò"¤1Ð%AÓ#BÀSÑ#HÓIÐIð	Jús   ™B"®!CÂ"-CÃ-C?c                óF  ^ ^^• T S   n0 m[        T U5       H¿  u  nu  pVXC;  a"  [        R                  " [        S5      U-  5      eUR	                  U5      n[
        R                  " XuU5       Hd  u  pxUR                  5       n	U	c  [        n	X‘;  a  M%  TR                  U	0 5      R                  UR                  5       / 5      R                  U5        Mf     MÁ     S mUU4S jn
UU 4S jn[        TSS9n[        5       nX½l        X­l        [         R"                  " U5      U4$ )zîReturn (revs, differ).

"revs" are revisions obtained by processing "line-range" log options and
walking block ancestors of each specified file/line-range.

"differ" is a changesetdiffer with pre-configured file matcher and hunks
filter.
Nr´  c                ó   • U$ r/   r0   )ÚfctxÚhunkss     r)   ÚnofilterhunksfnÚ)getlinerangerevs.<locals>.nofilterhunksfn¸  s   € Øˆr,   c                ój   >^• TR                  [        R                  " U 5      5      mTc  T$ U4S jnU$ )Nc              3  óà   >^#   • TR                  U R                  5       5      nUb:  U H3  u  mnTc  TU4v •  M  [        U4S jU 5       5      (       d  M-  TU4v •  M5     g U S h  v•N   g  N7f)Nc              3  óX   >#   • U  H  n[         R                  " TS S U5      v •  M!     g7f)r¨  N)r   Úhunkinrange)rÌ  ÚlrÚhrs     €r)   rÍ  ÚJgetlinerangerevs.<locals>.hunksfilter.<locals>.filterfn.<locals>.<genexpr>Ç  s'   øé € ÐNÂ:¸Rœ5×,Ò,¨R°°¨V°R×8Ð8Â:ùs   ƒ'*)r#   rˆ  r‡   )r0  r1  Ú
linerangesÚlinesr9  Úfctxlinerangess       @€r)   ÚfilterfnÚ7getlinerangerevs.<locals>.hunksfilter.<locals>.filterfnÀ  sf   ùé € Ø'×+Ñ+¨D¯I©I«KÓ8ˆJØÑ%Û!&‘I�B˜Ø‘zØ  %˜išÙ ÜÔNÁ:ÓN×NÓNØ  %˜iœò "'ð !× Ó ùs   „AA.ÁA.Á&A,Á'A.)r#   r   rJ  )r™   r>  r=  Úlinerangesbyrevr2  s     @€€r)   ÚhunksfilterÚ%getlinerangerevs.<locals>.hunksfilter»  s4   ù€ Ø(×,Ñ,¬W¯^ª^¸CÓ-@ÓAˆØÑ!Ø"Ð"õ
	!ð ˆr,   c                ó�   >• [        TR                  [        R                  " U 5      / 5      5      n[        R                  " TU5      $ r/   )r›  r#   r   rJ  rÐ  )r™   rS   r@  r[   s     €€r)   rÒ  Ú%getlinerangerevs.<locals>.filematcherÎ  s6   ø€ Ü�_×(Ñ(¬¯ª¸Ó)<¸bÓAÓBˆÜ×!Ò! $¨Ó.Ð.r,   Tr  )r-  r   r»  r   Úfilectxr   ÚblockancestorsÚintrorevr   Ú
setdefaultrˆ  r¦   r	  r“   rš   r�   r   r
  )r[   Úuserrevsr'   rÂ  r,  r)  r*  r0  r(  rÑ   rA  rÒ  rÀ  rÍ   r@  r2  s   `             @@r)   ÚgetlinerangerevsrJ  ›  s  ú€ ð �‰:€Dð €OÜ%7¸¸dÖ%CÑ!ˆÑ!�ØÓÜ×"Ò"ÜÐDÓEÈÑMóð ð �|‰|˜EÓ"ˆÜ$×3Ò3°DÀFÖK‰OˆDØ—-‘-“/ˆCØ‰{Ü�ØÓ"ÙØ×&Ñ& s¨BÓ/×:Ñ:Ø—	‘	“˜Róç‰f�YÖó  Lñ &Dò öö&/ô �/¨4Ñ0€DäÓ€FØ)ÔØ)ÔÜ×Ò˜DÓ! 6Ð)Ð)r,   c                óJ  ^• U R                  SS5      nU(       d  [        R                  $ [        R                  " U5      n[        U[        5      (       a  UR                  nO[        R                  " U 5      n[        R                  " X[        R                  US9mU4S jnU$ )Nr�  s	   graphnoder  c                ó.   >• XS.nTR                  U5      $ )N)r  s   repo)r#  )r[   r™   rV  rà   Útempls       €r)   Ú
formatnodeÚ'_graphnodeformatter.<locals>.formatnodeé  s   ø€ ØÑ,ˆØ×"Ñ" 5Ó)Ð)r,   )r„  r   Úgetgraphnoder   r…  Ú
isinstancerS  rT  r   r   r!  r"  )rW   Ú	displayerr�  r%  rN  rM  s        @r)   Ú_graphnodeformatterrS  Ú  s†   ø€ Ø�9‰9Ð)¨<Ó8€DÞÜ×&Ñ&Ð&ä×"Ò" 4Ó(€DÜ�)Ô/×0Ñ0à×$Ñ$‰ä×*Ò*¨2Ó.ˆÜ×#Ò#Ø
œ:×.Ñ.¸$ñ€Eõ*ð Ðr,   c           
     ó
  • U=(       d    0 n[        X5      n[        R                  " 5       nUR                  n	U R	                  S5      (       a&  U	R                  [        R                  U	S5      5        O‰[        R                  [        R                  [        R                  S.n
U
R                  5        H.  u  p¼U R                  SSU-  Xœ   5      Xœ'   Xœ   (       a  M*  S Xœ'   M0     U R                  SS5      Ul        0 nU Hï  u  pïnnU" UUU5      nU(       a  U" U5      OS nU" UUXŽU5      n[        U5      nUS   nUR                   " U4UUS.["        R$                  " U5      D6  UR&                  R)                  U5      R+                  S	5      nUS
   (       d  US
	 UR-                  U5        [.        R0                  " U/U5       H$  u  nnnn[        R2                  " XUUUU5        / nM&     Mñ     UR5                  5         g )Nr©  ó   |)rè   s   grandparents   missingrª  s   graphstyle.%ss   graphshortenr¨  )rß   rˆ   rï   éÿÿÿÿ)rS  r   Ú
asciistateÚstylesrt   rf  ÚdictÚfromkeysÚPARENTÚGRANDPARENTÚMISSINGPARENTrô   r„  rX   Úgraphshortenrv  rá   r   Ú	strkwargsrÈ   Úpopr‰  rÓ   r]  ÚchainÚasciir×   )rW   r[   ÚdagrR  ÚedgefnÚ	getcopiesrà   rN  ÚstaterX  Ú	edgetypesr  r  Úformatnode_cacherÑ   Útyper™   rA  Úcharrß   ÚedgesÚ	firstedgerh   r<  Úcoldatas                            r)   Údisplaygraphrn  ð  sÑ  € Ø�K�R€EÜ$ RÓ3€JÜ×ÒÓ!€EØ�\‰\€Fð 
‡x�x�×Ñà�‰”d—m‘m F¨DÓ1Õ2ô  —‘Ü$×0Ñ0Ü ×.Ñ.ñ
ˆ	ð
 #Ÿ™Ö*‰IˆDàŸ)™)ØÐ!1°DÑ!8¸&¹+óˆF‰Kð —;‘;Ø"�“ñ +ð  Ÿ]™]¨?¸OÓLˆÔàÐÛ#&Ñˆ�3˜Ù˜$ Ð%5Ó6ˆÞ#,‘˜3”°$ˆÙ�t˜T 5¨wÓ7ˆÜ˜“Kˆ	Ø˜!‘ˆØ�ŠØð	
Ø¨5ñ	
Ü4<×4FÒ4FÀuÓ4Mò	
ð —‘×"Ñ" 3Ó'×-Ñ-¨eÓ4ˆØ�R�yØ�b�	Ø�‰˜ÔÜ*3¯/ª/¸9¸+ÀuÖ*MÑ&ˆD�$˜˜wÜ�NŠN˜2 d¨D°%¸ÔAØŠEó +Nñ $'ð  ‡O�OÕr,   c                óh   • [         R                  " X5      n[        XXS[         R                  U5        g r/   )r   Ú	dagwalkerrn  Ú
asciiedges)rW   r[   rÀ  rR  Ú
getrenamedÚrevdags         r)   Údisplaygraphrevsrt    s&   € Ü×Ò Ó+€FÜ�˜6¬h×.AÑ.AÀ:ÕNr,   c                ó    • U H8  nX   nU(       a  U" U5      OS nUR                  XgS9  UR                  U5        M:     UR                  5         g )NrG  )rá   rÓ   r×   )rW   r[   rÀ  rR  re  rÑ   r™   rß   s           r)   Údisplayrevsrv  $  sF   € ÛˆØ‰iˆÞ#,‘˜3”°$ˆØ�‰�sˆÑ*Ø�‰˜Öñ	 ð
 ‡O�OÕr,   c                óš   • S HE  nX!;   d  M
  X   (       d  M  [         R                  " [        S5      UR                  SS5      -  5      e   g )N)s   newest_firsts+   -G/--graph option is incompatible with --%só   _ó   -)r   r&   r   Úreplace)r@   r'   r   s      r)   Úcheckunsupportedgraphflagsr{  -  sF   € ÛˆØ�:˜$Ÿ(™(Ü×"Ò"ÜÐ@ÓAØ—*‘*˜T 4Ó(ñ)óð ò  r,   c                ót   • [        U5      nUR                  5         Ub  US U n[        R                  " X5      $ r/   )r*   r  r   Únodes)r[   r}  r'   r(   s       r)   Ú	graphrevsr~  6  s4   € Ü�T‹N€EØ	‡M�M„OØÑØ�f�u�ˆÜ�>Š>˜$Ó&Ð&r,   )NFr,   r,   N)NFNr   r,   r,   FN)Úreturnzformatter.templatespecr®   )NF)rW   r   r@   zSequence[bytes]r'   zDict[bytes, Any]r  r—  )r  Nr/   )r[   r   rÁ  r—  r  zETuple[smartset.abstractsmartset, Optional[Callable[[Any], MatcherT]]])r[   r   rÁ  r—  r  z;Tuple[smartset.abstractsmartset, Optional[changesetdiffer]])NN)MÚ
__future__r   r]  r‡  r9   Útypingr   r   r   r   r   r	   Úi18nr   Úinterfaces.typesr   r   r   Ú
thirdpartyr   ÚTYPE_CHECKINGÚ r   r   r   r   r   r   rU   r   r   r   r   r   r   r   r   r   r   r   Úutilsr    r!   r*   re   r‘   r“   r½   r¿   r1  rS  r  rŽ  r!  r•  Úsr—  r²  rÈ  rà  râ  ræ  rí  rï  rù  r  r  r  r  r-  rJ  rS  rn  rt  rv  r{  r~  r0   r,   r)   Ú<module>r‰     sô  ðõ #ã Û 	Û Û ÷÷ õ õõ å ð 
××ã÷÷ ÷ ÷ õ ÷&òð, Ø	ØØ	ØôEð^ Ø	ØØØØ	ØØôV÷r/ñ /òd÷B!ñ B!ôJJ.Ð)ô J.ôZdKÐ)ô dKôN4ô<ô8Aô9ð6 ‡�÷*"ð *"ó ð*"ðZ,Øð,à
ð,ð ð,ð ô	,ò^]!ò@Gò0ô
	7ò	7ô	7ð )Ø&Ø/Ø Ø&Ø)Ø(Ø,Ø"ñ
€ò8òvð2Ø
ð2àð2ð Kô2ðjØ
ðàðð Aôò ò0<*ò~ô,,ò^Oò
òó'r,   