ÿØÿà 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
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
    ֦i"G                     d   d Z ddl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 ddlmZ eek7  r
 edee      ej0                  dk(  rddlmZ eZej0                  dk(  rGej6                  dk(  r8 e ej:                         j<                  j?                  d      d         dk  reZddlm Z!m"Z#m$Z%m&Z' dpdZ(e(Z)i Z*d Z+ej0                  dk(  r?ddlm,Z- ddlm.Z/ i Z0d Z1e1j                   r7e+j                   je                  dd      e1_         nej0                  dk(  rddlm3Z- ddlm4Z4m5Z5m6Z6m7Z7m8Z8 ddlm9Z9m:Z: ddlm;Z; dpdZ< G d  d!e;      Z= e<e=d"        G d# d$e;      Z> e<e>        G d% d&e;      Z? e<e?        G d' d(e;      Z@ e<e@        G d) d*e;      ZA e<eA        ed+       ed,      k(  re@ZBeAZCn& G d- d.e;      ZB e<eB        G d/ d0e;      ZC e<eC        G d1 d2e;      ZD e<eD        G d3 d4e;      ZE e<eE        G d5 d6e;      ZF e4eF       e4eE      k(  reEZF ed,       ed7      k(  re@ZGeAZHn& G d8 d9e;      ZG e<eG        G d: d;e;      ZH e<eH        G d< d=e;      ZIeIxeI_J        eI_K         e<eI        G d> d?e;      ZLeLxeL_J        eL_K         e<eL        G d@ dAe;      ZMeMxeM_J        eM_K         e<eM        G dB dCe;      ZN e<eNd"        G dD dEe;      ZOeOZP e<eO        G dF dGe;      ZQddHlmRZRmSZSmTZT  G dI dJe;      ZU G dK dLe;      ZVdM ZWdpdNZXdO ZYdP ZZ G dQ dRe[      Z\ G dS dTe\      Z]ej0                  dk(  r) G dU dVe\      Z^ddWlm_Z_m;Z;  G dX dYe;      Z` G dZ d[e\      Za G d\ d]e[      Zb ebe\      Zc ebe]      Zdej0                  dk(  r e]d^dej                        Zfn0ej6                  d_k(  r e]d`ej                  dda z        Zfn e]d      Zfej0                  dk(  r2 ebe^      Zh ebea      Ziehj                  j                  ZkddblmlZlmmZm dqdcZn e4eC       e4eO      k(  reCZoeBZpn+ e4eA       e4eO      k(  reAZoe@Zpn e4eH       e4eO      k(  reHZoeGZpdddlmqZqmrZrmsZsmtZt   e+eOeOeOeo      eq      Zu  e+eOeOeBeo      er      Zvde Zw  ewe=eOe=e=      et      Zxdf Zy  ewe=eOeB      es      ZzdrdgZ{	 ddhlm|Z|   ewe=eOeB      e|      Z}drdiZ~ej0                  dk(  rdj Zdk ZddllmZmZ ddmlmZmZ eLZeIZe>eBe@eGfD ],  Z e4e      dak(  reZ e4e      dnk(  reZ e4e      dk(  s+eZ. e?eCeAeHfD ],  Z e4e      dak(  reZ e4e      dnk(  reZ e4e      dk(  s+eZ. [edk(  reZnednk(  reZn edoe       eW        y# e$ r Y w xY w)sz,create and manipulate C data types in Python    Nz1.1.0)Union	StructureArray)_Pointer)CFuncPtr)__version__)
RTLD_LOCALRTLD_GLOBAL)ArgumentError)SIZEOF_TIME_TcalcsizezVersion number mismatchnt)FormatErrorposixdarwin.   )FUNCFLAG_CDECLFUNCFLAG_PYTHONAPIFUNCFLAG_USE_ERRNOFUNCFLAG_USE_LASTERRORc                 *   t        | t              r@|t        |       dz   }t        j                  d| |       t
        |z  } |       }| |_        |S t        | t              r)t        j                  dd|        t
        | z  } |       }|S t        |       )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sizebuftypebufs       (/usr/lib64/python3.12/ctypes/__init__.pycreate_string_bufferr*   1   s    
 $<t9Q;D

0$=4-i	
	D#	

0$=4-i

D/    c                 6    t         |j                  dd      r	t        z  |j                  dd      r	t        z  |rt	        d|j                         z        	 t         f   S # t        $ r Y nw xY w G  fddt              }|t         f<   |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                        e Zd ZW  ZW ZW Zy) CFUNCTYPE.<locals>.CFunctionTypeN__name__
__module____qualname__
_argtypes_	_restype__flags_argtypesflagsrestypes   r)   CFunctionTyper1   f   s    
	r+   r=   )	_FUNCFLAG_CDECLpop_FUNCFLAG_USE_ERRNO_FUNCFLAG_USE_LASTERROR
