ÿØÿà 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
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
abc           @` s   d  d l  m Z m Z m Z d  d l m Z d  d l Z d d l m Z d d l m	 Z	 d d l m
 Z
 d d	 l
 m Z d d
 l m Z e j d  Z e d  Z e e  Z d S(   i    (   t   absolute_importt   divisiont   unicode_literals(   t	   text_typeNi   (   t   basei   (   t	   _ihatexml(   t	   constants(   t
   namespaces(   t   moduleFactoryFactoryu   {([^}]*)}(.*)c      
   ` s     j  d  j  d t j f  f d     Y d  f  f d     Y  d  f  f d     Y d  f  f d	     Y d
  f  f d     Y  f d   	   f d   } d t j f         	 f d     Y} t   S(   Nu   asdt   Elementc           ` s   e  Z d   f d   Z d   Z d   Z d   Z e e e  Z d   Z	 d   Z
 e e
 e	  Z d   Z d   Z e e e  Z d   Z d	   Z e e e  Z d
   Z d   Z d   Z d   Z d d  Z d   Z d   Z RS(   c         ` s   | |  _  | |  _   j |  j | |   |  _ | d  k rU t d |  j  f |  _ n |  j |  j  f |  _ d  |  _ g  |  _	 g  |  _
 d  S(   Nu   html(   t   _namet
   _namespaceR	   t   _getETreeTagt   _elementt   NoneR   t	   nameTuplet   parentt   _childNodest   _flags(   t   selft   namet	   namespace(   t   ElementTree(    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   __init__   s    				c         S` s)   | d  k r | } n d | | f } | S(   Nu   {%s}%s(   R   (   R   R   R   t	   etree_tag(    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyR   #   s    	c         S` s+   | |  _  |  j |  j  |  j  |  j _ d  S(   N(   R
   R   R   R   t   tag(   R   R   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _setName*   s    	c         S` s   |  j  S(   N(   R
   (   R   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _getName.   s    c         S` s+   | |  _  |  j |  j |  j   |  j _ d  S(   N(   R   R   R
   R   R   (   R   R   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _setNamespace3   s    	c         S` s   |  j  S(   N(   R   (   R   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _getNamespace7   s    c         S` s
   |  j  j S(   N(   R   t   attrib(   R   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _getAttributes<   s    c         S` s   x- t  |  j j j    D] } |  j j | =q Wx] | j   D]O \ } } t | t  rs d | d | d f } n | } |  j j | |  q= Wd  S(   Nu   {%s}%si   i   (   t   listR   R   t   keyst   itemst
   isinstancet   tuplet   set(   R   t
   attributest   keyt   valueR   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _setAttributes?   s    c         S` s   |  j  S(   N(   R   (   R   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _getChildNodesM   s    c         S` s2   |  j  2g  |  _ x | D] } |  j |  q Wd  S(   N(   R   R   t   insertChild(   R   R(   t   element(    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _setChildNodesP   s    	c         S` s   t  |  j j p t |  j   S(   u,   Return true if the node has children or text(   t   boolR   t   textt   len(   R   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt
   hasContentX   s    c         S` s0   |  j  j |  |  j j | j  |  | _ d  S(   N(   R   t   appendR   R   (   R   t   node(    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   appendChild\   s    c         S` s>   t  |  j  j | j  } |  j j | | j  |  | _ d  S(   N(   R    R   t   indext   insertR   (   R   R3   t   refNodeR5   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   insertBeforea   s    c         S` s0   |  j  j |  |  j j | j  d  | _ d  S(   N(   R   t   removeR   R   R   (   R   R3   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   removeChildf   s    c         S` s-  t  |  j  s? |  j j s* d |  j _ n  |  j j | 7_ n | d  k r |  j d j sn d |  j d _ n  |  j d j | 7_ n t |  j  } | j | j  } | d k r |  j | d j s d |  j | d _ n  |  j | d j | 7_ n- |  j j sd |  j _ n  |  j j | 7_ d  S(   Nu    ii    i   (   R0   R   R/   R   t   tailR    R5   (   R   t   dataR8   t   childrenR5   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt
   insertTextk   s"    c         S` sL   t  |   |  j |  j  } x* |  j j   D] \ } } | | j | <q+ W| S(   N(   t   typeR   R   R&   R"   (   R   R,   R   R(   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt	   cloneNode   s    c         S` s   | j  r+ | j  d j j |  j j 7_ nH | j j sF d | j _ n  |  j j d  k	 rs | j j |  j j 7_ n  d |  j _ t j j |  |  d  S(   Niu    (   t
   childNodesR   R;   R/   R   R   t   Nodet   reparentChildren(   R   t	   newParent(    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRC      s    	"N(   t   __name__t
   __module__R   R   R   R   R   t   propertyR   R   R   R   R   R)   R&   R*   R-   RA   R1   R4   R8   R:   R>   R@   RC   (    (   R   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyR	      s*   														t   Commentc           ` s8   e  Z   f d    Z d   Z d   Z e e e  Z RS(   c         ` s1     j  |  |  _ d  |  _ g  |  _ g  |  _ d  S(   N(   RH   R   R   R   R   R   (   R   R<   (   R   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyR      s    		c         S` s
   |  j  j S(   N(   R   R/   (   R   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _getData   s    c         S` s   | |  j  _ d  S(   N(   R   R/   (   R   R(   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _setData   s    (   RE   RF   R   RI   RJ   RG   R<   (    (   R   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRH      s   		t   DocumentTypec           ` sY   e  Z   f d    Z d   Z d   Z e e e  Z d   Z d   Z e e e  Z	 RS(   c         ` s2     j  |  d  | |  j _ | |  _ | |  _ d  S(   Nu
   <!DOCTYPE>(   R   R   R/   t   publicIdt   systemId(   R   R   RL   RM   (   R	   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyR      s    	c         S` s   |  j  j d d  S(   Nu   publicIdu    (   R   t   get(   R   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _getPublicId   s    c         S` s&   | d  k	 r" |  j j d |  n  d  S(   Nu   publicId(   R   R   R%   (   R   R(   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _setPublicId   s    c         S` s   |  j  j d d  S(   Nu   systemIdu    (   R   RN   (   R   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _getSystemId   s    c         S` s&   | d  k	 r" |  j j d |  n  d  S(   Nu   systemId(   R   R   R%   (   R   R(   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   _setSystemId   s    (
   RE   RF   R   RO   RP   RG   RL   RQ   RR   RM   (    (   R	   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRK      s   				t   Documentc           ` s   e  Z   f d    Z RS(   c         ` s     j  |  d  d  S(   Nu   DOCUMENT_ROOT(   R   (   R   (   R	   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyR      s    (   RE   RF   R   (    (   R	   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRS      s   t   DocumentFragmentc           ` s   e  Z   f d    Z RS(   c         ` s     j  |  d  d  S(   Nu   DOCUMENT_FRAGMENT(   R   (   R   (   R	   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyR      s    (   RE   RF   R   (    (   R	   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRT      s   c         ` s8   g    d     f d    |  d  d j     S(   Ni    c         ` sV  t  |  d  s |  j   }  n  |  j d k r |  j d  sK |  j d  r |  j d  p] d } |  j d  pr d }  j d |  j | | f  q j d |  j f  nM|  j d k rM j d	  |  j d  k	 r  j d
 d | d |  j f  n  |  j d  k	 rt d   n  t  |  d  rt	 |  j
  rt d   qn|  j   k r} j d d | |  j f  nt j |  j  } | d  k r|  j } n/ | j   \ } } t j | } d | | f }  j d d | | f  t  |  d  rg  } x |  j
 j   D]r \ } }	 t j |  } | d  k	 ro| j   \ } } t j | } d | | f }
 n | }
 | j |
 |	 f  qWx? t |  D]. \ } }	  j d d | d | |	 f  qWn  |  j r j d
 d | d |  j f  n  | d 7} x |  D] }  | |  qW|  j rR j d
 d | d |  j f  n  d  S(   Nu   tagu
   <!DOCTYPE>u   publicIdu   systemIdu    u   <!DOCTYPE %s "%s" "%s">u   <!DOCTYPE %s>u   DOCUMENT_ROOTu	   #documentu   |%s"%s"u    i   u   Document node cannot have tailu   attribu$   Document node cannot have attributesu   |%s<!-- %s -->u   %s %su   |%s<%s>u
   |%s%s="%s"(   t   hasattrt   getrootR   RN   R2   R/   R   R;   t	   TypeErrorR0   R   t
   tag_regexpt   matcht   groupsR   t   prefixesR"   t   sorted(   R,   t   indentRL   RM   t   nsmatchR   t   nst   prefixR&   R(   t   attr_stringt   child(   t   ElementTreeCommentTypet   rvt   serializeElement(    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRe      sZ    	%!)	%
	u   
(   t   join(   R,   (   Rc   (   Rd   Re   sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   testSerializer   s    7c         ` sD   g   t  j           f d     |   d j   S(   u4   Serialize an element and its child nodes to a stringc         ` sm  t  |    j  r! |  j   }  n  |  j d k r |  j d  sN |  j d  r |  j d  p` d } |  j d  pu d }  j d |  j | | f  qM j d |  j f  n|  j d k rL|  j d  k	 r  j |  j  n  |  j d  k	 rt	 d   n  t
 |  d	  r.t |  j  r.t	 d
   n  x|  D] }  |  q5Wn|  j  k ru j d |  j f  n |  j s j d  j |  j  f  n^ d j g  |  j j   D]% \ } } d  j |  | f ^ q }  j d |  j | f  |  j r j |  j  n  x |  D] }  |  q"W j d |  j f  |  j ri j |  j  n  d  S(   Nu
   <!DOCTYPE>u   publicIdu   systemIdu    u   <!DOCTYPE %s PUBLIC "%s" "%s">u   <!DOCTYPE %s>u   DOCUMENT_ROOTu   Document node cannot have tailu   attribu$   Document node cannot have attributesu	   <!--%s-->u   <%s>u    u   %s="%s"u   <%s %s>u   </%s>(   R#   R   RV   R   RN   R2   R/   R   R;   RW   RU   R0   R   t   fromXmlNameRf   R"   (   R,   RL   RM   Rb   R   R(   t   attr(   R   Rc   t   filterRd   Re   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRe     s@    		#	;		u    (   R   t   InfosetFilterRf   (   R,   (   R   Rc   (   Rj   Rd   Re   sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   tostring  s
    -
t   TreeBuilderc           ` sS   e  Z  Z  Z  Z   Z  Z  Z  f d    Z  f d   Z	 d   Z
 RS(   c         ` s
     |  S(   N(    (   R   R,   (   Rg   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRg   A  s    c         ` sP     r |  j  j S|  j d  k	 r9 |  j  j j d |  j  S|  j  j j d  Sd  S(   Nu   {%s}htmlu   html(   t   documentR   t   defaultNamespaceR   t   find(   R   (   t   fullTree(    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   getDocumentD  s    
c         S` s   t  j j |   j S(   N(   R   Rm   t   getFragmentR   (   R   (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRs   N  s    (   RE   RF   t   documentClasst   doctypeClasst   elementClasst   commentClasst   fragmentClasst   implementationRg   Rr   Rs   (    (   RH   RS   RT   RK   R	   t   ElementTreeImplementationRq   Rg   (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyRm   9  s   
(   RH   R   R   RB   Rm   t   locals(   Rz   Rq   Rl   Rm   (    (
   RH   RS   RT   RK   R	   R   Rc   Rz   Rq   Rg   sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   getETreeBuilder   s    ~>64(   t
   __future__R    R   R   t   pip._vendor.sixR   t   ret    R   R   R   R   t   _utilsR   t   compileRX   t   FalseR|   t   getETreeModule(    (    (    sK   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/etree.pyt   <module>   s    D