???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................ž
§ÿf–'  c               @   s€  d  Z  d d l Z d d l Z d d l Td d l m Z d d d d d	 d
 d d g e Z [ e j e j e j e	 f Z
 d d „  Z d d d „ Z d d d „ Z i d d 6d d 6d d 6d d 6d d 6d d 6d d 6Z d d  „  Z d! d „  Z d" d# „  Z d$ d „  Z d/ d% d „ Z d0 d d d d& d' „ Z d( d) „  Z e Z d* d „  Z d+ d
 „  Z d, d- „  Z e d. k r|e ƒ  n  d S(1   u0   Disassembler of Python byte code into mnemonics.i    N(   u   *(   u   __all__u	   code_infou   disu   disassembleu   distbu   discou   findlinestartsu
   findlabelsu	   show_codec             C   sA   y t  |  | d ƒ } Wn$ t k
 r< t  |  | d ƒ } Yn X| S(   uß   Attempts to compile the given source, first as an expression and
       then as a statement if the first approach fails.

       Utility function to accept strings in functions that otherwise
       expect code objects
    u   evalu   exec(   u   compileu   SyntaxError(   u   sourceu   nameu   c(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu   _try_compile   s
    u   _try_compilec             C   sl  |  d k r t ƒ  d St |  d ƒ r2 |  j }  n  t |  d ƒ rM |  j }  n  t |  d ƒ rõ t |  j j ƒ  ƒ } xô | D]v \ } } t | t	 ƒ rx t
 d | ƒ y t | ƒ Wn2 t k
 rã } z t
 d | ƒ WYd d } ~ Xn Xt
 ƒ  qx qx Wns t |  d ƒ rt |  ƒ nW t |  t t f ƒ r3t |  ƒ n5 t |  t ƒ rOt |  ƒ n t d t |  ƒ j ƒ ‚ d S(	   un   Disassemble classes, methods, functions, or code.

    With no argument, disassemble the last traceback.

    Nu   __func__u   __code__u   __dict__u   Disassembly of %s:u   Sorry:u   co_codeu(   don't know how to disassemble %s objects(   u   Noneu   distbu   hasattru   __func__u   __code__u   sortedu   __dict__u   itemsu
   isinstanceu
   _have_codeu   printu   disu	   TypeErroru   disassembleu   bytesu	   bytearrayu   _disassemble_bytesu   stru   _disassemble_stru   typeu   __name__(   u   xu   itemsu   nameu   x1u   msg(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu   dis   s2     c             C   sp   |  d k rV y t j }  Wn t k
 r9 t d ƒ ‚ Yn Xx |  j rR |  j }  q= Wn  t |  j j |  j	 ƒ d S(   u2   Disassemble a traceback (default: last traceback).u    no last traceback to disassembleN(
   u   Noneu   sysu   last_tracebacku   AttributeErroru   RuntimeErroru   tb_nextu   disassembleu   tb_frameu   f_codeu   tb_lasti(   u   tb(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu   distb=   s     u	   OPTIMIZEDi   u	   NEWLOCALSi   u   VARARGSi   u   VARKEYWORDSi   u   NESTEDi   u	   GENERATORi    u   NOFREEi@   c             C   s‡   g  } xq t  d ƒ D]P } d | >} |  | @r | j t j | t | ƒ ƒ ƒ |  | N}  |  sc Pqc q q W| j t |  ƒ ƒ d j | ƒ S(   u+   Return pretty representation of code flags.i    i   u   , (   u   rangeu   appendu   COMPILER_FLAG_NAMESu   getu   hexu   join(   u   flagsu   namesu   iu   flag(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu   pretty_flagsT   s    


u   pretty_flagsc             C   s   t  |  d ƒ r |  j }  n  t  |  d ƒ r6 |  j }  n  t |  t ƒ rW t |  d ƒ }  n  t  |  d ƒ rp t |  ƒ St d t |  ƒ j	 ƒ ‚ d S(   u1   Formatted details of methods, functions, or code.u   __func__u   __code__u   <code_info>u   co_codeu(   don't know how to disassemble %s objectsN(
   u   hasattru   __func__u   __code__u
   isinstanceu   stru   _try_compileu   _format_code_infou	   TypeErroru   typeu   __name__(   u   x(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu	   code_infob   s    
c             C   sù  g  } | j  d |  j ƒ | j  d |  j ƒ | j  d |  j ƒ | j  d |  j ƒ | j  d |  j ƒ | j  d |  j ƒ | j  d t |  j ƒ ƒ |  j	 rÜ | j  d ƒ x+ t
 |  j	 ƒ D] } | j  d	 | ƒ q¾ Wn  |  j r | j  d
 ƒ x+ t
 |  j ƒ D] } | j  d | ƒ qWn  |  j rd| j  d ƒ x+ t
 |  j ƒ D] } | j  d | ƒ qFWn  |  j r¨| j  d ƒ x+ t
 |  j ƒ D] } | j  d | ƒ qŠWn  |  j rì| j  d ƒ x+ t
 |  j ƒ D] } | j  d | ƒ qÎWn  d j | ƒ S(   Nu   Name:              %su   Filename:          %su   Argument count:    %su   Kw-only arguments: %su   Number of locals:  %su   Stack size:        %su   Flags:             %su
   Constants:u   %4d: %ru   Names:u   %4d: %su   Variable names:u   Free variables:u   Cell variables:u   
(   u   appendu   co_nameu   co_filenameu   co_argcountu   co_kwonlyargcountu
   co_nlocalsu   co_stacksizeu   pretty_flagsu   co_flagsu	   co_constsu	   enumerateu   co_namesu   co_varnamesu   co_freevarsu   co_cellvarsu   join(   u   cou   linesu   i_cu   i_n(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu   _format_code_infop   s:    					u   _format_code_infoc             C   s   t  t |  ƒ ƒ d S(   u7   Print details of methods, functions, or code to stdout.N(   u   printu	   code_info(   u   co(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu	   show_code   s    c             C   sB  |  j  } t | ƒ } t t |  ƒ ƒ } t | ƒ } d } d } d } xö| | k  r=| | }	 | | k r› | d k r€ t ƒ  n  t d | | d d ƒn t d d d ƒ| | k rÊ t d d d ƒn t d d d ƒ| | k rù t d d d ƒn t d d d ƒt t | ƒ j d	 ƒ d d ƒt t	 |	 j
 d
 ƒ d d ƒ| d } |	 t k r3| | | | d d | }
 d } | d } |	 t k r¢|
 d } n  t t |
 ƒ j d ƒ d d ƒ|	 t k rõt d t |  j |
 ƒ d d d ƒq3|	 t k r#t d |  j |
 d d d ƒq3|	 t k rTt d t | |
 ƒ d d d ƒq3|	 t k r‚t d |  j |
 d d d ƒq3|	 t k r­t d t |
 d d d ƒq3|	 t k r÷| d k rØ|  j |  j } n  t d | |
 d d d ƒq3|	 t k r3t d | | d | | d f d d ƒq3n  t ƒ  qH Wd S(   u   Disassemble a code object.i    u   %3du   endu    u      u   -->u   >>u     i   i   i   i   i   i   i   u   (u   )u   (to u    (%d positional, %d keyword pair)N(   u   co_codeu
   findlabelsu   dictu   findlinestartsu   lenu   Noneu   printu   repru   rjustu   opnameu   ljustu   HAVE_ARGUMENTu   EXTENDED_ARGu   hasconstu	   co_constsu   hasnameu   co_namesu   hasjrelu   haslocalu   co_varnamesu
   hascompareu   cmp_opu   hasfreeu   co_cellvarsu   co_freevarsu   hasnargs(   u   cou   lastiu   codeu   labelsu
   linestartsu   nu   iu   extended_argu   freeu   opu   oparg(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu   disassemble“   s`    	

  

("%"*c       
      C   sµ  t  |  ƒ } t |  ƒ } d } x| | k  r°|  | } | | k rV t d d d ƒn t d d d ƒ| | k r… t d d d ƒn t d d d ƒt t | ƒ j d ƒ d d ƒt t | j d	 ƒ d d ƒ| d
 } | t k r¦|  | |  | d
 d }	 | d } t t |	 ƒ j d ƒ d d ƒ| t k rx| rat d t | |	 ƒ d d d ƒq£t d |	 d d ƒq¦| t	 k rÆ| d  k	 r¯t d | |	 d d d ƒq£t d |	 d d ƒq¦| t k r÷t d t | |	 ƒ d d d ƒq¦| t k r?| r(t d | |	 d d d ƒq£t d |	 d d ƒq¦| t k rjt d t |	 d d d ƒq¦| t k r¦t d |  | d |  | d
 f d d ƒq¦n  t ƒ  q! Wd  S(   Ni    u   -->u   endu    u      u   >>u     i   i   i   i   i   i   u   (u   )u   (%d)u   (to u    (%d positional, %d keyword pair)(   u
   findlabelsu   lenu   printu   repru   rjustu   opnameu   ljustu   HAVE_ARGUMENTu   hasconstu   hasnameu   Noneu   hasjrelu   haslocalu
   hascompareu   cmp_opu   hasnargs(
   u   codeu   lastiu   varnamesu   namesu	   constantsu   labelsu   nu   iu   opu   oparg(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu   _disassemble_bytesÆ   sL    
  

%%*u   _disassemble_bytesc             C   s   t  t |  d ƒ ƒ d S(   u<   Compile the source string, then disassemble the code object.u   <dis>N(   u   disassembleu   _try_compile(   u   source(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu   _disassemble_strð   s    u   _disassemble_strc             C   sÕ   g  } t  |  ƒ } d } x¶ | | k  rÐ |  | } | d } | t k r |  | |  | d d } | d } d } | t k rŠ | | } n | t k rŸ | } n  | d k rÍ | | k rÊ | j | ƒ qÊ qÍ q q W| S(   u`   Detect all offsets in a byte code which are jump targets.

    Return the list of offsets.

    i    i   i   i   iÿÿÿÿ(   u   lenu   HAVE_ARGUMENTu   hasjrelu   hasjabsu   append(   u   codeu   labelsu   nu   iu   opu   opargu   label(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu
   findlabelsö   s$    


	c             c   sÈ   t  |  j d d d … ƒ } t  |  j d d d … ƒ } d } |  j } d } xZ t | | ƒ D]I \ } } | rœ | | k r | | f V| } n  | | 7} n  | | 7} q] W| | k rÄ | | f Vn  d S(   u”   Find the offsets in a byte code which are start of lines in the source.

    Generate pairs (offset, lineno) as described in Python/compile.c.

    i    Ni   i   (   u   listu	   co_lnotabu   Noneu   co_firstlinenou   zip(   u   codeu   byte_incrementsu   line_incrementsu
   lastlinenou   linenou   addru	   byte_incru	   line_incr(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu   findlinestarts  s    		c              C   sç   t  j d d … rr t  j d d … rF t  j j d ƒ t  j d ƒ n  t  j d }  |  sf |  d k rx d }  qx n d }  |  d k r t  j } n t |  ƒ } | j ƒ  } |  d k	 rÁ | j	 ƒ  n d }  t
 | |  d ƒ } t | ƒ d S(   u*   Simple test program to disassemble a file.i   Ni   u   usage: python dis.py [-|file]
u   -u   <stdin>u   exec(   u   sysu   argvu   stderru   writeu   exitu   Noneu   stdinu   openu   readu   closeu   compileu   dis(   u   fnu   fu   sourceu   code(    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu   _test%  s"    u   _testu   __main__iÿÿÿÿiÿÿÿÿ(   u   __doc__u   sysu   typesu   opcodeu   __all__u   _opcodes_allu
   MethodTypeu   FunctionTypeu   CodeTypeu   typeu
   _have_codeu   _try_compileu   Noneu   disu   distbu   COMPILER_FLAG_NAMESu   pretty_flagsu	   code_infou   _format_code_infou	   show_codeu   disassembleu   _disassemble_bytesu   _disassemble_stru   discou
   findlabelsu   findlinestartsu   _testu   __name__(    (    (    u(   /opt/alt/python33/lib64/python3.3/dis.pyu   <module>   sB   
!
3	)