???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5dÖZ  ã                   @   sF  d dl Z d dlZd dlZd dlmZ dgZd ZdZe	dgƒZ
e	dgƒZe	dgƒZe	dgƒZe	d	gƒZe	d gƒZe	d
gƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	d gƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZ e	dgƒZ!e	dgƒZ"e	dgƒZ#e	dgƒZ$e	dgƒZ%e	dgƒZ&e	d gƒZ'e	d!gƒZ(e	d"gƒZ)e	d#gƒZ*e	d$gƒZ+e	d%gƒZ,e	d&gƒZ-e	d'gƒZ.e	d(gƒZ/e	d)gƒZ0e	d*gƒZ1e	dgƒZ2e	d+gƒZ3e	d,gƒZ4e	d-gƒZ5e	d.gƒZ6e	d/gƒZ7e	d0gƒZ8e	d1gƒZ9e	d2gƒZ:e	d3gƒZ;e	d4gƒZ<e	d5gƒZ=e	d6gƒZ>e	d7gƒZ?e	d8gƒZ@e	d9gƒZAe	d:gƒZBe	d;gƒZCe	d<gƒZDe	d=gƒZEe	d>gƒZFe	d?gƒZGe	d@gƒZHe	dAgƒZIe	dBgƒZJe	dCgƒZKe	dDgƒZLe	dEgƒZMe	dFgƒZNe	dGgƒZOe	dgƒZPe	d gƒZQeRedHƒrejSZTnejUZTG dId„ dƒZVdJdK„ ZWeXdLkrBeWƒ  dS )Mé    N)Ú	monotonicÚTelneté   éÿ   éþ   éý   éü   éû   éð   éñ   éò   éó   éô   éõ   éö   é÷   éø   éù   éú   é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é    é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   é0   é1   éŠ   é‹   éŒ   ÚPollSelectorc                   @   s  e Zd Zddejfdd„Zdejf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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/d0„ Zd1d2„ Zd3d4„ Zd<d5d6„Zd7d8„ Zd9d:„ Z dS )=r   Nr   c                 C   sh   t | _|| _|| _|| _d | _d| _d| _d| _d| _	d| _
d| _d| _d | _|d k	rd|  |||¡ d S )Nó    r   )Ú
DEBUGLEVELÚ
debuglevelÚhostÚportÚtimeoutÚsockÚrawqÚirawqÚcookedqÚeofÚiacseqÚsbÚsbdataqÚoption_callbackÚopen©ÚselfrL   rM   rN   © r[   ú!/usr/lib64/python3.8/telnetlib.pyÚ__init__Ä   s    zTelnet.__init__c                 C   sF   d| _ |st}|| _|| _|| _t d| ||¡ t ||f|¡| _	d S )Nr   ztelnetlib.Telnet.open)
rS   ÚTELNET_PORTrL   rM   rN   ÚsysÚauditÚsocketZcreate_connectionrO   rY   r[   r[   r\   rX   Ü   s    zTelnet.openc                 C   s   |   ¡  d S ©N©Úclose©rZ   r[   r[   r\   Ú__del__í   s    zTelnet.__del__c                 G   s@   | j dkr<td| j| jf dd |r4t|| ƒ nt|ƒ d S )Nr   zTelnet(%s,%s):ú )Úend)rK   ÚprintrL   rM   )rZ   ÚmsgÚargsr[   r[   r\   rj   ñ   s
    
z
Telnet.msgc                 C   s
   || _ d S rb   )rK   )rZ   rK   r[   r[   r\   Úset_debuglevelÿ   s    zTelnet.set_debuglevelc                 C   s.   | j }d | _ d| _d| _d| _|r*| ¡  d S )NTrI   r   )rO   rS   rT   rU   rd   )rZ   rO   r[   r[   r\   rd     s    zTelnet.closec                 C   s   | j S rb   )rO   re   r[   r[   r\   Ú
get_socket  s    zTelnet.get_socketc                 C   s
   | j  ¡ S rb   )rO   Úfilenore   r[   r[   r\   rn     s    zTelnet.filenoc                 C   sB   t |kr| t t t  ¡}t d| |¡ |  d|¡ | j |¡ d S )Nztelnetlib.Telnet.writezsend %r)ÚIACÚreplacer_   r`   rj   rO   Úsendall)rZ   Úbufferr[   r[   r\   Úwrite  s
    zTelnet.writec              
   C   s*  t |ƒ}|  ¡  | j |¡}|dkrN|| }| jd |… }| j|d … | _|S |d k	r`tƒ | }tƒ ¶}| | tj¡ | j	s| 
