§
    ÷„tjÊ ã                   ó  — d dl Z d dlm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lZd dlZd dlZd dlZ	 d dlZn# e$ r dZY nw xY wd dlZd dlZd dlZd dlZd dlZ	 d dlZn# e$ r d dlZY nw xY wd dlZddlmZ ddlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/  e
j0        e1¦  «        Z2 ej3        d¦  «        Z4 ej3        d¦  «        Z5 ej3        d	¦  «        Z6 ej3        d
¦  «        Z7 ej3        d¦  «        Z8 ej3        d¦  «        Z9 ej3        d¦  «        Z: ej3        d¦  «        Z;d„ Z<d„ Z=d„ Z>d„ Z?d„ Z@dkd„ZAd„ ZBd„ ZCd„ ZDejE        d„ ¦   «         ZFejE        d„ ¦   «         ZGejE        dld„¦   «         ZH G d„ deI¦  «        ZJd„ ZK G d„ d eI¦  «        ZLd!„ ZM G d"„ d#eI¦  «        ZN ej3        d$ejO        ¦  «        ZPd%„ ZQdmd&„ZRd'„ ZSd(„ ZTd)„ ZUd*„ ZVd+„ ZW ej3        d,ejX        ¦  «        ZY ej3        d-¦  «        ZZdmd.„Z[ ej3        d/¦  «        Z\d0„ Z]d1„ Z^d2„ Z_d3Z`d4„ Zad5„ Zb G d6„ d7eI¦  «        Zc G d8„ d9eI¦  «        Zd G d:„ d;eI¦  «        Zed<Zfdnd>„Zgd?„ Zhd@Zi G dA„ dBeI¦  «        Zj ej3        dC¦  «        Zk ej3        dD¦  «        Zl ej3        dE¦  «        ZmdF„ ZdG„ Zner:ddHlmoZpmqZqmrZr  G dI„ dJe$js        ¦  «        Zs G dK„ dLep¦  «        Zo G dM„ dNeoe&¦  «        Zt G dO„ dPe%ju        ¦  «        Zuer G dQ„ dRe%jv        ¦  «        Zv G dS„ dTe%jw        ¦  «        ZwdU„ Zx G dV„ dWeI¦  «        Zy G dX„ dYey¦  «        Zz G dZ„ d[ey¦  «        Z{ G d\„ d]e'¦  «        Z| G d^„ d_eI¦  «        Z}d`„ Z~ G da„ dbeI¦  «        Zdc„ Z€dd„ Z�de„ Z‚dfdgdhdiœZƒdj„ Z„dS )oé    N)Údeque)Úiglobé   )ÚDistlibException)Ústring_typesÚ	text_typeÚshutilÚ	raw_inputÚStringIOÚcache_from_sourceÚurlopenÚurljoinÚhttplibÚ	xmlrpclibÚHTTPHandlerÚBaseConfiguratorÚvalid_identÚ	ContainerÚconfigparserÚURLErrorÚZipFileÚfsdecodeÚunquoteÚurlparsez^([\w\.-]+)\s*z^([\w\.*+-]+)\s*z^(<=?|>=?|={2,3}|[~!]=)\s*z*^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*z^or\b\s*z	^and\b\s*z(\S+)\s*z(([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)c                 óF   ‡‡‡‡— d„ Šˆˆfd„Šˆfd„Šˆfd„Š ‰| ¦  «        S )ae  
    Parse a marker string and return a dictionary containing a marker expression.

    The dictionary will contain keys "op", "lhs" and "rhs" for non-terminals in
    the expression grammar, or strings. A string contained in quotes is to be
    interpreted as a literal string, and a string not contained in quotes is a
    variable (such as os_name).
    c                 ó˜  — t                                | ¦  «        }|r8|                     ¦   «         d         }| |                     ¦   «         d …         } �ns| st	          d¦  «        ‚| d         }|dvrt	          d| z  ¦  «        ‚d                     |d¦  «        }| dd …         } |g}| r²| d         |k    rnÌ| d         |k    r |                     |¦  «         | dd …         } nwt                               | ¦  «        }|st	          d| z  ¦  «        ‚|                     |                     ¦   «         d         ¦  «         | |                     ¦   «         d …         } | °²d                     |¦  «        }t	          d|z  ¦  «        ‚|                     |¦  «         d                     |¦  «        }| dd …          	                    ¦   «         } || fS )	Nr   zunexpected end of inputz'"zinvalid expression: %sÚ r   zerror in string literal: %szunterminated string: %s)
Ú
IDENTIFIERÚmatchÚgroupsÚendÚSyntaxErrorÚreplaceÚappendÚSTRING_CHUNKÚjoinÚlstrip)Ú	remainingÚmÚresultÚqÚoqÚpartsÚss          úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pip/_vendor/distlib/util.pyÚ
marker_varz parse_marker.<locals>.marker_varB   sÓ  € å×Ò˜YÑ'Ô'ˆØð 	/Ø—X’X‘Z”Z ”]ˆFØ! !§%¢%¡'¤' ( (Ô+ˆI‰IØð 	/ÝÐ7Ñ8Ô8Ð8à˜!”ˆAØ˜ˆ~ˆ~Ý!Ð":¸YÑ"FÑGÔGÐGØ—’˜q "Ñ%Ô%ˆBØ! ! " "œˆIØ�CˆEØð Aà˜Q”< 1Ò$Ð$ØØ˜q”\ RÒ'Ð'Ø—L’L Ñ$Ô$Ð$Ø )¨!¨"¨"¤�I�Iå$×*Ò*¨9Ñ5Ô5�AØð 5Ý)Ð*GØ*3ñ+4ñ 5ô 5ð 5à—L’L §¢¡¤¨A¤Ñ/Ô/Ð/Ø )¨!¯%ª%©'¬'¨(¨(Ô 3�Ið ð Að —G’G˜E‘N”N�Ý!Ð";¸aÑ"?Ñ@Ô@Ð@Ø�LŠL˜‰OŒOˆOØ—W’W˜U‘^”^ˆFØ! ! " "œ×,Ò,Ñ.Ô.ˆIØ�yÐ Ð ó    c                 óä  •— | ro| d         dk    rc ‰| dd …                               ¦   «         ¦  «        \  }} | d         dk    rt          d| z  ¦  «        ‚| dd …                               ¦   «         } n{ ‰| ¦  «        \  }} | rit                               | ¦  «        }|snL|                     ¦   «         d         }| |                     ¦   «         d …         }  ‰| ¦  «        \  }} |||dœ}| °i|}|| fS )Nr   ú(r   ú)úunterminated parenthesis: %s©ÚopÚlhsÚrhs)r'   r"   Ú	MARKER_OPr   r    r!   )r(   r*   r8   r)   r7   r9   Úmarkerr0   s         €€r/   Úmarker_exprz!parse_marker.<locals>.marker_exprg   s  ø€ Øð 	˜ 1œ¨Ò,Ð,Ø &  y°°°¤}×';Ò';Ñ'=Ô'=Ñ >Ô >ÑˆF�IØ˜Œ|˜sÒ"Ð"Ý!Ð"@À9Ñ"LÑMÔMÐMØ! ! " "œ×,Ò,Ñ.Ô.ˆIˆIà'˜Z¨	Ñ2Ô2‰NˆC�Øð 9Ý—O’O IÑ.Ô.�Øð ØØ—X’X‘Z”Z ”]�Ø% a§e¢e¡g¤g h hÔ/�	Ø!+ ¨IÑ!6Ô!6‘��YØ¨°CÐ8Ð8�ð ð 9ð ˆFØ�yÐ Ð r1   c                 óÊ   •—  ‰| ¦  «        \  }} | rOt                                | ¦  «        }|sn2| |                     ¦   «         d …         }  ‰| ¦  «        \  }} d||dœ}| °O|| fS )NÚandr6   )ÚANDr   r!   )r(   r8   r)   r9   r<   s       €r/   Ú
marker_andz parse_marker.<locals>.marker_andz   sˆ   ø€ Ø$˜ YÑ/Ô/‰ˆˆYØð 	8Ý—	’	˜)Ñ$Ô$ˆAØð ØØ! !§%¢%¡'¤' ( (Ô+ˆIØ(˜[¨Ñ3Ô3‰NˆC�Ø s°3Ð7Ð7ˆCð ð 	8ð �Iˆ~Ðr1   c                 óÊ   •—  ‰| ¦  «        \  }} | rOt                                | ¦  «        }|sn2| |                     ¦   «         d …         }  ‰| ¦  «        \  }} d||dœ}| °O|| fS )NÚorr6   )ÚORr   r!   )r(   r8   r)   r9   r@   s       €r/   r;   zparse_marker.<locals>.marker…   sˆ   ø€ Ø#˜ IÑ.Ô.‰ˆˆYØð 	7Ý—’˜Ñ#Ô#ˆAØð ØØ! !§%¢%¡'¤' ( (Ô+ˆIØ'˜Z¨	Ñ2Ô2‰NˆC�Ø c°#Ð6Ð6ˆCð ð 	7ð �Iˆ~Ðr1   © )Úmarker_stringr;   r@   r<   r0   s    @@@@r/   Úparse_markerrF   8   sx   øøøø€ ð#!ð #!ð #!ðJ!ð !ð !ð !ð !ð !ð&	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð ˆ6�-Ñ Ô Ð r1   c                 óÖ  — |                       ¦   «         }|r|                     d¦  «        rdS t                               |¦  «        }|st	          d|z  ¦  «        ‚|                     ¦   «         d         }||                     ¦   «         d…         }dx}x}x}}|�r"|d         dk    �r|                     dd¦  «        }|dk     rt	          d|z  ¦  «        ‚|d|…         }	||dz   d…                              ¦   «         }g }|	r¶t                               |	¦  «        }|st	          d	|	z  ¦  «        ‚| 	                    |                     ¦   «         d         ¦  «         |	|                     ¦   «         d…         }	|	sn<|	d         d
k    rt	          d|	z  ¦  «        ‚|	dd…                              ¦   «         }	|	°¶|sd}|�rý|d         dk    rÃ|dd…                              ¦   «         }t                               |¦  «        }|st	          d|z  ¦  «        ‚|                     ¦   «         d         }t          |¦  «        }
|
j        r|
j        st	          d|z  ¦  «        ‚||                     ¦   «         d…                              ¦   «         }�n.d„ }|d         dk    r ||¦  «        \  }}�n|                     dd¦  «        }|dk     rt	          d|z  ¦  «        ‚|d|…         }	||dz   d…                              ¦   «         }t                               |	¦  «        r ||	¦  «        \  }}n�t                               |	¦  «        }|st	          d|	z  ¦  «        ‚|                     ¦   «         d         }|	|                     ¦   «         d…                              ¦   «         }	|	rt	          d|	z  ¦  «        ‚d|fg}|rL|d         dk    rt	          d|z  ¦  «        ‚|dd…                              ¦   «         }t!          |¦  «        \  }}|r|d         dk    rt	          d|z  ¦  «        ‚|s|}n$|›dd                     d„ |D ¦   «         ¦  «        ›�}t%          ||||||¬¦  «        S )zŠ
    Parse a requirement passed in as a string. Return a Container
    whose attributes contain the various parts of the requirement.
    ú#Nzname expected: %sr   ú[ú]r   zunterminated extra: %szmalformed extra: %sú,zcomma expected in extras: %sú@zinvalid URI: %szInvalid URL: %sc                 ót  — t                                | ¦  «        }d}|�rg }	 |                     ¦   «         d         }| |                     ¦   «         d…         } t                               | ¦  «        }|st          d| z  ¦  «        ‚|                     ¦   «         d         }|                     ||f¦  «         | |                     ¦   «         d…         } | r| d         dk    rnO| dd…                              ¦   «         } | sn0t                                | ¦  «        }|st          d| z  ¦  «        ‚�Œ|sd}|| fS )z|
                Return a list of operator, version tuples if any are
                specified, else None.
                NTr   zinvalid version: %srK   r   úinvalid constraint: %s)Ú
