§
    cÒ³gèª  ã                   óR   — d dl Z ddlmZ ddlmZ ddlmZ  G d„ de¦  «        ZdZ	dS )	é    Né   )Úmodel©ÚVerificationError)Ú_imp_emulationc                   ó¨  — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd;d„Z	d	„ Z
d
„ Zd„ Zd<d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZeZeZeZeZeZd„ Zd„ Zd„ ZeZd„ Z e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.eZ/d'„ Z0d(„ Z1d)„ Z2d*„ Z3	 	 	 d=d-„Z4d.„ Z5d/„ Z6eZ7eZ8eZ9d;d0„Z:d1„ Z;d>d3„Z<eZ=eZ>d4„ Z?d5„ Z@d6„ ZAeZBeZCeZDeZEd7„ ZFd8„ ZGeZHeZId9„ ZJd:„ ZKdS )?ÚVCPythonEngineÚxTc                 óH   — || _         |j        | _        i | _        i | _        d S ©N)ÚverifierÚffiÚ_struct_pending_verificationÚ_types_of_builtin_functions)Úselfr   s     úN/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/cffi/vengine_cpy.pyÚ__init__zVCPythonEngine.__init__   s(   € Ø ˆŒØ”<ˆŒØ,.ˆÔ)Ø+-ˆÔ(Ð(Ð(ó    c                 ó   — d S r   © )r   Úkwdss     r   Úpatch_extension_kwdsz#VCPythonEngine.patch_extension_kwds   ó   € Øˆr   c                 ó¢   — 	 t          j        ||¦  «        \  }}}n# t          $ r Y d S w xY w|�|                     ¦   «          |d         |vrd S |S ©Nr   )ÚimpÚfind_moduleÚImportErrorÚclose)r   Úmodule_nameÚpathÚso_suffixesÚfÚfilenameÚdescrs          r   r   zVCPythonEngine.find_module   sp   € ð	Ý!$¤°¸dÑ!CÔ!CÑˆAˆx˜˜øÝð 	ð 	ð 	Ø�4�4ð	øøøàˆ=Ø�GŠG‰IŒIˆIð �Œ8˜;Ð&Ð&Ø�4Øˆs   ‚ œ
*©*c                 ó>   — i | _         |                      d¦  «         d S )NÚcollecttype)Ú
_typesdictÚ	_generate)r   s    r   Úcollect_typeszVCPythonEngine.collect_types%   s!   € ØˆŒØ�Š�}Ñ%Ô%Ð%Ð%Ð%r   Ú c                 ó@   — | j                              |dz   ¦  «         d S )Nú
)Ú_fÚwrite)r   Úwhats     r   Ú_prntzVCPythonEngine._prnt)   s    € ØŒ�Š�d˜T‘kÑ"Ô"Ð"Ð"Ð"r   c                 ó   — | j         |         S r   )r(   )r   Útypes     r   Ú_gettypenumzVCPythonEngine._gettypenum,   s   € àŒ˜tÔ$Ð$r   c                 ó¦   — t          |t          j        ¦  «        r|j        dk    r+|| j        vr t          | j        ¦  «        }|| j        |<   d S d S d S )Núlong double)Ú
isinstancer   ÚPrimitiveTypeÚnamer(   Úlen)r   ÚtpÚnums      r   Ú_do_collect_typezVCPythonEngine._do_collect_type0   sb   € Ý˜B¥Ô 3Ñ4Ô4ð 	&Ø”˜=Ò(Ð(Ø˜dœoÐ-Ð-Ý�d”oÑ&Ô&ˆCØ"%ˆDŒO˜BÑÐÐð .Ð-ð )Ð(r   c                 ó–  — |                       ¦   «          ddg| _        | j        } |t          ¦  «          |¦   «           || j        j        ¦  «          |¦   «          |                      d¦  «         |                      ¦   «           |¦   «           |d¦  «         |                      d¦  «          |d¦  «          |d¦  «          |d¦  «          |¦   «          | j                             ¦   «         }| j        d         } |d	¦  «          |¦   «           |d
¦  «          |d¦  «          |d|z  ¦  «          |d¦  «          |d¦  «          |d¦  «          |d¦  «          |d¦  «          |¦   «           |d¦  «          |d|z  ¦  «          |d¦  «          |d¦  «          |d¦  «          |d¦  «          |d¦  «          |d|›d�¦  «          |d¦  «          |d¦  «          |d¦  «          |d¦  «          |d¦  «          |¦   «           |d¦  «          |¦   «           |d¦  «          |d|z  ¦  «          |d¦  «          |d¦  «          |d |z  ¦  «          |d¦  «          |d!¦  «          |d|›d"�¦  «          |d!¦  «          |d#¦  «          |d¦  «          |¦   «           |d$¦  «         d S )%Nz((void)lib,0)Údeclz&static PyMethodDef _cffi_methods[] = {Úmethodz3  {"_cffi_setup", _cffi_setup, METH_VARARGS, NULL},z)  {NULL, NULL, 0, NULL}    /* Sentinel */z};Fz#if PY_MAJOR_VERSION >= 3z.static struct PyModuleDef _cffi_module_def = {z  PyModuleDef_HEAD_INIT,z  "%s",z  NULL,z  -1,z  _cffi_methods,z  NULL, NULL, NULL, NULLÚPyMODINIT_FUNCzPyInit_%s(void)Ú{z  PyObject *lib;z+  lib = PyModule_Create(&_cffi_module_def);z  if (lib == NULL)ú    return NULL;ú  if (z < 0 || _cffi_init() < 0) {z    Py_DECREF(lib);ú  }z  return lib;Ú}z#elsezinit%s(void)z+  lib = Py_InitModule("%s", _cffi_methods);z    return;z < 0 || _cffi_init() < 0)z	  return;z#endif)	r*   Ú_chained_list_constantsr1   Úcffimod_headerr   Úpreambler)   Ú_generate_setup_customÚget_module_name)r   ÚprntÚmodnameÚ	constantss       r   Úwrite_source_to_fz VCPythonEngine.write_source_to_f7   s�  € Ø×ÒÑÔÐð" )8¸Ð'IˆÔ$àŒzˆàˆ�^ÑÔÐØˆ‰ŒˆàˆˆTŒ]Ô#Ñ$Ô$Ð$Øˆ‰Œˆð 	�Š�vÑÔÐð 	×#Ò#Ñ%Ô%Ð%Øˆ‰Œˆð
 	ˆÐ5Ñ6Ô6Ð6Ø�Š�xÑ Ô Ð ØˆÐBÑCÔCÐCØˆÐ8Ñ9Ô9Ð9ØˆˆT‰
Œ
ˆ
Øˆ‰Œˆð ”-×/Ò/Ñ1Ô1ˆØÔ0°Ô7ˆ	ØˆÐ(Ñ)Ô)Ð)Øˆ‰ŒˆØˆÐ=Ñ>Ô>Ð>ØˆÐ'Ñ(Ô(Ð(ØˆˆY˜Ñ Ñ!Ô!Ð!ØˆˆY‰ŒˆØˆˆW‰ŒˆØˆÐÑ Ô Ð ØˆÐ'Ñ(Ô(Ð(ØˆˆT‰
Œ
ˆ
Øˆ‰ŒˆØˆÐÑÔÐØˆÐ Ñ(Ñ)Ô)Ð)ØˆˆS‰	Œ	ˆ	ØˆÐÑ Ô Ð ØˆÐ:Ñ;Ô;Ð;ØˆÐ!Ñ"Ô"Ð"ØˆÐÑ Ô Ð Øˆˆ°i°i°iÐAÑBÔBÐBØˆÐ"Ñ#Ô#Ð#ØˆÐÑ Ô Ð ØˆˆU‰ŒˆØˆˆ_ÑÔÐØˆˆS‰	Œ	ˆ	Øˆ‰ŒˆØˆˆW‰ŒˆØˆ‰ŒˆØˆÐÑÔÐØˆˆ^˜gÑ%Ñ&Ô&Ð&ØˆˆS‰	Œ	ˆ	ØˆÐÑ Ô Ð ØˆÐ:¸WÑDÑEÔEÐEØˆÐ!Ñ"Ô"Ð"Øˆˆ]ÑÔÐØˆˆ°I°I°IÐ?Ñ@Ô@Ð@Øˆˆ]ÑÔÐØˆˆ[ÑÔÐØˆˆS‰	Œ	ˆ	Øˆ‰ŒˆØˆˆX‰Œˆˆˆr   Nc                 ó(  ‡ ‡‡	‡
— t          j        ¦   «          	 t          t          d¦  «        rt          j        ¦   «         }	 t          t          d¦  «        r|�t          j        |¦  «         t          j        ‰ j                             ¦   «         ‰ j        j	        ¦  «        Š	n3# t          $ r&}d‰ j        j	        ›d|›�}t          |¦  «        ‚d }~ww xY w	 t          t          d¦  «        rt          j        |¦  «         n/# t          t          d¦  «        rt          j        |¦  «         w w xY wt          j        ¦   «          n# t          j        ¦   «          w xY w‰                      ‰	d¦  «         t          d„ ‰ j                             ¦   «         D ¦   «         ¦  «        Š
ˆ
fd„t#          t%          ‰
¦  «        ¦  «        D ¦   «         }t'          t)          ‰ j        j        |¦  «        ¦  «        } G ˆˆ	ˆ fd„d	t.          ¦  «        Š ‰¦   «         }‰	                     |t          |¦  «        r3d
d l}|                     d‰ j                             ¦   «         z  ¦  «         ‰                      ‰	d|¬¦  «         ‰ j        ‰	_        ‰ j        ‰	_        |S )NÚgetdlopenflagsÚsetdlopenflagsz
importing z: Úloadingc                 ó   — g | ]	\  }}||f‘Œ
S r   r   )Ú.0ÚkeyÚvalues      r   ú
<listcomp>z/VCPythonEngine.load_library.<locals>.<listcomp>­   s6   € ð Hð Hð HÙ+  Uð " 3˜<ð Hð Hð Hr   c                 ó    •— g | ]
}‰|         ‘ŒS r   r   )rU   ÚiÚ
revmappings     €r   rX   z/VCPythonEngine.load_library.<locals>.<listcomp>¯   s   ø€ Ð=Ð=Ð= ˆz˜!Œ}Ð=Ð=Ð=r   c                   ó0   •— e Zd Z”Z”j        Zg Zˆ fd„ZdS )ú/VCPythonEngine.load_library.<locals>.FFILibraryc                 ó<   •— ‰j         t          | j        ¦  «        z   S r   )Ú	_cffi_dirÚlistÚ__dict__)r   Ú
FFILibrarys    €r   Ú__dir__z7VCPythonEngine.load_library.<locals>.FFILibrary.__dir__»   s   ø€ Ø!Ô+­d°4´=Ñ.AÔ.AÑAÐAr   N)Ú__name__Ú
__module__Ú__qualname__Ú_cffi_python_moduler   Ú	_cffi_ffir_   rc   )rb   Úmoduler   s   €€€r   rb   r]   ·   sG   ø€ € € € € Ø"(ÐØœˆIØˆIðBð Bð Bð Bð Bð Bð Br   rb   r   z0reimporting %r might overwrite older definitionsÚloaded)Úlibrary)r   Úacquire_lockÚhasattrÚsysrQ   rR   Úload_dynamicr   rK   Úmodulefilenamer   r   Úrelease_lockÚ_loadÚdictr(   ÚitemsÚranger:   r`   Úmapr   Ú_get_cached_btypeÚobjectÚ_cffi_setupÚwarningsÚwarnÚ_cffi_original_ffir   Ú_cffi_types_of_builtin_funcs)r   ÚflagsÚprevious_flagsÚeÚerrorÚlstrk   rz   rb   ri   r[   s   `       @@@r   Úload_libraryzVCPythonEngine.load_library’   sâ  øøøø€ õ 	ÔÑÔÐð	Ý•sÐ,Ñ-Ô-ð 6Ý!$Ô!3Ñ!5Ô!5�ð
7Ý�3Ð 0Ñ1Ô1ð .°eÐ6GÝÔ& uÑ-Ô-Ð-ÝÔ)¨$¬-×*GÒ*GÑ*IÔ*IØ*.¬-Ô*FñHô H��øåð /ð /ð /ð /Ø.2¬mÔ.JÐ.JÐ.JÈAÈAÐN�Ý'¨Ñ.Ô.Ð.øøøøð/øøøð õ �3Ð 0Ñ1Ô1ð 7ÝÔ& ~Ñ6Ô6Ð6øøõ �3Ð 0Ñ1Ô1ð 7ÝÔ& ~Ñ6Ô6Ð6Ð6ð7øøøõ ÔÑÔÐÐø�CÔÑÔÐÐøøøð 	�
Š
�6˜9Ñ%Ô%Ð%õ ð Hð HØ/3¬×/DÒ/DÑ/FÔ/FðHñ Hô Hñ Iô Iˆ
à=Ð=Ð=Ð=¥e­C°
©O¬OÑ&<Ô&<Ð=Ñ=Ô=ˆÝ•3�t”xÔ1°3Ñ7Ô7Ñ8Ô8ˆð	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	B�ñ 	Bô 	Bð 	Bð �*‘,”,ˆØ×Ò˜cÕ#4°gÑ>Ô>ð 	?ØˆOˆOˆOØ�MŠMÐLØ!œ]×:Ò:Ñ<Ô<ñ>ñ ?ô ?ð ?ð 	�
Š
�6˜8¨Wˆ
Ñ5Ô5Ð5Ø$(¤HˆÔ!Ø.2Ô.NˆÔ+ØˆsB   ™(E ÁA!B$ Â#D Â$
CÂ.!CÃCÃD Ã*E Ä,D.Ä.E ÅEc                 óˆ   — d„ | j         j        j                             ¦   «         D ¦   «         }|                     ¦   «          |S )Nc                 ó"   — g | ]\  }\  }}||f‘ŒS r   r   )rU   rV   r;   Úquals       r   rX   z4VCPythonEngine._get_declarations.<locals>.<listcomp>Í   s7   € ð Hð Hð HÑ.˜c¡: B¨��Rˆyð Hð Hð Hr   )r   Ú_parserÚ_declarationsrt   Úsort)r   r‚   s     r   Ú_get_declarationsz VCPythonEngine._get_declarationsÌ   sK   € ðHð HØ $¤Ô 0Ô >× DÒ DÑ FÔ FðHñ Hô Hˆà�Š‰
Œ
ˆ
Øˆ
r   c                 óF  — |                       ¦   «         D ]‹\  }}|                     dd¦  «        \  }}	 t          | d|›d|›�¦  «        }n # t          $ r t	          d|z  ¦  «        ‚w xY w	  |||¦  «         Œd# t
          $ r}t          j        ||¦  «         ‚ d }~ww xY wd S )Nú r   Ú_generate_cpy_Ú_znot implemented in verify(): %r)rŠ   ÚsplitÚgetattrÚAttributeErrorr   Ú	Exceptionr   Úattach_exception_info)r   Ú	step_namer9   r;   ÚkindÚrealnamer@   r€   s           r   r)   zVCPythonEngine._generateÒ   só   € Ø×.Ò.Ñ0Ô0ð 	ð 	‰HˆD�"Ø!ŸZšZ¨¨QÑ/Ô/‰NˆD�(ð>Ý   ÀÀÀØ@IÀ	ð(Kñ Lô L��øå!ð >ð >ð >Ý'Ø5¸Ñ<ñ>ô >ð >ð>øøøðØ��r˜8Ñ$Ô$Ð$Ð$øÝð ð ð ÝÔ+¨A¨tÑ4Ô4Ð4Øøøøøðøøøð	ð 	s#   ´AÁA(Á,A9Á9
