
    =Og                     d   	 d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlmZ  G d de          Zg dZd Zd Z G d d	e          Z G d
 de          Z G d de          ZdZ G d dej        ej                  ZeFg dZ e D ].Z!e e"ede!z             j        #                                dz   z  Z/eej$        j        z  Z[ [!d"dZ%d"dZ&d Z'd Z(dddZ)d#dZ*d Z+dZ,d Z-d Z.dZ/d  Z0e1d!k    rd dl2Z2 e2j0                     dS dS )$    N)Unionc                       e Zd Z	 dS )RestartN)__name__
__module____qualname__     /usr/lib64/python3.11/pdb.pyr   r   Z   s        LDr
   r   )	runpmPdbrunevalrunctxruncall	set_tracepost_mortemhelpc                 Z   t          j        dt          j        |           z            }	 t          j        |          }n# t
          $ r Y d S w xY w|5  t          |d          D ]-\  }}|                    |          r| ||fc cd d d            S .	 d d d            n# 1 swxY w Y   d S )Nzdef\s+%s\s*[(]   )start)recompileescapetokenizeopenOSError	enumeratematch)funcnamefilenamecrefplinenolines         r   find_functionr&   a   s1   
*&8)<)<<
=
=C]8$$   tt 
 2 2%b222 	2 	2LFDyy 261112 2 2 2 2 2 2 22	22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4s)   A   
AA2B B  B$'B$c                     t          t          j        |                     }|                                 |D ]\  }}||k    r|c S dS Nr   )listdisfindlinestartsreverse)codelasti
linestartsir$   s        r   lasti2linenor1   n   s[    c(..//J  	6A::MMM 1r
   c                       e Zd Z	 d ZdS )_rstrc                     | S Nr	   selfs    r   __repr__z_rstr.__repr__y   s    r
   N)r   r   r   r8   r	   r
   r   r3   r3   w   s&        -    r
   r3   c                   f     e Zd Z fdZd Zed             Zed             Zed             Z xZ	S )_ScriptTargetc                     t                                          | t          j                            |                    }||_        |S r5   )super__new__ospathrealpathorig)clsvalres	__class__s      r   r=   z_ScriptTarget.__new__~   s8    ggooc27#3#3C#8#899 
r
   c                    t           j                            |           s*t          d| j        d           t          j        d           t           j                            |           r*t          d| j        d           t          j        d           t           j                            |           t
          j        d<   d S )NzError:zdoes not existr   zis a directoryr   )	r>   r?   existsprintrA   sysexitisdirdirnamer6   s    r   checkz_ScriptTarget.check   s    w~~d## 	(DI'7888HQKKK7== 	(DI'7888HQKKK good++r
   c                     | S r5   r	   r6   s    r   r!   z_ScriptTarget.filename   s    r
   c                 2    t          d| t          d           S )N__main__)r   __file____builtins____spec__)dictrR   r6   s    r   	namespacez_ScriptTarget.namespace   s%    %	
 
 
 	
r
   c                     t          j        |           5 }d|                                d| dcd d d            S # 1 swxY w Y   d S )Nzexec(compile(z, z
, 'exec')))io	open_coderead)r7   r#   s     r   r-   z_ScriptTarget.code   s    \$ 	E2D27799DD$DDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   =AA)
r   r   r   r=   rM   propertyr!   rU   r-   __classcell__)rE   s   @r   r:   r:   }   s            	, 	, 	,   X 
 
 X
 E E XE E E E Er
   r:   c                       e Zd Zd Zej        d             Zed             Zed             Z	ed             Z
ed             ZdS )_ModuleTargetc                     	 | j          d S # t          $ r1}t          d|            t          j        d           Y d }~d S d }~wt
          $ r+ t          j                     t          j        d           Y d S w xY w)NzImportError: r   )_detailsImportErrorrH   rI   rJ   	Exception	traceback	print_exc)r7   es     r   rM   z_ModuleTarget.check   s    	MMMM 	 	 	%!%%&&&HQKKKKKKKKK 	 	 	!!!HQKKKKKK	s    
A9&A4A98A9c                 4    dd l }|                    |           S r(   )runpy_get_module_details)r7   rf   s     r   r_   z_ModuleTarget._details   s    ((...r
   c                     | j         j        S r5   )r-   co_filenamer6   s    r   r!   z_ModuleTarget.filename   s    y$$r
   c                     | j         \  }}}|S r5   r_   r7   namespecr-   s       r   r-   z_ModuleTarget.code       =dDr
   c                     | j         \  }}}|S r5   rk   rl   s       r   _specz_ModuleTarget._spec   ro   r
   c                     t          dt          j                            t          j                            | j                            | j        j        | j        j        | j        t                    S )NrP   )r   rQ   __package__
__loader__rS   rR   )
rT   r>   r?   normcaseabspathr!   rq   parentloaderrR   r6   s    r   rU   z_ModuleTarget.namespace   sW    W%%bgoodm&D&DEE
)z(Z%
 
 
 	
r
   N)r   r   r   rM   	functoolscached_propertyr_   rZ   r!   r-   rq   rU   r	   r
   r   r]   r]      s           / / / % % X%   X   X 
 
 X
 
 
r
   r]   z
-> c                      e Zd ZdZ	 	 dXdZd Zd Zd Zd	 Zd
 Z	d Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZeZdYdZd ZeZeZ eZ!d  Z"eZ#d! Z$d" Z%d# Z&eZ'd$ Z(eZ)d% Z*eZ+d& Z,eZ-d' Z.e.Z/eZ0eZ1d( Z2e2Z3e2Z4d) Z5d* Z6e6Z7d+ Z8e8Z9d, Z:e:Z;d- Z<e<Z=d. Z>e>Z?d/ Z@e@ZAd0 ZBeBZCd1 ZDeDxZEZFd2 ZGeGZHd3 ZIeZJd4 ZKeKZLeKZMd5 ZNd6 ZOeOZPd7 ZQeQZRd8 ZSdZd9ZTd: ZUd; ZVd< ZWd= ZXd> ZYeZZeZ[eZ\d? Z]e]Z^d@ Z_e_Z`dA ZaeZbd[dCZcdD ZdeZedE ZfeZgdF ZhdG ZidH ZjdI ZkdJ ZldK Zmg dLZndM ZoepfdNZqdO ZrerZsdP ZtdQ ZudR ZvdSewexeyf         fdTZzdUe{fdVZ|dW Z}dS )\r   NtabFTc                 r   t           j                            | |           t          j                            | |||           t          j        d           |rd| _        d| _        i | _	        i | _
        d| _        d| _        i | _        	 dd l}|                    d           n# t           $ r Y nw xY wd| _        || _        g | _        |r	 t)          t*          j                            d          d	
          5 }| j                            |           d d d            n# 1 swxY w Y   n# t2          $ r Y nw xY w	 t)          dd	
          5 }| j                            |           d d d            n# 1 swxY w Y   n# t2          $ r Y nw xY wi | _        i | _        i | _        d| _        d | _        d S )N)skipzpdb.Pdbr   z(Pdb)  Fz 	