COMPARE_OPr   r    r!   ÚVERSION_IDENTIFIERr"   r$   r'   )Úver_remainingr)   Úversionsr7   Úvs        r/   Úget_versionsz'parse_requirement.<locals>.get_versionsÇ   sb  € õ
 ×$Ò$ ]Ñ3Ô3�Ø�Øñ (Ø!�Hð=ØŸXšX™ZœZ¨œ]˜Ø(5°a·e²e±g´g°h°hÔ(?˜Ý.×4Ò4°]ÑCÔC˜Ø ð =Ý"-Ð.CØ.;ñ/<ñ #=ô #=ð =àŸHšH™JœJ qœM˜Ø Ÿš¨¨Q¨Ñ0Ô0Ð0Ø(5°a·e²e±g´g°h°hÔ(?˜Ø,ð "°¸aÔ0@ÀCÒ0GÐ0GØ!Ø(5°a°b°bÔ(9×(@Ò(@Ñ(BÔ(B˜ð  -ð "Ø!Ý&×,Ò,¨]Ñ;Ô;˜Ø ð =Ý"-Ð.FØ.;ñ/<ñ #=ô #=ð =ñ'=ð* $ð (Ø#'˜Ø Ð.Ð.r1   r3   r4   r5   rN   z~=ú;zinvalid requirement: %szunexpected trailing data: %sú ú, c                 ó   — g | ]}d |z  ‘ŒS )z%s %srD   )Ú.0Úcons     r/   ú
<listcomp>z%parse_requirement.<locals>.<listcomp>  s   € Ð/Ð/Ð/˜sˆW�s‰]Ð/Ð/Ð/r1   )ÚnameÚextrasÚconstraintsr;   ÚurlÚrequirement)ÚstripÚ
startswithr   r   r"   r    r!   Úfindr'   r$   Ú	NON_SPACEr   ÚschemeÚnetlocrO   rP   rF   r&   r   )Úreqr(   r)   Údistnamer]   Ú	mark_exprrR   ÚuriÚir.   ÚtrT   Ú_rS   Úrss                  r/   Úparse_requirementro   “   sÛ  € ð
 —	’	‘”€IØð ˜	×,Ò,¨SÑ1Ô1ð ØˆtÝ×Ò˜Ñ#Ô#€AØð ;ÝÐ-°	Ñ9Ñ:Ô:Ð:Ø�xŠx‰zŒz˜!Œ}€HØ˜!Ÿ%š%™'œ'˜(˜(Ô#€IØ*.Ð.€FÐ.ˆYÐ.˜ CØñ �Y˜q”\ SÒ(Ñ(Ø�NŠN˜3 Ñ"Ô"ˆØˆqŠ5ˆ5ÝÐ6¸ÑBÑCÔCÐCØ�a˜�cŒNˆØ˜a !™e˜f˜fÔ%×,Ò,Ñ.Ô.ˆ	ØˆØð 
	Ý× Ò  Ñ#Ô#ˆAØð =Ý!Ð"7¸!Ñ";Ñ<Ô<Ð<Ø�MŠM˜!Ÿ(š(™*œ* Qœ-Ñ(Ô(Ð(Ø�!—%’%‘'”'�(�(”ˆAØð ØØ�Œt�sŠ{ˆ{Ý!Ð"@À1Ñ"DÑEÔEÐEØ�!�"�"”—’‘”ˆAð ð 
	ð ð 	ØˆFØñ J+Ø�QŒ<˜3ÒÐà! ! " "œ×,Ò,Ñ.Ô.ˆIÝ—’ 	Ñ*Ô*ˆAØð AÝ!Ð"3°iÑ"?Ñ@Ô@Ð@Ø—(’(‘*”*˜Q”-ˆCÝ˜‘”ˆAð
 ”Hð ; ¤ð ;Ý!Ð"3°cÑ"9Ñ:Ô:Ð:Ø! !§%¢%¡'¤' ( (Ô+×2Ò2Ñ4Ô4ˆI‰Ið /ð  /ð  /ðD ˜Œ|˜sÒ"Ð"Ø&2 l°9Ñ&=Ô&=Ñ#�˜)™)à—N’N 3¨Ñ*Ô*�Ø�q’5�5Ý%Ð&DØ&/ñ'0ñ 1ô 1ð 1à˜a ˜c”N�Ø% a¨!¡e f fÔ-×4Ò4Ñ6Ô6�	õ ×#Ò# AÑ&Ô&ð 
+Ø". ,¨q¡/¤/‘K�H˜a˜aå*×0Ò0°Ñ3Ô3�AØð HÝ)Ð*BÀQÑ*FÑGÔGÐGØŸš™
œ
 1œ�AØ˜!Ÿ%š%™'œ'˜(˜(œ×*Ò*Ñ,Ô,�AØð HÝ)Ð*BÀQÑ*FÑGÔGÐGØ!% q 	˜{�Hàð 7Ø�QŒ<˜3ÒÐÝÐ7¸)ÑCÑDÔDÐDØ˜a˜b˜b”M×(Ò(Ñ*Ô*ˆ	å+¨IÑ6Ô6Ñˆ	�9àð F�Y˜q”\ SÒ(Ð(ÝÐ8¸9ÑDÑEÔEÐEàð 2Øˆˆà ˜˜ $§)¢)Ø/Ð/ hÐ/Ñ/Ô/ñ#1ô #1ð #1ð 2ˆå˜(Ø"Ø!)Ø%ØØ!#ð%ñ %ô %ð %r1   c                 óÒ  — d„ }i }|D ]Þ\  }}}t           j                             | |¦  «        }t          |¦  «        D ]¨}t           j                             ||¦  «        }	t          |	¦  «        D ]v}
 || |
¦  «        }|€|                     |d¦  «         Œ' |||
¦  «        }|                     t           j        j        d¦  «                             d¦  «        }|dz   |z   ||<   ŒwŒ©Œß|S )z%Find destinations for resources filesc                 ó  — |                       t          j        j        d¦  «        } |                      t          j        j        d¦  «        }|                     | ¦  «        sJ ‚|t          | ¦  «        d …                              d¦  «        S ©Nú/)r#   ÚosÚpathÚseprb   Úlenr'   )Úrootru   s     r/   Úget_rel_pathz)get_resources_dests.<locals>.get_rel_path  sk   € à�|Š|�BœGœK¨Ñ-Ô-ˆØ�|Š|�BœGœK¨Ñ-Ô-ˆØ�Š˜tÑ$Ô$Ð$Ð$Ð$Ø•C˜‘I”I�J�JÔ×&Ò& sÑ+Ô+Ð+r1   Nrs   )rt   ru   r&   r   Úpopr#   rv   Úrstrip)Úresources_rootÚrulesry   ÚdestinationsÚbaseÚsuffixÚdestÚprefixÚabs_baseÚabs_globÚabs_pathÚresource_fileÚrel_pathÚrel_dests                 r/   Úget_resources_destsr‰     s  € ð,ð ,ð ,ð €LØ#ð Lð LÑˆˆf�dÝ”—’˜n¨dÑ3Ô3ˆÝ˜f™œð 		Lð 		LˆHÝ”w—|’| H¨fÑ5Ô5ˆHÝ! (™OœOð Lð L�Ø , ¨^¸XÑ FÔ F�Ø�<Ø ×$Ò$ ]°DÑ9Ô9Ð9Ð9à+˜|¨H°hÑ?Ô?�HØ#Ÿ|š|­B¬G¬K¸Ñ=Ô=×DÒDÀSÑIÔI�HØ2:¸S±.À8Ñ2K�L Ñ/Ð/ðLð		Lð Ðr1   c                  ó’   — t          t          d¦  «        rd} n.t          j        t          t          dt          j        ¦  «        k    } | S )NÚreal_prefixTÚbase_prefix)ÚhasattrÚsysr‚   Úgetattr©r*   s    r/   Úin_venvr‘   2  s=   € Ý�s�MÑ"Ô"ð Gàˆˆõ ”�w¥s¨M½3¼:ÑFÔFÒFˆØ€Mr1   c                  óf   — t           j        } t          | t          ¦  «        st	          | ¦  «        } | S ©N)rŽ   Ú
executableÚ
isinstancer   r   r�   s    r/   Úget_executabler–   <  s/   € õ Œ^€FÝ�f�iÑ(Ô(ð "Ý˜&Ñ!Ô!ˆØ€Mr1   c                 ó’   — | }	 t          |¦  «        }| }|s|r|}|r)|d                              ¦   «         }||v rn|rd||| fz  }ŒC|S )NTr   z	%c: %s
%s)r
   Úlower)ÚpromptÚallowed_charsÚerror_promptÚdefaultÚpr.   Úcs          r/   ÚproceedrŸ   N  s|   € Ø€Að
=Ý�a‰LŒLˆØˆØð 	�Wð 	ØˆAØð 	=Ø�!”—
’
‘”ˆAØ�MÐ!Ð!ØØð =Ø  A |°VÐ#<Ñ<�ð
=ð €Hr1   c                 ó„   — t          |t          ¦  «        r|                     ¦   «         }i }|D ]}|| v r| |         ||<   Œ|S r“   )r•   r   Úsplit)ÚdÚkeysr*   Úkeys       r/   Úextract_by_keyr¥   ^  sQ   € Ý�$�Ñ%Ô%ð Ø�zŠz‰|Œ|ˆØ€FØð !ð !ˆØ�!ˆ8ˆ8Ø˜Cœ&ˆF�3‰KøØ€Mr1   c                 ó¦  — t           j        d         dk    r t          j        d¦  «        | ¦  «        } |                      ¦   «         }t          |¦  «        } 	 t          j        | ¦  «        }|d         d         d         }|                     ¦   «         D ]>\  }}|                     ¦   «         D ]$\  }}|›d|›�}t          |¦  «        }	|	€J ‚|	||<   Œ%Œ?|S # t          $ r |                      dd¦  «         Y nw xY wd„ }
t          j        ¦   «         }	  |
|| ¦  «         nX# t          j        $ rF |                      ¦   «          t!          j        |¦  «        }t          |¦  «        }  |
|| ¦  «         Y nw xY wi }|                     ¦   «         D ]C}i x||<   }|                     |¦  «        D ]$\  }}|›d|›�}t          |¦  «        }	|	€J ‚|	||<   Œ%ŒD|S )	Nr   é   úutf-8Ú
extensionszpython.exportsÚexportsú = c                 ó~   — t          | d¦  «        r|                      |¦  «         d S |                      |¦  «         d S )NÚ	read_file)r�   r­   Úreadfp)ÚcpÚstreams     r/   Úread_streamz!read_exports.<locals>.read_stream|  sD   € Ý�2�{Ñ#Ô#ð 	Ø�LŠL˜Ñ Ô Ð Ð Ð à�IŠI�fÑÔÐÐÐr1   )rŽ   Úversion_infoÚcodecsÚ	getreaderÚreadr   ÚjsonÚloadÚitemsÚget_export_entryÚ	ExceptionÚseekr   ÚConfigParserÚMissingSectionHeaderErrorÚcloseÚtextwrapÚdedentÚsections)r°   ÚdataÚjdatar*   ÚgroupÚentriesÚkrS   r.   Úentryr±   r¯   r¤   r\   Úvalues                  r/   Úread_exportsrÉ   h  s:  € Ý
Ô˜Ô˜aÒÐà*•Ô! 'Ñ*Ô*¨6Ñ2Ô2ˆà�;Š;‰=Œ=€DÝ�d‰^Œ^€FðÝ”	˜&Ñ!Ô!ˆØ�|Ô$Ð%5Ô6°yÔAˆØ$Ÿlšl™nœnð 	#ð 	#‰NˆE�7ØŸš™œð #ð #‘��1Ø!"   A AÐ&�Ý(¨Ñ+Ô+�ØÐ(Ð(Ð(Ø"�˜‘
�
ð	#ð
 ˆøÝð ð ð Ø�Š�A�qÑÔÐÐÐðøøøðð ð õ 
Ô	"Ñ	$Ô	$€Bð Øˆ�B˜ÑÔÐÐøÝÔ1ð  ð  ð  Ø�Š‰ŒˆÝŒ˜tÑ$Ô$ˆÝ˜$‘”ˆØˆ�B˜ÑÔÐÐÐð	 øøøð €FØ�{Š{‰}Œ}ð "ð "ˆØ "Ð"ˆˆs‰�gØŸ8š8 C™=œ=ð 	"ð 	"‰KˆD�%Ø!˜T˜T 5 5Ð)ˆAÝ$ QÑ'Ô'ˆEØÐ$Ð$Ð$à!ˆG�D‰MˆMð	"ð €Ms&   ÁA<C Ã C8Ã7C8ÄD ÄAE4Å3E4c                 ó  — t           j        d         dk    r t          j        d¦  «        |¦  «        }t	          j        ¦   «         }|                      ¦   «         D ]”\  }}|                     |¦  «         |                     ¦   «         D ]e}|j	        €|j
        }n|j
        ›d|j	        ›�}|j        r |›dd                     |j        ¦  «        ›d�}|                     ||j        |¦  «         ŒfŒ•|                     |¦  «         d S )Nr   r§   r¨   ú:z [rW   rJ   )rŽ   r²   r³   Ú	getwriterr   r¼   r¸   Úadd_sectionÚvaluesr€   r‚   Úflagsr&   Úsetr\   Úwrite)rª   r°   r¯   rÆ   rS   rÇ   r.   s          r/   Úwrite_exportsrÒ   —  s  € Ý
Ô˜Ô˜aÒÐà*•Ô! 'Ñ*Ô*¨6Ñ2Ô2ˆÝ	Ô	"Ñ	$Ô	$€BØ—’‘”ð 
%ð 
%‰ˆˆ1à
�Š�qÑÔÐØ—X’X‘Z”Zð 	%ð 	%ˆEØŒ|Ð#Ø”L��à$œ|˜|˜|¨U¬\¨\Ð:�ØŒ{ð <Ø!"   D§I¢I¨e¬kÑ$:Ô$:Ð$:Ð$:Ð;�Ø�FŠF�1�e”j !Ñ$Ô$Ð$Ð$ð	%ð ‡H‚HˆVÑÔÐÐÐr1   c               #   ó”   K  — t          j        ¦   «         } 	 | V — t          j        | ¦  «         d S # t          j        | ¦  «         w xY wr“   )ÚtempfileÚmkdtempr	   Úrmtree)Útds    r/   ÚtempdirrØ   ª  sN   è è € å	Ô	Ñ	Ô	€BðØˆˆˆåŒ�bÑÔÐÐÐø�Œ�bÑÔÐÐøøøs	   —1 ±Ac              #   ó¼   K  — t          j        ¦   «         }	 t          j        | ¦  «         d V — t          j        |¦  «         d S # t          j        |¦  «         w xY wr“   )rt   ÚgetcwdÚchdir)r¢   Úcwds     r/   rÛ   rÛ   ³  sO   è è € å
Œ)‰+Œ+€CðÝ
Œ�‰ŒˆØˆˆˆå
Œ�‰Œˆˆˆø�Œ�‰Œˆˆøøøó   —A ÁAé   c              #   ó¼   K  — t          j        ¦   «         }	 t          j        | ¦  «         d V — t          j        |¦  «         d S # t          j        |¦  «         w xY wr“   )ÚsocketÚgetdefaulttimeoutÚsetdefaulttimeout)ÚsecondsÚctos     r/   Úsocket_timeoutrå   ½  sa   è è € å
Ô
"Ñ
$Ô
$€Cð&ÝÔ  Ñ)Ô)Ð)ØˆˆˆåÔ  Ñ%Ô%Ð%Ð%Ð%ø�Ô  Ñ%Ô%Ð%Ð%øøørÝ   c                   ó   — e Zd Zd„ Zdd„ZdS )Úcached_propertyc                 ó   — || _         d S r“   )Úfunc)Úselfré   s     r/   Ú__init__zcached_property.__init__É  s   € ØˆŒ	ˆ	ˆ	r1   Nc                 ó„   — |€| S |                       |¦  «        }t                               || j         j        |¦  «         |S r“   )ré   ÚobjectÚ__setattr__Ú__name__)rê   ÚobjÚclsrÈ   s       r/   Ú__get__zcached_property.__get__Î  s=   € Øˆ;ØˆKØ—	’	˜#‘”ˆÝ×Ò˜3 ¤	Ô 2°EÑ:Ô:Ð:àˆr1   r“   )rï   Ú
__module__Ú__qualname__rë   rò   rD   r1   r/   rç   rç   Ç  s7   € € € € € ðð ð ð
ð ð ð ð ð r1   rç   c                 óˆ  — t           j        dk    r| S | s| S | d         dk    rt          d| z  ¦  «        ‚| d         dk    rt          d| z  ¦  «        ‚|                      d¦  «        }t           j        |v r-|                     t           j        ¦  «         t           j        |v °-|st           j        S t          j        j        |Ž S )aÐ  Return 'pathname' as a name that will work on the native filesystem.

    The path is split on '/' and put back together again using the current
    directory separator.  Needed because filenames in the setup script are
    always supplied in Unix style, and have to be converted to the local
    convention before we can actually use them in the filesystem.  Raises
    ValueError on non-Unix-ish systems if 'pathname' either starts or
    ends with a slash.
    rs   r   zpath '%s' cannot be absoluteéÿÿÿÿzpath '%s' cannot end with '/')rt   rv   Ú
