ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     U
    e5dE                     @   s   d Z ddlZddlZdZddlmZmZm	Z	 ddlm
Z
 ddlmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZ eekredeeejdkrddlmZ eZejdkrejdkree jdd dk reZddlmZmZ m!Z"m#Z$ d}ddZ%d~ddZ&i Z'dd Z(ejdkr\ddlm)Z* ddlm+Z, i Z-dd Z.e.j rte(j /dde._ nejdkrtddlm0Z* ddlm1Z1m2Z2m3Z3m4Z4m5Z5 ddlm6Z6m7Z7 dd lm8Z8 dd!d"Z9G d#d$ d$e8Z:e9e:d% G d&d' d'e8Z;e9e; G d(d) d)e8Z<e9e< G d*d+ d+e8Z=e9e= G d,d- d-e8Z>e9e> ed.ed/krLe=Z?e>Z@n0G d0d1 d1e8Z?e9e? G d2d3 d3e8Z@e9e@ G d4d5 d5e8ZAe9eA G d6d7 d7e8ZBe9eB G d8d9 d9e8ZCe1eCe1eBkreBZCed/ed:kre=ZDe>ZEn0G d;d< d<e8ZDe9eD G d=d> d>e8ZEe9eE G d?d@ d@e8ZFeF eF_GeF_He9eF G dAdB dBe8ZIeI eI_GeI_He9eI G dCdD dDe8ZJeJ eJ_GeJ_He9eJ G dEdF dFe8ZKe9eKd% G dGdH dHe8ZLeLZMe9eL G dIdJ dJe8ZNddKlmOZOmPZPmQZQ G dLdM dMe8ZRG dNdO dOe8ZSdPdQ ZTddRdSZUdTdU ZVdVdW ZWG dXdY dYeXZYG dZd[ d[eYZZejdkrG d\d] d]eYZ[dd^lm\Z\m8Z8 G d_d` d`e8Z]G dadb dbeYZ^G dcdd ddeXZ_e_eYZ`e_eZZaejdkreZdedejbZcn,ejdfkreZdgejdddh  ZcneZdZcejdkr8e_e[Zee_e^ZfeejgjhZhddilmiZimjZj ddjdkZke1e@e1eLkrTe@Zle?Zmn6e1e>e1eLkrpe>Zle=Zmne1eEe1eLkreEZleDZmddllmnZnmoZompZpmqZq e(eLeLeLelenZre(eLeLe?eleoZsdmdn Ztete:eLe:e:eqZudodp Zvete:eLe?epZwddrdsZxzddtlmyZy W n ezk