`@#$%^&*()=+[{]}\|;:'",<>?z~/.pdbrczutf-8)encodingz.pdbrc)bdbBdb__init__cmdCmdrI   audituse_rawinputpromptaliases
displaying
mainpyfile_wait_for_mainpyfile	tb_linenoreadlineset_completer_delimsr`   allow_kbdintnosigintrcLinesr   r>   r?   
expanduserextendr   commandscommands_dopromptcommands_silentcommands_definingcommands_bnum)	r7   completekeystdinstdoutr~   r   readrcr   rcFiles	            r   r   zPdb.__init__   sk   D))){E6:::	) 	" !D$)!	OOO))*MNNNN 	 	 	D	!   
	"',,Z887KKK 0vL''///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   (W555 0L''///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    !#!!&!s~   B& &
B32B3.D/ <D#D/ #D''D/ *D'+D/ /
D<;D< F E8,F 8E<<F ?E< F 
FFc                     | j         rt          |                     d           |                                  |                     |           d S )Nz-
Program interrupted. (Use 'cont' to resume).)r   KeyboardInterruptmessageset_stepr   )r7   signumframes      r   sigint_handlerzPdb.sigint_handler	  sK     	$##EFFFur
   c                 l    t           j                            |            |                                  d S r5   )r   r   resetforgetr6   s    r   r   z	Pdb.reset  s'    dr
   c                 p    d | _         g | _        d| _        d | _        | j                                         d S r(   )r$   stackcurindexcurframer   clearr6   s    r   r   z
Pdb.forget  s8    
r
   c                    |                                   |                     ||          \  | _        | _        |r7t	          |j        j        |j                  }|| j        |j        <   |j	        }|7| j        | j                 d         | _
        | j
        j        | _        | j        rd | j        D             | _        g | _        d S d S )Nr   c                     g | ]?}|                                 |                                                     d           =|@S )#)strip
startswith).0r%   s     r   
<listcomp>zPdb.setup.<locals>.<listcomp>,  sT       ::<<(,

(?(?(D(D  r
   )r   	get_stackr   r   r1   tb_framef_codetb_lastir   tb_nextr   f_localscurframe_localsr   cmdqueue)r7   ftbr$   s       r   setupz	Pdb.setup  s    $(NN1b$9$9!
DM 	 ""+"4bkBBF*0DN2;'B  	 
4=1!4  $}5< 	 !%  DM DLLL	 	r
   c                     	 | j         rd S |                     |          r-|                     d           |                     |d            d S d S )Nz--Call--)r   	stop_herer   interaction)r7   r   argument_lists      r   	user_callzPdb.user_call4  sc    	7$ 	F>>%   	*LL$$$UD)))))	* 	*r
   c                     	 | j         r<| j        |                     |j        j                  k    s|j        dk    rd S d| _         |                     |          r|                     |d            d S d S )Nr   F)r   r   canonicr   ri   f_linenobp_commandsr   )r7   r   s     r   	user_linezPdb.user_line=  s    I$ 	.4<<0H#I#III>Q&&(-D%E"" 	*UD)))))	* 	*r
   c                    	 t          | dd          r| j        | j        v r| j        }d| _        | j        }|                     |d            | j        |         D ]}|                     |           || _        | j        |         s%|                     | j        | j	                            | j
        |         r|                                  |                                  d S dS )N	currentbpFr   r   )getattrr   r   lastcmdr   onecmdr   print_stack_entryr   r   r   _cmdloopr   )r7   r   r   lastcmd_backr%   s        r   r   zPdb.bp_commandsG  s    	 4e,, 	~..IDN<LJJud###i0 " "D!!!!'DL'	2 B&&tz$-'@AAA%i0  KKMMMFqr
   c                     	 | j         rd S ||j        d<   |                     d           |                     |d            d S )N
__return__z
--Return--)r   r   r   r   )r7   r   return_values      r   user_returnzPdb.user_return_  sO    E$ 	F'3|$\"""%%%%%r
   c                    	 | j         rd S |\  }}}||f|j        d<   |s|t          u rdnd}|                     |t	          j        ||          d                                                    |                     ||           d S )N__exception__z	Internal r   )r   r   StopIterationr   rb   format_exception_onlyr   r   )r7   r   exc_infoexc_type	exc_valueexc_tracebackprefixs          r   user_exceptionzPdb.user_exceptiong  s    	C$ 	F-5*)]*2I*=' &3 K(0M(A(A HJ 	vv+Hi@@DJJLLLN 	O 	O 	O.....r
   c                     	 	 d| _         |                                  d| _         d S # t          $ r |                     d           Y nw xY wK)NTFz--KeyboardInterrupt--)r   cmdloopr   r   r6   s    r   r   zPdb._cmdloop{  si    		66 %)!$)!$ 6 6 64555556		6s   "' A	A	c                 V   | j                             | j                  }|r|                                D ]r\  }}|                     |          }||urR||k    rL|||<   |                     d|d|                     ||          d|                     ||          d           qd S d S )Ndisplay : z  [old: ])r   getr   items_getval_exceptr   
_safe_repr)r7   r   exproldvaluenewvalues        r   preloopzPdb.preloop  s    _((77
 
	D","2"2"4"4 	D 	Dh..t44 8++H0D0D'/Jt$LLL"&$$$(G(G(G(G"&//(D"A"A"A"A"C D D D
	D 
	D	D 	Dr
   c                    t           j        rG	 t          j        t          j        t           j                   d t           _        n# t          $ r Y nw xY w|                     ||           | j        s%|                     | j        | j	                            | 
                                 |                                  d S r5   )r   _previous_sigint_handlersignalSIGINT
ValueErrorr   r   r   r   r   r   r   )r7   r   rb   s      r   r   zPdb.interaction  s    ' 	44fmS-IJJJ 04,,     	

5)$$$} 	>""4:dm#<===s   )A 
AAc                 T    	 |$|                      t          |                     d S d S r5   )r   repr)r7   objs     r   displayhookzPdb.displayhook  s3    	 ?LLc##### ?r
   c                 *   |d d         dk    r