ValueErrorr¡   ÚcurdirÚremoveru   r&   )ÚpathnameÚpathss     r/   Úconvert_pathrü   ×  sÇ   € õ 
„v�‚}€}ØˆØð ØˆØ�„{�cÒÐÝÐ7¸(ÑBÑCÔCÐCØ�„|�sÒÐÝÐ8¸8ÑCÑDÔDÐDà�NŠN˜3ÑÔ€EÝ
Œ)�uÐ
Ð
Ø�Š•R”YÑÔÐõ Œ)�uÐ
Ð
àð ÝŒyÐÝŒ7Œ<˜ÐÐr1   c                   ó~   — e Zd Zdd„Zd„ Zd„ Zd„ Zdd„Zdd	„Zd
„ Z	d„ Z
d„ Zd„ Zd„ Z	 	 	 	 dd„Zd„ Zd„ Zd„ Zd„ ZdS )ÚFileOperatorFc                 ób   — || _         t          ¦   «         | _        |                      ¦   «          d S r“   )Údry_runrÐ   ÚensuredÚ_init_record)rê   r   s     r/   rë   zFileOperator.__init__ô  s,   € ØˆŒÝ‘u”uˆŒØ×ÒÑÔÐÐÐr1   c                 ó`   — d| _         t          ¦   «         | _        t          ¦   «         | _        d S ©NF)ÚrecordrÐ   Úfiles_writtenÚdirs_created©rê   s    r/   r  zFileOperator._init_recordù  s'   € ØˆŒÝ ™UœUˆÔÝ™EœEˆÔÐÐr1   c                 óL   — | j         r| j                             |¦  «         d S d S r“   )r  r  Úadd)rê   ru   s     r/   Úrecord_as_writtenzFileOperator.record_as_writtenþ  s3   € ØŒ;ð 	)ØÔ×"Ò" 4Ñ(Ô(Ð(Ð(Ð(ð	)ð 	)r1   c                 óH  — t           j                             |¦  «        s/t          dt           j                             |¦  «        z  ¦  «        ‚t           j                             |¦  «        sdS t          j        |¦  «        j        t          j        |¦  «        j        k    S )aÎ  Tell if the target is newer than the source.

        Returns true if 'source' exists and is more recently modified than
        'target', or if 'source' exists and 'target' doesn't.

        Returns false if both exist and 'target' is the same age or younger
        than 'source'. Raise PackagingFileError if 'source' does not exist.

        Note that this test is not very accurate: files created in the same
        second will have the same "age".
        zfile '%r' does not existT)rt   ru   Úexistsr   ÚabspathÚstatÚst_mtime)rê   ÚsourceÚtargets      r/   ÚnewerzFileOperator.newer  s�   € õ Œw�~Š~˜fÑ%Ô%ð 	<Ý"Ð#=Ý#%¤7§?¢?°6Ñ#:Ô#:ñ$;ñ <ô <ð <åŒw�~Š~˜fÑ%Ô%ð 	Ø�4åŒw�v‰ŒÔ'­"¬'°&©/¬/Ô*BÒBÐBr1   Tc                 ó  — |                       t          j                             |¦  «        ¦  «         t                               d||¦  «         | j        s•d}|rht          j                             |¦  «        rd|z  }nCt          j                             |¦  «        r$t          j         	                    |¦  «        sd|z  }|rt          |dz   ¦  «        ‚t          j        ||¦  «         |                      |¦  «         dS )z8Copy a file respecting dry-run and force flags.
        zCopying %s to %sNz%s is a symlinkz%s is a non-regular filez which would be overwritten)Ú
ensure_dirrt   ru   ÚdirnameÚloggerÚinfor   Úislinkr  Úisfiler÷   r	   Úcopyfiler  )rê   ÚinfileÚoutfileÚcheckÚmsgs        r/   Ú	copy_filezFileOperator.copy_file  sò   € ð 	�Š�œŸš¨Ñ0Ô0Ñ1Ô1Ð1Ý�ŠÐ&¨°Ñ8Ô8Ð8ØŒ|ð 		-ØˆCØð ?Ý”7—>’> 'Ñ*Ô*ð ?Ø+¨gÑ5�C�CÝ”W—^’^ GÑ,Ô,ð ?µR´W·^²^ÀGÑ5LÔ5Lð ?Ø4°wÑ>�CØð FÝ  Ð'DÑ!DÑEÔEÐEÝŒO˜F GÑ,Ô,Ð,Ø×Ò˜wÑ'Ô'Ð'Ð'Ð'r1   Nc                 óø  — t           j                             |¦  «        rJ ‚|                      t           j                             |¦  «        ¦  «         t
                               d||¦  «         | j        sn|€t          |d¦  «        }nt          j        |d|¬¦  «        }	 t          j        ||¦  «         |                     ¦   «          n# |                     ¦   «          w xY w|                      |¦  «         d S )NzCopying stream %s to %sÚwbÚw©Úencoding)rt   ru   Úisdirr  r  r  r  r   Úopenr³   r	   Úcopyfileobjr¾   r  )rê   Úinstreamr  r%  Ú	outstreams        r/   Úcopy_streamzFileOperator.copy_stream'  så   € Ý”7—=’= Ñ)Ô)Ð)Ð)Ð)Ø�Š�œŸš¨Ñ0Ô0Ñ1Ô1Ð1Ý�ŠÐ-¨x¸ÑAÔAÐAØŒ|ð 	"ØÐÝ  ¨$Ñ/Ô/�	�	å"œK¨°¸xÐHÑHÔH�	ð"ÝÔ" 8¨YÑ7Ô7Ð7à—’Ñ!Ô!Ð!Ð!ø�	—’Ñ!Ô!Ð!Ð!øøøØ×Ò˜wÑ'Ô'Ð'Ð'Ð's   Â"C ÃC"c                 ó‚  — |                       t          j                             |¦  «        ¦  «         | j        spt          j                             |¦  «        rt          j        |¦  «         t          |d¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |  	                    |¦  «         d S )Nr"  )
r  rt   ru   r  r   r  rù   r'  rÑ   r  )rê   ru   rÂ   Úfs       r/   Úwrite_binary_filezFileOperator.write_binary_file6  sÚ   € Ø�Š�œŸš¨Ñ-Ô-Ñ.Ô.Ð.ØŒ|ð 	ÝŒw�~Š~˜dÑ#Ô#ð  Ý”	˜$‘”�Ý�d˜DÑ!Ô!ð  QØ—’˜‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à×Ò˜tÑ$Ô$Ð$Ð$Ð$s   Á=BÂB#Â&B#c                 óX   — |                       ||                     |¦  «        ¦  «         d S r“   )r.  Úencode)rê   ru   rÂ   r%  s       r/   Úwrite_text_filezFileOperator.write_text_file?  s*   € Ø×Ò˜t T§[¢[°Ñ%:Ô%:Ñ;Ô;Ð;Ð;Ð;r1   c                 ó^  — t           j        dk    s t           j        dk    rˆt           j        dk    rz|D ]y}| j        rt                               d|¦  «         Œ%t          j        |¦  «        j        |z  |z  }t                               d||¦  «         t          j        ||¦  «         Œvd S d S d S )NÚposixÚjavazchanging mode of %szchanging mode of %s to %o)	rt   r\   Ú_namer   r  r  r  Úst_modeÚchmod)rê   ÚbitsÚmaskÚfilesr-  Úmodes         r/   Úset_modezFileOperator.set_modeB  s¸   € ÝŒ7�gÒÐ¥"¤'¨VÒ"3Ð"3½¼ÀGÒ8KÐ8Kð ð &ð &�Ø”<ð &Ý—K’KÐ 5°qÑ9Ô9Ð9Ð9åœG A™JœJÔ.°Ñ5¸Ñ=�DÝ—K’KÐ ;¸QÀÑEÔEÐEÝ”H˜Q Ñ%Ô%Ð%Ð%ð #4Ð"3Ð8KÐ8Kð&ð &r1   c                 ó0   — |                       dd|¦  «        S )Nim  iÿ  )r<  )r.   r-  s     r/   ú<lambda>zFileOperator.<lambda>N  s   €  q§z¢z°%¸ÀÑ'CÔ'C€ r1   c                 óô  — t           j                             |¦  «        }|| j        vrËt           j                             |¦  «        s®| j                             |¦  «         t           j                             |¦  «        \  }}|                      |¦  «         t           	                    d|z  ¦  «         | j
        st          j        |¦  «         | j        r | j                             |¦  «         d S d S d S d S )NzCreating %s)rt   ru   r  r  r  r
  r¡   r  r  r  r   Úmkdirr  r  )rê   ru   r¢   r-  s       r/   r  zFileOperator.ensure_dirP  sá   € ÝŒw�Š˜tÑ$Ô$ˆØ�t”|Ð#Ð#­B¬G¯NªN¸4Ñ,@Ô,@Ð#ØŒL×Ò˜TÑ"Ô"Ð"Ý”7—=’= Ñ&Ô&‰DˆAˆqØ�OŠO˜AÑÔÐÝ�KŠK˜¨Ñ,Ñ-Ô-Ð-Ø”<ð Ý”˜‘”�ØŒ{ð ,ØÔ!×%Ò% dÑ+Ô+Ð+Ð+Ð+ð $Ð#Ð#Ð#ð,ð ,r1   c                 ó²  — t          || ¦  «        }t                               d||¦  «         | j        s�|s|                      ||¦  «        r3|sd }n.|                     |¦  «        sJ ‚|t          |¦  «        d …         }i }|r)t          t          d¦  «        rt          j	        j
        |d<   t          j        |||dfi |¤Ž |                      |¦  «         |S )NzByte-compiling %s to %sÚPycInvalidationModeÚinvalidation_modeT)r   r  r  r   r  rb   rw   r�   Ú
py_compilerB  ÚCHECKED_HASHÚcompiler  )	rê   ru   ÚoptimizeÚforcer‚   Úhashed_invalidationÚdpathÚdiagpathÚcompile_kwargss	            r/   Úbyte_compilezFileOperator.byte_compile\  s  € õ " $¨H¨Ñ5Ô5ˆÝ�ŠÐ-¨t°UÑ;Ô;Ð;ØŒ|ð 	1Øð 2˜Ÿ
š
 4¨Ñ/Ô/ð 2Øð 2Ø#�H�HàŸ?š?¨6Ñ2Ô2Ð2Ð2Ð2Ø#¥C¨¡K¤K L LÔ1�HØˆNØ"ð W¥w­zØ/Dñ(Fô (Fð Wõ ,6Ô+IÔ+Vð Ø'ñ)åÔ˜t U¨H°dð 1ð 1Ø!/ð1ð 1ð 1à×Ò˜uÑ%Ô%Ð%Øˆr1   c                 ó¤  — t           j                             |¦  «        �r+t           j                             |¦  «        r…t           j                             |¦  «        sft
                               d|¦  «         | j        st          j	        |¦  «         | j
        r%|| j        v r| j                             |¦  «         d S d S d S t           j                             |¦  «        rd}nd}t
                               d||¦  «         | j        st          j        |¦  «         | j
        r'|| j        v r | j                             |¦  «         d S d S d S d S )NzRemoving directory tree at %sÚlinkÚfilezRemoving %s %s)rt   ru   r  r&  r  r  Údebugr   r	   rÖ   r  r  rù   r  )rê   ru   r.   s      r/   Úensure_removedzFileOperator.ensure_removedu  sX  € ÝŒ7�>Š>˜$ÑÔñ 	8ÝŒw�}Š}˜TÑ"Ô"ð 8­2¬7¯>ª>¸$Ñ+?Ô+?ð 8Ý—’Ð<¸dÑCÔCÐCØ”|ð (Ý”M $Ñ'Ô'Ð'Ø”;ð 7Ø˜tÔ0Ð0Ð0ØÔ)×0Ò0°Ñ6Ô6Ð6Ð6Ð6ð7ð 7Ø0Ð0õ ”7—>’> $Ñ'Ô'ð Ø�A�Aà�AÝ—’Ð-¨q°$Ñ7Ô7Ð7Ø”|ð $Ý”I˜d‘O”O�OØ”;ð 8Ø˜tÔ1Ð1Ð1ØÔ*×1Ò1°$Ñ7Ô7Ð7Ð7Ð7ð%	8ð 	8ð 8ð 8Ø1Ð1r1   c                 óà   — d}|sit           j                             |¦  «        r t          j        |t           j        ¦  «        }n*t           j                             |¦  «        }||k    rn|}|¯i|S r  )rt   ru   r  ÚaccessÚW_OKr  )rê   ru   r*   Úparents       r/   Úis_writablezFileOperator.is_writableŠ  sp   € ØˆØð 	ÝŒw�~Š~˜dÑ#Ô#ð Ýœ 4­¬Ñ1Ô1�ØÝ”W—_’_ TÑ*Ô*ˆFØ˜Š~ˆ~ØØˆDð ð 	ð ˆr1   c                 ó\   — | j         sJ ‚| j        | j        f}|                      ¦   «          |S )zV
        Commit recorded changes, turn off recording, return
        changes.
        )r  r  r  r  )rê   r*   s     r/   ÚcommitzFileOperator.commit–  s8   € ð
 Œ{ÐÐˆ{ØÔ# TÔ%6Ð6ˆØ×ÒÑÔÐØˆr1   c                 óà  — | j         sÒt          | j        ¦  «        D ]5}t          j                             |¦  «        rt          j        |¦  «         Œ6t          | j        d¬¦  «        }|D ]o}t          j	        |¦  «        }|rC|dgk    sJ ‚t          j         
                    ||d         ¦  «        }t          j        |¦  «         t          j        |¦  «         Œp|                      ¦   «          d S )NT)ÚreverseÚ__pycache__r   )r   Úlistr  rt   ru   r  rù   Úsortedr  Úlistdirr&   Úrmdirr  )rê   r-  Údirsr¢   ÚflistÚsds         r/   ÚrollbackzFileOperator.rollback   så   € ØŒ|ð 	Ý˜$Ô,Ñ-Ô-ð !ð !�Ý”7—>’> !Ñ$Ô$ð !Ý”I˜a‘L”L�Løõ ˜$Ô+°TÐ:Ñ:Ô:ˆDØð ð �Ýœ
 1™œ�Øð !Ø  ] OÒ3Ð3Ð3Ð3ÝœŸš a¨¨q¬Ñ2Ô2�BÝ”H˜R‘L”L�LÝ”˜‘”��Ø×ÒÑÔÐÐÐr1   ©F©Tr“   )FFNF)rï   ró   rô   rë   r  r  r  r   r+  r.  r1  r<  Úset_executable_moder  rM  rR  rW  rY  rd  rD   r1   r/   rþ   rþ   ò  s&  € € € € € ðð ð ð ð
"ð "ð "ð
)ð )ð )ðCð Cð Cð((ð (ð (ð (ð"(ð (ð (ð (ð%ð %ð %ð<ð <ð <ð
&ð 
&ð 
&ð DÐCÐð
,ð 
,ð 
,ð $Ø Ø Ø).ðð ð ð ð28ð 8ð 8ð*
ð 
ð 
ðð ð ðð ð ð ð r1   rþ   c                 ó
  — | t           j        v rt           j        |          }nt          | ¦  «        }|€|}nM|                     d¦  «        }t	          ||                     d¦  «        ¦  «        }|D ]}t	          ||¦  «        }Œ|S )Nú.r   )rŽ   ÚmodulesÚ
__import__r¡   r�   rz   )Úmodule_nameÚdotted_pathÚmodr*   r-   r�   s         r/   Úresolvero  ³  sˆ   € Ø•c”kÐ!Ð!ÝŒk˜+Ô&ˆˆå˜Ñ%Ô%ˆØÐØˆˆà×!Ò! #Ñ&Ô&ˆÝ˜˜eŸiši¨™lœlÑ+Ô+ˆØð 	(ð 	(ˆAÝ˜V QÑ'Ô'ˆFˆFØ€Mr1   c                   óD   — e Zd Zd„ Zed„ ¦   «         Zd„ Zd„ Zej	        Z	dS )ÚExportEntryc                 ó>   — || _         || _        || _        || _        d S r“   ©r\   r‚   r€   rÏ   )rê   r\   r‚   r€   rÏ   s        r/   rë   zExportEntry.__init__Ä  s"   € ØˆŒ	ØˆŒØˆŒØˆŒ
ˆ
ˆ
r1   c                 ó6   — t          | j        | j        ¦  «        S r“   )ro  r‚   r€   r  s    r/   rÈ   zExportEntry.valueÊ  s   € å�t”{ D¤KÑ0Ô0Ð0r1   c           	      óH   — d| j         ›d| j        ›d| j        ›d| j        ›d�	S )Nz<ExportEntry r«   rË   rV   ú>rs  r  s    r/   Ú__repr__zExportEntry.__repr__Î  s2   € € Ø04´	°	°	¸4¼;¸;¸;Ø04´°°¸T¼Z¸Z¸ZðIð 	Ir1   c                 ó¶   — t          |t          ¦  «        sd}n@| j        |j        k    o/| j        |j        k    o| j        |j        k    o| j        |j        k    }|S r  )r•   rq  r\   r‚   r€   rÏ   )rê   Úotherr*   s      r/   Ú__eq__zExportEntry.__eq__Ò  se   € Ý˜%¥Ñ-Ô-ð 	5ØˆFˆFà”i 5¤:Ò-ð 4°$´+ÀÄÒ2Mð 4Øœ+¨¬Ò5ð4àœ*¨¬Ò3ð ð ˆr1   N)
rï   ró   rô   rë   rç   rÈ   rw  rz  rí   Ú__hash__rD   r1   r/   rq  rq  Â  sb   € € € € € ðð ð ð ð1ð 1ñ „_ð1ðIð Ið Iðð ð ð Œ€H€H€Hr1   rq  z·(?P<name>([^\[]\S*))
                      \s*=\s*(?P<callable>(\w+)([:\.]\w+)*)
                      \s*(\[\s*(?P<flags>[\w-]+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])?
                      c                 ó  — t                                | ¦  «        }|sd }d| v sd| v rt          d| z  ¦  «        ‚nÌ|                     ¦   «         }|d         }|d         }|                     d¦  «        }|dk    r|d }}n0|dk    rt          d| z  ¦  «        ‚|                     d¦  «        \  }}|d	         }	|	€d| v sd| v rt          d| z  ¦  «        ‚g }	nd
„ |	                     d¦  «        D ¦   «         }	t          ||||	¦  «        }|S )NrI   rJ   zInvalid specification '%s'r\   ÚcallablerË   r   r   rÏ   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS rD   ©ra   )rY   r-  s     r/   r[   z$get_export_entry.<locals>.<listcomp>ÿ  s    € Ð9Ð9Ð9 1�Q—W’W‘Y”YÐ9Ð9Ð9r1   rK   )ÚENTRY_REÚsearchr   Ú	groupdictÚcountr¡   rq  )
Úspecificationr)   r*   r¢   r\   ru   Úcolonsr‚   r€   rÏ   s
             r/   r¹   r¹   å  sX  € Ý�Š˜Ñ&Ô&€AØð :ØˆØ�-ÐÐ 3¨-Ð#7Ð#7Ý"ð $*Ø,9ñ$:ñ ;ô ;ð ;ð $8ð �KŠK‰MŒMˆØ�ŒyˆØ�Œ}ˆØ—’˜C‘”ˆØ�QŠ;ˆ;Ø! 4�FˆFˆFà˜Š{ˆ{Ý&ð (.Ø0=ñ(>ñ ?ô ?ð ?à!ŸZšZ¨™_œ_‰NˆF�FØ�'”
ˆØˆ=Ø�mÐ#Ð# s¨mÐ';Ð';Ý&ð (.Ø0=ñ(>ñ ?ô ?ð ?àˆEˆEà9Ð9¨¯ª°CÑ(8Ô(8Ð9Ñ9Ô9ˆEÝ˜T 6¨6°5Ñ9Ô9ˆØ€Mr1   c                 óª  — | €d} t           j        dk    r.dt           j        v r t           j                             d¦  «        }nt           j                             d¦  «        }t           j                             |¦  «        r=t          j        |t           j        ¦  «        }|st           
                    d|¦  «         nG	 t          j        |¦  «         d}n/# t          $ r" t           
                    d	|d¬
¦  «         d}Y nw xY w|s.t          j        ¦   «         }t           
                    d|¦  «         t           j                             || ¦  «        S )a¦  
    Return the default base location for distlib caches. If the directory does
    not exist, it is created. Use the suffix provided for the base directory,
    and default to '.distlib' if it isn't provided.

    On Windows, if LOCALAPPDATA is defined in the environment, then it is
    assumed to be a directory, and will be the parent directory of the result.
    On POSIX, and on Windows if LOCALAPPDATA is not defined, the user's home
    directory - using os.expanduser('~') - will be the parent directory of
    the result.

    The result is just the directory '.distlib' in the parent directory as
    determined above, or with the name specified with ``suffix``.
    Nz.distlibÚntÚLOCALAPPDATAz$localappdataú~z(Directory exists but is not writable: %sTzUnable to create %s)Úexc_infoFz#Default location unusable, using %s)rt   r\   Úenvironru   Ú
expandvarsÚ
expanduserr&  rT  rU  r  ÚwarningÚmakedirsÚOSErrorrÔ   rÕ   r&   )r€   r*   Úusables      r/   Úget_cache_baser’    s:  € ð €~ØˆÝ	„w�$‚€˜>­R¬ZÐ7Ð7Ý”×#Ò# OÑ4Ô4ˆˆõ ”×#Ò# CÑ(Ô(ˆõ 
„w‡}‚}�VÑÔð 
Ý”˜6¥2¤7Ñ+Ô+ˆØð 	OÝ�NŠNÐEÀvÑNÔNÐNøð	ÝŒK˜ÑÔÐØˆFˆFøÝð 	ð 	ð 	Ý�NŠNÐ0°&À4ˆNÑHÔHÐHØˆFˆFˆFð	øøøð ð FÝÔ!Ñ#Ô#ˆÝ�ŠÐ<¸fÑEÔEÐEÝŒ7�<Š<˜ Ñ'Ô'Ð's   Â?C Ã)DÄDc                 ó   — t           j                             t           j                             | ¦  «        ¦  «        \  }}|r|                     dd¦  «        }|                     t           j        d¦  «        }||z   dz   S )a  
    Convert an absolute path to a directory name for use in a cache.

    The algorithm used is:

    #. On Windows, any ``':'`` in the drive is replaced with ``'---'``.
    #. Any occurrence of ``os.sep`` is replaced with ``'--'``.
    #. ``'.cache'`` is appended.
    rË   z---z--z.cache)rt   ru   Ú
splitdriver  r#   rv   )ru   r¢   r�   s      r/   Úpath_to_cache_dirr•  -  sj   € õ Œ7×Ò�bœgŸošo¨dÑ3Ô3Ñ4Ô4�D€A€qØð "Ø�IŠI�c˜5Ñ!Ô!ˆØ	�	Š	•"”&˜$ÑÔ€AØˆq‰5�8ÑÐr1   c                 ó:   — |                       d¦  «        s| dz   S | S rr   )Úendswith)r.   s    r/   Úensure_slashr˜  >  s"   € Ø�:Š:�c‰?Œ?ð Ø�3‰wˆØ€Hr1   c                 óÒ   — d x}}d| v r9|                       dd¦  «        \  }} d|vr|}n|                     dd¦  «        \  }}|rt          |¦  «        }|rt          |¦  «        }||| fS )NrL   r   rË   )Úrsplitr¡   r   )rf   ÚusernameÚpasswordr‚   s       r/   Úparse_credentialsr�  D  s�   € ØÐ€HˆxØ
ˆf€}€}ØŸš s¨AÑ.Ô.‰ˆ�Ø�fÐÐØˆHˆHà!'§¢¨c°1Ñ!5Ô!5ÑˆH�hØð %Ý˜8Ñ$Ô$ˆØð %Ý˜8Ñ$Ô$ˆØ�X˜vÐ%Ð%r1   c                  óV   — t          j        d¦  «        } t          j        | ¦  «         | S )Né   )rt   Úumaskr�   s    r/   Úget_process_umaskr¡  S  s$   € ÝŒX�d‰^Œ^€FÝ„HˆVÑÔÐØ€Mr1   c                 ór   — d}d }t          | ¦  «        D ]\  }}t          |t          ¦  «        sd} nŒ|€J ‚|S )NTF)Ú	enumerater•   r   )Úseqr*   rk   r.   s       r/   Úis_string_sequencer¥  Y  sV   € Ø€FØ€AÝ˜#‘”ð ð ‰ˆˆ1Ý˜!�\Ñ*Ô*ð 	ØˆFØˆEð	ð ˆ=ˆ=ˆ=Ø€Mr1   z3([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-([a-z0-9_.+-]+)z-py(\d\.?\d?)c                 óz  — d}d}t          | ¦  «                             dd¦  «        } t                               | ¦  «        }|r1|                     d¦  «        }| d|                     ¦   «         …         } |r{t          | ¦  «        t          |¦  «        dz   k    rXt          j        t          j	        |¦  «        dz   | ¦  «        }|r,| 
                    ¦   «         }| d|…         | |dz   d…         |f}|€Gt                               | ¦  «        }|r+|                     d¦  «        |                     d¦  «        |f}|S )zw
    Extract name, version, python version from a filename (no extension)

    Return name, version, pyver or None
    NrV   ú-r   z\br§   )r   r#   ÚPYTHON_VERSIONr�  rÄ   Ústartrw   Úrer   Úescaper!   ÚPROJECT_NAME_AND_VERSION)ÚfilenameÚproject_namer*   Úpyverr)   Úns         r/   Úsplit_filenamer±  j  s+  € ð €FØ€EÝ�xÑ Ô ×(Ò(¨¨cÑ2Ô2€HÝ×Ò˜hÑ'Ô'€AØð (Ø—’˜‘
”
ˆØ˜J˜QŸWšW™YœY˜JÔ'ˆØð ;�˜H™œ­¨LÑ(9Ô(9¸AÑ(=Ò=Ð=ÝŒH•R”Y˜|Ñ,Ô,¨uÑ4°hÑ?Ô?ˆØð 	;Ø—’‘”ˆAØ˜b˜q˜b”\ 8¨A°©E¨F¨FÔ#3°UÐ:ˆFØ€~Ý$×*Ò*¨8Ñ4Ô4ˆØð 	3Ø—W’W˜Q‘Z”Z §¢¨¡¤¨UÐ2ˆFØ€Mr1   z-(?P<name>[\w .-]+)\s*\(\s*(?P<ver>[^\s)]+)\)$c                 óî   — t                                | ¦  «        }|st          d| z  ¦  «        ‚|                     ¦   «         }|d                              ¦   «                              ¦   «         |d         fS )zÇ
    A utility method used to get name and version from a string.

    From e.g. a Provides-Dist value.

    :param p: A value in a form 'foo (1.0)'
    :return: The name and version as a tuple.
    z$Ill-formed name/version string: '%s'r\   Úver)ÚNAME_VERSION_REr   r   r‚  ra   r˜   )r�   r)   r¢   s      r/   Úparse_name_and_versionrµ  ˆ  sj   € õ 	×Ò˜aÑ Ô €AØð MÝÐGÈ!ÑKÑLÔLÐLØ	�Š‰Œ€AØˆVŒ9�?Š?ÑÔ×"Ò"Ñ$Ô$ a¨¤hÐ.Ð.r1   c                 ó  — t          ¦   «         }t          | pg ¦  «        } t          |pg ¦  «        }d| v r|                      d¦  «         ||z  }| D ]®}|dk    r|                     |¦  «         Œ|                     d¦  «        rE|dd …         }||vrt                               d|z  ¦  «         ||v r|                     |¦  «         Œx||vrt                               d|z  ¦  «         |                     |¦  «         Œ¯|S )NÚ*r§  r   zundeclared extra: %s)rÐ   rù   r
  rb   r  rŽ  )Ú	requestedÚ	availabler*   ÚrÚunwanteds        r/   Ú
get_extrasr¼  ˜  s  € Ý‰UŒU€FÝ�I�O Ñ$Ô$€IÝ�I�O Ñ$Ô$€IØ
ˆiÐÐØ×Ò˜ÑÔÐØ�)ÑˆØð ð ˆØ�Š8ˆ8Ø�JŠJ�q‰MŒMˆMˆMØ�\Š\˜#ÑÔð 		Ø˜˜˜”uˆHØ˜yÐ(Ð(Ý—’Ð5¸Ñ@ÑAÔAÐAØ˜6Ð!Ð!Ø—’˜hÑ'Ô'Ð'øà˜	Ð!Ð!Ý—’Ð5¸Ñ9Ñ:Ô:Ð:Ø�JŠJ�q‰MŒMˆMˆMØ€Mr1   c                 ó¨  — i }	 t          | ¦  «        }|                     ¦   «         }|                     d¦  «        }|                     d¦  «        st                               d|¦  «         n1 t          j        d¦  «        |¦  «        }t          j	        |¦  «        }n3# t          $ r&}t                               d| |¦  «         Y d }~nd }~ww xY w|S )NzContent-Typezapplication/jsonz(Unexpected response for JSON request: %sr¨   z&Failed to get external data for %s: %s)r   r  Úgetrb   r  rQ  r³   r´   r¶   r·   rº   Ú	exception)r_   r*   ÚrespÚheadersÚctÚreaderÚes          r/   Ú_get_external_datarÅ  ´  sá   € Ø€FðKõ �s‰|Œ|ˆØ—)’)‘+”+ˆØ�[Š[˜Ñ(Ô(ˆØ�}Š}Ð/Ñ0Ô0ð 	'Ý�LŠLÐCÀRÑHÔHÐHÐHà.•VÔ% gÑ.Ô.¨tÑ4Ô4ˆFõ ”Y˜vÑ&Ô&ˆFøøÝð Kð Kð KÝ×ÒÐAÀ3ÈÑJÔJÐJÐJÐJÐJÐJÐJøøøøðKøøøà€Ms   „BB Â
CÂ)C
Ã
Cz'https://www.red-dove.com/pypi/projects/c                 óŽ   — | d                               ¦   «         ›d| ›d�}t          t          |¦  «        }t          |¦  «        }|S )Nr   rs   z/project.json©Úupperr   Ú_external_data_base_urlrÅ  )r\   r_   r*   s      r/   Úget_project_datarÊ  Ì  sB   € Ø"& q¤'§-¢-¡/¤/ / /°4°4°4Ð
8€CÝ
Õ)¨3Ñ
/Ô
/€CÝ Ñ$Ô$€FØ€Mr1   c                 ó�   — | d                               ¦   «         ›d| ›d|›d�}t          t          |¦  «        }t          |¦  «        S )Nr   rs   z	/package-z.jsonrÇ  )r\   Úversionr_   s      r/   Úget_package_datarÍ  Ó  sD   € Ø%)¨!¤W§]¢]¡_¤_ _ _°d°d°d¸G¸G¸GÐ
D€CÝ
Õ)¨3Ñ
/Ô
/€CÝ˜cÑ"Ô"Ð"r1   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚCachezæ
    A class implementing a cache for resources that need to live in the file system
    e.g. shared libraries. This class was moved from resources to here because it
    could be used by other modules, e.g. the wheel module.
    c                 ód  — t           j                             |¦  «        st          j        |¦  «         t          j        |¦  «        j        dz  dk    rt                               d|¦  «         t           j                             t           j         	                    |¦  «        ¦  «        | _
        dS )zu
        Initialise an instance.

        :param base: The base directory where the cache should be located.
        é?   r   zDirectory '%s' is not privateN)rt   ru   r&  r�  r  r6  r  rŽ  r  Únormpathr   )rê   r   s     r/   rë   zCache.__init__à  sƒ   € õ Œw�}Š}˜TÑ"Ô"ð 	ÝŒK˜ÑÔÐÝŒG�D‰MŒMÔ! DÑ(¨QÒ.Ð.Ý�NŠNÐ<¸dÑCÔCÐCÝ”G—O’O¥B¤G×$4Ò$4°TÑ$:Ô$:Ñ;Ô;ˆŒ	ˆ	ˆ	r1   c                 ó    — t          |¦  «        S )zN
        Converts a resource prefix to a directory name in the cache.
        )r•  )rê   r‚   s     r/   Úprefix_to_dirzCache.prefix_to_dirî  s   € õ ! Ñ(Ô(Ð(r1   c                 óä  — g }t          j        | j        ¦  «        D ]Ó}t           j                             | j        |¦  «        }	 t           j                             |¦  «        st           j                             |¦  «        rt          j        |¦  «         n3t           j                             |¦  «        rt          j
        |¦  «         Œ¯# t          $ r |                     |¦  «         Y ŒÐw xY w|S )z"
        Clear the cache.
        )rt   r_  r   ru   r&   r  r  rù   r&  r	   rÖ   rº   r$   )rê   Únot_removedÚfns      r/   ÚclearzCache.clearô  sÜ   € ð ˆÝ”*˜TœYÑ'Ô'ð 	'ð 	'ˆBÝ”—’˜dœi¨Ñ,Ô,ˆBð'Ý”7—>’> "Ñ%Ô%ð &­¬¯ª¸Ñ);Ô);ð &Ý”I˜b‘M”M�M�MÝ”W—]’] 2Ñ&Ô&ð &Ý”M "Ñ%Ô%Ð%øøÝð 'ð 'ð 'Ø×"Ò" 2Ñ&Ô&Ð&Ð&Ð&ð'øøøàÐs   ÁBCÃC-Ã,C-N)rï   ró   rô   Ú__doc__rë   rÔ  rØ  rD   r1   r/   rÏ  rÏ  Ù  sK   € € € € € ðð ð<ð <ð <ð)ð )ð )ðð ð ð ð r1   rÏ  c                   ó2   — e Zd ZdZd„ Zd	d„Zd„ Zd„ Zd„ ZdS )
Ú
EventMixinz1
    A very simple publish/subscribe system.
    c                 ó   — i | _         d S r“   )Ú_subscribersr  s    r/   rë   zEventMixin.__init__
  s   € ØˆÔÐÐr1   Tc                 ó²   — | j         }||vrt          |g¦  «        ||<   dS ||         }|r|                     |¦  «         dS |                     |¦  «         dS )a`  
        Add a subscriber for an event.

        :param event: The name of an event.
        :param subscriber: The subscriber to be added (and called when the
                           event is published).
        :param append: Whether to append or prepend the subscriber to an
                       existing subscriber list for the event.
        N)rÝ  r   r$   Ú
