§
    `ŠtjoX  ã                   ól  — d Z dgZddlZddlZddlZddlZddlZddlZddlm	Z	 dd„Z
dd„Zdd	„Z	 	 dd
„Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zej                             d¦  «        reZn„ej                             d¦  «        reZngej        dk    reZnYej                             d¦  «        reZn<ej                             d¦  «        reZnej                             d¦  «        reZneZ e¦   «         ZdS )aa  
cpuinfo

Copyright 2002 Pearu Peterson all rights reserved,
Pearu Peterson <pearu@cens.ioc.ee>
Permission to use, modify, and distribute this software is given under the
terms of the NumPy (BSD style) license.  See LICENSE.txt that came with
this distribution for specifics.

NO WARRANTY IS EXPRESSED OR IMPLIED.  USE AT YOUR OWN RISK.
Pearu Peterson

Úcpué    N)Úgetstatusoutput©r   é   c                 ó  — 	 t          | ¦  «        \  }}nA# t          $ r4}t          j        t	          |¦  «        t
          |¬¦  «         Y d }~dS d }~ww xY wt          j        |¦  «        rt          j        |¦  «        |v rd|fS d|fS )N©Ú
stacklevel)FÚ TF)	r   ÚOSErrorÚwarningsÚwarnÚstrÚUserWarningÚosÚ	WIFEXITEDÚWEXITSTATUS)ÚcmdÚsuccessful_statusr	   ÚstatusÚoutputÚes         úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/numpy/distutils/cpuinfo.pyÚ	getoutputr      s    € ðÝ(¨Ñ-Ô-‰ˆ��øÝð ð ð ÝŒ•c˜!‘f”f�k°jÐAÑAÔAÐAØˆyˆyˆyˆyˆyøøøøðøøøõ 
„|�FÑÔð ¥¤¨vÑ 6Ô 6Ð:KÐ KÐ KØ�Vˆ|ÐØ�&ˆ=Ðs   ‚ •
AŸ)AÁAc                 ó‚   — i }|D ]9}t          ||         | |dz   ¬¦  «        \  }}|r|                     ¦   «         ||<   Œ:|S ©Nr   ©r   r	   )r   Ústrip)r   r	   ÚkwÚinfoÚkeyÚokr   s          r   Úcommand_infor"   %   s]   € Ø€DØð 'ð 'ˆÝ˜r #œwÐ:KØ*4°Q©,ð8ñ 8ô 8‰
ˆˆFàð 	'ØŸš™œˆD�‰IøØ€Kó    c              #   óœ   K  — t          | ||dz   ¬¦  «        \  }}|sd S |                     ¦   «         D ]}|                     ¦   «         V — Œd S r   )r   Ú
splitlinesr   )r   r   r	   r!   r   Úlines         r   Úcommand_by_liner'   .   ss   è è € Ý˜3Ð2CØ&0°¡lð4ñ 4ô 4�J€Bˆàð ØˆØ×!Ò!Ñ#Ô#ð ð ˆØ�jŠj‰lŒlÐÐÐÐðð r#   c                 óÂ   — i }t          | ||dz   ¬¦  «        D ]F}d„ |                     |d¦  «        D ¦   «         }t          |¦  «        dk    r|d         ||d         <   ŒG|S )Nr   r   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS © ©r   ©Ú.0Úss     r   ú
<listcomp>z*key_value_from_command.<locals>.<listcomp>;   s    € Ð3Ð3Ð3˜1ˆQ�WŠW‰YŒYÐ3Ð3Ð3r#   é   r   )r'   ÚsplitÚlen)r   Úsepr   r	   Údr&   Úls          r   Úkey_value_from_commandr6   6   sx   € à
€AÝ Ð7HØ+5°a©<ð9ñ 9ô 9ð ð ˆà3Ð3 §
¢
¨3°Ñ 2Ô 2Ð3Ñ3Ô3ˆÝˆq‰6Œ6�QŠ;ˆ;Ø˜”dˆAˆa�Œd‰GøØ€Hr#   c                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚCPUInfoBasezkHolds CPU information and provides methods for requiring
    the availability of various CPU features.
    c                 ó:   — 	  |¦   «         S # t           $ r Y d S w xY w©N)Ú	Exception)ÚselfÚfuncs     r   Ú	_try_callzCPUInfoBase._try_callE   s4   € ð	Ø�4‘6”6ˆMøÝð 	ð 	ð 	ØˆDˆDð	øøøs   ‚	 Œ
™c                 óè   — |                      d¦  «        sOt          | d|z   ¦  «        r9t          | d|z   ¦  «        }t          |t          j        ¦  «        r| j        |fd„S nd„ S t          |¦  «        ‚)NÚ_c                 ó   —  | |¦  «        S r:   r*   )r=   Úattrs     r   ú<lambda>z)CPUInfoBase.__getattr__.<locals>.<lambda>P   s   € À$À$ÀtÁ*Ä*€ r#   c                  ó   — d S r:   r*   r*   r#   r   rC   z)CPUInfoBase.__getattr__.<locals>.<lambda>R   s   €  € r#   )Ú
startswithÚhasattrÚgetattrÚ
isinstanceÚtypesÚ
MethodTyper>   ÚAttributeError)r<   ÚnamerB   s      r   Ú__getattr__zCPUInfoBase.__getattr__K   s†   € Ø�Š˜sÑ#Ô#ð 	%Ý�t˜S ™XÑ&Ô&ð %Ý˜t S¨¡XÑ.Ô.�Ý˜d¥EÔ$4Ñ5Ô5ð MØ'+¤~¸4ÐLÐLÐLÐLðMð %�}Ð$Ý˜TÑ"Ô"Ð"r#   c                 ó   — dS ©Nr   r*   ©r<   s    r   Ú	_getNCPUszCPUInfoBase._getNCPUsU   s   € Øˆqr#   c                 ó¬   — t          j        ¦   «         d         }t          j        d¦  «                             |¦  «                             d¦  «        }|S )Nr   z(\d+)bitr   )ÚplatformÚarchitectureÚreÚcompileÚsearchÚgroup)r<   ÚabitsÚnbitss      r   Ú__get_nbitszCPUInfoBase.__get_nbitsX   sE   € ÝÔ%Ñ'Ô'¨Ô*ˆÝ”
˜;Ñ'Ô'×.Ò.¨uÑ5Ô5×;Ò;¸AÑ>Ô>ˆØˆr#   c                 ó2   — |                       ¦   «         dk    S )NÚ32©Ú_CPUInfoBase__get_nbitsrP   s    r   Ú	_is_32bitzCPUInfoBase._is_32bit]   ó   € Ø×ÒÑ!Ô! TÒ)Ð)r#   c                 ó2   — |                       ¦   «         dk    S )NÚ64r^   rP   s    r   Ú	_is_64bitzCPUInfoBase._is_64bit`   ra   r#   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r>   rM   rQ   r_   r`   rd   r*   r#   r   r8   r8   @   sx   € € € € € ðð ðð ð ð#ð #ð #ðð ð ðð ð ð
*ð *ð *ð*ð *ð *ð *ð *r#   r8   c                   ó.  — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZeZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d „ Z#d!„ Z$d"„ Z%d#„ Z&d$„ Z'e'Z(d%„ Z)d&„ Z*d'„ Z+d(„ Z,d)„ Z-d*„ Z.d+„ Z/d,„ Z0d-„ Z1d.„ Z2d/„ Z3dS )0ÚLinuxCPUInfoNc                 ó6  — | j         �d S i g}t          d¦  «        \  }}|r|                     ¦   «         |d         d<   	 t          d¦  «        }|D ]g}d„ |                     dd¦  «        D ¦   «         }t          |¦  «        dk    rŒ6|\  }}|r
||d	         v r|                     i ¦  «         ||d	         |<   Œh|                     ¦   «          n@# t          $ r3}	t          j
        t          |	¦  «        t          d¬
