-
<c       s.	    d  Z    d k Z  d k Z  d d d d d d d d	 d
 d d d d g Z 
 e d  Z - e d  Z 7 d d  Z a e Z c 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  g  Z  d  g d! Z  x- e d!  D ] Z  d e d e e <q"W d"   Z  d#   Z  d$   Z  d%   Z  e d& d'   e d( d)   e d* d+   e d, d-   e d. d/   e d0 d1   e d2 d3   e d4 d5   e d6 d7   e d8 d9   e d: d;   e d< d=   e d> d?   e d@ dA   e dB dC   e dD dE   e dF dG   e dH dI   e dJ dK   e dL dM   e dN dO   e dP dQ   e dR dS   e dT dU   e dV dW   e dX dY   e dZ d[   e d\ d]   e d^ d_   e d` da   e db dc   e dd de   e df dg   e dh di   e dj dk   e dl dm   e dn do   e dp dq   e dr ds   e dt du   e dv dw   e dx dy   e dz 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 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   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 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 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   e d d  !e d d  "e i d  #e d d  $e i d  %e d d  &e i d  (e d d  )e d d  *e d d ,e dd -dZ /d  Z Fe dj o Ge   n d S(  s0   Disassembler of Python byte code into mnemonics.Ns   diss   disassembles   distbs   discos   opnames   cmp_ops   hasconsts   hasnames   hasjrels   hasjabss   haslocals
   hascompares   hasfreec    s  
   |  o  t    d Sn  t |   t i j o  |  i }  n  t |  d  o  |  i }  n  t |  d  o  |  i }  n  t |  d  o  |  i	 i
   }  | i    x | D ] \ } }  t |  t i t i t i f j oO   d | GH! y " t |  Wn$ # t j
 o } $ d G| GHn X% Hn q Wn> & t |  d  o ' t |   n ) t d t |   i  d S(	   sn   Disassemble classes, methods, functions, or code.

    With no argument, disassemble the last traceback.

    Ns   im_funcs	   func_codes   __dict__s   Disassembly of %s:s   Sorry:s   co_codes(   don't know how to disassemble %s objects(   s   xs   distbs   types   typess   InstanceTypes	   __class__s   hasattrs   im_funcs	   func_codes   __dict__s   itemss   sorts   names   x1s
   MethodTypes   FunctionTypes   CodeTypes   diss	   TypeErrors   msgs   disassembles   __name__(   s   xs   names   itemss   msgs   x1(    (    s   /usr/lib/python2.2/dis.pys   dis
 s2   

 (c    s   - . / |  o` 0 y 1 t i }  Wn" 2 t j
 o 3 t d  n X4 x 4 |  i o 4 |  i }  qO Wn 5 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   tb(    (    s   /usr/lib/python2.2/dis.pys   distb- s     ic    s  7 8 9 |  i } : t |  } ; t |  } < d } = d } > t	 } ? xu? | | j  od@ | | } A t |  }
 B |
 t j o
 | d j o B Hn C | | j o C d Gn D d GE | | j o E d Gn F d GG | i d  GH t |
 i d  GI | d } J |
 t j oK t | |  t | | d  d	 | }	 L d } M | d
 } N |
 t j o O |	 d } n P |	 i d  GQ |
 t j o R d |  i |	 d Gn S |
 t j o T d |  i |	 d Gn U |
 t j o V d | |	 d Gn W |
 t j o X d |  i |	 d Gnv Y |
 t j o Z d t |	 d GnO [ |
 t j o> \ | t	 j o ] |  i  |  i! } n ^ d | |	 d Gn n _ HqQ Wd S(   s   Disassemble a code object.i    s   -->s      s   >>s     i   i   i   i   i   l      i   s   (s   )s   (to N("   s   cos   co_codes   codes
   findlabelss   labelss   lens   ns   is   extended_args   Nones   frees   cs   ords   ops
   SET_LINENOs   lastis   rjusts   opnames   ljusts   HAVE_ARGUMENTs   opargs   EXTENDED_ARGs   hasconsts	   co_constss   hasnames   co_namess   hasjrels   haslocals   co_varnamess
   hascompares   cmp_ops   hasfrees   co_cellvarss   co_freevars(   s   cos   lastis   extended_args   codes   labelss   cs   frees   is   ns   opargs   op(    (    s   /usr/lib/python2.2/dis.pys   disassemble7 sX   			    -	c    s?  c h i g  } j t |   } k d } l xl | | j  o m |  | } n t |  } o | d } p | t j o q t |  |  t |  | d  d } r | d } s d } t | t j o u | | } n v | t j o w | } n x | d j o( y | | j o z | i |  n n n q- W{ | Sd S(   s`   Detect all offsets in a byte code which are jump targets.

    Return the list of offsets.

    i    i   i   i   iN(   s   labelss   lens   codes   ns   is   cs   ords   ops   HAVE_ARGUMENTs   opargs   labels   hasjrels   hasjabss   append(   s   codes   cs   is   labelss   labels   opargs   ns   op(    (    s   /usr/lib/python2.2/dis.pys
   findlabelsc s*   		 )	!s   <s   <=s   ==s   !=s   >s   >=s   ins   not ins   iss   is nots   exception matchs   BADs    i   c    s     |  t | <d  S(   N(   s   names   opnames   op(   s   names   op(    (    s   /usr/lib/python2.2/dis.pys   def_op s   c    s$     |  t | < t i |  d  S(   N(   s   names   opnames   ops   hasnames   append(   s   names   op(    (    s   /usr/lib/python2.2/dis.pys   name_op s   c    s$     |  t | < t i |  d  S(   N(   s   names   opnames   ops   hasjrels   append(   s   names   op(    (    s   /usr/lib/python2.2/dis.pys   jrel_op s   c    s$     |  t | < t i |  d  S(   N(   s   names   opnames   ops   hasjabss   append(   s   names   op(    (    s   /usr/lib/python2.2/dis.pys   jabs_op s   s	   STOP_CODEi    s   POP_TOPi   s   ROT_TWOi   s	   ROT_THREEi   s   DUP_TOPi   s   ROT_FOURi   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   BINARY_FLOOR_DIVIDEi   s   BINARY_TRUE_DIVIDEi   s   INPLACE_FLOOR_DIVIDEi   s   INPLACE_TRUE_DIVIDEi   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   INPLACE_ADDi7   s   INPLACE_SUBTRACTi8   s   INPLACE_MULTIPLYi9   s   INPLACE_DIVIDEi:   s   INPLACE_MODULOi;   s   STORE_SUBSCRi<   s   DELETE_SUBSCRi=   s   BINARY_LSHIFTi>   s   BINARY_RSHIFTi?   s
   BINARY_ANDi@   s
   BINARY_XORiA   s	   BINARY_ORiB   s   INPLACE_POWERiC   s   GET_ITERiD   s
   PRINT_EXPRiF   s
   PRINT_ITEMiG   s   PRINT_NEWLINEiH   s   PRINT_ITEM_TOiI   s   PRINT_NEWLINE_TOiJ   s   INPLACE_LSHIFTiK   s   INPLACE_RSHIFTiL   s   INPLACE_ANDiM   s   INPLACE_XORiN   s
   INPLACE_ORiO   s
   BREAK_LOOPiP   s   LOAD_LOCALSiR   s   RETURN_VALUEiS   s   IMPORT_STARiT   s	   EXEC_STMTiU   s
   YIELD_STMTiV   s	   POP_BLOCKiW   s   END_FINALLYiX   s   BUILD_CLASSiY   iZ   s
   STORE_NAMEs   DELETE_NAMEi[   s   UNPACK_SEQUENCEi\   s   FOR_ITERi]   s
   STORE_ATTRi_   s   DELETE_ATTRi`   s   STORE_GLOBALia   s   DELETE_GLOBALib   s   DUP_TOPXic   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_GLOBALit   s   CONTINUE_LOOPiw   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   s   MAKE_CLOSUREi   s   LOAD_CLOSUREi   s
   LOAD_DEREFi   s   STORE_DEREFi   s   CALL_FUNCTION_VARi   s   CALL_FUNCTION_KWi   s   CALL_FUNCTION_VAR_KWi   s   EXTENDED_ARGi   c     s  /01t  i d oq 2t  i d o' 3t  i i d  4t  i d  n 5t  i d } 6| p
 | d j o 7t } n n
 9t } :| o ;t  i } n =t	 |  } >| i
   }  ?| o @| i   n
 Bd } Ct |  | d  } Dt |  d S(   s*   Simple test program to disassemble a file.i   i   s   usage: python dis.py [-|file]
s   -s   <stdin>s   execN(   s   syss   argvs   stderrs   writes   exits   fns   Nones   stdins   fs   opens   reads   sources   closes   compiles   codes   dis(   s   sources   codes   fs   fn(    (    s   /usr/lib/python2.2/dis.pys   _test/s$   	
	s   __main__(   s   __doc__s   syss   typess   __all__s   Nones   diss   distbs   disassembles   discos
   findlabelss   cmp_ops   hasconsts   hasnames   hasjrels   hasjabss   haslocals
   hascompares   hasfrees   opnames   ranges   ops   def_ops   name_ops   jrel_ops   jabs_ops   HAVE_ARGUMENTs   appends
   SET_LINENOs   EXTENDED_ARGs   _tests   __name__(   s   hasjrels   hasconsts   HAVE_ARGUMENTs
   SET_LINENOs   disassembles
   findlabelss   syss   jabs_ops   haslocals   opnames   typess   __all__s   EXTENDED_ARGs   hasfrees   name_ops   distbs   jrel_ops
   hascompares   discos   hasjabss   def_ops   diss   cmp_ops   _tests   hasnames   op(    (    s   /usr/lib/python2.2/dis.pys   ? s*  0#
*	-							 	 			