r(   Y nX ete:eLe?eyZ{ddudvZ|ejdkr`dwdx Z}dydz Z~dd{lmZmZ eIZeFZe;e?e=eDfD ]@Ze1edhkreZn&e1ed|kreZne1edkreZqe<e@e>eEfD ]@Ze1edhkreZn&e1ed|kreZne1edkreZq[eT  dS )z,create and manipulate C data types in Python    Nz1.1.0)Union	StructureArray)_Pointer)CFuncPtr)__version__)
RTLD_LOCALRTLD_GLOBAL)ArgumentErrorcalcsizezVersion number mismatchnt)FormatErrorposixdarwin.   )FUNCFLAG_CDECLFUNCFLAG_PYTHONAPIFUNCFLAG_USE_ERRNOFUNCFLAG_USE_LASTERRORc                 C   sz   t | trD|dkrt| d }td| | t| }| }| |_|S t | trntdd|  t|  }| }|S t| dS )zcreate_string_buffer(aBytes) -> character array
    create_string_buffer(anInteger) -> character array
    create_string_buffer(aBytes, anInteger) -> character array
    N   zctypes.create_string_buffer)	
isinstancebyteslen_sysauditc_charvalueint	TypeErrorinitsizeZbuftypeZbuf r$   '/usr/lib64/python3.8/ctypes/__init__.pycreate_string_buffer/   s    

r&   c                 C   s
   t | |S N)r&   )r"   r#   r$   r$   r%   c_bufferC   s    r(   c                    s   t |ddrtO |ddr,tO |r@td|  zt f W S  tk
r   G  fdddt}|t f< | Y S X dS )a  CFUNCTYPE(restype, *argtypes,
                 use_errno=False, use_last_error=False) -> function prototype.

    restype: the result type
    argtypes: a sequence specifying the argument types

    The function prototype can be called in different ways to create a
    callable object:

    prototype(integer address) -> foreign function
    prototype(callable) -> create and return a C callable function from callable
    prototype(integer index, method name[, paramflags]) -> foreign function calling a COM method
    prototype((ordinal number, dll object)[, paramflags]) -> foreign function exported by ordinal
    prototype((function name, dll object)[, paramflags]) -> foreign function exported by name
    	use_errnoFuse_last_error!unexpected keyword argument(s) %sc                       s   e Zd Z ZZZdS )z CFUNCTYPE.<locals>.CFunctionTypeN__name__
__module____qualname__
_argtypes_	_restype__flags_r$   argtypesflagsrestyper$   r%   CFunctionTypee   s   r7   N)	_FUNCFLAG_CDECLpop_FUNCFLAG_USE_ERRNO_FUNCFLAG_USE_LASTERROR
ValueErrorkeys_c_functype_cacheKeyError	_CFuncPtr)r6   r4   kwr7   r$   r3   r%   	CFUNCTYPEK   s    rB   )LoadLibrary)FUNCFLAG_STDCALLc                    s   t |ddrtO |ddr,tO |r@td|  zt f W S  tk
r   G  fdddt}|t f< | Y S X d S )Nr)   Fr*   r+   c                       s   e Zd Z ZZZdS )z$WINFUNCTYPE.<locals>.WinFunctionTypeNr,   r$   r3   r$   r%   WinFunctionType}   s   rE   )	_FUNCFLAG_STDCALLr9   r:   r;   r<   r=   _win_functype_cacher?   r@   )r6   r4   rA   rE   r$   r3   r%   WINFUNCTYPEq   s    rH   )dlopen)sizeofbyref	addressof	alignmentresize)	get_errno	set_errno)_SimpleCDatac                 C   sJ   ddl m} |d kr| j}t| || }}||krFtd| ||f d S )Nr   r   z"sizeof(%s) wrong: %d instead of %d)structr   _type_rJ   SystemError)typtypecoder   ZactualZrequiredr$   r$   r%   _check_size   s    rW   c                       s    e Zd ZdZ fddZ  ZS )	py_objectOc                    s4   zt   W S  tk
r.   dt| j  Y S X d S )Nz
%s(<NULL>))super__repr__r<   typer-   self	__class__r$   r%   r[      s    zpy_object.__repr__)r-   r.   r/   rS   r[   __classcell__r$   r$   r_   r%   rX      s   rX   Pc                   @   s   e Zd ZdZdS )c_shorthNr-   r.   r/   rS   r$   r$   r$   r%   rc      s   rc   c                   @   s   e Zd ZdZdS )c_ushortHNre   r$   r$   r$   r%   rf      s   rf   c                   @   s   e Zd ZdZdS )c_longlNre   r$   r$   r$   r%   rh      s   rh   c                   @   s   e Zd ZdZdS )c_ulongLNre   r$   r$   r$   r%   rj      s   rj   iri   c                   @   s   e Zd ZdZdS )c_intrl   Nre   r$   r$   r$   r%   rm      s   rm   c                   @   s   e Zd ZdZdS )c_uintINre   r$   r$   r$   r%   rn      s   rn   c                   @   s   e Zd ZdZdS )c_floatfNre   r$   r$   r$   r%   rp      s   rp   c                   @   s   e Zd ZdZdS )c_doubledNre   r$   r$   r$   r%   rr      s   rr   c                   @   s   e Zd ZdZdS )c_longdoublegNre   r$   r$   r$   r%   rt      s   rt   qc                   @   s   e Zd ZdZdS )
c_longlongrv   Nre   r$   r$   r$   r%   rw      s   rw   c                   @   s   e Zd ZdZdS )c_ulonglongQNre   r$   r$   r$   r%   rx      s   rx   c                   @   s   e Zd ZdZdS )c_ubyteBNre   r$   r$   r$   r%   rz      s   rz   c                   @   s   e Zd ZdZdS )c_bytebNre   r$   r$   r$   r%   r|      s   r|   c                   @   s   e Zd ZdZdS )r   cNre   r$   r$   r$   r%   r      s   r   c                   @   s   e Zd ZdZdd ZdS )c_char_pzc                 C   s   d| j jt| jf S Nz%s(%s)r`   r-   c_void_pZfrom_bufferr   r]   r$   r$   r%   r[      s    zc_char_p.__repr__Nr-   r.   r/   rS   r[   r$   r$   r$   r%   r      s   r   c                   @   s   e Zd ZdZdS )r   rb   Nre   r$   r$   r$   r%   r      s   r   c                   @   s   e Zd ZdZdS )c_bool?Nre   r$   r$   r$   r%   r      s   r   )POINTERpointer_pointer_type_cachec                   @   s   e Zd ZdZdd ZdS )	c_wchar_pZc                 C   s   d| j jt| jf S r   r   r]   r$   r$   r%   r[      s    zc_wchar_p.__repr__Nr   r$   r$   r$   r%   r      s   r   c                   @   s   e Zd ZdZdS )c_wcharuNre   r$   r$   r$   r%   r     s   r   c                   C   sF   t   t  tjdkr"t  tjtt	_t
jtt_tt d < d S )Nr   )r   clearr>   _osnamerG   r   Z
from_paramr   r   r   r   r   r$   r$   r$   r%   _reset_cache  s    
r   c                 C   s   t | trh|dkrBttdkr6tdd | D d }nt| d }td| | t| }| }| |_|S t | t	rtdd|  t|  }| }|S t
| dS )zcreate_unicode_buffer(aString) -> character array
    create_unicode_buffer(anInteger) -> character array
    create_unicode_buffer(aString, anInteger) -> character array
    N   c                 s   s"   | ]}t |d krdndV  qdS )i  r   r   N)ord).0r~   r$   r$   r%   	<genexpr>  s     z(create_unicode_buffer.<locals>.<genexpr>r   zctypes.create_unicode_buffer)r   strrJ   r   sumr   r   r   r   r   r    r!   r$   r$   r%   create_unicode_buffer  s     