appendleft)rê   ÚeventÚ
subscriberr$   ÚsubsÚsqs         r/   r
  zEventMixin.add  so   € ð Ô ˆØ˜ÐÐÝ  Ñ-Ô-ˆD�‰KˆKˆKà�e”ˆBØð *Ø—	’	˜*Ñ%Ô%Ð%Ð%Ð%à—’˜jÑ)Ô)Ð)Ð)Ð)r1   c                 óv   — | j         }||vrt          d|z  ¦  «        ‚||                              |¦  «         dS )z™
        Remove a subscriber for an event.

        :param event: The name of an event.
        :param subscriber: The subscriber to be removed.
        zNo subscribers: %rN)rÝ  r÷   rù   )rê   rà  rá  râ  s       r/   rù   zEventMixin.remove!  sI   € ð Ô ˆØ˜ÐÐÝÐ1°EÑ9Ñ:Ô:Ð:ØˆUŒ×Ò˜:Ñ&Ô&Ð&Ð&Ð&r1   c                 óR   — t          | j                             |d¦  «        ¦  «        S )z�
        Return an iterator for the subscribers for an event.
        :param event: The event to return subscribers for.
        rD   )ÚiterrÝ  r¾  )rê   rà  s     r/   Úget_subscriberszEventMixin.get_subscribers-  s%   € õ
 �DÔ%×)Ò)¨%°Ñ4Ô4Ñ5Ô5Ð5r1   c                 ó  — g }|                       |¦  «        D ]Q}	  ||g|¢R i |¤Ž}n,# t          $ r t                               d¦  «         d}Y nw xY w|                     |¦  «         ŒRt                               d||||¦  «         |S )a^  
        Publish a event and return a list of values returned by its
        subscribers.

        :param event: The event to publish.
        :param args: The positional arguments to pass to the event's
                     subscribers.
        :param kwargs: The keyword arguments to pass to the event's
                       subscribers.
        z"Exception during event publicationNz/publish %s: args = %s, kwargs = %s, result = %s)rç  rº   r  r¿  r$   rQ  )rê   rà  ÚargsÚkwargsr*   rá  rÈ   s          r/   ÚpublishzEventMixin.publish4  sÃ   € ð ˆØ×.Ò.¨uÑ5Ô5ð 	!ð 	!ˆJðØ"˜
 5Ð:¨4Ð:Ð:Ð:°6Ð:Ð:��øÝð ð ð Ý× Ò Ð!EÑFÔFÐFØ���ðøøøð �MŠM˜%Ñ Ô Ð Ð Ý�ŠÐFÈØ˜6 6ñ	+ô 	+ð 	+àˆs   ›(¨&AÁANrf  )	rï   ró   rô   rÙ  rë   r
  rù   rç  rë  rD   r1   r/   rÛ  rÛ    sn   € € € € € ðð ðð ð ð*ð *ð *ð *ð(
'ð 
'ð 
'ð6ð 6ð 6ðð ð ð ð r1   rÛ  c                   óf   — e 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S )Ú	Sequencerc                 óH   — i | _         i | _        t          ¦   «         | _        d S r“   )Ú_predsÚ_succsrÐ   Ú_nodesr  s    r/   rë   zSequencer.__init__Q  s   € ØˆŒØˆŒÝ‘e”eˆŒˆˆr1   c                 ó:   — | j                              |¦  «         d S r“   )rñ  r
  )rê   Únodes     r/   Úadd_nodezSequencer.add_nodeV  s   € ØŒ�Š˜ÑÔÐÐÐr1   Fc                 ó0  — || j         v r| j                              |¦  «         |rît          | j                             |d¦  «        ¦  «        D ]}|                      ||¦  «         Œt          | j                             |d¦  «        ¦  «        D ]}|                      ||¦  «         Œt          | j                             ¦   «         ¦  «        D ]\  }}|s| j        |= Œt          | j                             ¦   «         ¦  «        D ]\  }}|s| j        |= Œd S d S )NrD   )rñ  rù   rÐ   rï  r¾  rð  r]  r¸   )rê   ró  Úedgesr�   r.   rÆ   rS   s          r/   Úremove_nodezSequencer.remove_nodeY  s3  € Ø�4”;ÐÐØŒK×Ò˜tÑ$Ô$Ð$Øð 	'Ý˜œŸš¨¨rÑ2Ô2Ñ3Ô3ð %ð %�Ø—’˜A˜tÑ$Ô$Ð$Ð$Ý˜œŸš¨¨rÑ2Ô2Ñ3Ô3ð %ð %�Ø—’˜D !Ñ$Ô$Ð$Ð$å˜Tœ[×.Ò.Ñ0Ô0Ñ1Ô1ð 'ð '‘��1Øð 'Øœ A˜øÝ˜Tœ[×.Ò.Ñ0Ô0Ñ1Ô1ð 'ð '‘��1Øð 'Øœ A˜øð	'ð 	'ð'ð 'r1   c                 óþ   — ||k    sJ ‚| j                              |t          ¦   «         ¦  «                             |¦  «         | j                             |t          ¦   «         ¦  «                             |¦  «         d S r“   )rï  Ú
setdefaultrÐ   r
  rð  )rê   ÚpredÚsuccs      r/   r
  zSequencer.addi  si   € Ø�tŠ|ˆ|ˆ|ˆ|ØŒ×Ò˜t¥S¡U¤UÑ+Ô+×/Ò/°Ñ5Ô5Ð5ØŒ×Ò˜t¥S¡U¤UÑ+Ô+×/Ò/°Ñ5Ô5Ð5Ð5Ð5r1   c                 ó(  — ||k    sJ ‚	 | j         |         }| j        |         }n # t          $ r t          d|z  ¦  «        ‚w xY w	 |                     |¦  «         |                     |¦  «         d S # t          $ r t          |›d|›�¦  «        ‚w xY w)Nz%r not a successor of anythingz not a successor of )rï  rð  ÚKeyErrorr÷   rù   )rê   rú  rû  ÚpredsÚsuccss        r/   rù   zSequencer.removen  sÊ   € Ø�tŠ|ˆ|ˆ|ˆ|ð	FØ”K Ô%ˆEØ”K Ô%ˆEˆEøÝð 	Fð 	Fð 	FÝÐ=ÀÑDÑEÔEÐEð	Føøøð	HØ�LŠL˜ÑÔÐØ�LŠL˜ÑÔÐÐÐøÝð 	Hð 	Hð 	HÝ¸4¸4¸4ÀÀÐFÑGÔGÐGð	Høøøs   Š% ¥AÁ*A2 Á2Bc                 ó8   — || j         v p|| j        v p|| j        v S r“   )rï  rð  rñ  )rê   Ústeps     r/   Úis_stepzSequencer.is_step{  s.   € Ø˜œÐ#ð ' t¨t¬{Ð':ð 'Ø˜4œ;Ð&ð	(r1   c                 ó  — |                       |¦  «        st          d|z  ¦  «        ‚g }g }t          ¦   «         }|                     |¦  «         |r¦|                     d¦  «        }||v r1||k    r*|                     |¦  «         |                     |¦  «         nZ|                     |¦  «         |                     |¦  «         | j                             |d¦  «        }| 	                    |¦  «         |°¦t          |¦  «        S )NzUnknown: %rr   rD   )r  r÷   rÐ   r$   rz   rù   r
  rï  r¾  ÚextendÚreversed)rê   Úfinalr*   ÚtodoÚseenr  rþ  s          r/   Ú	get_stepszSequencer.get_steps  s   € Ø�|Š|˜EÑ"Ô"ð 	4Ý˜]¨UÑ2Ñ3Ô3Ð3ØˆØˆÝ‰uŒuˆØ�Š�EÑÔÐØð 	#Ø—8’8˜A‘;”;ˆDØ�tˆ|ˆ|ð ˜5’=�=Ø—M’M $Ñ'Ô'Ð'Ø—M’M $Ñ'Ô'Ð'øà—’˜‘”�Ø—’˜dÑ#Ô#Ð#ØœŸš¨¨bÑ1Ô1�Ø—’˜EÑ"Ô"Ð"ð ð 	#õ  ˜ÑÔÐr1   c                 óv   ‡‡‡‡‡‡‡— dgŠg Ši Ši Šg Š| j         Šˆˆˆˆˆˆˆfd„Š‰D ]}|‰vr ‰|¦  «         Œ‰S )Nr   c                 ó<  •— ‰d         ‰| <   ‰d         ‰| <   ‰dxx         dz  cc<   ‰
                      | ¦  «         	 ‰|          }n# t          $ r g }Y nw xY w|D ]T}|‰vr+ ‰|¦  «         t          ‰|          ‰|         ¦  «        ‰| <   Œ1|‰
