
    #	h;i                     N    S SK r S SKrS SKrSSKJr  SSKJr   " S S\5      rSr	g)    N   )modelVerificationErrorc                   J   \ rS rSrSrSrS rS rS rS r	S/S jr
S	 rS0S
 jrS rS rS rS rS r\r\r\rS r\rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$  S1S  jr%S! r&\r'S2S" jr(S# r)S$ r*S% r+S& r,S3S' jr-S3S( jr.S) r/S* r0\r1S+ r2S, r3\r4S- r5S.r6g)4VGenericEngine   gFc                 N    Xl         UR                  U l        / U l        0 U l        g N)verifierffiexport_symbols_struct_pending_verification)selfr   s     B/var/www/html/env/lib/python3.13/site-packages/cffi/vengine_gen.py__init__VGenericEngine.__init__   s"     << ,.)    c                 <    UR                  SU R                  5        g )Nr   )
setdefaultr   )r   kwdss     r   patch_extension_kwds#VGenericEngine.patch_extension_kwds   s     	($*=*=>r   c                     U Hl  nX-   nUc  [         R                  nU HL  n[        R                  R                  Xe5      n[        R                  R	                  U5      (       d  MH  Us  s  $    Mn     g r   )syspathosjoinisfile)r   module_namer   so_suffixes	so_suffixbasenamedirnamefilenames           r   find_moduleVGenericEngine.find_module   sV    $I".H|xx77<<:77>>(++#O  	 %r   c                     g r    )r   s    r   collect_typesVGenericEngine.collect_types%       r   c                 @    U R                   R                  US-   5        g )N
)_fwrite)r   whats     r   _prntVGenericEngine._prnt(   s    dTk"r   c                 >   U R                   nU" [        5        U" U R                  R                  5        U R	                  S5        [
        R                  S:X  aD  [
        R                  S:  a  SnOSnU R                  R                  5       nU" SU< U< S35        g g )Ndeclwin32   PyInit_initzvoid z(void) { }
)	r3   cffimod_headerr   preamble	_generater   platformversion_infoget_module_name)r   prntprefixmodnames       r   write_source_to_f VGenericEngine.write_source_to_f+   s}    zz^T]]##$ 	v
 <<7"4'"mm335GFG<= #r   c                 p  ^ ^^ T R                   R                  n[        R                  R	                  [        R
                  T R                  R                  5      nUR                  X15      mT R                  TS5         " UUU 4S jS[        R                  5      mT" S5      nT R                  TSUS9  U$ )Nloadingc                   F   > \ rS rSr Yr YR
                  r/ rU 4S jrSr	g)/VGenericEngine.load_library.<locals>.FFILibraryP   c                    > TR                   $ r   )	_cffi_dir)r   
