
:UTc           @   s3  d  Z  d Z e Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l	 Z	 d d l
 Z
 d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z d d l Z d d l Z d d l Z d d d d d	 d
 d d d g	 Z e j d d f k  r@d e j   d GHd GHe j d  n  y e Wn! e k
 rkd d l m Z n Xy e Wn e k
 re Z n Xy d d l  Z  Wn e! k
 rd d l" Z  n Xe j# j$ Z$ d e j d e j d f Z% e j& j' d  Z( e) e d  Z* e j& d k Z+ e j& d k Z, e j& d k Z- e. e d d  Z/ e j# j0 d  Z1 e+ rxe j# j$ e1 d  Z2 n e j# j$ e1 d   Z2 e j# j$ e2 d!  Z3 e* rd" Z4 n e( rd# Z4 n d$ Z4 e+ rd%   Z5 n9 y d d l6 Z6 Wn e! k
 rd d l7 Z6 n Xd&   Z5 d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; g Z8 d< d= g Z9 e j d  \ Z: Z; e: d k re; d k re8 j< d> d? d@ dA g  n  e; dB k re8 j< dC g  n  e; dD k re8 j< dE dF g  n  n e: dD k re8 j< d@ d> d? dA dG dC dH dI dJ dF dK dL dM dN dO dP dQ dR dS dT dU dV dW g  e; d k ridX e: e9 d <n  e; dD k rd d l= Z= e= j> dY  Z? e9 j@ e?  e8 j< dZ d[ d\ d] d^ d_ d` g  n  e; da k re8 j< db dc dd g  n  n  e* re8 j< de d? g  n  df eA f dg     YZB eB eB jC d e jD f g  aE dh   ZF eG di  ZH eG dj  ZI eG dk  ZJ dl   ZK dm   ZL dn   ZM do   ZN dp e jO f dq     YZP dr e jQ f ds     YZR dt   ZS eG eT eT eG eT eT du  ZU dv   ZV dw   ZW eT dx  ZX eY eY eY eT eT eY eY eY eG dy 	 ZZ dz   Z[ d{   Z\ d|   Z] d}   Z^ d~   Z_ eG d  Z` eT d  Za d   Zb eG d  Zc eG d  Zd d   Ze d   Zf d   Zg d$ d e jh dD  d d d d d g Zi d   Zj d   Zk eT d  Zl d   Zm d   Zn eG d  Zo d d  Zp d   Zq eq d  Zr eq d  Zs eq d  Zt eq d  Zu eq d  Zv eq d  Zw eq d  Zx eq d  Zy eq d  Zz eq d  Z{ d Z| d Z} d Z~ d Z d Z d Z d Z d Z e: dD k oe. e d  pe. e d  Z d eA f d     YZ d d  Z d   Z e d k r/eS   n  d S(   s'   Create a "virtual" Python installation
s   1.11.6iN(   t	   strtoboolt   chardett   coloramat   distlibt   html5libt   pipt   requestst
   setuptoolst   sixt   urllib3i   i   s	   ERROR: %si   s2   ERROR: this script requires Python 2.6 or greater.ie   (   t   Sets   python%s.%si    t   javat   pypy_version_infot   win32t   cygwint   darwint   abiflagst    t   ~t
   virtualenvs   .virtualenvs   virtualenv.init   pypyt   jythont   pythonc           C   s   i  S(   N(    (    (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   get_installed_pythonsL   s    c          C   s   t  j t  j d  }  d } g  } xF t ri y' | j t  j |  |   | d } Wq$ t k
 re Pq$ Xq$ Wt   } x7 | D]/ } t  j |  d |  } t	 | d  | | <qz Wt  j
 |   x& t |  D] } | | | | d <q W| S(   Ns   Software\Python\PythonCorei    i   s   %s\InstallPaths
   python.exe(   t   winregt	   CreateKeyt   HKEY_LOCAL_MACHINEt   Truet   appendt   EnumKeyt   WindowsErrort   dictt
   QueryValuet   joint   CloseKeyt   sorted(   t   python_coret   it   versionst   exest   vert   path(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR   T   s$    				t   ost   posixt	   posixpatht   ntt   ntpatht   genericpatht   fnmatcht   localet	   encodingst   codecst   statt   UserDictt   readlinet   copy_regt   typest   ret   sret	   sre_parset   sre_constantst   sre_compilet   zlibs   lib-dynloadt   configt   warningst	   linecachet   _abcollt   abci   t   _weakrefseti   t   setst
   __future__t   iot   copyregt   tempfilet   randomt   collectionst   keywordt   tarfilet   shutilt   structt   copyt   tokenizet   tokent	   functoolst   heapqt   bisectt   weakreft   reprlibs	   config-%st   PLATDIRt   base64t   _dummy_threadt   hashlibt   hmact   impt	   importlibt   rlcompleteri   t   operatort   _collections_abct   _bootlocalet	   tracebackt   Loggerc           B   s  e  Z d  Z e j Z e j Z e j e j d Z e j Z Z e j	 Z	 e j
 Z
 e e e e e	 e
 g Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d	   Z d
   Z d d  Z d   Z d   Z d   Z d   Z d   Z e e  Z RS(   s   
    Logging object for use in command-line script.  Allows ranges of
    levels, to avoid some redundancy of displayed information.
    i   c         C   s(   | |  _  d |  _ d  |  _ t |  _ d  S(   Ni    (   t	   consumerst   indentt   Nonet   in_progresst   Falset   in_progress_hanging(   t   selfRe   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   __init__@  s    			c         O   s   |  j  |  j | | |  d  S(   N(   t   logt   DEBUG(   Rk   t   msgt   argst   kw(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   debugF  s    c         O   s   |  j  |  j | | |  d  S(   N(   Rm   t   INFO(   Rk   Ro   Rp   Rq   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   infoH  s    c         O   s   |  j  |  j | | |  d  S(   N(   Rm   t   NOTIFY(   Rk   Ro   Rp   Rq   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   notifyJ  s    c         O   s   |  j  |  j | | |  d  S(   N(   Rm   t   WARN(   Rk   Ro   Rp   Rq   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   warnL  s    c         O   s   |  j  |  j | | |  d  S(   N(   Rm   t   ERROR(   Rk   Ro   Rp   Rq   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   errorN  s    c         O   s   |  j  |  j | | |  d  S(   N(   Rm   t   FATAL(   Rk   Ro   Rp   Rq   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   fatalP  s    c         O   s  | r | r t  d   q n  | p' | } d  } x |  j D] \ } } |  j | |  r: |  j r | t j t j f k r t |  _ t j j	 d  t j j
   n  | d  k r | r | | } n | } d |  j | } n  t | d  r | j	 | d  q| |  q: q: Wd  S(   Ns6   You may give positional or keyword arguments, not boths   
t    t   write(   t	   TypeErrorRg   Re   t   level_matchesRj   t   syst   stdoutt   stderrRi   R~   t   flushRf   t   hasattr(   Rk   t   levelRo   Rp   Rq   t   renderedt   consumer_levelt   consumer(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRm   R  s*    		c         C   s}   |  j  s# t d | |  j  f   |  j |  j |  j    rg t j j |  t j j   t	 |  _
 n	 t |  _
 | |  _  d  S(   Ns0   Tried to start_progress(%r) while in_progress %r(   Rh   t   AssertionErrorR   Ru   t   _stdout_levelR   R   R~   R   R   Rj   Ri   (   Rk   Ro   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   start_progressk  s    	s   done.c         C   s   |  j  s t d   |  j |  j  r |  j s_ t j j d |  j  | d  t j j   q t j j | d  t j j   n  d  |  _  t
 |  _ d  S(   Ns,   Tried to end_progress without start_progresss   ...s   
(   Rh   R   t   stdout_level_matchesRu   Rj   R   R   R~   R   Rg   Ri   (   Rk   Ro   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   end_progressw  s    			c         C   s-   |  j  r) t j j d  t j j   n  d S(   sa   If we are in a progress scope, and no log messages have been
        shown, write out another '.'t   .N(   Rj   R   R   R~   R   (   Rk   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   show_progress  s    	c         C   s   |  j  | |  j    S(   s9   Returns true if a message at this level will go to stdout(   R   R   (   Rk   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR     s    c         C   s4   x* |  j  D] \ } } | t j k r
 | Sq
 W|  j S(   s%   Returns the level that stdout runs at(   Re   R   R   R{   (   Rk   R   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR     s    c         C   sl   t  | t  r^ | j | j } } | d k	 r> | | k r> t S| d k	 rZ | | k rZ t St S| | k Sd S(   so  
        >>> l = Logger([])
        >>> l.level_matches(3, 4)
        False
        >>> l.level_matches(3, 2)
        True
        >>> l.level_matches(slice(None, 3), 3)
        False
        >>> l.level_matches(slice(None, 3), 2)
        True
        >>> l.level_matches(slice(1, 3), 1)
        True
        >>> l.level_matches(slice(2, 3), 1)
        False
        N(   t
   isinstancet   slicet   startt   stopRg   Ri   R   (   Rk   R   R   R   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR     s    c         C   s?   |  j  } | d k  r | d S| t |  k r7 | d S| | S(   Ni    i(   t   LEVELSt   len(   t   clsR   t   levels(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   level_for_integer  s    	(   t   __name__t
   __module__t   __doc__t   loggingRn   Rs   Rw   Ru   t   WARNINGRy   R{   R   Rl   Rr   Rt   Rv   Rx   Rz   R|   Rm   R   R   R   R   R   R   R   t   classmethod(    (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRd   0  s0   																		c         C   sF   t  j j |   s2 t j d |   t  j |   n t j d |   d  S(   Ns   Creating %ss   Directory %s already exists(   R*   R)   t   existst   loggerRt   t   makedirs(   R)   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   mkdir  s    c         C   s<   t  j j |   r( t j |  | |  n t j |  |  d  S(   N(   R*   R)   t   isdirRN   t   copytreet   copy2(   t   srct   destt   symlink(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   copyfileordir  s    c         C   sy  t  j j |   s& t j d |   d  St  j j |  rL t j d |  d  St  j j t  j j |   s t j d t  j j |   t  j t  j j |   n  t  j j	 |   s t  j j
 |   } n t  j |   } | rUt t  d  rUt rUt j d |  y t  j | |  Wqut t f k
 rQt j d |  t |  | |  quXn  t j d |  t |  | |  d  S(   Ns!   Cannot find file %s (bad symlink)s   File %s already existss"   Creating parent directories for %sR   s   Symlinking %ss    Symlinking failed, copying to %ss   Copying to %s(   R*   R)   R   R   Rx   Rr   t   dirnameRt   R   t   islinkt   abspatht   readlinkR   t   is_winR   t   OSErrort   NotImplementedErrorR   (   R   R   R   t   srcpath(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   copyfile  s*    c         C   s   t  j j |   sU t j d |   t |  d  } | j | j d   | j   d  St |  d  } | j	   } | j   | | j d  k r | s t j
 d |   d  St j
 d |   t |  d  } | j | j d   | j   n t j d |   d  S(   Ns
   Writing %st   wbs   utf-8t   rbs6   File %s exists with different content; not overwritings   Overwriting %s with new contents   Content %s already in place(   R*   R)   R   R   Rt   t   openR~   t   encodet   closet   readRv   (   R   t   contentt	   overwritet   ft   c(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt	   writefile  s$    

c         C   sF   t  j j |   r2 t j d |   t j |   n t j d |   d  S(   Ns   Deleting tree %ss&   Do not need to delete %s; already gone(   R*   R)   R   R   Rv   RN   t   rmtreeRt   (   t   dir(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR     s    c         C   sc   t  t d  r_ t j |   j d @} | d Bd @} t j |  |  t j d |  t |   n  d  S(   Nt   chmodi  im  s   Changed mode of %s to %s(   R   R*   R4   t   st_modeR   R   Rt   t   oct(   t   fnt   oldmodet   newmode(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   make_exe  s
    c         C   si   x\ t  |  D]N } t j t j j | |    } | r t j j | d  r t | d f Sq Wt |  f S(   Ni    (   t   reversedt   globR*   R)   R!   t   isfileR   Ri   (   t   filenamet   dirsR   t   files(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt
   _find_file  s
    c          C   s   t  j j t  j j t   }  d |  d g } t  j j t  j j t   d d k r y d d  l } Wn t k
 rx q X| j t  j j	 t  j j | j  d   n  g  | D] } t  j j
 |  r | ^ q S(   NR   s   /usr/share/python-wheels/i    R   it   virtualenv_support(   R*   R)   R   R   t   __file__t   splitextR   t   ImportErrorR   R!   R   (   t   hereR   R   t   d(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   file_search_dirs  s    	(.t   UpdatingDefaultsHelpFormatterc           B   s   e  Z d  Z d   Z RS(   s   
    Custom help formatter for use in ConfigOptionParser that updates
    the defaults before expanding them, allowing them to show up correctly
    in the help listing
    c         C   s;   |  j  d  k	 r( |  j  j |  j  j  n  t j j |  |  S(   N(   t   parserRg   t   update_defaultst   defaultst   optparset   IndentedHelpFormattert   expand_default(   Rk   t   option(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR   (  s    (   R   R   R   R   (    (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR   "  s   t   ConfigOptionParserc           B   sG   e  Z d  Z d   Z d   Z d   Z d   Z d d  Z d   Z RS(   s}   
    Custom option parser which updates its defaults by checking the
    configuration files and environmental variables
    c         O   sK   t  j   |  _ |  j   |  _ |  j j |  j  t j j |  | |  d  S(   N(	   t   ConfigParsert   RawConfigParserR?   t   get_config_filesR   R   R   t   OptionParserRl   (   Rk   Rp   t   kwargs(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRl   3  s    c         C   s;   t  j j d t  } | r4 t  j j |  r4 | g St g S(   Nt   VIRTUALENV_CONFIG_FILE(   R*   t   environt   getRi   R)   R   t   default_config_file(   Rk   t   config_file(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR   9  s    c         C   sx  i  } | j  t |  j d    | j  t |  j     x6| j   D](\ } } | j d d  } | j d  s d | } n  |  j |  } | d k	 rH | s qH n  | j	 d k r | j
   } n	 d | _ | j	 d k r t |  } n | j	 d k rt |  } n  y | j | |  } Wn: t j k
 r_t j   d } d | GHt j d  n X| | | j <qH qH W| S(   s   
        Updates the given defaults with values from the config files and
        the environ. Does a little special handling for certain types of
        options (lists).
        R   t   _t   -s   --s   --%sR   i   t   store_falset
   store_truet   counts)   An error occured during configuration: %si   N(   R   s   count(   t   updateR   t   get_config_sectiont   get_environ_varst   itemst   replacet
   startswitht
   get_optionRg   t   actiont   splitt   nargsR    t   convert_valueR   t   OptionValueErrorR   t   exc_infot   exitR   (   Rk   R   R?   t   keyt   valR   t   e(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR   ?  s4    		c         C   s&   |  j  j |  r" |  j  j |  Sg  S(   s2   
        Get a section of a configuration
        (   R?   t   has_sectionR   (   Rk   t   name(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR   g  s    t   VIRTUALENV_c         c   sS   xL t  j j   D]; \ } } | j |  r | j | d  j   | f Vq q Wd S(   sX   
        Returns a generator with all environmental vars with prefix VIRTUALENV
        R   N(   R*   R   R   R   R   t   lower(   Rk   t   prefixR   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR   o  s    c         C   s   |  j  s t j |  j  S|  j |  j j    } x] |  j   D]O } | j | j  } t	 | t
  r> | j   } | j | |  | | j <q> q> Wt j |  S(   s   
        Overridding to make updating the defaults after instantiation of
        the option parser possible, update_defaults() does the dirty work.
        (   t   process_default_valuesR   t   ValuesR   R   RP   t   _get_all_optionsR   R   R   t
   basestringt   get_opt_stringt   check_value(   Rk   R   R   t   defaultt   opt_str(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   get_default_valuesw  s    	 (	   R   R   R   Rl   R   R   R   R   R  (    (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR   .  s   			(	c    
      C   s5  t  d t d d d t    }  |  j d d d d d	 d
 d d d d |  j d d d d d	 d d d d d |  j d d d	 d d d d d d d |  j d d	 d d d d d |  j d t  |  j d d	 d d d  d d! |  j d" d	 d d d d d# |  j d$ d	 d% d d  d t d d& |  j d' d	 d( d d d d) |  j d* d	 d+ d d d d, |  j d- d	 d. d d d d/ |  j d0 d	 d1 d d d d2 t   } |  j d3 d	 d4 d d5 d d6 d | d d7 |  j d8 d	 d9 d d d t d d: |  j d; d	 d< d d= |  j d> d	 d? d d d d@ |  j dA d	 dB d d d d@ dC t   k rpt	 |   n  |  j
   \ } } dD t   k rt | |  n  | j | j } t t j dE |  t j f g  a | j rt j j dF  rt j j   } t | j  } | t j k r3t j dG |  qt j dH |  dI | dF <t } | j dJ  rp| dK  } n  t j | | g t j  dL dM | } t! | j"     n  | sdN GH|  j#   t j$ dE  n  t% |  dL k rdO dP j& |  GH|  j#   t j$ dE  n  | d }	 t j j dQ  rTt j' dR  t j' dS  t j$ dT  n  dU t j k r}t j dV  t j dU =n  | j( rt) |	  d  S| j* st j dW  t j dX  n  t+ |	 dY | j, d | j- d( | j. d< | j/ d4 | j0 d9 t d. | j1 d1 | j2 d% | j3 	dZ t   k r1t4 | |	  n  d  S([   Nt   versiont   usages   %prog [OPTIONS] DEST_DIRt	   formatters   -vs	   --verboseR   R   R   t   verboseR
  i    t   helps   Increase verbosity.s   -qs   --quiett   quiets   Decrease verbosity.s   -ps   --pythonR   t   metavart
   PYTHON_EXEt   python2s   The Python interpreter to use, e.g., --python=python2.5 will use the python2.5 interpreter to create the new environment.  The default is the python2 interpreter on your path (e.g. /usr/bin/python2)s   --cleart   clearR   s6   Clear out the non-root install and start from scratch.t   system_site_packagess   --no-site-packagesR   s|   DEPRECATED. Retained only for backward compatibility. Not having access to global site-packages is now the default behavior.s   --system-site-packagess@   Give the virtual environment access to the global site-packages.s   --always-copyR   s)   Always copy files rather than symlinking.s   --unzip-setuptoolst   unzip_setuptoolss$   Unzip Setuptools when installing it.s   --relocatablet   relocatablesm   Make an EXISTING virtualenv environment relocatable. This fixes up scripts and makes all .pth files relative.s   --no-setuptoolst   no_setuptoolss9   Do not install setuptools (or pip) in the new virtualenv.s   --no-pipt   no_pips)   Do not install pip in the new virtualenv.s   --extra-search-dirt   search_dirsR   t   DIRs^   Directory to look for setuptools/pip distributions in. This option can be used multiple times.s   --never-downloadt   never_downloads~   DEPRECATED. Retained only for backward compatibility. This option has no effect. Virtualenv never downloads pip or setuptools.s   --promptt   prompts;   Provides an alternative prompt prefix for this environment.s   --setuptoolsR   sP   DEPRECATED. Retained only for backward compatibility. This option has no effect.s   --distributet
   distributet   extend_parsert   adjust_optionsi   t   VIRTUALENV_INTERPRETER_RUNNINGs   Already using interpreter %ss&   Running virtualenv with interpreter %st   trues   .pycii   t   envs   You must provide a DEST_DIRs7   There must be only one argument: DEST_DIR (you gave %s)R}   t   WORKING_ENVs6   ERROR: you cannot run virtualenv while in a workingenvs:   Please deactivate your workingenv, then re-run this scripti   t
   PYTHONHOMEsF   PYTHONHOME is set.  You *must* activate the virtualenv before using its?   The --never-download option is for backward compatibility only.s@   Setting it to false is no longer supported, and will be ignored.t   site_packagest   after_install(5   R   t   virtualenv_versionR   t
   add_optiont   set_defaultsRi   R   R   t   globalsR!  t
   parse_argsR"  R  R  Rd   R   R   R   R   R   R*   R   R   RP   t   resolve_interpretert
   executableRx   Rv   R   t   endswitht
   subprocesst   Popent   argvt
   SystemExitt   waitt
   print_helpR   R   R!   R|   R  t   make_environment_relocatableR  t   create_environmentR  R  R  R  R  R  R  R   R)  (
   R   t   default_search_dirst   optionsRp   t	   verbosityR%  t   interpretert   filet   popent   home_dir(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   main  s$   				%
&


	
									
c         C   s  g  } x |  D] } t  |  d k r> | d  d | d } n  d | k sn d | k sn d | k sn d | k r d	 | j d d
  } n  t | d  r y | j t j    } Wq t k
 r | j t j    } q Xn  | j |  q Wd j	 |  }	 | r
d  }
 n	 t j }
 t j d |	  | s0| rt j j   } | rU| j |  n  | rx! | D] } | j | d   qbWqn i  } | j d d  j t j  } x9 t t d g  D]% } | | k r| j d |  qqWt j j	 |  | d <y4 t j |  d t j d d  d |
 d | d | } Wn; t k
 rit j   d } t j d | |	 f    n Xg  } |
 d  k	 rw| j }
 t j   } t j   } x |
 j    } y | j |  } Wn  t k
 r| j |  } n X| sPn  | j!   } | j |  | rd| |  } t" | t#  r5| \ } } n  t j$ | |  t j% |  sqt j&   qqqt j' |  qn
 | j(   | j)   | j* r| r| rt j+ d |	  t j+ d j	 |  d  n  t, d |	 | j* f   qt j- d |	 | j* f  n  d  S(   Ni-   i   s   ...iR}   s   
t   "t   's   "%s"s   \"t   decodes   Running command %st
   PYTHONPATHR   s   /usr/share/python-wheelsi    R   t   stdinR   t   cwdR%  i   s#   Error %s while executing command %ss    Complete output from command %s:s)   
----------------------------------------s$   Command %s failed with error code %ss   Command %s had error code %s(.   R   R   R   RD  R   t   getdefaultencodingt   UnicodeDecodeErrort   getfilesystemencodingR   R!   Rg   R2  t   PIPER   Rr   R*   R   RP   R   t   popR   R   t   pathsept   find_wheelst   DEBIAN_WHEEL_DEPSt   insertR3  t   STDOUTt	   ExceptionR   R|   R   R6   t   rstripR   t   tupleRm   R   R   Rt   t   communicateR6  t
   returncodeRv   R   Rx   (   t   cmdt   show_stdoutt   filter_stdoutRG  t   raise_on_returncodet	   extra_envt   remove_from_envt	   cmd_partst   partt   cmd_descR   R%  t   varnamet   syspath_partsR)   t   procR   t
   all_outputt   encodingt   fs_encodingt   lineR   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   call_subprocessB  s    0			

	c         C   s#   |  j    j d  r t j St j S(   Nt   running(   t   stripR   Rd   Rs   Rn   (   Rf  (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   filter_install_output  s    c         C   s   g  } x| |  D]t } xk | D]O } t  j  t j j | | d   } | r | j t j j | d   Pq q Wt j d | f  q W| S(   s   Find wheels from which we can import PROJECTS.

    Scan through SEARCH_DIRS for a wheel for each PROJECT in turn. Return
    a list of the first wheel found for each PROJECT
    s   -*.whli    s   Cannot find a wheel for %s(   R   R*   R)   R!   R   R   R   R|   (   t   projectsR  t   wheelst   projectR   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRN    s    "c         C   s   | d  k r t   } n  t d d g |  } t j j |  } d j |  } | d d g |  } t j d d j |    t j d 7_ z= t	 | d	 t
 d
 i | d 6| d 6d d 6d d 6d d 6Wd  t j d 8_ t j   Xd  S(   NR   R   R}   s   -csU   import sys, pip; sys.exit(pip.main(["install", "--ignore-installed"] + sys.argv[1:]))s   Installing %s...s   , i   RX  R[  RE  t   PIP_FIND_LINKSt   1t   PIP_USE_WHEELt   PIP_PREt   PIP_NO_INDEX(   Rg   R   RN  R*   RM  R!   R   R   Rf   Rg  Ri   R   (   t   project_namest   py_executableR  Rl  t
   pythonpatht	   findlinksRW  (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   install_wheel  s(    c
         C   s  t  |   \ }  }
 } } t j j t |  |
 | | d | d | d |	  } t |   t j j |  d d  } y t j |  Wn+ t k
 r } | j	 t	 j
 k r   q n Xx t D] } t j d j |   } t |  d k r t d |   n  t |  d	 k st |   t j j | d  } t j j d
 |  } t | d   } | j   } Wd QXt j j | |  } t | d   } | j |  Wd QXq W| sd g } | s| j d  n  t | | |  n  t |  | |  d S(   s   
    Creates a new environment in ``home_dir``.

    If ``site_packages`` is true, then the global ``site-packages/``
    directory will be on the path.

    If ``clear`` is true (default False) then the environment will
    first be cleared.
    R(  R  R   t   libs   python-wheelss!   /usr/share/python-wheels/{}-*.whli    s   missing dependency wheel %si   s   /usr/share/python-wheelsR   NR   R   R   (   t   path_locationsR*   R)   R   t   install_pythont   install_distutilsR!   R   R   t   errnot   EEXISTRO  R   t   formatR   t   RuntimeErrorR   t   basenameR   R   R~   R   Rw  t   install_activate(   R@  R(  R  R  R  R  R  R  R  R   t   lib_dirt   inc_dirt   bin_dirRt  t   destdirRz   Rm  t   wheel_namest
   wheel_nameR)   t   fpt   whlR   t
   to_install(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR9    s<    

	c         C   s%   t  j j |   o$ t  j |  t  j  S(   N(   R*   R)   R   t   accesst   X_OK(   t   fpath(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   is_executable_file  s    c         C   s   t  rt |   d |  k r d d l } | j j j } t t |   d d  } | j |  } y
 t	 } Wn t
 k
 r t } n X| | |   | |  } | s d |  GHd GHd GHt j d	  n  t | j  }  n  t |  d
  } t |  d  } t |  d  }	 n  t r<t |  d
  } t |  d  } t |  d  }	 n t ri|  } t |  d  } t |  d  }	 n t  st |  d t  } d }
 t |
  rt j |
 d t j d t j } | j   \ } } t |  d | j   t t  } n t |  d t t  } t |  d  }	 n  |  | | |	 f S(   s^   Return the path locations for the environment (where libraries are,
    where scripts go, etc)R}   iNi   i   s&   Error: the path "%s" has a space in its1   We could not determine the short pathname for it.s   Exiting.i   t   Libt   Includet   Scriptst   bint   includeRx  s   /usr/bin/multiarch-platformR   R   (   R   R   t   ctypest   windllt   kernel32t   GetShortPathNameWt   maxR   t   create_unicode_buffert   unicodet	   NameErrort   strR   R   t   valueR!   t	   is_jythont   is_pypyt
   py_versionR  R2  R3  RK  RU  Ri  R   (   R@  R  t   GetShortPathNamet   sizet   buft   ut   retR  R  R  t   multiarch_exect   pR   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRy    sN    


	!"c         C   s  t  j g } t r | j t j j d t  j d  d  t j j t  j d d d  t j j d d d	 t  j d  d  t j j d d
 d d t  j d  d  t j j d d d	 t  j d  d d d  f  n  t t  d  r | j	 t  j
  n  t t  d  r| j	 t  j  n  t t t j j |   } t t t j j |   } t | d t d t } t j j |   }  xw | D]o } |  j |  rs|  j | d  \ } } | t j k r| d t j k st  | d } n  t | |  SqsWt st d |  | f   d  S(   Ns   /Library/Pythoni   s   site-packagest   ExtrasRx  R   R   t   Libraryt   Pythons   .localt   real_prefixt   base_prefixR   t   reversei   i    s9   Filename %s does not start with any of these prefixes: %s(   R   R  t	   is_darwint   extendR*   R)   R!   R  R   R   R  R  t   listt   mapt
   expanduserR   R#   R   R   R   R   t   sepR   Ri   (   R   t
   dst_prefixt   prefixest
   src_prefixR   t   relpath(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   change_prefixE  s2    "%2c   
      C   s  d d  l  } t j } t j j d  r: t j d t _ n  ztxmt D]e} | t j k rp t j	 d |  qD n  y | j
 |  \ } } } Wn" t k
 r t j	 d |  qD X| d  k	 r | j   n  | d k r't j d k r't p | j t d d	   r't |  d
 d t j d  d	  } n- | d k rEt j d k rEn t | |   } t | | |  | j d  rD | d  }	 t j j |	  rt |	 | d  |  qqD qD WWd  | t _ Xd  S(   NiR#  i   s&   Ignoring built-in bootstrap module: %ss"   Cannot import bootstrap module: %sR6   R   s   lib-dynloads   readline.soRx  s   python%si   R   s   .pyc(   R]   R   R)   R*   R   R   t   REQUIRED_MODULESt   builtin_module_namesR   Rt   t   find_moduleR   Rg   R   t   platformR  R1  R!   R  R  R   R   (
   R  R   R]   t   _prev_sys_patht   modnameR   R   R   t   dst_filenamet   pyfile(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   copy_required_modulese  s6    	#
"c         C   so   t  j j |   }  t  j j |  } t  j j |  } |  j |  s\ t j d |  |  d  S|  j | | d  S(   Ns   Path not in prefix %r %ri   (   R*   R)   t   normpathR   R   Rx   R   (   t   prefix_pathR  R@  (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt
   subst_path  s    c   6      C   sv  t  j j |  r d GHd S| r> t |  t j d |  n  t t  d  rm t j d t  j  t  j } n8 t t  d  r t j d t  j  t  j } n	 t  j	 } t
 |  t | |  t j j t j  g } t r| j t t j j | d  d	   n# t r&| j t | d d
   n  t t d  rEt j d  n t j d  t j d 7_ z x | D] }	 t j j |	  sqkn  xj t j |	  D]Y }
 t j j |
  d } |
 d
 k r| t k rt t |	 |
  t | |
  |  qqWqkWt |  |  Wd t j d 8_ Xt
 t | d
   d d l } | j } | j d  r_| d  } n$ | j d  r| j d d  } n  t | |   } t j j |  } t  | t!  t  t | d  |  t | d  } | st  | d  n  t" st r