r   c                 C   sL   t |d d k	rtdt| t kr,td| | | t |< t t| = d S )Nz%This type already exists in the cachezWhat's this???)r   getRuntimeErroridZset_type)r   clsr$   r$   r%   SetPointerType.  s    
r   c                 C   s   | | S r'   r$   )rU   r   r$   r$   r%   ARRAY8  s    r   c                   @   sP   e Zd ZdZeZeZdZdZ	dZ
eddddfddZdd	 Zd
d Zdd ZdS )CDLLa  An instance of this class represents a loaded dll/shared
    library, exporting functions using the standard C calling
    convention (named 'cdecl' on Windows).

    The exported functions can be accessed as attributes, or by
    indexing with the function name.  Examples:

    <obj>.qsort -> callable object
    <obj>['qsort'] -> callable object

    Calling the functions releases the Python GIL during the call and
    reacquires it afterwards.
    z<uninitialized>r   NFc           	         s   |_ j |r tO  |r$ tO  tjdrV|rV|drVd|krV|tj	tj
B O }tjdkr|d k	rn|}n6dd l}|j}d|ksd|kr|j _ ||jO }G  fdd	d	t}|_|d krtj |_n|_d S )
NZaix)z.a(r   r   /\c                       s   e Zd Z ZjZdS )zCDLL.__init__.<locals>._FuncPtrN)r-   r.   r/   r2   _func_restype_r1   r$   r5   r^   r$   r%   _FuncPtro  s   r   )_name_func_flags_r:   r;   r   platform
startswithendswithr   ZRTLD_MEMBERRTLD_NOWr   r   Z!_LOAD_LIBRARY_SEARCH_DEFAULT_DIRSZ_getfullpathnameZ!_LOAD_LIBRARY_SEARCH_DLL_LOAD_DIRr@   r   _dlopen_handle)	r^   r   modeZhandler)   r*   Zwinmoder   r   r$   r   r%   __init__S  s,    

zCDLL.__init__c                 C   s8   d| j j| j| jtjd d @ t| tjd d @ f S )Nz<%s '%s', handle %x at %#x>r   r   )r`   r-   r   r   r   maxsizer   r]   r$   r$   r%   r[   y  s    
zCDLL.__repr__c                 C   s6   | dr|drt|| |}t| || |S )N__)r   r   AttributeError__getitem__setattr)r^   r   funcr$   r$   r%   __getattr__  s
    
zCDLL.__getattr__c                 C   s"   |  || f}t|ts||_|S r'   )r   r   r   r-   )r^   Zname_or_ordinalr   r$   r$   r%   r     s    
zCDLL.__getitem__)r-   r.   r/   __doc__r8   r   rm   r   r   r   r   DEFAULT_MODEr   r[   r   r   r$   r$   r$   r%   r   >  s   
&r   c                   @   s   e Zd ZdZeeB ZdS )PyDLLzThis class represents the Python library itself.  It allows
    accessing Python API functions.  The GIL is not released, and
    Python exceptions are handled correctly.
    N)r-   r.   r/   r   r8   _FUNCFLAG_PYTHONAPIr   r$   r$   r$   r%   r     s   r   c                   @   s   e Zd ZdZeZdS )WinDLLznThis class represents a dll exporting functions using the
        Windows stdcall calling convention.
        N)r-   r.   r/   r   rF   r   r$   r$   r$   r%   r     s   r   )_check_HRESULTrQ   c                   @   s   e Zd ZdZeZdS )HRESULTri   N)r-   r.   r/   rS   r   Z_check_retval_r$   r$   r$   r%   r     s   