BÂBÂBc                 ó   — |                       ¦   «         D ]h\  }}|                     dd¦  «        \  }}t          | d|›d|›�¦  «        }	  ||||fi |¤Ž ŒA# t          $ r}	t	          j        |	|¦  «         ‚ d }	~	ww xY wd S )NrŒ   r   rŽ   Ú_cpy_)rŠ   r�   r�   r’   r   r“   )
r   ri   r”   r   r9   r;   r•   r–   r@   r€   s
             r   rr   zVCPythonEngine._loadá   s·   € Ø×.Ò.Ñ0Ô0ð 	ð 	‰HˆD�"Ø!ŸZšZ¨¨QÑ/Ô/‰NˆD�(Ý˜T˜T°9°9°9¸d¸dÐ#CÑDÔDˆFðØ��r˜8 VÐ4Ð4¨tÐ4Ð4Ð4Ð4øÝð ð ð ÝÔ+¨A¨tÑ4Ô4Ð4Øøøøøðøøøð	ð 	s   Á
AÁ
A;Á A6Á6A;c                 ó   — d S r   r   ©r   r;   r9   s      r   Ú_generate_nothingz VCPythonEngine._generate_nothingë   r   r   c                 ó   — d S r   r   ©r   r;   r9   ri   r   s        r   Ú_loaded_noopzVCPythonEngine._loaded_noopî   r   r   c           
      ó  — d}t          |t          j        ¦  «        r†|                     ¦   «         r|j        dk    rd}d|j        z  }nW|                     ¦   «         rt          d¦  «        ‚d|                     d¦  «        ›d|j                             dd	¦  «        ›�}d
}nþt          |t          j	        ¦  «        r|  
                    ||||¦  «         d S t          |t          j        t          j        f¦  «        rH|                      d||                      |¦  «        |fz  ¦  «         |                      d|z  ¦  «         d S t          |t          j        ¦  «        r3d|                     d¦  «        z  }d|                      |¦  «        z  }d}nt!          |¦  «        ‚|                      d|›d|›d|›|›d�¦  «         |                      d|›d|                     d¦  «        ›d|›d�¦  «         |                      d|z  ¦  «         d S )Nr+   Ú_BoolÚ_cffi_to_c_intz, %sz*not implemented in verify(): complex typesú(z)_cffi_to_c_rŒ   rŽ   z-1z6  if (_cffi_to_c((char *)&%s, _cffi_type(%d), %s) < 0)z    %s;z(%s)_cffi_to_c_pointerz, _cffi_type(%d)ÚNULLú  z = ú);rD   z == (ú)z && PyErr_Occurred()))r7   r   r8   Úis_integer_typer9   Úis_complex_typer   Ú