v rt          ‰|          ‰|         ¦  «        ‰| <   ŒU‰|          ‰|          k    rZg }	 ‰
                     ¦   «         }|                      |¦  «         || k    rnŒ1t	          |¦  «        }‰	                      |¦  «         d S d S ©Nr   r   )r$   rº   Úminrz   Útuple)ró  Ú
successorsÚ	successorÚconnected_componentÚ	componentÚgraphÚindexÚindex_counterÚlowlinksr*   ÚstackÚstrongconnects        €€€€€€€r/   r  z3Sequencer.strong_connections.<locals>.strongconnect£  sy  ø€ à'¨Ô*ˆE�$‰KØ*¨1Ô-ˆH�T‰NØ˜!ÐÐÔ Ñ!ÐÐÑØ�LŠL˜ÑÔÐð Ø" 4œ[�
�
øÝð  ð  ð  Ø�
�
�
ð øøøà'ð Kð K�	Ø HÐ,Ð,à!�M )Ñ,Ô,Ð,Ý%(¨°$¬¸À)Ô9LÑ%MÔ%M�H˜T‘N�NØ %Ð'Ð'õ &)¨°$¬¸¸yÔ9IÑ%JÔ%J�H˜T‘Nøð ˜Œ~  t¤Ò,Ð,Ø&(Ð#ðØ %§	¢	¡¤�IØ'×.Ò.¨yÑ9Ô9Ð9Ø  DÒ(Ð(Øð	õ
 "Ð"5Ñ6Ô6�	à—’˜iÑ(Ô(Ð(Ð(Ð(ð -Ð,s   ¾A ÁAÁA)rð  )	rê   ró  r  r  r  r  r*   r  r  s	     @@@@@@@r/   Ústrong_connectionszSequencer.strong_connections˜  s—   øøøøøøø€ ð ˜ˆØˆØˆØˆØˆà”ˆð!	)ð !	)ð !	)ð !	)ð !	)ð !	)ð !	)ð !	)ð !	)ð !	)ð !	)ðF ð 	$ð 	$ˆDØ˜8Ð#Ð#Ø�˜dÑ#Ô#Ð#øàˆr1   c           	      ó  — dg}| j         D ]0}| j         |         }|D ]}|                     d|›d|›d�¦  «         ŒŒ1| j        D ]}|                     d|z  ¦  «         Œ|                     d¦  «         d                     |¦  «        S )Nzdigraph G {z  z -> rU   z  %s;Ú}ú
)rï  r$   rñ  r&   )rê   r*   rû  rþ  rú  ró  s         r/   ÚdotzSequencer.dotÌ  s¬   € à�ˆØ”Kð 	<ð 	<ˆDØ”K Ô%ˆEØð <ð <�Ø—’�¨t¨t¨t°T°T°TÐ:Ñ;Ô;Ð;Ð;ð<à”Kð 	*ð 	*ˆDØ�MŠM˜' D™.Ñ)Ô)Ð)Ð)Ø�Š�cÑÔÐØ�yŠy˜Ñ Ô Ð r1   Nre  )rï   ró   rô   rë   rô  r÷  r
  rù   r  r	  Úpropertyr  r  rD   r1   r/   rí  rí  O  s¼   € € € € € ðð ð ð
ð ð ð'ð 'ð 'ð 'ð 6ð 6ð 6ð
Hð Hð Hð(ð (ð (ð ð  ð  ð2 ð1ð 1ñ „Xð1ðf ð	!ð 	!ñ „Xð	!ð 	!ð 	!r1   rí  )ú.tar.gzú.tar.bz2ú.tarú.zipú.tgzú.tbzú.whlTc                 óÚ  ‡‡— ˆˆfd„}t           j                             ‰¦  «        Št          ‰¦  «        Šd }|€x|                      d¦  «        rd}n`|                      d¦  «        rd}d}nF|                      d¦  «        rd}d	}n,|                      d
¦  «        rd}d}nt          d| z  ¦  «        ‚	 |dk    r7t          | d¦  «        }|r$|                     ¦   «         }|D ]} ||¦  «         Œn;t          j	        | |¦  «        }|r$| 
                    ¦   «         }|D ]} ||¦  «         Œ|dk    rft          j        d         dk     rP|                     ¦   «         D ];}	t          |	j        t           ¦  «        s|	j                             d¦  «        |	_        Œ<d„ }
|
|_        |                     ‰¦  «         |r|                     ¦   «          d S d S # |r|                     ¦   «          w w xY w)Nc                 óP  •— t          | t          ¦  «        s|                      d¦  «        } t          j                             t          j                             ‰| ¦  «        ¦  «        }|                     ‰¦  «        r|‰         t          j        k    rt          d|z  ¦  «        ‚d S )Nr¨   zpath outside destination: %r)
r•   r   Údecodert   ru   r  r&   rb   rv   r÷   )ru   r�   Údest_dirÚplens     €€r/   Ú
check_pathzunarchive.<locals>.check_pathã  sŠ   ø€ Ý˜$¥	Ñ*Ô*ð 	(Ø—;’;˜wÑ'Ô'ˆDÝŒG�OŠO�BœGŸLšL¨°4Ñ8Ô8Ñ9Ô9ˆØ�|Š|˜HÑ%Ô%ð 	A¨¨4¬µB´FÒ):Ð):ÝÐ;¸aÑ?Ñ@Ô@Ð@ð *;Ð):r1   )r"  r%  Úzip)r  r#  Útgzzr:gz)r   r$  Útbzzr:bz2r!  Útarrº  zUnknown format for %rr   r§   r¨   c                 ó”   — 	 t          j        | |¦  «        S # t           j        $ r!}t          t	          |¦  «        ¦  «        ‚d}~ww xY w)z9Run tarfile.tar_filter, but raise the expected ValueErrorN)ÚtarfileÚ
tar_filterÚFilterErrorr÷   Ústr)Úmemberru   Úexcs      r/   Úextraction_filterz$unarchive.<locals>.extraction_filter  sP   € ð+ÝÔ)¨&°$Ñ7Ô7Ð7øÝÔ&ð +ð +ð +Ý ¥ S¡¤Ñ*Ô*Ð*øøøøð+øøøs   ‚ —A¦AÁA)rt   ru   r  rw   r—  r÷   r   Únamelistr1  r'  ÚgetnamesrŽ   r²   Ú
getmembersr•   r\   r   r(  r7  Ú
extractallr¾   )Úarchive_filenamer)  Úformatr  r+  Úarchiver;  Únamesr\   Útarinfor7  r*  s    `         @r/   Ú	unarchiverA  á  sp  øø€ ðAð Að Að Að Að Aõ Œw�Š˜xÑ(Ô(€HÝˆx‰=Œ=€DØ€GØ€~Ø×$Ò$Ð%5Ñ6Ô6ð 	IØˆFˆFØ×&Ò&Ð':Ñ;Ô;ð 
	IØˆFØˆDˆDØ×&Ò&Ð';Ñ<Ô<ð 	IØˆFØˆDˆDØ×&Ò& vÑ.Ô.ð 	IØˆFØˆDˆDåÐ4Ð7GÑGÑHÔHÐHð'Ø�UŠ?ˆ?ÝÐ.°Ñ4Ô4ˆGØð %Ø×(Ò(Ñ*Ô*�Ø!ð %ð %�DØ�J˜tÑ$Ô$Ð$Ð$øå”lÐ#3°TÑ:Ô:ˆGØð %Ø×(Ò(Ñ*Ô*�Ø!ð %ð %�DØ�J˜tÑ$Ô$Ð$Ð$Ø�UŠ?ˆ?�sÔ/°Ô2°QÒ6Ð6ð
 #×-Ò-Ñ/Ô/ð @ð @�Ý! '¤,µ	Ñ:Ô:ð @Ø#*¤<×#6Ò#6°wÑ#?Ô#?�G”Løð
	+ð 	+ð 	+ð %6ˆÔ!à×Ò˜8Ñ$Ô$Ð$ð ð 	Ø�MŠM‰OŒOˆOˆOˆOð	ð 	øˆ7ð 	Ø�MŠM‰OŒOˆOˆOð	øøøs   Â4DG ÇG*c                 óœ  — t          j        ¦   «         }t          | ¦  «        }t          |d¦  «        5 }t	          j        | ¦  «        D ]k\  }}}|D ]b}t          j                             ||¦  «        }||d…         }	t          j                             |	|¦  «        }
