
    z#gh                     (   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
Jr   S SKrS SKJrJr  S SKJrJrJrJrJr  S SKJr  S SKr\ R4                  R7                  5       rSr \R<                  " S5      R?                  5       u  r r!\"" \ 5      =(       d    S\"" \!5      =(       d    S	sr#r$S r&\&r'\&r(S r)S(S jr*\b%  \RV                  " S5         \RX                  " S5        S r- " S S\.5      r/S)S jr0S*S jr1S+S jr2S r3\3r4  S,S jr5S r6S-S jr7S r8S.S jr9SSSS0 4S jr:SSSSSSS0 4S jr;  S/S jr<    S0S  jr=S! r>S" r?S# r@S+S$ jrAS1S% jrBS& rCS' rDg! \ a    Sr GN?f = f! \% a    S
u  r#r$ Nf = f! \% a     Nf = f)2    N)suppress)debbugs	hiermatch)NoReport	NoPackageNoBugsQuertBTSErrorInvalidRegex)launch_browserzus-asciiz	stty size   O   )r   r   c                     [         (       d  g U(       a  X-  n [        R                  R                  U 5        [        R                  R	                  5         g N)ISATTYsysstderrwriteflush)messageargss     6/usr/lib/python3/dist-packages/reportbug/ui/text_ui.pyewriter   8   s6    6.JJWJJ    c                      [         R                  " 5       n[         R                  " U 5      $ ! [         a    [         R                  " S5         N8f = f)N/)osgetcwdOSErrorchdirsystem)cmdline_s     r   r    r    G   s?    IIK 99W  
s   -  AAc                     U(       d	  [         S-
  nU(       a  SU-  nOSnSR                  U R                  5       5      n U (       d  US-   $ [        R                  " XUUS9nUR                  S5      (       a  U$ US-   $ )z.Wrapper for textwrap.fill to the existing API.     
)widthinitial_indentsubsequent_indent)columnsjoinsplittextwrapfillendswith)text	starttextindentlinelensioutputs         r   indent_wrap_textr7   O   st    A+6\88DJJL!D4]]4y-/1FtD=r   ztab: completer%   c	           
          [        U5      nX2;  a   SUs=::  a  [        U5      ::  a
  O  OX#S-
     n[        R                  R	                  U [
        R                  " XXEU5      Xx5        g ! [         a    [        SU5         g f = f)Nr$   Invalid report number: %s
)	intlen	reportbugutilslaunch_mbox_readerr   get_report_url
ValueErrorr   )	mbox_reader_cmdbtsbugsnumbermirrorsarchivedmbox
http_proxytimeouts	            r   _launch_mbox_readerrJ   n   s|    	V!v":T":1*%F**?+2+A+A#wbf+g+5	@  ,	s   A'A* *BBc                   $    \ rS rSrSS jrS rSrg)our_completer|   Nc                 ^    S U l         U(       a  [        [        [        U5      5      U l         g g r   )completionstuplemapstr)selfrO   s     r   __init__our_completer.__init__}   s&    $Sk%:;D r   c                     U R                   (       d  g U R                    Vs/ s H  o3R                  U5      (       d  M  UPM     nnU[        U5      :  a  XB   $ g s  snf r   )rO   
startswithr;   )rS   r1   ixmatchings        r   completeour_completer.complete   sP    #//F/!<<3EA/Fs8};	 Gs
   AA)rO   r   )__name__
__module____qualname____firstlineno__rT   r[   __static_attributes__ r   r   rL   rL   |   s    <
r   rL   c                 :   [         R                  R                  5       nU(       d  [         R                  R	                  U 5        [         R                  R                  5         [        (       a@  U(       a  U(       d  [        U5      R                  nU(       a  [        R                  " U5         U(       a  [        U 5      nO[        5       n [        (       a  [        R                  " S 5        UR                  5       $ ! [         a    [        S5        [        ef = f)Nz
User interrupt (^D).
)r   stdoutisattyr   r   r   readlinerL   r[   set_completerinputEOFErrorr   
SystemExitstrip)promptrO   	completeristtyrets        r   our_raw_inputrp      s    JJE

 JJxy%k2;;I""9--C'C
 xt$99;  )*s   /C> 
C> >DFc           	      *   SnU H  nU[         R                  ;   d  M  Un  O   U(       d  0 nSU;  a  US-   nU R                  5       n U S   S:X  a  U S S n U(       a  U S-   SR                  U5      -   S-   S-   nO4[	        U S-   SR                  U5      -   S-   5      R                  5       S-   n[        X5      n	U(       a  U	(       a   U	S   S	:X  a  U	S
S  n	U	(       a  U	S   S	:X  a  M  [        U[        5      (       a   [        [        U	5      5      $  [        U	5      n
X;   a  [        U
5      $ [        U5      nUR                  5         SSR                  [        [        U5      5      -   n U	(       d  Wn	U	S   n	U	S:X  a  SUS'   U Hi  n	U	[         R                  ;   a  SnOSnXR                  XR                  U	R!                  5       S5      5      -  n[#        [	        US-   SU	-  S5      5        Mk     [%        XX#U5      $ U	R!                  5       U;   d  U	R'                  5       U;   a  U	R!                  5       $ U(       a  [#        [	        U5      5        O[#        S5        [%        XX#U5      $ ! [         a     GNf = f! [        [        4 a     GN%f = f)Nr&   ? [|z]?r%   r   #r$   z(Only the following entries are allowed: , zDisplay this help.z
(default) zNo help for this option.r'   z%s -    zInvalid selection.
)stringascii_uppercaserstripr,   r7   rk   rp   
isinstancer:   rR   r@   listsortrQ   	TypeErrorgetlowerr   select_optionsupper)msgokhelpallow_numbersnowraperr_messageoptiondefaultlongmsgchrD   numsdescs                r   r   r      sm   KV+++G 
 
"}#X
**,C
2w#~#2h*sxx|+d2S8"3:#<t#CDJJLsR	w	.BRUc\ABB RUc\mS))3r7|#
R*v;&.DIIK"L"&))CTN";#<K
 	AB	Sy(S	BV+++#HHR"((**D"F G GD#D4K2qAB  ctFCC
((*

b 0xxz	,-%&#4??I   	* s*   >I- I> .=I> -
I;:I;>JJc                 X    U(       a  SnOSn[        XXSS.US9nUS:X  a  [        eUS:H  $ )z"Return True for yes, False for no.YnqyNqzQuit.)ynq)r   r   r   )r   rj   )r   yeshelpnohelpr   r   r   ress          r   yes_nor      s<    
7"K &(C
cz3Jr   c                    ^ U(       a  X-  nOU n[         S-
  mSR                  U4S jUR                  5        5       5      nUR                  5       S-   n[	        U5        g )Nr$   r'   c              3   N   >#    U  H  n[         R                  " UTS 9v   M     g7f))r(   N)r.   r/   ).0parr4   s     r   	<genexpr>long_message.<locals>.<genexpr>   s     VCUChmmCw7CUs   "%)r+   r,   
splitlinesr{   r   )r1   r   mtextr4   s      @r   long_messager      sO    kGIIV5CSCSCUVVELLNT!E
5Mr   c                 R   U (       aW  [        U 5      S[        -  S-  :  a>  U(       d7  U(       a!  U < SU< S3n [        XU5      =(       d    UnU$ [        XU5      n U$ U (       a  [        [	        U 5      5        U(       a  [        SU-  X5      =(       d    UnU$ [        SX5      nU$ )N      rt   z]: z[%s]> z> )r;   r+   rp   r   r7   )rl   optionstitleempty_okforce_promptr   rm   responses           r   
get_stringr     s    3v;Wq0,$*G4F$Vi@KGH O %Vi@H O #F+,$X%7LWPWH O %T7>HOr   c                     [        S5        [        [        U S-   5      5        / n [        SSS9R                  5       nU(       d  OUR	                  U5        M3  [        S5        U$ )Nr'   z+  Press ENTER on a blank line to continue.
r&   T)r   )r   r7   r   rk   append)rl   ro   entrys      r   get_multiliner     s_    
4L
F%SSTU
C
2D1779

5	 
 4LJr   c                 .    [         R                   " U 5      $ r   )getpass)rl   s    r   get_passwordr   (  s    ??6""r   c                 >   [         R                  R                  U 5      n [         R                  R                  U 5      n [        R                  " U S-   5      nU(       d  g U[        U5      :  a/  X!   n[         R                  R                  U5      (       a  US-   $ U$ g )N*r   )r   path
expanduser
expandvarsglobr;   isdir)r1   rX   pathsr   s       r   FilenameCompleterr   ,  sy    77d#D77d#DIIdSj!E3u:~77==3;r   c                 "    [        XUU[        S9$ )N)r   r   r   rm   )r   r   )rl   r   r   r   s       r   get_filenamer   <  s    f%1BD Dr   c                      [        XX#UXVSSUS9
$ )NTF)r   r   orderextrasmultipler   enable_other)menu)r   r   rl   r   r   r   r   r   s           r   select_multipler   A  s    fUTE)+ +r   c                 f   U(       a0  Uc  / nO[        U[        5      (       a  U/nU Vs0 s H  oS_M     nnU(       d  / nO[        U5      nU(       a  [        US-   5        [        [	        U [
        S9S-   5        [        U[        5      (       a  UR                  5       nU(       ao  / nU H!  nX;   d  M
  UR                  XU   45        X	 M#     [        UR                  5       5      nUR                  5         U H  nUR                  U5        M     UnO)[        UR                  5       5      nUR                  5         U(       a,  UR                  S5        [        W5      (       a  SnOSnUS/-  nU Vs/ s H  oS   PM	     nnUU-   n[        [        [        [        [        U5      5      5      [
        S	-  5      n[        [         R"                  " [         R$                  " [        U5      S-   5      5      5      nSnU HI  u  nn[	        UUU-   S	-   S
UUUUU4-  S9n[        U5        [        U5      S:  a  [        S5        US-  nMK     [        U5      S:  a  [        S5        U(       a@  US-  nW(       a4  [        SSR'                  [        UR)                  5       5      5      -  5         U(       a	  USU-  -   nOUn[+        UU5      nU(       d  Un [        U5      nSUs=::  a  [        U5      ::  a  O  OUUS-
     S   nUU;   d  UU:X  a  U(       a  U(       a  US:X  a  [        WR)                  5       5      $ US:X  a  [        W5      S:X  a  / $ 0 nO<WR1                  U5      (       a  UU	 O"SUU'   U
R1                  U5      nU(       a  SUU'   [        SSR'                  [        UR)                  5       5      5      -  5        [        U5      (       a  SnOSnGM3  U$ U(       a	  U(       a  U$ U	(       a  U(       d  g [        S5        GMa  s  snf s  snf ! [,        [.        4 a     GN'f = f)Nr$   

)r4   r'   )noner&   doner   r   r   z%*d %-*.*s  )r3   r2      z(one at a time) z- selected: %s
rw   z[%s] zInvalid entry.
)r|   rR   r}   r   r7   r+   dictcopyr   itemsr~   r;   minmaxrQ   r:   mathceillog10r,   keysrp   r@   r   r   )r   r   rl   r   r   any_okr   r   r   r   r   keyselectedolistr   rY   allowedmaxlen_namedigitsrX   namer   r1   apromptr   numothers                              r   r   r   H  s    ?G%%iG&-.gsFg.fuv~
C1D89'4  ,,.E>LL#s|!45  7==?+GLLN!V$ "G7==?+GLLN|$x==GG6($%WtWG%Gc$s3012GqLAK4::c'lQ&6789F	A
dkF.BQ.F+9VQU`bf<g+gjtw<!4L	Q  7|qt$$%		$x}}2G(HHI
w00GG '2H	h-CC'3w<'"37+A. w8w#68v%00'8})!	#%\\(++ *)*HX&(,,X6E*+)DIId8==?6K,LLMx==$G$GhOh!"_ } /P &H I& 		s#   P7P#P =P P0/P0c
                    [         R                  U   n
[        SX
S   5         [         R                  " XXSX8S9nU(       d  [        SU 5        [
        eUu  pUR                  (       d2  UR                  (       a!  [        S5        [        R                  " S5        SnS	n U(       a  S
XR                  X   4-  nOSUR                  < SUS   < 3nU(       dV  [        [        5         [        R                  " S[        R                  SS9 nUR!                  U5        S S S 5        S S S 5        S	nSnUS-   [#        U5      :  a  SUR%                  5       -   nU(       a  SU-   n['        SUSSSSSSSSS.[)        [+        S[#        U5      S-   5      5      S9nUS:X  a  U$ US:X  a  [,        eUS :X  a#  [/        [         R0                  " XX(5      5        S!nO_US":X  a:  [2        R4                  R7                  U	[         R0                  " XX(S!5      X45        S!nOUS#:X  a   g US$:X  a  US-  nOUS:X  a  US-  nGM  ! [         a    S n GNf = f! , (       d  f       GN2= f! , (       d  f       GN<= f)%Nz5Retrieving report #%d from %s bug tracking system...
r   r$   )rE   	followupsrH   rF   zNo report available: #%s
z*Cannot retrieve bug's package, exiting...
rs   r   FzFollowup %d - %s

%szOriginal report - r   sensible-pagerignorestdinerrorsxOrbeqNpzWhat do you want to do now?zProvide extra information.z/Show other bug reports (return to bug listing).zShow next message (followup).z!Show previous message (followup).zRedisplay this message.z&Launch e-mail client to read full log.z$Launch web browser to read full log.I'm bored; quit please.)rY   or   r   rebr   r   rY   r   r   Tr   r   r   )r   SYSTEMSr   
get_report	Exceptionr   packagesourcer   exitsubjectr   BrokenPipeError
subprocessPopenPIPEcommunicater;   r   r   r}   ranger   r   r?   r<   r=   r>   )rD   r    rE   rH   rI   screen	queryonlyr   rF   rA   sysinfoinfobuginfomessagescurrent_message
skip_pagerr1   fdr   rY   s                       r   show_reportr    sb    oof%G
C6?$!!&6,-*Y
 +V4G OO7>>=>OJ
+/7/H/J JD  4;??HQKPD/*%%&6jooV^_ceNN4( ` + 
a3x=0GMMO+GGmG8'!=!R!@!D!:!I!G!:< *.eAs8}q7H.I)J	L 8N#XN#X7113 4J#XOO../6/E/EfV]im/n/9D J#X
 	 #Xq O#Xq Oa #  4 `_ +*s5   H7 (%II
I7II

I	I
I+c                    [         R                  U   R                  S5      nU(       d!  [        S[         R                  U   S   5        g SnU	(       a  Sn[	        U [
        5      (       a#  [        S[         R                  U   S   U U5        OK[        S[         R                  U   S   SR                  U  Vs/ s H  n[        U5      PM     sn5      U5        / n [         R                  " XXU
XUS9u  nnn U(       d  Uc  [        e[        e/ nU(       a4  / nU H*  nUS    H  nUR                  UR                  5        M      M,     U$ U(       aQ  U H5  nUS    H)  nSUR                  UR                   4-  n[#        U5        M+     M7     [$        R&                  " S5        U H  nUS   n0 nUS    H6  nSnUR(                  S:X  a  SnUR                   < U< 3UUR                  '   M8     [+        UR-                  5       US9nUR                  UU V s/ s H  n SR/                  SU  3UU    5      PM     sn 45        UR1                  U5        M     UnU(       d  Uc  [        e[        eUS:X  a  [        SU5        O[        SU5        [	        U [2        5      (       a3  U  V!s/ s H   n!U!R5                  S5      (       d  M  U!SS  PM"     sn!S   n Sn	[7        UUUXX4X'UX	U5      $ s  snf ! [         a8  nS	[         R                  U   S   < S
[        U5      < S3n[        U5      eS nAff = fs  sn f s  sn!f ! [         a    [        S5        [        ef = f)Nbtsrootz7%s bug tracking system has no web URL; bypassing query
r   r&   z	 (source)z'Querying %s BTS for reports on %s%s...
r%   )rE   versionr   rH   rF   zUnable to connect to z BTS (error: "z"); r$   z#%d  %sr   r   z  [RESOLVED])reversez	{:>8}  {}rv   z%d bug report found:

z%d bug reports found:

zsrc:rx   Tz No record of this package found.)r   r   r   r   r|   rR   r   r,   get_reportsr   reprr	   r   r   r   bug_numr   printr   r   pendingsortedr   formatextendr}   rW   browse_bugs)"r   rB   rI   rE   rH   r   r   r   rF   r   r  rG   buglistrA   latest_firstrootsrcstrrY   rC   count	hierarchyr   errmsghierarchy_newmboxbuglistr   bugr   	entry_newbugs_newr   bugs_numberskr   s"                                     r   handle_bts_queryr     sP    ??3##I.DIs#F+	-F'3?__S)&17F	D 	?__S)&1XXw7w!s1vw78&	B D$$+$7$7cG8%E!yD K" 8C&&s{{3 $ # " 8C#s{{CKK&@@C#J $ #
 HHQKEaIHQx;;&()D 36++t(D%   "(--/<HL  )7C.E7C! /:.@.@1QC(ST+.V7C.E "F GKK%# ( "	 aZ-u5.6 gt$$&-Fgf1EuqugFqIGF9eT3""O= 	=S 8  $BI//RUBVW]B^`def`ghF##$X.E& G  78sW   8K(K- 9AL< CL< "L29A-L< &L7	L7L< -
L/73L**L/2
L< <Mc                 	    [         R                  " 5       nS=nnS=nnU S   n/ n[        [        [        U5      5      5      nS[        U5      -   S-   nU(       Ga  US-  nUSS u  nnUR                  S5      (       a  US S nUR                  S5      (       a  M  [        U5      (       Ga{  US [        S-
   nU[        S-
  S  n[        U5      nSnUS:w  a  S	nU(       a  UR                  S
UUU4-  5        OUR                  US-   5        U H0  nUS-   nUS-   nUR                  UUUS [        U-
  S-
   4-  5        M2     UU S   :X  d#  U[        [        U US-      S   5      -
  S-
  :  Ga  SnX:X  a  S	nSnU(       a  SnSUX4-  nUS-   n U(       a  US-   n U[        [        SUS-   5      5      -   n!SSSSSSSSSS.	n"U(       a  U"S   S S S-   U"S'    U H"  n#[        R                  R                  U#5        M$     [!        U UU"U!S9n$U$S:X  a  / nGOU$S :X  a&  U(       a  [#        S!U
-  5        O[#        S"U
-  5        Mk  U$S#:X  a  Ms  U$S$:X  a  [$        eU$S:X  a  g U$S%:X  a  U(       a  g [        U5      S:X  a  S&n%O['        S'U!5      n%U%(       a   U%S   S(:X  a  U%SS  n%U%(       a  U%S   S(:X  a  M  U%(       aM   [)        U%5      n%U%U;  a!  SU%s=::  a  [        U5      ::  a  O  OUU%S-
     n%[*        R,                  " U%U5      S   $ [$        eU$S*:X  a/  [3        XXEXgXX5
      n&[5        U&[        5      (       a	  U&S+;   a  GMf  U&$ U$S,:X  a  ['        S-U!5      n%[7        XUU%US.S/UU5	        OU$S0:X  d  U$S1:X  a  [        U5      S:X  a  S&n%O['        S2U!5      n%OU$n%U%(       a   U%S   S(:X  a  U%SS  n%U%(       a  U%S   S(:X  a  M  U%(       aL   [)        U%5      n%U%U;  a!  SU%s=::  a  [        U5      ::  a  O  OUU%S-
     n%[9        U%X5XgUUU	US39	n'U'(       a  U'$  GM6  US-   nSn[        U5      (       a  GM{  UU S   :X  a  g US-   nU U   nU(       a  UR                  S5        US-   nU(       a  GM  g g ! [         R                   a,  n[        U5        [        R
                  " S5         S nAGNS nAff = f! [.         a    [1        S)U%5         Nf = f! [.         a    [1        S)U%5         Nf = f)4Nr$   r     %d) %s
r   :rs   sr&   z %s: %d remain%s
r'   r    (s to skip rest)	yNbmrqsfeNbmrqfe(%d-%d/%d) !Is the bug you found listed aboveWhat would you like to do next;Problem already reported; optionally add extra information..Problem not listed above; possibly check more.-Open the complete bugs list in a web browser.`Get more information about a bug (you can also enter a number
     without selecting "m" first).Redisplay the last bugs shown.r   7Skip remaining problems; file a new report immediately.'Open the report using an e-mail client.z Filter bug list using a pattern.)	r   r   r   mr   r   r%  r   fr    (skip to Next page).r   r   zhttps://bugs.debian.org/src:%shttps://bugs.debian.org/%sr   r   r   1[Enter the number of the bug report you want to give more info on,
or press ENTER to exit: #rv   r9   r4  	FilterEndTopr   <Please enter the number of the bug you would like to view: #noTr3  rX   APlease enter the number of the bug you would like more info on: #)r   r   r   rA   )localegetpreferredencodingErrorr  r   r   r;   rR   r0   rowsr   r+   r}   r   r   r   r   r   r   rp   r:   r   r   r@   r   search_bugsr|   rJ   r  )(r  r  rC   rB   r   rE   rH   rI   r   r   r   r   rA   r"   r   endcountcatcountscount
startcountcategorylastpager   linefmtcatnamereportstheseremainrpluralreportskipmsgr   rstrpstrr   helptextlinerY   rD   retvalr   s(                                           r   r  r  x  sz   '') HxFZ|HHSY Fc&k!I-G
!#Aa=s##crlG s## 'llITAX&EdQhi(G\FG{ 4!(&' :!; < $/!#a<8V<QWv=MPQ=Q5R*S ST  
 9R=(4#i1&=a&@"AAAEF-$ G%'G$
H'DDAA"BBDeAuqy&9!::VIH>92RB;
= $,SM#2$69P$PHSM (

((. !)&tWh5<>ACx#%c!*+Kg+UV*+G'+QR c c&cc$"t9>%(F%2!<=D&FF %c)9%+ABZF %c)9!/),V#)#5!v:RT:R-1&1*-=F'.'9'9&''J1'M M
 #+Nc!,YYQ[fl-4"G%fc22vAU7U$#)Mc!./mov!w+O$,3T4,35 8qCx"4yA~),)6 8XY`*b &'F$c)9%+ABZF %c)9 "/),V#)#5!v:RT:R-1&1*-=F&1&#2<<E9?8=BQ'S $'+.J $'c n &\
S 'llZ y}$a<X&OOD!aZFu ( << c
N $. / &'D'-!//X $. / &'D'-!//s=   Q% 8AR(  A	S %R%9!R  R%(S SSSc           	      h   U  Vs/ s H  n[        US   5      PM     nnU(       a  [        U5      nOg/ n[        R                  " S5      nU =(       d    /  HR  nUS    HF  nUR	                  U5      nU(       d  M  UR                  [        UR                  S5      5      5        MH     MT     X44$ s  snf )z.Find out bug count and bug # in the hierarchy.r$   )r   r   z\ *\#(\d+)[ :])r;   sumrecompilematchr   r:   group)	r  rX   lenlistr  rC   expr   r  r[  s	            r   proc_hierarchyr_  #  s     #,,)Qs1Q4y)G,G D
**&
'Cb8CIIcNEuCA/0  !
 ; -s   B/c
                 
     [         R                  " 5       n
[        S5      nU(       d  g [        R                  " X5      n[        U5      u  pU(       d  [        S5        gS=nnS=nnUS   n/ n[        [        [        U5      5      5      nS[        U5      -   S	-   nU(       Ga  US-   nUSS
 u  nnUR                  S5      (       a  USS nUR                  S5      (       a  M  [        U5      n[        U5      (       Gas  US[        S
-
   nU[        S
-
  S n[        U5      nS=nnUS:X  a  SnUS:w  a  SnU(       a  UR                  SUUUUU4-  5        OUR                  SUUU4-  5        U H0  nUS-   nUS-   nUR                  UUUS[         U-
  S-
   4-  5        M2     UUS   :X  d#  U[        [        UUS-      S   5      -
  S-
  :  Ga  Sn UU:X  a  Sn Sn!U(       a  Sn!SUUU4-  n"U"S-   n#U(       a  U"S-   n#U[#        [%        SUS-   5      5      -   n$SSSSSSSSS S!S"S#.n%U (       a  U%S$   SS S%-   U%S$'    U H"  n&[        R&                  R)                  U&5        M$     [+        U#U!U%U$S&9n'U'S$:X  a  / nGOU'S':X  a  [-        S(U-  5        GOU'S):X  a  M]  U'S*:X  a  [.        eU'S:X  a  gU'S+:X  a  U(       a  g[        U5      S:X  a  S,n(O[        S-U$5      n(U((       a   U(S   S.:X  a  U(SS n(U((       a  U(S   S.:X  a  M  U((       aM   [1        U(5      n(U(U;  a!  SU(s=::  a  [        U5      ::  a  O  OUU(S-
     n([2        R4                  " U(U5      S   $ [.        eU'S0:X  a0  [;        XX#XEUXxU	5
      n)[=        U)[        5      (       a	  U)S1;   a  GMQ  U)$ U'S2:X  a  gU'S3:X  a  g4U'S5:X  a  [        S6U$5      n([?        XUU(US7S8XE5	        OU'S9:X  d  U'S::X  a  [        S;U$5      n(OU'n(U((       a   U(S   S.:X  a  U(SS n(U((       a  U(S   S.:X  a  M  U((       aK   [1        U(5      n(U(U;  a!  SU(s=::  a  [        U5      ::  a  O  OUU(S-
     n([A        U(XXEUUUS<9n*U*(       a  U*$  GM  US-   nSn[        U5      (       a  GMs  UUS   :X  a   gUS-  nUU   nU(       a  UR                  S=5        US-  nU(       a  GM  g! [         R                   a,  n[        U5        [        R
                  " S5         SnAGNSnAff = f! [         a    [        S5         gf = f! [6         a    [9        S/U(5         Nf = f! [6         a    [9        S/U(5         Nf = f)>z(Search for the bug list using a pattern.r$   NzXEnter the search pattern (a Perl-compatible regular expression)
or press ENTER to exit: r:  z4Invalid regular expression, press ENTER to continue.z(No match found, press ENTER to continue.r   r"  r#  r   r$  rs   r%  r&   z %s: %d report%s (%d remain%s)
z %s: %d report%s
r   r&  yNbmrqsfute	Nmbrqfuter)  r*  r+  r,  r-  r.  r/  r0  r   r1  z)Filter (search) bug list using a pattern.zUp one level of filter.r2  z)Top of the bug list (remove all filters).)r   r   r   r3  r   r   r%  r4  ur   tr   r5  r   r   r6  r   r   r   r7  r8  rv   r9   r4  r9  rc  rd  r;  r   r<  r=  Tr3  rX   r>  )r   r   r   r'   )!r?  r@  rA  r  r   r   rp   r   matched_hierarchyr
   r_  r;   rR   r0   rB  r   r+   r}   r   r   r   r   r   r   r:   r   r   r@   r   rC  r|   rJ   r  )+hierarchyfullrB   r   rE   rH   rI   r   r   r   rA   r"   r   patternr  r  rC   rD  rE  rF  rG  rH  rI  r   rJ  rK  rL  totalrM  rN  tpluralrO  rP  rQ  r   rR  rS  r   rT  rU  rY   rD   rV  r   s+                                              r   rC  rC  7  s    B'')
  7 8G//G	
 !+KE@AHxFZ|HHSY Fc&k!I-G !#Aa=s##crlG s##G'llITAX&EdQhi(G\F ##Ggz{ B!(%&' J!K L  4!(% 9!: ;  !#a<8V<QWv=MPQ=Q5R*S ST  
 9R=(4#i1&=a&@"AAAEF-u$ G')G$
He'DDAA"BBDeAuqy&9!::VIH>92RD2BDF $,SM#2$69P$PHSM (

((. !)&tWh5<>ACx#%c&'Cg'MNc c&cc$"t9>%(F%2!<=D&FF %c)9%+ABZF %c)9!/),V#)#5!v:RT:R-1&1*-=F'.'9'9&''J1'M M
 #+Nc!,YYQ[fl-2_"N%fc22vAU7U$#)Mc*c$c!. 0OPW"Y+O$,3T4V 8qCx%2!A '&)F
 &'F$c)9%+ABZF %c)9 "N),V#)#5!v:RT:R-1&1*-=F&1&#2<<E9?8=	'?
 $'+.J $'c l &\
[ 'llb y}$  	AX&OOD!aKF (@ } << c
  LMd $. / &'D'-!//` $. N &'Df MNsN   R3 S6 AT AT- 3S3!S..S36TTT*)T*-UUc                 r   U(       d  [        U 5        g U(       a  U S-  n [        R                  R                  SS5      n[	        [
        5         [        R                  " U[        R                  SS9 nUR                  U 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz[
(You may need to press 'q' to exit your pager and continue using
reportbug at this point.)PAGERr   r   r   )
r   r   environr   r   r   r   r   r   r   )r1   	use_pagerpresubjpagerr   s        r   display_reportrp    s}    t	ooJJNN7$45E	'	e:??8LPQMM$ M 
	LL 
	s$   %B(4BB(
B%	!B((
B6c                    U(       d  [        S5        U S4$ [        R                  R                  UR	                  5       S   5      nSn[        USS9 n[        U5       H  u  pxUS:X  d  M  U(       a  M  US-   nM     S S S 5        Sn	SU;   a  S	n	U(       a5  US
;   a  SU-  n	O)US;   d  SU;   a  SU-  n	OUS;   a  SU-  n	OUS:X  a  SU-  n	SU;   d  US:X  a  [        SU5        O[        SU5        [        R                  " U< SU	< SU< S35      n
U
(       a  [        SXJ5        [        R                  R                  U5      (       d"  [        SU5        [        R                  " S5        SU;   a  g[        USS9 nUR                  5       nS S S 5        WU :X  a  [        S5        XU :g  4$ ! , (       d  f       GN6= f! , (       d  f       N7= f)NzNo editor found!
r   backslashreplace)r   r'   r   r&   vimz-f )vinvirs  elvisgvimkvimz-c :%d)z
elvis-tiny	gnuclienteepiconanozileemacsz+%d)jedxjedz-g %dkatez	--line %d&zASpawning %s in background; please press Enter when done editing.
zSpawning %s...
r%   z ''z)Warning: possible error exit from %s: %d
zBug report file %s removed!r$   )Nr$   z$No changes were made in the editor.
)r   r   r   basenamer-   open	enumerater    existsr   r   read)r   filenameeditorcharsetednameourliner4  linenorU  optsresult
newmessages               r   spawn_editorr    s   #$|WWfllnQ/0F G	h1	2a'lNVt|GG 1* + 
3
 DBBg%DQQF"7?D&W$Dv(D
f}&( #	% 	!6*YYvtX>?F;VL77>>(##,h7
f}	h1	2aVVX
 
3 W67g-..[ 
3	2N 
3	2s$   F-,F-5	F-=F?-
F<?
Gc                      g)NTrb   rb   r   r   
initializer  E  s    r   c                  >    [         R                  R                  5       $ r   )r   r   re   rb   r   r   	can_inputr  I  s    99r   )r&   r   N)NNN)NF)TF)NNFFr&   Nr   )NFr&   )NFr&   r=  N)Nr&   Fr&   Nr=  FNFNNF)zutf-8)Er   r   r   rY  r   ry   r   r   r.   r?  
contextlibr   rf   ImportErrorr<   r   r   reportbug.exceptionsr   r   r   r	   r
   reportbug.urlutilsr   reportbug.utilsr   re   r   r  	getoutputr-   r   cr:   rB  r+   r   r   log_messagedisplay_failurer    r7   parse_and_bindset_completer_delimsrJ   objectrL   rp   r   r   r   final_messager   r   r   r   r   r   r   r  r   r  r_  rC  rp  r  r  r  rb   r   r   <module>r     s  ,  	  	        )  . 				
,224DAqFLb#a&,BMD'
 , O,%%c*
F "2A@H
  OT%)&
# D
 37dt"+ (,4D55wx JL/3L^ FHFJEI8=cLh V(EP
 6/rM!  H"  MD'l  s6   E( 1AE7 F (E43E47FFFF