
    6h(H                    F   S SK Jr  S SKrSSKJr  SSKJrJr  SSKJ	r	   S SK
r
0 SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS\
R                  S4_SS\
R                  S4_SS\
R                  S4_SS\
R                  S4_S S\
R                  S4_S!S\
R                   S4_S"S\
R"                  S4_S#S\
R$                  S40Er0 SS _SS$_SS%_SS&_SS'_S S(_S!S)_S"S*_S#S+_SS_SS,_SS-_SS._SS/_S0S1_S2S3_S4S5_S6S7S8S9S:S;.Er0 S<S=_S>S_S?S _S@S"_SAS!_SBS!_SCS!_SDSE_SFS=_SGS_SHS_SISJ_SKS_SLS_SMS#_SNS_SOSP_0 SQS_SRS_SSST_SUS=_SVSE_SWS!_SXS_SYSZ_S[S_S\S_S]S^_S_S_S`S_SaS_SbS_ScS_SdS_E0 SeS_SfS_SgS_ShS_SiS_SjS_SkS_SlS_SmS=_SnS_SoS_SpS_SqS_SrS_SsS_StS!_SuS"_E0 SvS_SwS_SxS _SyS=_SzSE_S{S=_S|S"_S}SE_S~S_SSE_SS_SS_SS_SSJ_SS_SS=_SS_ESSJS"SSS.ErS rS rS rS rS rS rS rS rS r S r!\RD                  " S5      r#S r$S r%Sr&\RN                  (       Gag  S SK(r(\(RR                  RT                  r+\(RX                  r-Sr. " S S\(R^                  5      r0 " S S\(R^                  5      r1 " S S\(R^                  5      r2Sr3Sr4Sr5S/r6S-r7Sr8Sr9S&r:Sr;Sr<Sr=Sr>0 SS_SS _S\7_S\6_S\7\6-  _S \5_S!\5\7-  _S"\5\6-  _S#\7\6-  \5-  _S\8_S0S_S2\;_S4\:_S\;\:-  _S\9_S\9\;-  _S\9\:-  _\;\:-  \9-  \<\>\=S.Er&\8\<\>\=1r?\+R                  \35      rA\Ab  \A\.:X  a  Sr&Og\2" 5       rB\+R                  \A\(R                  " \B5      5      (       d  Sr&O6\BR                  rF\RD                  " S\R                  \R                  -  5      rIS rJgg! \\4 a    Sr
0 r GNf = f)    )annotationsN   )_)encodingpycompat)
stringutil   none)Ts   sgr0    s   standout)Ts   smsor
   	   underline)Ts   smulr
   s   reverse)Ts   revr
      inverse   blink)Tr   r
      dim)Tr   r
      bold)Tr   r
   s	   invisible)Ts   invisr
   s   italic)Ts   sitmr
   s   blackFr
   s   reds   greens   yellows   blues   magentas   cyans   white          !   "   #   $   %               s   black_background(   s   red_background)   s   green_background*   +   ,   -   .   /   )   yellow_background   blue_background   purple_background   cyan_background   white_backgrounds
   grep.matchs   red bolds   grep.linenumbers   grep.revs   grep.seps   grep.filenames	   grep.users	   grep.dates   grep.inserteds
   green bolds   grep.deleteds   bookmarks.actives   branches.actives   branches.closeds
   black bolds   branches.currents   branches.inactives   diff.changeds   diff.deleteds   diff.deleted.changeds   red bold underlines   diff.deleted.unchangeds   diff.difflines   diff.extendeds	   cyan bolds   diff.file_as   diff.file_bs	   diff.hunks   diff.inserteds   diff.inserted.changeds   green bold underlines   diff.inserted.unchangeds   diff.tabs   diff.trailingwhitespaces   bold red_backgrounds   changeset.publics   changeset.drafts   changeset.secrets   diffstat.deleteds   diffstat.inserteds!   formatvariant.name.mismatchconfigs"   formatvariant.name.mismatchdefaults   formatvariant.name.uptodates!   formatvariant.repo.mismatchconfigs"   formatvariant.repo.mismatchdefaults   formatvariant.repo.uptodates   formatvariant.config.specials   formatvariant.config.defaults   formatvariant.defaults   histedit.remainings   ui.addremove.addeds   ui.addremove.removeds   ui.errors	   ui.prompts   log.changesets   patchbomb.finalsummarys   patchbomb.froms   patchbomb.tos   patchbomb.subjects   patchbomb.diffstatss   rebase.rebaseds   rebase.remainings   resolve.resolveds   resolve.unresolveds
   shelve.ages   shelve.newests   shelve.names	   blue bolds   status.addeds   status.cleans   status.copieds   status.deleteds   cyan bold underlines   status.ignoreds   status.modifieds   status.removeds   status.unknowns   magenta bold underline)s   tags.normals
   tags.locals"   upgrade-repo.requirement.preserveds   upgrade-repo.requirement.addeds    upgrade-repo.requirement.removedc                .    [         R                  U5        g N)_defaultstylesupdate)uiextname