ValueErrorkeys_c_functype_cacheKeyError	_CFuncPtr)r<   r:   kwr=   r;   s   ``  @r)   	CFUNCTYPErH   I   s      E	vvk5!$$	vv&((	<rwwyHII '8U!;<<  	  5Bw%01   A+ +	A76A7)LoadLibrary)FUNCFLAG_STDCALLc                 6    t         |j                  dd      r	t        z  |j                  dd      r	t        z  |rt	        d|j                         z        	 t         f   S # t        $ r Y nw xY w G  fddt              }|t         f<   |S )Nr-   Fr.   r/   c                        e Zd ZW  ZW ZW Zy)$WINFUNCTYPE.<locals>.WinFunctionTypeNr2   r9   s   r)   WinFunctionTyperN      s    !JIGr+   rO   )	_FUNCFLAG_STDCALLr?   r@   rA   rB   rC   _win_functype_cacherE   rF   )r<   r:   rG   rO   r;   s   ``  @r)   WINFUNCTYPErR   r   s    !66+u%((E66"E*,,E@2779LMM	&5'ABB 			 	i 	 ;JWh67rI   rH   rR   )dlopen)sizeofbyref	addressof	alignmentresize)	get_errno	set_errno)_SimpleCDatac                 ~    ddl m} || j                  }t        |        ||      }}||k7  rt	        d| ||fz        y )Nr   r   z"sizeof(%s) wrong: %d instead of %d)structr   _type_rT   SystemError)typtypecoder   actualrequireds        r)   _check_sizerd      sT      ::c{HX$6HF>12 3 	3 r+   c                   "     e Zd ZdZ fdZ xZS )	py_objectOc                 p    	 t         |          S # t        $ r dt        |       j                  z  cY S w xY w)Nz
%s(<NULL>))super__repr__rB   typer3   )self	__class__s    r)   rj   zpy_object.__repr__   s:    	67#%% 	6$t*"5"555	6s    !55)r3   r4   r5   r^   rj   __classcell__)rm   s   @r)   rf   rf      s    F6 6r+   rf   Pc                       e Zd ZdZy)c_shorthNr3   r4   r5   r^    r+   r)   rq   rq          Fr+   rq   c                       e Zd ZdZy)c_ushortHNrs   rt   r+   r)   rw   rw      ru   r+   rw   c                       e Zd ZdZy)c_longlNrs   rt   r+   r)   rz   rz      ru   r+   rz   c                       e Zd ZdZy)c_ulongLNrs   rt   r+   r)   r}   r}      ru   r+   r}   ir{   c                       e Zd ZdZy)c_intr   Nrs   rt   r+   r)   r   r          r+   r   c                       e Zd ZdZy)c_uintINrs   rt   r+   r)   r   r      r   r+   r   c                       e Zd ZdZy)c_floatfNrs   rt   r+   r)   r   r      ru   r+   r   c                       e Zd ZdZy)c_doubledNrs   rt   r+   r)   r   r      ru   r+   r   c                       e Zd ZdZy)c_longdoublegNrs   rt   r+   r)   r   r      ru   r+   r   qc                       e Zd ZdZy)
c_longlongr   Nrs   rt   r+   r)   r   r      r   r+   r   c                       e Zd ZdZy)c_ulonglongQNrs   rt   r+   r)   r   r      r   r+   r   c                       e Zd ZdZy)c_ubyteBNrs   rt   r+   r)   r   r      ru   r+   r   c                       e Zd ZdZy)c_bytebNrs   rt   r+   r)   r   r      ru   r+   r   c                       e Zd ZdZy)r    cNrs   rt   r+   r)   r    r       ru   r+   r    c                       e Zd ZdZd Zy)c_char_pzc                 t    | j                   j                  dt        j                  |       j                  dS N()rm   r3   c_void_pfrom_bufferr!   rl   s    r)   rj   zc_char_p.__repr__   (    >>22H4H4H4N4T4TUUr+   Nr3   r4   r5   r^   rj   rt   r+   r)   r   r          FVr+   r   c                       e Zd ZdZy)r   ro   Nrs   rt   r+   r)   r   r      ru   r+   r   c                       e Zd ZdZy)c_bool?Nrs   rt   r+   r)   r   r      ru   r+   r   )POINTERpointer_pointer_type_cachec                       e Zd ZdZd Zy)	c_wchar_pZc                 t    | j                   j                  dt        j                  |       j                  dS r   r   r   s    r)   rj   zc_wchar_p.__repr__  r   r+   Nr   rt   r+   r)   r   r     r   r+   r   c                       e Zd ZdZy)c_wcharuNrs   rt   r+   r)   r   r     ru   r+   r   c                  D   t        j                          t        j                          t        j                  dk(  rt
        j                          t        j                  t        t              _        t        j                  t        t              _        t        t         d <   y )Nr   )r   clearrD   _osnamerQ   r   