r   c                   @   s   e Zd ZdZeZeZdS )OleDLLzThis class represents a dll exporting functions using the
        Windows stdcall calling convention, and returning HRESULT.
        HRESULT error values are automatically raised as OSError
        exceptions.
        N)r-   r.   r/   r   rF   r   r   r   r$   r$   r$   r%   r     s   r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
LibraryLoaderc                 C   s
   || _ d S r'   _dlltype)r^   Zdlltyper$   r$   r%   r     s    zLibraryLoader.__init__c                 C   s.   |d dkrt || |}t| || |S )Nr   _)r   r   r   )r^   r   Zdllr$   r$   r%   r     s
    
zLibraryLoader.__getattr__c                 C   s
   t | |S r'   )getattrr^   r   r$   r$   r%   r     s    zLibraryLoader.__getitem__c                 C   s
   |  |S r'   r   r   r$   r$   r%   rC     s    zLibraryLoader.LoadLibraryN)r-   r.   r/   r   r   r   rC   r$   r$   r$   r%   r     s   r   z
python dllcygwinzlibpython%d.%d.dllr   )get_last_errorset_last_errorc                 C   s0   | d krt  } |d kr"t|  }td |d | S r'   )GetLastErrorr   stripOSError)codeZdescrr$   r$   r%   WinError  s
    r   )_memmove_addr_memset_addr_string_at_addr
_cast_addrc                    s   G  fdddt }|S )Nc                       s   e Zd Z ZZeeB ZdS )z!PYFUNCTYPE.<locals>.CFunctionTypeN)r-   r.   r/   r0   r1   r8   r   r2   r$   r4   r6   r$   r%   r7     s   r7   )r@   )r6   r4   r7   r$   r   r%   
PYFUNCTYPE  s    r   c                 C   s   t | | |S r'   )_cast)objrU   r$   r$   r%   cast  s    r   c                 C   s
   t | |S )zAstring_at(addr[, size]) -> string

    Return the string at addr.)
_string_atZptrr#   r$   r$   r%   	string_at  s    r   )_wstring_at_addrc                 C   s
   t | |S )zFwstring_at(addr[, size]) -> string

        Return the string at addr.)_wstring_atr   r$   r$   r%   
wstring_at
  s    r   c                 C   sB   zt dt t dg}W n tk
r.   Y dS X || ||S d S )Ncomtypes.server.inprocserver*i)
__import__globalslocalsImportErrorDllGetClassObject)ZrclsidZriidZppvccomr$   r$   r%   r     s
    r   c                  C   s8   zt dt t dg} W n tk
r.   Y dS X |  S )Nr   r   r   )r   r   r   r   DllCanUnloadNow)r   r$   r$   r%   r     s
    r   )BigEndianStructureLittleEndianStructure   )N)N)N)N)NN)r   )r   )r   osr   sysr   r   Z_ctypesr   r   r   r   r   r@   Z_ctypes_versionr   r	   r
   rR   r   Z	_calcsize	Exceptionr   r   r   r   r   unamereleasesplitr   r8   r   r   r   r:   r   r;   r&   r(   r>   rB   rC   r   rD   rF   rG   rH   replacerI   rJ   rK   rL   rM   rN   rO   rP   rQ   rW   rX   rc   rf   rh   rj   rm   rn   rp   rr   rt   rw   rx   rz   Z__ctype_le__Z__ctype_be__r|   r   r   r   Zc_voidpr   r   r   r   r   r   r   r   r   r   objectr   r   r   r   r   r   r   ZcdllZpydllZ	dllhandleZ	pythonapiversion_infoZwindllZoledllZkernel32r   r   r   r   Zc_size_tZ	c_ssize_tr   r   r   r   ZmemmoveZmemsetr   r   r   r   r   r   r   r   r   r   r   Zctypes._endianr   r   Zc_int8Zc_uint8ZkindZc_int16Zc_int32Zc_int64Zc_uint16Zc_uint32Zc_uint64r$   r$   r$   r%   <module>   s4  


!




N	


      