<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]7                 @   s  d  Z  d 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 y e j Z	 Wn0 e
 k
 r e j d k r d Z	 n d Z	 Yn Xd	 Z e j d
 e j  Z e j d d d d d  Z d d   Z e j d e j  Z e j d e j  Z e j d e j  Z d Z d# d$   Z d d d e d% d& d'  Z d( d)   Z d d d e d* d+  Z d, d d- d.  Z d d/ d0  Z e j d1  Z d d d d d2 d3  Z d d5 d d6 d d8 d d9 d d; d d< d d= d d? d d@ d dB d dC i Z d d8 d dD d dE d dF d dG d dH i Z  d d d d dI dJ  Z! dK dL   Z" d d d dM dN  Z# dO dP   Z$ d d d d dQ dR  Z% dS dT   Z& dU dV   Z' d dW dX  Z( dY dZ   Z) d d[ d\  Z* d d] d^  Z+ d d d d d d i Z, e j d d db dc  Z- e j. dd de  Z/ d a0 df dg   Z1 dh di   Z2 dj dk   Z3 dl dm   Z4 dn do   Z5 dp dq   Z6 dr ds   Z7 e j dt e j  Z8 e j du e j  Z9 e j dv  Z: e j dw  Z; i  Z< d dx dy  Z= dz d{   Z> d| d}   Z? d~ d   Z@ d d   ZA d d   ZB d d   ZC d d   ZD i  ZE d d d d  Z eF d k rd e jG k pZd e jG k ZH d e jG k oxd e jG k ZI eJ e eI eH   e jK d  d S)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 !

z1.0.7    Ndoswin32win16ZNULz	/dev/nullz/etcsC   (__libc_init)|(GLIBC_([0-9.]+))|(libc(_\w+)?\.so(?:\.(\d[0-9.]*))?) i @  c             C   s  t  t j d  r$ t j j |   }  t |  d  [} | j |  } d } x<d | k sf d | k r{ t j | |  } n d  } | s | j |  } | s Pd } qN d d   | j   D \ } }	 }
 } } } | r | r d } n |	 r| d	 k rd	 } |
 } qz|
 | k rz|
 } n] | rz| d	 k rzd } | rM| | k rM| } | rz| t	 |  d   | k rz| | } | j
   } qN WWd  QRX| | f S)
Nrealpathrbr   s   libcs   GLIBCc             S   s1   g  |  ]' } | d  k	 r' | j  d  n |  q S)Nlatin1)decode).0s r   -/opt/alt/python35/lib64/python3.5/platform.py
<listcomp>   s   	zlibc_ver.<locals>.<listcomp>Zlibcglibc)hasattrospathr   openread_libc_searchsearchgroupslenend)
executablelibversion	chunksizefbinaryposmZlibcinitr   ZglibcversionZsothreadsZ	soversionr   r   r   libc_ver   sD    	"			#
r#   c             C   s  t  j j d  r d }  x t d  D]v } | j   } t |  d k r% | \ } } n q% | d k rv | j   } q% | d k r% | j d  } | d } q% W|  | | f St  j j d  rxV t d  D]H } | j d  } t |  d k r | d d	 k r d	 | d
 | f Sq Wt  j j d  rt  j d  }	 xE t	 t |	  d
 d d  D]' }
 |	 |
 d  d  d k rU|	 |
 =qUW|	 r|	 j
   d }  |	 d d d   } |  | | f S|  | | f S)Nz/var/adm/inst-log/infoSuSE   ZMIN_DIST_VERSIONZ
DIST_IDENT-z/etc/.installedr   Z	OpenLinux   z/usr/lib/setup   zslack-version-	slackwarer*   r*   )r   r   existsr   splitr   stripisdirlistdirrangesort)distnamer   idlineZtvtagvaluevaluesZpkgZverfilesnr   r   r   _dist_try_harder   s:    	"#
r9   z(\w+)[-_](release|version)z'(.+) release ([\d.]+)[^(]*(?:\((.+)\))?z1([^0-9]+)(?: release )?([\d.]+)[^(]*(?:\((.+)\))?r$   debianfedoraredhatcentosmandrakemandrivarocksr)   	yellowdoggentooUnitedLinux
turbolinuxarchmageiac             C   s   d } d } t  j |   } | d  k	 r7 t | j    St j |   } | d  k	 rb t | j    S|  j   j   } | r | d } t |  d k r | d } d | | f S)Nr   r   r'   )_lsb_release_versionmatchtupler   _release_versionr-   r,   r   )	firstliner   r3   r!   lr   r   r   _parse_release_file  s    

