Edit File: compat.pyc
� ��abc�����������@@��s���d��d�l��m�Z�d��d�l�Z�d��d�l�Z�d��d�l�Z�y�d��d�l�Z�Wn�e�k �r]�d�Z�n�Xe�j�d��d�k��r d��d�l �m �Z �e �f�Z�e�Z �d��d�l�m�Z�d��d�l�Z�d��d�l�Z�d�d�l�m�Z�d��d�l�m�Z�m�Z�m�Z�m�Z�m�Z�d��d �l�m�Z�m�Z�m �Z �m!�Z!�m"�Z"�m#�Z#�m$�Z$�d ����Z�d��d�l%�Z%�d��d�l%�m&�Z&�m'�Z'�m(�Z(�m)�Z)�m*�Z*�m+�Z+�m,�Z,�m-�Z-�m.�Z.�e�r�d��d�l%�m/�Z/�n��d��d�l0�Z0�d��d�l1�Z1�d��d�l2�Z3�d��d �l4�m4�Z4�d��d�l5�Z5�e6�Z6�d��d�l7�m8�Z9�d��d�l7�m:�Z;�d�a<�d����Z=�n�d��d�l>�m �Z �e?�f�Z�e?�Z �d��d�l>�m@�Z�d��d�l�Z�d��d�l�Z�d��d�l�Z�d��d�lA�m�Z�m�Z�m�Z�m=�Z=�m�Z�m �Z �m�Z�m�Z�m$�Z$�d��d�lB�m'�Z'�m�Z�m&�Z&�m!�Z!�m"�Z"�m*�Z*�m+�Z+�m,�Z,�m-�Z-�m.�Z.�e�r�d��d�lB�m/�Z/�n��d��d�lC�m)�Z)�m(�Z(�m#�Z#�d��d�lD�jE�Z0�d��d�lB�jF�Z%�d��d�lG�jE�Z1�d��d�l3�Z3�d��d �lH�m4�Z4�d��d�lI�jJ�Z5�eK�Z6�d��d�l7�m;�Z;�e9�Z9�y�d��d�l�mL�ZL�mM�ZM�Wn<�e�k �r�d�eN�f�d�������YZM�d�d���ZO�d����ZL�n�Xy�d��d�l�mP�ZQ�Wn'�e�k �r"d�eR�f�d�������YZQ�n�Xy�d��d�l�mS�ZS�Wn*�e�k �rce�jT�e�jU�Bd�d���ZS�n�Xd��d �lV�mW�ZX�eY�eX�d!���r�eX�ZW�n<�d��d"�lV�mZ�Z[�d#�e[�f�d$�������YZZ�d%�eX�f�d&�������YZW�y�d��d'�l\�m]�Z]�Wn�e�k �r�d(����Z]�n�Xy�d��d�l^�Z^�Wn!�e�k �r,d�d)�l�m^�Z^�n�Xy �e_�Z_�Wn*�e`�k �rcd��d*�la�mb�Zb�d+����Z_�n�Xy�e�jc�Zc�e�jd�Zd�WnJ�ee�k �r�e�jf����Zg�eg�d,�k�r�d-�Zh�n�d.�Zh�d/����Zc�d0����Zd�n�Xy�d��d1�li�mj�Zj�WnT�e�k �r1d��d2�lk�ml�Zl�mm�Zm�d��d�l�Z�e�jn�d3���Zo�d4����Zp�d5����Zj�n�Xy�d��d6�lq�mr�Zr�Wn!�e�k �rid��d6�ls�mr�Zr�n�Xe�j�d7� dT�k��r�e4����jt�Zt�n�d��d9�lq�mt�Zt�y�d��d:�la�mu�Zu�Wnk�e�k �rd��d;�la�mv�Zv�y�d��d<�lw�mx�Zy�Wn�e�k �rd=�d>���Zy�n�Xd?�ev�f�d@�������YZu�n�Xy�d��dA�lz�m{�Z{�Wn�e�k �rQd�dB���Z{�n�Xy�d��dC�la�m|�Z|�Wn��e�k �r�y�d��dD�l}�m~�Z�Wn!�e�k �r�d��dD�l��m~�Z�n�Xy �d��dE�l��m��Z��m��Z��m��Z��Wn�e�k �r�n�XdF�e��f�dG�������YZ|�n�Xy�d��dH�l��m��Z��m��Z��Wn��e�k �r�e�jn�dI�e�j����Z��dJ����Z��dK�e��f�dL�������YZ��d�dM���Z��dN�e��f�dO�������YZ��dP�e��f�dQ�������YZ��dR�eR�f�dS�������YZ��n�Xd�S(U���i����(���t���absolute_importNi���(���t���StringIO(���t���FileTypei���(���t���shutil(���t���urlparset ���urlunparset���urljoint���urlsplitt ���urlunsplit(���t���urlretrievet���quotet���unquotet���url2pathnamet���pathname2urlt���ContentTooShortErrort ���splittypec���������C@��s+���t��|��t���r!�|��j�d���}��n��t�|����S(���Ns���utf-8(���t ���isinstancet���unicodet���encodet���_quote(���t���s(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR ������s����( ���t���Requestt���urlopent���URLErrort ���HTTPErrort���HTTPBasicAuthHandlert���HTTPPasswordMgrt���HTTPHandlert���HTTPRedirectHandlert���build_opener(���t���HTTPSHandler(���t ���HTMLParser(���t���ifilter(���t���ifilterfalsec���������C@��sY���t��d�k�r*�d�d�l�}�|�j�d���a��n��t��j�|����}�|�rO�|�j�d�d���Sd�|��f�S(���sJ���splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.i����Ns���^(.*)@(.*)$i���i���(���t ���_userprogt���Nonet���ret���compilet���matcht���group(���t���hostR$���R&���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt ���splituser4���s�����(���t ���TextIOWrapper( ���R���R���R���R)���R ���R���R���R���R���( ���R���R ���R���R���R ���R���R���R���R���R���(���R���R���R���(���t���filterfalse(���t���match_hostnamet���CertificateErrorR-���c�����������B@��s���e��Z�RS(����(���t���__name__t ���__module__(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR-���^���s���c��� ������C@��sS��g��}�|��s�t��S|��j�d���}�|�d�|�d�}�}�|�j�d���}�|�|�k�rh�t�d�t�|��������n��|�s��|��j����|�j����k�S|�d�k�r��|�j�d���nY�|�j�d���s��|�j�d���r��|�j�t�j �|�����n"�|�j�t�j �|���j �d�d �����x$�|�D]�}�|�j�t�j �|�����q�Wt�j�d �d�j�|���d�t�j ���} �| �j�|���S( ���sp���Matching according to RFC 6125, section 6.4.3 http://tools.ietf.org/html/rfc6125#section-6.4.3 t���.i����i���t���*s,���too many wildcards in certificate DNS name: s���[^.]+s���xn--s���\*s���[^.]*s���\As���\.s���\Z(���t���Falset���splitt���countR-���t���reprt���lowert���appendt ���startswithR$���t���escapet���replaceR%���t���joint ���IGNORECASER&���( ���t���dnt���hostnamet ���max_wildcardst���patst���partst���leftmostt ���remaindert ���wildcardst���fragt���pat(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���_dnsname_matchb���s(����" &c���������C@��s[��|��s�t��d�����n��g��}�|��j�d�d ���}�xC�|�D];�\�}�}�|�d�k�r4�t�|�|���r_�d�S|�j�|���q4�q4�W|�s��xc�|��j�d�d���D]L�}�xC�|�D];�\�}�}�|�d�k�r��t�|�|���r��d�S|�j�|���q��q��Wq��Wn��t�|���d�k�rt�d�|�d �j�t�t�|�����f�����n;�t�|���d�k�rKt�d �|�|�d�f�����n�t�d�����d�S(���s=��Verify that *cert* (in decoded format as returned by SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 rules are followed, but IP addresses are not accepted for *hostname*. CertificateError is raised on failure. On success, the function returns nothing. st���empty or no certificate, match_hostname needs a SSL socket or SSL context with either CERT_OPTIONAL or CERT_REQUIREDt���subjectAltNamet���DNSNt���subjectt ���commonNamei���s&���hostname %r doesn't match either of %ss���, s���hostname %r doesn't match %ri����s=���no appropriate commonName or subjectAltName fields were found(����(����( ���t ���ValueErrort���getRG���R7���t���lenR-���R;���t���mapR5���(���t���certR>���t���dnsnamest���sant���keyt���valuet���sub(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR,�������s.����%(���t���SimpleNamespacet ���Containerc�����������B@��s���e��Z�d��Z�d����Z�RS(���sR��� A generic container for when multiple values need to be returned c���������K@��s���|��j��j�|���d��S(���N(���t���__dict__t���update(���t���selft���kwargs(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__init__����s����(���R.���R/���t���__doc__R\���(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyRW�������s���(���t���whichc���������@��s���d����}�t��j�j������r2�|����|���r.����Sd�S|�d�k�rY�t��j�j�d�t��j���}�n��|�sc�d�S|�j�t��j���}�t �j �d�k�rt��j�|�k�r��|�j�d�t��j���n��t��j�j�d�d���j�t��j���}�t ����f�d����|�D����r�����g�}�qg��|�D]�}����|�^�q��}�n ����g�}�t����}�xu�|�D]m�}�t��j�j�|���} �| �|�k�r+|�j�| ���x9�|�D].�} �t��j�j�|�| ���}�|�|�|���rc|�SqcWq+q+Wd�S( ���sK��Given a command, mode, and a PATH string, return the path which conforms to the given mode on the PATH, or None if there is no such file. `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result of os.environ.get("PATH"), or can be overridden with a custom search path. c���������S@��s5���t��j�j�|����o4�t��j�|��|���o4�t��j�j�|����S(���N(���t���ost���patht���existst���accesst���isdir(���t���fnt���mode(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt ���_access_check����s����$t���PATHt���win32i����t���PATHEXTt����c���������3@��s*���|��] �}����j�����j�|�j�������Vq�d��S(���N(���R6���t���endswith(���t���.0t���ext(���t���cmd(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pys ���<genexpr>����s����N(���R_���R`���t���dirnameR#���t���environRM���t���defpathR3���t���pathsept���syst���platformt���curdirt���insertt���anyt���sett���normcaset���addR;���(���Rn���Re���R`���Rf���t���pathextt���filesRm���t���seent���dirt���normdirt���thefilet���name(����(���Rn���s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR^�������s8���� ! (���t���ZipFilet ���__enter__(���t ���ZipExtFileR����c�����������B@��s#���e��Z�d�����Z�d����Z�d����Z�RS(���c���������C@��s���|��j��j�|�j����d��S(���N(���RX���RY���(���RZ���t���base(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR\�����s����c���������C@��s���|��S(���N(����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR������s����c���������G@��s���|��j�����d��S(���N(���t���close(���RZ���t���exc_info(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__exit__��s����(���R.���R/���R\���R����R����(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR������s��� R����c�����������B@��s#���e��Z�d�����Z�d����Z�d����Z�RS(���c���������C@��s���|��S(���N(����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����"��s����c���������G@��s���|��j�����d��S(���N(���R����(���RZ���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����%��s����c���������O@��s���t��j�|��|�|���}�t�|���S(���N(���t���BaseZipFilet���openR����(���RZ���t���argsR[���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����)��s����(���R.���R/���R����R����R����(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����!��s��� (���t���python_implementationc�����������C@��s@���d�t��j�k�r�d�St�j�d�k�r&�d�St��j�j�d���r<�d�Sd�S(���s6���Return a string identifying the Python implementation.t���PyPyt���javat���Jythont ���IronPythont���CPython(���Rs���t���versionR_���R����R8���(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����0��s����(���t ���sysconfig(���t���Callablec���������C@��s ���t��|��t���S(���N(���R���R����(���t���obj(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���callableD��s����t���mbcst���strictt���surrogateescapec���������C@��sO���t��|��t���r�|��St��|��t���r2�|��j�t�t���St�d�t�|����j�����d��S(���Ns���expect bytes or str, not %s( ���R���t���bytest ���text_typeR���t���_fsencodingt ���_fserrorst ���TypeErrort���typeR.���(���t���filename(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���fsencodeR��s����c���������C@��sO���t��|��t���r�|��St��|��t���r2�|��j�t�t���St�d�t�|����j�����d��S(���Ns���expect bytes or str, not %s( ���R���R����R����t���decodeR����R����R����R����R.���(���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���fsdecode[��s����(���t���detect_encoding(���t���BOM_UTF8t���lookups���coding[:=]\s*([-\w.]+)c���������C@��s^���|��d� j�����j�d�d���}�|�d�k�s7�|�j�d���r;�d�S|�d�k�sV�|�j�d ���rZ�d�S|��S(���s(���Imitates get_normal_name in tokenizer.c.i���t���_t���-s���utf-8s���utf-8-s���latin-1s ���iso-8859-1s���iso-latin-1s���latin-1-s���iso-8859-1-s���iso-latin-1-(���s���latin-1s ���iso-8859-1s���iso-latin-1(���s���latin-1-s���iso-8859-1-s���iso-latin-1-(���R6���R:���R8���(���t���orig_enct���enc(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���_get_normal_namel��s����c���������@��s��y���j��j���Wn�t�k �r)�d���n�Xt����d�}�d�}���f�d����}������f�d����}�|����}�|�j�t���r��t����|�d�}�d�}�n��|�s��|�g��f�S|�|���}�|�r��|�|�g�f�S|����}�|�s��|�|�g�f�S|�|���}�|�r��|�|�|�g�f�S|�|�|�g�f�S(���s?�� The detect_encoding() function is used to detect the encoding that should be used to decode a Python source file. It requires one argument, readline, in the same way as the tokenize() generator. It will call readline a maximum of twice, and return the encoding used (as a string) and a list of any lines (left as bytes) it has read in. It detects the encoding from the presence of a utf-8 bom or an encoding cookie as specified in pep-0263. If both a bom and a cookie are present, but disagree, a SyntaxError will be raised. If the encoding cookie is an invalid charset, raise a SyntaxError. Note that if a utf-8 bom is found, 'utf-8-sig' is returned. If no encoding is specified, then the default of 'utf-8' will be returned. s���utf-8c�����������@��s$���y�������SWn�t��k �r�d�SXd��S(���NRj���(���t ���StopIteration(����(���t���readline(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���read_or_stop���s���� c���������@��s7��y�|��j��d���}�WnD�t�k �rY�d�}���d��k �rJ�d�j�|�����}�n��t�|�����n�Xt�j�|���}�|�ss�d��St�|�d���}�y�t�|���}�WnH�t �k �r����d��k�r��d�|�}�n�d�j���|���}�t�|�����n�X���r3|�j �d�k�r&��d��k�rd�}�n�d�j�����}�t�|�����n��|�d �7}�n��|�S( ���Ns���utf-8s'���invalid or missing encoding declarations���{} for {!r}i����s���unknown encoding: s���unknown encoding for {!r}: {}s���encoding problem: utf-8s ���encoding problem for {!r}: utf-8s���-sig(���R����t���UnicodeDecodeErrorR#���t���formatt���SyntaxErrort ���cookie_ret���findallR����R����t���LookupErrorR����(���t���linet���line_stringt���msgt���matchest���encodingt���codec(���t ���bom_foundR����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���find_cookie���s6���� i���s ���utf-8-sigN(���t���__self__R����t���AttributeErrorR#���R2���R8���R����t���True(���R����R����t���defaultR����R����t���firstt���second(����(���R����R����R����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����w��s4���� & (���R9���i���i���(���t���unescape(���t���ChainMap(���t���MutableMapping(���t���recursive_reprs���...c���������@��s������f�d����}�|�S(���sm��� Decorator to make a repr function return fillvalue for a recursive call c���������@��sm���t���������������f�d����}�t���d���|�_�t���d���|�_�t���d���|�_�t���d�i����|�_�|�S(���Nc���������@��sW���t��|����t����f�}�|���k�r%����S��j�|���z���|����}�Wd����j�|���X|�S(���N(���t���idt ���get_identRz���t���discard(���RZ���RS���t���result(���t ���fillvaluet���repr_runningt ���user_function(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���wrapper���s���� R/���R]���R.���t���__annotations__(���Rx���t���getattrR/���R]���R.���R����(���R����R����(���R����(���R����R����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���decorating_function���s���� (����(���R����R����(����(���R����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���_recursive_repr���s����R����c�����������B@��s����e��Z�d��Z�d����Z�d����Z�d����Z�d�d���Z�d����Z�d����Z �d����Z �d����Z�e����d ������Z �e�d ������Z�d����Z�e�Z�d����Z�e�d ������Z�d����Z�d����Z�d����Z�d����Z�d����Z�RS(���s��� A ChainMap groups multiple dicts (or other mappings) together to create a single, updateable view. The underlying mappings are stored in a list. That list is public and can accessed or updated using the *maps* attribute. There is no other state. Lookups search the underlying mappings successively until a key is found. In contrast, writes, updates, and deletions only operate on the first mapping. c���������G@��s���t��|���p�i��g�|��_�d�S(���s����Initialize a ChainMap by setting *maps* to the given mappings. If no mappings are provided, a single empty dictionary is used. N(���t���listt���maps(���RZ���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR\��� ��s����c���������C@��s���t��|�����d��S(���N(���t���KeyError(���RZ���RS���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__missing__��s����c���������C@��sA���x1�|��j��D]&�}�y�|�|�SWq �t�k �r/�q �Xq �W|��j�|���S(���N(���R����R����R����(���RZ���RS���t���mapping(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__getitem__��s���� c���������C@��s���|�|��k�r�|��|�S|�S(���N(����(���RZ���RS���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyRM�����s����c���������C@��s���t��t����j�|��j������S(���N(���RN���Rx���t���unionR����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__len__"��s����c���������C@��s���t��t����j�|��j������S(���N(���t���iterRx���R����R����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__iter__%��s����c���������@��s���t�����f�d����|��j�D����S(���Nc���������3@��s���|��]�}����|�k�Vq�d��S(���N(����(���Rl���t���m(���RS���(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pys ���<genexpr>)��s����(���Rw���R����(���RZ���RS���(����(���RS���s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__contains__(��s����c���������C@��s ���t��|��j���S(���N(���Rw���R����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__bool__+��s����c���������C@��s%���d�j��|��d�j�t�t�|��j�������S(���Ns���{0.__class__.__name__}({1})s���, (���R����R;���RO���R5���R����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__repr__.��s����c���������G@��s���|��t��j�|�|�����S(���s?���Create a ChainMap with a single dict created from the iterable.(���t���dictt���fromkeys(���t���clst���iterableR����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����3��s����c���������C@��s$���|��j��|��j�d�j����|��j�d���S(���sH���New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]i����i���(���t ���__class__R����t���copy(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����8��s����c���������C@��s���|��j��i��|��j���S(���s;���New ChainMap with a new dict followed by all previous maps.(���R����R����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt ���new_child>��s����c���������C@��s���|��j��|��j�d����S(���s���New ChainMap from maps[1:].i���(���R����R����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���parentsB��s����c���������C@��s���|�|��j��d�|�<d��S(���Ni����(���R����(���RZ���RS���RT���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__setitem__G��s����c���������C@��s?���y�|��j��d�|�=Wn&�t�k �r:�t�d�j�|�������n�Xd��S(���Ni����s(���Key not found in the first mapping: {!r}(���R����R����R����(���RZ���RS���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__delitem__J��s���� c���������C@��s9���y�|��j��d�j����SWn�t�k �r4�t�d�����n�Xd�S(���sP���Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.i����s#���No keys found in the first mapping.N(���R����t���popitemR����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����P��s���� c���������G@��sH���y�|��j��d�j�|�|���SWn&�t�k �rC�t�d�j�|�������n�Xd�S(���sW���Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].i����s(���Key not found in the first mapping: {!r}N(���R����t���popR����R����(���RZ���RS���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����W��s���� c���������C@��s���|��j��d�j����d�S(���s'���Clear maps[0], leaving maps[1:] intact.i����N(���R����t���clear(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����^��s����N(���R.���R/���R]���R\���R����R����R#���RM���R����R����R����R����R����R����t���classmethodR����R����t���__copy__R����t���propertyR����R����R����R����R����R����(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s(��� (���t���cache_from_sourcec���������C@��sG���|��j��d���s�t���|�d��k�r*�t�}�n��|�r9�d�}�n�d�}�|��|�S(���Ns���.pyt���ct���o(���Rk���t���AssertionErrorR#���t ���__debug__(���R`���t���debug_overridet���suffix(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����e��s���� (���t���OrderedDict(���R����(���t���KeysViewt ���ValuesViewt ���ItemsViewR����c�����������B@��s��e��Z�d��Z�d����Z�e�j�d���Z�e�j�d���Z�d����Z�d����Z�d����Z �e �d���Z�d����Z�d ����Z �d ����Z�d����Z�d����Z�d ����Z�d����Z�e�Z�e����Z�e�d���Z�d�d���Z�d�d���Z�d����Z�d����Z�e�d�d�����Z�d����Z�d����Z�d����Z �d����Z!�d����Z"�RS(���s)���Dictionary that remembers insertion orderc���������O@��s����t��|���d�k�r+�t�d�t��|�������n��y�|��j�Wn7�t�k �ro�g��|��_�}�|�|�d�g�|�(i��|��_�n�X|��j�|�|����d�S(���s����Initialize an ordered dictionary. Signature is the same as for regular dictionaries, but keyword arguments are not recommended because their insertion order is arbitrary. i���s$���expected at most 1 arguments, got %dN(���RN���R����t���_OrderedDict__rootR����R#���t���_OrderedDict__mapt���_OrderedDict__update(���RZ���R����t���kwdst���root(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR\������s���� c���������C@��s\���|�|��k�rH�|��j��}�|�d�}�|�|�|�g�|�d�<|�d�<|��j�|�<n��|�|��|�|���d�S(���s!���od.__setitem__(i, y) <==> od[i]=yi����i���N(���R����R����(���RZ���RS���RT���t���dict_setitemR���t���last(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s ���� )c���������C@��s@���|�|��|���|��j��j�|���\�}�}�}�|�|�d�<|�|�d�<d�S(���s ���od.__delitem__(y) <==> del od[y]i���i����N(���R����R����(���RZ���RS���t���dict_delitemt ���link_prevt ���link_next(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s���� c���������c@��s=���|��j��}�|�d�}�x#�|�|�k �r8�|�d�V|�d�}�q�Wd�S(���s���od.__iter__() <==> iter(od)i���i���N(���R����(���RZ���R���t���curr(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s ���� c���������c@��s=���|��j��}�|�d�}�x#�|�|�k �r8�|�d�V|�d�}�q�Wd�S(���s#���od.__reversed__() <==> reversed(od)i����i���N(���R����(���RZ���R���R��(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__reversed__���s ���� c���������C@��sm���yH�x�|��j��j����D] �}�|�2q�W|��j�}�|�|�d�g�|�(|��j��j����Wn�t�k �r[�n�Xt�j�|����d�S(���s.���od.clear() -> None. Remove all items from od.N(���R����t ���itervaluesR����R#���R����R����R����(���RZ���t���nodeR���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s���� c���������C@��s����|��s�t��d�����n��|��j�}�|�rO�|�d�}�|�d�}�|�|�d�<|�|�d�<n(�|�d�}�|�d�}�|�|�d�<|�|�d�<|�d�}�|��j�|�=t�j�|��|���}�|�|�f�S(���s����od.popitem() -> (k, v), return and remove a (key, value) pair. Pairs are returned in LIFO order if last is true or FIFO order if false. s���dictionary is emptyi����i���i���(���R����R����R����R����R����(���RZ���R��R���t���linkR��R��RS���RT���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s ���� c���������C@��s ���t��|����S(���s���od.keys() -> list of keys in od(���R����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���keys���s����c���������C@��s���g��|��D]�}�|��|�^�q�S(���s#���od.values() -> list of values in od(����(���RZ���RS���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���values���s����c���������C@��s!���g��|��D]�}�|�|��|�f�^�q�S(���s.���od.items() -> list of (key, value) pairs in od(����(���RZ���RS���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���items���s����c���������C@��s ���t��|����S(���s0���od.iterkeys() -> an iterator over the keys in od(���R����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���iterkeys���s����c���������c@��s���x�|��D]�}�|��|�Vq�Wd�S(���s2���od.itervalues -> an iterator over the values in odN(����(���RZ���t���k(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�����s���� c���������c@��s$���x�|��D]�}�|�|��|�f�Vq�Wd�S(���s=���od.iteritems -> an iterator over the (key, value) items in odN(����(���RZ���R��(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt ���iteritems���s���� c����������O@��s&��t��|����d�k�r.�t�d�t��|����f�����n�|��sC�t�d�����n��|��d�}�d�}�t��|����d�k�rr�|��d�}�n��t�|�t���r��xw�|�D]�}�|�|�|�|�<q��WnX�t�|�d���r��xF�|�j����D]�}�|�|�|�|�<q��Wn!�x�|�D]�\�}�}�|�|�|�<q��Wx$�|�j����D]�\�}�}�|�|�|�<qWd�S( ���s���od.update(E, **F) -> None. Update od from dict/iterable E and F. If E is a dict instance, does: for k in E: od[k] = E[k] If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] Or if E is an iterable of items, does: for k, v in E: od[k] = v In either case, this is followed by: for k, v in F.items(): od[k] = v i���s8���update() takes at most 2 positional arguments (%d given)s,���update() takes at least 1 argument (0 given)i����i���R��N(����(���RN���R����R���R����t���hasattrR��R ��(���R����R����RZ���t���otherRS���RT���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyRY������s&���� c���������C@��sC���|�|��k�r!�|��|�}�|��|�=|�S|�|��j��k�r?�t�|�����n��|�S(���s����od.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised. (���t���_OrderedDict__markerR����(���RZ���RS���R����R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����!��s���� c���������C@��s"���|�|��k�r�|��|�S|�|��|�<|�S(���sD���od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od(����(���RZ���RS���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt ���setdefault.��s���� c���������C@��s����|�s�i��}�n��t��|����t����f�}�|�|�k�r4�d�Sd�|�|�<z5�|��sX�d�|��j�j�f�Sd�|��j�j�|��j����f�SWd�|�|�=Xd�S(���s���od.__repr__() <==> repr(od)s���...i���s���%s()s���%s(%r)N(���R����t ���_get_identR����R.���R ��(���RZ���t ���_repr_runningt���call_key(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����5��s����� c���������C@��s����g��|��D]�}�|�|��|�g�^�q�}�t��|����j����}�x'�t��t������D]�}�|�j�|�d���qE�W|�rx�|��j�|�f�|�f�S|��j�|�f�f�S(���s%���Return state information for picklingN(���t���varsR����R����R����R#���R����(���RZ���R��R ��t ���inst_dict(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt ���__reduce__C��s����#c���������C@��s ���|��j��|����S(���s!���od.copy() -> a shallow copy of od(���R����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����M��s����c���������C@��s(���|�����}�x�|�D]�}�|�|�|�<q�W|�S(���s����OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S and values equal to v (which defaults to None). (����(���R����R����RT���t���dRS���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR����Q��s���� c���������C@��sM���t��|�t���r=�t�|����t�|���k�o<�|��j����|�j����k�St�j�|��|���S(���s����od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive while comparison to a regular mapping is order-insensitive. (���R���R����RN���R ��R����t���__eq__(���RZ���R��(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR��\��s����.c���������C@��s���|��|�k�S(���N(����(���RZ���R��(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���__ne__e��s����c���������C@��s ���t��|����S(���s@���od.viewkeys() -> a set-like object providing a view on od's keys(���R����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���viewkeysj��s����c���������C@��s ���t��|����S(���s<���od.viewvalues() -> an object providing a view on od's values(���R����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt ���viewvaluesn��s����c���������C@��s ���t��|����S(���sB���od.viewitems() -> a set-like object providing a view on od's items(���R����(���RZ���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt ���viewitemsr��s����N(#���R.���R/���R]���R\���R����R����R����R����R��R����R����R����R��R��R ��R��R��R��RY���R����t���objectR��R����R#���R��R����R��R����R����R����R��R��R��R��R ��(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s:��� (���t���BaseConfiguratort���valid_idents���^[a-z_][a-z0-9_]*$c���������C@��s,���t��j�|����}�|�s(�t�d�|������n��t�S(���Ns!���Not a valid Python identifier: %r(���t ���IDENTIFIERR&���RL���R����(���R���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR#��|��s����t���ConvertingDictc�����������B@��s#���e��Z�d��Z�d����Z�d�d���Z�RS(���s ���A converting dictionary wrapper.c���������C@��sq���t��j�|��|���}�|��j�j�|���}�|�|�k �rm�|�|��|�<t�|���t�t�t�f�k�rm�|��|�_�|�|�_ �qm�n��|�S(���N( ���R����R����t���configuratort���convertR����R%��t���ConvertingListt���ConvertingTuplet���parentRS���(���RZ���RS���RT���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s���� c���������C@��st���t��j�|��|�|���}�|��j�j�|���}�|�|�k �rp�|�|��|�<t�|���t�t�t�f�k�rp�|��|�_�|�|�_ �qp�n��|�S(���N( ���R����RM���R&��R'��R����R%��R(��R)��R*��RS���(���RZ���RS���R����RT���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyRM������s���� N(���R.���R/���R]���R����R#���RM���(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR%�����s��� c���������C@��sj���t��j�|��|�|���}�|��j�j�|���}�|�|�k �rf�t�|���t�t�t�f�k�rf�|��|�_�|�|�_ �qf�n��|�S(���N( ���R����R����R&��R'��R����R%��R(��R)��R*��RS���(���RZ���RS���R����RT���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s���� R(��c�����������B@��s#���e��Z�d��Z�d����Z�d�d���Z�RS(���s���A converting list wrapper.c���������C@��sq���t��j�|��|���}�|��j�j�|���}�|�|�k �rm�|�|��|�<t�|���t�t�t�f�k�rm�|��|�_�|�|�_ �qm�n��|�S(���N( ���R����R����R&��R'��R����R%��R(��R)��R*��RS���(���RZ���RS���RT���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s���� i����c���������C@��s^���t��j�|��|���}�|��j�j�|���}�|�|�k �rZ�t�|���t�t�t�f�k�rZ�|��|�_�qZ�n��|�S(���N( ���R����R����R&��R'��R����R%��R(��R)��R*��(���RZ���t���idxRT���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s����(���R.���R/���R]���R����R����(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR(�����s��� R)��c�����������B@��s���e��Z�d��Z�d����Z�RS(���s���A converting tuple wrapper.c���������C@��sg���t��j�|��|���}�|��j�j�|���}�|�|�k �rc�t�|���t�t�t�f�k�rc�|��|�_�|�|�_ �qc�n��|�S(���N( ���t���tupleR����R&��R'��R����R%��R(��R)��R*��RS���(���RZ���RS���RT���R����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR�������s���� (���R.���R/���R]���R����(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR)�����s���R"��c�����������B@��s����e��Z�d��Z�e�j�d���Z�e�j�d���Z�e�j�d���Z�e�j�d���Z�e�j�d���Z �i�d�d�6d�d �6Z �e�e���Z �d ����Z�d����Z�d����Z�d ����Z�d����Z�d����Z�d����Z�RS(���sQ��� The configurator base class which defines some useful defaults. s%���^(?P<prefix>[a-z]+)://(?P<suffix>.*)$s���^\s*(\w+)\s*s���^\.\s*(\w+)\s*s���^\[\s*(\w+)\s*\]\s*s���^\d+$t���ext_convertRm���t���cfg_convertt���cfgc���������C@��s���t��|���|��_�|��|��j�_�d��S(���N(���R%��t���configR&��(���RZ���R0��(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR\������s����c��� ������C@��s����|�j��d���}�|�j�d���}�yy�|��j�|���}�x_�|�D]W�}�|�d�|�7}�y�t�|�|���}�Wq7�t�k �r��|��j�|���t�|�|���}�q7�Xq7�W|�SWnV�t�k �r��t�j����d�\�}�}�t�d�|�|�f���}�|�|�|�_ �|�_ �|���n�Xd�S(���sl��� Resolve strings to objects using standard import and attribute syntax. R0���i����i���s���Cannot resolve %r: %sN(���R3���R����t���importerR����R����t���ImportErrorRs���R����RL���t ���__cause__t ���__traceback__( ���RZ���R���R����t���usedt���foundRE���t���et���tbt���v(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���resolve���s"���� c���������C@��s ���|��j��|���S(���s*���Default converter for the ext:// protocol.(���R:��(���RZ���RT���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR-����s����c���������C@��sO��|�}�|��j��j�|���}�|�d�k�r7�t�d�|�����n|�|�j����}�|��j�|�j����d�}�x��|�rJ|��j�j�|���}�|�r��|�|�j����d�}�n��|��j�j�|���}�|�r|�j����d�}�|��j �j�|���s��|�|�}�qy�t �|���}�|�|�}�Wqt�k �r|�|�}�qXn��|�r1|�|�j����}�qa�t�d�|�|�f�����qa�W|�S(���s*���Default converter for the cfg:// protocol.s���Unable to convert %ri����s���Unable to convert %r at %rN(���t���WORD_PATTERNR&���R#���RL���t���endR0��t���groupst���DOT_PATTERNt ���INDEX_PATTERNt ���DIGIT_PATTERNt���intR����(���RZ���RT���t���restR����R��R+��t���n(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR.����s2���� c���������C@��s/��t��|�t���r7�t��|�t���r7�t�|���}�|��|�_�n��t��|�t���rn�t��|�t���rn�t�|���}�|��|�_�n��t��|�t���r��t��|�t���r��t�|���}�|��|�_�n��t��|�t���r+|��j �j �|���}�|�r+|�j����}�|�d�}�|��j�j �|�d���}�|�r(|�d�}�t�|��|���}�|�|���}�q(q+n��|�S(���s���� Convert values to an appropriate type. dicts, lists and tuples are replaced by their converting alternatives. Strings are checked to see if they have a conversion format and are converted if they do. t���prefixR����N(���R���R%��R����R&��R(��R����R)��R,��t���string_typest���CONVERT_PATTERNR&���t ���groupdictt���value_convertersRM���R#���R����(���RZ���RT���R����R��RD��t ���converterR����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR'��)��s*���� c��� ������C@��s����|�j��d���}�t�|���s-�|��j�|���}�n��|�j��d�d���}�t�g��|�D]"�}�t�|���rI�|�|�|�f�^�qI���}�|�|����}�|�r��x-�|�j����D]�\�}�}�t�|�|�|���q��Wn��|�S(���s1���Configure an object with a user-supplied factory.s���()R0���N(���R����R����R:��R#���R����R#��R ��t���setattr( ���RZ���R0��R����t���propsR��R[���R����R����RT���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���configure_customE��s����5c���������C@��s"���t��|�t���r�t�|���}�n��|�S(���s0���Utility function which converts lists to tuples.(���R���R����R,��(���RZ���RT���(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���as_tupleS��s����(���R.���R/���R]���R$���R%���RF��R;��R>��R?��R@��RH��t���staticmethodt ���__import__R1��R\���R:��R-��R.��R'��RL��RM��(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyR"�����s"��� " (���i���i���(����t ���__future__R����R_���R$���Rs���t���sslR2��R#���t���version_infoR���t ���basestringRE��R���R����t���typesR���t ���file_typet���__builtin__t���builtinst���ConfigParsert���configparsert ���_backportR���R���R���R���R���R���t���urllibR ���R ���R���R���R���R ���R���R���t���urllib2R���R���R���R���R���R���R���R���R���R���t���httplibt ���xmlrpclibt���Queuet���queueR���t���htmlentitydefst ���raw_inputt ���itertoolsR ���t���filterR!���R+���R"���R)���t���iot���strR*���t���urllib.parset���urllib.requestt���urllib.errort���http.clientt���clientt���requestt ���xmlrpc.clientt���html.parsert ���html.entitiest���entitiest���inputR,���R-���RL���RG���RV���RW���R!��R^���t���F_OKt���X_OKt���zipfileR����R����R��R����t���BaseZipExtFileRt���R����R����R����t ���NameErrort���collectionsR����R����R����R����t���getfilesystemencodingR����R����t���tokenizeR����t���codecsR����R����R%���R����R����t���htmlR9���t���cgiR����R����R����t���reprlibR����R����t���impR����R����t���threadR����R��t���dummy_threadt���_abcollR����R����R����R����t���logging.configR"��R#��t���IR$��R%��R����R����R(��R,��R)��(����(����(����s>���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/compat.pyt���<module>���s$�� (4 @ @F 2 + A [ b �