¦  «         Y d }	~	nd }	~	ww xY w|| j        _         d S )Nzuname -mr   Úuname_mz/proc/cpuinfoc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r*   r+   r,   s     r   r/   z)LinuxCPUInfo.__init__.<locals>.<listcomp>t   s    € ÐDÐDÐD¨A˜aŸgšg™iœiÐDÐDÐDr#   ú:r   r0   éÿÿÿÿr   )r   r   r   Úopenr1   r2   ÚappendÚcloser   r   r   r   r   Ú	__class__)
r<   r   r!   r   Úfor&   Ú
name_valuerL   Úvaluer   s
             r   Ú__init__zLinuxCPUInfo.__init__g   sH  € ØŒ9Ð ØˆFØˆvˆÝ˜zÑ*Ô*‰
ˆˆFØð 	0Ø!'§¢¡¤ˆD�ŒG�IÑð	Ý�oÑ&Ô&ˆBð ð 'ð '�ØDÐD°·²¸CÀÑ1CÔ1CÐDÑDÔD�
Ý�z‘?”? aÒ'Ð'ØØ(‘��eØð $˜t t¨B¤xÐ/Ð/Ø—K’K ‘O”O�OØ!&��R”˜‘�Ø�HŠH‰JŒJˆJˆJøõ ð 	=ð 	=ð 	=ÝŒM�#˜a™&œ&¥+¸!Ð<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<øøøøð	=øøøð #ˆŒÔÐÐs   ¿C Ã
D
Ã)DÄD
c                 ó   — d S r:   r*   rP   s    r   Ú	_not_implzLinuxCPUInfo._not_impl~   ó   € € € r#   c                 ó0   — | j         d         d         dk    S )Nr   Ú	vendor_idÚAuthenticAMD©r   rP   s    r   Ú_is_AMDzLinuxCPUInfo._is_AMD‚   ó   € ØŒy˜Œ|˜KÔ(¨.Ò8Ð8r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S )Nr   ÚmodelÚ2©r   r   rP   s    r   Ú_is_AthlonK6_2zLinuxCPUInfo._is_AthlonK6_2…   ó%   € Ø�|Š|‰~Œ~Ð> $¤)¨A¤,¨wÔ"7¸3Ò">Ð>r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S )Nr   r‚   Ú3r„   rP   s    r   Ú_is_AthlonK6_3zLinuxCPUInfo._is_AthlonK6_3ˆ   r†   r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz	.*?AMD-K6r   ú
model name©rU   Úmatchr   rP   s    r   Ú_is_AthlonK6zLinuxCPUInfo._is_AthlonK6‹   ó$   € ÝŒx˜ d¤i°¤l°<Ô&@ÑAÔAÈÐMÐMr#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz	.*?AMD-K7r   r‹   rŒ   rP   s    r   Ú_is_AthlonK7zLinuxCPUInfo._is_AthlonK7Ž   r�   r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?Athlon\(tm\) MP\br   r‹   rŒ   rP   s    r   Ú_is_AthlonMPzLinuxCPUInfo._is_AthlonMP‘   ó1   € ÝŒxÐ/Øœ	 !œ \Ô2ñ4ô 4Ø;?ð@ð 	@r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S )Nr   ÚfamilyÚ15©Úis_AMDr   rP   s    r   Ú	_is_AMD64zLinuxCPUInfo._is_AMD64•   s%   € Ø�{Š{‰}Œ}Ð? ¤¨1¤¨hÔ!7¸4Ò!?Ð?r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?Athlon\(tm\) 64\br   r‹   rŒ   rP   s    r   Ú_is_Athlon64zLinuxCPUInfo._is_Athlon64˜   r”   r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?Athlon HX\br   r‹   rŒ   rP   s    r   Ú_is_AthlonHXzLinuxCPUInfo._is_AthlonHXœ   s1   € ÝŒxÐ)Øœ	 !œ \Ô2ñ4ô 4Ø;?ð@ð 	@r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?Opteron\br   r‹   rŒ   rP   s    r   Ú_is_OpteronzLinuxCPUInfo._is_Opteron    s0   € ÝŒx˜Øœ	 !œ \Ô2ñ4ô 4Ø;?ð@ð 	@r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?Hammer\br   r‹   rŒ   rP   s    r   Ú
_is_HammerzLinuxCPUInfo._is_Hammer¤   s0   € ÝŒx˜Øœ	 !œ \Ô2ñ4ô 4Ø;?ð@ð 	@r#   c                 ó0   — | j         d         d         dk    S )Nr   r   ÚAlphar~   rP   s    r   Ú	_is_AlphazLinuxCPUInfo._is_Alphaª   s   € ØŒy˜Œ|˜EÔ" GÒ+Ð+r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S )Nr   ú	cpu modelÚEV4©Úis_Alphar   rP   s    r   Ú_is_EV4zLinuxCPUInfo._is_EV4­   ó%   € Ø�}Š}‰ŒÐE 4¤9¨Q¤<°Ô#<ÀÒ#EÐEr#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S )Nr   r§   ÚEV5r©   rP   s    r   Ú_is_EV5zLinuxCPUInfo._is_EV5°   r¬   r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S )Nr   r§   ÚEV56r©   rP   s    r   Ú_is_EV56zLinuxCPUInfo._is_EV56³   s%   € Ø�}Š}‰ŒÐF 4¤9¨Q¤<°Ô#<ÀÒ#FÐFr#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S )Nr   r§   ÚPCA56r©   rP   s    r   Ú	_is_PCA56zLinuxCPUInfo._is_PCA56¶   s%   € Ø�}Š}‰ŒÐG 4¤9¨Q¤<°Ô#<ÀÒ#GÐGr#   c                 ó0   — | j         d         d         dk    S )Nr   r|   ÚGenuineIntelr~   rP   s    r   Ú	_is_IntelzLinuxCPUInfo._is_Intel¾   r€   r#   c                 ó0   — | j         d         d         dk    S )Nr   r   Úi486r~   rP   s    r   Ú_is_i486zLinuxCPUInfo._is_i486Á   s   € ØŒy˜Œ|˜EÔ" FÒ*Ð*r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S )Nr   ú
cpu familyÚ5©Úis_Intelr   rP   s    r   Ú_is_i586zLinuxCPUInfo._is_i586Ä   ó%   € Ø�}Š}‰ŒÐD 4¤9¨Q¤<°Ô#=ÀÒ#DÐDr#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S )Nr   r½   Ú6r¿   rP   s    r   Ú_is_i686zLinuxCPUInfo._is_i686Ç   rÂ   r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz
.*?Celeronr   r‹   rŒ   rP   s    r   Ú_is_CeleronzLinuxCPUInfo._is_CeleronÊ   ó0   € ÝŒx˜Øœ	 !œ \Ô2ñ4ô 4Ø;?ð@ð 	@r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz
.*?Pentiumr   r‹   rŒ   rP   s    r   Ú_is_PentiumzLinuxCPUInfo._is_PentiumÎ   rÈ   r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?Pentium.*?II\br   r‹   rŒ   rP   s    r   Ú_is_PentiumIIzLinuxCPUInfo._is_PentiumIIÒ   s1   € ÝŒxÐ,Øœ	 !œ \Ô2ñ4ô 4Ø;?ð@ð 	@r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?PentiumPro\br   r‹   rŒ   rP   s    r   Ú_is_PentiumProzLinuxCPUInfo._is_PentiumProÖ   s1   € ÝŒxÐ*Øœ	 !œ \Ô2ñ4ô 4Ø;?ð@ð 	@r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?Pentium.*?MMX\br   r‹   rŒ   rP   s    r   Ú_is_PentiumMMXzLinuxCPUInfo._is_PentiumMMXÚ   ó1   € ÝŒxÐ-Øœ	 !œ \Ô2ñ4ô 4Ø;?ð@ð 	@r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?Pentium.*?III\br   r‹   rŒ   rP   s    r   Ú_is_PentiumIIIzLinuxCPUInfo._is_PentiumIIIÞ   rÑ   r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?Pentium.*?(IV|4)\br   r‹   rŒ   rP   s    r   Ú_is_PentiumIVzLinuxCPUInfo._is_PentiumIVâ   s1   € ÝŒxÐ0Øœ	 !œ \Ô2ñ4ô 4Ø;?ð@ð 	@r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?Pentium.*?M\br   r‹   rŒ   rP   s    r   Ú_is_PentiumMzLinuxCPUInfo._is_PentiumMæ   s1   € ÝŒxÐ+Øœ	 !œ \Ô2ñ4ô 4Ø;?ð@ð 	@r#   c                 óR   — |                       ¦   «         o|                      ¦   «         S r:   )Úis_PentiumIVÚhas_sse3rP   s    r   Ú_is_PrescottzLinuxCPUInfo._is_Prescottê   s!   € Ø× Ò Ñ"Ô"Ð6 t§}¢}¡¤Ð6r#   c                 ó(  — |                       ¦   «         o~| j        d         d         dk    p| j        d         d         dk    oP|                      ¦   «         o|                      ¦   «          o't	          j        d| j        d         d         ¦  «        d uS )Nr   r½   rÄ   r—   z	.*?\blm\bÚflags)rÀ   r   rÚ   Ú	has_ssse3rU   r�   rP   s    r   Ú
_is_NoconazLinuxCPUInfo._is_Noconaí   s�   € Ø—’‘”ð NØ”Y˜q”\ ,Ô/°3Ò6ð ;Øœ	 !œ \Ô2°dÒ:ðNð —]’]‘_”_Ð=¨T¯^ª^Ñ-=Ô-=Ð)=ðNõ ”H˜\¨4¬9°Q¬<¸Ô+@ÑAÔAÈÐMð		Or#   c                 ó¢   — |                       ¦   «         o;|                      ¦   «         o't          j        d| j        d         d         ¦  «        d uS )Nz.*?Core\(TM\)2\br   r‹   )Úis_64bitrÀ   rU   r�   r   rP   s    r   Ú	_is_Core2zLinuxCPUInfo._is_Core2ô   sR   € Ø—’‘”ð A D§M¢M¡O¤Oð AÝ”Ð,Øœ 1œ lÔ3ñ5ô 5Ø<@ðAð	Br#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?Itanium\br   r–   rŒ   rP   s    r   Ú_is_ItaniumzLinuxCPUInfo._is_Itaniumù   s.   € ÝŒx˜Øœ	 !œ XÔ.ñ0ô 0Ø7;ð<ð 	<r#   c                 óh   — t          j        d| j        d         d         t           j        ¦  «        d uS )Nz	.*?XEON\br   r‹   )rU   r�   r   Ú
IGNORECASErP   s    r   Ú_is_XEONzLinuxCPUInfo._is_XEONý   s6   € ÝŒx˜Øœ	 !œ \Ô2µB´MñCô CØJNðOð 	Or#   c                 ó2   — t          | j        ¦  «        dk    S rO   ©r2   r   rP   s    r   Ú_is_singleCPUzLinuxCPUInfo._is_singleCPU  ó   € Ý�4”9‰~Œ~ Ò"Ð"r#   c                 ó*   — t          | j        ¦  «        S r:   ré   rP   s    r   rQ   zLinuxCPUInfo._getNCPUs  ó   € Ý�4”9‰~Œ~Ðr#   c                 ó0   — | j         d         d         dk    S )Nr   Úfdiv_bugÚyesr~   rP   s    r   Ú_has_fdiv_bugzLinuxCPUInfo._has_fdiv_bug  ó   € ØŒy˜Œ|˜JÔ'¨Ò.Ð.r#   c                 ó0   — | j         d         d         dk    S )Nr   Úf00f_bugrð   r~   rP   s    r   Ú_has_f00f_bugzLinuxCPUInfo._has_f00f_bug  rò   r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz
.*?\bmmx\br   rÝ   rŒ   rP   s    r   Ú_has_mmxzLinuxCPUInfo._has_mmx  ó$   € ÝŒx˜ t¤y°¤|°GÔ'<Ñ=Ô=ÀTÐIÐIr#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz
.*?\bsse\br   rÝ   rŒ   rP   s    r   Ú_has_ssezLinuxCPUInfo._has_sse  rø   r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?\bsse2\br   rÝ   rŒ   rP   s    r   Ú	_has_sse2zLinuxCPUInfo._has_sse2  s$   € ÝŒx˜¨¬	°!¬°WÔ(=Ñ>Ô>ÀdÐJÐJr#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz
.*?\bpni\br   rÝ   rŒ   rP   s    r   Ú	_has_sse3zLinuxCPUInfo._has_sse3  rø   r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?\bssse3\br   rÝ   rŒ   rP   s    r   Ú
_has_ssse3zLinuxCPUInfo._has_ssse3  ó$   € ÝŒx˜¨¬°1¬°gÔ)>Ñ?Ô?ÀtÐKÐKr#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?\b3dnow\br   rÝ   rŒ   rP   s    r   Ú
_has_3dnowzLinuxCPUInfo._has_3dnow   r  r#   c                 óR   — t          j        d| j        d         d         ¦  «        d uS )Nz.*?\b3dnowext\br   rÝ   rŒ   rP   s    r   Ú_has_3dnowextzLinuxCPUInfo._has_3dnowext#  s%   € ÝŒxÐ*¨D¬I°a¬L¸Ô,AÑBÔBÈ$ÐNÐNr#   )4re   rf   rg   r   rw   ry   r   r…   r‰   rŽ   r‘   r“   rš   rœ   rž   r    r¢   r¥   r«   r¯   r²   rµ   Ú_is_i386r¸   r»   rÁ   rÅ   rÇ   rÊ   rÌ   rÎ   rÐ   rÓ   rÕ   r×   rÛ   rß   râ   rä   rç   Ú_is_Xeonrê   rQ   rñ   rõ   r÷   rú   rü   rþ   r   r  r  r*   r#   r   rj   rj   c   s7  € € € € € à€Dð#ð #ð #ð. ÐÐð9ð 9ð 9ð?ð ?ð ?ð?ð ?ð ?ðNð Nð NðNð Nð Nð@ð @ð @ð@ð @ð @ð@ð @ð @ð@ð @ð @ð@ð @ð @ð@ð @ð @ð,ð ,ð ,ðFð Fð FðFð Fð FðGð Gð GðHð Hð Hð €Hð9ð 9ð 9ð+ð +ð +ðEð Eð EðEð Eð Eð@ð @ð @ð@ð @ð @ð@ð @ð @ð@ð @ð @ð@ð @ð @ð@ð @ð @ð@ð @ð @ð@ð @ð @ð7ð 7ð 7ðOð Oð OðBð Bð Bð
<ð <ð <ðOð Oð Oð €Hð#ð #ð #ðð ð ð/ð /ð /ð/ð /ð /ðJð Jð JðJð Jð JðKð Kð KðJð Jð JðLð Lð LðLð Lð LðOð Oð Oð Oð Or#   rj   c                   óð   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(dS )'ÚIRIXCPUInfoNc                 óT   — | j         �d S t          ddd¬¦  «        }|| j        _         d S )NÚsysconfú )r   r   )r3   r   )r   r6   rs   ©r<   r   s     r   rw   zIRIXCPUInfo.__init__)  s=   € ØŒ9Ð ØˆFÝ% i°SØ8>ð@ñ @ô @ˆà"ˆŒÔÐÐr#   c                 ó   — d S r:   r*   rP   s    r   ry   zIRIXCPUInfo._not_impl0  rz   r#   c                 ó>   — | j                              d¦  «        dk    S )NÚNUM_PROCESSORSÚ1)r   ÚgetrP   s    r   rê   zIRIXCPUInfo._is_singleCPU2  s   € ØŒy�}Š}Ð-Ñ.Ô.°#Ò5Ð5r#   c                 óR   — t          | j                             dd¦  «        ¦  «        S )Nr  r   ©Úintr   r  rP   s    r   rQ   zIRIXCPUInfo._getNCPUs5  s!   € Ý�4”9—=’=Ð!1°1Ñ5Ô5Ñ6Ô6Ð6r#   c                 ó˜   — | j                              d¦  «                             ¦   «         d                              ¦   «         d|z  k    S )NÚ
PROCESSORSr   zr%s)r   r  r1   Úlower©r<   Úns     r   Ú	__cputypezIRIXCPUInfo.__cputype8  s<   € ØŒy�}Š}˜\Ñ*Ô*×0Ò0Ñ2Ô2°1Ô5×;Ò;Ñ=Ô=ÀÈ!ÁÒLÐLr#   c                 ó,   — |                       d¦  «        S )NiÐ  ©Ú_IRIXCPUInfo__cputyperP   s    r   Ú	_is_r2000zIRIXCPUInfo._is_r2000:  ó   €  §¢¨tÑ 4Ô 4Ð4r#   c                 ó,   — |                       d¦  «        S )Ni¸  r  rP   s    r   Ú	_is_r3000zIRIXCPUInfo._is_r3000;  r   r#   c                 ó,   — |                       d¦  «        S )Ni<  r  rP   s    r   Ú	_is_r3900zIRIXCPUInfo._is_r3900<  r   r#   c                 ó,   — |                       d¦  «        S )Ni   r  rP   s    r   Ú	_is_r4000zIRIXCPUInfo._is_r4000=  r   r#   c                 ó,   — |                       d¦  «        S )Ni  r  rP   s    r   Ú	_is_r4100zIRIXCPUInfo._is_r4100>  r   r#   c                 ó,   — |                       d¦  «        S )NiÌ  r  rP   s    r   Ú	_is_r4300zIRIXCPUInfo._is_r4300?  r   r#   c                 ó,   — |                       d¦  «        S )Ni0  r  rP   s    r   Ú	_is_r4400zIRIXCPUInfo._is_r4400@  r   r#   c                 ó,   — |                       d¦  «        S )Niø  r  rP   s    r   Ú	_is_r4600zIRIXCPUInfo._is_r4600A  r   r#   c                 ó,   — |                       d¦  «        S )Ni*  r  rP   s    r   Ú	_is_r4650zIRIXCPUInfo._is_r4650B  r   r#   c                 ó,   — |                       d¦  «        S )Niˆ  r  rP   s    r   Ú	_is_r5000zIRIXCPUInfo._is_r5000C  r   r#   c                 ó,   — |                       d¦  «        S )Nip  r  rP   s    r   Ú	_is_r6000zIRIXCPUInfo._is_r6000D  r   r#   c                 ó,   — |                       d¦  «        S )Ni@  r  rP   s    r   Ú	_is_r8000zIRIXCPUInfo._is_r8000E  r   r#   c                 ó,   — |                       d¦  «        S )Ni'  r  rP   s    r   Ú
_is_r10000zIRIXCPUInfo._is_r10000F  ó   €  §¢°Ñ!6Ô!6Ð6r#   c                 ó,   — |                       d¦  «        S )Nià.  r  rP   s    r   Ú
_is_r12000zIRIXCPUInfo._is_r12000G  r9  r#   c                 ó,   — |                       d¦  «        S )NÚorionr  rP   s    r   Ú
_is_rorionzIRIXCPUInfo._is_rorionH  s   €  §¢°Ñ!8Ô!8Ð8r#   c                 óX   — | j                              d¦  «        S # t          $ r Y d S w xY w)NÚMACHINE)r   r  r;   rP   s    r   Úget_ipzIRIXCPUInfo.get_ipJ  s/   € Ø”I—M’M )Ñ,Ô,Ð,øÝÐÐÐ˜$˜$˜$Ðøøøs   � ›
)¨)c                 óh   — | j                              d¦  «                             ¦   «         d|z  k    S )Nr@  zip%s)r   r  r  r  s     r   Ú	__machinezIRIXCPUInfo.__machineM  s+   € ØŒy�}Š}˜YÑ'Ô'×-Ò-Ñ/Ô/°6¸Q±<Ò?Ð?r#   c                 ó,   — |                       d¦  «        S )Né   ©Ú_IRIXCPUInfo__machinerP   s    r   Ú_is_IP19zIRIXCPUInfo._is_IP19O  ó   € ˜tŸ~š~¨bÑ1Ô1Ð1r#   c                 ó,   — |                       d¦  «        S )Né   rF  rP   s    r   Ú_is_IP20zIRIXCPUInfo._is_IP20P  rI  r#   c                 ó,   — |                       d¦  «        S )Né   rF  rP   s    r   Ú_is_IP21zIRIXCPUInfo._is_IP21Q  rI  r#   c                 ó,   — |                       d¦  «        S ©Né   rF  rP   s    r   Ú_is_IP22zIRIXCPUInfo._is_IP22R  rI  r#   c                 óT   — |                       d¦  «        o|                      ¦   «         S rQ  )rG  r&  rP   s    r   Ú_is_IP22_4kzIRIXCPUInfo._is_IP22_4kS  ó"   €  $§.¢.°Ñ"4Ô"4Ð"I¸¿ºÑ9IÔ9IÐIr#   c                 óT   — |                       d¦  «        o|                      ¦   «         S rQ  ©rG  r2  rP   s    r   Ú_is_IP22_5kzIRIXCPUInfo._is_IP22_5kT  s"   €  $§.¢.°Ñ"4Ô"4Ð"J¸$¿.º.Ñ:JÔ:JÐJr#   c                 ó,   — |                       d¦  «        S )Né   rF  rP   s    r   Ú_is_IP24zIRIXCPUInfo._is_IP24U  rI  r#   c                 ó,   — |                       d¦  «        S )Né   rF  rP   s    r   Ú_is_IP25zIRIXCPUInfo._is_IP25V  rI  r#   c                 ó,   — |                       d¦  «        S )Né   rF  rP   s    r   Ú_is_IP26zIRIXCPUInfo._is_IP26W  rI  r#   c                 ó,   — |                       d¦  «        S )Né   rF  rP   s    r   Ú_is_IP27zIRIXCPUInfo._is_IP27X  rI  r#   c                 ó,   — |                       d¦  «        S )Né   rF  rP   s    r   Ú_is_IP28zIRIXCPUInfo._is_IP28Y  rI  r#   c                 ó,   — |                       d¦  «        S )Né   rF  rP   s    r   Ú_is_IP30zIRIXCPUInfo._is_IP30Z  rI  r#   c                 ó,   — |                       d¦  «        S ©Né    rF  rP   s    r   Ú_is_IP32zIRIXCPUInfo._is_IP32[  rI  r#   c                 óT   — |                       d¦  «        o|                      ¦   «         S rm  rX  rP   s    r   Ú_is_IP32_5kzIRIXCPUInfo._is_IP32_5k\  rV  r#   c                 óT   — |                       d¦  «        o|                      ¦   «         S rm  )rG  r8  rP   s    r   Ú_is_IP32_10kzIRIXCPUInfo._is_IP32_10k]  s"   €  4§>¢>°"Ñ#5Ô#5Ð#K¸$¿/º/Ñ:KÔ:KÐKr#   ))re   rf   rg   r   rw   ry   rê   rQ   r  r  r"  r$  r&  r(  r*  r,  r.  r0  r2  r4  r6  r8  r;  r>  rA  rG  rH  rL  rO  rS  rU  rY  r\  r_  rb  re  rh  rk  ro  rq  rs  r*   r#   r   r	  r	  &  sŽ  € € € € € Ø€Dð#ð #ð #ð ÐÐð6ð 6ð 6ð7ð 7ð 7ðMð Mð Mà4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø6Ð6Ð6Ø6Ð6Ð6Ø8Ð8Ð8ðð ð ð@ð @ð @à1Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1ØIÐIÐIØJÐJÐJØ1Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1ØIÐIÐIØKÐKÐKÐKÐKr#   r	  c                   ó¨   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚDarwinCPUInfoNc                 óz   — | j         �d S t          dd¬¦  «        }t          dd¬¦  «        |d<   || j        _         d S )NÚarchÚmachine)rw  rx  z	sysctl hwú=©r3   Ú	sysctl_hw)r   r"   r6   rs   r  s     r   rw   zDarwinCPUInfo.__init__c  sO   € ØŒ9Ð ØˆFÝ Ø$-ð/ñ /ô /ˆå2°;ÀCÐHÑHÔHˆˆ[ÑØ"ˆŒÔÐÐr#   c                 ó   — d S r:   r*   rP   s    r   ry   zDarwinCPUInfo._not_implk  rz   r#   c                 ó^   — t          | j        d                              dd¦  «        ¦  «        S )Nr{  zhw.ncpur   r  rP   s    r   rQ   zDarwinCPUInfo._getNCPUsm  s'   € Ý�4”9˜[Ô)×-Ò-¨i¸Ñ;Ô;Ñ<Ô<Ð<r#   c                 ó0   — | j         d         d         dk    S )Nr{  z
hw.machinezPower Macintoshr~   rP   s    r   Ú_is_Power_Macintoshz!DarwinCPUInfo._is_Power_Macintoshp  s   € ØŒy˜Ô% lÔ3Ð5FÒFÐFr#   c                 ó$   — | j         d         dk    S )Nrw  Úi386r~   rP   s    r   r  zDarwinCPUInfo._is_i386s  ó   € ØŒy˜Ô  &Ò(Ð(r#   c                 ó$   — | j         d         dk    S )Nrw  Úppcr~   rP   s    r   Ú_is_ppczDarwinCPUInfo._is_ppcu  s   € ØŒy˜Ô  %Ò'Ð'r#   c                 ó*   — | j         d         d|z  k    S )Nrx  zppc%sr~   r  s     r   rC  zDarwinCPUInfo.__machinex  s   € ØŒy˜Ô# w¨q¡yÒ0Ð0r#   c                 ó,   — |                       d¦  «        S )NiY  ©Ú_DarwinCPUInfo__machinerP   s    r   Ú
_is_ppc601zDarwinCPUInfo._is_ppc601z  ó   €  §¢°Ñ!4Ô!4Ð4r#   c                 ó,   — |                       d¦  «        S )NiZ  rˆ  rP   s    r   Ú
_is_ppc602zDarwinCPUInfo._is_ppc602{  r‹  r#   c                 ó,   — |                       d¦  «        S )Ni[  rˆ  rP   s    r   Ú
_is_ppc603zDarwinCPUInfo._is_ppc603|  r‹  r#   c                 ó,   — |                       d¦  «        S )NÚ603erˆ  rP   s    r   Ú_is_ppc603ezDarwinCPUInfo._is_ppc603e}  ó   €  $§.¢.°Ñ"8Ô"8Ð8r#   c                 ó,   — |                       d¦  «        S )Ni\  rˆ  rP   s    r   Ú
_is_ppc604zDarwinCPUInfo._is_ppc604~  r‹  r#   c                 ó,   — |                       d¦  «        S )NÚ604erˆ  rP   s    r   Ú_is_ppc604ezDarwinCPUInfo._is_ppc604e  r“  r#   c                 ó,   — |                       d¦  «        S )Nil  rˆ  rP   s    r   Ú
_is_ppc620zDarwinCPUInfo._is_ppc620€  r‹  r#   c                 ó,   — |                       d¦  «        S )Niv  rˆ  rP   s    r   Ú
_is_ppc630zDarwinCPUInfo._is_ppc630�  r‹  r#   c                 ó,   — |                       d¦  «        S )Niä  rˆ  rP   s    r   Ú
_is_ppc740zDarwinCPUInfo._is_ppc740‚  r‹  r#   c                 ó,   — |                       d¦  «        S )Niè  rˆ  rP   s    r   Ú_is_ppc7400zDarwinCPUInfo._is_ppc7400ƒ  ó   €  $§.¢.°Ñ"6Ô"6Ð6r#   c                 ó,   — |                       d¦  «        S )Ni  rˆ  rP   s    r   Ú_is_ppc7450zDarwinCPUInfo._is_ppc7450„  r¡  r#   c                 ó,   — |                       d¦  «        S )Niî  rˆ  rP   s    r   Ú
_is_ppc750zDarwinCPUInfo._is_ppc750…  r‹  r#   c                 ó,   — |                       d¦  «        S )Ni“  rˆ  rP   s    r   Ú
_is_ppc403zDarwinCPUInfo._is_ppc403†  r‹  r#   c                 ó,   — |                       d¦  «        S )Niù  rˆ  rP   s    r   Ú
_is_ppc505zDarwinCPUInfo._is_ppc505‡  r‹  r#   c                 ó,   — |                       d¦  «        S )Ni!  rˆ  rP   s    r   Ú
_is_ppc801zDarwinCPUInfo._is_ppc801ˆ  r‹  r#   c                 ó,   — |                       d¦  «        S )Ni5  rˆ  rP   s    r   Ú
_is_ppc821zDarwinCPUInfo._is_ppc821‰  r‹  r#   c                 ó,   — |                       d¦  «        S )Ni7  rˆ  rP   s    r   Ú
_is_ppc823zDarwinCPUInfo._is_ppc823Š  r‹  r#   c                 ó,   — |                       d¦  «        S )Ni\  rˆ  rP   s    r   Ú
_is_ppc860zDarwinCPUInfo._is_ppc860‹  r‹  r#   )re   rf   rg   r   rw   ry   rQ   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   ru  ru  `  s  € € € € € Ø€Dð#ð #ð #ð ÐÐð=ð =ð =ðGð Gð Gð)ð )ð )ð(ð (ð (ð1ð 1ð 1à4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø8Ð8Ð8Ø4Ð4Ð4Ø8Ð8Ð8Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø6Ð6Ð6Ø6Ð6Ð6Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ð4Ð4r#   ru  c                   ó¨   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚSunOSCPUInfoNc                 ó  — | j         �d S t          ddddd¬¦  «        }t          dd¬	¦  «        |d
<   t          d¦  «        D ]3}t	          j        d|¦  «        }|r|                     d¦  «        |d<    nŒ4|| j        _         d S )Nrw  ÚmachÚuname_iz
isainfo -bz
isainfo -n)rw  rµ  r¶  Ú	isainfo_bÚ	isainfo_nzuname -Xry  rz  Úuname_Xzpsrinfo -v 0z+\s*The (?P<p>[\w\d]+) processor operates atÚpÚ	processor)r   r"   r6   r'   rU   r�   rX   rs   )r<   r   r&   Úms       r   rw   zSunOSCPUInfo.__init__’  sª   € ØŒ9Ð ØˆFÝ Ø!'Ø$-Ø&2Ø&2ð	ñ ô ˆõ 1°ÀÐEÑEÔEˆˆY‰Ý# NÑ3Ô3ð 	ð 	ˆDÝ”ÐGÈÑNÔNˆAØð Ø$%§G¢G¨C¡L¤L��[Ñ!Ø�ðð #ˆŒÔÐÐr#   c                 ó   — d S r:   r*   rP   s    r   ry   zSunOSCPUInfo._not_impl£  rz   r#   c                 ó$   — | j         d         dk    S )Nr¸  r�  r~   rP   s    r   r  zSunOSCPUInfo._is_i386¥  s   € ØŒy˜Ô% vÒ-Ð-r#   c                 ó$   — | j         d         dk    S )Nr¸  Úsparcr~   rP   s    r   Ú	_is_sparczSunOSCPUInfo._is_sparc§  s   € ØŒy˜Ô% wÒ.Ð.r#   c                 ó$   — | j         d         dk    S )Nr¸  Úsparcv9r~   rP   s    r   Ú_is_sparcv9zSunOSCPUInfo._is_sparcv9©  ó   € ØŒy˜Ô% yÒ0Ð0r#   c                 ó^   — t          | j        d                              dd¦  «        ¦  «        S )Nr¹  ÚNumCPUr   r  rP   s    r   rQ   zSunOSCPUInfo._getNCPUs¬  s'   € Ý�4”9˜YÔ'×+Ò+¨H°aÑ8Ô8Ñ9Ô9Ð9r#   c                 ó$   — | j         d         dk    S )Nrw  Úsun4r~   rP   s    r   Ú_is_sun4zSunOSCPUInfo._is_sun4¯  r‚  r#   c                 óF   — t          j        d| j        d         ¦  «        d uS )NÚSUNWr¶  rŒ   rP   s    r   Ú_is_SUNWzSunOSCPUInfo._is_SUNW²  s    € ÝŒx˜ ¤¨9Ô!5Ñ6Ô6¸dÐBÐBr#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz.*SPARCstation-5r¶  rŒ   rP   s    r   Ú_is_sparcstation5zSunOSCPUInfo._is_sparcstation5´  s!   € ÝŒxÐ+¨T¬Y°yÔ-AÑBÔBÈ$ÐNÐNr#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz	.*Ultra-1r¶  rŒ   rP   s    r   Ú
_is_ultra1zSunOSCPUInfo._is_ultra1¶  ó    € ÝŒx˜ d¤i°	Ô&:Ñ;Ô;À4ÐGÐGr#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz.*Ultra-250r¶  rŒ   rP   s    r   Ú_is_ultra250zSunOSCPUInfo._is_ultra250¸  s    € ÝŒx˜¨¬	°)Ô(<Ñ=Ô=ÀTÐIÐIr#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz	.*Ultra-2r¶  rŒ   rP   s    r   Ú
_is_ultra2zSunOSCPUInfo._is_ultra2º  rÒ  r#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz
.*Ultra-30r¶  rŒ   rP   s    r   Ú_is_ultra30zSunOSCPUInfo._is_ultra30¼  ó    € ÝŒx˜ t¤y°Ô';Ñ<Ô<ÀDÐHÐHr#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz	.*Ultra-4r¶  rŒ   rP   s    r   Ú
_is_ultra4zSunOSCPUInfo._is_ultra4¾  rÒ  r#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz.*Ultra-5_10r¶  rŒ   rP   s    r   Ú_is_ultra5_10zSunOSCPUInfo._is_ultra5_10À  s    € ÝŒx˜¨¬°9Ô)=Ñ>Ô>ÀdÐJÐJr#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz	.*Ultra-5r¶  rŒ   rP   s    r   Ú
_is_ultra5zSunOSCPUInfo._is_ultra5Â  rÒ  r#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz
.*Ultra-60r¶  rŒ   rP   s    r   Ú_is_ultra60zSunOSCPUInfo._is_ultra60Ä  rÙ  r#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz
.*Ultra-80r¶  rŒ   rP   s    r   Ú_is_ultra80zSunOSCPUInfo._is_ultra80Æ  rÙ  r#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz.*Ultra-Enterpriser¶  rŒ   rP   s    r   Ú_is_ultraenterpricez SunOSCPUInfo._is_ultraenterpriceÈ  s!   € ÝŒxÐ-¨t¬y¸Ô/CÑDÔDÈDÐPÐPr#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz.*Ultra-Enterprise-10000r¶  rŒ   rP   s    r   Ú_is_ultraenterprice10kz#SunOSCPUInfo._is_ultraenterprice10kÊ  s"   € ÝŒxÐ3°T´Y¸yÔ5IÑJÔJÐRVÐVÐVr#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz
.*Sun-Firer¶  rŒ   rP   s    r   Ú_is_sunfirezSunOSCPUInfo._is_sunfireÌ  rÙ  r#   c                 óF   — t          j        d| j        d         ¦  «        d uS )Nz.*Ultrar¶  rŒ   rP   s    r   Ú	_is_ultrazSunOSCPUInfo._is_ultraÎ  s    € ÝŒx˜
 D¤I¨iÔ$8Ñ9Ô9ÀÐEÐEr#   c                 ó$   — | j         d         dk    S )Nr»  Úsparcv7r~   rP   s    r   Ú_is_cpusparcv7zSunOSCPUInfo._is_cpusparcv7Ñ  rÅ  r#   c                 ó$   — | j         d         dk    S )Nr»  Úsparcv8r~   rP   s    r   Ú_is_cpusparcv8zSunOSCPUInfo._is_cpusparcv8Ó  rÅ  r#   c                 ó$   — | j         d         dk    S )Nr»  rÃ  r~   rP   s    r   Ú_is_cpusparcv9zSunOSCPUInfo._is_cpusparcv9Õ  rÅ  r#   )re   rf   rg   r   rw   ry   r  rÁ  rÄ  rQ   rÊ  rÍ  rÏ  rÑ  rÔ  rÖ  rØ  rÛ  rÝ  rß  rá  rã  rå  rç  ré  rë  rî  rñ  ró  r*   r#   r   r³  r³  Ž  s¹  € € € € € à€Dð#ð #ð #ð" ÐÐð.ð .ð .ð/ð /ð /ð1ð 1ð 1ð:ð :ð :ð)ð )ð )ðCð Cð CðOð Oð OðHð Hð HðJð Jð JðHð Hð HðIð Ið IðHð Hð HðKð Kð KðHð Hð HðIð Ið IðIð Ið IðQð Qð QðWð Wð WðIð Ið IðFð Fð Fð1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð 1ð 1r#   r³  c                   óÐ   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#dS )"ÚWin32CPUInfoNz,HARDWARE\DESCRIPTION\System\CentralProcessorc                 ó†  — | j         �d S g }	 dd l}t          j        dt          j        ¦  «        }|                     |j        | j        ¦  «        }d}	 	 |                     ||¦  «        }|dz  }| 	                    d|i¦  «         |                     ||¦  «        }d}	 	 | 
                    ||¦  «        \  }	}
}|dz   }|
|d         |	<   |	dk    r˜|                     |
¦  «        }|r�t          |                     d¦  «        ¦  «        |d         d	<   t          |                     d
¦  «        ¦  «        |d         d<   t          |                     d¦  «        ¦  «        |d         d<   n# |j        $ r Y nw xY wŒÛn# |j        $ r Y nw xY w�Œ:n'# t          $ r}t!          |d¦  «         Y d }~nd }~ww xY w|| j        _         d S )Nr   zFfamily\s+(?P<FML>\d+)\s+model\s+(?P<MDL>\d+)\s+stepping\s+(?P<STP>\d+)Tr   Ú	Processorro   Ú
IdentifierÚFMLÚFamilyÚMDLÚModelÚSTPÚSteppingz
(ignoring))r   ÚwinregrU   rV   ræ   ÚOpenKeyÚHKEY_LOCAL_MACHINEÚpkeyÚEnumKeyrq   Ú	EnumValuerW   r  rX   Úerrorr;   Úprintrs   )r<   r   rÿ  ÚprgxÚchndÚpnumÚprocÚphndÚpidxrL   rv   ÚvtpeÚsrchr   s                 r   rw   zWin32CPUInfo.__init__à  s/  € ØŒ9Ð ØˆFØˆð!	#àˆMˆMˆMå”:ð <Ý=?¼]ñLô LˆDà—’ Ô 9¸4¼9ÑEÔEˆDØˆDðPðPØŸš¨¨dÑ3Ô3�Dð ˜!‘G�DØ—K’K ¨TÐ 2Ñ3Ô3Ð3ØŸš¨¨dÑ3Ô3�DØ�DðPðPØ.4×.>Ò.>¸tÀTÑ.JÔ.JÑ-˜D %¨ð "& a¡˜DØ+0˜D œH T™NØ# \Ò1Ð1Ø%)§[¢[°Ñ%7Ô%7 Ø#'ð !PÝ7:¸4¿:º:ÀeÑ;LÔ;LÑ7MÔ7M D¨¤H¨XÑ$6Ý69¸$¿*º*ÀUÑ:KÔ:KÑ6LÔ6L D¨¤H¨WÑ$5Ý9<¸T¿ZºZÈÑ=NÔ=NÑ9OÔ9O D¨¤H¨ZÑ$8øøð  &œ|ð "ð "ð "Ø!˜Eð"øøøðPð "øð ”|ð ð ð Ø�EðøøøñPð øõ( ð 	#ð 	#ð 	#Ý�!�\Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"øøøøð	#øøøà"ˆŒÔÐÐsa   �AF ÁE; Á*5F Â E) Â:B/F Å)
E6Å3F Å5E6Å6F Å;
FÆF ÆFÆF Æ
F2ÆF-Æ-F2c                 ó   — d S r:   r*   rP   s    r   ry   zWin32CPUInfo._not_impl  rz   r#   c                 ó0   — | j         d         d         dk    S )Nr   ÚVendorIdentifierr}   r~   rP   s    r   r   zWin32CPUInfo._is_AMD  ó   € ØŒy˜Œ|Ð.Ô/°Ò?Ð?r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S ©Nr   rú  é   r˜   rP   s    r   Ú	_is_Am486zWin32CPUInfo._is_Am486  ó%   € Ø�{Š{‰}Œ}Ð: ¤¨1¤¨hÔ!7¸Ò!:Ð:r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S r  r˜   rP   s    r   Ú
_is_Am5x86zWin32CPUInfo._is_Am5x86  r  r#   c                 ó‚   — |                       ¦   «         o+| j        d         d         dk    o| j        d         d         dv S )Nr   rú  é   rü  )r   r   r0   é   r˜   rP   s    r   Ú	_is_AMDK5zWin32CPUInfo._is_AMDK5  sA   € Ø�{Š{‰}Œ}ð 9 ¤¨1¤¨hÔ!7¸Ò!:ð 9Ø”9˜Q”< Ô(¨LÐ8ð	9r#   c                 ó‚   — |                       ¦   «         o+| j        d         d         dk    o| j        d         d         dv S )Nr   rú  r  rü  )é   é   r˜   rP   s    r   Ú	_is_AMDK6zWin32CPUInfo._is_AMDK6  sA   € Ø�{Š{‰}Œ}ð 3 ¤¨1¤¨hÔ!7¸Ò!:ð 3Ø”9˜Q”< Ô(¨FÐ2ð	3r#   c                 ó†   — |                       ¦   «         o-| j        d         d         dk    o| j        d         d         dk    S )Nr   rú  r  rü  é   r˜   rP   s    r   Ú_is_AMDK6_2zWin32CPUInfo._is_AMDK6_2  óA   € Ø�{Š{‰}Œ}ð , ¤¨1¤¨hÔ!7¸Ò!:ð ,Ø”9˜Q”< Ô(¨!Ò+ð	,r#   c                 ó†   — |                       ¦   «         o-| j        d         d         dk    o| j        d         d         dk    S )Nr   rú  r  rü  é	   r˜   rP   s    r   Ú_is_AMDK6_3zWin32CPUInfo._is_AMDK6_3!  r%  r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S ©Nr   rú  r  r˜   rP   s    r   Ú	_is_AMDK7zWin32CPUInfo._is_AMDK7%  s%   € Ø�{Š{‰}Œ}Ð< ¤¨1¤¨hÔ!7¸1Ò!<Ð<r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S ©Nr   rú  é   r˜   rP   s    r   rš   zWin32CPUInfo._is_AMD64,  s%   € Ø�{Š{‰}Œ}Ð= ¤¨1¤¨hÔ!7¸2Ò!=Ð=r#   c                 ó0   — | j         d         d         dk    S )Nr   r  r·   r~   rP   s    r   r¸   zWin32CPUInfo._is_Intel1  r  r#   c                 ó0   — | j         d         d         dk    S )Nr   rú  r  r~   rP   s    r   r  zWin32CPUInfo._is_i3864  ó   € ØŒy˜Œ|˜HÔ% qÒ(Ð(r#   c                 ó0   — | j         d         d         dk    S r  r~   rP   s    r   r»   zWin32CPUInfo._is_i4867  r1  r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S ©Nr   rú  r  r¿   rP   s    r   rÁ   zWin32CPUInfo._is_i586:  ó%   € Ø�}Š}‰ŒÐ< 4¤9¨Q¤<°Ô#9¸1Ò#<Ð<r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S r*  r¿   rP   s    r   rÅ   zWin32CPUInfo._is_i686=  r5  r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S r4  r¿   rP   s    r   rÊ   zWin32CPUInfo._is_Pentium@  r5  r#   c                 ó†   — |                       ¦   «         o-| j        d         d         dk    o| j        d         d         dk    S )Nr   rú  r  rü  r  r¿   rP   s    r   rÐ   zWin32CPUInfo._is_PentiumMMXC  óA   € Ø�}Š}‰Œð , 4¤9¨Q¤<°Ô#9¸1Ò#<ð ,Ø”9˜Q”< Ô(¨!Ò+ð	,r#   c                 ó†   — |                       ¦   «         o-| j        d         d         dk    o| j        d         d         dk    S )Nr   rú  r  rü  r   r¿   rP   s    r   rÎ   zWin32CPUInfo._is_PentiumProG  r9  r#   c                 ó‚   — |                       ¦   «         o+| j        d         d         dk    o| j        d         d         dv S )Nr   rú  r  rü  )r  r  r  r¿   rP   s    r   rÌ   zWin32CPUInfo._is_PentiumIIK  sA   € Ø�}Š}‰Œð 6 4¤9¨Q¤<°Ô#9¸1Ò#<ð 6Ø”9˜Q”< Ô(¨IÐ5ð	6r#   c                 ó‚   — |                       ¦   «         o+| j        d         d         dk    o| j        d         d         dv S )Nr   rú  r  rü  ©r   r#  r'  é
   é   r¿   rP   s    r   rÓ   zWin32CPUInfo._is_PentiumIIIO  sB   € Ø�}Š}‰Œð > 4¤9¨Q¤<°Ô#9¸1Ò#<ð >Ø”9˜Q”< Ô(Ð,=Ð=ð	>r#   c                 óX   — |                       ¦   «         o| j        d         d         dk    S r-  r¿   rP   s    r   rÕ   zWin32CPUInfo._is_PentiumIVS  s%   € Ø�}Š}‰ŒÐ= 4¤9¨Q¤<°Ô#9¸2Ò#=Ð=r#   c                 ó‚   — |                       ¦   «         o+| j        d         d         dk    o| j        d         d         dv S )Nr   rú  r  rü  )r'  é   é   r¿   rP   s    r   r×   zWin32CPUInfo._is_PentiumMV  sA   € Ø�}Š}‰Œð 8 4¤9¨Q¤<°Ô#9¸QÒ#>ð 8Ø”9˜Q”< Ô(¨KÐ7ð	8r#   c                 ó‚   — |                       ¦   «         o+| j        d         d         dk    o| j        d         d         dv S )Nr   rú  r  rü  )r.  é   é   r¿   rP   s    r   râ   zWin32CPUInfo._is_Core2Z  sA   € Ø�}Š}‰Œð 9 4¤9¨Q¤<°Ô#9¸QÒ#>ð 9Ø”9˜Q”< Ô(¨LÐ8ð	9r#   c                 ó2   — t          | j        ¦  «        dk    S rO   ré   rP   s    r   rê   zWin32CPUInfo._is_singleCPU`  rë   r#   c                 ó*   — t          | j        ¦  «        S r:   ré   rP   s    r   rQ   zWin32CPUInfo._getNCPUsc  rí   r#   c                 ó  — |                       ¦   «         rC| j        d         d         dk    r| j        d         d         dk    p| j        d         d         dv S |                      ¦   «         r| j        d         d         dv S dS )	Nr   rú  r  rü  r  ©r  r.  ©r  r  r.  F©rÀ   r   r™   rP   s    r   r÷   zWin32CPUInfo._has_mmxf  s‚   € Ø�=Š=‰?Œ?ð 	Ø”I˜a”L Ô*¨AÒ-ÐJ°$´)¸A´,¸wÔ2GÈÒ2Jð :Ø”y ”| HÔ-°Ð8ð:à�[Š[‰]Œ]ð 	Ø”9˜Q”< Ô)¨ZÐ7Ð7à�5r#   c                 ób  — |                       ¦   «         rC| j        d         d         dk    r| j        d         d         dv p| j        d         d         dk    S |                      ¦   «         rC| j        d         d         dk    r| j        d         d         dv p| j        d         d         dk    S dS )	Nr   rú  r  rü  r=  r.  )r  r   r#  r>  FrL  rP   s    r   rú   zWin32CPUInfo._has_sseo  s½   € Ø�=Š=‰?Œ?ð 		Ø”Y˜q”\ (Ô+¨QÒ.ð @Ø”Y˜q”\ 'Ô*Ð.?Ð?ð3àœ	 !œ XÔ.°Ò2ð4ð �[Š[‰]Œ]ð 	Ø”Y˜q”\ (Ô+¨QÒ.ð <Ø”Y˜q”\ 'Ô*¨mÐ;ð3àœ	 !œ XÔ.°Ò2ð4ð �5r#   c                 óö   — |                       ¦   «         r<|                      ¦   «         p'|                      ¦   «         p|                      ¦   «         S |                      ¦   «         r|                      ¦   «         S dS )NF)rÀ   Úis_Pentium4Úis_PentiumMÚis_Core2r™   Úis_AMD64rP   s    r   rü   zWin32CPUInfo._has_sse2{  sl   € Ø�=Š=‰?Œ?ð 	Ø×#Ò#Ñ%Ô%ð &¨×)9Ò)9Ñ);Ô);ð &Ø—m’m‘o”oð&à�[Š[‰]Œ]ð 	Ø—=’=‘?”?Ð"à�5r#   c                 óT   — |                       ¦   «         o| j        d         d         dv S )Nr   rú  rK  r˜   rP   s    r   r  zWin32CPUInfo._has_3dnow„  s%   € Ø�{Š{‰}Œ}ÐE ¤¨1¤¨hÔ!7¸:Ð!EÐEr#   c                 óT   — |                       ¦   «         o| j        d         d         dv S )Nr   rú  rJ  r˜   rP   s    r   r  zWin32CPUInfo._has_3dnowext‡  s%   € Ø�{Š{‰}Œ}ÐB ¤¨1¤¨hÔ!7¸7Ð!BÐBr#   )$re   rf   rg   r   r  rw   ry   r   r  r  r  r!  r$  r(  r+  rš   r¸   r  r»   rÁ   rÅ   rÊ   rÐ   rÎ   rÌ   rÓ   rÕ   r×   râ   rê   rQ   r÷   rú   rü   r  r  r*   r#   r   rõ  rõ  Ø  sú  € € € € € à€DØ:€Dð