t | d  } n t | d t# t$  } t j j% |  rEt | | |  n t j& d |  t' j( j) d d  } | | k rt' j( j) d d d |   } | | k rt* | | |   } n  | rt | | |  qn  t  j+ | k rot" rot r t t  j+ d  } n0 t, rt t  j+ d  } n t t  j+ d t#  } x< t j |  D]( }
 t t | |
  t | |
  |  q@Wn  t, r+xK db D]C } t | |  } t j j% |  r|t | t |  |  |  q|q|Wt | d   } t j j% |  rt | t |  d   d t- n  t t | d!  t |  d!  d t- n  t
 |  t | t j j. t  j   } d" | k rt j/ j0 d#  r~t j/ d# =n  t1 j2 d$ |  rt j j t j j |  d%  } qn  t j d& t3 |  t j j t  j  } t j j | d
 d'  } t rKt j j% t j j | d(   rKt j d) |  t j d*  t  | |  n9 d } t j j% |  rt j d+ |  t j5 |  n  t  j | k r	t  j } t6 j | |  t7 |  t st8 r;	t j j t j j t  j  d,  } t j j% |  r3t j d-  t6 j | t j j t j j |  d,   n  t j j t j j t  j  d.  } t j j t j j |  d.  } t j j% |  rt j d/  t6 j | |  n/ t j j% |  rt j d0  t j5 |  n  d1 t  j9 d t  j9 d f } d2 t  j9 d t  j9 d f } t j j t j j t  j  |  }  t j j t j j t  j  |  }! t j j t j j |  |  }" t j j% |   rt j d3 |  t6 j |  t j j t j j |  |   n  t j j% |!  r	t j d3 |  t6 j |! |"  q;	t j j% |"  r;	t j d4 |"  t j5 |"  q;	n  t" r	t j j t j j |  d%  }# t  j: dc k r~	|# d7 7}# n  t j d8 |#  t | |# |  t r	xN dd D]C } t | |  } t j j% |  r	t | t | |  |  q	q	Wq	q	n  t j j t j j. |   d t3 k r
