ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
^c           @   s   d  Z  d d l Z d d l Z d d d     YZ d d d     YZ d d d     YZ d	 e f d
     YZ e d d i d d 6 Z d   Z	 e
 d k r e	   n  d S(   s?   Tracing metaclass.

XXX This is very much a work in progress.

iNt   TraceMetaClassc           B   s>   e  Z d  Z d Z d   Z d   Z d   Z d   Z d Z	 RS(   sU  Metaclass for tracing.

    Classes defined using this metaclass have an automatic tracing
    feature -- by setting the __trace_output__ instance (or class)
    variable to a file object, trace messages about all calls are
    written to the file.  The trace formatting can be changed by
    defining a suitable __trace_call__ method.

    i    c         C   s(   | |  _  | |  _ | |  _ d |  _ d  S(   Ni   (   t   __name__t	   __bases__t   _TraceMetaClass__dictt   _TraceMetaClass__inited(   t   selft   namet   basest   dict(    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyt   __init__   s    			c         C   si   y |  j  | SWnS t k
 rd x6 |  j D]+ } y | j |  SWq) t k
 rS q) Xq) Wt |  n Xd  S(   N(   R   t   KeyErrorR   t   __getattr__t   AttributeError(   R   R   t   base(    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR      s    c         C   s*   |  j  s | |  j | <n | |  j | <d  S(   N(   R   t   __dict__R   (   R   R   t   value(    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyt   __setattr__(   s    	c         O   sZ   t    } | j |   y | j d  } Wn t k
 rE d   } n Xt | | |  | S(   NR	   c           S   s   d  S(   N(   t   None(    (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyt   <lambda>4   t    (   t   TracingInstancet   __meta_init__R   R   t   apply(   R   t   argst   kwt   instt   init(    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyt   __call__.   s    	N(
   R   t
   __module__t   __doc__R   R	   R   R   R   R   t   __trace_output__(    (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR    	   s   					
R   c           B   s)   e  Z d  Z d   Z d   Z d   Z RS(   s9   Helper class to represent an instance of a tracing class.c         G   s   | j  | d |  d  S(   Ns   
(   t   write(   R   t   fpt   fmtR   (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyt   __trace_call__=   s    c         C   s   | |  _  d  S(   N(   t   _TracingInstance__class(   R   t   klass(    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR   @   s    c         C   s   y |  j  j |  } Wn t k
 r2 t |  n Xt |  t j k rL | S|  j  j d | } |  j sv | d k r t | | |   St	 | | |   Sd  S(   Nt   .R"   (
   R#   R   R   t   typet   typest   FunctionTypeR   R   t   NotTracingWrappert   TracingWrapper(   R   R   t   rawt   fullname(    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR   C   s    (   R   R   R   R"   R   R   (    (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR   :   s   		R)   c           B   s   e  Z d    Z d   Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   R   t   funcR   (   R   R   R-   R   (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR	   S   s    		c         O   s   t  |  j |  j f | |  S(   N(   R   R-   R   (   R   R   R   (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR   W   s    (   R   R   R	   R   (    (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR)   R   s   	R*   c           B   s   e  Z d    Z RS(   c         O   s   |  j  j |  j  j d |  j |  j  | |  y# t |  j |  j  f | |  } WnM t j   \ } } } |  j  j |  j  j d |  j | |  | | |  n' X|  j  j |  j  j d |  j |  | Sd  S(   Ns#   calling %s, inst=%s, args=%s, kw=%ss'   returning from %s with exception %s: %ss   returning from %s with value %s(   R   R"   R   R   R   R-   t   syst   exc_info(   R   R   R   t   rvt   tt   vt   tb(    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR   [   s    #(   R   R   R   (    (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR*   Z   s   t   TracedR   c          C   s   d t  f d     Ya d t f d     Ya t d  }  |  GH|  j GH|  j d  GH|  j d  GH|  j d  GH|  j d	  GH|  j d
  GH|  j GHt j GHt j GHt j GHt j GHt   } | GH| j d  GH| j d  GH| j GHd  S(   Nt   Cc           B   s/   e  Z d  d  Z d   Z d   Z e j Z RS(   i    c         S   s   | |  _  d  S(   N(   t   x(   R   R6   (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR	   s   R   c         S   s   | |  _  d  S(   N(   R6   (   R   R6   (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyt   m1t   R   c         S   s   |  j  | S(   N(   R6   (   R   t   y(    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyt   m2u   R   (   R   R   R	   R7   R9   R.   t   stdoutR   (    (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR5   r   s   		t   Dc           B   s   e  Z d    Z d Z RS(   c         S   s   d | f GHt  j |  |  S(   Ns   D.m2(%r)(   R5   R9   (   R   R8   (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR9   x   s    N(   R   R   R9   R   R   (    (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyR;   w   s   	i  id   i
   i!   i   i  (   R4   R5   R;   R6   R7   R9   R	   (   R6   R8   (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyt   _testp   s(    	t   __main__(    (    (    (    (   R   R'   R.   R    R   R)   R*   R   R4   R<   R   (    (    (    s.   /usr/lib64/python2.7/Demo/metaclasses/Trace.pyt   <module>   s   1	