&#ð &#ð &#ðP ÐÐð@ð @ð @ð;ð ;ð ;ð;ð ;ð ;ð9ð 9ð 9ð3ð 3ð 3ð,ð ,ð ,ð,ð ,ð ,ð=ð =ð =ð>ð >ð >ð
@ð @ð @ð)ð )ð )ð)ð )ð )ð=ð =ð =ð=ð =ð =ð=ð =ð =ð,ð ,ð ,ð,ð ,ð ,ð6ð 6ð 6ð>ð >ð >ð>ð >ð >ð8ð 8ð 8ð9ð 9ð 9ð#ð #ð #ðð ð ðð ð ð
ð 
ð 
ðð ð ðFð Fð FðCð Cð Cð Cð Cr#   rõ  ÚlinuxÚirixÚdarwinÚsunosÚwin32Úcygwin)r   r   )rh   Ú__all__r   rS   rU   ÚsysrI   r   Ú
subprocessr   r   r"   r'   r6   r8   rj   r	  ru  r³  rõ  rE   Úcpuinfor   r*   r#   r   ú<module>r_     s¯  ððð ð ˆ'€à 	€	€	€	Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€à &Ð &Ð &Ð &Ð &Ð &ðð ð ð ðð ð ð ðð ð ð ð 8<Ø&'ðð ð ð ð!*ð !*ð !*ð !*ð !*ñ !*ô !*ð !*ðFAOð AOð AOð AOð AO�;ñ AOô AOð AOðF7Lð 7Lð 7Lð 7Lð 7L�+ñ 7Lô 7Lð 7Lðt+5ð +5ð +5ð +5ð +5�Kñ +5ô +5ð +5ð\H1ð H1ð H1ð H1ð H1�;ñ H1ô H1ð H1ðTpCð pCð pCð pCð pC�;ñ pCô pCð pCðd „<×Ò˜7Ñ#Ô#ð Ø€G€GØ„\×Ò˜VÑ$Ô$ð Ø€G€GØ„\�XÒÐØ€G€GØ„\×Ò˜WÑ%Ô%ð Ø€G€GØ„\×Ò˜WÑ%Ô%ð Ø€G€GØ„\×Ò˜XÑ&Ô&ð Ø€G€Gð €Gà€g�i„i€€€r#   