get_c_nameÚreplaceÚPointerTypeÚ"_convert_funcarg_to_c_ptr_or_arrayÚStructOrUnionÚEnumTyper1   r4   ÚFunctionPtrTypeÚNotImplementedError)r   r;   ÚfromvarÚtovarÚerrcodeÚextraargÚ	converterÚerrvalues           r   Ú_convert_funcarg_to_cz$VCPythonEngine._convert_funcarg_to_có   sN  € ØˆÝ�b�%Ô-Ñ.Ô.ð 	*Ø×!Ò!Ñ#Ô#ð N¨¬°7Ò(:Ð(:Ø,�	Ø! B¤GÑ+��Ø×#Ò#Ñ%Ô%ð NÝ'Ø@ñBô Bð BðNð 46·=²=ÀÑ3DÔ3DÐ3DÐ3DØ35´7·?²?À3ÈÑ3LÔ3LÐ3LðN�	àˆHˆHå˜�EÔ-Ñ.Ô.ð 	*Ø×3Ò3°B¸Ø49¸7ñDô Dð DàˆFå˜�UÔ0µ%´.ÐAÑBÔBð 	*à�JŠJÐOØ × 0Ò 0°Ñ 4Ô 4°gÐ>ñ?ñ @ô @ð @à�JŠJ�y 7Ñ*Ñ+Ô+Ð+ØˆFå˜�EÔ1Ñ2Ô2ð 	*Ø0°2·=²=ÀÑ3DÔ3DÑDˆIØ)¨D×,<Ò,<¸RÑ,@Ô,@Ñ@ˆHØˆHˆHõ & bÑ)Ô)Ð)à�
Š
ˆ
¨¨¨°	°	°	¸7¸7ÀHÀHÀHÐMÑNÔNÐNØ�
Š
ˆ
ØˆEˆE�2—=’= Ñ$Ô$Ð$Ð$ h h hð0ñ 	1ô 	1ð 	1à�
Š
�9˜wÑ&Ñ'Ô'Ð'Ð'Ð'r   c                 ó¼   — t          |t          j        ¦  «        rA|                     d¦  «         |                     d¦  «         |                     d¦  «         d S d S )NzPy_ssize_t datasizez-struct _cffi_freeme_s *large_args_free = NULLzIif (large_args_free != NULL) _cffi_free_array_arguments(large_args_free);)r7   r   r«   Úadd)r   r;   Ú	localvarsÚ	freeliness       r   Ú_extra_local_variablesz%VCPythonEngine._extra_local_variables  su   € Ý�b�%Ô+Ñ,Ô,ð 	KØ�MŠMÐ/Ñ0Ô0Ð0Ø�MŠMÐIÑJÔJÐJØ�MŠMð Jñ Kô Kð Kð Kð Kð	Kð 	Kr   c                 óÈ  — |                       d¦  «         |                       d|                      |¦  «        ||fz  ¦  «         |                       d¦  «         |                       d|›d�¦  «         |                       d|                      |¦  «        ||fz  ¦  «         |                       d¦  «         |                       d|z  ¦  «         |                       d	¦  «         d S )
Nz1  datasize = _cffi_prepare_pointer_call_argument(z(      _cffi_type(%d), %s, (char **)&%s);z  if (datasize != 0) {z    z? = ((size_t)datasize) <= 640 ? alloca((size_t)datasize) : NULL;zF    if (_cffi_convert_array_argument(_cffi_type(%d), %s, (char **)&%s,z,            datasize, &large_args_free) < 0)z	      %s;rE   )r1   r4   )r   r;   r±   r²   r³   s        r   r¬   z1VCPythonEngine._convert_funcarg_to_c_ptr_or_array!  s  € Ø�
Š
ÐFÑGÔGÐGØ�
Š
Ð=Ø×Ò˜RÑ Ô  '¨5ðA2ñ 2ñ 	3ô 	3ð 	3à�
Š
Ð+Ñ,Ô,Ð,Ø�
Š
ˆ
Ø9>¸¸ðAñ 	Bô 	Bð 	Bà�
Š
ð #Ø&*×&6Ò&6°rÑ&:Ô&:¸GÀUÐ%KñLñ 	Mô 	Mð 	Mà�
Š
ÐAÑBÔBÐBØ�
Š
�; Ñ(Ñ)Ô)Ð)Ø�
Š
�5ÑÔÐÐÐr   c                 ó€  — t          |t          j        ¦  «        rt|                     ¦   «         r|j        dk    rd|›d|j        ›d�S |j        dk    r"d|j                             dd¦  «        ›d	|›d�S d
||                      |¦  «        fz  S t          |t          j        t          j        f¦  «        rd||                      |¦  «        fz  S t          |t          j	        ¦  «        r1d||                      t          j        |j
        ¦  «        ¦  «        fz  S t          |t          j        ¦  «        rI|j        €(t          d|                     ¦   «         ›d|›d�¦  «        ‚d||                      |¦  «        fz  S t          |t          j        ¦  «        rd
||                      |¦  «        fz  S t!          |¦  «        ‚)Nr    z_cffi_from_c_int(ú, r¦   r6   Ú_cffi_from_c_rŒ   rŽ   r¢   z/_cffi_from_c_deref((char *)&%s, _cffi_type(%d))z0_cffi_from_c_pointer((char *)%s, _cffi_type(%d))ú'z' is used as z, but is opaquez0_cffi_from_c_struct((char *)&%s, _cffi_type(%d)))r7   r   r8   r§   r9   rª   r4   r«   r¯   Ú	ArrayTypeÚitemr­   ÚfldnamesÚ	TypeErrorÚ_get_c_namer®   r°   )r   r;   ÚvarÚcontexts       r   Ú_convert_expr_from_cz#VCPythonEngine._convert_expr_from_c.  sö  € Ý�b�%Ô-Ñ.Ô.ð 	*Ø×!Ò!Ñ#Ô#ð /¨¬°7Ò(:Ð(:Ð(:Ø58°S°S¸"¼'¸'¸'ÐBÐBØ”˜MÒ)Ð)Ð)Ø02´·²ÀÀSÑ0IÔ0IÐ0IÐ0IÈ3È3È3ÐOÐOàHØ˜×)Ò)¨"Ñ-Ô-ðL/ñ /ð /å˜�UÔ.µÔ0EÐFÑGÔGð 	*ØEØ�T×%Ò% bÑ)Ô)ðI+ñ +ð +å˜�EœOÑ,Ô,ð 	*ØEØ�T×%Ò%¥eÔ&7¸¼Ñ&@Ô&@ÑAÔAðICñ Cð Cå˜�EÔ/Ñ0Ô0ð 
	*ØŒ{Ð"Ý�iØ—N’NÑ$Ô$Ð$Ð$ g g gð!/ñ 0ô 0ð 0àEØ�T×%Ò% bÑ)Ô)ðI+ñ +ð +å˜�EœNÑ+Ô+ð 	*ØDØ�T×%Ò% bÑ)Ô)ðH+ñ +ð +õ & bÑ)Ô)Ð)r   c                 óì   — t          |t          j        ¦  «        sJ ‚|j        r|                      |¦  «         d S |j        D ]}|                      |¦  «         Œ|                      |j        ¦  «         d S r   )r7   r   r¯   Úellipsisr=   ÚargsÚresult)r   r;   r9   r3   s       r   Ú"_generate_cpy_function_collecttypez1VCPythonEngine._generate_cpy_function_collecttypeU  s…   € Ý˜"�eÔ3Ñ4Ô4Ð4Ð4Ð4ØŒ;ð 	-Ø×!Ò! "Ñ%Ô%Ð%Ð%Ð%ð œð ,ð ,�Ø×%Ò% dÑ+Ô+Ð+Ð+Ø×!Ò! "¤)Ñ,Ô,Ð,Ð,Ð,r   c                 ó<  — t          |t          j        ¦  «        sJ ‚|j        r|                      d||¦  «         d S | j        }t          |j        ¦  «        }|dk    rd}n|dk    rd}nd} |d¦  «          |d|›d	|›d
�¦  «          |d¦  «         d|z  }t          |j        ¦  «        D ]*\  }} |d| 	                    d|z  |¦  «        z  ¦  «         Œ+t          ¦   «         }	t          ¦   «         }
|j        D ]}|                      ||	|
¦  «         Œt          |	¦  «        D ]} |d|›d�¦  «         Œt          |j        t          j        ¦  «        s:d}d|z  } |d|j         	                    d|¦  «        z  ¦  «          |d¦  «         nd}t          |j        ¦  «        dk    r~t          t          |j        ¦  «        ¦  «        }|D ]} |d|z  ¦  «         Œ |¦   «           |dd|z  ›d|›dd                     d„ |D ¦   «         ¦  «        ›d�¦  «          |d¦  «          |¦   «          t          |j        ¦  «        D ]-\  }}|                      |d|z  d |z  d!¦  «          |¦   «          Œ. |d"¦  «          |d#¦  «          |d$|›|›d%d                     d&„ t          t          |j        ¦  «        ¦  «        D ¦   «         ¦  «        ›d'�¦  «          |d(¦  «          |d)¦  «          |¦   «           |d*¦  «         |dk    r |d+¦  «         |rG |d,|                      |j        d-d.¦  «        z  ¦  «         |
D ]} |d|z   ¦  «         Œ |d/¦  «         n)|
D ]} |d|z   ¦  «         Œ |d0¦  «          |d1¦  «          |d2¦  «          |¦   «          d S )3NFr   Únoargr   Úarg0rÌ   ústatic PyObject *Ú_cffi_f_z(PyObject *self, PyObject *r¦   rB   zargument of %sú  %s;z x%dr¤   ú;z	result = zresult of %sz resultz  PyObject *pyresult;r+   z  PyObject *arg%d;z  if (!PyArg_ParseTuple(args, "ÚOú:ú", r¿   c                 ó   — g | ]}d |z  ‘ŒS )z&arg%dr   ©rU   rZ   s     r   rX   z>VCPythonEngine._generate_cpy_function_decl.<locals>.<listcomp>�  s   € Ð/JÐ/JÐ/JÀ°¸1±Ð/JÐ/JÐ/Jr   z))rC   zarg%dúx%dzreturn NULLz  Py_BEGIN_ALLOW_THREADSz  _cffi_restore_errno();ú  { r¢   c                 ó   — g | ]}d |z  ‘ŒS )rÛ   r   rÚ   s     r   rX   z>VCPythonEngine._generate_cpy_function_decl.<locals>.<listcomp>š  s   € Ð>Ð>Ð> Q�u˜q‘yÐ>Ð>Ð>r   z); }z  _cffi_save_errno();z  Py_END_ALLOW_THREADSú  (void)self; /* unused */ú  (void)noarg; /* unused */z  pyresult = %s;rÍ   zresult typez  return pyresult;z  Py_INCREF(Py_None);z  return Py_None;rF   )r7   r   r¯   rË   Ú_generate_cpy_constr1   r:   rÌ   Ú	enumerater©   Úsetr¼   ÚsortedrÍ   ÚVoidTyperu   Újoinr·   rÉ   )r   r;   r9   rL   ÚnumargsÚargnamerÈ   rZ   r3   rº   r»   r?   Úresult_codeÚrngÚfreelines                  r   Ú_generate_cpy_function_declz*VCPythonEngine._generate_cpy_function_decl`  s¹  € Ý˜"�eÔ3Ñ4Ô4Ð4Ð4Ð4ØŒ;ð 	ð ×$Ò$ U¨D°"Ñ5Ô5Ð5ØˆFØŒzˆÝ�b”g‘,”,ˆØ�aŠ<ˆ<ØˆGˆGØ˜Š\ˆ\ØˆGˆGàˆGØˆÐ Ñ!Ô!Ð!Øˆˆ¸4¸4¸4ÀÀÀÐIÑJÔJÐJØˆˆS‰	Œ	ˆ	à" TÑ)ˆÝ  ¤Ñ)Ô)ð 	Að 	A‰GˆAˆtØˆD�˜4Ÿ?š?¨6°A©:°wÑ?Ô?Ñ?Ñ@Ô@Ð@Ð@å‘E”Eˆ	Ý‘E”Eˆ	Ø”Gð 	Dð 	DˆDØ×'Ò'¨¨i¸ÑCÔCÐCÐCÝ˜9Ñ%Ô%ð 	$ð 	$ˆDØˆDˆD˜D˜D˜DÐ"Ñ#Ô#Ð#Ð#å˜"œ)¥U¤^Ñ4Ô4ð 	Ø%ˆKØ$ tÑ+ˆGØˆD�˜2œ9×/Ò/°	¸7ÑCÔCÑCÑDÔDÐDØˆDÐ(Ñ)Ô)Ð)Ð)àˆKåˆrŒw‰<Œ<˜!ÒÐÝ�˜BœG™œÑ%Ô%ˆCØð /ð /�Ø�Ð)¨AÑ-Ñ.Ô.Ð.Ð.ØˆD‰FŒFˆFØˆDˆDØ�g‘��˜t˜t˜t T§Y¢YÐ/JÐ/JÀcÐ/JÑ/JÔ/JÑ%KÔ%KÐ%KÐ%KðMñ Nô Nð NàˆDÐ#Ñ$Ô$Ð$Øˆ‰Œˆå  ¤Ñ)Ô)ð 	ð 	‰GˆAˆtØ×&Ò& t¨W°q©[¸%À!¹)Ø'4ñ6ô 6ð 6àˆD‰FŒFˆFˆFàˆÐ'Ñ(Ô(Ð(ØˆÐ'Ñ(Ô(Ð(ØˆˆØˆK˜˜˜Ø�IŠIÐ>Ð>­%µ°B´G±´Ñ*=Ô*=Ð>Ñ>Ô>Ñ?Ô?Ð?Ð?ðAñ 	Bô 	Bð 	Bð 	ˆÐ$Ñ%Ô%Ð%ØˆÐ%Ñ&Ô&Ð&Øˆ‰ŒˆàˆÐ)Ñ*Ô*Ð*Ø�aŠ<ˆ<ØˆDÐ.Ñ/Ô/Ð/Øð 
	&ØˆDÐ#Ø×*Ò*¨2¬9°hÀÑNÔNñOñ Pô Pð Pà%ð &ð &�Ø��T˜H‘_Ñ%Ô%Ð%Ð%ØˆDÐ%Ñ&Ô&Ð&Ð&à%ð &ð &�Ø��T˜H‘_Ñ%Ô%Ð%Ð%ØˆDÐ(Ñ)Ô)Ð)ØˆDÐ$Ñ%Ô%Ð%ØˆˆS‰	Œ	ˆ	Øˆ‰Œˆˆˆr   c           	      ó¦   — |j         rd S t          |j        ¦  «        }|dk    rd}n|dk    rd}nd}|                      d|›d|›d|›d	�¦  «         d S )
Nr   ÚMETH_NOARGSr   ÚMETH_OÚMETH_VARARGSú  {"z", _cffi_f_r¿   z, NULL},)rË   r:   rÌ   r1   )r   r;   r9   ræ   Úmeths        r   Ú_generate_cpy_function_methodz,VCPythonEngine._generate_cpy_function_method°  sp   € ØŒ;ð 	ØˆFÝ�b”g‘,”,ˆØ�aŠ<ˆ<Ø ˆDˆDØ˜Š\ˆ\ØˆDˆDà!ˆDØ�
Š
ˆ
¸¸¸¸d¸d¸dÀDÀDÀDÐIÑJÔJÐJÐJÐJr   c                 ón   — |j         rd S t          ||¦  «        }t          |||¦  «         || j        |<   d S r   )rË   r�   Úsetattrr   )r   r;   r9   ri   rk   Úfuncs         r   Ú_loaded_cpy_functionz#VCPythonEngine._loaded_cpy_function¾  sE   € ØŒ;ð 	ØˆFÝ�v˜tÑ$Ô$ˆÝ�˜˜tÑ$Ô$Ð$Ø13ˆÔ(¨Ñ.Ð.Ð.r   c                 óN   — ||j         k    sJ ‚|                      |d|¦  «         d S ©NÚstruct©r9   Ú_generate_struct_or_union_declrš   s      r   Ú_generate_cpy_struct_declz(VCPythonEngine._generate_cpy_struct_declÉ  s/   € Ø�r”wŠˆˆˆØ×+Ò+¨B°¸$Ñ?Ô?Ð?Ð?Ð?r   c                 ó4   — |                       |d|¦  «         d S rø   ©Ú _generate_struct_or_union_methodrš   s      r   Ú_generate_cpy_struct_methodz*VCPythonEngine._generate_cpy_struct_methodÌ  s    € Ø×-Ò-¨b°(¸DÑAÔAÐAÐAÐAr   c                 ó6   — |                       |d||¦  «         d S rø   ©Ú_loading_struct_or_union©r   r;   r9   ri   s       r   Ú_loading_cpy_structz"VCPythonEngine._loading_cpy_structÎ  s"   € Ø×%Ò% b¨(°D¸&ÑAÔAÐAÐAÐAr   c                 ó0   — |                       |¦  «         d S r   ©Ú_loaded_struct_or_unionr�   s        r   Ú_loaded_cpy_structz!VCPythonEngine._loaded_cpy_structÐ  ó   € Ø×$Ò$ RÑ(Ô(Ð(Ð(Ð(r   c                 óN   — ||j         k    sJ ‚|                      |d|¦  «         d S ©NÚunionrú   rš   s      r   Ú_generate_cpy_union_declz'VCPythonEngine._generate_cpy_union_declÔ  s/   € Ø�r”wŠˆˆˆØ×+Ò+¨B°¸Ñ>Ô>Ð>Ð>Ð>r   c                 ó4   — |                       |d|¦  «         d S r  rþ   rš   s      r   Ú_generate_cpy_union_methodz)VCPythonEngine._generate_cpy_union_method×  s    € Ø×-Ò-¨b°'¸4Ñ@Ô@Ð@Ð@Ð@r   c                 ó6   — |                       |d||¦  «         d S r  r  r  s       r   Ú_loading_cpy_unionz!VCPythonEngine._loading_cpy_unionÙ  s"   € Ø×%Ò% b¨'°4¸Ñ@Ô@Ð@Ð@Ð@r   c                 ó0   — |                       |¦  «         d S r   r  r�   s        r   Ú_loaded_cpy_unionz VCPythonEngine._loaded_cpy_unionÛ  r
  r   c           	      óø  — |j         €d S d|›d|›�}d|›d|›�}|›d|›�                     ¦   «         }| j        } |d|›d|›d�¦  «          |d¦  «          |d	¦  «          |d
¦  «         |                     ¦   «         D ]¨\  }}	}
}t	          |	t
          j        ¦  «        r|	                     ¦   «         s|
dk    r |d|z  ¦  «         ŒJ	  |d|	                     dd|z  |¬¦  «        ›d|›d�¦  «         Œw# t          $ r%} |dt          |¦  «        z  ¦  «         Y d }~Œ¡d }~ww xY w |d¦  «          |d¦  «          ||›d�¦  «          |d¦  «          |d|z  ¦  «          |d¦  «          |d|z  ¦  «          |d¦  «         |                     ¦   «         D ]t\  }}	}
}|
dk    rŒ |d|›d|›d�¦  «         t	          |	t
          j        ¦  «        r(|	j        €! |d|	                     ¦   «         z  ¦  «         Œb |d|›d |›d�¦  «         Œu |d!¦  «          |d"¦  «          |d#¦  «          |d$¦  «          |d%¦  «          |d&¦  «          |d'|›d(�¦  «          |d¦  «          |¦   «          d S ))NÚ_cffi_check_rŽ   Ú_cffi_layout_rŒ   zstatic void r¢   z *p)rB   z8  /* only to generate compile-time warnings or errors */z
  (void)p;r   z  (void)((p->%s) << 1);rÜ   z*tmpzfield %r)Úqualsz = &p->z; (void)tmp; }z
  /* %s */rF   rÒ   z!(PyObject *self, PyObject *noarg)z,  struct _cffi_aligncheck { char x; %s y; };z  static Py_ssize_t nums[] = {z    sizeof(%s),z)    offsetof(struct _cffi_aligncheck, y),z    offsetof(r¿   z),z    0,  /* %s */z    sizeof(((z *)0)->z    -1z  };rÞ   rß   z'  return _cffi_get_struct_layout(nums);z3  /* the next line is not executed, but compiled */r¤   z(0);)rÄ   Ústripr1   Ú
enumfieldsr7   r   r8   r§   r©   r   ÚstrrÂ   ÚlengthrÆ   )r   r;   Úprefixr9   ÚcheckfuncnameÚlayoutfuncnameÚcnamerL   ÚfnameÚftypeÚfbitsizeÚfqualr€   s                r   rû   z-VCPythonEngine._generate_struct_or_union_declÞ  s~  € ØŒ;ÐØˆFð à/5¨v¨v°t°tÐ<ˆˆØ17°°¸¸Ð>ˆØ"˜F˜F D DÐ)×0Ò0Ñ2Ô2ˆàŒzˆØˆˆ¨¨¨°u°u°uÐ=Ñ>Ô>Ð>ØˆˆS‰	Œ	ˆ	ØˆÐGÑHÔHÐHØˆˆ\ÑÔÐØ-/¯]ª]©_¬_ð 	0ð 	0Ñ)ˆE�5˜( EÝ˜5¥%Ô"5Ñ6Ô6ð 0Ø×)Ò)Ñ+Ô+ð0Ø08¸A²°à�Ð.°Ñ6Ñ7Ô7Ð7Ð7ð0Ø�D�DØ×(Ò(¨°¸EÑ1AÈÐ(ÑOÔOÐOÐOØ˜˜ðñ  ô  ð  ð  øõ )ð 0ð 0ð 0Ø�D˜­¨A©¬Ñ.Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/øøøøð0øøøàˆˆS‰	Œ	ˆ	ØˆÐ Ñ!Ô!Ð!Øˆ°n°n°nÐFÑGÔGÐGØˆˆS‰	Œ	ˆ	ØˆÐ;¸eÑCÑDÔDÐDØˆÐ-Ñ.Ô.Ð.ØˆÐ Ñ&Ñ'Ô'Ð'ØˆÐ8Ñ9Ô9Ð9Ø-/¯]ª]©_¬_ð 	Dð 	DÑ)ˆE�5˜( EØ˜1Š}ˆ}ØØˆDˆD¨E¨E¨E°5°5°5Ð9Ñ:Ô:Ð:Ý˜%¥¤Ñ1Ô1ð D°e´lÐ6JØ�Ð'¨%×*;Ò*;Ñ*=Ô*=Ñ=Ñ>Ô>Ð>Ð>à��°U°U°U¸E¸E¸EÐBÑCÔCÐCÐCØˆˆX‰ŒˆØˆˆV‰ŒˆØˆÐ)Ñ*Ô*Ð*ØˆÐ*Ñ+Ô+Ð+ØˆÐ6Ñ7Ô7Ð7ØˆÐBÑCÔCÐCØˆˆ˜=˜=˜=Ð*Ñ+Ô+Ð+ØˆˆS‰	Œ	ˆ	Øˆ‰Œˆˆˆs   Ã+C8Ã8
D'ÄD"Ä"D'c                 ó`   — |j         €d S d|›d|›�}|                      d|›d|›d�¦  «         d S )Nr  rŽ   rð   rØ   z, METH_NOARGS, NULL},)rÄ   r1   )r   r;   r  r9   r  s        r   rÿ   z/VCPythonEngine._generate_struct_or_union_method  s^   € ØŒ;ÐØˆFð à17°°¸¸Ð>ˆØ�
Š
ˆ
¸¸¸Ø9G¸¸ðIñ 	Jô 	Jð 	Jð 	Jð 	Jr   c                 óð  — |j         €d S d|›d|›�}t          ||¦  «        } |¦   «         }t          |t          j        ¦  «        r‹|j        r„|d         }|d         }	|dd d…         }
|dd d…         }|                     ¦   «          t          |
¦  «        t          |¦  «        cxk    rt          |j         ¦  «        k    sn J ‚|
|||	f|_        d S |›d|›� 	                    ¦   «         }||f| j
        |<   d S )Nr  rŽ   r   r   é   é   rŒ   )rÄ   r�   r7   r   r­   ÚpartialÚforce_flattenr:   Úfixedlayoutr  r   )r   r;   r  r9   ri   r  ÚfunctionÚlayoutÚ	totalsizeÚtotalalignmentÚfieldofsÚ	fieldsizer   s                r   r  z'VCPythonEngine._loading_struct_or_union  s$  € ØŒ;ÐØˆFð à17°°¸¸Ð>ˆå˜6 >Ñ2Ô2ˆØ�‘”ˆÝ�b�%Ô-Ñ.Ô.ð 	B°2´:ð 	Bð ˜qœ	ˆIØ# AœYˆNØ˜a˜d ˜d”|ˆHØ˜q˜t !˜tœˆIØ×ÒÑÔÐÝ�x‘=”=¥C¨	¡N¤NÐFÐFÒFÐFµc¸"¼+Ñ6FÔ6FÒFÐFÐFÐFÐFÐFØ% y°)¸^ÐKˆBŒNˆNˆNà &  ¨¨Ð-×4Ò4Ñ6Ô6ˆEØ4:¸E°MˆDÔ-¨bÑ1Ð1Ð1r   c                 óæ  — |j         €d S | j                             |¦  «         || j        v �rAd„ }| j        }|                     |¦  «        }| j                             |¦  «        \  }} ||d         |                     |¦  «        d¦  «          ||d         |                     |¦  «        d¦  «         d}|                     ¦   «         D ]�\  }}	}
}|
dk    rŒ |||         |                     ||¦  «        d|›�¦  «         ||dz            dk    rA|                     |	¦  «        } |||dz            |                     |¦  «        d|›�¦  «         |dz  }ŒŽ|t          |¦  «        k    sJ ‚d S d S )	Nc                 ó<   — | |k    rt          d||| fz  ¦  «        ‚d S )Nz'%s (we have %d, but C compiler says %d)r   )Ú	realvalueÚexpectedvalueÚmsgs      r   Úcheckz5VCPythonEngine._loaded_struct_or_union.<locals>.check4  s9   € Ø Ò-Ð-Ý+Ø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   rw   r   ÚpopÚsizeofÚalignofr  Úoffsetofr:   )r   r;   r7  r   ÚBStructr-  r   rZ   r!  r"  r#  r$  ÚBFields                r   r  z&VCPythonEngine._loaded_struct_or_union-  sº  € ØŒ;ÐØˆFØŒ×"Ò" 2Ñ&Ô&Ð&à�Ô2Ð2Ñ2ð;ð ;ð ;ð
 ”(ˆCØ×+Ò+¨BÑ/Ô/ˆGØ Ô=×AÒAÀ"ÑEÔE‰MˆF�EØˆE�&˜”)˜SŸZšZ¨Ñ0Ô0Ð2DÑEÔEÐEØˆE�&˜”)˜SŸ[š[¨Ñ1Ô1Ð3JÑKÔKÐKØˆAØ13·²±´ð 	ð 	Ñ-��u˜h¨Ø˜q’=�=ØØ��f˜Q”i §¢¨g°uÑ!=Ô!=Ð!=Ø5:°UÐ<ñ>ô >ð >à˜!˜A™#”; !Ò#Ð#Ø ×2Ò2°5Ñ9Ô9�FØ�E˜&  1¡œ+ s§z¢z°&Ñ'9Ô'9Ð'9Ø7<°uÐ>ñ@ô @ð @à�Q‘��Ø�˜F™œÒ#Ð#Ð#Ð#ð/ 3Ð2ð. $Ð#r   c                 óš   — t          |t          j        ¦  «        r|                      ||d¦  «         d S |                      |d|¦  «         d S ©Nr+   )r7   r   r®   Ú_generate_cpy_enum_declrû   rš   s      r   Ú_generate_cpy_anonymous_declz+VCPythonEngine._generate_cpy_anonymous_declQ  sR   € Ý�b�%œ.Ñ)Ô)ð 	>Ø×(Ò(¨¨T°2Ñ6Ô6Ð6Ð6Ð6à×/Ò/°°B¸Ñ=Ô=Ð=Ð=Ð=r   c                 ól   — t          |t          j        ¦  «        s|                      |d|¦  «         d S d S r?  )r7   r   r®   rÿ   rš   s      r   Ú_generate_cpy_anonymous_methodz-VCPythonEngine._generate_cpy_anonymous_methodW  sA   € Ý˜"�eœnÑ-Ô-ð 	@Ø×1Ò1°"°b¸$Ñ?Ô?Ð?Ð?Ð?ð	@ð 	@r   c                 óœ   — t          |t          j        ¦  «        r|                      |||¦  «         d S |                      |d||¦  «         d S r?  )r7   r   r®   Ú_loading_cpy_enumr  r  s       r   Ú_loading_cpy_anonymousz%VCPythonEngine._loading_cpy_anonymous[  sU   € Ý�b�%œ.Ñ)Ô)ð 	@Ø×"Ò" 2 t¨VÑ4Ô4Ð4Ð4Ð4à×)Ò)¨"¨b°$¸Ñ?Ô?Ð?Ð?Ð?r   c                 óˆ   — t          |t          j        ¦  «        r | j        |||fi |¤Ž d S |                      |¦  «         d S r   )r7   r   r®   Ú_loaded_cpy_enumr  r�   s        r   Ú_loaded_cpy_anonymousz$VCPythonEngine._loaded_cpy_anonymousa  sU   € Ý�b�%œ.Ñ)Ô)ð 	-Ø!ˆDÔ! " d¨FÐ;Ð;°dÐ;Ð;Ð;Ð;Ð;à×(Ò(¨Ñ,Ô,Ð,Ð,Ð,r   ÚconstFc	                 ób  — | j         }	d|›d|›�}
 |	d|