FFILibrarys    r   __dir__7VGenericEngine.load_library.<locals>.FFILibrary.__dir__T   s    !+++r   r*   N)
__name__
__module____qualname____firstlineno___cffi_generic_moduler   	_cffi_ffirM   rO   __static_attributes__)rN   moduler   s   r   rN   rJ   P   s!    #) II, ,r   rN    loaded)library)r   _backendr   r   r   curdirr   modulefilenameload_library_loadtypes
ModuleType)r   flagsbackendr&   r[   rN   rX   s   `    @@r   r_   VGenericEngine.load_libraryA   s    ((##77<<		4==+G+GH%%h6 	

69%	, 	,)) 	, R. 	

68W
5r   c                     U R                   R                  R                  R                  5        VVVs/ s H  u  nu  p#X4PM     nnnnUR	                  5         U$ s  snnnf r   )r   _parser_declarationsitemssort)r   keytpquallsts        r   _get_declarations VGenericEngine._get_declarations]   sY     $ 0 0 > > D D FH F /c:By F 	 H

Hs   Ac                 $   U R                  5        H7  u  p#UR                  SS5      u  pE [        U SU< SU< 35      n U" X55        M9     g ! [         a    [	        SU-  5      ef = f! [
         a  n[        R                  " Xr5        e S nAff = f)N r   _generate_gen__znot implemented in verify(): %r)ro   splitgetattrAttributeErrorr   	Exceptionr   attach_exception_info)r   	step_namenamerl   kindrealnamemethodes           r   r>   VGenericEngine._generatec   s    ..0HD!ZZQ/ND> @I(K L
r$ 1
 " >'5<> >>
  ++A4s#   A A)A&)
B3B

Bc                     U R                  5        H8  u  pEUR                  SS5      u  pg[        U SU< SU< 35      n U" XWU40 UD6  M:     g ! [         a  n	[        R
                  " X5        e S n	A	ff = f)Nrr   r   rt   _gen_)ro   ru   rv   rx   r   ry   )
r   rX   rz   r   r{   rl   r|   r}   r~   r   s
             r   r`   VGenericEngine._loadr   sq    ..0HD!ZZQ/NDT9d#CDFrV4t4	 1
  ++A4s   
A
A4A//A4c                     g r   r*   r   rl   r{   s      r   _generate_nothing VGenericEngine._generate_nothing|   r-   r   c                     g r   r*   r   rl   r{   rX   r   s        r   _loaded_noopVGenericEngine._loaded_noop   r-   r   c           	          [        U[        R                  5      (       d   eUR                  (       a  U R	                  SX!5        g U R
                  n[        UR                  5      n/ n[        UR                  5       H=  u  pgSn[        U[        R                  5      (       a  SnUR                  SX4-  5        M?     SU-  n	[        UR                  U5       VV
s/ s H  u  pzUR                  SU
-  U	5      PM     nnn
UR                  n[        U[        R                  5      (       a2  UR                  SUR                  SU	5      5        [        R                  nS	R!                  U5      =(       d    S
nSU-  nU R"                  R                  U5        UR$                  (       a  UR$                  S-   nOSnSU< U< SU< S3nSU-  n	U" UR                  X5      5        U" S5        [        UR                  [        R                  5      (       a  SnO.[        UR                  [        R&                  5      (       d  SnOSnU" SU< U< SS	R!                  U5      < S35        U" S5        U" 5         g s  sn
nf )NFrY   *z%sx%dzargument of %sz %sr   z *r, void
_cffi_f_%srr   ()zresult of %s{z*r = zreturn   );})
isinstancer   FunctionPtrTypeellipsis_generate_gen_constr3   lenargs	enumerateStructOrUnionappendzip
get_c_nameresultinsert	void_typer   r   abiVoidType)r   rl   r{   rB   numargsargnamesitypeindirectioncontextargarglisttpresultwrappernamer   funcdeclresult_codes                    r   _generate_gen_function_decl*VGenericEngine._generate_gen_function_decl   s   "e334444;; $$UD5zzbgg, )GAK$ 3 344!OOG{&667	 *
 #T)$'$:<$:yt ??53;8$: 	 <99h 3 344NN1h11%ABH))G$."T)"";/66&&3,CC"%{G< 4'X  34S	bii!4!455!KBIIu~~66#KKk481DEFS	5<s   !I:c                    [        U[        R                  5      (       d   eUR                  (       a  U R	                  SXU5      nGO/ nUn[        S UR                   5       5      (       d*  [        UR                  [        R                  5      (       GaD  / n[        UR                  5       H]  u  p[        U
[        R                  5      (       a(  [        R                  " U
5      n
UR                  X45        UR                  U
5        M_     UR                  n[        U[        R                  5      (       aw  UR                  c  [        SUR                  5       < S35      e[        R                  " U5      nUR                  SU5        UR                  SSU45        [        R                   n[        R                  " [#        U5      XR                  5      nU R$                  R'                  U5      nSU-  nUR)                  X5      nU H  u  pU R+                  XYU
U5      nM     [-        XBU5        [/        U5      R0                  R                  U5        g )NFc              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7fr   )r   r   r   ).0typs     r   	<genexpr>6VGenericEngine._loaded_gen_function.<locals>.<genexpr>   s      LGSJsE$7$788Gs   ')'z'' is used as result type, but is opaquer   r   r   )r   r   r   r   _load_constantanyr   r   r   r   PointerTyper   fldtypes	TypeError_get_c_namer   r   tupler   _get_cached_btypeload_function_make_struct_wrappersetattrr   rM   )r   rl   r{   rX   r[   newfunctionindirectionsbase_tpindirect_argsr   r   indirect_resultBFuncr   s                 r   _loaded_gen_function#VGenericEngine._loaded_gen_function   s   "e334444;;--eRvFKLGLBGGLLL!"))U-@-@AA "'0FA!#u':':;;#//4$++QH5!((-	 1
 #%))ou/B/BCC&//7',;,G,G,I)L M M ',&7&7&HO!((O< ''Ho+FG&+ooO**5+?+:KKIHH..r2E&-K ..uBK&"778?A ' 	{+W&&t,r   c                    ^^^^^ U R                   R                  mU R                   R                  U5      mTS:X  a  U R                   mUUU4S jnO	UUUU4S jnXEl        U$ )Nr   c                  B   > TR                  T5      nT" U/U Q76   US   $ Nr   )new)r   resBTyper   oldfuncs     r   newfunc4VGenericEngine._make_struct_wrapper.<locals>.newfunc   s&    ggen#d#1vr   c                  X   > U S T TR                  TU T   5      4-   U TS-   S  -   n T" U 6 $ )Nr   )newp)r   r   rd   r   r   s    r   r   r      s>    BQx7<<tAw#?"AAD1JN~%r   )r   r\   r   _cffi_base_type)	r   r   r   rl   r   r   r   rd   r   s	    ``   @@@r   r   #VGenericEngine._make_struct_wrapper   sW    ((##**2.=((C 
& & #*r   c                 L    X!R                   :X  d   eU R                  USU5        g Nstructr{   _generate_struct_or_union_declr   s      r   _generate_gen_struct_decl(VGenericEngine._generate_gen_struct_decl   s"    ww++B$?r   c                 *    U R                  USX#5        g r   _loading_struct_or_unionr   rl   r{   rX   s       r   _loading_gen_struct"VGenericEngine._loading_gen_struct   s    %%b(DAr   c                 &    U R                  U5        g r   _loaded_struct_or_unionr   s        r   _loaded_gen_struct!VGenericEngine._loaded_gen_struct       $$R(r   c                 L    X!R                   :X  d   eU R                  USU5        g Nunionr   r   s      r   _generate_gen_union_decl'VGenericEngine._generate_gen_union_decl   s"    ww++B>r   c                 *    U R                  USX#5        g r   r   r   s       r   _loading_gen_union!VGenericEngine._loading_gen_union   s    %%b'4@r   c                 &    U R                  U5        g r   r   r   s        r   _loaded_gen_union VGenericEngine._loaded_gen_union  r   r   c           
         UR                   c  g SU< SU< 3nSU< SU< 3nU< SU< 3R                  5       nU R                  nU" SU< SU< S35        U" S5        U" S	5        U" S
5        UR                  5        Hq  u  pp[	        U	[
        R                  5      (       a  U	R                  5       (       d  U
S:  a  U" SU-  5        MM   U" SU	R                  SSU-  US9< SU< S35        Ms     U" S5        U R                  R                  U5        U" SU< S35        U" S5        U" SU-  5        U" S5        U" SU-  5        U" S5        UR                  5        Hw  u  ppU
S:  a  M  U" SU< SU< S35        [	        U	[
        R                  5      (       a(  U	R                  c  U" SU	R                  5       -  5        Mf  U" SU< S U< S35        My     U" S!5        U" S"5        U" S#5        U" S$5        U" S%U< S&35        U" S5        U" 5         g ! [         a   nU" S[        U5      -  5         S nAGM  S nAff = f)'N_cffi_check_rt   _cffi_layout_rr   zstatic void r   z *p)r   z8  /* only to generate compile-time warnings or errors */z
  (void)p;r   z  (void)((p->%s) << 1);z  { z*tmpzfield %r)qualsz = &p->z; (void)tmp; }z
  /* %s */r   z	intptr_t z(intptr_t i)z,  struct _cffi_aligncheck { char x; %s y; };z  static intptr_t nums[] = {z    sizeof(%s),z)    offsetof(struct _cffi_aligncheck, y),z    offsetof(r   z),z    0,  /* %s */z    sizeof(((z *)0)->z    -1z  };z  return nums[i];z3  /* the next line is not executed, but compiled */r   z(0);)fldnamesstripr3   
enumfieldsr   r   PrimitiveTypeis_integer_typer   r   strr   r   	ArrayTypelengthr   )r   rl   rC   r{   checkfuncnamelayoutfuncnamecnamerB   fnameftypefbitsizefqualr   s                r   r   -VGenericEngine._generate_struct_or_union_decl  s	   ;; /5t<17>"D)002zzu=>S	GH\-/]]_)E(5%"5"566))++A.670((E1A(O   .= 	S	"">2.:;S	;eCD+,&'89-/]]_)E(1}E59:%11ell6J'%*;*;*==>UEBC .= 	XV !BC=*+S	1 ) 0A.//0s   #H
I$H??Ic                 n   UR                   c  g SU< SU< 3nU R                  R                  S5      S   nUR                  Xe5      n/ nSn	 U" U	5      n
U
S:  a  OUR	                  U
5        U	S-  n	M'  [        U[        R                  5      (       a|  UR                  (       ak  US   nUS   nUSS S2   nUSS S2   nUR                  5         [        U5      [        U5      s=:X  a  [        UR                   5      :X  d   e   eXX4Ul        g U< SU< 3R                  5       nX4U R                  U'   g )	Nr   rt   zintptr_t(*)(intptr_t)r   r      r9   rr   )r   r   _typeof_lockedr   r   r   r   r   partialforce_flattenr   fixedlayoutr   r   )r   rl   rC   r{   rX   r  r   functionlayoutnumx	totalsizetotalalignmentfieldofs	fieldsizer  s                   r   r   'VGenericEngine._loading_struct_or_union7  s5   ;; 17>''(?@C''>A1ueMM!1HC	 
 b%--..2:: q	I#AYNadd|Hqt!tIx=C	NFc"++6FFFFFF%)KBN &-446E4:MD--b1r   c                    UR                   c  g U R                  R                  U5        XR                  ;   Ga  S nU R                  nUR                  U5      nU R                  R	                  U5      u  pVU" US   UR                  U5      S5        U" US   UR                  U5      S5        SnUR                  5        Hp  u  ppU
S:  a  M  U" XW   UR                  XH5      SU< 35        XWS-      S:w  a3  UR                  U	5      nU" XWS-      UR                  U5      SU< 35        US-  nMr     U[        U5      :X  d   eg g )	Nc                 .    X:w  a  [        SX!U 4-  5      eg )Nz'%s (we have %d, but C compiler says %d)r   )	realvalueexpectedvaluemsgs      r   check5VGenericEngine._loaded_struct_or_union.<locals>.checkZ  s*    -+Ay9:; ; .r   r   zwrong total sizer   zwrong total alignmentr  zwrong offset for field zwrong size for field )
r   r   r   r   popsizeofalignofr   offsetofr   )r   rl   r"  r   BStructr  r  r   r	  r
  r  r  BFields                r   r   &VGenericEngine._loaded_struct_or_unionS  s=   ;;""2&222;
 ((C++B/G ==AA"EMF&)SZZ02DE&)S[[13JKA13-hq=fig!=5:<>A#;!# 2259F&1+szz&'97<>@Q 2A F###/ 3r   c                     [        U[        R                  5      (       a  U R                  XS5        g U R	                  USU5        g NrY   )r   r   EnumType_generate_gen_enum_declr   r   s      r   _generate_gen_anonymous_decl+VGenericEngine._generate_gen_anonymous_declu  s5    b%..))((26//B=r   c                     [        U[        R                  5      (       a  U R                  XUS5        g U R	                  USX#5        g r,  )r   r   r-  _loading_gen_enumr   r   s       r   _loading_gen_anonymous%VGenericEngine._loading_gen_anonymous{  s7    b%..))""2VR8))"b$?r   c                     [        U[        R                  5      (       a  U R                  " XU40 UD6  g U R	                  U5        g r   )r   r   r-  _loaded_gen_enumr   r   s        r   _loaded_gen_anonymous$VGenericEngine._loaded_gen_anonymous  s6    b%..))!!"F;d;((,r   Nc                    U R                   nSU< SU< 3nU R                  R                  U5        UbF  U(       d   eUS:X  d   eU" SU-  5        U" S5        U R                  X%5        U" S5        U" S5        OU(       a>  US:X  d   eU" SU-  5        U" S5        U" S	U< S
35        U" SU< S35        U" S5        OUc   eUb   eUS:X  a  SnOSnSn	US:X  a#  [	        U[
        R                  5      (       a  Sn	SnU" UR                  SU	< U< S3U5      5        U" S5        U" SU< U< S
35        U" S5        U" 5         g )N_cffi_rt   constint %s(char *out_error)r     return 0;r   zint %s(long long *out_value)z  *out_value = (long long)(r   z
  return (z) <= 0;var&rY   zconst *rr   z(void))r3   r   r   _check_int_constant_valuer   r   r   r   )
r   is_intr{   rl   categorycheck_valuerB   funcname	ampersandextras
             r   r   "VGenericEngine._generate_gen_const  sB   zz$,d3""8,"M6w&&&*X56I**4=Iw&&&/(:;Id<=$01I>!>&&&5 		E7"z"e6I6I'J'J!	x@$GHIy$78Ir   c                     [        U[        R                  5      =(       a    UR                  5       nU R	                  X2U5        g r   )r   r   r  r  r   )r   rl   r{   rA  s       r   _generate_gen_constant_decl*VGenericEngine._generate_gen_constant_decl  s2    B 3 34M9K9K9M  r2r   c                 &   SU-  nUb  U(       d   eU R                  XF5        UnU$ U(       a  U R                  R                  S5      S   nU R                  R                  S5      S   n	UR                  X5      n
U R                  R	                  U5      nU
" U5      n[        US   5      nUS:  aI  U(       dB  U R                  R                  S5      S   nUSSU R                  R                  U5      -  -  -  nU$ Ub   eSn[        U[        R                  5      (       a  S	U-   nU R                  R                  UR                  X5      5      S   n	UR                  X5      n
U
" 5       n[        U[        R                  5      (       a  US   nU$ )
Nz_cffi_const_%sz
long long*r   zint(*)(long long*)z	long longr      z	(*)(void)r   )_load_known_int_constantr   r  r   r   intr%  r   r   r   r   )r   rA  rl   r{   rX   rC  rD  valuer   r   r  pnegative	BLongLongfntypeextras                  r   r   VGenericEngine._load_constant  sw   #d*"M6))&;E* ) HH++L9!<EHH++,@A!DE++E<HU#A{H!IEqy HH33K@C	!$((//)"< <=>  &&&%K"e1122!K/HH++BMM+,LMaPE++E<HJE"e1122ar   c                     [        U[        R                  5      =(       a    UR                  5       nU R	                  XQX#5      n[        XBU5        [        U5      R                  R                  U5        g r   )	r   r   r  r  r   r   r   rM   r   )r   rl   r{   rX   r[   rA  rO  s          r   _loaded_gen_constant#VGenericEngine._loaded_gen_constant  sV    B 3 34M9K9K9M##F=u%W&&t,r   c                    U R                   nUS::  a  U" SXU4-  5        OU" SXU4-  5        U" S5        U" SU-  5        U" SU-  5        U" S5        U" SU-  5        U" S	5        U" S
US S U4-  5        U" S5        U" S5        g )Nr   z&  if ((%s) > 0 || (long)(%s) != %dL) {z1  if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {z    char buf[64];z    if ((%s) <= 0)z)        sprintf(buf, "%%ld", (long)(%s));z    elsez2        sprintf(buf, "%%lu", (unsigned long)(%s));z:    sprintf(out_error, "%s has the real value %s, not %s",z            "%s", buf, "%d");d   z    return -1;z  })r3   )r   r{   rO  rB   s       r   r@  (VGenericEngine._check_int_constant_value  s    zzA:9E=# # $ DEH# # $ !!D()84?@ZA 	IJ,Tc
E/BBCUr   c                 z   U R                   R                  S5      S   nU R                   R                  S5      S   nUR                  XB5      nU R                   R                  US5      nU" U5      S:  aF  U R                   R	                  U5      n[
        R                  S:  a  [        US5      n[        U5      eg )Nzchar[]r   zint(*)(char*)   r8   zutf-8)	r   r  r   r   stringr   r@   r  r   )r   rX   rD  r   r   r  rP  errors           r   rM  'VGenericEngine._load_known_int_constant  s    ''1!4''8;''8HHLL$A;?HHOOA&E4'E7+#E**	 r   c                 :    UR                  SS5      nSU< SU< 3$ )N$___D__cffi_e_rt   )replace)r   rC   r{   s      r   _enum_funcnameVGenericEngine._enum_funcname  s    ||C)"($//r   c                    UR                   (       a&  UR                   H  nU R                  SU5        M     g U R                  X25      nU R                  R                  U5        U R                  nU" SU-  5        U" S5        [        UR                  UR                  5       H  u  pGU R                  XG5        M     U" S5        U" S5        U" 5         g )NTr<  r   r=  r   )
r  enumeratorsr   re  r   r   r3   r   
enumvaluesr@  )r   rl   r{   rC   
enumeratorrD  rB   	enumvalues           r   r.  &VGenericEngine._generate_gen_enum_decl  s    :: nn
((z: -&&v4""8,zz&12S	%(%G!J**:A &H]S	r   c           	          UR                   (       aE  UR                   Vs/ s H  nU R                  SXU5      PM     nn[        U5      Ul        SUl        g U R                  XB5      nU R                  X75        g s  snf )NT)r  rh  r   r   ri  partial_resolvedre  rM  )r   rl   r{   rX   rC   rj  ri  rD  s           r   r2   VGenericEngine._loading_gen_enum  ss    ::,.NN<,:j --dBFK,:  <!*-BM"&B**68H))&;<s   A:c                     [        UR                  UR                  5       H5  u  pV[        XEU5        [	        U5      R
                  R                  U5        M7     g r   )r   rh  ri  r   r   rM   r   )r   rl   r{   rX   r[   rj  rk  s          r   r6  VGenericEngine._loaded_gen_enum  sA    %(%G!JG3M##**:6 &Hr   c                 :    US:X  a  S nOUnU R                  SX#S9  g Nz...T)rC  )r   )r   rl   r{   rC  s       r   _generate_gen_macro_decl'VGenericEngine._generate_gen_macro_decl   s&    ;KK  t Er   c                     US:X  a  S nOUnU R                  SXUUS9n[        XBU5        [        U5      R                  R	                  U5        g rs  )r   r   r   rM   r   )r   rl   r{   rX   r[   rC  rO  s          r   _loaded_gen_macro VGenericEngine._loaded_gen_macro)  sS    ;KK##D"F0; $ =u%W&&t,r   c                    [        U[        R                  5      (       a  UR                  5       (       aU  U R                  nSU< 3nU R
                  R                  U5        U" SU-  5        U" S5        U" SU< S35        U" S5        [        R                  " UR                  5      nU R                  SX%5        g [        R                  " U5      nU R                  SX%SS	9  g )
N_cffi_sizeof_zsize_t %s(void)r   z  return sizeof(r   r   Fr>  )rB  )
r   r   r  length_is_unknownr3   r   r   r   itemr   )r   rl   r{   rB   rD  tp_ptrs         r   _generate_gen_variable_decl*VGenericEngine._generate_gen_variable_decl6  s    b%//**##%%zz046##**84&12S	t56S	&&rww/F$$UD9&&r*F$$UD5$Ir   c                 j  ^ [        U[        R                  5      (       Gaw  UR                  5       (       a  SU< 3nU R                  R                  S5      S   nUR                  Xe5      nU" 5       nU R                  R                  UR                  5      n	[        XR                  R                  U	5      5      u  pUS:w  a  [        SU< SUR                  < 35      eUR                  U
5      n[        R                  " UR                  5      nU R                  SXU5      nUR                  b6  U R                  R                  U5      nU R                  R!                  X5      n[#        XBU5        [%        U5      R&                  R)                  U5        g SU-  nU R                  R                  UR+                  SU5      5      S   nUR                  Xe5      nU" 5       mU4S	 jnU4S
 jn[#        [%        U5      U[-        UU5      5        [%        U5      R&                  R)                  U5        g )Nrz  zsize_t(*)(void)r   z
bad size: z! does not seem to be an array of Fz_cffi_var_%sz
*(*)(void)c                    > TS   $ r   r*   )r[   ptrs    r   getter3VGenericEngine._loaded_gen_variable.<locals>.getterg  s    q6Mr   c                    > UTS'   g r   r*   )r[   rO  r  s     r   setter3VGenericEngine._loaded_gen_variable.<locals>.setteri  s    CFr   )r   r   r  r{  r   r  r   r   r|  divmodr%  r   resolve_lengthr   r   r  castr   r   rM   r   r   property)r   rl   r{   rX   r[   rD  r   r  size	BItemTyper  restr}  rO  BArrayr  r  r  s                    @r   _loaded_gen_variable#VGenericEngine._loaded_gen_variableH  s   b%//**##%%046//0AB1E!//@z HH66rww?	%dHHOOI,FG19+rww() ) &&v.&&rww/F''vVDE yy$33B7f4G5)M##**40 "D(''lD(IJ1M''8j		WtXff%=>W&&t,r   )r   r   r   r   )rY   )r   )Nr;  Nr   )enum)7rQ   rR   rS   rT   
_class_key_gen_python_moduler   r   r'   r+   r3   rE   r_   ro   r>   r`   r   r   _generate_gen_typedef_decl_loading_gen_typedef_loaded_gen_typedefr   _loading_gen_functionr   r   r   r   r   r   r   r   r   r   r   r/  r3  r7  r   rI  _loading_gen_constantr   rV  r@  rM  re  r.  r2  r6  rt  _loading_gen_macrorw  r~  _loading_gen_variabler  rW   r*   r   r   r   r      s$   J/?$#>,8 $5#/#/
+Z )"-H&@B)?A)/bB8$D>@- CJ(,#J3 )8-&	+0
"<7F &-J  )$-r   r   ac  
#include <stdio.h>
#include <stddef.h>
#include <stdarg.h>
#include <errno.h>
#include <sys/types.h>   /* XXX for ssize_t on some platforms */

/* this block of #ifs should be kept exactly identical between
   c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py
   and cffi/_cffi_include.h */
#if defined(_MSC_VER)
# include <malloc.h>   /* for alloca() */
# if _MSC_VER < 1600   /* MSVC < 2010 */
   typedef __int8 int8_t;
   typedef __int16 int16_t;
   typedef __int32 int32_t;
   typedef __int64 int64_t;
   typedef unsigned __int8 uint8_t;
   typedef unsigned __int16 uint16_t;
   typedef unsigned __int32 uint32_t;
   typedef unsigned __int64 uint64_t;
   typedef __int8 int_least8_t;
   typedef __int16 int_least16_t;
   typedef __int32 int_least32_t;
   typedef __int64 int_least64_t;
   typedef unsigned __int8 uint_least8_t;
   typedef unsigned __int16 uint_least16_t;
   typedef unsigned __int32 uint_least32_t;
   typedef unsigned __int64 uint_least64_t;
   typedef __int8 int_fast8_t;
   typedef __int16 int_fast16_t;
   typedef __int32 int_fast32_t;
   typedef __int64 int_fast64_t;
   typedef unsigned __int8 uint_fast8_t;
   typedef unsigned __int16 uint_fast16_t;
   typedef unsigned __int32 uint_fast32_t;
   typedef unsigned __int64 uint_fast64_t;
   typedef __int64 intmax_t;
   typedef unsigned __int64 uintmax_t;
# else
#  include <stdint.h>
# endif
# if _MSC_VER < 1800   /* MSVC < 2013 */
#  ifndef __cplusplus
    typedef unsigned char _Bool;
#  endif
# endif
# define _cffi_float_complex_t   _Fcomplex    /* include <complex.h> for it */
# define _cffi_double_complex_t  _Dcomplex    /* include <complex.h> for it */
#else
# include <stdint.h>
# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux)
#  include <alloca.h>
# endif
# define _cffi_float_complex_t   float _Complex
# define _cffi_double_complex_t  double _Complex
#endif
)
r   r   ra   rY   r   r^  r   objectr   r<   r*   r   r   <module>r     s)       $a	-V a	-F9r   