|¡røtdt | jƒ| ƒ}|  ¡  |  ¡  | j ||¡}|dkrø|| }| jd |… }| j|d … | _|W  5 Q R £ S |d k	rv|tƒ  }|dk rvqqvW 5 Q R X |  ¡ S ©Nr   )ÚlenÚprocess_rawqrR   ÚfindÚ_timeÚ_TelnetSelectorÚregisterÚ	selectorsÚ
EVENT_READrS   ÚselectÚmaxÚ	fill_rawqÚread_very_lazy)rZ   ÚmatchrN   ÚnÚiÚbufÚdeadlineÚselectorr[   r[   r\   Ú
read_until&  s8    


zTelnet.read_untilc                 C   s0   |   ¡  | js |  ¡  |   ¡  q| j}d| _|S ©NrI   )rv   rS   r   rR   ©rZ   r„   r[   r[   r\   Úread_allK  s    
zTelnet.read_allc                 C   s6   |   ¡  | js&| js&|  ¡  |   ¡  q| j}d| _|S rˆ   )rv   rR   rS   r   r‰   r[   r[   r\   Ú	read_someU  s    
zTelnet.read_somec                 C   s0   |   ¡  | js(|  ¡ r(|  ¡  |   ¡  q|  ¡ S rb   )rv   rS   Ú
sock_availr   r€   re   r[   r[   r\   Úread_very_eagerd  s
    
zTelnet.read_very_eagerc                 C   s6   |   ¡  | js.| js.|  ¡ r.|  ¡  |   ¡  q|  ¡ S rb   )rv   rR   rS   rŒ   r   r€   re   r[   r[   r\   Ú
read_eagerr  s
    
zTelnet.read_eagerc                 C   s   |   ¡  |  ¡ S rb   )rv   r€   re   r[   r[   r\   Ú	read_lazy€  s    zTelnet.read_lazyc                 C   s(   | j }d| _ |s$| jr$| js$tdƒ‚|S )NrI   ztelnet connection closed)rR   rS   rP   ÚEOFErrorr‰   r[   r[   r\   r€   ‹  s
    zTelnet.read_very_lazyc                 C   s   | j }d| _ |S rˆ   )rV   r‰   r[   r[   r\   Úread_sb_data˜  s    zTelnet.read_sb_datac                 C   s
   || _ d S rb   )rW   )rZ   Úcallbackr[   r[   r\   Úset_option_negotiation_callback¤  s    z&Telnet.set_option_negotiation_callbackc                 C   sR  ddg}z | j r|  ¡ }| jsf|tkr,q|dkr6q|tkrV|| j | || j< qn|  j|7  _qt| jƒdkr$|ttt	t
fkr–|  j|7  _qd| _|tkrº|| j | || j< nh|tkrÐd| _d| _n&|tkröd| _| j|d  | _d|d< | jr|  | j|t¡ n|  dt|ƒ ¡ qt| jƒdkr| jdd… }d| _|}|ttfkrª|  d|tkrndppd	t|ƒ¡ | jr”|  | j||¡ n| j tt
 | ¡ q|t	t
fkr|  d|t	krÌd
pÎdt|ƒ¡ | jrò|  | j||¡ q| j tt | ¡ qW n" tk
r,   d| _d| _Y nX | j|d  | _| j|d  | _d S )NrI   ó   r   r   zIAC %d not recognizedr   z	IAC %s %dÚDOÚDONTÚWILLÚWONT)rP   Úrawq_getcharrT   ÚtheNULLro   rU   ru   r•   r–   r—   r˜   ÚSBrV   ÚSErW   rO   ÚNOOPTrj   Úordrq   r   rR   )rZ   r„   ÚcÚcmdÚoptr[   r[   r\   rv   ¨  sp     ÿ ÿzTelnet.process_rawqc                 C   sZ   | j s|  ¡  | jrt‚| j | j| jd … }| jd | _| jt| j ƒkrVd| _ d| _|S )Nr   rI   r   )rP   r   rS   r   rQ   ru   )rZ   rŸ   r[   r[   r\   r™   ð  s    zTelnet.rawq_getcharc                 C   sL   | j t| jƒkrd| _d| _ | j d¡}|  d|¡ | | _| j| | _d S )NrI   r   é2   zrecv %r)rQ   ru   rP   rO   Zrecvrj   rS   r‰   r[   r[   r\   r     s    zTelnet.fill_rawqc              
   C   s:   t ƒ *}| | tj¡ t| d¡ƒW  5 Q R £ S Q R X d S rt   )ry   rz   r{   r|   Úboolr}   )rZ   r†   r[   r[   r\   rŒ     s    zTelnet.sock_availc              
   C   sü   t jdkr|  ¡  d S tƒ Ö}| | tj¡ | t jtj¡ | ¡ D ]¦\}}|j	| kr°z|  