z  ¦  «          |	d¦  «          |	d¦  «          |	d¦  «         |s% |	d|p|                     d|¦  «        z  ¦  «         n|d	k    sJ ‚|�|                      ||¦  «         |sF|d
k    rd|z   }n|} |	d|›d�¦  «          |	d|                      |dd¦  «        ›d�¦  «         |sJ ‚n |	d|z  ¦  «          |	d¦  «          |	d¦  «         |rQ |	d¦  «          |	d¦  «          |	d|›d�¦  «          |	d¦  «          |	d¦  «          |	d¦  «          |	d¦  «          |	d|z  ¦  «          |	d¦  «          |	d¦  «          |	d¦  «          |	d | j        |         z  ¦  «         |
d!z   | j        |<    |	d"¦  «          |	¦   «          d S )#NÚ_cffi_rŽ   ústatic int %s(PyObject *lib)rB   z  PyObject *o;z
  int res;rÔ   z irJ  rÇ   ú&z  i = (r¥   z  o = rZ   zvariable typerÕ   z!  o = _cffi_from_c_int_const(%s);z  if (o == NULL)ú    return -1;z  {z    PyObject *o1 = o;z3    o = Py_BuildValue("On", o1, (Py_ssize_t)sizeof(z));z    Py_DECREF(o1);z    if (o == NULL)z      return -1;rE   z-  res = PyObject_SetAttrString(lib, "%s", o);z  Py_DECREF(o);z  if (res < 0)ú  return %s;ú(lib)rF   )r1   r©   Ú_check_int_constant_valuerÉ   rG   )r   Úis_intr9   r;   ÚcategoryÚvartpÚdelayedÚsize_tooÚcheck_valuerL   ÚfuncnameÚrealexprs               r   rà   z"VCPythonEngine._generate_cpy_constj  s£  € ð ŒzˆˆØ$, H H¨d¨dÐ3ˆØˆÐ+¨hÑ6Ñ7Ô7Ð7ØˆˆS‰	Œ	ˆ	ØˆÐÑÔÐØˆˆ\ÑÔÐØð 	'ØˆD�˜E˜K R×3Ò3°D¸$Ñ?Ô?Ñ?Ñ@Ô@Ð@Ð@à˜wÒ&Ð&Ð&Ð&àÐ"Ø×*Ò*¨4°Ñ=Ô=Ð=àð 
	=Ø˜5Ò Ð Ø ™:��à�ØˆDˆD ( ( (Ð,Ñ-Ô-Ð-ØˆDˆD × 9Ò 9¸"¸cØ:Iñ!Kô !Kð !Kð !Kð Mñ Nô Nð NàˆNˆNˆNˆNàˆDÐ4°tÑ;Ñ<Ô<Ð<ØˆÐÑ Ô Ð ØˆÐÑÔÐØð 	ØˆD�‰KŒKˆKØˆDÐ(Ñ)Ô)Ð)ØˆDˆDØ�D�Dðñ ô ð àˆDÐ%Ñ&Ô&Ð&ØˆDÐ%Ñ&Ô&Ð&ØˆDÐ#Ñ$Ô$Ð$ØˆD�‰KŒKˆKØˆÐ<¸tÑCÑDÔDÐDØˆÐÑÔÐØˆÐÑÔÐØˆÐÑÔÐØˆˆ^˜dÔ:¸7ÔCÑCÑDÔDÐDØ08¸7Ñ0BˆÔ$ WÑ-ØˆˆS‰	Œ	ˆ	Øˆ‰Œˆˆˆr   c                 ó”   — t          |t          j        ¦  «        o|                     ¦   «         }|s|                      |¦  «         d S d S r   )r7   r   r8   r§   r=   ©r   r;   r9   rS  s       r   Ú"_generate_cpy_constant_collecttypez1VCPythonEngine._generate_cpy_constant_collecttypeš  sQ   € Ý˜B¥Ô 3Ñ4Ô4ÐM¸×9KÒ9KÑ9MÔ9MˆØð 	&Ø×!Ò! "Ñ%Ô%Ð%Ð%Ð%ð	&ð 	&r   c                 ó�   — t          |t          j        ¦  «        o|                     ¦   «         }|                      |||¦  «         d S r   )r7   r   r8   r§   rà   r\  s       r   Ú_generate_cpy_constant_declz*VCPythonEngine._generate_cpy_constant_declŸ  sC   € Ý˜B¥Ô 3Ñ4Ô4ÐM¸×9KÒ9KÑ9MÔ9MˆØ× Ò  ¨¨rÑ2Ô2Ð2Ð2Ð2r   c                 ó`  — | j         }|dk    r |d|||fz  ¦  «         n |d|||fz  ¦  «          |d¦  «          |d|z  ¦  «          |d|z  ¦  «          |d¦  «          |d|z  ¦  «          |d	¦  «          |d
¦  «          |d|||fz  ¦  «          |d¦  «          |d¦  «         d S )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.        snprintf(buf, 63, "%%ld", (long)(%s));z    elsez7        snprintf(buf, 63, "%%lu", (unsigned long)(%s));z)    PyErr_Format(_cffi_VerificationError,z6                 "%s%s has the real value %s, not %s",z(                 "%s", "%s", buf, "%d");rO  rE   )r1   )r   r9   rW   Ú
err_prefixrL   s        r   rR  z(VCPythonEngine._check_int_constant_valueª  sB  € ØŒzˆØ�AŠ:ˆ:ØˆDÐ9Ø�d˜Eð=#ñ #ñ $ô $ð $ð $ð ˆDÐDØ�d˜EðH#ñ #ñ $ô $ð $àˆÐ Ñ!Ô!Ð!ØˆÐ! DÑ(Ñ)Ô)Ð)ØˆÐ=ÀÑDÑEÔEÐEØˆˆZÑÔÐØˆÐFØññ 	ô 	ð 	àˆÐ8Ñ9Ô9Ð9ØˆÐEÑFÔFÐFØˆÐ7Ø˜˜eð;%ñ %ñ 	&ô 	&ð 	&àˆÐÑÔÐØˆˆU‰Œˆˆˆr   c                 ó>   — |                      dd¦  «        }d|›d|›�S )Nú$Ú___D_Ú_cffi_e_rŽ   )rª   )r   r  r9   s      r   Ú_enum_funcnamezVCPythonEngine._enum_funcname¿  s(   € à�|Š|˜C Ñ)Ô)ˆˆØ"( & &¨$¨$Ð/Ð/r   Úenumc                 ó²  — |j         r$|j        D ]}|                      d|d¬¦  «         Œd S |                      ||¦  «        }| j        } |d|z  ¦  «          |d¦  «         t          |j        |j        ¦  «        D ]\  }}|                      ||d|z  ¦  «         Œ  |d| j        d         z  ¦  «         |dz   | j        d<    |d	¦  «          |¦   «          d S )
NTF)rV  rM  rB   z	enum %s: rP  rQ  rF   )	r)  Úenumeratorsrà   rf  r1   ÚzipÚ
enumvaluesrR  rG   )r   r;   r9   r  Ú
enumeratorrY  rL   Ú	enumvalues           r   r@  z&VCPythonEngine._generate_cpy_enum_declÄ  s  € ØŒ:ð 	Ø œnð Jð J�
Ø×(Ò(¨¨zÀ5Ð(ÑIÔIÐIÐIØˆFà×&Ò& v¨tÑ4Ô4ˆØŒzˆØˆÐ+¨hÑ6Ñ7Ô7Ð7ØˆˆS‰	Œ	ˆ	Ý%(¨¬¸¼Ñ%GÔ%Gð 	?ð 	?Ñ!ˆJ˜	Ø×*Ò*¨:°yØ+6¸Ñ+=ñ?ô ?ð ?ð ?àˆˆ^˜dÔ:¸4Ô@Ñ@ÑAÔAÐAØ-5¸Ñ-?ˆÔ$ TÑ*ØˆˆS‰	Œ	ˆ	Øˆ‰Œˆˆˆr   c                 óv   ‡— |j         r0ˆfd„|j        D ¦   «         }t          |¦  «        |_        d|_        d S d S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS r   )r�   )rU   rl  ri   s     €r   rX   z4VCPythonEngine._loading_cpy_enum.<locals>.<listcomp>Û  s3   ø€ ð <ð <ð <Ø(õ " &¨*Ñ5Ô5ð <ð <ð <r   T)r)  ri  Útuplerk  Úpartial_resolved)r   r;   r9   ri   rk  s      ` r   rE  z VCPythonEngine._loading_cpy_enumÙ  s^   ø€ ØŒ:ð 	'ð<ð <ð <ð <Ø,.¬Nð<ñ <ô <ˆJå! *Ñ-Ô-ˆBŒMØ"&ˆBÔÐÐð		'ð 	'r   c                 óh   — t          |j        |j        ¦  «        D ]\  }}t          |||¦  «         Œd S r   )rj  ri  rk  rô   )r   r;   r9   ri   rk   rl  rm  s          r   rH  zVCPythonEngine._loaded_cpy_enumà  sC   € Ý%(¨¬¸¼Ñ%GÔ%Gð 	4ð 	4Ñ!ˆJ˜	Ý�G˜Z¨Ñ3Ô3Ð3Ð3ð	4ð 	4r   c                 óL   — |dk    rd }n|}|                       d||¬¦  «         d S )Nz...T)rX  )rà   )r   r;   r9   rX  s       r   Ú_generate_cpy_macro_declz'VCPythonEngine._generate_cpy_macro_declç  s8   € Ø�Š;ˆ;ØˆKˆKàˆKØ× Ò   t¸Ð ÑEÔEÐEÐEÐEr   c                 óÀ   — t          |t          j        ¦  «        rt          j        |j        ¦  «        }nt          j        |¦  «        }|                      |¦  «         d S r   )r7   r   rÂ   r«   rÃ   r=   ©r   r;   r9   Útp_ptrs       r   Ú"_generate_cpy_variable_collecttypez1VCPythonEngine._generate_cpy_variable_collecttypeö  sT   € Ý�b�%œ/Ñ*Ô*ð 	+ÝÔ& r¤wÑ/Ô/ˆFˆFåÔ& rÑ*Ô*ˆFØ×Ò˜fÑ%Ô%Ð%Ð%Ð%r   c                 ó"  — t          |t          j        ¦  «        rGt          j        |j        ¦  «        }|                      d||||                     ¦   «         ¬¦  «         d S t          j        |¦  «        }|                      d||d¬¦  «         d S )NF)rU  rW  rÇ   )rT  )r7   r   rÂ   r«   rÃ   rà   Úlength_is_unknownrv  s       r   Ú_generate_cpy_variable_declz*VCPythonEngine._generate_cpy_variable_declý  s¡   € Ý�b�%œ/Ñ*Ô*ð 	JÝÔ& r¤wÑ/Ô/ˆFØ×$Ò$ U¨D°"¸FØ02×0DÒ0DÑ0FÔ0Fð %ñ Hô Hð Hð Hð Hõ Ô& rÑ*Ô*ˆFØ×$Ò$ U¨D°&À5Ð$ÑIÔIÐIÐIÐIr   c                 ó6  ‡— t          ||¦  «        }t          |t          j        ¦  «        rþ|                     ¦   «         r›t          |t
          ¦  «        sJ ‚|\  }}| j                             |j        ¦  «        }t          || j         
                    |¦  «        ¦  «        \  }}	|	dk    rt          d|›d|j        ›�¦  «        ‚|                     |¦  «        }|j        �F| j                             |¦  «        }