rM   r'   c             C   s8   d d  l  } | j d t d d t |  | | | |  S)Nr   zFdist() and linux_distribution() functions are deprecated in Python 3.5
stacklevelr%   )warningswarnPendingDeprecationWarning_linux_distribution)r2   r   r3   supported_distsfull_distribution_namerO   r   r   r   linux_distribution,  s
    	rU   c             C   s,  y t  j t  } Wn t k
 r4 |  | | f SYn X| j   x^ | D]F } t j |  } | d  k	 rF | j   \ } }	 | | k rF | }  PqF Wt |  | |  St	 t  j
 j t |  d d d d d  }
 |
 j   } Wd  QRXt |  \ } } } | r| r| }  | r| } | r| } |  | | f S)Nrencodingzutf-8errorssurrogateescape)r   r/   _UNIXCONFDIROSErrorr1   _release_filenamerH   r   r9   r   r   joinreadlinerM   )r2   r   r3   rS   rT   Zetcfiler!   Z	_distnamedummyr   rK   Z_versionZ_idr   r   r   rR   6  s0    
rR   c             C   s>   d d  l  } | j d t d d t |  | | d | d d S)Nr   zFdist() and linux_distribution() functions are deprecated in Python 3.5rN   r%   rS   rT   )rO   rP   rQ   rR   )r2   r   r3   rS   rO   r   r   r   distl  s    	ra   rV   c             C   s5   d d  l  } | j d t d d t j |  | |  S)Nr   zuse os.popen insteadrN   r%   )rO   rP   DeprecationWarningr   popen)cmdmodebufsizerO   r   r   r   rc     s    rc   c             C   s   |  j  d  } | r" | j |  y t t |  } Wn t k
 rO | } Yn Xt t t |   } d j | d  d   }  |  S)N.   )r,   appendmapint
ValueErrorliststrr]   )r   buildrL   Zintsstringsr   r   r   _norm_version  s    rq   z'(?:([\w ]+) ([\w.]+) .*\[.* ([\d.]+)\])c       	      C   s2  t  j | k r |  | | f Sx~ d D]i } y7 t j |  } | j   } | j   r_ t d   Wn( t k
 r } z w# WYd  d  } ~ Xq# XPq# W|  | | f S| j   } t j	 |  } | d  k	 r%| j
   \ }  } } | d d k r | d  d	  } | d
 d k r| d  d  } t |  } |  | | f S)Nvercommand /c ver
cmd /c verzcommand failedr'   rg   )rr   rs   rt   r*   r*   r*   r*   )sysplatformr   rc   r   closer[   r-   _ver_outputrH   r   rq   )	systemreleaser   Zsupported_platformsrd   pipeinfowhyr!   r   r   r   _syscmd_ver  s,    r~      Z2000ZXPr%   Z
2003ServerZpost2003   Vista78rh   z8.1zpost8.1
   Z10Zpost10Z