|                     ||
¦  «         ŒcŒl	 ddd¦  «         n# 1 swxY w Y   |S )z*zip a directory tree into a BytesIO objectr#  N)	ÚioÚBytesIOrw   r   rt   Úwalkru   r&   rÑ   )Ú	directoryr*   ÚdlenÚzfrx   ra  r:  r\   ÚfullÚrelr�   s              r/   Úzip_dirrK  %  s  € åŒZ‰\Œ\€FÝˆy‰>Œ>€DÝ	�˜Ñ	Ô	ð % Ý!#¤¨Ñ!3Ô!3ð 	%ð 	%ÑˆD�$˜Øð %ð %�Ý”w—|’| D¨$Ñ/Ô/�Ø˜4˜5˜5”k�Ý”w—|’| C¨Ñ.Ô.�Ø—’˜˜tÑ$Ô$Ð$Ð$ð	%ð	%ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð €Ms   ³BCÃCÃC)r   ÚKÚMÚGÚTÚPc                   ó�   — e 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	d„ ¦   «         Ze	d„ ¦   «         ZdS )ÚProgressÚUNKNOWNr   éd   c                 ón   — |�||k    sJ ‚|x| _         | _        || _        d | _        d| _        d| _        d S )Nr   F)r  ÚcurÚmaxÚstartedÚelapsedÚdone)rê   ÚminvalÚmaxvals      r/   rë   zProgress.__init__=  sE   € Øˆ~ ¨6Ò!1Ð!1Ð!1Ð1Ø$Ð$ˆŒ�4”8ØˆŒØˆŒØˆŒØˆŒ	ˆ	ˆ	r1   c                 óº   — | j         |k    sJ ‚| j        �|| j        k    sJ ‚|| _        t          j        ¦   «         }| j        €	|| _        d S || j        z
  | _        d S r“   )r  rW  rV  ÚtimerX  rY  )rê   ÚcurvalÚnows      r/   ÚupdatezProgress.updateE  sf   € ØŒx˜6Ò!Ð!Ð!Ð!ØŒxÐ 6¨T¬XÒ#5Ð#5Ð#5Ð5ØˆŒÝŒi‰kŒkˆØŒ<ÐØˆDŒLˆLˆLà ¤Ñ-ˆDŒLˆLˆLr1   c                 óP   — |dk    sJ ‚|                       | j        |z   ¦  «         d S )Nr   )ra  rV  )rê   Úincrs     r/   Ú	incrementzProgress.incrementO  s-   € Ø�qŠyˆyˆyˆyØ�Š�D”H˜t‘OÑ$Ô$Ð$Ð$Ð$r1   c                 ó:   — |                       | j        ¦  «         | S r“   )ra  r  r  s    r/   r©  zProgress.startS  s   € Ø�Š�D”HÑÔÐØˆr1   c                 óV   — | j         �|                      | j         ¦  «         d| _        d S ©NT)rW  ra  rZ  r  s    r/   ÚstopzProgress.stopW  s)   € ØŒ8ÐØ�KŠK˜œÑ!Ô!Ð!ØˆŒ	ˆ	ˆ	r1   c                 ó,   — | j         €| j        n| j         S r“   )rW  Úunknownr  s    r/   ÚmaximumzProgress.maximum\  s   € à#œxÐ/ˆtŒ|ˆ|°T´XÐ=r1   c                 ó|   — | j         rd}n1| j        €d}n'd| j        | j        z
  z  | j        | j        z
  z  }d|z  }|S )Nz100 %z ?? %g      Y@z%3d %%)rZ  rW  rV  r  )rê   r*   rS   s      r/   Ú