| j                             |
|¦  «        }t          |||¦  «         d S |Št!          ||¦  «         ˆfd„}ˆfd„}t          t#          |¦  «        |t%          ||¦  «        ¦  «         t#          |¦  «        j                             |¦  «         d S )Nr   z
bad size: z! does not seem to be an array of c                 ó   •— ‰d         S r   r   )rk   Úptrs    €r   Úgetterz3VCPythonEngine._loaded_cpy_variable.<locals>.getter"  s   ø€ Ø�q”6ˆMr   c                 ó   •— |‰d<   d S r   r   )rk   rW   r~  s     €r   Úsetterz3VCPythonEngine._loaded_cpy_variable.<locals>.setter$  s   ø€ ØˆC�‰FˆFˆFr   )r�   r7   r   rÂ   rz  rp  r   rw   rÃ   Údivmodr9  r   Úresolve_lengthr  Úcastrô   Údelattrr3   Úpropertyr_   Úappend)r   r;   r9   ri   rk   rW   ÚsizeÚ	BItemTyper  ÚrestÚBArrayr  r�  r~  s                @r   Ú_loaded_cpy_variablez#VCPythonEngine._loaded_cpy_variable	  s¯  ø€ Ý˜ Ñ&Ô&ˆÝ�b�%œ/Ñ*Ô*ð 	à×#Ò#Ñ%Ô%ð 	/Ý! %­Ñ/Ô/Ð/Ð/Ð/Ø %‘�˜Ø œH×6Ò6°r´wÑ?Ô?�	Ý% d¨D¬H¯OªO¸IÑ,FÔ,FÑGÔG‘�˜Ø˜1’9�9Ý+Ð+à˜˜˜rœw˜wð(ñ)ô )ð )ð ×&Ò& vÑ.Ô.�ð ŒyÐ$Øœ×3Ò3°BÑ7Ô7�ØœŸš f¨eÑ4Ô4�Ý˜  uÑ-Ô-Ð-ØˆFð ˆÝ�˜ÑÔÐð	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	å•�W‘”˜t¥X¨f°fÑ%=Ô%=Ñ>Ô>Ð>ÝˆW‰ŒÔ×&Ò& tÑ,Ô,Ð,Ð,Ð,r   c                 óˆ   — | j         } |d¦  «          |d¦  «          |d| j        d         z  ¦  «          |d¦  «         d S )Nz,static int _cffi_setup_custom(PyObject *lib)rB   rP  TrF   )r1   rG   )r   rL   s     r   rJ   z%VCPythonEngine._generate_setup_custom+  sU   € ØŒzˆØˆÐ;Ñ<Ô<Ð<ØˆˆS‰	Œ	ˆ	Øˆˆ^˜dÔ:¸4Ô@Ñ@ÑAÔAÐAØˆˆS‰	Œ	ˆ	ˆ	ˆ	r   )r+   r   )NrJ  NTFN)rg  )Lrd   re   rf   Ú
_class_keyÚ_gen_python_moduler   r   r   r*   r1   r4   r=   rO   rƒ   rŠ   r)   rr   r›   rž   r·   r¼   r¬   rÉ   Ú!_generate_cpy_typedef_collecttypeÚ_generate_cpy_typedef_declÚ_generate_cpy_typedef_methodÚ_loading_cpy_typedefÚ_loaded_cpy_typedefrÎ   rë   rò   Ú_loading_cpy_functionrö   Ú _generate_cpy_struct_collecttyperü   r   r  r	  Ú_generate_cpy_union_collecttyper  r  r  r  rû   rÿ   r  r  Ú#_generate_cpy_anonymous_collecttyperA  rC  rF  rI  rà   r]  r_  Ú_generate_cpy_constant_methodÚ_loading_cpy_constantÚ_loaded_cpy_constantrR  rf  r@  Ú_generate_cpy_enum_collecttypeÚ_generate_cpy_enum_methodrE  rH  rt  Ú_generate_cpy_macro_collecttypeÚ_generate_cpy_macro_methodÚ_loading_cpy_macroÚ_loaded_cpy_macrorx  r{  Ú_generate_cpy_variable_methodÚ_loading_cpy_variablerŒ  rJ   r   r   r   r	   r	   
   s  € € € € € Ø€JØÐð.ð .ð .ðð ð ðð ð ð&ð &ð &ð#ð #ð #ð #ð%ð %ð %ð&ð &ð &ðYð Yð Yðv8ð 8ð 8ð 8ðtð ð ðð ð ðð ð ðð ð ðð ð ð