from_paramr   r   r   r    r   rt   r+   r)   _reset_cacher   	  sb    
xx4!!#"+"6"6GG!)!4!4GFO (r+   c                 z   t        | t              rh|6t        t              dk(  rt	        d | D              dz   }nt        |       dz   }t        j                  d| |       t        |z  } |       }| |_        |S t        | t              r)t        j                  dd|        t        | z  } |       }|S t        |       )zcreate_unicode_buffer(aString) -> character array
    create_unicode_buffer(anInteger) -> character array
    create_unicode_buffer(aString, anInteger) -> character array
    N   c              3   @   K   | ]  }t        |      d kD  rdnd  yw)i  r   r   N)ord).0r   s     r)   	<genexpr>z(create_unicode_buffer.<locals>.<genexpr>  s      E1A1Q6s   r   zctypes.create_unicode_buffer)r   strrT   r   sumr   r   r   r!   r"   r#   r$   s       r)   create_unicode_bufferr     s    
 $<g!# EEEI 4y1}

14>D.i	
	D#	

14>D.i

D/r+   c                     t        j                  |d       t        d      t        |       t         vrt        d       | j                  |       | t         |<   t         t        |       = y )Nz%This type already exists in the cachezWhat's this???)r   getRuntimeErroridset_type)r   clss     r)   SetPointerTyper   2  sa    sD)5BCC	'{--+,,GS&BwK(r+   c                     | |z  S Nrt   )r`   r   s     r)   ARRAYr   <  s    9r+   c                   H    e Zd ZdZeZeZdZdZ	dZ
eddddfdZd Zd Zd	 Zy)
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                 x   	 |rt        j                  |      }| _         j                  	|r		t        z  	|r		t
        z  	t        j                  j                  d      r<	 |r9|j                  d      r(d|v r$|t         j                  t         j                  z  z  }t         j                  dk(  rL||}nGdd l}|j                  }d|v sd|v r/|j                   j                         _        ||j                   z  } G 	 fdd	t"              }| _        |t'         j                  |       _        y | _        y )
Naixr   z.a(r   r   /\c                   .    e Zd ZW  ZW j                  Zy)CDLL.__init__.<locals>._FuncPtrN)r3   r4   r5   r8   _func_restype_r7   )r;   rl   s   r)   _FuncPtrr   u  s    G++Ir+   r   )r   fspath_name_func_flags_r@   rA   r   platform
startswithendswithRTLD_MEMBERRTLD_NOWr   r   !_LOAD_LIBRARY_SEARCH_DEFAULT_DIRS_getfullpathname!_LOAD_LIBRARY_SEARCH_DLL_LOAD_DIRrF   r   _dlopen_handle)
rl   r   modehandler-   r.   winmoder   r   r;   s
   `        @r)   __init__zCDLL.__init__W  s    ::d#D