2008ServerZ2008ServerR2Z
2012ServerZ2012ServerR2Zpost2012ServerR2c          (   C   s  y d d l  m } Wn" t k
 r8 |  | | | f SYn Xy& d d l m } m } m } m } Wn4 t k
 r d d l m } m } m } m } Yn X|   }	 |	 j	 p |	 d  d  \ }
 } } d j
 |
 | |  } t j |
 | f  pt j |
 d  f  p|  }  |	 d  d  |
 | f k rwy d j
 |	 j  } Wn< t k
 rv| d  d  d	 k rrd
 | d d   } Yn Xt |	 d d   d k rt j |
 | f  pt j |
 d  f  p|  }  d  } z5 y& | | d  } | | d  d } Wn Yn XWd  | r| |  X|  | | | f S)Nr   )getwindowsversion)	OpenKeyExQueryValueExCloseKeyHKEY_LOCAL_MACHINErh   z{0}.{1}.{2}r%   zSP{}   zService Pack ZSPZproduct_typez,SOFTWARE\Microsoft\Windows NT\CurrentVersionZCurrentType)ru   r   ImportErrorwinregr   r   r   r   _winregZ_platform_versionformat_WIN32_CLIENT_RELEASESgetZservice_pack_majorAttributeErrorgetattr_WIN32_SERVER_RELEASES)rz   r   csdptyper   r   r   r   r   ZwinverZmajminro   keyr   r   r   	win32_ver  sD    &'	"		r   c              C   s   d }  t  j j |   s d  Sy d d  l } Wn t k
 rD d  SYn Xt |  d   } | j |  } Wd  QRX| d } d	 } t  j   j } | d
 k r d } | | | f S)Nz0/System/Library/CoreServices/SystemVersion.plistr   r   ZProductVersionr   ppcPower MacintoshZPowerPC)r   r   r   )r   r   )	r   r   r+   plistlibr   r   loadunamemachine)fnr   r   plrz   versioninfor   r   r   r   _mac_ver_xml%  s    	
r   c             C   s&   t    } | d  k	 r | S|  | | f S)N)r   )rz   r   r   r|   r   r   r   mac_ver;  s    	r   c             C   sT   d d l  m } y' | j |   } | d  k r2 | S| SWn t k
 rO | SYn Xd  S)Nr   )System)	java.langr   ZgetPropertyr   )namedefaultr   r6   r   r   r   _java_getpropN  s    r   c             C   s   y d d  l  } Wn" t k
 r4 |  | | | f SYn Xt d |  } t d |   }  | \ } } } t d |  } t d |  } t d |  } | | | f } | \ } }	 }
 t d |
  }
 t d |  } t d	 |	  }	 | |	 |
 f } |  | | | f S)
Nr   zjava.vendorzjava.versionzjava.vm.namezjava.vm.vendorzjava.vm.versionzjava.os.archzjava.os.namezjava.os.version)r   r   r   )rz   vendorvminfoosinfojavaZvm_nameZ
vm_releaseZ	vm_vendoros_name
os_versionos_archr   r   r   java_verY  s"    r   c             C   s  |  d k r d |  | | f S|  d k r | d k  rB |  | | f S| j  d  } | r y t | d  } Wn t k
 r Yn* X| d } t |  | d <d j |  } | d k  r d	 }  qd	 }  n@ |  d
 k r d }  | r | d } qd } n |  d k rd }  |  | | f S)NZRhapsodyzMacOS X ServerZSunOS5rg   r   rh   6ZSolarisZIRIX64ZIRIXz (64bit)64bitr   r   Windows)r   r   )r,   rk   rl   rn   r]   )ry   rz   r   rL   majorr   r   r   system_alias|  s2    	
			r   c              G   s  d j  d d   t t |   D  } | j d d  } | j d d  } | j d d  } | j d d  } | j d	 d  } | j d
 d  } | j d d  } | j d d  } | j d d  } x) | j d d  } | | k r P| } q Wx$ | d d k r| d  d  } q W| S)Nr&   c             s   s   |  ] } | j    Vq d  S)N)r-   )r
   xr   r   r   	<genexpr>  s    z_platform.<locals>.<genexpr> _/\:;"()unknownr   z--r'   r*   r*   )r]   filterr   replace)argsrv   Zcleanedr   r   r   	_platform  s$    %
