™N
æùO5c       sŒ  d  Z  k Z k Z k Z e d „ Z e d „ Z d d „ Z e Z d „  Z	 d d d d	 d
 d d d d d d d f Z
 g  Z g  Z g  Z g  Z g  Z g  Z d g d Z x) e d ƒ d r Z d e d
 e e <q¶ Wd „  Z d „  Z d „  Z d „  Z e d d ƒ e d d ƒ e d d ƒ e d d ƒ e d d  ƒ e d! d" ƒ e d# d$ ƒ e d% d& ƒ e d' d( ƒ e d) d* ƒ e d+ d, ƒ e d- d. ƒ e d/ d0 ƒ e d1 d2 ƒ e d3 d4 ƒ e d5 d6 ƒ e d7 d8 ƒ e d9 d: ƒ e d; d< ƒ e d= d> ƒ e d? d@ ƒ e dA dB ƒ e dC dD ƒ e dE dF ƒ e dG dH ƒ e dI dJ ƒ e dK dL ƒ e dM dN ƒ e dO dP ƒ e dQ dR ƒ e dS dT ƒ e dU dV ƒ e dW dX ƒ e dY dZ ƒ e d[ d\ ƒ e d] d^ ƒ e d_ d` ƒ e da db ƒ e dc dd ƒ e de df ƒ e dg dh ƒ e di dj ƒ e dk dl ƒ e dm dn ƒ e do dp ƒ e dq dr ƒ ds Z e dt ds ƒ e du dv ƒ e dw dx ƒ e dy dz ƒ e d{ d| ƒ e d} d~ ƒ e d d€ ƒ e d d‚ ƒ e dƒ d„ ƒ e d… d† ƒ e d‡ dˆ ƒ e i dˆ ƒ e d‰ dŠ ƒ e d‹ dŒ ƒ e d dŽ ƒ e d d ƒ e d‘ d’ ƒ e d“ d” ƒ e i d” ƒ e d• d– ƒ e d— d˜ ƒ e d™ dš ƒ e d› dœ ƒ e d dž ƒ e dŸ d  ƒ e d¡ d¢ ƒ e d£ d¤ ƒ e d¥ d¦ ƒ e d§ d¨ ƒ e d© dª ƒ e d« d¬ ƒ e d­ d® ƒ e d¯ d° ƒ e i d° ƒ e d± d² ƒ e i d² ƒ e d³ d´ ƒ e i d´ ƒ e dµ d¶ ƒ d¶ Z e d· d¸ ƒ e d¹ dº ƒ e d» d¼ ƒ e d½ d¾ ƒ d¿ S(À   s0   Disassembler of Python byte code into mnemonics.c    sT  |  o t ƒ  d Sn t |  ƒ t i j o |  i }  n t |  d ƒ o˜ |  i i ƒ  } | i	 ƒ  xx | d rn \ } } t | ƒ t i t i t i f j o= d | GHy t | ƒ Wn t j
 o } d G| GHn XHn ql Wno t |  d ƒ o |  i }  n t |  d ƒ o |  i }  n t |  d ƒ o t |  ƒ n t d	 t |  ƒ i ‚ d S(
   sh   Disassemble classes, methods, functions, or code.

	With no argument, disassemble the last traceback.

	Ns   __dict__i    s   Disassembly of %s:s   Sorry:s   im_funcs	   func_codes   co_codes(   don't know how to disassemble %s objects(   s   xs   distbs   types   typess   InstanceTypes	   __class__s   hasattrs   __dict__s   itemss   sorts   names   x1s
   MethodTypes   FunctionTypes   CodeTypes   diss	   TypeErrors   msgs   im_funcs	   func_codes   disassembles   __name__(   s   xs   itemss   names   x1s   msgs-   /var/tmp/python-root/usr/lib/python1.5/dis.pys   dis s2     
	 %	c    sm   |  oK y t i }  Wn t j
 o t d ‚ n Xx |  i o |  i }  q7 Wn t |  i i |  i	 ƒ d S(   s2   Disassemble a traceback (default: last traceback).s    no last traceback to disassembleN(
   s   tbs   syss   last_tracebacks   AttributeErrors   RuntimeErrors   tb_nexts   disassembles   tb_frames   f_codes   tb_lasti(   s   tbs-   /var/tmp/python-root/usr/lib/python1.5/dis.pys   distb+ s      
 c 	   sÙ  |  i } t | ƒ } t | ƒ } d } x«| | j  o| | } t	 | ƒ } | t j o
 | d j o Hn | | j o d Gn d G| | j o d Gn d Gt i | d ƒ Gt i t | d ƒ G| d } | t j oõ t	 | | ƒ t	 | | d ƒ d	 } | d
 } t i | d ƒ G| t j o d |  i | d GnŒ | t j o d |  i | d Gnh | t j o d | | d GnF | t j o d |  i | d Gn" | t j o d t | d Gn n Hq* Wd S(   s   Disassemble a code object.i    s   -->s      s   >>s     i   i   i   i   i   i   s   (s   )s   (to N(   s   cos   co_codes   codes
   findlabelss   labelss   lens   ns   is   cs   ords   ops
   SET_LINENOs   lastis   strings   rjusts   ljusts   opnames   HAVE_ARGUMENTs   opargs   hasconsts	   co_constss   hasnames   co_namess   hasjrels   haslocals   co_varnamess
   hascompares   cmp_op(	   s   cos   lastis   codes   labelss   ns   is   cs   ops   opargs-   /var/tmp/python-root/usr/lib/python1.5/dis.pys   disassemble5 sF     	 
   
&
i   c    sþ   g  } t |  ƒ } d } xÛ | | j  oÍ |  | } t | ƒ } | d } | t j oœ t |  | ƒ t |  | d ƒ d } | d } d } | t j o | | } n | t j o
 | } n | d j o" | | j o | i | ƒ n n n q W| Sd S(   sZ   Detect all offsets in a byte code which are jump targets.

	Return the list of offsets.

	i    i   i   i   N(   s   labelss   lens   codes   ns   is   cs   ords   ops   HAVE_ARGUMENTs   opargs   labels   hasjrels   hasjabss   append(   s   codes   labelss   ns   is   cs   ops   opargs   labels-   /var/tmp/python-root/usr/lib/python1.5/dis.pys
   findlabelsX s*      

&

s   <s   <=s   ==s   !=s   >s   >=s   ins   not ins   iss   is nots   exception matchs   BADs    i   i    c    s   |  t | <d  S(   N(   s   names   opnames   op(   s   names   ops-   /var/tmp/python-root/usr/lib/python1.5/dis.pys   def_op s    c    s   |  t | <t i | ƒ d  S(   N(   s   names   opnames   ops   hasnames   append(   s   names   ops-   /var/tmp/python-root/usr/lib/python1.5/dis.pys   name_op‚ s    
c    s   |  t | <t i | ƒ d  S(   N(   s   names   opnames   ops   hasjrels   append(   s   names   ops-   /var/tmp/python-root/usr/lib/python1.5/dis.pys   jrel_op† s    
c    s   |  t | <t i | ƒ d  S(   N(   s   names   opnames   ops   hasjabss   append(   s   names   ops-   /var/tmp/python-root/usr/lib/python1.5/dis.pys   jabs_opŠ s    
s	   STOP_CODEs   POP_TOPs   ROT_TWOi   s	   ROT_THREEi   s   DUP_TOPi   s   UNARY_POSITIVEi
   s   UNARY_NEGATIVEi   s	   UNARY_NOTi   s   UNARY_CONVERTi   s   UNARY_INVERTi   s   BINARY_POWERi   s   BINARY_MULTIPLYi   s   BINARY_DIVIDEi   s   BINARY_MODULOi   s
   BINARY_ADDi   s   BINARY_SUBTRACTi   s   BINARY_SUBSCRi   s   SLICE+0i   s   SLICE+1i   s   SLICE+2i    s   SLICE+3i!   s   STORE_SLICE+0i(   s   STORE_SLICE+1i)   s   STORE_SLICE+2i*   s   STORE_SLICE+3i+   s   DELETE_SLICE+0i2   s   DELETE_SLICE+1i3   s   DELETE_SLICE+2i4   s   DELETE_SLICE+3i5   s   STORE_SUBSCRi<   s   DELETE_SUBSCRi=   s   BINARY_LSHIFTi>   s   BINARY_RSHIFTi?   s
   BINARY_ANDi@   s
   BINARY_XORiA   s	   BINARY_ORiB   s
   PRINT_EXPRiF   s
   PRINT_ITEMiG   s   PRINT_NEWLINEiH   s
   BREAK_LOOPiP   s   LOAD_LOCALSiR   s   RETURN_VALUEiS   s	   EXEC_STMTiU   s	   POP_BLOCKiW   s   END_FINALLYiX   s   BUILD_CLASSiY   iZ   s
   STORE_NAMEs   DELETE_NAMEi[   s   UNPACK_TUPLEi\   s   UNPACK_LISTi]   s
   UNPACK_ARGi^   s
   STORE_ATTRi_   s   DELETE_ATTRi`   s   STORE_GLOBALia   s   DELETE_GLOBALib   s   UNPACK_VARARGic   s
   LOAD_CONSTid   s	   LOAD_NAMEie   s   BUILD_TUPLEif   s
   BUILD_LISTig   s	   BUILD_MAPih   s	   LOAD_ATTRii   s
   COMPARE_OPij   s   IMPORT_NAMEik   s   IMPORT_FROMil   s   JUMP_FORWARDin   s   JUMP_IF_FALSEio   s   JUMP_IF_TRUEip   s   JUMP_ABSOLUTEiq   s   FOR_LOOPir   s
   LOAD_LOCALis   s   LOAD_GLOBALit   s   SET_FUNC_ARGSiu   s
   SETUP_LOOPix   s   SETUP_EXCEPTiy   s   SETUP_FINALLYiz   s	   LOAD_FASTi|   s
   STORE_FASTi}   s   DELETE_FASTi~   s
   SET_LINENOi   s   RAISE_VARARGSi‚   s   CALL_FUNCTIONiƒ   s   MAKE_FUNCTIONi„   s   BUILD_SLICEi…   N(   s   __doc__s   syss   strings   typess   Nones   diss   distbs   disassembles   discos
   findlabelss   cmp_ops   hasconsts   hasnames   hasjrels   hasjabss   haslocals
   hascompares   opnames   ranges   ops   def_ops   name_ops   jrel_ops   jabs_ops   HAVE_ARGUMENTs   appends
   SET_LINENO(    s-   /var/tmp/python-root/usr/lib/python1.5/dis.pys   ? sä   $
!	*  				