!!((E,,E==##E*
 c*u}#//CLL8:88t";;$;$$,!#!4!4TZZ!@DJB@@@D	,y 	, !>"4::t4DL!DLr+   c                     d| j                   j                  | j                  | j                  t        j
                  dz  dz   z  t        |       t        j
                  dz  dz   z  fz  S )Nz<%s '%s', handle %x at %#x>r   r   )rm   r3   r   r   r   maxsizer   r   s    r)   rj   zCDLL.__repr__  sY    ,''a!!344DLLNQ./11 	1r+   c                     |j                  d      r|j                  d      rt        |      | j                  |      }t	        | ||       |S )N__)r   r   AttributeError__getitem__setattr)rl   r   funcs      r)   __getattr__zCDLL.__getattr__  sE    ??4 T]]4%8 &&%dD!r+   c                 Z    | j                  || f      }t        |t              s||_        |S r   )r   r   r"   r3   )rl   name_or_ordinalr   s      r)   r   zCDLL.__getitem__  s+    }}ot45/3/+DMr+   )r3   r4   r5   __doc__r>   r   r   r   r   r   r   DEFAULT_MODEr   rj   r   r   rt   r+   r)   r   r   B  sE     #LNEGH".t  %&"P1r+   r   c                       e Zd ZdZeez  Zy)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)r3   r4   r5   r   r>   _FUNCFLAG_PYTHONAPIr   rt   r+   r)   r   r     s     #%88Lr+   r   c                       e Zd ZdZeZy)WinDLLznThis class represents a dll exporting functions using the
        Windows stdcall calling convention.
        N)r3   r4   r5   r   rP   r   rt   r+   r)   r   r     s    	 )r+   r   )_check_HRESULTr[   c                       e Zd ZdZeZy)HRESULTr{   N)r3   r4   r5   r^   r   _check_retval_rt   r+   r)   r  r    s     (r+   r  c                       e Zd ZdZeZeZy)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)r3   r4   r5   r   rP   r   r  r   rt   r+   r)   r  r    s    	
 ) r+   r  c                   H    e Zd Zd Zd Zd Zd Z eej                        Z
y)LibraryLoaderc                     || _         y r   _dlltype)rl   dlltypes     r)   r   zLibraryLoader.__init__  s	    r+   c                     |d   dk(  rt        |      	 | j                  |      }t        | ||       |S # t        $ r t        |      w xY w)Nr   _)r   r	  OSErrorr   )rl   r   dlls      r)   r   zLibraryLoader.__getattr__  sZ    7c> &&	'--%C 	dC 
  	' &&	's	   5 A
c                     t        | |      S r   )getattrrl   r   s     r)   r   zLibraryLoader.__getitem__  s    tT""r+   c                 $    | j                  |      S r   r  r  s     r)   rJ   zLibraryLoader.LoadLibrary  s    }}T""r+   N)r3   r4   r5   r   r   r   rJ   classmethod_typesGenericAlias__class_getitem__rt   r+   r)   r  r    s)     ## $F$7$78r+   r  z
python dllcygwinzlibpython%d.%d.dllr   )get_last_errorset_last_errorc                 l    | 
t               } |t        |       j                         }t        d |d |       S r   )GetLastErrorr   stripr  )codedescrs     r)   WinErrorr    s7    <>D=%++-EtUD$//r+   )_memmove_addr_memset_addr_string_at_addr
_cast_addrc                 .      G  fddt               }|S )Nc                   $    e Zd ZW  ZW Zeez  Zy)!PYFUNCTYPE.<locals>.CFunctionTypeN)r3   r4   r5   r6   r7   r>   r   r8   )r:   r<   s   r)   r=   r&    s    
	!$77r+   r=   )rF   )r<   r:   r=   s   `` r)   