%(ð %(ð %(ðNKð Kð Kðð ð ð*ð *ð *ð< ):Ð%Ø#4ÐØ#4Ð Ø#/ÐØ#/Ðð
	-ð 	-ð 	-ðNð Nð Nð`
Kð 
Kð 
Kð )Ðð4ð 4ð 4ð (9Ð$ð@ð @ð @ðBð Bð BðBð Bð Bð)ð )ð )ð '8Ð#ð?ð ?ð ?ðAð Að AðAð Að Að)ð )ð )ð1ð 1ð 1ðfJð Jð JðBð Bð Bð*$ð $ð $ðD +<Ð'ð>ð >ð >ð@ð @ð @ð@ð @ð @ð-ð -ð -ð CJØ?DØ(,ð.ð .ð .ð .ð`&ð &ð &ð
3ð 3ð 3ð %6Ð!Ø(ÐØ(Ðð
ð ð ð ð*0ð 0ð 0ð
ð ð ð ð$ &7Ð"Ø 1Ðð'ð 'ð 'ð4ð 4ð 4ðFð Fð Fð '8Ð#Ø!2ÐØ%ÐØ%Ðð
&ð &ð &ðJð Jð Jð %6Ð!Ø(Ðð-ð -ð -ðDð ð ð ð r   r	   aì)  
#include <Python.h>
#include <stddef.h>

/* 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

#if PY_MAJOR_VERSION < 3
# undef PyCapsule_CheckExact
# undef PyCapsule_GetPointer
# define PyCapsule_CheckExact(capsule) (PyCObject_Check(capsule))
# define PyCapsule_GetPointer(capsule, name) \
    (PyCObject_AsVoidPtr(capsule))
#endif

#if PY_MAJOR_VERSION >= 3
# define PyInt_FromLong PyLong_FromLong
#endif

#define _cffi_from_c_double PyFloat_FromDouble
#define _cffi_from_c_float PyFloat_FromDouble
#define _cffi_from_c_long PyInt_FromLong
#define _cffi_from_c_ulong PyLong_FromUnsignedLong
#define _cffi_from_c_longlong PyLong_FromLongLong
#define _cffi_from_c_ulonglong PyLong_FromUnsignedLongLong
#define _cffi_from_c__Bool PyBool_FromLong

#define _cffi_to_c_double PyFloat_AsDouble
#define _cffi_to_c_float PyFloat_AsDouble

#define _cffi_from_c_int_const(x)                                        \
    (((x) > 0) ?                                                         \
        ((unsigned long long)(x) <= (unsigned long long)LONG_MAX) ?      \
            PyInt_FromLong((long)(x)) :                                  \
            PyLong_FromUnsignedLongLong((unsigned long long)(x)) :       \
        ((long long)(x) >= (long long)LONG_MIN) ?                        \
            PyInt_FromLong((long)(x)) :                                  \
            PyLong_FromLongLong((long long)(x)))

#define _cffi_from_c_int(x, type)                                        \
    (((type)-1) > 0 ? /* unsigned */                                     \
        (sizeof(type) < sizeof(long) ?                                   \
            PyInt_FromLong((long)x) :                                    \
         sizeof(type) == sizeof(long) ?                                  \
            PyLong_FromUnsignedLong((unsigned long)x) :                  \
            PyLong_FromUnsignedLongLong((unsigned long long)x)) :        \
        (sizeof(type) <= sizeof(long) ?                                  \
            PyInt_FromLong((long)x) :                                    \
            PyLong_FromLongLong((long long)x)))

#define _cffi_to_c_int(o, type)                                          \
    ((type)(                                                             \
     sizeof(type) == 1 ? (((type)-1) > 0 ? (type)_cffi_to_c_u8(o)        \
                                         : (type)_cffi_to_c_i8(o)) :     \
     sizeof(type) == 2 ? (((type)-1) > 0 ? (type)_cffi_to_c_u16(o)       \
                                         : (type)_cffi_to_c_i16(o)) :    \
     sizeof(type) == 4 ? (((type)-1) > 0 ? (type)_cffi_to_c_u32(o)       \
                                         : (type)_cffi_to_c_i32(o)) :    \
     sizeof(type) == 8 ? (((type)-1) > 0 ? (type)_cffi_to_c_u64(o)       \
                                         : (type)_cffi_to_c_i64(o)) :    \
     (Py_FatalError("unsupported size for type " #type), (type)0)))

#define _cffi_to_c_i8                                                    \
                 ((int(*)(PyObject *))_cffi_exports[1])
#define _cffi_to_c_u8                                                    \
                 ((int(*)(PyObject *))_cffi_exports[2])
#define _cffi_to_c_i16                                                   \
                 ((int(*)(PyObject *))_cffi_exports[3])
#define _cffi_to_c_u16                                                   \
                 ((int(*)(PyObject *))_cffi_exports[4])
#define _cffi_to_c_i32                                                   \
                 ((int(*)(PyObject *))_cffi_exports[5])
#define _cffi_to_c_u32                                                   \
                 ((unsigned int(*)(PyObject *))_cffi_exports[6])
#define _cffi_to_c_i64                                                   \
                 ((long long(*)(PyObject *))_cffi_exports[7])
#define _cffi_to_c_u64                                                   \
                 ((unsigned long long(*)(PyObject *))_cffi_exports[8])
#define _cffi_to_c_char                                                  \
                 ((int(*)(PyObject *))_cffi_exports[9])
#define _cffi_from_c_pointer                                             \
    ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[10])
#define _cffi_to_c_pointer                                               \
    ((char *(*)(PyObject *, CTypeDescrObject *))_cffi_exports[11])
#define _cffi_get_struct_layout                                          \
    ((PyObject *(*)(Py_ssize_t[]))_cffi_exports[12])
#define _cffi_restore_errno                                              \
    ((void(*)(void))_cffi_exports[13])
#define _cffi_save_errno                                                 \
    ((void(*)(void))_cffi_exports[14])
#define _cffi_from_c_char                                                \
    ((PyObject *(*)(char))_cffi_exports[15])
#define _cffi_from_c_deref                                               \
    ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[16])
#define _cffi_to_c                                                       \
    ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[17])
#define _cffi_from_c_struct                                              \
    ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[18])
#define _cffi_to_c_wchar_t                                               \
    ((wchar_t(*)(PyObject *))_cffi_exports[19])
#define _cffi_from_c_wchar_t                                             \
    ((PyObject *(*)(wchar_t))_cffi_exports[20])
#define _cffi_to_c_long_double                                           \
    ((long double(*)(PyObject *))_cffi_exports[21])
#define _cffi_to_c__Bool                                                 \
    ((_Bool(*)(PyObject *))_cffi_exports[22])
#define _cffi_prepare_pointer_call_argument                              \
    ((Py_ssize_t(*)(CTypeDescrObject *, PyObject *, char **))_cffi_exports[23])
#define _cffi_convert_array_from_object                                  \
    ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[24])
#define _CFFI_NUM_EXPORTS 25

typedef struct _ctypedescr CTypeDescrObject;

static void *_cffi_exports[_CFFI_NUM_EXPORTS];
static PyObject *_cffi_types, *_cffi_VerificationError;

static int _cffi_setup_custom(PyObject *lib);   /* forward */

static PyObject *_cffi_setup(PyObject *self, PyObject *args)
{
    PyObject *library;
    int was_alive = (_cffi_types != NULL);
    (void)self; /* unused */
    if (!PyArg_ParseTuple(args, "OOO", &_cffi_types, &_cffi_VerificationError,
                                       &library))
        return NULL;
    Py_INCREF(_cffi_types);
    Py_INCREF(_cffi_VerificationError);
    if (_cffi_setup_custom(library) < 0)
        return NULL;
    return PyBool_FromLong(was_alive);
}

union _cffi_union_alignment_u {
    unsigned char m_char;
    unsigned short m_short;
    unsigned int m_int;
    unsigned long m_long;
    unsigned long long m_longlong;
    float m_float;
    double m_double;
    long double m_longdouble;
};

struct _cffi_freeme_s {
    struct _cffi_freeme_s *next;
    union _cffi_union_alignment_u alignment;
};

#ifdef __GNUC__
  __attribute__((unused))
#endif
static int _cffi_convert_array_argument(CTypeDescrObject *ctptr, PyObject *arg,
                                        char **output_data, Py_ssize_t datasize,
                                        struct _cffi_freeme_s **freeme)
{
    char *p;
    if (datasize < 0)
        return -1;

    p = *output_data;
    if (p == NULL) {
        struct _cffi_freeme_s *fp = (struct _cffi_freeme_s *)PyObject_Malloc(
            offsetof(struct _cffi_freeme_s, alignment) + (size_t)datasize);
        if (fp == NULL)
            return -1;
        fp->next = *freeme;
        *freeme = fp;
        p = *output_data = (char *)&fp->alignment;
    }
    memset((void *)p, 0, (size_t)datasize);
    return _cffi_convert_array_from_object(p, ctptr, arg);
}

#ifdef __GNUC__
  __attribute__((unused))
#endif
static void _cffi_free_array_arguments(struct _cffi_freeme_s *freeme)
{
    do {
        void *p = (void *)freeme;
        freeme = freeme->next;
        PyObject_Free(p);
    } while (freeme != NULL);
}

static int _cffi_init(void)
{
    PyObject *module, *c_api_object = NULL;

    module = PyImport_ImportModule("_cffi_backend");
    if (module == NULL)
        goto failure;

    c_api_object = PyObject_GetAttrString(module, "_C_API");
    if (c_api_object == NULL)
        goto failure;
    if (!PyCapsule_CheckExact(c_api_object)) {
        PyErr_SetNone(PyExc_ImportError);
        goto failure;
    }
    memcpy(_cffi_exports, PyCapsule_GetPointer(c_api_object, "cffi"),
           _CFFI_NUM_EXPORTS * sizeof(void *));

    Py_DECREF(module);
    Py_DECREF(c_api_object);
    return 0;

  failure:
    Py_XDECREF(module);
    Py_XDECREF(c_api_object);
    return -1;
}

#define _cffi_type(num) ((CTypeDescrObject *)PyList_GET_ITEM(_cffi_types, num))

/**********/
)
rn   r+   r   r�   r   r   r   rx   r	   rH   r   r   r   ú<module>r¤     s…   ðð €
€
€
Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø #Ð #Ð #Ð #Ð #Ð #ðfð fð fð fð f�Vñ fô fð fðPJ€€€r   