|dd          }| j         }| j        j        }	 t          |dz   dd          }t          j        }t          j        }t          j        }	 | j        t          _        | j        t          _        | j        t          _        t          |||           |t          _        |t          _        |t          _        d S # |t          _        |t          _        |t          _        w xY w#  | 	                                 Y d S xY w)Nr   !
z<stdin>single)
r   r   	f_globalsr   rI   r   r   r   exec
_error_exc)r7   r%   localsglobalsr-   save_stdout
save_stdinsave_displayhooks           r   defaultzPdb.default  s    8s??48D%-)	4$;	8<<D*KJ"3 J	![
"&"2T7F+++(
&	"2 )
&	"22222	OOs$   8C9 &AC *$C9 &C66C9 9Dc                    	 |                                 s|S |                                }|d         | j        v r| j        |d                  }d}|dd          D ]-}|                    dt	          |          z   |          }|dz  }.|                    dd                    |dd                              }|                                }|d         | j        v |d         dk    rq|                    d          }|dk    rV||dz   d                                          }| j        	                    d|           |d |         
                                }|S )	Nr   r   %z%* aliasz;;   )r   splitr   replacestrjoinfindlstripr   insertrstrip)r7   r%   argsiitmpArgmarkernexts          r   precmdz
Pdb.precmd  sT   8zz|| 	Kzz||1g%%<Q(DBqrr(  ||C#b''M&,. .a<<chhtABBx&8&899D::<<D 1g%% 7gYYt__F{{F1HII--//$$Q---GVG}++--r
   c                 |    	 | j         s t          j                            | |          S |                     |          S r5   )r   r   r   r   handle_command_def)r7   r%   s     r   r   z
Pdb.onecmd  s>    	 % 	17>>$---**4000r
   c                    	 |                      |          \  }}}|sdS |dk    rd| j        | j        <   dS |dk    rdS | j        | j                 }|r|                    |dz   |z              n|                    |           	 t          | d|z             }n# t          $ r
 | j        }Y nw xY w|j        | j	        v rd| j
        | j        <   dS dS )NFsilentTendr  do_)	parseliner   r   r   appendr   AttributeErrorr  r   commands_resumingr   )r7   r%   r   argcmdlistfuncs         r   r  zPdb.handle_command_def  s   F--S$ 	5(??7;D !345E\\4- 23 	 NN3s73;''''NN3	 4--DD 	  	  	 <DDD	  =D2229>D"4#564us   B B,+B,c                 2    t          || j                   d S )NfilerH   r   r7   msgs     r   r   zPdb.message  s    c$$$$$$r
   c                 4    t          d|| j                   d S )Nz***r&  r(  r)  s     r   errorz	Pdb.error  s    eSt{++++++r
   c                 8   |                                                     d          rg S 	 |                     ||||          }n# t          $ r g }Y nw xY wt	          j        t	          j        |          dz             }|D ]}t          j                            |          r|	                    |dz              :t          j        
                    |          r?|                                                    d          r|	                    |dz              |S )N):,*/).pyz.pywr.  )r   endswith_complete_expressionra   globr   r>   r?   rK   r  isfilelower)r7   textr%   begidxendidxretglobsfns           r   _complete_locationzPdb._complete_location  s   ::<<  ,, 	I	++D$GGCC 	 	 	CCC	 	$+d++c122 	% 	%Bw}}R   %

28$$$$## %

(;(;O(L(L %

28$$$
s   A AAc                 X    fdt          t          j        j                  D             S )Nc                 |    g | ]8\  }}|t          |                                        )t          |          9S r5   )r  r   )r   r0   bpr8  s      r   r   z*Pdb._complete_bpnumber.<locals>.<listcomp>$  sG     ? ? ?51b>c!ff&7&7&=&=> A!>>r
   )r   r   
Breakpoint
bpbynumberr7   r8  r%   r9  r:  s    `   r   _complete_bpnumberzPdb._complete_bpnumber   s:    ? ? ? ?Icn.G$H$H ? ? ? 	?r
   c                   	 | j         sg S i | j         j        | j        }dv r                    d          	 |d                  }dd         D ]}t	          ||          }n# t
          t          f$ r g cY S w xY wd                    d d                   dz   		fdt          |          D             S fd|	                                D             S )N.r   r   r   c                 P    g | ]"}|                     d                    |z   #S )r   r   )r   ndottedr   s     r   r   z,Pdb._complete_expression.<locals>.<listcomp>;  s2    MMM1ALL4L4LMFQJMMMr
   c                 >    g | ]}|                               |S r	   rI  )r   rJ  r8  s     r   r   z,Pdb._complete_expression.<locals>.<listcomp>>  s*    ???!ALL,>,>?A???r
   )
r   r   r   r
  r   KeyErrorr   r  dirkeys)
r7   r8  r%   r9  r:  nsr   partrK  r   s
    `      @@r   r4  zPdb._complete_expression'  s   } 	I A'@4+?@$;; ZZ__Fm"1R4L - -D!#t,,CC-n-   			XXfSbSk**S0FMMMMMCMMMM @???rwwyy????s   +A( (A>=A>c                 `   	 |s"t          t          j        j                  dz
  }n.	 t	          |          }n#  |                     d           Y d S xY w	 |                     |           n0# t          $ r#}|                     d|z             Y d }~d S d }~ww xY w|| _        || j	        v r'| j	        |         | j
        |         | j        |         f}nd }g | j	        |<   d| j
        |<   d| j        |<   | j        }d| _        d| _        	 |                                  np# t          $ rc |r1|d         | j	        |<   |d         | j
        |<   |d         | j        |<   n| j	        |= | j
        |= | j        |= |                     d	           Y nw xY wd| _        || _        d S # d| _        || _        w xY w)
Nr   z.Usage: commands [bnum]
        ...
        endzcannot set commands: %sTFz(com) r   r	  z1command definition aborted, old commands restored)lenr   rB  rC  intr,  get_bpbynumberr   r   r   r   r   r   r   r   r   )r7   r"  bnumerrold_command_defsprompt_backs         r   do_commandszPdb.do_commandsD  s%   #	H  	s~011A5DD3xx

MNNN	%%%% 	 	 	JJ036777FFFFF	 "4=   $d 3 $ 6t < $ 4T : <  $ d'+t$%*T"k!%	&LLNNNN  
	L 
	L 
	L /&6q&9d#/?/B&t,-=a-@$T**M$'*40(.JJJKKKKK
	L &+D"%DKKK &+D"%DK%%%%sL   7 AA+ +
B5BBD F A*F
F 	F

F F-r   c                    	 |s[| j         rR|                     d           t          j        j        D ]+}|r'|                     |                                           ,d S d }d }d }|                    d          }|dk    r;||dz   d                                          }|d |                                         }|	                    d          }d }	|dk    r|d |                                         }| 
                    |          }
|
s|                     d|z             d S |
}||dz   d                                          }	 t          |          }n# t          $ r |                     d|z             Y d S w xY w	 t          |          }n# t          $ r 	 t          || j        j        | j                  }n	#  |}Y nxY w	 t%          |d          r|j        }|j        }|j        }	|j        }|j        }nO#  |                     |          \  }}}|s|                     d	|z             Y Y d S |}	t          |          }Y nxY wY nw xY w|s|                                 }|                     ||          }|rz|                     |||||	          }|r|                     |           d S |                     ||          d
         }|                     d|j        |j        |j        fz             d S d S )Nz!Num Type         Disp Enb   Wherer/  r   r   r.  z%r not found from sys.pathzBad lineno: %s__func__zJThe specified object %r is not a function or was not found along sys.path.r   zBreakpoint %d at %s:%d) breaksr   r   rB  rC  bpformatr  r  r  rfindlookupmoduler,  rT  r   evalr   r   r   hasattrr\  __code__co_nameco_firstlinenori   lineinfodefaultFile	checkline	set_break
get_breaksnumberr'  r%   )r7   r"  	temporaryrA  r!   r$   condcommacolonr    r   r$  r-   oklnr%   rW  s                    r   do_breakzPdb.do_break  s~   	  	{ 4@AAA.3 4 4B 4R[[]]333F 199uQwxx=''))Dfuf+$$&&C		#A::6E6{))++H!!(++A 

7(BCCCeAghh-&&((CS   

+c1222
%S % % % $ 7 $ 46 6DDDDD%tZ00 -#}=D  $|H!0F#/HH%)-s););&R2 

 $FHK$L M M M!H WWFFF1%2  	*''))H~~h// 	<..4D(KKC <

3__Xt44R85 i"':; < < < < <	< 	<s`   E "E=<E=F 
I F=<I=GI3G;:I;5I0I4IIIc                 R    	 | j         j        j        }|dk    r| j        r| j        }|S )Nz<string>)r   r   ri   r   )r7   r!   s     r   rg  zPdb.defaultFile  s0    +='3z!!do!Hr
   c                 4    	 |                      |d           d S Nr   )rr  r7   r"  s     r   	do_tbreakzPdb.do_tbreak  s#    	 	c1r
   c                 D   d}|                     d          }t          |          dk    r|d                                         }n0t          |          dk    r|d                                         }n|S |dk    r|S |                     d          }|d         dk    r|d= t          |          dk    r|S |                                 }t          |          dk    r	|d         }n'|                     |d                   }|r|}|d         }t          ||          }	|	p|S )	N)NNN'r   r      r   rG  r7   )r
  rS  r   rg  r`  r&   )
r7   
identifierfailedidstringidpartsfnameitemr   answers
             r   rf  zPdb.lineinfo  s)   ###C((x==A!""$$BB]]a!""$$BBM88F]8va5zzQ  ""u::??8DD !!%(++A 8DtU++r
   c                 H   	 t          | dd           }|r|j        nd }t          j        |||          }|s|                     d           dS |                                }|r(|d         dk    s|d d         dk    s|d d         dk    r|                     d           dS |S )	Nr   zEnd of filer   r   rz  z"""z'''zBlank or comment)r   r   	linecachegetliner   r   r,  )r7   r!   r$   r   r<  r%   s         r   rh  zPdb.checkline,  s    	 j$//#(2d 6599 	LL'''1zz|| 	aC2A2h%D!H$5$5JJ)***1r
   c                    	 |                                 }|D ]p}	 |                     |          }|                                 |                     d|z             E# t          $ r}|                     |           Y d }~id }~ww xY wd S )Nz