PYFUNCTYPEr'    s    8	 8 r+   c                     t        | | |      S r   )_cast)objr`   s     r)   castr+    s    c3r+   c                     t        | |      S )zJstring_at(ptr[, size]) -> string

    Return the byte string at void *ptr.)
_string_atptrr&   s     r)   	string_atr0  	  s     c4  r+   )_wstring_at_addrc                     t        | |      S )zYwstring_at(ptr[, size]) -> string

        Return the wide-character string at void *ptr.)_wstring_atr.  s     r)   
wstring_atr4    s     3%%r+   c                     	 t        dt               t               dg      }|j                  | ||      S # t        $ r Y yw xY w)Ncomtypes.server.inprocserver*i)
__import__globalslocalsDllGetClassObjectImportError)rclsidriidppvccoms       r)   r;  r;    sK    	=<giTWSXYD ))&$<<  		s   4 	A A c                      	 t        dt               t               dg      } | j	                         S # t        $ r Y yw xY w)Nr6  r7  r   )r8  r9  r:  r<  DllCanUnloadNow)r@  s    r)   rB  rB  %  sE    	<giTWSXYD ##%%  		s   1 	==)BigEndianStructureLittleEndianStructure)BigEndianUnionLittleEndianUnion   z)Unexpected sizeof(time_t): SIZEOF_TIME_T=r   )NN))r   osr   sysr   typesr  r   _ctypesr   r   r   r   r   rF   _ctypes_versionr	   r
   r   r   r]   r   	_calcsize	Exceptionr   r   r   r   r"   unamereleasesplitr   r>   r   r   r   r@   r   rA   r*   c_bufferrD   rH   rJ   r   rK   rP   rQ   rR   replacerS   rT   rU   rV   rW   rX   rY   rZ   r[   rd   rf   rq   rw   rz   r}   r   r   r   r   r   r   r   r   __ctype_le____ctype_be__r   r    r   r   c_voidpr   r   r   r   r   r   r   r   r   r   objectr   r   r   r   r  r  r  cdllpydll	dllhandle	pythonapiversion_infowindlloledllkernel32r  r  r  r  c_size_t	c_ssize_tr   r!  r"  r#  memmovememsetr'  r)  r+  r-  r0  r1  r3  r4  r<  r;  rB  ctypes._endianrC  rD  rE  rF  c_int8c_uint8kindc_int16c_int32c_int64c_uint16c_uint32c_uint64c_time_tr_   rt   r+   r)   <module>rp     s8   2   + +  ) 2 + ! ! (/!
-{O
LL88t#88w4==H4 9399;$$S)!,-1"7 7*   "H 88t.=* '//77]SXX) ? ? (  
36 6 Is l  G |  H \  F l  G S>Ys^#EF  l  G |  H < 	,6(++LS>Ys^#JK\ 
l 
 l .5 5 w+ G \ ,2 2 f) F \ ,2 2 f) F V| V Hc | 
 H \  : 9V V
l 	)<)N6 N`9D 9 88t) ) 5(, (! !9F 9, Te88tlD$..9I	]]h*T->->r-BBCIdI 88t6"F6"F??//L60 
&>VH%%HIG_x((HIKF8,,HI M L <)Hh(
;M
J 
88Xuh	7	E 	>
9h	9=jI  4Z	8U3OD
!
&( 9*Y%89IJK& 88t=& E < 

eVZ0Dd|qD'		dG		dG 1 vw4Dd|qT(		tH		tH 5 	AHaH
BM3CD
EE e  		s   V' 'V/.V/