r   c             C   sT   y d d  l  } Wn t k
 r( |  SYn Xy | j   SWn t k
 rO |  SYn Xd  S)Nr   )socketr   gethostnamer[   )r   r   r   r   r   _node  s    	r   c             C   se   t  j j |   }  xL t  j j |   r` t  j j t  j j t  j j |   t  j |     }  q W|  S)N)r   r   abspathislinknormpathr]   dirnamereadlink)filepathr   r   r   _follow_symlinks  s
    	1r   c             C   s   t  j d k r | Sy t j d |  t f  } Wn t t f k
 rN | SYn X| j   j   } | j	   } | sz | r~ | S| Sd  S)Nr   r   r   zuname %s 2> %s)r   r   r   )
ru   rv   r   rc   DEV_NULLr   r[   r   r-   rw   )optionr   r   outputrcr   r   r   _syscmd_uname  s    	r   c             C   s   t  j d	 k r | St |   }  y+ t j d |  g d t j d t j } Wn t t f k
 rh | SYn X| j	   d j
 d  } | j   } | s | r | S| Sd  S)
Nr   r   r   r_   stdoutstderrr   zlatin-1)r   r   r   )ru   rv   r   
subprocessPopenPIPESTDOUTr   r[   communicater	   wait)targetr   procr   r   r   r   r   _syscmd_file  s    		r   	WindowsPEr   MSDOSc             C   s  | s` d d  l  } y | j d  } Wn$ | j k
 rK | j d  } Yn Xt | d  d } |  rx t |  d  } n d } | r |  t j k r t j t k r t t j \ } } | r | } | r | } | | f Sd | k r | | f Sd | k rd	 } n' d
 | k rd } n d | k r*d } d | k r?d } nT d | k rid | k r`d } qd } n* d | k r~d } n d | k rd } n  | | f S)Nr   PrL      Zbitr   r   z32-bit32bitZN32Zn32bitz64-bitr   ZELFZPEr   r   ZCOFFzMS-DOSr   )	structcalcsizeerrorrn   r   ru   r   rv   _default_architecture)r   bitslinkager   sizeZfileoutbrL   r   r   r   architecture"  sL    

							r   uname_resultz-system node release version machine processorc              C   s}  d }  t  d  k	 r t  Sd } y t j   \ } } } } } Wn t k
 rU d }  Yn X|  s t t d  | | | | | f   r6|  r t j } d } d } t   } d } d } | d k rAt	   \ } } } }	 | r | r d } | s&d t j
 k rt j
 j d d  } n t j
 j d d  } | sAt j
 j d |  } | rt |  \ } } } | d k rqd	 } nC | d
 k r| d	 k rd	 } d | d  d  k rd } n d } | d k r| s| d k rd } n d } d	 } nL | d  d  d k r6t   \ } }
 } } d } d j |  } | s6|
 } | d k r| sU| d k ra| } d } y d d  l } Wn t k
 rYn4 X| j d d  \ } } | d k rd } n d } | st d d  } | d k rd } | d k rd } | d k rd } | d k rd } | d k r(d } | d k r:d } | d
 k r^| d	 k r^d	 } d } t | | | | | |  a  t  S)Nr   r   r'   r   ZPROCESSOR_ARCHITEW6432ZPROCESSOR_ARCHITECTUREZPROCESSOR_IDENTIFIERzMicrosoft Windowsr   Z	Microsoftz6.0rh   r   r   r   Z16bit   r   Javaz, ZOpenVMS0zSYI$_CPU   ZAlphaZVAXz-pr   )r   r   )_uname_cacher   r   r   rm   r   ru   rv   r   r   environr   r~   r   r]   vms_libr   Zgetsyir   r   )Zno_os_uname	processorry   noderz   r   r   Zuse_syscmd_verr   r   r   r   r   r   ZcsidZ
cpu_numberr   r   r   r   {  s    +							r   c               C   s
   t    j S)N)r   ry   r   r   r   r   ry     s    ry   c               C   s
   t    j S)N)r   r   r   r   r   r   r     s    r   c               C   s
   t    j S)N)r   rz   r   r   r   r   rz     s    rz   c               C   s
   t    j S)N)r   r   r   r   r   r   r   !  s    r   c               C   s
   t    j S)N)r   r   r   r   r   r   r   *  s    r   c               C   s
   t    j S)N)r   r   r   r   r   r   r   3  s    
r   zL([\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 [^\]]+\]?c             C   s  |  d  k r t  j }  t j |  d   } | d  k	 r7 | Sd |  k r d } |  j d  rj t j |   } n t j |   } | d  k r t d t	 |     | j
   \ } } } d } d } nat  j j d  rAd } t j |   } | d  k rt d t	 |     | j
   \ } } } }	 }
 | d  k r5d } t  j } n d |  k rd } t j |   } | d  k rt d t	 |     | j
   \ } } } }	 d } n{ t j |   } | d  k rt d	 t	 |     | j
   \ } } } }	 } d
 } | d  k rd } n |	 r | d |	 } t t  d  rDt  j \ }
 } } nT t t  d  rht  j \ }
 } } n0 t t  d  rt  j \ }
 } } n d } d } | j d  } t |  d k r| j d  d j |  } | | | | | | | f } | t |  <| S)NZ
IronPythonz*failed to parse IronPython sys.version: %sr   r   ZJythonz&failed to parse Jython sys.version: %sZPyPyz$failed to parse PyPy sys.version: %sz'failed to parse CPython sys.version: %sZCPythonr   _git
_mercurial
subversionrg   r%   r   )ru   r   _sys_version_cacher   
startswith_ironpython_sys_version_parserrH    _ironpython26_sys_version_parserrl   reprr   rv   _sys_version_parser_pypy_sys_version_parserr   r   r   r   r,   r   ri   r]   )sys_versionresultr   rH   r   Zalt_versionZcompilerZbuildnoZ	builddateZ	buildtimer   ZbranchZrevisionrL   r   r   r   _sys_version]  s|    				
r  c               C   s   t    d S)Nr   )r  r   r   r   r   python_implementation  s    r  c               C   s   t    d S)Nr'   )r  r   r   r   r   python_version  s    r  c               C   s   t  t   d j d   S)Nr'   rg   )rI   r  r,   r   r   r   r   python_version_tuple  s    	r  c               C   s   t    d S)Nr%   )r  r   r   r   r   python_branch  s    r	  c               C   s   t    d S)Nrh   )r  r   r   r   r   python_revision  s    r
  c               C   s   t    d d  S)Nr   r   )r  r   r   r   r   python_build  s    r  c               C   s   t    d S)Nr   )r  r   r   r   r   python_compiler  s    r  c             C   s|  t  j |  | f d   } | d  k	 r( | St   \ } } } } } } | | k rU d } |  rv t | | |  \ } } } | d k r t |  \ }	 }
 } } | r t | |  } qht | | | |  } n| d
 k rzt j   - t j d d t	  t
 d  \ } } } Wd  QRX| rC| rCt | | | | d | | |  } qht t j  \ } } t | | | | d | |  } n | d k rt   \ } } } \ } } } | s| rt | | |  } qht | | | d | | |  } n | d	 k r | rt | |  } qht | | |  } nH | r8t | |  } n0 t t j  \ } } t | | | | | |  } | t  |  | f <| S)Nr   r   Linuxignorez?dist\(\) and linux_distribution\(\) functions are deprecated .*withr   ZonZMacOS)r  )_platform_cacher   r   r   r   r   rO   catch_warningsfilterwarningsrQ   ra   r#   ru   r   r   r   )aliasedterser  ry   r   rz   r   r   r   ZrelZversr   r   rv   r2   ZdistversionZdistidZlibcnameZlibcversionrV   vr   r   r   r   r   r   r   r   r   rv     s\    rv   __main__r  z--terseZ
nonaliasedz--nonaliased)r   r   r   )r$   r:   r;   r<   r=   r>   r?   r@   r)   rA   rB   rC   rD   rE   rF   r*   )r   r   r   )r   r   )r   r'   )r   r%   )r   N)r   r   )r   r'   )r   r%   )r   rh   )r   N)r   r   )r   N)r   r%   )r   r   )r   r'   )r   r%   )r   rh   )r   N)r   r   r   )r   r   r   )r   r   r   )r   r   )r   r   )r   r   )LZ__copyright____version__collectionsru   r   rer   rO   devnullr   r   rv   rZ   compileASCIIr   r   r#   r9   r\   rG   rJ   Z_supported_distsrM   rU   rR   ra   rc   rq   rx   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
namedtupler   r   r   ry   r   rz   r   r   r   r  r   r   r  r   r  r  r  r  r	  r
  r  r  r  __name__argvr  r  printexitr   r   r   r   <module>p   s   0		70		  	6		00#6 T			
					k

[