SILENT KILLERPanel

Current Path: > > > lib64 > > python2.7 > idlelib


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: ///lib64//python2.7/idlelib

NameTypeSizeLast ModifiedActions
Icons Directory - -
idle_test Directory - -
AutoComplete.py File 8964 bytes April 10 2024 04:58:35.
AutoComplete.pyc File 8012 bytes April 10 2024 04:58:46.
AutoComplete.pyo File 8012 bytes April 10 2024 04:58:46.
AutoCompleteWindow.py File 17318 bytes April 10 2024 04:58:35.
AutoCompleteWindow.pyc File 12480 bytes April 10 2024 04:58:46.
AutoCompleteWindow.pyo File 12421 bytes April 10 2024 04:58:43.
AutoExpand.py File 3395 bytes April 10 2024 04:58:35.
AutoExpand.pyc File 3502 bytes April 10 2024 04:58:46.
AutoExpand.pyo File 3502 bytes April 10 2024 04:58:46.
Bindings.py File 2976 bytes April 10 2024 04:58:35.
Bindings.pyc File 4695 bytes April 10 2024 04:58:46.
Bindings.pyo File 4695 bytes April 10 2024 04:58:46.
CREDITS.txt File 1866 bytes April 10 2024 04:58:35.
CallTipWindow.py File 6065 bytes April 10 2024 04:58:35.
CallTipWindow.pyc File 6136 bytes April 10 2024 04:58:46.
CallTipWindow.pyo File 6136 bytes April 10 2024 04:58:46.
CallTips.py File 7740 bytes April 10 2024 04:58:35.
CallTips.pyc File 8133 bytes April 10 2024 04:58:46.
CallTips.pyo File 8133 bytes April 10 2024 04:58:46.
ChangeLog File 56393 bytes April 10 2024 04:58:35.
ClassBrowser.py File 6999 bytes April 10 2024 04:58:35.
ClassBrowser.pyc File 9500 bytes April 10 2024 04:58:46.
ClassBrowser.pyo File 9500 bytes April 10 2024 04:58:46.
CodeContext.py File 8342 bytes April 10 2024 04:58:35.
CodeContext.pyc File 6658 bytes April 10 2024 04:58:46.
CodeContext.pyo File 6614 bytes April 10 2024 04:58:43.
ColorDelegator.py File 9762 bytes April 10 2024 04:58:35.
ColorDelegator.pyc File 8898 bytes April 10 2024 04:58:46.
ColorDelegator.pyo File 8898 bytes April 10 2024 04:58:46.
Debugger.py File 18236 bytes April 10 2024 04:58:35.
Debugger.pyc File 17546 bytes April 10 2024 04:58:46.
Debugger.pyo File 17546 bytes April 10 2024 04:58:46.
Delegator.py File 665 bytes April 10 2024 04:58:35.
Delegator.pyc File 1268 bytes April 10 2024 04:58:46.
Delegator.pyo File 1268 bytes April 10 2024 04:58:46.
EditorWindow.py File 65498 bytes April 10 2024 04:58:35.
EditorWindow.pyc File 56858 bytes April 10 2024 04:58:46.
EditorWindow.pyo File 56756 bytes April 10 2024 04:58:43.
FileList.py File 3718 bytes April 10 2024 04:58:35.
FileList.pyc File 4025 bytes April 10 2024 04:58:46.
FileList.pyo File 3992 bytes April 10 2024 04:58:43.
FormatParagraph.py File 7287 bytes April 10 2024 04:58:35.
FormatParagraph.pyc File 7142 bytes April 10 2024 04:58:46.
FormatParagraph.pyo File 7142 bytes April 10 2024 04:58:46.
GrepDialog.py File 5145 bytes April 10 2024 04:58:35.
GrepDialog.pyc File 6425 bytes April 10 2024 04:58:46.
GrepDialog.pyo File 6425 bytes April 10 2024 04:58:46.
HISTORY.txt File 10317 bytes April 10 2024 04:58:35.
HyperParser.py File 10497 bytes April 10 2024 04:58:35.
HyperParser.pyc File 6673 bytes April 10 2024 04:58:46.
HyperParser.pyo File 6673 bytes April 10 2024 04:58:46.
IOBinding.py File 21911 bytes April 10 2024 04:58:35.
IOBinding.pyc File 18535 bytes April 10 2024 04:58:46.
IOBinding.pyo File 18535 bytes April 10 2024 04:58:46.
IdleHistory.py File 4052 bytes April 10 2024 04:58:35.
IdleHistory.pyc File 4060 bytes April 10 2024 04:58:46.
IdleHistory.pyo File 4060 bytes April 10 2024 04:58:46.
MultiCall.py File 17701 bytes April 10 2024 04:58:35.
MultiCall.pyc File 16351 bytes April 10 2024 04:58:46.
MultiCall.pyo File 16277 bytes April 10 2024 04:58:43.
MultiStatusBar.py File 1348 bytes April 10 2024 04:58:35.
MultiStatusBar.pyc File 2279 bytes April 10 2024 04:58:46.
MultiStatusBar.pyo File 2279 bytes April 10 2024 04:58:46.
NEWS.txt File 47247 bytes April 10 2024 04:58:35.
ObjectBrowser.py File 4376 bytes April 10 2024 04:58:35.
ObjectBrowser.pyc File 7067 bytes April 10 2024 04:58:46.
ObjectBrowser.pyo File 7067 bytes April 10 2024 04:58:46.
OutputWindow.py File 4576 bytes April 10 2024 04:58:35.
OutputWindow.pyc File 5232 bytes April 10 2024 04:58:46.
OutputWindow.pyo File 5232 bytes April 10 2024 04:58:46.
ParenMatch.py File 6714 bytes April 10 2024 04:58:35.
ParenMatch.pyc File 7129 bytes April 10 2024 04:58:46.
ParenMatch.pyo File 7129 bytes April 10 2024 04:58:46.
PathBrowser.py File 3009 bytes April 10 2024 04:58:35.
PathBrowser.pyc File 4486 bytes April 10 2024 04:58:46.
PathBrowser.pyo File 4486 bytes April 10 2024 04:58:46.
Percolator.py File 3222 bytes April 10 2024 04:58:35.
Percolator.pyc File 4608 bytes April 10 2024 04:58:46.
Percolator.pyo File 4424 bytes April 10 2024 04:58:43.
PyParse.py File 19510 bytes April 10 2024 04:58:35.
PyParse.pyc File 10005 bytes April 10 2024 04:58:46.
PyParse.pyo File 9567 bytes April 10 2024 04:58:43.
PyShell.py File 58862 bytes April 10 2024 04:58:35.
PyShell.pyc File 52826 bytes April 10 2024 04:58:46.
PyShell.pyo File 52724 bytes April 10 2024 04:58:43.
README.txt File 7890 bytes April 10 2024 04:58:35.
RemoteDebugger.py File 11632 bytes April 10 2024 04:58:35.
RemoteDebugger.pyc File 16325 bytes April 10 2024 04:58:46.
RemoteDebugger.pyo File 16171 bytes April 10 2024 04:58:43.
RemoteObjectBrowser.py File 942 bytes April 10 2024 04:58:35.
RemoteObjectBrowser.pyc File 2150 bytes April 10 2024 04:58:46.
RemoteObjectBrowser.pyo File 2150 bytes April 10 2024 04:58:46.
ReplaceDialog.py File 6639 bytes April 10 2024 04:58:35.
ReplaceDialog.pyc File 7756 bytes April 10 2024 04:58:46.
ReplaceDialog.pyo File 7756 bytes April 10 2024 04:58:46.
RstripExtension.py File 1050 bytes April 10 2024 04:58:35.
RstripExtension.pyc File 1613 bytes April 10 2024 04:58:46.
RstripExtension.pyo File 1613 bytes April 10 2024 04:58:46.
ScriptBinding.py File 8459 bytes April 10 2024 04:58:35.
ScriptBinding.pyc File 8201 bytes April 10 2024 04:58:46.
ScriptBinding.pyo File 8201 bytes April 10 2024 04:58:46.
ScrolledList.py File 4373 bytes April 10 2024 04:58:35.
ScrolledList.pyc File 6482 bytes April 10 2024 04:58:46.
ScrolledList.pyo File 6482 bytes April 10 2024 04:58:46.
SearchDialog.py File 2630 bytes April 10 2024 04:58:35.
SearchDialog.pyc File 3983 bytes April 10 2024 04:58:46.
SearchDialog.pyo File 3983 bytes April 10 2024 04:58:46.
SearchDialogBase.py File 7094 bytes April 10 2024 04:58:35.
SearchDialogBase.pyc File 8462 bytes April 10 2024 04:58:46.
SearchDialogBase.pyo File 8462 bytes April 10 2024 04:58:46.
SearchEngine.py File 7463 bytes April 10 2024 04:58:35.
SearchEngine.pyc File 8302 bytes April 10 2024 04:58:46.
SearchEngine.pyo File 8302 bytes April 10 2024 04:58:46.
StackViewer.py File 4431 bytes April 10 2024 04:58:35.
StackViewer.pyc File 6404 bytes April 10 2024 04:58:46.
StackViewer.pyo File 6404 bytes April 10 2024 04:58:46.
TODO.txt File 8478 bytes April 10 2024 04:58:35.
ToolTip.py File 3173 bytes April 10 2024 04:58:35.
ToolTip.pyc File 4669 bytes April 10 2024 04:58:46.
ToolTip.pyo File 4669 bytes April 10 2024 04:58:46.
TreeWidget.py File 15037 bytes April 10 2024 04:58:35.
TreeWidget.pyc File 17694 bytes April 10 2024 04:58:46.
TreeWidget.pyo File 17694 bytes April 10 2024 04:58:46.
UndoDelegator.py File 10787 bytes April 10 2024 04:58:35.
UndoDelegator.pyc File 13555 bytes April 10 2024 04:58:46.
UndoDelegator.pyo File 13555 bytes April 10 2024 04:58:46.
WidgetRedirector.py File 6906 bytes April 10 2024 04:58:35.
WidgetRedirector.pyc File 7769 bytes April 10 2024 04:58:46.
WidgetRedirector.pyo File 7769 bytes April 10 2024 04:58:46.
WindowList.py File 2473 bytes April 10 2024 04:58:35.
WindowList.pyc File 3636 bytes April 10 2024 04:58:46.
WindowList.pyo File 3636 bytes April 10 2024 04:58:46.
ZoomHeight.py File 1300 bytes April 10 2024 04:58:35.
ZoomHeight.pyc File 1646 bytes April 10 2024 04:58:46.
ZoomHeight.pyo File 1646 bytes April 10 2024 04:58:46.
__init__.py File 288 bytes April 10 2024 04:58:35.
__init__.pyc File 431 bytes April 10 2024 04:58:46.
__init__.pyo File 431 bytes April 10 2024 04:58:46.
aboutDialog.py File 7014 bytes April 10 2024 04:58:35.
aboutDialog.pyc File 6848 bytes April 10 2024 04:58:46.
aboutDialog.pyo File 6848 bytes April 10 2024 04:58:46.
config-extensions.def File 2965 bytes April 10 2024 04:58:35.
config-highlight.def File 2515 bytes April 10 2024 04:58:35.
config-keys.def File 7777 bytes April 10 2024 04:58:35.
config-main.def File 2561 bytes April 10 2024 04:58:35.
configDialog.py File 65958 bytes April 10 2024 04:58:35.
configDialog.pyc File 53291 bytes April 10 2024 04:58:46.
configDialog.pyo File 53291 bytes April 10 2024 04:58:46.
configHandler.py File 32485 bytes April 10 2024 04:58:35.
configHandler.pyc File 29361 bytes April 10 2024 04:58:46.
configHandler.pyo File 29361 bytes April 10 2024 04:58:46.
configHelpSourceEdit.py File 6686 bytes April 10 2024 04:58:35.
configHelpSourceEdit.pyc File 6595 bytes April 10 2024 04:58:46.
configHelpSourceEdit.pyo File 6595 bytes April 10 2024 04:58:46.
configSectionNameDialog.py File 4040 bytes April 10 2024 04:58:35.
configSectionNameDialog.pyc File 4419 bytes April 10 2024 04:58:46.
configSectionNameDialog.pyo File 4419 bytes April 10 2024 04:58:46.
dynOptionMenuWidget.py File 1984 bytes April 10 2024 04:58:35.
dynOptionMenuWidget.pyc File 2790 bytes April 10 2024 04:58:46.
dynOptionMenuWidget.pyo File 2790 bytes April 10 2024 04:58:46.
extend.txt File 3642 bytes April 10 2024 04:58:35.
help.html File 42414 bytes April 10 2024 04:58:35.
help.py File 11035 bytes April 10 2024 04:58:35.
help.pyc File 12270 bytes April 10 2024 04:58:46.
help.pyo File 12270 bytes April 10 2024 04:58:46.
help.txt File 12144 bytes April 10 2024 04:58:35.
idle.py File 453 bytes April 10 2024 04:58:35.
idle.pyc File 410 bytes April 10 2024 04:58:46.
idle.pyo File 410 bytes April 10 2024 04:58:46.
idle.pyw File 563 bytes April 10 2024 04:58:35.
idlever.py File 415 bytes April 10 2024 04:58:35.
idlever.pyc File 578 bytes April 10 2024 04:58:46.
idlever.pyo File 578 bytes April 10 2024 04:58:46.
keybindingDialog.py File 12468 bytes April 10 2024 04:58:35.
keybindingDialog.pyc File 12173 bytes April 10 2024 04:58:46.
keybindingDialog.pyo File 12173 bytes April 10 2024 04:58:46.
macosxSupport.py File 8435 bytes April 10 2024 04:58:35.
macosxSupport.pyc File 8351 bytes April 10 2024 04:58:46.
macosxSupport.pyo File 8213 bytes April 10 2024 04:58:43.
rpc.py File 20150 bytes April 10 2024 04:58:35.
rpc.pyc File 21728 bytes April 10 2024 04:58:46.
rpc.pyo File 21622 bytes April 10 2024 04:58:43.
run.py File 12917 bytes April 10 2024 04:58:35.
run.pyc File 13419 bytes April 10 2024 04:58:46.
run.pyo File 13361 bytes April 10 2024 04:58:43.
tabbedpages.py File 18439 bytes April 10 2024 04:58:35.
tabbedpages.pyc File 18561 bytes April 10 2024 04:58:46.
tabbedpages.pyo File 18561 bytes April 10 2024 04:58:46.
textView.py File 3520 bytes April 10 2024 04:58:35.
textView.pyc File 4025 bytes April 10 2024 04:58:46.
textView.pyo File 4025 bytes April 10 2024 04:58:46.

