???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5d:                     @   s<   d dl Z d dlZdgZdZe je j d ZG dd dZdS )    NCmdz(Cmd) _c                   @   s   e Zd ZeZeZdZdZdZ	dZ
dZdZdZdZdZd/d
dZd0ddZdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Z d1d-d.Z!dS )2r   = Nz(Documented commands (type help <topic>):zMiscellaneous help topics:zUndocumented commands:z*** No help on %s   tabc                 C   s@   |d k	r|| _ ntj | _ |d k	r(|| _ntj| _g | _|| _d S N)stdinsysstdoutcmdqueuecompletekey)selfr   r	   r    r   /usr/lib64/python3.8/cmd.py__init__L   s    zCmd.__init__c                 C   s  |    | jr\| jr\z2dd l}| | _|| j || jd  W n t	k
rZ   Y nX z|d k	rl|| _
| j
r| jt| j
d  d }|s4| jr| jd}nl| jrzt| j}W n tk
r   d}Y nX n<| j| j | j  | j }t|sd}n
|d}| |}| |}| ||}q|   W 5 | jr| jrzdd l}|| j W n t	k
r~   Y nX X d S )Nr   z
: complete
EOFz
)preloopuse_rawinputr   readlineZget_completerZold_completerZset_completercompleteparse_and_bindImportErrorintror   writestrr   popinputpromptEOFErrorflushr	   lenrstripprecmdonecmdpostcmdpostloop)r   r   r   stopliner   r   r   cmdloopb   sN    






zCmd.cmdloopc                 C   s   |S r   r   r   r)   r   r   r   r$      s    z
Cmd.precmdc                 C   s   |S r   r   )r   r(   r)   r   r   r   r&      s    zCmd.postcmdc                 C   s   d S r   r   r   r   r   r   r      s    zCmd.preloopc                 C   s   d S r   r   r,   r   r   r   r'      s    zCmd.postloopc                 C   s   |  }|sd d |fS |d dkr4d|dd   }n2|d dkrft| dr\d|dd   }n
d d |fS dt| }}||k r|| | jkr|d }qt|d | ||d     }}|||fS )Nr   ?zhelp r   !Zdo_shellzshell )striphasattrr"   
identchars)r   r)   incmdargr   r   r   	parseline   s    


 
zCmd.parselinec                 C   s   |  |\}}}|s|  S |d kr.| |S || _|dkrBd| _|dkrT| |S zt| d| }W n tk
r   | | Y S X ||S d S )Nr   r   do_)r6   	emptylinedefaultlastcmdgetattrAttributeError)r   r)   r4   r5   funcr   r   r   r%      s    


z
Cmd.onecmdc                 C   s   | j r| | j S d S r   )r:   r%   r,   r   r   r   r8      s    zCmd.emptylinec                 C   s   | j d|  d S )Nz*** Unknown syntax: %s
)r   r   r+   r   r   r   r9      s    zCmd.defaultc                 G   s   g S r   r   )r   ignoredr   r   r   completedefault   s    zCmd.completedefaultc                    s   d|   fdd|   D S )Nr7   c                    s"   g | ]}|  r|d d qS )   N
startswith.0aZdotextr   r   
<listcomp>   s     
 z%Cmd.completenames.<locals>.<listcomp>)	get_names)r   textr>   r   rF   r   completenames   s    zCmd.completenamesc                 C   s   |dkrdd l }| }| }t|t| }| | }| | }|dkr| |\}	}
}|	dkrp| j}qzt| d|	 }W q t	k
r   | j}Y qX n| j
}|||||| _z| j| W S  tk
r   Y d S X d S )Nr   r   Z	complete_)r   Zget_line_bufferlstripr"   Z
get_begidxZ
get_endidxr6   r?   r;   r<   rJ   Zcompletion_matches
IndexError)r   rI   stater   Zorigliner)   strippedZbegidxZendidxr4   argsZfooZcompfuncr   r   r   r      s*    zCmd.completec                 C   s
   t | jS r   )dir	__class__r,   r   r   r   rH     s    zCmd.get_namesc                    s4   t | j  }t  fdd|  D }t||B S )Nc                 3   s,   | ]$}| d  d  r|dd V  qdS )help_r      NrA   rC   rO   r   r   	<genexpr>   s    z$Cmd.complete_help.<locals>.<genexpr>)setrJ   rH   list)r   rO   ZcommandsZtopicsr   rT   r   complete_help  s    zCmd.complete_helpc                 C   s  |rzt | d| }W n| tk
r   z4t | d| j}|rX| jdt|  W Y d S W n tk
rn   Y nX | jdt| j|f   Y d S X |  n|  }g }g }i }|D ]$}|d d dkrd||dd  < q|  d}	|D ]p}|d d dkr||	krq|}	|dd  }
|
|kr8|	|
 ||
= qt | |jrR|	|
 q|	|
 q| jdt| j
  | | j|dd	 | | jt| dd	 | | j|dd	 d S )
NrR   r7   %s
rS   r   r   r@      P   )r;   r<   __doc__r   r   r   nohelprH   sortappend
doc_leaderprint_topics
doc_headermisc_headerrW   keysundoc_header)r   r5   r=   docnamesZcmds_docZ
cmds_undochelpnameZprevnamer4   r   r   r   do_help$  sN    



zCmd.do_helpc                 C   s\   |rX| j dt|  | jr<| j dt| jt|   | ||d  | j d d S )NrY   r   r   )r   r   r   rulerr"   	columnize)r   headerZcmdsZcmdlenZmaxcolr   r   r   ra   R  s    zCmd.print_topicsr[   c                    s   s| j d d S  fddtt D }|rJtddtt| t }|dkrv| j dt d   d S tdt D ]}|| d | }g }d	}t|D ]h}	d}
t|D ]2}|||	  }||kr q | }t|
t|}
q|	|
 ||
d
 7 }||kr qq||kr q4qt }d}dg}t|D ]}g }t|D ]4}	|||	  }||krld}n | }|	| qL|r|d s|d= qtt|D ]}	||	 
||	 ||	< q| j dtd|  q<d S )Nz<empty>
c                    s   g | ]}t  | ts|qS r   )
isinstancer   )rD   r2   rW   r   r   rG   d  s    z!Cmd.columnize.<locals>.<listcomp>z list[i] not a string for i in %sz, r   rY   r      r   z  )r   r   ranger"   	TypeErrorjoinmapr   maxr_   ljust)r   rW   ZdisplaywidthZ
nonstringssizeZnrowsZncolsZ	colwidthsZtotwidthcolZcolwidthrowr2   xZtextsr   ro   r   rl   Z  s\    


zCmd.columnize)r   NN)N)r[   )"__name__
__module____qualname__PROMPTr   
IDENTCHARSr1   rk   r:   r   r`   rb   rc   re   r]   r   r   r*   r$   r&   r   r'   r6   r%   r8   r9   r?   rJ   r   rH   rX   rj   ra   rl   r   r   r   r   r   4   s:   

4
		.)stringr
   __all__r   Zascii_lettersZdigitsr   r   r   r   r   r   <module>-   s   