percentagezProgress.percentage`  sQ   € àŒ9ð 	"ØˆFˆFØŒXÐØˆFˆFà˜œ D¤HÑ,Ñ-°´¸D¼HÑ1DÑEˆAØ ‘\ˆFØˆr1   c                 ó”   — |dk    r| j         �| j        | j        k    rd}n't          j        dt          j        |¦  «        ¦  «        }|S )Nr   z??:??:??z%H:%M:%S)rW  rV  r  r^  ÚstrftimeÚgmtime)rê   Údurationr*   s      r/   Úformat_durationzProgress.format_durationk  sI   € Ø˜ŠMˆM˜tœxÐ/°4´8¸t¼xÒ3GÐ3GØˆFˆFõ ”] :­t¬{¸8Ñ/DÔ/DÑEÔEˆFØˆr1   c                 ó"  — | j         r
d}| j        }ned}| j        €d}nY| j        dk    s| j        | j        k    rd}n;t          | j        | j        z
  ¦  «        }|| j        | j        z
  z  }|dz
  | j        z  }|›d|                      |¦  «        ›�S )NÚDonezETA rö   r   r   z: )rZ  rY  rW  rV  r  Úfloatrr  )rê   r‚   rl   s      r/   ÚETAzProgress.ETAt  s­   € àŒ9ð 	+ØˆFØ”ˆAˆAð ˆFØŒxÐØ��Ø” Ò"Ð" t¤x°4´8Ò';Ð';Ø��õ ˜$œ( T¤XÑ-Ñ.Ô.�Ø�T”X ¤Ñ(Ñ(�Ø˜‘U˜dœlÑ*�Ø!˜6˜6 4×#7Ò#7¸Ñ#:Ô#:Ð#:Ð;Ð;r1   c                 óˆ   — | j         dk    rd}n| j        | j        z
  | j         z  }t          D ]}|dk     r n|dz  }Œd||fz  S )Nr   g        iè  g     @�@z%d %sB/s)rY  rV  r  ÚUNITS)rê   r*   Úunits      r/   ÚspeedzProgress.speed‡  sc   € àŒ<˜1ÒÐØˆFˆFà”h ¤Ñ)¨T¬\Ñ9ˆFÝð 	ð 	ˆDØ˜Š}ˆ}Ø�Ø�fÑˆFˆFØ˜V T˜NÑ*Ð*r1   N)r   rT  )rï   ró   rô   rj  rë   ra  rd  r©  rh  r  rk  rm  rr  rv  rz  rD   r1   r/   rR  rR  :  sä   € € € € € Ø€Gðð ð ð ð.ð .ð .ð%ð %ð %ðð ð ðð ð ð
 ð>ð >ñ „Xð>ð ðð ñ „Xððð ð ð ð<ð <ñ „Xð<ð$ ð	+ð 	+ñ „Xð	+ð 	+ð 	+r1   rR  z\{([^}]*)\}z[^/\\,{]\*\*|\*\*[^/\\,}]z^[^{]*\}|\{[^}]*$c                 óØ   — t                                | ¦  «        rd}t          || z  ¦  «        ‚t                               | ¦  «        rd}t          || z  ¦  «        ‚t	          | ¦  «        S )zAExtended globbing function that supports ** and {opt1,opt2,opt3}.z7invalid glob %r: recursive glob "**" must be used alonez2invalid glob %r: mismatching set marker '{' or '}')Ú_CHECK_RECURSIVE_GLOBr�  r÷   Ú_CHECK_MISMATCH_SETÚ_iglob)Ú	path_globr  s     r/   r   r   �  sj   € å×#Ò# IÑ.Ô.ð *ØKˆÝ˜˜y™Ñ)Ô)Ð)Ý×!Ò! )Ñ,Ô,ð *ØFˆÝ˜˜y™Ñ)Ô)Ð)Ý�)ÑÔÐr1   c              #   óô  K  — t                                | d¦  «        }t          |¦  «        dk    rit          |¦  «        dk    s
J |¦   «         ‚|\  }}}|                     d¦  «        D ].}t          d                     |||f¦  «        ¦  «        D ]}|V — ŒŒ/d S d| vrt          | ¦  «        D ]}|V — Œd S |                      dd¦  «        \  }}|dk    rd}|dk    rd}n*|                     d¦  «        }|                     d	¦  «        }t          j        |¦  «        D ]Y\  }}}	t          j	         
                    |¦  «        }t          t          j	                             ||¦  «        ¦  «        D ]}
|
V — ŒŒZd S )
Nr   r§   rK   r   z**ri  r·  rs   ú\)Ú	RICH_GLOBr¡   rw   r~  r&   Ú	std_iglobr'   rt   rE  ru   rÒ  )r  Úrich_path_globr‚   rÐ   r€   Úitemru   ÚradicalÚdirr:  r×  s              r/   r~  r~  ¨  s¾  è è € Ý—_’_ Y°Ñ2Ô2€NÝ
ˆ>ÑÔ˜QÒÐÝ�>Ñ"Ô" aÒ'Ð'Ð'¨Ñ'Ô'Ð'Ø,Ñˆ��VØ—I’I˜c‘N”Nð 	ð 	ˆDÝ˜rŸwšw¨°°fÐ'=Ñ>Ô>Ñ?Ô?ð ð �Ø�
�
�
�
ðð	ð 	ð �yÐ Ð Ý! )Ñ,Ô,ð ð �Ø�
�
�
�
ðð ð (Ÿošo¨d°AÑ6Ô6‰OˆF�GØ˜Š|ˆ|Ø�Ø˜"Š}ˆ}Ø��ð "Ÿ.š.¨Ñ-Ô-�Ø!Ÿ.š.¨Ñ.Ô.�Ý$&¤G¨F¡O¤Oð ð Ñ ��c˜5Ý”w×'Ò'¨Ñ-Ô-�Ý ¥¤§¢¨d°GÑ!<Ô!<Ñ=Ô=ð ð �BØ�H�H�H�Hððð r1   )ÚHTTPSHandlerÚmatch_hostnameÚCertificateErrorc                   ó   — e Zd ZdZdZd„ ZdS )ÚHTTPSConnectionNTc                 óÌ  — t          j        | j        | j        f| j        ¦  «        }t          | dd¦  «        r|| _        |                      ¦   «          t          j	        t          j
        ¦  «        }t          t          d¦  «        r|xj        t          j        z  c_        t          | dd ¦  «        r |                     | j        | j        ¦  «         i }| j        rLt          j        |_        |                     | j        ¬¦  «         t          t          dd¦  «        r
| j        |d<    |j        |fi |¤Ž| _        | j        r¢| j        r�	 t/          | j                             ¦   «         | j        ¦  «         t2                               d| j        ¦  «         d S # t6          $ r? | j                             t           j        ¦  «         | j                             ¦   «          ‚ w xY wd S d S )	NÚ_tunnel_hostFÚOP_NO_SSLv2Ú	cert_file)ÚcafileÚHAS_SNIÚserver_hostnamezHost verified: %s)rà   Úcreate_connectionÚhostÚportÚtimeoutr�   ÚsockÚ_tunnelÚsslÚ
SSLContextÚPROTOCOL_SSLv23r�   Úoptionsr�  Úload_cert_chainr�  Úkey_fileÚca_certsÚCERT_REQUIREDÚverify_modeÚload_verify_locationsÚwrap_socketÚcheck_domainr‰  Úgetpeercertr  rQ  rŠ  ÚshutdownÚ	SHUT_RDWRr¾   )rê   r˜  Úcontextrê  s       r/   ÚconnectzHTTPSConnection.connectÑ  sÔ  € ÝÔ+¨T¬Y¸¼	Ð,BØ,0¬Lñ:ô :ˆDå�t˜^¨UÑ3Ô3ð Ø �”	Ø—’‘”�å”n¥SÔ%8Ñ9Ô9ˆGÝ•s˜MÑ*Ô*ð 3Ø�”¥3¤?Ñ2�”Ý�t˜[¨$Ñ/Ô/ð GØ×'Ò'¨¬¸¼ÑFÔFÐFØˆFØŒ}ð :Ý&)Ô&7�Ô#Ø×-Ò-°T´]Ð-ÑCÔCÐCÝ�3 	¨5Ñ1Ô1ð :Ø04´	�FÐ,Ñ-à+˜Ô+¨DÐ;Ð;°FÐ;Ð;ˆDŒIØŒ}ð  Ô!2ð ðÝ" 4¤9×#8Ò#8Ñ#:Ô#:¸D¼IÑFÔFÐFÝ—L’LÐ!4°d´iÑ@Ô@Ð@Ð@Ð@øÝ'ð ð ð Ø”I×&Ò&¥vÔ'7Ñ8Ô8Ð8Ø”I—O’OÑ%Ô%Ð%Øðøøøð	ð ð ð s   ÅAF ÆA	G)rï   ró   rô   r   r¥  rª  rD   r1   r/   rŒ  rŒ  Ì  s-   € € € € € ØˆØˆð	ð 	ð 	ð 	ð 	r1   rŒ  c                   ó"   — e Zd Zdd„Zd„ Zd„ ZdS )rˆ  Tc                 óJ   — t          j        | ¦  «         || _        || _        d S r“   )ÚBaseHTTPSHandlerrë   r   r¥  )rê   r   r¥  s      r/   rë   zHTTPSHandler.__init__ð  s(   € ÝÔ% dÑ+Ô+Ð+Ø$ˆDŒMØ ,ˆDÔÐÐr1   c                 ó\   — t          |i |¤Ž}| j        r| j        |_        | j        |_        |S )a  
            This is called to create a connection instance. Normally you'd
            pass a connection class to do_open, but it doesn't actually check for
            a class, and just expects a callable. As long as we behave just as a
            constructor would have, we should be OK. If it ever changes so that
            we *must* pass a class, we'll create an UnsafeHTTPSConnection class
            which just sets check_domain to False in the class definition, and
            choose which one to pass to do_open.
            )rŒ  r   r¥  )rê   ré  rê  r*   s       r/   Ú_conn_makerzHTTPSHandler._conn_makerõ  s9   € õ % dÐ5¨fÐ5Ð5ˆFØŒ}ð 8Ø"&¤-�”Ø&*Ô&7�Ô#ØˆMr1   c                 óº   — 	 |                       | j        |¦  «        S # t          $ r3}dt          |j        ¦  «        v rt          d|j        z  ¦  «        ‚‚ d }~ww xY w)Nzcertificate verify failedz*Unable to verify server certificate for %s)Údo_openr¯  r   r4  ÚreasonrŠ  r•  )rê   rg   rÄ  s      r/   Ú
https_openzHTTPSHandler.https_open  sv   € ðØ—|’| DÔ$4°cÑ:Ô:Ð:øÝð ð ð Ø.µ#°a´h±-´-Ð?Ð?Ý*ð!Ø#&¤8ñ,ñ-ô -ð -ð øøøøðøøøs   ‚ �
A§.AÁANrf  )rï   ró   rô   rë   r¯  r³  rD   r1   r/   rˆ  rˆ  î  sF   € € € € € ð	-ð 	-ð 	-ð 	-ð
	ð 	ð 	ð 		ð 		ð 		ð 		ð 		r1   rˆ  c                   ó   — e Zd Zd„ ZdS )ÚHTTPSOnlyHandlerc                 ó&   — t          d|z  ¦  «        ‚)NzAUnexpected HTTP request on what should be a secure connection: %s)r   )rê   rg   s     r/   Ú	http_openzHTTPSOnlyHandler.http_open  s!   € Ýð!Ø#&ñ'ñ(ô (ð (r1   N)rï   ró   rô   r·  rD   r1   r/   rµ  rµ    s#   € € € € € ð	(ð 	(ð 	(ð 	(ð 	(r1   rµ  c                   ó   — e Zd Zdd„Zd„ ZdS )Ú	Transportr   c                 óT   — || _         t          j                             | |¦  «         d S r“   )r—  r   r¹  rë   ©rê   r—  Úuse_datetimes      r/   rë   zTransport.__init__&  s(   € ØˆŒÝÔ×$Ò$ T¨<Ñ8Ô8Ð8Ð8Ð8r1   c                 óÂ   — |                       |¦  «        \  }}}| j        r|| j        d         k    r"|| _        |t          j        |¦  «        f| _        | j        d         S r  )Úget_host_infoÚ_connectionÚ_extra_headersr   ÚHTTPConnection)rê   r•  ÚhÚehÚx509s        r/   Úmake_connectionzTransport.make_connection*  sf   € Ø×(Ò(¨Ñ.Ô.‰ˆˆ2ˆtØÔð 	? 4¨4Ô+;¸AÔ+>Ò#>Ð#>Ø"$ˆDÔØ#¥WÔ%;¸AÑ%>Ô%>Ð>ˆDÔØÔ Ô"Ð"r1   N©r   ©rï   ró   rô   rë   rÅ  rD   r1   r/   r¹  r¹  $  s7   € € € € € ð9ð 9ð 9ð 9ð#ð #ð #ð #ð #r1   r¹  c                   ó   — e Zd Zdd„Zd„ ZdS )ÚSafeTransportr   c                 óT   — || _         t          j                             | |¦  «         d S r“   )r—  r   rÉ  rë   r»  s      r/   rë   zSafeTransport.__init__6  s(   € Ø"ˆDŒLÝÔ#×,Ò,¨T°<Ñ@Ô@Ð@Ð@Ð@r1   c                 óÜ   — |                       |¦  «        \  }}}|si }| j        |d<   | j        r|| j        d         k    r!|| _        |t	          j        |d fi |¤Žf| _        | j        d         S )Nr—  r   r   )r¾  r—  r¿  rÀ  r   rŒ  )rê   r•  rÂ  rÃ  rê  s        r/   rÅ  zSafeTransport.make_connection:  s•   € Ø ×.Ò.¨tÑ4Ô4‰MˆAˆr�6Øð Ø�Ø $¤ˆF�9ÑØÔ#ð ' t¨tÔ/?ÀÔ/BÒ'BÐ'BØ&(�Ô#Ø#'­Ô)@Ø�tð*'ð *'Ø%ð*'ð *'ð $'�Ô àÔ# AÔ&Ð&r1   NrÆ  rÇ  rD   r1   r/   rÉ  rÉ  4  s;   € € € € € ð	Að 	Að 	Að 	Að		'ð 		'ð 		'ð 		'ð 		'r1   rÉ  c                   ó   — e Zd Zd„ ZdS )ÚServerProxyc                 ó&  — |                      dd ¦  «        x| _        }|�Yt          |¦  «        d         }|                     dd¦  «        }|dk    rt          }nt
          } |||¬¦  «        x|d<   }|| _        t          j        j	        | |fi |¤Ž d S )Nr—  r   r¼  Úhttps)r¼  Ú	transport)
rz   r—  r   r¾  rÉ  r¹  rÐ  r   rÍ  rë   )rê   rj   rê  r—  re   r¼  Útclsrl   s           r/   rë   zServerProxy.__init__H  s§   € Ø!'§¢¨I°tÑ!<Ô!<Ð<ˆŒ�wð Ðå˜c‘]”] 1Ô%ˆFØ!Ÿ:š: n°aÑ8Ô8ˆLØ˜Ò Ð Ý$��å �Ø&* d¨7ÀÐ&NÑ&NÔ&NÐNˆF�;Ñ !ØˆDŒNÝÔÔ& t¨SÐ;Ð;°FÐ;Ð;Ð;Ð;Ð;r1   N)rï   ró   rô   rë   rD   r1   r/   rÍ  rÍ  F  s#   € € € € € ð<ð <ð <ð <ð <r1   rÍ  c                 ój   — t           j        d         dk     r|dz  }n
d|d<   d|d<   t          | |fi |¤ŽS )Nr   r§   Úbr   Únewliner¨   r%  )rŽ   r²   r'  )r×  r;  rê  s      r/   Ú	_csv_openrÕ  _  sN   € Ý
Ô˜Ô˜QÒÐØ�‰ˆˆàˆˆyÑð %ˆˆzÑÝ��DÐ#Ð#˜FÐ#Ð#Ð#r1   c                   ó\   — e Zd Z ed¦  «         ed¦  «         ed¦  «        dœZd„ Zd„ ZdS )ÚCSVBaserK   ú"r  )Ú	delimiterÚ	quotecharÚlineterminatorc                 ó   — | S r“   rD   r  s    r/   Ú	__enter__zCSVBase.__enter__q  ó   € Øˆr1   c                 ó8   — | j                              ¦   «          d S r“   )r°   r¾   )rê   rŠ  s     r/   Ú__exit__zCSVBase.__exit__t  s   € ØŒ×ÒÑÔÐÐÐr1   N)rï   ró   rô   r4  ÚdefaultsrÝ  rà  rD   r1   r/   r×  r×  j  s_   € € € € € à�S˜‘X”XØ�S˜‘X”XØ˜#˜d™)œ)ðð €Hðð ð ðð ð ð ð r1   r×  c                   ó$   — e Zd Zd„ Zd„ Zd„ ZeZdS )Ú	CSVReaderc                 ó  — d|v rC|d         }t           j        d         dk    r t          j        d¦  «        |¦  «        }|| _        nt          |d         d¦  «        | _        t          j        | j        fi | j        ¤Ž| _        d S )Nr°   r   r§   r¨   ru   rº  )	rŽ   r²   r³   r´   r°   rÕ  ÚcsvrÃ  rá  )rê   rê  r°   s      r/   rë   zCSVReader.__init__z  sƒ   € Ø�vÐÐØ˜HÔ%ˆFÝÔ Ô" aÒ'Ð'à2�Ô)¨'Ñ2Ô2°6Ñ:Ô:�Ø ˆDŒKˆKå# F¨6¤N°CÑ8Ô8ˆDŒKÝ”j ¤Ð>Ð>°´Ð>Ð>ˆŒˆˆr1   c                 ó   — | S r“   rD   r  s    r/   Ú__iter__zCSVReader.__iter__…  rÞ  r1   c                 óÞ   — t          | j        ¦  «        }t          j        d         dk     rBt	          |¦  «        D ]2\  }}t          |t          ¦  «        s|                     d¦  «        ||<   Œ3|S ©Nr   r§   r¨   )ÚnextrÃ  rŽ   r²   r£  r•   r   r(  )rê   r*   rk   r…  s       r/   rê  zCSVReader.nextˆ  sl   € Ý�d”kÑ"Ô"ˆÝÔ˜AÔ Ò"Ð"Ý$ VÑ,Ô,ð 5ð 5‘��4Ý! $­	Ñ2Ô2ð 5Ø $§¢¨GÑ 4Ô 4�F˜1‘IøØˆr1   N)rï   ró   rô   rë   rç  rê  Ú__next__rD   r1   r/   rã  rã  x  sB   € € € € € ð	?ð 	?ð 	?ðð ð ðð ð ð €H€H€Hr1   rã  c                   ó   — e Zd Zd„ Zd„ ZdS )Ú	CSVWriterc                 ór   — t          |d¦  «        | _        t          j        | j        fi | j        ¤Ž| _        d S )Nr#  )rÕ  r°   rå  Úwriterrá  )rê   r×  rê  s      r/   rë   zCSVWriter.__init__•  s4   € Ý  CÑ(Ô(ˆŒÝ”j ¤Ð>Ð>°´Ð>Ð>ˆŒˆˆr1   c                 óö   — t           j        d         dk     rHg }|D ]A}t          |t          ¦  «        r|                     d¦  «        }|                     |¦  «         ŒB|}| j                             |¦  «         d S ré  )rŽ   r²   r•   r   r0  r$   rï  Úwriterow)rê   Úrowrº  r…  s       r/   rñ  zCSVWriter.writerow™  s~   € ÝÔ˜AÔ Ò"Ð"ØˆAØð ð �Ý˜d¥IÑ.Ô.ð 0ØŸ;š; wÑ/Ô/�DØ—’˜‘”��ØˆCØŒ×Ò˜SÑ!Ô!Ð!Ð!Ð!r1   N)rï   ró   rô   rë   rñ  rD   r1   r/   rí  rí  “  s2   € € € € € ð?ð ?ð ?ð"ð "ð "ð "ð "r1   rí  c                   ó\   ‡ — e Zd Z eej        ¦  «        Zded<   dˆ fd„	Zd„ Zd„ Zd„ Z	ˆ xZ
S )	ÚConfiguratorÚinc_convertÚincNc                 óŒ   •— t          t          | ¦  «                             |¦  «         |pt          j        ¦   «         | _        d S r“   )Úsuperrô  rë   rt   rÚ   r   )rê   Úconfigr   Ú	__class__s      €r/   rë   zConfigurator.__init__®  s7   ø€ Ý�l˜DÑ!Ô!×*Ò*¨6Ñ2Ô2Ð2ØÐ'�BœI™KœKˆŒ	ˆ	ˆ	r1   c                 óÔ  ‡ ‡‡
— ˆ
ˆ fd„Š
‰                      d¦  «        }t          |¦  «        s‰                      |¦  «        }‰                      dd ¦  «        }‰                      dd¦  «        }|rt          ˆ
fd„|D ¦   «         ¦  «        }ˆˆ
fd„‰D ¦   «         }t	          |¦  «        } ||i |¤Ž}|r4|                     ¦   «         D ]\  }}	t          || ‰
|	¦  «        ¦  «         Œ |S )Nc                 óJ  •— t          | t          t          f¦  «        r% t          | ¦  «        ˆfd„| D ¦   «         ¦  «        }n`t          | t          ¦  «        r6d| v r‰                     | ¦  «        }n1i }| D ]} ‰| |         ¦  «        ||<   Œn‰                     | ¦  «        }|S )Nc                 ó&   •— g | ]} ‰|¦  «        ‘ŒS rD   rD   )rY   rk   Úconverts     €r/   r[   zBConfigurator.configure_custom.<locals>.convert.<locals>.<listcomp>¶  s!   ø€ Ð!8Ð!8Ð!8° ' '¨!¡*¤*Ð!8Ð!8Ð!8r1   ú())r•   r]  r  ÚtypeÚdictÚconfigure_customrþ  )Úor*   rÆ   rþ  rê   s      €€r/   rþ  z.Configurator.configure_custom.<locals>.convert´  s»   ø€ Ý˜!�d¥E˜]Ñ+Ô+ð 
)Ø �˜a™œÐ!8Ð!8Ð!8Ð!8°aÐ!8Ñ!8Ô!8Ñ9Ô9��Ý˜A�tÑ$Ô$ð )Ø˜1�9�9Ø!×2Ò2°1Ñ5Ô5�F�Fà�FØð 2ð 2˜Ø$+ G¨A¨a¬D¡M¤M˜˜q™	˜	ð2ð Ÿš a™œ�ØˆMr1   rÿ  ri  z[]rD   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS rD   rD   )rY   r  rþ  s     €r/   r[   z1Configurator.configure_custom.<locals>.<listcomp>É  s!   ø€ Ð3Ð3Ð3¨˜'˜' !™*œ*Ð3Ð3Ð3r1   c                 óT   •— g | ]$}t          |¦  «        ¯| ‰‰|         ¦  «        f‘Œ%S rD   )r   )rY   rÆ   rù  rþ  s     €€r/   r[   z1Configurator.configure_custom.<locals>.<listcomp>Ê  s7   ø€ ÐKÐKÐK¨Q½KÈ¹N¼NÐK�!�W�W˜V AœYÑ'Ô'Ð(ÐKÐKÐKr1   )rz   r}  ro  r  r  r¸   Úsetattr)rê   rù  rž   Úpropsré  r¸   rê  r*   r°  rS   rþ  s   ``        @r/   r  zConfigurator.configure_custom²  s#  øøø€ ð	ð 	ð 	ð 	ð 	ð 	ð �JŠJ�tÑÔˆÝ˜‰{Œ{ð 	 Ø—’˜Q‘”ˆAØ—
’
˜3 Ñ%Ô%ˆà�zŠz˜$ Ñ#Ô#ˆØð 	5ÝÐ3Ð3Ð3Ð3¨dÐ3Ñ3Ô3Ñ4Ô4ˆDØKÐKÐKÐKÐK°&ÐKÑKÔKˆÝ�e‘”ˆØ��DÐ#˜FÐ#Ð#ˆØð 	/ØŸš™œð /ð /‘��1Ý˜  7 7¨1¡:¤:Ñ.Ô.Ð.Ð.Øˆr1   c                 ó�   — | j         |         }t          |t          ¦  «        r#d|v r|                      |¦  «        x| j         |<   }|S )Nrÿ  )rù  r•   r  r  )rê   r¤   r*   s      r/   Ú__getitem__zConfigurator.__getitem__Ò  sM   € Ø”˜SÔ!ˆÝ�f�dÑ#Ô#ð 	F¨°¨¨Ø(,×(=Ò(=¸fÑ(EÔ(EÐEˆDŒK˜Ñ˜vØˆr1   c                 ó  — t           j                             |¦  «        s%t           j                             | j        |¦  «        }t          j        |dd¬¦  «        5 }t          j        |¦  «        }ddd¦  «         n# 1 swxY w Y   |S )z*Default converter for the inc:// protocol.rº  r¨   r$  N)	rt   ru   Úisabsr&   r   r³   r'  r¶   r·   )rê   rÈ   r-  r*   s       r/   rõ  zConfigurator.inc_convertØ  sª   € åŒw�}Š}˜UÑ#Ô#ð 	3Ý”G—L’L ¤¨EÑ2Ô2ˆEÝŒ[˜ ¨gÐ6Ñ6Ô6ð 	"¸!Ý”Y˜q‘\”\ˆFð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"àˆs   ÁA=Á=BÂBr“   )rï   ró   rô   r  r   Úvalue_convertersrë   r  r	  rõ  Ú__classcell__)rú  s   @r/   rô  rô  ©  sŠ   ø€ € € € € à�tÐ,Ô=Ñ>Ô>ÐØ+Ð�UÑð(ð (ð (ð (ð (ð (ðð ð ð@ð ð ðð ð ð ð ð ð r1   rô  c                   ó&   — e Zd ZdZdd„Zd„ Zd„ ZdS )ÚSubprocessMixinzC
    Mixin for running subprocesses and capturing their output
    FNc                 ó"   — || _         || _        d S r“   )ÚverboseÚprogress)rê   r  r  s      r/   rë   zSubprocessMixin.__init__æ  s   € ØˆŒØ ˆŒˆˆr1   c                 ó~  — | j         }| j        }	 |                     ¦   «         }|sn‚|� |||¦  «         nr|s t          j                             d¦  «         n2t          j                             |                     d¦  «        ¦  «         t          j                             ¦   «          Œ™|                     ¦   «          dS )z¨
        Read lines from a subprocess' output stream and either pass to a progress
        callable (if specified) or write progress information to sys.stderr.
        TNri  r¨   )	r  r  ÚreadlinerŽ   ÚstderrrÑ   r(  Úflushr¾   )rê   r°   r©  r  r  r.   s         r/   rÃ  zSubprocessMixin.readerê  s»   € ð
 ”=ˆØ”,ˆð	#Ø—’Ñ!Ô!ˆAØð ØØÐ#Ø�˜˜GÑ$Ô$Ð$Ð$àð 8Ý”J×$Ò$ SÑ)Ô)Ð)Ð)å”J×$Ò$ Q§X¢X¨gÑ%6Ô%6Ñ7Ô7Ð7Ý”
× Ò Ñ"Ô"Ð"ð	#ð 	�Š‰Œˆˆˆr1   c                 ó0  — t          j        |ft           j        t           j        dœ|¤Ž}t          j        | j        |j        df¬¦  «        }|                     ¦   «          t          j        | j        |j        df¬¦  «        }|                     ¦   «          | 	                    ¦   «          | 
                    ¦   «          | 
                    ¦   «          | j        �|                      dd¦  «         n&| j        rt          j                             d¦  «         |S )N)Ústdoutr  r  )r  ré  r  zdone.Úmainzdone.
)Ú
subprocessÚPopenÚPIPEÚ	threadingÚThreadrÃ  r  r©  r  Úwaitr&   r  r  rŽ   rÑ   )rê   Úcmdrê  r�   Út1Út2s         r/   Úrun_commandzSubprocessMixin.run_commandÿ  s÷   € ÝÔ˜Sð 'Ý$.¤OÝ$.¤Oð'ð 'ð  &ð'ð 'ˆõ Ô T¤[¸¼À(Ð7KÐLÑLÔLˆØ
�Š‰
Œ
ˆ
ÝÔ T¤[¸¼À(Ð7KÐLÑLÔLˆØ
�Š‰
Œ
ˆ
Ø	�Š‰ŒˆØ
�Š‰	Œ	ˆ	Ø
�Š‰	Œ	ˆ	ØŒ=Ð$Ø�MŠM˜' 6Ñ*Ô*Ð*Ð*ØŒ\ð 	(ÝŒJ×Ò˜YÑ'Ô'Ð'Øˆr1   )FN)rï   ró   rô   rÙ  rë   rÃ  r#  rD   r1   r/   r  r  á  sP   € € € € € ðð ð!ð !ð !ð !ðð ð ð*ð ð ð ð r1   r  c                 óR   — t          j        dd| ¦  «                             ¦   «         S )z,Normalize a python package name a la PEP 503z[-_.]+r§  )rª  Úsubr˜   )r\   s    r/   Únormalize_namer&    s$   € õ Œ6�(˜C Ñ&Ô&×,Ò,Ñ.Ô.Ð.r1   c                   ó*   — e Zd ZdZdZdd„Zd„ Zd„ ZdS )Ú
PyPIRCFilezhttps://upload.pypi.org/legacy/ÚpypiNc                 ó    — |€=t           j                             t           j                             d¦  «        d¦  «        }|| _        || _        d S )Nr‰  z.pypirc)rt   ru   r&   r�  r­  r_   )rê   r×  r_   s      r/   rë   zPyPIRCFile.__init__(  s>   € Øˆ:Ý”—’�bœg×0Ò0°Ñ5Ô5°yÑAÔAˆBØˆŒØˆŒˆˆr1   c                 ó®  — i }t           j                             | j        ¦  «        �r­| j        p| j        }t          j        ¦   «         }|                     | j        ¦  «         | 	                    ¦   «         }d|v rë| 
                    dd¦  «        }d„ |                     d¦  «        D ¦   «         }|g k    r	d|v rdg}�n|D ]£}d|i}| 
                    |d¦  «        |d<   d| j        fd	| j        fd
