Your IP : 3.135.221.122
3
�Qgn��@s>dZdZddlZddlZddlZddlZddlZddlZy
ejZ Wn(e
k
rjejd�krbdZ ndZ YnXd Zd
ddddd
ddddd�
Z
ejd�Zdd�Zejdej�Zejdddfdd�Zdd�Zejdej�Zejdej�Zejdej�Zd�Zd.d/�Zddded0fd1d2�Zd3d4�Zdddefd5d6�Zd�d8d9�Zd�d:d;�Zejd<�Z d�d=d>�Z!d�d@d�dAd�dCd�dDd�dFd�dGd�dHd�dJd�dKd�dLd�dMiZ"d�dCd�dNd�dOd�dPd�dQd�dRiZ#d�dSdT�Z$dUdV�Z%d�dWdX�Z&dYdZ�Z'd�d[d\�Z(d]d^�Z)d_d`�Z*d�dadb�Z+dcdd�Z,d�dedf�Z-d�dgdh�Z.d�d�d�dl�Z/ejddfdmdn�Z0ej1dodp�Z2da3dqdr�Z4dsdt�Z5dudv�Z6dwdx�Z7dydz�Z8d{d|�Z9d}d~�Z:ejdej�Z;ejd�ej�Z<ejd��Z=ejd��Z>iZ?d�d�d��Z@d�d��ZAd�d��ZBd�d��ZCd�d��ZDd�d��ZEd�d��ZFd�d��ZGiZHd�d�d��ZeId�k�r:d�ejJk�p
d�ejJkZKd�ejJk�o d�ejJkZLeMeeLeK��ejNd�dS)�a
Copyright (c) 1999-2000, Marc-Andre Lemburg; mailto:mal@lemburg.com
Copyright (c) 2000-2010, eGenix.com Software GmbH; mailto:info@egenix.com
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee or royalty is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation or portions thereof, including modifications,
that you make.
EGENIX.COM SOFTWARE GMBH DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE !
z1.0.8�N�dos�win32�win16ZNULz /dev/nullz/etc�
���(�2��)
ZdevZalpha�aZbeta�b�cZRC�rc�pl�pz([0-9]+|[._+-])cCsfg}x\tj|�D]N}|dkryt|d�}d}Wn tk
rNtj|d�}YnX|j||f�qW|S)Nz._+-r�dr)�
_component_re�split�int�
ValueError�_ver_stages�get�extend)�version�result�v�t�r� /usr/lib64/python3.6/platform.py�_comparable_version�s
rsC(__libc_init)|(GLIBC_([0-9.]+))|(libc(_\w+)?\.so(?:\.(\d[0-9.]*))?)�i@c
Cs�t}ttjd�rtjj|�}t|d���`}|j|�}d}�xH|t|�k�r�d|ksZd|krhtj ||�}nd}|s�|j
�t|�kr�|j|�} | r�|t|t|�d�d�| }d}q<|s�Pdd�|j�D�\}
}}}
}}|
r�|r�d }n�|�r|d
k�rd
}|}n||�||�k�rx|}n^|
�rx|d
k�rxd }|�rR|�sN||�||�k�rR|}|�rx|t|�d�|k�rx||}|j
�}q<WWdQRX||fS)N�realpath�rbrslibcsGLIBCi�cSs"g|]}|dk r|jd�n|�qS)N�latin1)�decode)�.0�srrr�
<listcomp>�szlibc_ver.<locals>.<listcomp>Zlibc�glibc)
r�hasattr�os�pathr!�open�read�len�_libc_search�search�end�max�groups)�
executable�librZ chunksize�V�fZbinary�pos�m�chunkZlibcinitr(ZglibcversionZsoZthreadsZ soversionrrr�libc_ver�sJ
r;cCsptjjd�r�d}td��`}xX|D]P}|j�}t|�dkr |\}}nq |dkrV|j�}q |dkr |jd�}|d}q WWdQRX|||fStjjd�r�td��D}x<|D]4}|jd�} t| �dkr�| dd kr�d | d
|fSq�WWdQRXtjjd��rftjd�}
x:t t|
�d
dd�D]"}|
|dd�d
k�r|
|=�qW|
�rf|
j
�d}|
ddd�}|||fS|||fS)Nz/var/adm/inst-log/info�SuSE�ZMIN_DIST_VERSIONZ
DIST_IDENT�-z/etc/.installedrZ OpenLinux�z/usr/lib/setup�zslack-version-� slackware���rBrB)r*r+�existsr,rr.�strip�isdir�listdir�range�sort)�distnamer�idr7�lineZtv�tag�value�valuesZpkgZverfiles�nrrr�_dist_try_harder�s>
rPz(\w+)[-_](release|version)z'(.+) release ([\d.]+)[^(]*(?:\((.+)\))?z1([^0-9]+)(?: release )?([\d.]+)[^(]*(?:\((.+)\))?r<�debian�fedora�redhat�centos� almalinux�mandrake�mandriva�rocksrA� yellowdog�gentoo�UnitedLinux�
turbolinux�arch�mageiacCszd}d}tj|�}|dk r&t|j��Stj|�}|dk rDt|j��S|j�j�}|rp|d}t|�dkrp|d}d||fS)Nr rr?)�_lsb_release_version�match�tupler3�_release_versionrDrr.)� firstlinerrJr9�lrrr�_parse_release_file0s
rer?cCs(ddl}|jdtdd�t|||||�S)NrzFdist() and linux_distribution() functions are deprecated in Python 3.5r=)�
stacklevel)�warnings�warn�PendingDeprecationWarning�_linux_distribution)rIrrJ�supported_dists�full_distribution_namergrrr�linux_distributionKs
rmcCs�ytjt�}Wntk
r(|||fSX|j�xD|D]0}tj|�}|dk r8|j�\}} ||kr8|}Pq8Wt|||�St tj
jt|�dddd��}
|
j�}WdQRXt
|�\}}}
|r�|r�|}|r�|}|
r�|
}|||fS)N�rzutf-8�surrogateescape)�encoding�errors)r*rF�_UNIXCONFDIR�OSErrorrH�_release_filenamer`r3rPr,r+�join�readlinere)rIrrJrkrlZetc�filer9Z _distnameZdummyr7rcZ_versionZ_idrrrrjUs0
rjcCs*ddl}|jdtdd�t||||dd�S)NrzFdist() and linux_distribution() functions are deprecated in Python 3.5r=)rf)rkrl)rgrhrirj)rIrrJrkrgrrr�dist�s
rxrncCs&ddl}|jdtdd�tj|||�S)Nrzuse os.popen insteadr=)rf)rgrh�DeprecationWarningr*�popen)�cmd�mode�bufsizergrrrrz�srzcCsd|jd�}|r|j|�ytt|�}Wntk
r>|}YnXttt|��}dj|dd��}|S)N�.�)r�append�maprr�list�strru)r�buildrdZintsZstringsrrr�
_norm_version�s
r�z'(?:([\w ]+) ([\w.]+) .*\[.* ([\d.]+)\])c Cs�tj|kr|||fSxddD]R}y&tj|�}|j�}|j�rBtd��Wn$tk
rh}zwWYdd}~XqXPqW|||fS|j�}tj |�}|dk r�|j
�\}}}|ddkr�|dd �}|d
dkr�|dd�}t|�}|||fS)N�ver�command /c ver�
cmd /c verzcommand failedr?r~)r�r�r�rBrBrBrB)�sys�platformr*rzr-�closersrD�_ver_outputr`r3r�) �system�releaserZsupported_platformsr{�pipe�infoZwhyr9rrr�_syscmd_ver�s,
r��Z2000ZXPr=Z
2003ServerZpost2003��Vista�7�8rz8.1zpost8.1Z10Zpost10Z
2008ServerZ2008ServerR2Z
2012ServerZ2012ServerR2Zpost2012ServerR2c(Cs�yddlm}Wntk
r,||||fSXyddlm}m}m}m}Wn,tk
rvddlm}m}m}m}YnX|�} | j p�| dd�\}
}}dj
|
||�}tj|
|f�p�tj|
df�p�|}| dd�|
|fk�r$ydj
| j
�}Wn8tk
�r"|dd�d k�rd
|dd�}YnXt| dd�dk�rZtj|
|f��pXtj|
df��pX|}d}
z.y||d�}
||
d
�d}WnYnXWd|
�r�||
�X||||fS)Nr)�getwindowsversion)� OpenKeyEx�QueryValueEx�CloseKey�HKEY_LOCAL_MACHINErz{0}.{1}.{2}r=zSP{}�
z
Service Pack ZSPZproduct_typez,SOFTWARE\Microsoft\Windows NT\CurrentVersionZCurrentType)r�r��ImportError�winregr�r�r�r��_winregZplatform_version�format�_WIN32_CLIENT_RELEASESrZservice_pack_major�AttributeError�getattr�_WIN32_SERVER_RELEASES)r�r�csd�ptyper�r�r�r�r�ZwinverZmaj�minr��keyrrr� win32_versD
r�cCs�d}tjj|�sdSyddl}Wntk
r4dSXt|d��}|j|�}WdQRX|d}d }tj�j}|d
krxd}|||fS)Nz0/System/Library/CoreServices/SystemVersion.plistrr"ZProductVersionr �ppc�Power MacintoshZPowerPC)r r r )r�r�) r*r+rC�plistlibr�r,�load�uname�machine)�fnr�r7rr��versioninfor�rrr�_mac_ver_xmlEs
r�cCst�}|dk r|S|||fS)N)r�)r�r�r�r�rrr�mac_ver[sr�cCs@ddlm}y|j|�}|dkr$|S|Stk
r:|SXdS)Nr)�System)� java.langr�ZgetPropertyr�)�name�defaultr�rMrrr�
_java_getpropns
r�cCs�yddl}Wntk
r(||||fSXtd|�}td|�}|\}}}td|�}td|�}td|�}|||f}|\}} }
td|
�}
td|�}td | �} || |
f}||||fS)
Nrzjava.vendorzjava.versionzjava.vm.namezjava.vm.vendorzjava.vm.versionzjava.os.archzjava.os.namezjava.os.version)r�r�r�)r��vendor�vminfo�osinfo�javaZvm_nameZ
vm_releaseZ vm_vendor�os_name�
os_version�os_archrrr�java_verys"
r�cCs�|dkrd|||fS|dkr�|dkr0|||fS|jd�}|r�yt|d�}Wntk
rbYn X|d}t|�|d<dj|�}|dkr�d }q�d }n,|d
kr�d}|r�|d}q�d
}n|dkr�d}|||fS)NZRhapsodyzMacOS X ServerZSunOS�5r~rr�6ZSolarisZIRIX64ZIRIXz (64bit)�64bitrr�Windows)rr)rrrr�ru)r�r�rrd�majorrrr�system_alias�s2
r�cGs�djdd�tt|�D��}|jdd�}|jdd�}|jdd�}|jdd�}|jd d�}|jd
d�}|jdd�}|jdd�}|jd
d�}x|jdd�}||kr�P|}q�Wx|ddkr�|dd�}q�W|S)Nr>css|]}|j�VqdS)N)rD)r%�xrrr� <genexpr>�sz_platform.<locals>.<genexpr>� �_�/�\�:�;�"�(�)�unknownr z--r?rBrB)ru�filterr.�replace)�argsr�Zcleanedrrr� _platform�s$r�cCsDyddl}Wntk
r |SXy|j�Stk
r>|SXdS)Nr)�socketr�Zgethostnamers)r�r�rrr�_node�sr�cCsFtjj|�}x4tjj|�r@tjjtjjtjj|�tj|���}qW|S)N)r*r+�abspath�islink�normpathru�dirname�readlink)�filepathrrr�_follow_symlinkss
"r�cCshtjdkr|Sytjd|tf�}Wnttfk
r<|SX|j�j�}|j �}|s\|r`|S|SdS)Nrrrzuname %s 2> %s)rrr)
r�r�r*rz�DEV_NULLr�rsr-rDr�)Zoptionr�r7�outputrrrr�
_syscmd_unames
r�cCs|tjdkr|St|�}ytjd|gtjtjd�}Wnttfk
rJ|SX|j �dj
d�}|j�}|sp|rt|S|SdS) Nrrrrw)�stdout�stderrrzlatin-1)rrr)r�r�r��
subprocess�Popen�PIPEZSTDOUTr�rsZcommunicater$�wait)�targetr��procr�rrrr�_syscmd_files
r�� WindowsPEr��MSDOS)rrrcCs.|sLddl}y|jd�}Wn |jk
r:|jd�}YnXt|d�d}|r\t|d�}nd}|r�|tjkr�tjtkr�ttj\}}|r�|}|r�|}||fSd|kr�||fSd|kr�d }nd
|kr�d}nd|kr�d
}d|kr�d}n@d|k�rd|k�rd}nd}n d|k�rd}nd|k�r&d}n||fS)Nr�Prd��bitr r4z32-bit�32bitZN32Zn32bitz64-bitr�ZELFZPEr�r�ZCOFFzMS-DOSr�) �structZcalcsize�errorr�r�r�r4r��_default_architecture)r4�bits�linkager��sizeZfileoutrrdrrr�architectureBsL
r��uname_resultz-system node release version machine processorcCs�d}tdk rtSd}ytj�\}}}}}Wntk
rBd}YnX|sdttd|||||f���r�|r�tj}d}d}t�}d}d}|dkr�t �\}}}} |r�|r�d}|s�dtj
kr�tj
jdd�}ntj
jdd�}|s�tj
jd|�}|�r<t|�\}}}|dk�rd }n4|d
k�r<|d k�r<d }d|dd�k�r8d
}nd}|dk�rf|�s`|dk�r\d}nd}d }n8|dd�dk�r�t
�\}}
}}d}dj|�}|�s�|
}|dk�r
|�s�|dk�r�|}d}yddl}
Wntk
�r�Yn&X|
jdd�\}}|dk�rd}nd}|�stdd�}|dk�r(d}|dk�r6d}|dk�rDd}|dk�rRd}|dk�r`d}|dk�rnd}|d
k�r�|d k�r�d }d
}t||||||�atS)Nrr r?rZPROCESSOR_ARCHITEW6432ZPROCESSOR_ARCHITECTUREZPROCESSOR_IDENTIFIERzMicrosoft Windowsr�Z Microsoftz6.0rr�rr�Z16bit�r��Javaz, ZOpenVMS�0zSYI$_CPU�ZAlphaZVAXz-pr�)rr)�_uname_cacher*r�r�r�r�r�r�r�r��environrr�r�ru�vms_libr�Zgetsyir�r�)Zno_os_uname� processorr��noder�rr�Zuse_syscmd_verr�r�r�r�r�rZcsidZ
cpu_numberrrrr��s�
r�cCst�jS)N)r�r�rrrrr�%sr�cCst�jS)N)r�rrrrrr.srcCst�jS)N)r�r�rrrrr�8sr�cCst�jS)N)r�rrrrrrAsrcCst�jS)N)r�r�rrrrr�Jsr�cCst�jS)N)r�rrrrrrSs
rzL([\w.+]+)\s*\(#?([^,]+)(?:,\s*([\w ]*)(?:,\s*([\w :]*))?)?\)\s*\[([^\]]+)\]?z;IronPython\s*([\d\.]+)(?: \(([\d\.]+)\))? on (.NET [\d\.]+)zU([\d.]+)\s*\(IronPython\s*[\d.]+\s*\(([\d.]+)\) on ([\w.]+ [\d.]+(?: \(\d+-bit\))?)\)zE([\w.+]+)\s*\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*\[PyPy [^\]]+\]?cCs|dkrtj}tj|d�}|dk r&|Sd|kr�d}|jd�rHtj|�}n
tj|�}|dkrjtdt |���|j
�\}}}d}d}n�tjjd�r�d}tj|�}|dkr�tdt |���|j
�\}}}} }
|dkr�d}tj}n�d|k�r"d}t
j|�}|dk�rtdt |���|j
�\}}}} d}n\tj|�}|dk�rFtd t |���|j
�\}}}} }d
}|dk�rld}n| �r~|d| }ttd��r�tj\}
}}n<ttd
��r�tj\}
}}n"ttd��r�tj\}
}}nd}d}|jd�}
t|
�dk�r|
jd�dj|
�}|||||||f}|t|<|S)NZ
IronPythonz*failed to parse IronPython sys.version: %sr r�ZJythonz&failed to parse Jython sys.version: %sZPyPyz$failed to parse PyPy sys.version: %sz'failed to parse CPython sys.version: %sZCPythonr��_git�
_mercurial�
subversionr~r=r�)r�r�_sys_version_cacher�
startswith�_ironpython_sys_version_parserr`� _ironpython26_sys_version_parserr�reprr3r��_sys_version_parser�_pypy_sys_version_parserr)rrrrr.r�ru)�sys_versionrr�r`rZalt_versionZcompilerZbuildnoZ builddateZ buildtimer�ZbranchZrevisionrdrrr�_sys_version}s|
rcCs
t�dS)Nr)rrrrr�python_implementation�srcCs
t�dS)Nr?)rrrrr�python_version�srcCstt�djd��S)Nr?r~)rarrrrrr�python_version_tuple�s rcCs
t�dS)Nr=)rrrrr�
python_branch
srcCs
t�dS)Nr)rrrrr�python_revisionsrcCst�dd�S)Nr�r�)rrrrr�python_build%srcCs
t�dS)Nr�)rrrrr�python_compiler-srcCs�tj||fd�}|dk r|St�\}}}}}}||kr:d}|rPt|||�\}}}|dkr�t|�\} }
}}|rxt||�}
nt||||�}
�n.|d
k�rtj��"tjddt �t
d�\}}}WdQRX|r�|r�t||||d|||�}
n$ttj
�\}}t||||d||�}
n�|dk�r\t�\}}}\}}}|�s8|�rFt|||�}
nt|||d|||�}
n\|d k�r�|�rxt||�}
nt|||�}
n2|�r�t||�}
n ttj
�\}}t||||||�}
|
t||f<|
S)Nr r��Linux�ignorez?dist\(\) and linux_distribution\(\) functions are deprecated .*�withr�ZonZMacOS)r)�_platform_cacherr�r�r�r�rg�catch_warnings�filterwarningsrirxr;r�r4r�r�)�aliased�terserr�rr�rr�rZrelZversr�r�r�rIZdistversionZdistidZlibcnameZlibcversionrnrr�r�r�r�r�r�rrrr�9s\
r��__main__rz--terseZ
nonaliasedz--nonaliased)rrr)r<rQrRrSrTrUrVrWrXrArYrZr[r\r]r^rB)rnrB)r �rrr)r r r r)r�r)r�r?)r�r=)r�N)r�r)r�r?)r�r=)r�r)r�N)rr)rN)r�r=)r�r)r�r?)r�r=)r�r)r�N)r r r r �r r r )r r r �r r r �r r r )r r r!r")r )r )r )r r�)r r�)r r�)N)rr)OZ
__copyright__�__version__�collectionsr�r*�rer�rg�devnullr�r�r�rrr�compilerr�ASCIIr/r4r;rPrtr_rbZ_supported_distsrermrjrxrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
namedtupler�r�r�r�rr�rr�rrrr rrrrrrrrrrr�__name__�argvrr�print�exitrrrr�<module>os�
:26
0
0
#6
T
k
[
?>