¡ }W n* tk
rŒ   tdƒ Y  W 5 Q R £ d S X |rêt j | d¡¡ t j ¡  qD|j	t jkrDt j ¡  d¡}|sà W 5 Q R £ d S |  |¡ qDq<W 5 Q R X d S )NZwin32ú(*** Connection closed by remote host ***Úascii)r_   ÚplatformÚmt_interactry   rz   r{   r|   Ústdinr}   ZfileobjrŽ   r   ri   Ústdoutrs   ÚdecodeÚflushÚreadlineÚencode)rZ   r†   ÚkeyZeventsÚtextÚliner[   r[   r\   Úinteract  s*    

zTelnet.interactc                 C   s<   dd l }| | jd¡ tj ¡ }|s&q8|  | d¡¡ qd S )Nr   r[   r¥   )Ú_threadÚstart_new_threadÚlistenerr_   r¨   r¬   rs   r­   )rZ   r²   r°   r[   r[   r\   r§   3  s    
zTelnet.mt_interactc                 C   sT   z|   ¡ }W n tk
r*   tdƒ Y d S X |rDtj | d¡¡ q tj ¡  q d S )Nr¤   r¥   )rŽ   r   ri   r_   r©   rs   rª   r«   )rZ   Údatar[   r[   r\   r´   =  s    zTelnet.listenerc              
   C   sT  d }|d d … }t t|ƒƒ}|D ]0}t|| dƒs |s>dd l}| || ¡||< q |d k	rdtƒ | }tƒ À}| | tj	¡ | j
s&|  ¡  |D ]X}||  | j¡}|rŽ| ¡ }	| jd |	… }
| j|	d … | _|||
f  W  5 Q R £ S qŽ|d k	r| |¡}|tƒ  }|s|dk rzq&nqz|  ¡  qzW 5 Q R X |  ¡ }
|
sJ| j
rJt‚dd |
fS )NÚsearchr   éÿÿÿÿ)Úrangeru   ÚhasattrÚreÚcompilerx   ry   rz   r{   r|   rS   rv   r¶   rR   rh   r}   r   r€   r   )rZ   ÚlistrN   rº   Úindicesrƒ   r…   r†   ÚmÚer¯   Zreadyr[   r[   r\   ÚexpectJ  sB     



zTelnet.expectc                 C   s   | S rb   r[   re   r[   r[   r\   Ú	__enter__‚  s    zTelnet.__enter__c                 C   s   |   ¡  d S rb   rc   )rZ   ÚtypeÚvalueÚ	tracebackr[   r[   r\   Ú__exit__…  s    zTelnet.__exit__)N)N)!Ú__name__Ú
__module__Ú__qualname__ra   Z_GLOBAL_DEFAULT_TIMEOUTr]   rX   rf   rj   rl   rd   rm   rn   rs   r‡   rŠ   r‹   r   rŽ   r   r€   r‘   r“   rv   r™   r   rŒ   r±   r§   r´   rÀ   rÁ   rÅ   r[   r[   r[   r\   r      s<   7ÿ


%
H

8c               	   C   sÐ   d} t jdd … r2t jd dkr2| d } t jd= qd}t jdd … rNt jd }d}t jdd … r˜t jd }zt|ƒ}W n  tk
r–   t |d¡}Y nX tƒ (}| | ¡ |j||dd | 	¡  W 5 Q R X d S )	Nr   r   z-dZ	localhostr   Ztcpg      à?)rN   )
r_   ÚargvÚintÚ
ValueErrorra   Zgetservbynamer   rl   rX   r±   )rK   rL   rM   ZportstrZtnr[   r[   r\   Útest‰  s$    



rÌ   Ú__main__)Yr_   ra   r{   Útimer   rx   Ú__all__rJ   r^   Úbytesro   r–   r•   r˜   r—   rš   rœ   ZNOPZDMZBRKZIPZAOZAYTZECZELZGAr›   ZBINARYZECHOZRCPZSGAZNAMSZSTATUSZTMZRCTEZNAOLZNAOPZNAOCRDZNAOHTSZNAOHTDZNAOFFDZNAOVTSZNAOVTDZNAOLFDZXASCIIZLOGOUTZBMZDETZSUPDUPZSUPDUPOUTPUTZSNDLOCZTTYPEZEORZTUIDZOUTMRKZTTYLOCZVT3270REGIMEZX3PADZNAWSZTSPEEDZLFLOWZLINEMODEZXDISPLOCZOLD_ENVIRONZAUTHENTICATIONZENCRYPTZNEW_ENVIRONZTN3270EZXAUTHÚCHARSETZRSPZCOM_PORT_OPTIONZSUPPRESS_LOCAL_ECHOZTLSZKERMITZSEND_URLZ	FORWARD_XZPRAGMA_LOGONZ
SSPI_LOGONZPRAGMA_HEARTBEATZEXOPLr   r¹   rH   ry   ZSelectSelectorr   rÌ   rÆ   r[   r[   r[   r\   Ú<module>$   s²   







































































     