fD ]:\  }}	|                     ||¦  «        r| 
                    ||¦  «        ||<   Œ5|	||<   Œ;|dk    r|| j        dfv r| j        |d<   Œ‰|d         |k    r|d         |k    ri }Œ¤nod|v rkd}|                     |d¦  «        r| 
                    |d¦  «        }n| j        }| 
                    |d¦  «        | 
                    |d¦  «        ||| j        dœ}|S )NÚ	distutilszindex-serversc                 óf   — g | ].}|                      ¦   «         d k    ¯|                      ¦   «         ‘Œ/S )r   r  )rY   Úservers     r/   r[   z#PyPIRCFile.read.<locals>.<listcomp>:  s=   € ð ð ð Ø'-Ø—|’|‘~”~¨Ò+Ð+ð —L’L‘N”NØ+Ð+Ð+r1   r  r)  r.  r›  Ú
repositoryÚrealm)rœ  Nzserver-loginrœ  )r›  rœ  r/  r.  r0  )rt   ru   r  r­  r_   ÚDEFAULT_REPOSITORYr   ÚRawConfigParserrµ   rÁ   r¾  r¡   ÚDEFAULT_REALMÚ
has_option)
rê   r*   r/  rù  rÁ   Úindex_serversÚ_serversr.  r¤   rœ   s
             r/   rµ   zPyPIRCFile.read.  sT  € ØˆåŒ7�>Š>˜$œ-Ñ(Ô(ñ 6	ØœÐ< TÔ%<ˆJå!Ô1Ñ3Ô3ˆFØ�KŠK˜œÑ&Ô&Ð&Ø—’Ñ(Ô(ˆHØ˜hÐ&Ð&à &§
¢
¨;¸Ñ HÔ H�ðð Ø1>×1DÒ1DÀTÑ1JÔ1Jðñ ô �ð ˜r’>�>à Ð)Ð)Ø$* 8˜ùà"*ð (ð (˜Ø"*¨FÐ!3˜Ø-3¯ZªZ¸À
Ñ-KÔ-K˜˜zÑ*ð /;Ø.2Ô.Eð.Gà.5°tÔ7IÐ-JØ-?ð-Að 6ð 6™L˜C ð  &×0Ò0°¸Ñ=Ô=ð 6Ø.4¯jªj¸ÀÑ.EÔ.E  s¡ à.5  s¡ ð
 # fÒ,Ð,°Ø$(Ô$;¸VÐ#Dð2Eð 2Eà37Ô3J˜F <Ñ0Ð0Ø$ XÔ.°*Ò<Ð<Ø"(¨Ô"6¸*Ò"DÐ"DØ%'˜Føð-(ð.   8Ð+Ð+à'�Ø×$Ò$ V¨\Ñ:Ô:ð 9Ø!'§¢¨F°LÑ!AÔ!A�J�Jà!%Ô!8�Jà &§
¢
¨6°:Ñ >Ô >Ø &§
¢
¨6°:Ñ >Ô >Ø",Ø$Ø!Ô/ðð �ð ˆr1   c                 ó�  — t          j        ¦   «         }| j        }|                     |¦  «         |                     d¦  «        s|                     d¦  «         |                     dd|¦  «         |                     dd|¦  «         t          |d¦  «        5 }|                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr)  r›  rœ  r#  )	r   r2  r­  rµ   Úhas_sectionrÍ   rÐ   r'  rÑ   )rê   r›  rœ  rù  r×  r-  s         r/   ra  zPyPIRCFile.updatej  sú   € åÔ-Ñ/Ô/ˆØŒ]ˆØ�Š�B‰ŒˆØ×!Ò! &Ñ)Ô)ð 	'Ø×Ò˜vÑ&Ô&Ð&Ø�
Š
�6˜: xÑ0Ô0Ð0Ø�
Š
�6˜: xÑ0Ô0Ð0Ý�"�c‰]Œ]ð 	˜aØ�LŠL˜‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÂB;Â;B?ÃB?©NN)rï   ró   rô   r1  r3  rë   rµ   ra  rD   r1   r/   r(  r(  #  sR   € € € € € à:ÐØ€Mðð ð ð ð:ð :ð :ðx
ð 
ð 
ð 
ð 
r1   r(  c                 óP   — t          | j        ¬¦  «                             ¦   «         S )zG
    Read the PyPI access configuration as supported by distutils.
    )r_   )r(  r_   rµ   ©r  s    r/   Ú_load_pypircr<  w  s#   € õ ˜%œ)Ð$Ñ$Ô$×)Ò)Ñ+Ô+Ð+r1   c                 ó^   — t          ¦   «                              | j        | j        ¦  «         d S r“   )r(  ra  r›  rœ  r;  s    r/   Ú_store_pypircr>  ~  s&   € Ý�L„L×Ò˜œ¨¬Ñ7Ô7Ð7Ð7Ð7r1   c                  ó$  — t           j        dk    rrdt          j                             ¦   «         v rdS dt          j                             ¦   «         v rdS dt          j                             ¦   «         v rdS t          j        S dt           j        v rt           j        d         S t           j        d	k    st          t           d
¦  «        st          j        S t          j        ¦   «         \  } }}}}|                      ¦   «          	                    dd¦  «        } | 	                    dd¦  «         	                    dd¦  «        }| dd…         dk    r| ›d|›�S | dd…         dk    rQ|d         dk    rDd} dt          |d         ¦  «        dz
  |dd…         fz  }dddœ}|d|t          j                 z  z  }nÕ| dd…         dk    rddlm}  |¦   «         S | dd …         d!k    rMd!} t          j        d"t          j        ¦  «        }|                     |¦  «        }|r|                     ¦   «         }n\| dd …         d#k    rNddl}		 dd$lm}
 n# t,          $ r ddl}
Y nw xY w|	                     |
                     ¦   «         | ||¦  «        \  } }}| ›d|›d|›�S )%aú  Return a string that identifies the current platform.  This is used mainly to
    distinguish platform-specific build directories and platform-specific built
    distributions.  Typically includes the OS name and version and the
    architecture (as supplied by 'os.uname()'), although the exact information
    included depends on the OS; eg. on Linux, the kernel version isn't
    particularly important.

    Examples of returned values:
       linux-i586
       linux-alpha (?)
       solaris-2.6-sun4u

    Windows will return one of:
       win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc)
       win32 (all others - specifically, sys.platform is returned)

    For other non-POSIX platforms, currently just returns 'sys.platform'.

    r‡  Úamd64ú	win-amd64z(arm)ú	win-arm32z(arm64)z	win-arm64Ú_PYTHON_HOST_PLATFORMr3  Úunamers   r   rV   rm   r§  Né   ÚlinuxÚsunosr   Ú5Úsolarisz%d.%sr§   é   Ú32bitÚ64bit)iÿÿÿl   ÿÿÿÿ z.%sÚaix)Úaix_platformé   Úcygwinz[\d.]+Údarwin)Ú	sysconfig)rt   r\   rŽ   rÌ  r˜   Úplatformr‹  r�   rD  r#   ÚintÚmaxsizeÚ_aix_supportrN  rª  rF  ÚASCIIr   rÄ   Ú_osx_supportr,  rR  ÚImportErrorÚget_platform_osxÚget_config_vars)Úosnamer•  ÚreleaserÌ  ÚmachineÚbitnessrN  Úrel_rer)   rX  rR  s              r/   Úget_host_platformra  ˆ  sÜ  € õ( 
„w�$‚€Ø•c”k×'Ò'Ñ)Ô)Ð)Ð)Ø�;Ø•c”k×'Ò'Ñ)Ô)Ð)Ð)Ø�;Ø�œ×)Ò)Ñ+Ô+Ð+Ð+Ø�;ÝŒ|Ðð ¥"¤*Ð,Ð,ÝŒzÐ1Ô2Ð2å	„w�'ÒÐ¥­¨WÑ!5Ô!5Ðõ Œ|Ðõ 13´±
´
Ñ-€VˆT�7˜G Wð �\Š\‰^Œ^×#Ò# C¨Ñ,Ô,€FØ�oŠo˜c 3Ñ'Ô'×/Ò/°°SÑ9Ô9€Gàˆbˆqˆb„z�WÒÐð !˜&˜& ' 'Ð*Ð*à	���Œ�wÒ	Ð	Ø�1Œ:˜ÒÐØˆFØ¥ W¨Q¤Z¡¤°1Ñ!4°g¸a¸b¸b´kÐ BÑBˆGð $+ÀÐIÐIˆGØ�u˜w¥s¤{Ô3Ñ3Ñ3ˆGøà	���Œ�uÒ	Ð	Ø-Ð-Ð-Ð-Ð-Ð-Øˆ|‰~Œ~ÐØ	���Œ�xÒ	Ð	ØˆÝ”˜I¥r¤xÑ0Ô0ˆØ�LŠL˜Ñ!Ô!ˆØð 	 Ø—g’g‘i”iˆGøØ	���Œ�xÒ	Ð	ØÐÐÐð	Ø+Ð+Ð+Ð+Ð+Ð+Ð+øÝð 	ð 	ð 	ØÐÐÐÐÐð	øøøà#/×#@Ò#@Ø×%Ò%Ñ'Ô'¨°¸'ñ$Cô $CÑ ˆ�˜ð  ˜˜   ¨'¨'Ð2Ð2s   È?I ÉIÉIÚwin32rA  rB  )Úx86Úx64Úarmc                  óÄ   — t           j        dk    rt          ¦   «         S t           j                             d¦  «        } | t
          vrt          ¦   «         S t
          |          S )Nr‡  ÚVSCMD_ARG_TGT_ARCH)rt   r\   ra  r‹  r¾  Ú_TARGET_TO_PLAT)Úcross_compilation_targets    r/   Úget_platformrj  ã  sQ   € Ý	„w�$‚€Ý Ñ"Ô"Ð"Ý!œzŸ~š~Ð.BÑCÔCÐØ¥Ð6Ð6Ý Ñ"Ô"Ð"ÝÐ3Ô4Ð4r1   r9  )rÞ   r“   rg  )…r³   Úcollectionsr   Ú
contextlibrå  Úglobr   rƒ  rC  r¶   Úloggingrt   rD  rª  rà   rš  rY  r  rŽ   r1  rÔ   r¿   r  Údummy_threadingr^  r   r   Úcompatr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú	getLoggerrï   r  rF  r   rP   rO   r:   rC   r?   rd   r%   rF   ro   r‰   r‘   r–   rŸ   r¥   rÉ   rÒ   ÚcontextmanagerrØ   rÛ   rå   rí   rç   rü   rþ   ro  rq  ÚVERBOSEr€  r¹   r’  r•  r˜  r�  r¡  r¥  ÚIr¬  r¨  r±  r´  rµ  r¼  rÅ  rÉ  rÊ  rÍ  rÏ  rÛ  rí  ÚARCHIVE_EXTENSIONSrA  rK  rx  rR  r‚  r|  r}  r~  rˆ  r­  r‰  rŠ  rŒ  rµ  r¹  rÉ  rÍ  rÕ  r×  rã  rí  rô  r  r&  r(  r<  r>  ra  rh  rj  rD   r1   r/   ú<module>rv     sÚ	  ðð
 €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø 
€
€
€
Ø #Ð #Ð #Ð #Ð #Ð #Ø 	€	€	€	Ø €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø 	€	€	€	Ø €€€ðØ€J€J€J€JøØð ð ð Ø
€C€C€Cðøøøà Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€Ø €€€ð(ØÐÐÐÐøØð (ð (ð (Ø'Ð'Ð'Ð'Ð'Ð'ð(øøøà €€€à Ð Ð Ð Ð Ð ð(ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð 
ˆÔ	˜8Ñ	$Ô	$€ð ˆRŒZÐ)Ñ*Ô*€
Ø�R”ZÐ 3Ñ4Ô4Ð ØˆRŒZÐ5Ñ6Ô6€
ØˆBŒJÐDÑEÔE€	Ø€R„Z�ÑÔ€Ø€b„j�ÑÔ€ØˆBŒJ�{Ñ#Ô#€	ØˆrŒzÐEÑFÔF€ðX!ð X!ð X!ðvB%ð B%ð B%ðJð ð ð4ð ð ðð ð ð$ð ð ð ð ð ð ð,ð ,ð ,ð^ð ð ð& Ôðð ñ Ôðð Ôðð ñ Ôðð Ôð&ð &ð &ñ Ôð&ðð ð ð ð �fñ ô ð ð  ð  ð  ð6~ð ~ð ~ð ~ð ~�6ñ ~ô ~ð ~ðBð ð ðð ð ð ð �&ñ ô ð ð8 ˆ2Œ:ðð œ:ñ	'ô '€ðð ð ð>&(ð &(ð &(ð &(ðRð ð ð"ð ð ð&ð &ð &ðð ð ðð ð ð &˜2œ:ðØ”tñô Ð ð �”Ð,Ñ-Ô-€ðð ð ð ð4 �"”*ð 9ñ :ô :€ð/ð /ð /ð ð ð ð8ð ð ð* DÐ ðð ð ð#ð #ð #ð)ð )ð )ð )ð )ˆFñ )ô )ð )ðXDð Dð Dð Dð D�ñ Dô Dð DðTG!ð G!ð G!ð G!ð G!�ñ G!ô G!ð G!ð\Ð ðAð Að Að AðHð ð ð$ 	&€ðW+ð W+ð W+ð W+ð W+ˆvñ W+ô W+ð W+ð| ˆBŒJ�~Ñ&Ô&€	Ø"˜œ
Ð#?Ñ@Ô@Ð Ø �b”jÐ!5Ñ6Ô6Ð ðð ð ðð ð ð8 ð Z(ð+ð +ð +ð +ð +ð +ð +ð +ð +ð +ð ð  ð  ð  ð  ˜'Ô1ñ  ô  ð  ðD ð  ð  ð  ð  Ð'ñ  ô  ð  ðV(ð (ð (ð (ð (˜<¨ñ (ô (ð (ð#ð #ð #ð #ð #�	Ô#ñ #ô #ð #ð ð 'ð'ð 'ð 'ð 'ð '˜	Ô/ñ 'ô 'ð 'ð$<ð <ð <ð <ð <�)Ô'ñ <ô <ð <ð2$ð $ð $ðð ð ð ð ˆfñ ô ð ðð ð ð ð �ñ ô ð ð6"ð "ð "ð "ð "�ñ "ô "ð "ð,5ð 5ð 5ð 5ð 5Ð#ñ 5ô 5ð 5ðp.ð .ð .ð .ð .�fñ .ô .ð .ðb/ð /ð /ð"Qð Qð Qð Qð Q�ñ Qô Qð Qðh,ð ,ð ,ð8ð 8ð 8ðQ3ð Q3ð Q3ðj ØØðð €ð5ð 5ð 5ð 5ð 5s!   ¶; »AÁAÁA" Á"	A.Á-A.