colortables      1/usr/lib/python3/dist-packages/mercurial/color.pyloadcolortabler1      s    *%r
   c                4   [         c  gUS;  a  gU R                  R                  [        5        U R	                  S5       Hz  u  p4UR                  S5      (       a!  S[        U5      S4nXPR                  USS '   M<  UR                  S5      (       d  MT  S	SUR                  S
S5      4nXPR                  USS '   M|      [         R                  " 5         U R                  R                  5       R                  5        Hm  u  nu  pgnU(       d  M  U(       a  M  [         R                  " [        R                  " U5      5      (       a  ML  U R!                  SU-  5        U R                  U	 Mo     [         R                  " S5      (       a  [         R                  " S5      (       dB  US:X  a!  U(       a  U R#                  [%        S5      5        U R                  R                  5         gg! [         R                   a    U R                  R                  5          gf = f)zDInitialize terminfo data and the terminal if we're in terminfo mode.N)   auto   terminfo   color   color.Fr
      	   terminfo.Ts   \E   	   s   no terminfo entry for %s
setafsetabr4   s>   no terminfo entry for setab/setaf: reverting to ECMA-48 color
)curses_terminfoparamsr,   _baseterminfoparamsconfigitems
startswithintreplace	setuptermerrorclearcopyitemstigetstrr   sysstrdebugwarnr   )	r-   mode	formattedkeyvalnewvalbecs	            r0   _terminfosetuprU      s    ~))12NN8,>>)$$SXs+F*0s12w'^^L))CVW!=>F*0s12w' -
 ,,11399;YaAq);<< HH2Q67""3' < ??7##6??7+C+C ;9GG' 	  " ,D << 
  "s   ?G& &.HHc                Z    [        U 5      nXl        U(       a  US:w  a  [        U 5        ggg)zconfigure color on a ui