Enabled %s)r
  rU  enabler   r   r,  r7   r"  r  r0   rA  rW  s         r   	do_enablezPdb.do_enableB  s    	 yy{{ 	0 	0A0((++ 		\B.////	       

3 	0 	0   A
B'BBc                    	 |                                 }|D ]p}	 |                     |          }|                                 |                     d|z             E# t          $ r}|                     |           Y d }~id }~ww xY wd S )NzDisabled %s)r
  rU  disabler   r   r,  r  s         r   
do_disablezPdb.do_disableS  s    	 yy{{ 	1 	1A1((++ 

]R/0000	       

3 	1 	1r  c                    	 |                     dd          }	 |d         }n# t          $ r d }Y nw xY w	 |                     |d                                                   }||_        |s|                     d|j        z             d S |                     d|j        z             d S # t          $ r |                     d           Y d S t          $ r }|                     |           Y d }~d S d }~ww xY w)Nr  r   r   z#Breakpoint %d is now unconditional.z$New condition set for breakpoint %d.Breakpoint number expected)	r
  
IndexErrorrU  r   rm  r   rk  r,  r   )r7   r"  r  rm  rA  rW  s         r   do_conditionzPdb.do_conditiong  s1   	 yya  	7DD 	 	 	DDD		Q$$T!W]]__55B BG QBRYNOOOOOCbiOPPPPP  	5 	5 	5JJ3444444 	 	 	JJsOOOOOOOOO	s)   " 11-B) )C4	C4C//C4c                 >   	 |                                 }	 t          |d                                                   }n	#  d}Y nxY w	 |                     |d                                                   }||_        |dk    r/|dk    rd|z  }nd}|                     d||j        fz             d S |                     d|j        z             d S # t          $ r |                     d           Y d S t          $ r }|                     |           Y d }~d S d }~ww xY w)Nr   r   z%d crossingsz
1 crossingz%Will ignore next %s of breakpoint %d.z-Will stop next time breakpoint %d is reached.r  )
r
  rT  r   rU  ignorer   rk  r  r,  r   )r7   r"  r  countrA  countstrrW  s          r   	do_ignorezPdb.do_ignore  sc   	 yy{{	Q((EE	EEE	*$$T!W]]__55B BIqyy199-5HH+HD&	23 4 4 4 4 4 L!y) * * * * *  	5 	5 	5JJ3444444 	 	 	JJsOOOOOOOOO	s'   '? A	-C D3	D<DDc                    	 |s	 t          d          }n# t          $ r d}Y nw xY w|                                                                }|dv rLd t          j        j        D             }|                                  |D ]}|                     d|z             d S d|v r|	                    d          }|d |         }||dz   d          }	 t          |          }|                     ||          d d          }|                     ||          }n# t          $ r d|z  }Y nw xY w|r|                     |           n|D ]}|                     d|z             d S |                                }	|	D ]q}	 |                     |          }|                     |           |                     d|z             F# t          $ r}|                     |           Y d }~jd }~ww xY wd S )	NzClear all breaks? no)yyesc                     g | ]}||S r	   r	   )r   rA  s     r   r   z Pdb.do_clear.<locals>.<listcomp>  s    GGGBG"GGGr
   z