Reading File: ///lib64//python2.7/idlelib/rpc.pyc

�
{fc@s�dZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZd�Zd�Zeje
jee�ddZdZdejfd	��YZiZe
j
d
�Ze
j
d
�Zdefd��YZd
efd��YZd�Zdefd��YZdejefd��YZdefd��YZ defd��YZ!d�Z"d�Z#defd��YZ$dS(sRPC Implementation, originally written for the Python Idle IDE

For security reasons, GvR requested that Idle's Python execution server process
connect to the Idle process, which listens for the connection.  Since Idle has
only one client per server, this was not a limitation.

   +---------------------------------+ +-------------+
   | SocketServer.BaseRequestHandler | | SocketIO    |
   +---------------------------------+ +-------------+
                   ^                   | register()  |
                   |                   | unregister()|
                   |                   +-------------+
                   |                      ^  ^
                   |                      |  |
                   | + -------------------+  |
                   | |                       |
   +-------------------------+        +-----------------+
   | RPCHandler              |        | RPCClient       |
   | [attribute of RPCServer]|        |                 |
   +-------------------------+        +-----------------+

The RPCServer handler class is expected to provide register/unregister methods.
RPCHandler inherits the mix-in class SocketIO, which provides these methods.

See the Idle run.main() docstring for further information on how this was
accomplished in Idle.

i����NcCs+tj|�}t|tj�s't�|S(N(tmarshaltloadst
isinstancettypestCodeTypetAssertionError(tmstco((s#/usr/lib64/python2.7/idlelib/rpc.pyt
unpickle_code-scCs4t|tj�st�tj|�}t|ffS(N(RRRRRtdumpsR(RR((s#/usr/lib64/python2.7/idlelib/rpc.pytpickle_code2siis	127.0.0.1t	RPCServercBs8eZdd�Zd�Zd�Zd�Zd�ZRS(cCs/|dkrt}ntjj|||�dS(N(tNonet
RPCHandlertSocketServert	TCPServert__init__(tselftaddrthandlerclass((s#/usr/lib64/python2.7/idlelib/rpc.pyRGs	cCsdS(s@Override TCPServer method, no bind() phase for connecting entityN((R((s#/usr/lib64/python2.7/idlelib/rpc.pytserver_bindLscCs|jj|j�dS(s�Override TCPServer method, connect() instead of listen()

        Due to the reversed connection, self.server_address is actually the
        address of the Idle Client to which we are connecting.

        N(tsockettconnecttserver_address(R((s#/usr/lib64/python2.7/idlelib/rpc.pytserver_activatePscCs|j|jfS(s:Override TCPServer method, return already connected socket(RR(R((s#/usr/lib64/python2.7/idlelib/rpc.pytget_requestYscCs�y�Wn�tk
r�n�tj}|dddIJ|dIJ|dtj�j�IJ|dI|IJ|dIt|�IJtjd|�|d	IJ|ddIJt	j
d
�nXdS(s�Override TCPServer method

        Error message goes to __stderr__.  No error message if exiting
        normally or socket raised EOF.  Other exceptions not handled in
        server code will cause os._exit.

        s
t-i(sUnhandled server exception!s
Thread: %ssClient Address: s	Request: tfiles#
*** Unrecoverable, server exiting!iN(t
SystemExittsyst
__stderr__t	threadingt
currentThreadtgetNametreprt	tracebackt	print_exctost_exit(Rtrequesttclient_addressterf((s#/usr/lib64/python2.7/idlelib/rpc.pythandle_error]s
	

N(t__name__t
__module__RRRRRR*(((s#/usr/lib64/python2.7/idlelib/rpc.pyREs
				itSocketIOcBseZdZddd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdZdZdZd�Zd�Zd�Zd�Zd�Zd�Z d�Z!RS(icCsdtj�|_|dk	r'||_n||_|dkrEt}n||_i|_i|_	dS(N(
RR t
sockthreadRt	debuggingtsocktobjecttabletobjtablet	responsestcvars(RR0R2R/((s#/usr/lib64/python2.7/idlelib/rpc.pyR�s				cCs/|j}d|_|dk	r+|j�ndS(N(R0Rtclose(RR0((s#/usr/lib64/python2.7/idlelib/rpc.pyR5�s		cCstjd�dS(s!override for specific exit actioniN(R%R&(R((s#/usr/lib64/python2.7/idlelib/rpc.pytexithook�scGsf|js
dS|jdttj�j��}x"|D]}|dt|�}q7Wtj|IJdS(Nt (R/tlocationtstrRR R!RR(Rtargststa((s#/usr/lib64/python2.7/idlelib/rpc.pytdebug�s	#
cCs||j|<dS(N(R2(Rtoidtobject((s#/usr/lib64/python2.7/idlelib/rpc.pytregister�scCs&y|j|=Wntk
r!nXdS(N(R2tKeyError(RR>((s#/usr/lib64/python2.7/idlelib/rpc.pyt
unregister�s
cCs�|jd|�y|\}\}}}}Wntk
r@dSX||jkradd|ffS|j|}|dkr�i}	t||	�d|	fS|dkr�i}
t||
�d|
fSt||�s�dd|ffSt||�}y�|d	kr5|||�}t|t�r+t	|�}nd|fS|d
krat
j||||ff�dSdd|fSWndt
k
r��nQtjk
r��n;d
}
tj|
|||fIJtjdtj�dSXdS(Ns
localcall:tERRORsBad request formatsUnknown object id: %rt__methods__tOKt__attributes__sUnsupported method name: %rtCALLtQUEUEtQUEUEDsUnsupported message type: %ssU*** Internal Error: rpc.py:SocketIO.localcall()

 Object: %s 
 Method: %s 
 Args: %s
Rt	EXCEPTION(RCsBad request format(RIN(RJN(R=t	TypeErrorR2t_getmethodst_getattributesthasattrtgetattrRtRemoteObjectt	remotereft
request_queuetputRRRterrorRRR#R$(RtseqR'thowR>t
methodnameR:tkwargstobjtmethodst
attributestmethodtrettmsg((s#/usr/lib64/python2.7/idlelib/rpc.pyt	localcall�sL







cCs8|jd||�|j||||�}|j|�S(Nsremotecall:asynccall: (R=t	asynccalltasyncreturn(RR>RWR:RXRU((s#/usr/lib64/python2.7/idlelib/rpc.pyt
remotecall�scCs8|jd||�|j||||�}|j|�S(Nsremotequeue:asyncqueue: (R=t
asyncqueueRa(RR>RWR:RXRU((s#/usr/lib64/python2.7/idlelib/rpc.pytremotequeue�scCs�d||||ff}|j�}tj�|jkrUtj�}||j|<n|jd|||||�|j||f�|S(NRGs
asynccall:%d:(tnewseqRR R.t	ConditionR4R=t
putmessage(RR>RWR:RXR'RUtcvar((s#/usr/lib64/python2.7/idlelib/rpc.pyR`�scCs�d||||ff}|j�}tj�|jkrUtj�}||j|<n|jd|||||�|j||f�|S(NRHsasyncqueue:%d:(ReRR R.RfR4R=Rg(RR>RWR:RXR'RURh((s#/usr/lib64/python2.7/idlelib/rpc.pyRc�scCsG|jd|�|j|dd�}|jd||�|j|�S(Ns#asyncreturn:%d:call getresponse(): twaitg�������?sasyncreturn:%d:response: (R=tgetresponsetdecoderesponse(RRUtresponse((s#/usr/lib64/python2.7/idlelib/rpc.pyRa�scCs�|\}}|dkr|S|dkr,dS|dkrI|jd�dS|dkrp|jd�|j�dS|dkr�|jd|�t|�nt||f�dS(	NRERIRJsdecoderesponse: EXCEPTIONtEOFsdecoderesponse: EOFRCsdecoderesponse: Internal ERROR:(RR=tdecode_interrupthooktRuntimeErrortSystemError(RRlRVtwhat((s#/usr/lib64/python2.7/idlelib/rpc.pyRk�s 


cCs
t�dS(tN(tEOFError(R((s#/usr/lib64/python2.7/idlelib/rpc.pyRnscCs@y|jdddd�Wntk
r;|jd�dSXdS(s�Listen on socket until I/O not ready or EOF

        pollresponse() will loop looking for seq number None, which
        never comes, and exit on EOFError.

        tmyseqRig�������?smainloop:returnN(RjRRsR=(R((s#/usr/lib64/python2.7/idlelib/rpc.pytmainloop
s


cCsU|j||�}|dk	rQ|\}}|dkrQ||j|�f}qQn|S(NRE(t_getresponseRt_proxify(RRtRiRlRVRq((s#/usr/lib64/python2.7/idlelib/rpc.pyRjscCsEt|t�rt||j�St|tj�rAt|j|�S|S(N(RtRemoteProxytRPCProxyR>RtListTypetmapRw(RRY((s#/usr/lib64/python2.7/idlelib/rpc.pyRws
cCs�|jd|�tj�|jkrQx�|j||�}|dk	r(|Sq(Wn}|j|}|j�x||jkr�|j	�qkW|j|}|jd||f�|j|=|j|=|j
�|SdS(Ns_getresponse:myseq:s-_getresponse:%s: thread woke up: response: %s(R=RR R.tpollresponseRR4tacquireR3Ritrelease(RRtRiRlRh((s#/usr/lib64/python2.7/idlelib/rpc.pyRv's"


	


cCs|jd|_}|S(Ni(tnextseq(RRU((s#/usr/lib64/python2.7/idlelib/rpc.pyRe=scCs�|jd|d�ytj|�}Wn0tjk
rZtjdIt|�IJ�nXtjdt	|��|}x�t	|�dkr�y>t
j
g|jgg�\}}}|jj|t
 �}Wn ttfk
r�td�nX||}qzWdS(Nsputmessage:%d:isCannot pickle:s<issocket no longer exists(R=tpickleR	t
PicklingErrorRRR"tstructtpacktlentselectR0tsendtBUFSIZEtAttributeErrorRKtIOError(RtmessageR;trtwtxtn((s#/usr/lib64/python2.7/idlelib/rpc.pyRgAs$
RricCs�|j�t|j�|jkr�tj|jj�ggg|�\}}}t|�dkredSy|jjt	�}Wnt
jk
r�t�nXt|�dkr�t�n|j|7_|j�n|j
�S(Ni(t_stage0R�tbuffertbufneedR�R0tfilenoRtrecvR�RRTRst_stage1(RRiR�R�R�R;((s#/usr/lib64/python2.7/idlelib/rpc.pyt
pollpacketUs
-
	
cCsj|jdkrft|j�dkrf|jd }|jd|_tjd|�d|_d|_ndS(Niis<ii(tbufstateR�R�R�tunpackR�(RR;((s#/usr/lib64/python2.7/idlelib/rpc.pyR�es
$
cCsd|jdkr`t|j�|jkr`|j|j }|j|j|_d|_d|_|SdS(Niii(R�R�R�R�(Rtpacket((s#/usr/lib64/python2.7/idlelib/rpc.pyR�ls'		cCs�|j|�}|dkrdSytj|�}Wn]tjk
r�tjdIJtjdIt|�IJtj	dtj�tjdIJ�nX|S(Ns-----------------------scannot unpickle packet:R(
R�RR�RtUnpicklingErrorRRR"R#tprint_stack(RRiR�R�((s#/usr/lib64/python2.7/idlelib/rpc.pytpollmessagets

c
Cs�x�ytjd�}Wntjk
r,n,X|\}}|d|ff}|j|�y#|j|�}|dkrzdSWn-tk
r�|j�dSt	k
r�dSX|\}}|d}|j
d||f�|d	krU|j
d|�|j||�}|j
d||f�|dkr@|j||f�q|dkrqqq||kre|S|jj|d�}	|	dk	r|	j
�||j|<|	j�|	j�qqqWdS(
sRHandle messages received on the socket.

        Some messages received may be asynchronous 'call' or 'queue' requests,
        and some may be responses for other threads.

        'call' requests are passed to self.localcall() with the expectation of
        immediate execution, during which time the socket is not serviced.

        'queue' requests are used for tasks (which may block or hang) to be
        processed in a different thread.  These requests are fed into
        request_queue by self.localcall().  Responses to queued requests are
        taken from response_queue and sent across the link with the associated
        sequence numbers.  Messages in the queues are (sequence_number,
        request/response) tuples and code using this module removing messages
        from the request_queue is responsible for returning the correct
        sequence number in the response_queue.

        pollresponse() will loop until a response message with the myseq
        sequence number is received, and will save other responses in
        self.responses and notify the owning thread.

        iREspollresponse:%d:myseq:%sRGRHspollresponse:%d:localcall:call:s%pollresponse:%d:localcall:response:%sN(RGRH(tresponse_queuetgettQueuetEmptyRgR�RRst
handle_EOFR�R=R_R4R}R3tnotifyR~(
RRtRitqmsgRURlR�tresqRVtcv((s#/usr/lib64/python2.7/idlelib/rpc.pyR|�sN




	



cCsq|j�|jd�xI|jD]>}|j|}|j�d|j|<|j�|j�q!W|j�dS(s+action taken upon link being closed by peerR�RmN(RmN(	tEOFhookR=R4R}RR3R�R~R6(RtkeyR�((s#/usr/lib64/python2.7/idlelib/rpc.pyR��s





cCsdS(sBClasses using rpc client/server can override to augment EOF actionN((R((s#/usr/lib64/python2.7/idlelib/rpc.pyR��sN("R+R,RRRR5R6R=R@RBR_RbRdR`RcRaRkRnRuRjRwRvReRgR�R�R�R�R�R�R�R|R�R�(((s#/usr/lib64/python2.7/idlelib/rpc.pyR-|s>						*			
	
				
										I	
RPcBseZRS((R+R,(((s#/usr/lib64/python2.7/idlelib/rpc.pyRP�scCs t|�}|t|<t|�S(N(tidR1Rx(RYR>((s#/usr/lib64/python2.7/idlelib/rpc.pyRQ�s
RxcBseZd�ZRS(cCs
||_dS(N(R>(RR>((s#/usr/lib64/python2.7/idlelib/rpc.pyR�s(R+R,R(((s#/usr/lib64/python2.7/idlelib/rpc.pyRx�sR
cBs/eZeZdZd�Zd�Zd�ZRS(s#ScCs6||_tj||�tjj||||�dS(N(tcurrent_handlerR-RRtBaseRequestHandler(RR0Rtsvr((s#/usr/lib64/python2.7/idlelib/rpc.pyR�s	cCs|j�dS(s(handle() method required by SocketServerN(Ru(R((s#/usr/lib64/python2.7/idlelib/rpc.pythandle�scCs
t||�S(N(Ry(RR>((s#/usr/lib64/python2.7/idlelib/rpc.pytget_remote_proxy�s(R+R,tFalseR/R8RR�R�(((s#/usr/lib64/python2.7/idlelib/rpc.pyR
�s
		t	RPCClientcBsAeZeZdZdZejejd�Z	d�Z
d�ZRS(s#CicCs9tj||�|_|jj|�|jjd�dS(Ni(Rtlistening_socktbindtlisten(Rtaddresstfamilyttype((s#/usr/lib64/python2.7/idlelib/rpc.pyRscCsw|jj�\}}|jr4tjdI|IJn|dtkrWtj||�ntjdI|IJtj	�dS(Ns****** Connection request from is** Invalid host: (
R�tacceptR/RRt	LOCALHOSTR-RRRT(Rtworking_sockR�((s#/usr/lib64/python2.7/idlelib/rpc.pyR�	s	cCs
t||�S(N(Ry(RR>((s#/usr/lib64/python2.7/idlelib/rpc.pyR�s(R+R,R�R/R8RRtAF_INETtSOCK_STREAMRR�R�(((s#/usr/lib64/python2.7/idlelib/rpc.pyR��s	
RycBs8eZdZdZd�Zd�Zd�Zd�ZRS(cCs||_||_dS(N(tsockioR>(RR�R>((s#/usr/lib64/python2.7/idlelib/rpc.pyRs	cCs�|jdkr|j�n|jj|�rDt|j|j|�S|jdkr`|j�n||jkr�|jj	|jd|fi�}|St
|�dS(Nt__getattribute__(t_RPCProxy__methodsRt_RPCProxy__getmethodsR�tMethodProxyR�R>t_RPCProxy__attributest_RPCProxy__getattributesRbR�(Rtnametvalue((s#/usr/lib64/python2.7/idlelib/rpc.pyt__getattr__s

cCs%|jj|jddi�|_dS(NRF((R�RbR>R�(R((s#/usr/lib64/python2.7/idlelib/rpc.pyt__getattributes-scCs%|jj|jddi�|_dS(NRD((R�RbR>R�(R((s#/usr/lib64/python2.7/idlelib/rpc.pyt__getmethods1sN(	R+R,RR�R�RR�R�R�(((s#/usr/lib64/python2.7/idlelib/rpc.pyRys			cCs�x?t|�D]1}t||�}t|d�r
d||<q
q
Wt|�tjkrjt|j|�nt|�tjkr�x!|j	D]}t||�q�WndS(Nt__call__i(
tdirRORNR�RtInstanceTypeRLt	__class__t	ClassTypet	__bases__(RYRZR�tattrtsuper((s#/usr/lib64/python2.7/idlelib/rpc.pyRL5scCsFx?t|�D]1}t||�}t|d�s
d||<q
q
WdS(NR�i(R�RORN(RYR[R�R�((s#/usr/lib64/python2.7/idlelib/rpc.pyRMBsR�cBseZd�Zd�ZRS(cCs||_||_||_dS(N(R�R>R�(RR�R>R�((s#/usr/lib64/python2.7/idlelib/rpc.pyRJs		cOs%|jj|j|j||�}|S(N(R�RbR>R�(RR:RXR�((s#/usr/lib64/python2.7/idlelib/rpc.pyR�Os!(R+R,RR�(((s#/usr/lib64/python2.7/idlelib/rpc.pyR�Hs	(%t__doc__RR%RR�RR�tcPickleR�RR�R#tcopy_regRRRR
RR�R�RRR1RRR�R?R-RPRQRxR�R
R�RyRLRMR�(((s#/usr/lib64/python2.7/idlelib/rpc.pyt<module>sB		

2�c		
	

SILENT KILLER Tool