That function both set the colormode for the ui object and read
the configuration looking for custom colors and effect definitions.   debugN)
_modesetup
_colormodeconfigstyles)r-   rM   s     r0   setupr[      s+    
 b>DM R !tr
   c                >  ^ ^^^ T R                  S5      (       a  g T R                  SS5      nUS:X  a  gUS:H  nSnU(       d<  [        R                  " U5      (       a!  T R	                  SS5      S:X  d  US:X  a  SnOSnU(       d  U(       d  g U=(       d9    [
        R                  R                  S	5      S
:g  =(       a    T R                  5       mT R                  SS5      m[        T SS5      (       a  T R                  SST5      mTm[        R                  (       aT  SSKJn  TS:X  a&  [        (       a  UR                  5       (       a  SmO-SmO*TS:X  a  [        (       a  UR                  5         OTS:X  a  SmUUUU 4S jnTS:X  a.  T R                   R#                  5         [        (       d  U" 5         g OPTS:X  a  T R                   R#                  5         O/TS:X  a(  [%        T TT5        T R                   (       d	  U" 5         SmOg U(       d  U(       a	  T(       a  T$ g )Nr5   s   uirW   r3   Fs   --colors   alwaysTs   TERMs   dumbs   modepageractives	   pagermoder   )win32s   ansi   win32c                 ^   > TT:X  a&  T (       a  TR                  [        S5      T-  5        g g g )Ns(   warning: failed to set color mode to %s
)rL   r   )rN   rM   realmoder-   s   r0   modewarn_modesetup.<locals>.modewarn  s.     8	GGABCdJK !*r
   r4   )plainconfigr   	parseboolconfigsourcer   environgetrN   getattrr   	iswindows r^   
w32effectsenablevtmoder>   rF   rU   )	r-   re   autoalwaysr^   rb   rN   rM   ra   s	   `     @@@r0   rX   rX      s   	xxYYuh'FWDFJ((00 OOE8,
:"FD$ W%0CR\\^  99Xw'D r=%((yy<6H7? :!3!3!5!5"# W_ 	L L 8
  "zJ  
W	
  "	[	 r4+!!JH$9r
   c                   U R                   R                  [        5        U R                  S5       H  u  pSU;  d  UR	                  S5      (       a  M#  U R                  SU5      nU(       d  M>  / nU HY  n[        X5      (       a  UR                  U5        M&  U R                  [        S5      [        R                  " U5      U4-  5        M[     SR                  U5      U R                   U'   M     g )Nr5      .)r6   r8   s:   ignoring unknown color/effect %s (configured in color.%s)
    )_stylesr,   r+   r@   rA   
configlistvalideffectappendrL   r   r   pprintjoin)r-   status
cfgeffectsgoodrS   s        r0   rZ   rZ   &  s    JJn% nnX6v!2!23L!M!M]]8V4
:Dr%%KKNGG: &,,Q/8	9	   "&4BJJv# 7r
   c                X    U R                   S:X  a  [        $ U R                   b  [        $ 0 $ )z8Return the effects map for the color mode set on the ui.r_   )rY   rm   _effects)r-   s    r0   _activeeffectsr   <  s(    	}} 		"Ir
   c                    U R                   (       + =(       a    U[        U 5      ;   =(       d'    XR                   ;   =(       d    USS U R                   ;   $ )z(Determine if the effect is valid or not.N)r>   r   )r-   effects     r0   rv   rv   E  sI    """Cv1C'C $$$Jt8J8J(Jr
   c                   SnUR                  S5      (       a  SnUSS n U R                  U   u  p4nU(       a3  U(       a  U$ [        R                  " [
        R                  " U5      5      $ U(       a+  [        R                  " [        R                  " S5      U5      $ [        R                  " [        R                  " S5      U5      $ ! [         a     gf = f)	z%Helper function for render_effects().Fs   _backgroundTNr   r
   r<   r;   )endswithr>   KeyErrorr=   rI   r   rJ   tparm)r-   r   bgattrrP   termcodes         r0   _effect_strr   L  s     
B~&& 0088 O??8??3#788	||FOOG4c::||FOOG4c::  s   C
 

CCc                    / nU R                  U5       H  nU(       d  M  UR                  XU/5        M!     SR                  U5      $ )aA  Insert start sequence at every occurrence of stop sequence

>>> s = _mergeeffects(b'cyan', b'[C]', b'|')
>>> s = _mergeeffects(s + b'yellow', b'[Y]', b'|')
>>> s = _mergeeffects(b'ma' + s + b'genta', b'[M]', b'|')
>>> s = _mergeeffects(b'red' + s, b'[R]', b'|')
>>> s
'[R]red[M]ma[Y][C]cyan|[R][M][Y]yellow|[R][M]genta|'
r
   )splitextendry   )textstartstoppartsts        r0   _mergeeffectsr   b  sC     EZZe%&  88E?r
   c                  ^  U(       d  U$ T R                   (       a:  SR                  U 4S jS/UR                  5       -    5       5      n[        T S5      nO[	        T 5      nS/UR                  5       -    Vs/ s H  n[
        R                  " XV   5      PM     nnSSR                  U5      -   S-   nS[
        R                  " US   5      -   S-   nT R                  (       a  SU-   S-   nSU-   S-   n[        XU5      $ s  snf )	z-Wrap text in commands to turn on each effect.r
   c              3  <   >#    U  H  n[        TU5      v   M     g 7fr*   )r   ).0r   r-   s     r0   	<genexpr>"_render_effects.<locals>.<genexpr>y  s      
2MKF##2Ms   r	      [   ;   m      )	r>   ry   r   r   r   r   bytestr_readlinepromptr   )r-   r   effectsr   r   activeeffectsrS   s   `      r0   _render_effectsr   t  s   	 
3:)gmmo2M
 
 2w'&r* Y0
0 ]-.0 	 
 499U++d2(**=+ABBTIeOg-ET>G+Dd++
s   7"C>s   \x1b\[[0-9;]*mc                .    [         R                  SU 5      $ )z@Strip ANSI control codes which could be inserted by colorlabel()r
   )_ansieffectresub)r   s    r0   stripeffectsr     s    S$''r
   c           
     B   U R                   S:X  a7  U(       a.  U(       a'  UR                  S5      (       a  SX!SS 4-  nU$ SX!4-  nU$ U R                   b  / nUR                  5        H\  nU R                  R	                  US5      nU(       a  UR                  U5        M9  [        X5      (       d  MK  UR                  U5        M^     SR                  U5      nU(       a;  SR                  UR                  S5       Vs/ s H  n[        XU5      PM     sn5      nU$ s  snf )	z,add color control code according to the moderW      
s   [%s|%s]
Ns   [%s|%s]r
   rs   )	rY   r   r   rt   ri   rw   rv   ry   r   )r-   msglabelr   lslines          r0   
colorlabelr     s   	}} S||E"""e"X%66& J# !E</" J! 
	"A

q#&Aq!R##q!  ))G$** !$		% 0 0 $Bg6 0C Js   =Dr   c                  L    \ rS rSrS\R
                  4S\R
                  4/rSrg)_COORDi  XY N__name__
__module____qualname____firstlineno__ctypesc_short_fields___static_attributes__r   r
   r0   r   r     s    &..)C+@Ar
   r   c                      \ rS rSrS\R
                  4S\R
                  4S\R
                  4S\R
                  4/rSrg)_SMALL_RECTi  LeftTopRightBottomr   Nr   r   r
   r0   r   r     s9    V^^$FNN#fnn%v~~&	
r
   r   c                  6    \ rS rSrS\4S\4S\4S\4S\4/rSrg)	_CONSOLE_SCREEN_BUFFER_INFOi  dwSizedwCursorPositionwAttributessrWindowdwMaximumWindowSizer   N)	r   r   r   r   r   _WORDr   r   r   r   r
   r0   r   r     s1    v(E"%"F+
r
   r   l    l          @      i @  i      r$   r%   r&   r'   )r(   s   bold_backgroundr   r   s&   \001?\033\[([^m]*)m\002?([^\033]*)(.*)c                   UR                  SS5      n[        nS nUR                  5        HG  nU R                  R                  US5      nUR                  5        H  n	 U" [        U	   U5      nM     MI     UR                  S5      (       d  SU-   n[        R                  " [        U5      n
 U
(       a  U
R                  S5      R                  S5       H  nU(       d  M  U" [        U5      U5      nM      U R                  5         [        R                  [        U5        U" U
R                  S5      5        [        R                  " [        U
R                  S	5      5      n
U
(       a  M  U R                  5         [        R                  [        [        5        g ! [
         a     GMM  f = f! U R                  5         [        R                  [        [        5        f = f)
Nr   r
   c                n    U S:X  a  [         $ U [        ;   a  X-  $ U S:  a  U S-  US-  -  $ U S-  US-  -  $ )Nr      p      r      )origattrpassthrough)rP   r   s     r0   mapcolorwin32print.<locals>.mapcolor  sK    by#z!td
td{33d
td{33r
   r   s   [mr   r   r   r   )ri   r   r   rt   rm   r   rA   rematchansiregrouprB   flush	_kernel32SetConsoleTextAttributestdout)r-   	writefuncr   optsr   r   r   r   styler   msattrs               r0   
win32printr     sg   #&	4 AJJNN1c*E++-#Jv$6=D (  x((t#D HHVT"	@WWQZ--d3Eu'E
D9 4 
11&$?!''!*%HHVQWWQZ0 ! HHJ--fh?/    , HHJ--fh?s%   F./F, !BF, 
F)(F),0G)K
__future__r   r   i18nr   rl   r   r   utilsr   r=   COLOR_BLACK	COLOR_REDCOLOR_GREENCOLOR_YELLOW
COLOR_BLUECOLOR_MAGENTA
COLOR_CYANCOLOR_WHITEr?   ImportErrorAttributeErrorr~   r+   r1   rU   r[   rX   rZ   r   rv   r   r   r   compiler   r   r   rm   rk   r   windllkernel32r   c_ushortr   _INVALID_HANDLE_VALUE	Structurer   r   r   _STD_OUTPUT_HANDLE_STD_ERROR_HANDLE_FOREGROUND_BLUE_FOREGROUND_GREEN_FOREGROUND_RED_FOREGROUND_INTENSITY_BACKGROUND_BLUE_BACKGROUND_GREEN_BACKGROUND_RED_BACKGROUND_INTENSITY_COMMON_LVB_REVERSE_VIDEO_COMMON_LVB_UNDERSCOREr   GetStdHandler   csbiGetConsoleScreenBufferInfobyrefr   r   	MULTILINEDOTALLr   r   r   r
   r0   <module>r     s"	   # 	 
 %) 	* 	'	
 	' 	' 	# 	% 	+ 	' 	5&,,c2 	((#. 	5&,,c2 	E6..4 	%**C0  	UF00#6!" 	%**C0#$ 	5&,,c2%2Qb B b	
 r R  R b Q q !  A   r!" #$ -2J;JJ J 	J
 jJ *J *J mJ [J J J J J 'J XJ  V!J" 2#J$ v%J& g'J( l)J* K+J, M-J. */J0 h1J2 53J4 5J6 7J8  69J: ;J< =J> ?J@ AJB (CJD )&EJF *9GJH #HIJJ )&KJL *9MJN #HOJP $YQJR $XSJT cUJV ;WJX 8YJZ V[J\ ]J^ )_J` iaJb scJd zeJf WgJh (iJj CkJl wmJn oJp qJr ;sJt 7uJv mwJx LyJz ]{J| W}J~ gJ@ -AJB }CJD EJF {GJH 0IJJ  +2'/)/SJZ&*#ZNb1,;,$,. 

-.(
6 
&&IOOEB!! B
f&& 

f&6&6 
 $"O"O" &#! 	 	#	
 	?%66 	! 	$6 	!$55 	/$558HH 	& 	U 	? 	. 	o0AA 	,  	.@!" 	,/@@#& //2BB1,-/J6 	!	K ##F ~#88
*,33FFLL<NOO J''HZZ:ryy(F
+@C C 	^$ Fs   B%N N N 