Deleted %sr.  r   zInvalid line number (%s))inputEOFErrorr   r7  r   rB  rC  clear_all_breaksr   r_  rT  rj  clear_breakr   r,  r
  rU  clear_bpbynumber)
r7   r"  replybplistrA  r0   r!   r$   rW  
numberlists
             r   do_clearzPdb.do_clear  s]   	  	233   KKMM''))E$$GGs~'@GGG%%'''  4 4BLL!23333F#::		#A2A2wHacdd)C9S 6::111=&&x88	  7 7 70367
  4

3  4 4BLL!23333FYY[[
 	0 	0A0((++ %%a(((\B.////	       

3 	0 	0s6    $$D D&%D&9F<<
G%G  G%c                 0    	 |                                   d S r5   )print_stack_tracerv  s     r   do_wherezPdb.do_where  s!    	
 	     r
   c                     || _         | j        | j                  d         | _        | j        j        | _        |                     | j        | j                             d | _        d S r(   )r   r   r   r   r   r   r$   )r7   rk  s     r   _select_framezPdb._select_frame  sS    
4=1!4#}5tz$-8999r
   c                 0   	 | j         dk    r|                     d           d S 	 t          |pd          }n)# t          $ r |                     d|z             Y d S w xY w|dk     rd}nt	          d| j         |z
            }|                     |           d S )Nr   zOldest framer   Invalid frame count (%s))r   r,  rT  r   maxr  r7   r"  r  newframes       r   do_upz	Pdb.do_up  s    	 =AJJ~&&&F	qMMEE 	 	 	JJ1C7888FF	 199HH1dme344H8$$$$$s   7 "AAc                    	 | j         dz   t          | j                  k    r|                     d           d S 	 t	          |pd          }n)# t
          $ r |                     d|z             Y d S w xY w|dk     rt          | j                  dz
  }n-t          t          | j                  dz
  | j         |z             }|                     |           d S )Nr   zNewest framer  r   )r   rS  r   r,  rT  r   minr  r  s       r   do_downzPdb.do_down  s    	 =1DJ//JJ~&&&F	qMMEE 	 	 	JJ1C7888FF	 1994:*HH3tz??Q.0EFFH8$$$$$s   A "A21A2c                 
   	 |rb	 t          |          }n)# t          $ r |                     d|z             Y d S w xY w|| j        j        k    r|                     d           d S nd }|                     | j        |           dS )NError in argument: %rz7"until" line number is smaller than current line numberr   )rT  r   r,  r   r   	set_until)r7   r"  r$   s      r   do_untilzPdb.do_until  s    	  	S   

2S8999 ///

 ) * * * 0
 Ft}f---qs    ";;c                 0    	 |                                   dS ru  )r   rv  s     r   do_stepzPdb.do_step*  s    	
 	qr
   c                 <    	 |                      | j                   dS ru  )set_nextr   rv  s     r   do_nextzPdb.do_next4  s"    	 	dm$$$qr
   c                    	 |r}dd l }t          j        dd         }	 |                    |          t          _        n3# t          $ r&}|                     d|d|           Y d }~d S d }~ww xY w|t          j        d d<   t          )Nr   r   zCannot run r   )shlexrI   argvr
  r   r,  r   )r7   r"  r  argv0rd   s        r   do_runz
Pdb.do_run=  s    	  	!LLLHQqSME ;;s++   


###qq9::: !CHRaRLs   = 
A-A((A-c                 <    	 |                      | j                   dS ru  )
set_returnr   rv  s     r   	do_returnzPdb.do_returnR  s"    	 	&&&qr
   c                     	 | j         s@	 t          j        t          j        | j                  t          _        n# t          $ r Y nw xY w|                                  dS ru  )r   r   r   r   r   r   r   set_continuerv  s     r   do_continuezPdb.do_continueZ  sr    	 } 		M&-1DEE ,,   
  	qs   .9 
AAc                    	 | j         dz   t          | j                  k    r|                     d           d S 	 t	          |          }	 || j        _        | j        | j                  d         |f| j        | j         <   |                     | j        | j                             d S # t          $ r#}|                     d|z             Y d }~d S d }~ww xY w# t          $ r |                     d           Y d S w xY w)Nr   z)You can only jump within the bottom framer   zJump failed: %sz)The 'jump' command requires a line number)	r   rS  r   r,  rT  r   r   r   r   )r7   r"  rd   s      r   do_jumpzPdb.do_jumpl  s&   		 =1DJ//JJBCCCF	2c((C2 *-&,0Jt},Ea,H#,M
4=)&&tz$-'@AAAAA 2 2 2

,q01111111112  	D 	D 	DJJBCCCCCC	Ds*   C 
AB$ $
C.CCC76C7c                    	 t          j        d            | j        j        }| j        }t          | j        | j        | j                  }d| j	        
                                z  |_	        |                     d           	 t          j        |j        |||f           n$# t          $ r |                                  Y nw xY w|                     d           t          j        | j                   |j        | _        d S )Nz(%s) zENTERING RECURSIVE DEBUGGERzLEAVING RECURSIVE DEBUGGER)rI   settracer   r   r   r   r   r   r   r   r   r   call_tracingr   ra   r   trace_dispatchr   )r7   r"  r   r   ps        r   do_debugzPdb.do_debug  s    	
 	T-)% $*dk::T[..0002333	QUS'6$:;;;; 	 	 	OO	1222T()))ys    B B?>B?c                 >    	 d| _         |                                  dS )NTr   )_user_requested_quitset_quitrv  s     r   do_quitzPdb.do_quit  s#    	 %)!qr
   c                 h    	 |                      d           d| _        |                                  dS )Nr   Tr   )r   r  r  rv  s     r   do_EOFz