t j j t j j |  t3  }$ t j j |  d }% |% j;   d7 k rz
|$ |% 7}$ n  t j j% |$  r
t j< d? t3 |$ | f  q
t j d@ |$  t6 j t  j |$  t7 |$  n  dA | k rEd" | k rt j& dB  t j j | dC  }& n  dD | k rHt j& dE  t j j | dF  }& n  t6 j= |& |  t j j |  dG  }' t j j% |'  rt j5 |'  n  t t j j | dH  |' |  y# t> | t j j | dH  dI  WqEt  j?   d }( t j< dJ |(  y, t@ dK dL t j j | dH  dI | g  WqBt jA dM    qBXqEXn  t s+dN t  j9 d }) dO t  j9 d t  j9 d f }* d% }+ |+ |) |* g }, t j j. |  }- |- |, k r|, jB |-  n  xk |, D]` }. t | |.  }/ t j j% |/  rt j5 |/  n  | rt jC |- |/  qt | |/ |  qWn  t rJdP | k rJdQ | } n  | dR dS g }0 t j dT tD |0   y. tE jF |0 dU tE jG }1 |1 jH   \ }2 }3 Wn` tI k
 r t  j?   d }( |( jJ tJ jK k rt jA dV | |( f  t  jL dW  q|(  n X|2 jM   jN dX  }2 t j jO t j jP |2   }2 t j jO t j jP |    }4 t |4 dY  ry|4 jN t  jQ    }4 n  |2 |4 k rt jA dZ |  t jA d[ |2 |4 f  t jA d\  t rt jA d]  n  t  jL dW  n t j d^ |2  t j jR d_  }5 t j j% |5  r)t j d` |5  n  tS |  |  | rrt j j% |  rrt j da |  t j5 |  qrn  | S(e   s;   Install just the base environment, no distutils patches etcs1   Please use the *system* python to run this scriptNs   Not deleting %sR  s   Using real prefix %rR  s   Using base prefix %ri    t   DLLss   site-packagesR   s#   Symlinking Python bootstrap moduless    Copying Python bootstrap modulesi   is   .pycs	   $py.classs   .pys   orig-prefix.txts   no-global-site-packages.txtR   R  s   No include dir %st   plat_specifici   R  Rx  R  s   jython-dev.jart   javalibs
   jython.jart   registryt   cachedirs   Python.frameworkt   __PYVENV_LAUNCHER__s   /Python(?:-32|-64)*$R   s   New %s executable in %ss   virtualenv_builddir_pyd.pths	   build.bats/   Detected python running from build directory %ss<   Writing .pth file linking to build directory for *.pyd filess;   Deleting %s (not Windows env or not build directory python)s   pythonw.exes   Also created pythonw.exes   python_d.exes   Also created python_d.exes5   Removed python_d.exe as it is no longer at the sources   python%s%s.dlls   python%s%s_d.dlls   Also created %ss'   Removed %s as the source does not existR   R   s   .exes   Also created executable %ss   libexpat.dlls   libpypy.dlls   libpypy-c.dlls   libeay32.dlls   ssleay32.dlls
   sqlite.dlls7   Not overwriting existing %s script %s (you must use %s)s   Also creating executable in %ss
   .frameworks    MacOSX Python framework detecteds*   Resources/Python.app/Contents/MacOS/Pythont   EPDs   EPD framework detecteds
   bin/pythons   .PythonR  s   @executable_path/../.PythonsK   Could not call mach_o_change: %s. Trying to call install_name_tool instead.t   install_name_tools   -changesU   Could not call install_name_tool -- you must have Apple's development tools installeds   python%ss   python%s.%sR}   s   "%s"s   -csW   import sys;out=sys.stdout;getattr(out, "buffer", out).write(sys.prefix.encode("utf-8"))s"   Testing executable with %s %s "%s"R   s-   ERROR: The executable %s could not be run: %sid   s   utf-8RD  s+   ERROR: The executable %s is not functionings0   ERROR: It thinks sys.prefix is %r (should be %r)sB   ERROR: virtualenv is not compatible with this system or executables   Note: some Windows users have reported this error when they installed Python for "Only this user" or have multiple versions of Python installed. Copying the appropriate PythonXX.dll to the virtualenv Scripts/ directory may fix this problem.s   Got sys.prefix result: %rs   ~/.pydistutils.cfgsH   Please make sure you remove any previous custom paths from your %s file.s   Deleting %s(   s   jython-dev.jarR  s
   jython.jar(   s   win32s   cygwin(   s   libexpat.dlls   libpypy.dlls   libpypy-c.dlls   libeay32.dlls   ssleay32.dlls
   sqlite.dll(T   R   R0  R   R   R   Rv   R   R  R  R  R   t	   fix_lib64R*   R)   R   R   R   R   R!   R  Rt   Rf   R   t   listdirR   t   REQUIRED_FILESR   R  t   siteR1  R   R  R   t   SITE_PYR  R  R   R   Rr   t	   distutilst	   sysconfigt   get_python_incR  t   exec_prefixR  Ri   R  R   R   R9   t   searcht   expected_exeRg   t   unlinkRN   R   t	   is_cygwint   version_infoR  R  Rx   RP   t   mach_o_changeR   Rg  R|   t   removeR   RT  R2  R3  RK  RU  R   R|  t   EACCESR   Ri  RD  t   normcaseR   RJ  R  t   fix_local_scheme(6   R@  R  R  R  R(  R  R   R  t   stdlib_dirst
   stdlib_dirR   t   bnR  t   site_filenamet   site_filename_dstt   site_dirt   site_packages_filenamet
   stdinc_dirt   platinc_dirt   platinc_destt   exec_dirR   R   Rt  t   pcbuild_dirt   pyd_pthR0  t   pythonwt   python_dt   python_d_destt   py_executable_dllt   py_executable_dll_dt	   pythondllt   pythondll_dt   pythondll_d_destt   python_executablet   secondary_exet   py_executable_extt   original_pythont   virtual_libR   t   py_exe_version_majort   py_exe_version_major_minort   py_exe_no_versiont   required_symlinkst   py_executable_baset   ptht   full_pthRW  Rb  t   proc_stdoutt   proc_stderrt   norm_home_dirt   pydistutils(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRz    s   
	
)-	) 

	'	
$.$!$$!.!)(					

	c         C   s  t  j j |   }  t s- t r t  j d k r i t d 6t d 6t d 6} t  j j	 |  j
 t  j d   \ } } | r{ d p~ d | d  | f } d	 |  | f } t j
 d
 |  | d <n! i t d 6} t | d <t | d <t | d <t |  d  r
|  j t j    }  n  t  j j |   } x | j   D] \ }	 }
 |
 j
 d | pGd  }
 |
 j
 d | pcd |  }
 |
 j
 d
 |   }
 |
 j
 d |  }
 |
 j
 d t  j j |   }
 t t  j j | |	  |
  q)Wd  S(   NR-   s   activate.bats   deactivate.bats   activate.ps1t   /s   /%s%ss   %s%si   sL   $(if [ "$OSTYPE" "==" "cygwin" ]; then cygpath -u '%s'; else echo '%s'; fi;)t   __VIRTUAL_ENV__t   activates   activate.fishs   activate.cshs   activate_this.pyRD  t   __VIRTUAL_PROMPT__R   t   __VIRTUAL_WINPROMPT__s   (%s)t   __VIRTUAL_NAME__t   __BIN_NAME__(   R*   R)   R   R   R  t   _namet   ACTIVATE_BATt   DEACTIVATE_BATt   ACTIVATE_PSt
   splitdriveR   R  t   ACTIVATE_SHt   ACTIVATE_FISHt   ACTIVATE_CSHt   ACTIVATE_THISR   RD  R   RJ  R  R   R   R!   (   R@  R  R  R   t   drivet   tailt   home_dir_msyst   home_dir_sht   vnameR   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR    s2    
' 


c         C   st   t  t j d |   } t |  t j j |   }  t t j j | d  t	  t t j j | d  t
 d t d  S(   Ni    s   __init__.pys   distutils.cfgR   (   R  R  t   __path__R   R*   R)   R   R   R!   t   DISTUTILS_INITt   DISTUTILS_CFGRi   (   R@  t   distutils_path(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR{    s
    
c         C   s   y d d l  } Wn t k
 r# n X| j   d k r t j j |  d  } t j j |  s t j |  xf t j |   D]R } | d k r qz n  t	 t j j
 t j j |  |   t j j | |  |  qz Wq n  d S(   s   
    Platforms that use the "posix_local" install scheme (like Ubuntu with
    Python 2.7) need to be given an additional "local" location, sigh.
    iNt   posix_localt   local(   R  R   t   _get_default_schemeR*   R)   R!   R   R   R  R   R   (   R@  R   R  t
   local_patht   subdir_name(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR    s    !c         C   sO  g  t  j j   j   D]' } t | t  r d | k r | ^ q rKt rZ t j d  d St j d  t	 j
 j |   d t j d  k s t d |    t	 j
 j |   } t	 j
 j |  } t	 j
 j | d  }  t	 j
 j | d  } t	 j
 j |  d k st d	 |   t	 j
 j |  r&d S| r5t	 j n t } | d |  n  d S(
   s   
    Some platforms (particularly Gentoo on x64) put things in lib64/pythonX.Y
    instead of lib/pythonX.Y.  If this is such a platform we'll just create a
    symlink so lib64 points to lib
    t   lib64s(   PyPy detected, skipping lib64 symlinkingNs/   This system uses lib64; symlinking lib64 to libs   python%si   s   Unexpected python lib dir: %rRx  s   Unexpected parent dir: %r(   R  R  t   get_config_varst   valuesR   R  R  R   Rr   R*   R)   R  R   R  R   R   R!   t   lexistsR   R   (   R  R   R  t
   lib_parentt	   top_levelt
   lib64_linkt   cp_or_ln(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR  ,  s$    '&c         C   s  t    } |  | k r" | |  }  n  t j j |   |  k r t j j d d  j t j  } xK | D]@ } t j j t j j	 | |    rb t j j	 | |   }  Pqb qb Wn  t j j |   s t
 j d |  |  f  t d   n  t |   st
 j d |  |  f  t d   n  |  S(   sZ   
    If the executable given isn't an absolute path, search $PATH for the interpreter
    t   PATHR   s3   The executable %s (from --python=%s) does not existi   s6   The executable %s (from --python=%s) is not executable(   R   R*   R)   R   R   R   R   RM  R   R!   R   R|   R5  t   is_executable(   t   exet   python_versionst   pathsR)   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR/  I  s     	!!c         C   s   t  j |  t  j  S(   s   Checks a file is executable(   R*   R  R  (   R-  (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR,  a  s    c         C   sn   t  |   \ }  } } } t j j | d  } t j j |  sS t j d |  n  t |  |  t |   d S(   s   
    Makes the already-existing environment use relative paths, and takes out
    the #!-based environment selection in scripts.
    s   activate_this.pysc   The environment doesn't have a file %s -- please re-run virtualenv on this environment to update itN(	   Ry  R*   R)   R!   R   R   R|   t   fixup_scriptst   fixup_pth_and_egg_link(   R@  R  R  R  t   activate_this(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR8  h  s    s   python%sR  s   activate.bats   activate_this.pys   activate.fishs   activate.cshc   
      C   sb  t  r7 d t j j t j j d d   d d f } n d t j d  d f } d t j j t j j t j j	 |  d	 | d
   } d | } xt j
 |  D]} t j j | |  } t j j |  s q n  t | d  } z: y | j   j d  j   } Wn t k
 rw n XWd  | j   X| sGt j d |  q n  | d j   } | d d
 !t j j | d
  } | j |  st j j |  t k rt j d |  q | d j   | k rt j d |  q t j d | | f  q n  t j d |  t | g | d  }	 t | d  } | j d j |	  j d   | j   q Wd  S(   Ns   %s /ct   COMSPECs   cmd.exeR   s   .exes   /usr/bin/envi   s   #!%ss   python%si   s   #!%s python%s%sR   s   utf-8s   Script %s is an empty filei    s   Cannot make script %s relatives(   Script %s has already been made relativesP   Script %s cannot be made relative (it's not a normal script that starts with %s)s   Making script %s relativei   R   s   
(   R   R*   R)   R  R   R   R   R  R!   R   R  R   R   R   RD  t
   splitlinesRI  R   R   Rx   Ri  R   R  t   OK_ABS_SCRIPTSRr   Rt   Rv   t   relative_scriptR~   R   (
   R@  R  t   new_shebang_argst   shebangt   new_shebangR   R   t   linest   old_shebangt   script(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR0  {  sH    "$
!	c         C   s   d } d } xS t t t |     D]9 \ } } | j   d  d d d g k r% | d } Pq% q% W| d k rw d } n  |  |  d | d g |  | S(	   s:   Return a script that'll work in a relocatable environment.s   import os; activate_this=os.path.join(os.path.dirname(os.path.realpath(__file__)), 'activate_this.py'); exec(compile(open(activate_this).read(), activate_this, 'exec'), dict(__file__=activate_this)); del os, activate_thisi   t   fromRF   t   importi   R   N(   Rg   R   R  t	   enumerateR   (   R:  R  t   activate_att   idxRf  (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR6    s    %
	c         C   so  t  j j t  j j |    }  | d k r6 t j } n  x2| D]*} | sR d } n  t  j j |  sj q= n  t  j j t  j j |   } | j |   s t j	 d |  q= n  x t  j
 |  D] } t  j j | |  } | j d  rt  j | t  j  st j d |  qt |  n  | j d  r t  j | t  j  sVt j d |  qct |  q q Wq= Wd S(   s1   Makes .pth and .egg-link files use relative pathsR   s.   Skipping system (non-environment) directory %ss   .pths#   Cannot write .pth file %s, skippings	   .egg-links(   Cannot write .egg-link file %s, skippingN(   R*   R)   R  R   Rg   R   R   R   R   Rr   R  R!   R1  R  t   W_OKRx   t   fixup_pth_filet   fixup_egg_link(   R@  t   sys_pathR)   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR1    s,    	c         C   sF  g  } g  } t  |   } | j   } | j   x | D] } | j   } | s | j d  s | j d  s t j j |  | k r | j |  q5 t	 |  |  } | | k r t
 j d | | |  f  n  | j |  q5 W| | k r t
 j d |   d  St
 j d |   t  |  d  } | j d j |  d  | j   d  S(   Nt   #s   import s   Rewriting path %s as %s (in %s)s   No changes to .pth file %ss%   Making paths in .pth file %s relativet   ws   
(   R   t	   readlinesR   Ri  R   R*   R)   R   R   t   make_relative_pathR   Rr   Rt   Rv   R~   R!   (   R   R:  t
   prev_linesR   Rf  t	   new_value(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRC    s*    
%c         C   s   t  |   } | j   j   } | j   t j j |  | k rU t j d |   d  St	 |  |  } t j
 d | |  | f  t  |  d  } | j |  | j   d  S(   Ns   Link in %s already relatives   Rewriting link %s in %s as %sRG  (   R   R6   Ri  R   R*   R)   R   R   Rr   RI  Rv   R~   (   R   R   t   linkt   new_link(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRD    s    
c         C   sN  t  j j |   }  | s? t  j j |  } t  j j |  } n  t  j j t  j j |   } t  j j t  j j |    }  | j t  j j  j t  j j  } |  j t  j j  j t  j j  } x> | r| r| d | d k r| j	 d  | j	 d  q Wd g t
 |  | } | s1| j |  n  | s;d St  j j j |  S(   s*  
    Make a filename relative, where the filename is dest, and it is
    being referred to from the filename source.

        >>> make_relative_path('/usr/share/something/a-file.pth',
        ...                    '/usr/share/another-place/src/Directory')
        '../another-place/src/Directory'
        >>> make_relative_path('/usr/share/something/a-file.pth',
        ...                    '/home/user/src/Directory')
        '../../../home/user/src/Directory'
        >>> make_relative_path('/usr/share/a-file.pth', '/usr/share/')
        './'
    i    s   ..s   ./(   R*   R)   R   R  R  R   Ri  R  R   RL  R   R   R!   (   t   sourceR   t   dest_is_directoryt   dest_filenamet
   dest_partst   source_partst
   full_parts(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRI    s"    $$#c         C   s|   t  } | j d  r" | d  } n  t j | d d d } | j   } | j   d | } d | d | } | j d	 |   S(
   s\  
    Creates a bootstrap script, which is like this script but with
    extend_parser, adjust_options, and after_install hooks.

    This returns a string that (written to disk of course) can be used
    as a bootstrap script with your own customizations.  The script
    will be the standard virtualenv.py script, with your extra text
    added (your extra text should be Python code).

    If you include these functions, they will be called:

    ``extend_parser(optparse_parser)``:
        You can add or remove options from the parser here.

    ``adjust_options(options, args)``:
        You can change options here, or change the args (if you accept
        different kinds of arguments, be sure you modify ``args`` so it is
        only ``[DEST_DIR]``).

    ``after_install(options, home_dir)``:

        After everything is installed, this function is called.  This
        is probably the function you are most likely to use.  An
        example would be::

            def after_install(options, home_dir):
                subprocess.call([join(home_dir, 'bin', 'easy_install'),
                                 'MyPackage'])
                subprocess.call([join(home_dir, 'bin', 'my-package-script'),
                                 'setup', home_dir])

        This example immediately installs a package, and runs a setup
        script from that package.

    If you provide something like ``python_version='2.5'`` then the
    script will start with ``#!/usr/bin/env python2.5`` instead of
    ``#!/usr/bin/env python``.  You can use this when the script must
    be run with a particular Python version.
    s   .pycit   rRd  s   utf-8s   python%ss   #!/usr/bin/env %s
s#   ## WARNING: This file is generated
s
   ##EXTEND##(   R   R1  R3   R   R   R   R   (   t
   extra_textt   python_versionR   R   R   t   py_exe(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   create_bootstrap_script#  s    (

c         C   s.   t  j |  j d   } t j |  j d  S(   Nt   asciis   utf-8(   RY   t	   b64decodeR   R>   t
   decompressRD  (   t   st   b(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   convertY  s    s2*  
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
Qc7sRHsA1igE/wfVIOdx
sP  
eJytVVFvokAQfudXTLEPtTlLeo9tvMSmJpq02hSvl7u2wRUG2QR2DSxSe7n/frOACEVNLlceRHa+
nfl25pvZDswCnoDPQ4QoTRQsENIEPci4CsBMZBq7CAsuLOYqvmYKTTj3YxnBgiXBudGBjUzBZUJI
BXEqgCvweIyuCjeG4eF2F5x14bcB9KQiQQWrjSddI1/oQIx6SYYeoFjzWIoIhYI1izlbhJjkKO7D
M/QEmKfO9O7WeRo/zr4P7pyHwWxkwitcgwpQ5Ej96OX+PmiFwLeVjFUOrNYKaq1Nud3nR2n8nI2m
k9H0friPTGVsUdptaxGrTEfpNVFEskxpXtUkkCkl1UNF9cgLBkx48J4EXyALuBtAwNYIjF5kcmUU
abMKmMq1ULoiRbgsDEkTSsKSGFCJ6Z8vY/2xYiSacmtyAfCDdCNTVZoVF8vSTQOoEwSnOrngBkws
MYGMBMg8/bMBLSYKS7pYEXP0PqT+ZmBT0Xuy+Pplj5yn4aM9nk72JD8/Wi+Gr98sD9eWSMOwkapD
BbUv91XSvmyVkICt2tmXR4tWmrcUCsjWOpw87YidEC8i0gdTSOFhouJUNxR+4NYBG0MftoCTD9F7
2rTtxG3oPwY1b2HncYwhrlmj6Wq924xtGDWqfdNxap+OYxplEurnMVo9RWks+rH8qKEtx7kZT5zJ
4H7oOFclrN6uFe+d+nW2aIUsSgs/42EIPuOhXq+jEo3S6tX6w2ilNkDnIpHCWdEQhFgwj9pkk7FN
l/y5eQvRSIQ5+TrL05lewxWpt/Lbhes5cJF3mLET1MGhcKCF+40tNWnUulxrpojwDo2sObdje3Bz
N3QeHqf3D7OjEXMVV8LN3ZlvuzoWHqiUcNKHtwNd0IbvPGKYYM31nPKCgkUILw3KL+Y8l7aO1ArS
Ad37nIU0fCj5NE5gQCuC5sOSu+UdI2NeXg/lFkQIlFpdWVaWZRfvqGiirC9o6liJ9FXGYrSY9mI1
D/Ncozgn13vJvsznr7DnkJWXsyMH7e42ljdJ+aqNDF1bFnKWFLdj31xtaJYK6EXFgqmV/ymD/ROG
+n8O9H8f5vsGOWXsL1+1k3g=
s  
eJydVW2P2jgQ/s6vmAZQoVpA9/WkqqJaTou0u6x2uZVOVWWZZEKsS+yc7UDpr+84bziQbauLxEvs
eXnsZ56ZIWwTYSAWKUJWGAs7hMJgBEdhEwiMKnSIsBNywUMrDtziPBYmCeBDrFUG7v8HmCTW5n8u
Fu7NJJim81Bl08EQTqqAkEupLOhCgrAQCY2hTU+DQVxIiqgkRNiEBphFEKy+kd1BaFvwFOUBuIxA
oy20BKtAKp3xFMo0QNtCK5mhtMEA6BmSpUELKo38TThwLfguRVNaiRgs0llnEoIR29zfstf18/bv
5T17Wm7vAiiN3ONCzfbfwC3DtWXXDqHfAGX0q6z/bO82j3ebh1VwnbrduwTQbvwcRtesAfMGor/W
L3fs6Xnz8LRlm9fV8/P61sM0LDNwCZjl9gSpCokJRzpryGQ5t8kNGFUt51QjOZGu0Mj35FlYlXEr
yC09EVOp4lEXfF84Lz1qbhBsgl59vDedXI3rTV03xipduSgt9kLytI3XmBp3aV6MPoMQGNUU62T6
uQdeefTy1Hfj10zVHg2pq8fXDoHBiOv94csfXwN49xECqWREy7pwukKfvxdMY2j23vXDPuuxxeE+
JOdCOhxCE3N44B1ZeSLuZh8Mmkr2wEPAmPfKWHA2uxIRjEopdbQYjDz3BWOf14/scfmwoki1eQvX
ExBdF60Mqh+Y/QcX4uiH4Amwzx79KOVFtbL63sXJbtcvy8/3q5rupmO5CnE91wBviQAhjUUegYpL
vVEbpLt2/W+PklRgq5Ku6mp+rpMhhCo/lXthQTxJ2ysO4Ka0ad97S7VT/n6YXus6fzk3fLnBZW5C
KDC6gSO62QDqgFqLCCtPmjegjnLeAdArtSE8VYGbAJ/aLb+vnQutFhk768E9uRbSxhCMzdgEveYw
IZ5ZqFKl6+kz7UR4U+buqQZXu9SIujrAfD7f0FXpozB4Q0gwp31H9mVTZGGC4b871/wm7lvyDLu1
FUyvTj/yvD66k3UPTs08x1AQQaGziOl0S1qRkPG9COtBTSTWM9NzQ4R64B+Px/l3tDzCgxv5C6Ni
e+QaF9xFWrxx0V/G5uvYQOdiZzvYpQUVQSIsTr1TTghI33GnPbTA7/GCqcE3oE3GZurq4HeQXQD6
32XS1ITj/qLjN72ob0hc5C9bzw8MhfmL
s0  
eJx9VG1P2zAQ/u5fcYQKNgTNPtN1WxlIQ4KCUEGaxuQ6yYVYSuzKdhqVX7+zk3bpy5YPUXL3PPfc
ne98DLNCWshliVDV1kGCUFvMoJGugMjq2qQIiVSxSJ1cCofD1BYRnOVGV0CfZ0N2DD91DalQSjsw
tQLpIJMGU1euvPe7QeJlkKzgWixlhnAt4aoUVsLnLBiy5NtbJWQ5THX1ZciYKKWwkOFaE04dUm6D
r/zh7pq/3D7Nnid3/HEy+wFHY/gEJydg0aFaQrBFgz1c5DG1IhTs+UZgsBC2GMFBlaeH+8dZXwcW
VPvCjXdlAvCfQsE7al0+07XjZvrSCUevR5dnkVeKlFYZmUztG4BdzL2u9KyLVabTU0bdfg7a0hgs
cSmUg6UwUiQl2iHrcbcVGNvPCiLOe7+cRwG13z9qRGgx2z6DHjfm/Op2yqeT+xvOLzs0PTKHDz2V
tkckFHoQfQRXoGJAj9el0FyJCmEMhzgMS4sB7KPOE2ExoLcSieYwDvR+cP8cg11gKkVJc2wRcm1g
QhYFlXiTaTfO2ki0fQoiFM4tLuO4aZrhOzqR4dIPcWx17hphMBY+Srwh7RTyN83XOWkcSPh1Pg/k
TXX/jbJTbMtUmcxZ+/bbqOsy82suFQg/BhdSOTRhMNBHlUarCpU7JzBhmkKmRejKOQzayQe6MWoa
n1wqWmuh6LZAaHxcdeqIlVLhIBJdO9/kbl0It2oEXQj+eGjJOuvOIR/YGRqvFhttUB2XTvLXYN2H
37CBdbW2W7j2r2+VsCn0doVWcFG1/4y1VwBjfwAyoZhD
s1  
eJx9UdEKgjAUfW6wfxjiIH+hEDKUFHSKLCMI7kNOEkIf9P9pTJ3OLJ/03HPPPed4Es9XS9qqwqgT
PbGKKOdXL4aAFS7A4gvAwgijuiKlqOpGlATS2NeMLE+TjJM9RkQ+SmqAXLrBo1LLIeLdiWlD6jZt
r7VNubWkndkXaxg5GO3UaOOKS6drO3luDDiO5my3iA0YAKGzPRV1ack8cOdhysI0CYzIPzjSiH5X
0QcvC8Lfaj0emsVKYF2rhL5L3fCkVjV76kShi59NHwDniAHzkgDgqBcwOgTMx+gDQQqXCw==
s   
eJxzSE3OyFfIT0vj4ipOLVEI8wwKCXX0iXf1C7Pl4spMU0hJTcvMS01RiPf3cYmHyQYE+fsGhCho
cCkAAUibEkTEVhWLMlUlLk6QGixStlyaeCyJDPHw9/Pw93VFsQguim4ZXAJoIUw5DhX47XUM8UCx
EchHtwsohN1bILUgw61c/Vy4AJYPYm4=
s  
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
QastYw==
s  
eJytV1uL4zYUfvevOE0ottuMW9q3gVDa3aUMXXbLMlDKMBiNrSTqOJKRlMxkf33PkXyRbGe7Dw2E
UXTu37lpxLFV2oIyifAncxmOL0xLIfcG+gv80x9VW6maw7o/CANSWWBwFtqeWMPlGY6qPjV8A0bB
C4eKSTgZ5LRgFeyErMEeOBhbN+Ipgeizhjtnhkn7DdyjuNLPoCS0l/ayQTG0djwZC08cLXozeMss
aG5EzQ0IScpnWtHSTXuxByV/QCmxE7y+eS0uxWeoheaVVfqSJHiU7Mhhi6gULbOHorshkrEnKxpT
0n3A8Y8SMpuwZx6aoix3ouFlmW8gHRSkeSJ2g7hU+kiHLDaQw3bmRDaTGfTnty7gPm0FHbIBg9U9
oh1kZzAFLaue2R6htPCtAda2nGlDSUJ4PZBgCJBGVcwKTAMz/vJiLD+Oin5Z5QlvDPdulC6EsiyE
NFzb7McNTKJzbJqzphx92VKRFY1idenzmq3K0emRcbWBD0ryqc4NZGmKOOOX9Pz5x+/l27tP797c
f/z0d+4NruGNai8uAM0bfsYaw8itFk8ny41jsfpyO+BWlpqfhcG4yxLdi/0tQqoT4a8Vby382mt8
p7XSo7aWGdPBc+b6utaBmCQ7rQKQoWtAuthQCiold2KfJIPTT8xwg9blPumc+YDZC/wYGdAyHpJk
vUbHbHWAp5No6pK/WhhLEWrFjUwtPEv1Agf8YmnsuXUQYkeZoHm8ogP16gt2uHoxcEMdf2C6pmbw
hUMsWGhanboh4IzzmsIpWs134jVPqD/c74bZHdY69UKKSn/+KfVhxLgUlToemayLMYQOqfEC61bh
cbhwaqoGUzIyZRFHPmau5juaWqwRn3mpWmoEA5nhzS5gog/5jbcFQqOZvmBasZtwYlG93k5GEiyw
buHhMWLjDarEGpMGB2LFs5nIJkhp/nUmZneFaRth++lieJtHepIvKgx6PJqIlD9X2j6pG1i9x3pZ
5bHuCPFiirGHeO7McvoXkz786GaKVzC9DSpnOxJdc4xm6NSVq7lNEnKdVlnpu9BNYoKX2Iq3wvgh
gGEUM66kK6j4NiyoneuPLSwaCWDxczgaolEWpiMyDVDb7dNuLAbriL8ig8mmeju31oNvQdpnvEPC
1vAXbWacGRVrGt/uXN/gU0CDDwgooKRrHfTBb1/s9lYZ8ZqOBU0yLvpuP6+K9hLFsvIjeNhBi0KL
MlOuWRn3FRwx5oHXjl0YImUx0+gLzjGchrgzca026ETmYJzPD+IpuKzNi8AFn048Thd63OdD86M6
84zE8yQm0VqXdbbgvub2pKVnS76icBGdeTHHXTKspUmr4NYo/furFLKiMdQzFjHJNcdAnMhltBJK
0/IKX3DVFqvPJ2dLE7bDBkH0l/PJ29074+F0CsGYOxsb7U3myTUncYfXqnLLfa6sJybX4g+hmcjO
kMRBfA1JellfRRKJcyRpxdS4rIl6FdmQCWjo/o9Qz7yKffoP4JHjOvABcRn4CZIT2RH4jnxmfpVG
qgLaAvQBNfuO6X0/Ux02nb4FKx3vgP+XnkX0QW9pLy/NsXgdN24dD3LxO2Nwil7Zlc1dqtP3d7/h
kzp1/+7hGBuY4pk0XD/0Ao/oTe/XGrfyM773aB7iUhgkpy+dwAMalxMP0DrBcsVw/6p25+/hobP9
GBknrWExDhLJ1bwt1NcCNblaFbMKCyvmX0PeRaQ=
s   
eJxNj00KwkAMhfc9xYNuxe4Ft57AjYiUtDO1wXSmNJnK3N5pdSEEAu8nH6lxHVlRhtDHMPATA4uH
xJ4EFmGbvfJiicSHFRzUSISMY6hq3GLCRLnIvSTnEefN0FIjw5tF0Hkk9Q5dRunBsVoyFi24aaLg
9FDOlL0FPGluf4QjcInLlxd6f6rqkgPu/5nHLg0cXCscXoozRrP51DRT3j9QNl99AP53T2Q=
s  
eJyNU01v2zAMvetXEB4K21jmDOstQA4dMGCHbeihlyEIDMWmG62yJEiKE//7kXKdpN2KzYBt8euR
fKSyLPs8wiEo8wh4wqZTGou4V6Hm0wJa1cSiTkJdr8+GsoTRHuCotBayiWqQEYGtMCgfD1KjGYBe
5a3p0cRKiAe2NtLADikftnDco0ko/SFEVgEZ8aRC5GLux7i3BpSJ6J1H+i7A2CjiHq9z7JRZuuQq
siwTIvpxJYCeuWaBpwZdhB+yxy/eWz+ZvVSU8C4E9FFZkyxFsvCT/ZzL8gcz9aXVE14Yyp2M+2W0
y7n5mp0qN+avKXvbsyyzUqjeWR8hjGE+2iCE1W1tQ82hsCZN9UzlJr+/e/iab8WfqsmPI6pWeUPd
FrMsd4H/55poeO9n54COhUs+sZNEzNtg/wanpjpuqHJaxs76HtZryI/K3H7KJ/KDIhqcbJ7kI4ar
XL+sMgXnX0D+Te2Iy5xdP8yueSlQB/x/ED2BTAtyE3K4SYUN6AMNfbO63f4lBW3bUJPbTL+mjSxS
PyRfJkZRgj+VbFv+EzHFi5pKwUEepa4JslMnwkowSRCXI+m5XvEOvtuBrxHdhLalG0JofYBok6qj
YdN2dEngUlbC4PG60M1WEN0piu7Nq7on0mgyyUw3iV1etLo6r/81biWdQ9MWHFaePWZYaq+nmp+t
s3az+sj7eA0jfgPfeoN1
I    I    I    I    I    t   >t   <i   t   maxsizet   maxintt   fileviewc           B   sY   e  Z d  Z d e d  Z d   Z d   Z d   Z d d  Z d   Z	 e d  Z
 RS(	   sh   
    A proxy for file-like objects that exposes a given view of a file.
    Modified from macholib.
    i    c         C   sJ   t  | t  r | j |  _ n	 | |  _ | |  _ | | |  _ d |  _ d  S(   Ni    (   R   Rc  t   _fileobjt   _startt   _endt   _pos(   Rk   t   fileobjR   R  (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRl     s    		c         C   s   d |  j  |  j |  j f S(   Ns   <fileview [%d, %d] %r>(   Re  Rf  Rd  (   Rk   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   __repr__  s    c         C   s   |  j  S(   N(   Rg  (   Rk   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   tell  s    c         C   sK   |  j  | k o |  j k n sG t d | | |  j  |  j f   n  d  S(   Ns*   %s to offset %d is outside window [%d, %d](   Re  Rf  t   IOError(   Rk   t   seektot   op(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   _checkwindow  s    "c         C   s   | } | t  j k r% | |  j 7} nX | t  j k rK | |  j |  j 7} n2 | t  j k rj | |  j 7} n t d | f   |  j | d  |  j	 j
 |  | |  j |  _ d  S(   Ns#   Invalid whence argument to seek: %rt   seek(   R*   t   SEEK_SETRe  t   SEEK_CURRg  t   SEEK_ENDRf  Rk  Rn  Rd  Ro  (   Rk   t   offsett   whenceRl  (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRo    s    c         C   sy   |  j  |  j } |  j | d  |  j | t |  d  |  j j | t j  |  j j |  |  j t |  7_ d  S(   NR~   (	   Re  Rg  Rn  R   Rd  Ro  R*   Rp  R~   (   Rk   t   bytesR   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR~     s    c         C   s   | d k s t   |  j |  j } |  j | d  t | |  j |  } |  j j | t j	  |  j j
 |  } |  j t |  7_ | S(   Ni    R   (   R   Re  Rg  Rn  t   minRf  Rd  Ro  R*   Rp  R   R   (   Rk   R  R   Ru  (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR     s    (   R   R   R   Rb  Rl   Ri  Rj  Rn  Ro  R~   R   (    (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRc    s   					c         C   sE   t  j | d | |  j | d   } t |  d k rA | d S| S(   sm   
    Read a given number of 32-bits unsigned integers from the given file
    with the given endianness.
    t   Li   i   i    (   RO   t   unpackR   R   (   R>  t   endiant   numt   res(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt	   read_data	  s    'c            s_     f d    d t     f d    t   t   k sH t    t |  d   d S(   s   
    Replace a given name (what) in any LC_LOAD_DYLIB command found in
    the given binary with a new name (value), provided it's shorter.
    c            s:  t  |  | d  \ } } } } } } | d k r@ t  |  |  n  x t |  D] }	 |  j   }
 t  |  | d  \ } } | t k rt  |  |  } |  j |
 | t j  |  j | |  j   } | | j	 d   } |  k r|  j |
 | t j  |  j
   j   d j    qn  |  j |
 | t j  qM Wd  S(   Ni   i@   i   t    (   R|  t   rangeRj  t   LC_LOAD_DYLIBRo  R*   Rp  R   RD  t   indexR~   R   (   R>  t   bitsRy  t   cputypet
   cpusubtypet   filetypet   ncmdst
   sizeofcmdst   flagst   nt   whereRW  t   cmdsizet   name_offsett   load(   R  t   what(    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   do_macho	  s    $#i    c   	         s  t  |  | |  }  t |  t  } | t k r t |  t  } x t |  D]7 } t |  t d  \ } } } } }   |  | |  qI Wn| | t k r  |  d t  n] | t k r  |  d t  n> | t k r  |  d t  n | t	 k r |  d t  n  d  S(   Ni   i    i@   (
   Rc  R|  t
   BIG_ENDIANt	   FAT_MAGICR~  t   MH_MAGICt   MH_CIGAMt   LITTLE_ENDIANt   MH_MAGIC_64t   MH_CIGAM_64(	   R>  Rs  R  t   magict	   nfat_archR  R  R  t   align(   t   do_fileR  (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR  1	  s    !s   r+bN(   Rb  R   R   R   (   R)   R  R  (    (   R  R  R  R  s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR  	  s    t   __main__(   R   t   __version__R*  RY   R   R*   R3   R   R9   RN   R   RI   R>   R|  R   t   distutils.sysconfigR  t   distutils.utilR    RO   R2  RM   RO  R  R   R   t   setR  RE   R
   R  R  R   R   t   configparserR)   R!   R  R  R   R  R   R  R   R  R  t   getattrR   R  t   user_dirt   default_storage_dirR   R  R   R   t   _winregR  R  t   majvert   minverR  R  t   get_config_vart   platdirR   t   objectRd   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   RA  Rg   Rg  Rj  RN  Rw  Ri   R9  R  Ry  R  R  R  Rz  R  R{  R  R  R/  R,  R8  R  R5  R0  R6  R1  RC  RD  RI  RX  R^  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  Rb  Rc  R|  R  R   (    (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   <module>   sv  
				
)1					[	V			3		6	 	+	
 L(						3			&6							X				*<	9