Pdb.do_EOF  s5    	 	R$(!qr
   c           	         	 | j         j        }| j        }|j        |j        z   }|j        t          j        z  r|dz   }|j        t          j        z  r|dz   }t          |          D ]`}|j
        |         }||v r5|                     |d|                     ||         |                     H|                     |d           ad S )Nr    = z = *** undefined ***)r   r   r   co_argcountco_kwonlyargcountco_flagsinspect
CO_VARARGSCO_VARKEYWORDSrangeco_varnamesr   r   )r7   r"  corT   rJ  r0   rm   s          r   do_argszPdb.do_args  s    	 ]!#NR11;++41Q;//8QqSq 	A 	AA>!$Dt||$$$T
D0Q0Q0QRSSSS?@@@@	A 	Ar
   c                     	 d| j         v r6|                     |                     | j         d         d                     d S |                     d           d S )Nr   retvalzNot yet returned!)r   r   r   r,  rv  s     r   	do_retvalzPdb.do_retval  s^    	 4///LL)=l)KXVVWWWWWJJ*+++++r
   c                 x    	 t          || j        j        | j                  S #  |                                   xY wr5   )ra  r   r   r   r   rv  s     r   _getvalzPdb._getval  s=    	T]4d6JKKK	OOs   " 9c                 2   	 | t          || j        j        | j                  S t          ||j        |j                  S #  t          j                    d d         }t          j        | d         	                                }t          d|z            cY S xY w)Nr	  r   z** raised %s **)ra  r   r   r   r   rI   r   rb   r   r   r3   )r7   r"  r   r   rW  s        r   r   zPdb._getval_except  s    	2}C!8$:NOOOC%.AAA	2|~~bqb)H18<R@FFHHC*S011111s   !? ? ABc                     t          j                    d d         }|                     t          j        | d                                                    d S )Nr	  r   )rI   r   r,  rb   r   r   )r7   r   s     r   r   zPdb._error_exc  sG    <>>"1"%

92H=bAGGIIJJJJJr
   c                     	 |                      |          }n#  Y d S xY w	 |                      ||                     d S #  |                                  Y d S xY wr5   )r  r   r   )r7   r"  r$  rC   s       r   _msg_val_funczPdb._msg_val_func  sq    	,,s##CC	FF	LLc#####	OOs    A Ac           	          	 t          |          S # t          $ r3}t          d| d|                     |           d          cY d }~S d }~ww xY w)Nz	*** repr(z
) failed: z ***)r   ra   r3   _format_exc)r7   r   r   rd   s       r   r   zPdb._safe_repr  sv    	P99 	P 	P 	PNTNNT5E5Ea5H5HNNNOOOOOOOO	Ps    
A(A	A	Ac                 >    	 |                      |t                     d S r5   )r  r   rv  s     r   do_pzPdb.do_p  s%    	 	3%%%%%r
   c                 H    	 |                      |t          j                   d S r5   )r  pprintpformatrv  s     r   do_ppz	Pdb.do_pp  s'    	 	3/////r
   c                 `   	 d| _         d }|r|dk    r	 d|v rf|                    d          \  }}t          |                                          }t          |                                          }||k     r||z   }n4t          |                                          }t	          d|dz
            }n^# t
          $ r |                     d|z             Y d S w xY w| j        |dk    rt	          d| j        j	        dz
            }n
| j        dz   }||dz   }| j        j
        j        }|                    d          r6| j        j                            d	          }t          |t                     r|}|                     |          }	 t%          j        || j        j                  }|                     ||dz
  |         ||| j                   t+          |t-          |                    | _        t-          |          |k     r|                     d
           d S d S # t0          $ r Y d S w xY w)Nr)   rG  r/  r      r  
   z<frozenrQ   z[EOF])r   r
  rT  r   r  r   r,  r$   r   r   r   ri   r   r   r   
isinstancer  get_file_breaksr  getlines_print_linesr  rS  r   r   )r7   r"  lastfirstr!   tmp	breaklistliness           r   do_listzPdb.do_list  sI   	  	$3#::#::"%))C..KE4..Etzz||,,De||$t|		,,E519--E   

2S8999 [ C3JJ4=1A566EEK!OE<2:D='3 y)) 	-)--j99C#s## ((22		&x1HIIEeE!GDL15)"m- - -dCJJ//DK5zzD  W%%%%% !   	 	 	DD	s%   BB3 3"CC
BH 
H-,H-c                 &   	 | j         j        j        }|                     |          }	 |                     | j                   \  }}n-# t
          $ r }|                     |           Y d }~d S d }~ww xY w|                     |||| j                    d S r5   )r   r   ri   r  _getsourcelinesr   r,  r  )r7   r"  r!   r  r  r$   rW  s          r   do_longlistzPdb.do_longlist=  s    	 ='3((22		 00??ME66 	 	 	JJsOOOFFFFF	 	%DMBBBBBs   A 
A1A,,A1c                    	 	 |                      |          }n#  Y d S xY w	 |                     |          \  }}n4# t          t          f$ r }|                     |           Y d }~d S d }~ww xY w|                     ||           d S r5   )r  r   r   	TypeErrorr,  r  )r7   r"  r   r  r$   rW  s         r   	do_sourcezPdb.do_sourceK  s    		,,s##CC	FF	 0055ME66# 	 	 	JJsOOOFFFFF	 	%(((((s    ; A,A''A,r	   c                    	 |r#|j         }| j                            |d          }ndx}}t          ||          D ]\  }}t	          |                              d          }	t          |	          dk     r|	dz  }	||v r|	dz  }	n|	dz  }	||k    r|	dz  }	n||k    r|	dz  }	|                     |	dz   |                                z              d S )	Nr   rz     r  Bz->z>>	)	r   r   r   r   r  rjustrS  r   r  )
r7   r  r   r]  r   current_lineno
exc_linenor$   r%   ss
             r   r  zPdb._print_lines\  s    % 	-"^N++E266JJ*,,NZ%eU33 	3 	3LFDF!!!$$A1vvzzSSS''T	:%%T	LLTDKKMM12222	3 	3r
   c                    	 	 |                      |          }n#  Y d S xY wd }	 |j        j        }n# t          $ r Y nw xY w|r|                     d|j        z             d S 	 |j        }n# t          $ r Y nw xY w|r|                     d|j        z             d S |j        t          u r'|                     d|j        d|j	                   d S |                     t          |                     d S )Nz	Method %szFunction %szClass rG  )
r  r\  rc  ra   r   rd  rE   typer   r   )r7   r"  valuer-   s       r   	do_whatiszPdb.do_whatisq  s7   		LL%%EE	FF	>*DD 	 	 	D	 	LLt|3444F	>DD 	 	 	D	 	LL5666F?d""LLL%*:*:*:E<N<NOPPPFT%[[!!!!!s&    1 
>>#A+ +
A87A8c           	         	 |s}|                      d           | j                            | j        i                                           D ]3\  }}|                      |d|                     ||                     4d S |                     |          }|| j                            | j        i           |<   |                      d|d|                     ||                     d S )NzCurrently displaying:r   r   )r   r   r   r   r   r   r   
setdefault)r7   r"  keyrC   s       r   
do_displayzPdb.do_display  s    	  	NLL0111 O//rBBHHJJ J JSdooc3.G.G.GHIIIIJ J %%c**CADDO&&t}b99#>LLLSSS$//#s2K2K2KLMMMMMr
   c                     	 |rM	 | j                             | j        i           |= d S # t          $ r |                     d|z             Y d S w xY w| j                             | j        d            d S )Nznot displaying %s)r   r   r   rM  r,  poprv  s     r   do_undisplayzPdb.do_undisplay  s    	  	56O''r::3??? 6 6 6

.45555556 Ot44444s   !( "AAc                 \    fd| j                             | j        i           D             S )Nc                 >    g | ]}|                               |S r	   rI  )r   rd   r8  s     r   r   z*Pdb.complete_undisplay.<locals>.<listcomp>  s9     ' ' 'a<<%%' ' ' 'r
   )r   r   r   rD  s    `   r   complete_undisplayzPdb.complete_undisplay  sA    ' ' ' '4?..t}bAA ' ' ' 	'r
   c                 ^    	 i | j         j        | j        }t          j        d|           d S )Nz*interactive*)local)r   r   r   r-   interact)r7   r"  rP  s      r   do_interactzPdb.do_interact  s<    	
 A'@4+?@oR000000r
   c                 <   	 |                                 }t          |          dk    rRt          | j                                                  }|D ]'}|                     |d| j        |                    (d S t          |          dk    rc|d         | j        v r3|                     |d         d| j        |d                             d S |                     d|d          d           d S d                    |dd                    | j        |d         <   d S )Nr   r  r   zUnknown alias 'ry  r  )r
  rS  sortedr   rO  r   r,  r  )r7   r"  r  rO  r  s        r   do_aliaszPdb.do_alias  s#   	. yy{{t99>>$,++--..D G G%%%e1D1DEFFFFFt99>>Aw$,&&$q'''4<Q3H3HIJJJJJ

7T!W77788888$'HHT!""X$6$6DLa!!!r
   c                     	 |                                 }t          |          dk    rd S |d         | j        v r| j        |d         = d S d S r(   )r
  rS  r   )r7   r"  r  s      r   
do_unaliaszPdb.do_unalias  sV    	 yy{{t99>>667dl""T!W%%% #"r
   c                 *    fd| j         D             S )Nc                 >    g | ]}|                               |S r	   rI  )r   ar8  s     r   r   z(Pdb.complete_unalias.<locals>.<listcomp>  s*    >>>a1<<+=+=>>>>r
   )r   rD  s    `   r   complete_unaliaszPdb.complete_unalias  s    >>>>4<>>>>r
   )r  r  r  r  r  r  c                 h    	 | j         D ]}|                     |           d S # t          $ r Y d S w xY wr5   )r   r   r   )r7   frame_linenos     r   r  zPdb.print_stack_trace  s[    	 $
 5 5&&|44445 5  	 	 	DD	s   # 
11c                     |\  }}|| j         u rd}nd}|                     ||                     ||          z              d S )Nz> z  )r   r   format_stack_entry)r7   r)  prompt_prefixr   r$   r   s         r   r   zPdb.print_stack_entry  sd    $vDM!!FFFV,,\=IIJ 	K 	K 	K 	K 	Kr
   c                    	 |s t           j                            | |          S 	 	 t          | d|z             } |            S # t          $ r t          | d|z             }Y nw xY w	 t
          j        j        dk    r|                     d|z             d S |j	        |                     d|z             d S | 
                    |j	                                                   d S # t          $ r |                     d|z             Y d S w xY w)Nhelp_r  r	  zJNo help for %r; please do not run Python with -OO if you need command helpz&No help for %r; __doc__ string missingzNo help for %r)r   r   do_helpr   r   rI   flagsoptimizer,  __doc__r   r  )r7   r"  topiccommands       r   r/  zPdb.do_help  sG   	  	.7??4---	35gm44uww! 5 5 5!$445 y!Q&&

 68;< = = =&

CcIJJJLL//1122222  	/ 	/ 	/JJ'#-......	/s)   A A# C% "A##C% %"D
Dc                 n    	 |                      | j        j        pd                                           d S )Nr   )r   	help_execr2  r   r6   s    r   r6  zPdb.help_exec0  s7    	 	dn,299;;<<<<<r
   c                 "    t                       d S r5   )r   r6   s    r   help_pdbzPdb.help_pdb<  s    r
   c                 J   	 t           j                            |          r!t           j                            |          r|S t           j                            t
          j        d         |          }t           j                            |          r |                     |          | j        k    r|S t           j                            |          \  }}|dk    r|dz   }t           j                            |          r|S t
          j        D ]}t           j        	                    |          r3t          j
        |          }t           j        	                    |          3t           j                            ||          }t           j                            |          r|c S d S )Nr   r   r2  )r>   r?   isabsrG   r  rI   r   r   splitextislinkreadlink)r7   r!   r   rootextrL   fullnames          r   r`  zPdb.lookupmoduleA  sX   	
 7=="" 	x(@(@ 	OGLL!h//GNN1 	$,,q//T_"D"DHG$$X..	c"99%'H7=="" 	Ox 	  	 G'..)) /+g.. '..)) /w||GX66Hw~~h''   tr
   targetc                    d| _         d| _        |                     |j                  | _        dd l}|j                                         |j                            |j	                   | 
                    |j                   d S )NTFr   )r   r  r   r!   r   rP   __dict__r   updaterU   r   r-   )r7   rA  rP   s      r   _runzPdb._runY  s}     %)!$)!,,v77
 	!!!  !1222r
   excc                 Z    t          j        |          d                                         S )Nr   )rb   r   r   )r7   rF  s     r   r  zPdb._format_excm  s$    .s33B7==???r
   c                 X    t          j        |          \  }}t          d|          }||fS ru  )r  getsourcelinesr  )r7   r   r  r$   s       r   r   zPdb._getsourcelinesp  s/      .s33vQf}r
   )r|   NNNFT)r   r5   )r	   N)~r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r  r   r,  r>  rE  r4  rZ  complete_commandsrr  rg  do_bcomplete_break
complete_brw  complete_tbreakrf  rh  r  complete_enabler  complete_disabler  complete_conditionr  complete_ignorer  do_clcomplete_clearcomplete_clr  do_wdo_btr  r  do_ur  do_dr  do_untr  do_sr  do_nr  
do_restartr  do_rr  do_cdo_contr  do_jr  complete_debugr  do_qdo_exitr  r  do_ar  do_rvr  r   r   r  r   r  r  complete_print
complete_pcomplete_ppr  do_lr  do_llr  complete_sourcer  r  complete_whatisr  complete_displayr  r  r  r!  r#  r'  r!  r  line_prefixr   r/  do_hr6  r8  r`  r   r]   r:   rE  BaseExceptionr  r   r	   r
   r   r   r      s2       #HL(,," ," ," ,"^        2* * ** * *  0& & &/ / /(
6 
6 
6D D D   $ $ $  *  2
1 
1 
1  8% % %, , ,  &? ? ?@ @ @:Q& Q& Q&f +Z< Z< Z< Z<z   D'N#J   )O     B  ,0 0 0 )O1 1 1$ *Q Q Q2 ,* * *B )O-0 -0 -0\ E'N$K! ! ! DE  % % %$ D% % %$ D  , F   D   D  & J   D    ! D72 2 26 D! ! !( *N   DG  A A A D, , , E  	2 	2 	2 	2K K K  P P P& & &0 0 0 *N%J&K6 6 6n DC C C E) ) ) +O3 3 3 3*" " "B +ON N N" ,5 5 5' ' '1 1 1$7 $7 $7L& & &? ? ?/ / /   =H K K K K3 3 36 D
= 
= 
=  
  05!=>    (@} @ @ @ @    r
   r   )"r   wheredownupbreaktbreakr   r  r  r  	conditionr   stepr  untiljumpreturnr  r   continuer)   longlistr  r  ppwhatissourcedisplay	undisplayr  r  unaliasdebugquitr  z

c                 L    t                                          | ||           d S r5   )r   r   	statementr   r   s      r   r   r     s"    EEIIi&)))))r
   c                 H    t                                          | ||          S r5   )r   r   )
expressionr   r   s      r   r   r     s    55==Wf555r
   c                 (    t          | ||           d S r5   )r   r  s      r   r   r     s    	7F#####r
   c                  4     t                      j        | i |S r5   )r   r   )r  kwdss     r   r   r     s    355=$'$'''r
   )headerc                     t                      }|  |j        |             |j        t          j                    j                   d S r5   )r   r   r   rI   	_getframef_back)r  pdbs     r   r   r     sD    
%%CFCM#-//()))))r
   c                     | t          j                    d         } | t          d          t                      }|                                 |                    d |            d S )Nr	  zAA valid traceback must be passed if no exception is being handled)rI   r   r   r   r   r   )tr  s     r   r   r     sg    y LNN1y 6 7 7 	7 	AGGIIIMM$r
   c                  8    t          t          j                   d S r5   )r   rI   last_tracebackr	   r
   r   r   r     s    "#####r
   zimport x; x.main()c                  .    t          t                     d S r5   )r   TESTCMDr	   r
   r   testr    s    LLLLLr
   c                  B    dd l } |                     t                     d S r(   )pydocpagerr2  )r  s    r   r   r     s#    LLL	KKr
   a  usage: pdb.py [-c command] ... [-m module | pyfile] [arg] ...

Debug the Python program given by pyfile. Alternatively,
an executable module or package to debug can be specified using
the -m switch.

Initial commands are read from .pdbrc files in your home directory
and in the current directory, if they exist.  Commands supplied with
-c are executed after commands from .pdbrc files.

To let the script run until an exception occurs, use "-c continue".
To let the script run up to a given line X in the debugged file, use
"-c 'until X'".c            	      8   dd l } |                      t          j        dd          dddg          \  }}|s(t          t                     t          j        d           t          d |D                       r't          t                     t          j                     d |D             }t          d	 |D                       }|rt          nt          } ||d                   }|	                                 |t          j        d d <   t                      }|j                            |           	 	  |j        |           |j        rd S t          d           n># t          $ rK t          d|d           t          dd                    t          j        dd                    z              Y nt"          $ r: t          dd           t          t          j                    d                    Y nt&          $ r* t)          j                     t          j        d           Y nv t)          j                     t          d           t          d           t          j                    d         } |j        d |           t          d|z   dz              Y nxY wk)Nr   r   zmhc:r   zcommand=r	  c              3   $   K   | ]\  }}|d v V  dS ))z-hz--helpNr	   r   optoptargs      r   	<genexpr>zmain.<locals>.<genexpr>  s,      
;
;{sF3""
;
;
;
;
;
;r
   c                      g | ]\  }}|d v 	|S ))z-cz	--commandr	   r  s      r   r   zmain.<locals>.<listcomp>  s'    MMM;3#9L2L2L2L2L2Lr
   c              3   $   K   | ]\  }}|d v V  dS ))z-mNr	   r  s      r   r  zmain.<locals>.<genexpr>  s*      AA[S&3&=AAAAAAr
   Tz*The program finished and will be restarted
Restartingzwith arguments:r  r  z/The program exited via sys.exit(). Exit status:)r  z2Uncaught exception. Entering post mortem debuggingz1Running 'cont' or 'step' will restart the programz#Post mortem debugger finished. The z will be restarted)getoptrI   r  rH   _usagerJ   anyr]   r:   rM   r   r   r   rE  r  r   r  
SystemExitr   SyntaxErrorrb   rc   r   )	r  optsr  r   module_indicatedrB   rA  r  r  s	            r   mainr    s   MMMsx|Vfj5IJJJD$ f

;
;d
;
;
;;; f


MM$MMMHAADAAAAA+
>--CSa\\F
LLNNNCHQQQK %%CKx   (	(CHV' >???? 	1 	1 	1,(9:::$#(122,///00000 	% 	% 	%CMMMM#,..#$$$$$ 	 	 	!!!HQKKKKK	(!!!FGGGEFFFq!ACOD!$$$7&@&' ( ( ( ( (-(s'   2E E AJ0A J20J$A1JrP   )NNr5   )3r>   rW   r   rI   r   r   r*   r-   r5  r  r   r  r   ry   rb   r  typingr   ra   r   __all__r&   r1   r  r3   r:   r]   ro  r   r   r   r2  _help_order_commandr   r   r6  r   r   r   r   r   r   r   r  r  r   r  r  r   r  r	   r
   r   <module>r     s<  ?F 
			 				 				 



 



 



 



                        	 	 	 	 	i 	 	 	" " "        C   %E %E %E %E %EC %E %E %EP'
 '
 '
 '
 '
C '
 '
 '
^ b b b b b#'37 b b bL-   K   K K773 0119??AAFJJs}$$GX
* * * *6 6 6 6$ $ $( ( (  * * * * *   $ $ $     
 4( 4( 4(p zJJJCHJJJJJ r
   