ó
    sñ:iåÿ  ã                   ó4  • S SK r S SKrS SKrS SKrSSKJrJr  SSKJr  SSK	7  Sr
SrSr\R                  S	:g  =(       d%    \R                  S
:  =(       d    \R                  S:¬  =(       a    \R                  " S5      (       + r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r\R                  S:¼  a  \ R.                  rO " S S\ R2                  5      rS rS rS&S jrS&S jrS  rS! rS" r S# r!S$ r"    S'S% jr#g)(é    Né   )ÚffiplatformÚmodel)ÚVerificationError)Ú*i&  i'  i(  Úwin32)é   r   )r	   é   ÚPy_GIL_DISABLEDc                   ó*   • \ rS rSrSS jrS rS rSrg)Ú
GlobalExpré   c                 ó@   • Xl         X l        X0l        X@l        XPl        g ©N)ÚnameÚaddressÚtype_opÚsizeÚcheck_value)Úselfr   r   r   r   r   s         ÚR/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/cffi/recompiler.pyÚ__init__ÚGlobalExpr.__init__   s   € ØŒ	ØŒØŒØŒ	Ø&Õó    c           	      ó”   • SU R                   < SU R                  < SU R                  R                  5       < SU R                  < S3	$ )Nú  { "z", (void *)ú, z
, (void *)ú },)r   r   r   Ú	as_c_exprr   ©r   s    r   r   ÚGlobalExpr.as_c_expr   s0   � à�IŒI�t—|”| T§\¡\×%;Ñ%;Ö%=¸t¿y¼yðJð 	Jr   c                 ój   • SU R                   R                  5       U R                  U R                  4-  $ )Nz
b'%s%s',%d)r   Úas_python_bytesr   r   r    s    r   Úas_python_exprÚGlobalExpr.as_python_expr   s2   € Ø˜tŸ|™|×;Ñ;Ó=¸t¿y¹yØ#×/Ñ/ð1ñ 1ð 	1r   )r   r   r   r   r   N)r   r   ©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r$   Ú__static_attributes__© r   r   r   r      s   † ô'òJõ1r   r   c                   ó,   • \ rS rSrS rS rS rS rSrg)Ú	FieldExpré   c                 ó@   • Xl         X l        X0l        X@l        XPl        g r   )r   Úfield_offsetÚ
field_sizeÚfbitsizeÚfield_type_op)r   r   r1   r2   r3   r4   s         r   r   ÚFieldExpr.__init__   s   € ØŒ	Ø(ÔØ$ŒØ ŒØ*Õr   c                 óä   • S[        U R                  5      -  nSU R                  < SU R                  < S3SU< SU R                  < S3-   SU< SU R                  R                  5       < S3-   $ )NÚ r   ú", z,
z     z   r   )Úlenr   r1   r2   r4   r   )r   Úspacess     r   r   ÚFieldExpr.as_c_expr&   sZ   € Ø”s˜4Ÿ9™9“~Ñ%‰Ø%)§Y¤Y°×0AÔ0AÑBÛ%+¨T¯_¬_Ð=ò>ã%+¨T×-?Ñ-?×-IÑ-IÖ-KÐLñMð 	Nr   c                 ó   • [         er   )ÚNotImplementedErrorr    s    r   r$   ÚFieldExpr.as_python_expr,   s   € Ü!Ð!r   c                 ó  • U R                   R                  [        :X  a  SnO:U R                   R                  [        :X  a  [	        U R
                  5      nO[        eSU R                   R                  5       < U< U R                  < S3$ )NÚ úb'Ú')	r4   ÚopÚOP_NOOPÚOP_BITFIELDÚformat_four_bytesr3   r=   r#   r   )r   Ú	size_exprs     r   Úas_field_python_exprÚFieldExpr.as_field_python_expr/   sj   € Ø×Ñ× Ñ ¤GÓ+Ø‰IØ×Ñ×"Ñ"¤kÓ1Ü)¨$¯-©-Ó8‰Iä%Ð%øØ"×0Ñ0×@Ñ@ÕBÚ'Ø"Ÿiœið)ð 	)r   )r3   r1   r2   r4   r   N)	r'   r(   r)   r*   r   r   r$   rH   r+   r,   r   r   r.   r.      s   † ò+òNò"õ	)r   r.   c                   ó&   • \ rS rSrS rS rS rSrg)ÚStructUnionExpré:   c	                 ód   • Xl         X l        X0l        X@l        XPl        X`l        Xpl        X€l        g r   )r   Ú
type_indexÚflagsr   Ú	alignmentÚcommentÚfirst_field_indexÚc_fields)	r   r   rN   rO   r   rP   rQ   rR   rS   s	            r   r   ÚStructUnionExpr.__init__;   s+   € àŒ	Ø$ŒØŒ
ØŒ	Ø"ŒØŒØ!2ÔØ �r   c                 ó.  • SU R                   U R                  U R                  4-  SU R                  < SU R                  < S3-   SU R
                  [        U R                  5      4-  -   U R                  (       a  SU R                  -  -   S-   $ S-   S-   $ )Nz  { "%s", %d, %s,z
    r   z%d, %d z	/* %s */ r@   z},)	r   rN   rO   r   rP   rR   r9   rS   rQ   r    s    r   r   ÚStructUnionExpr.as_c_exprF   sš   € Ø# t§y¡y°$·/±/À4Ç:Á:Ð&NÒNØ&*§i¤i°·´Ð@ñAà˜t×5Ñ5´s¸4¿=¹=Ó7IÐJÑJñKð 26··�; §¡Ñ-ñGð ñ	ð 	ð DFñGð ñ	ð 	r   c                 ó   • [        U R                  [        5      nU R                   Vs/ s H  nUR	                  5       PM     nnS[        U R                  5      < [        U5      < U R                  < SSR                  U5      < S3$ s  snf )Nz(b'ú',Ú,Ú))	ÚevalrO   ÚG_FLAGSrS   rH   rF   rN   r   Újoin)r   rO   Úc_fieldÚfields_exprs       r   r$   ÚStructUnionExpr.as_python_exprM   sy   € Ü�T—Z‘Z¤Ó)ˆà&*§m¢mó5Ú&3˜7ð ×3Ñ3Ö5Ù&3ð 	ð 5ˆô ˜dŸo™oÕ.Ü˜eÕ$Ø�IŒIØ�H‰H�[Ö!ð	#ð 	#ùò5s   ©B)rP   rS   rQ   rR   rO   r   r   rN   Nr&   r,   r   r   rK   rK   :   s   † ò	!òõ#r   rK   c                   ó&   • \ rS rSrS rS rS rSrg)ÚEnumExpréW   c                 ó@   • Xl         X l        X0l        X@l        XPl        g r   ©r   rN   r   ÚsignedÚallenums)r   r   rN   r   rf   rg   s         r   r   ÚEnumExpr.__init__X   s   € ØŒ	Ø$ŒØŒ	ØŒØ �r   c                 óz   • SU R                   U R                  U R                  U R                  U R                  4-  $ )Nz1  { "%s", %d, _cffi_prim_int(%s, %s),
    "%s" },re   r    s    r   r   ÚEnumExpr.as_c_expr_   s9   € ðØ!%§¡¨D¯O©OØ!%§¡¨D¯K©K¸¿¹ð!HñHð 	Ir   c           	      ó  • [         [        [        [        [        [
        [        [        S.U R                  U R                  4   nS[        U R                  5      < [        U5      < U R                  < SU R                  < S3$ )N))r   r   )r   r   )é   r   )rl   r   )é   r   )rm   r   )é   r   )rn   r   rA   z\x00rB   )Ú
PRIM_UINT8Ú	PRIM_INT8ÚPRIM_UINT16Ú
PRIM_INT16ÚPRIM_UINT32Ú
PRIM_INT32ÚPRIM_UINT64Ú
PRIM_INT64r   rf   rF   rN   r   rg   )r   Ú
prim_indexs     r   r$   ÚEnumExpr.as_python_exprd   sa   € ä¬)Ü¬*Ü¬*Ü¬*ñ	ð
 �i‰i˜Ÿ™Ð$ñ&‰
ô &7°t·±Õ%GÜ%6°zÕ%BØ%)§Y¤Y°·´ð?ð 	?r   )rg   r   rf   r   rN   Nr&   r,   r   r   rb   rb   W   s   † ò!òIõ
	?r   rb   c                   ó&   • \ rS rSrS rS rS rSrg)ÚTypenameExpréo   c                 ó   • Xl         X l        g r   ©r   rN   )r   r   rN   s      r   r   ÚTypenameExpr.__init__p   s   € ØŒ	Ø$�r   c                 ó8   • SU R                   U R                  4-  $ )Nz  { "%s", %d },r}   r    s    r   r   ÚTypenameExpr.as_c_exprt   s   € Ø  D§I¡I¨t¯©Ð#?Ñ?Ð?r   c                 óP   • S[        U R                  5      < U R                  < S3$ )NrA   rB   )rF   rN   r   r    s    r   r$   ÚTypenameExpr.as_python_exprw   s   � Ü-¨d¯o©oÕ>ÀÇ	Ä	ÐJÐJr   r}   Nr&   r,   r   r   rz   rz   o   s   † ò%ò@õKr   rz   c                   ó
  • \ rS rSrSrSMS jrS rS rS rS r	S r
/ S	QrS
 rSNS j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S rS rS rS rS r S r!S  r"SOS" jr#S# r$S$ r%S% r&\&r'S& r(S' r)\)r*S( r+\+r,S) r-S* r.S+ r/  SPS, jr0S- r1S. r2S/ r3S0 r4SOS1 jr5S2 r6S3 r7S4 r8S5 r9S6 r:S7 r;S8 r<S9 r=S: r>S; r?\?=r@rAS< rBS= rCS> rDS? rES@ rF\F=rGrHSA rISB rJSC rKSD rLSE rMSF rNSG rO\OrP\OrQSH rRSI rSSJ rT\TrUSK rVSLrWg!)QÚ
Recompileré~   r   c                 ó>   • Xl         X l        X0l        [        U l        g r   )ÚffiÚmodule_nameÚtarget_is_pythonÚVERSION_BASEÚ_version)r   r‡   rˆ   r‰   s       r   r   ÚRecompiler.__init__�   s   € ØŒØ&ÔØ 0ÔÜ$ˆ�r   c                 ó:   • [        U R                  U5      U l        g r   )Úmaxr‹   )r   Úvers     r   Úneeds_versionÚRecompiler.needs_version‡   s   € Ü˜DŸM™M¨3Ó/ˆ�r   c           
      óZ  • 0 U l         U R                  S5        [        U R                   [        S9n/ U l        U GH?  nUR
                  (       d  M  U R                   U   b   e[        U R                  5      U R                   U'   U R                  R                  U5        UR                   H®  n[        U[        R                  [        R                  [        R                  [        R                  [        R                  45      (       d   eU R                   U   c"  [        U R                  5      U R                   U'   U R                  R                  U5        M°     U R                  R                  S5        GMB     U H¢  nUR
                  (       a  M  U R                   U   b  M(  [        U R                  5      U R                   U'   U R                  R                  U5        UR                   (       d  Mx  UR"                  c  M‡  U R                  R                  S5        M¤     S U R                   R%                  5       ;  d   e0 U l        0 U l        U Hc  n[        U[        R*                  5      (       a  S U R&                  U'   M3  [        U[        R,                  5      (       d  MT  S U R(                  U'   Me     [/        [        U R&                  S S95       H  u  pBX@R&                  U'   M     [/        [        U R(                  S S95       H  u  pBX@R(                  U'   M     U H;  n[1        U SUR2                  R4                  -   5      nU" X R                   U   5        M=     U R                   H  n[        U[6        5      (       a  M   e   [9        U R                  5      U l        g )NÚcollecttype©ÚkeyÚENDÚLENc                 ó   • U R                   $ r   ©r   ©Útps    r   Ú<lambda>Ú/Recompiler.collect_type_table.<locals>.<lambda>´   ó   € °R·W²Wr   c                 ó   • U R                   $ r   r™   rš   s    r   rœ   r�   ·   rž   r   Ú_emit_bytecode_)Ú
_typesdictÚ	_generateÚsortedÚstrÚ
cffi_typesÚis_raw_functionr9   ÚappendÚargsÚ
isinstancer   ÚVoidTypeÚBasePrimitiveTypeÚPointerTypeÚStructOrUnionOrEnumÚFunctionPtrTypeÚis_array_typeÚlengthÚvaluesÚ_struct_unionsÚ_enumsÚStructOrUnionÚEnumTypeÚ	enumerateÚgetattrÚ	__class__r'   ÚCffiOpÚtuple)r   Ú	all_declsr›   Útp1ÚiÚmethodrC   s          r   Úcollect_type_tableÚRecompiler.collect_type_tableŠ   sç  € ØˆŒØ�‰�}Ô%ä˜4Ÿ?™?´Ñ4ˆ	ð ˆŒÜˆBØ×!×!Ñ!Ø—‘ rÑ*Ñ2Ð2Ð2Ü&)¨$¯/©/Ó&:�—‘ Ñ#Ø—‘×&Ñ& rÔ*ØŸ7œ7�CÜ% c¬E¯N©NÜ,1×,CÑ,CÜ,1×,=Ñ,=Ü,1×,EÑ,EÜ,1×,AÑ,Að	,C÷ Dñ Dð Dð Dð
 —‘ sÑ+Ñ3Ü/2°4·?±?Ó/C˜Ÿ™¨Ñ,Ø—O‘O×*Ñ*¨3Ö/ñ #ð —‘×&Ñ& u×-ñ ó" ˆBØ×%×%Ñ%¨$¯/©/¸"Ñ*=Ó*EÜ&)¨$¯/©/Ó&:�—‘ Ñ#Ø—‘×&Ñ& rÔ*Ø×#×#Ñ#¨¯	©	Ó(=Ø—O‘O×*Ñ*¨5Ö1ñ ð ˜4Ÿ?™?×1Ñ1Ó3Ó3Ð3Ð3ð !ˆÔØˆŒÛˆBÜ˜"œe×1Ñ1×2Ñ2Ø*.�×#Ñ# BÓ'Ü˜B¤§¡×/Ó/Ø"&�—‘˜B“ñ	 ô
 œv d×&9Ñ&9Ù*<ñ >ö ?‰EˆAà&'×Ñ Ó#ñ?ô œv d§k¡kÙ*<ñ >ö ?‰EˆAà�K‰K˜‹Oñ?ó
 ˆBÜ˜TÐ#4°r·|±|×7LÑ7LÑ#LÓMˆFÙ�2—‘ rÑ*Ö+ñ ð
 —/”/ˆBÜ˜b¤&×)Ó)Ð)Ð)ñ "ä §¡Ó0ˆ�r   c                 óF   • U R                   (       + nUR                  U5      $ r   )r‰   Ú
enumfields)r   r›   Úexpand_anonymous_struct_unions      r   Ú_enum_fieldsÚRecompiler._enum_fieldsÄ   s#   € ð -1×,AÑ,AÔ(AÐ%Ø�}‰}Ð:Ó;Ð;r   c                 óÒ  • [        U[        R                  5      (       d0  [        U[        5      (       a  U H  nU R	                  U5        M     g XR
                  ;  Ga  S U R
                  U'   [        U[        R                  5      (       a   U R	                  UR                  5       5        g [        U[        R                  5      (       ap  UR                  bb  XR                  R                  R                  ;  a>  U R                  U5       H(  u  p4  nU R	                  U R                  XU5      5        M*     g g g UR                  5        H  u  pRU R	                  U5        M     g g r   )r©   r   ÚBaseTypeByIdentityrº   Ú_do_collect_typer¡   r®   Úas_raw_functionr´   Úfldtypesr‡   Ú_parserÚ_included_declarationsrÄ   Ú_field_typeÚ
_get_items)r   r›   ÚxÚname1r¼   Ú_s         r   rÈ   ÚRecompiler._do_collect_typeÏ   s  € Ü˜"œe×6Ñ6×7Ñ7Ü˜"œe×$Ñ$Û�AØ×)Ñ)¨!Ö,ñ àØ—_‘_Ô$Ø"&ˆD�O‰O˜BÑÜ˜"œe×3Ñ3×4Ñ4Ø×%Ñ% b×&8Ñ&8Ó&:Õ;Ü˜B¤× 3Ñ 3×4Ñ4Ø—;‘;Ñ*Ø§(¡(×"2Ñ"2×"IÑ"IÓIØ,0×,=Ñ,=¸bÖ,AÑ(˜ A qØ×-Ñ-¨d×.>Ñ.>¸rÈ#Ó.NÖOò -Bð Jð +ð
 ŸM™MžO‘D�AØ×)Ñ)¨!Ö,ò ,ð %r   c                 óˆ  • U R                   R                  R                  R                  5       n[	        U5       H@  u  nu  pEUR                  SS5      u  pg [        U SU< SU< 35      n XPl	        U" XG5        MB     g ! [         a    [        SU-  5      ef = f! [         a  n	[        R                  " X“5        e S n	A	ff = f)Nr7   r   Ú_generate_cpy_rÑ   z"not implemented in recompile(): %r)r‡   rË   Ú_declarationsÚitemsr£   Úsplitr·   ÚAttributeErrorr   Ú_current_qualsÚ	Exceptionr   Úattach_exception_info)
r   Ú	step_nameÚlstr   r›   ÚqualsÚkindÚrealnamer¾   Úes
             r   r¢   ÚRecompiler._generateâ   sÄ   € Ø�h‰h×Ñ×,Ñ,×2Ñ2Ó4ˆÜ!'¨¦ÑˆD‘+�2Ø!ŸZ™Z¨¨QÓ/‰NˆDðAÜ ¡ÃÚ@Ið(Kó L�ð
Ø&+Ô#Ù�rÖ$ò "-øô
 "ó AÜ'Ø8¸4Ñ?óAð AðAûô ó Ü×+Ò+¨AÔ4Øûðús$   ÁA?Á,BÁ?BÂ
CÂ%B<Â<C)ÚglobalÚfieldÚstruct_unionÚenumÚtypenamec                 ój  • 0 U l         U R                   H  n/ U R                   U'   M     [        5       U l        U R	                  S5        U R                  5         U R                   H@  nU R                   U   nUS:w  a  UR                  S S9  [        U5      U R                   U'   MB     U R                   S   nU R                  R                  5        H4  u  p4U[        U5      :  d   eX$   R                  UR                  :X  a  M4   e   [        U5      [        U R                  5      :X  d   eU R                   S   nU R                  R                  5        H4  u  p4U[        U5      :  d   eX$   R                  UR                  :X  a  M4   e   [        U5      [        U R                  5      :X  d   eg )NÚctxrä   c                 ó   • U R                   $ r   r™   )Úentrys    r   rœ   Ú0Recompiler.collect_step_tables.<locals>.<lambda>  s   € ¨5¯:ª:r   r”   rå   ræ   )Ú_lstsÚ	ALL_STEPSÚsetÚ_seen_struct_unionsr¢   Ú_add_missing_struct_unionsÚsortrº   r²   rÖ   r9   r   r³   )r   rÜ   rÝ   r›   r½   s        r   Úcollect_step_tablesÚRecompiler.collect_step_tables÷   sj  € àˆŒ
ØŸœˆIØ$&ˆD�J‰J�yÓ!ñ (ä#&£5ˆÔ Ø�‰�uÔØ×'Ñ'Ô)àŸœˆIØ—*‘*˜YÑ'ˆCØ˜GÓ#Ø—‘Ñ5�Ñ6Ü$)¨#£JˆD�J‰J�yÓ!ñ	 (ð �j‰j˜Ñ(ˆØ×(Ñ(×.Ñ.Ö0‰EˆBØ”s˜3“x“<Ð�<Ø‘6—;‘; "§'¡'Õ)Ð)Ð)ñ 1ô �3‹xœ3˜t×2Ñ2Ó3Ó3Ð3Ð3à�j‰j˜Ñ ˆØ—[‘[×&Ñ&Ö(‰EˆBØ”s˜3“x“<Ð�<Ø‘6—;‘; "§'¡'Õ)Ð)Ð)ñ )ô �3‹xœ3˜tŸ{™{Ó+Ó+Ð+Ñ+r   c                 ó@   • U R                   R                  US-   5        g )NÚ
)Ú_fÚwrite)r   Úwhats     r   Ú_prntÚRecompiler._prnt  s   € Ø�‰�‰�d˜T‘kÕ"r   c                 ó€   • U R                   (       a  Ub   eU R                  U5        g Uc   eU R                  X5        g r   )r‰   Úwrite_py_source_to_fÚwrite_c_source_to_f)r   ÚfÚpreambles      r   Úwrite_source_to_fÚRecompiler.write_source_to_f  s?   € Ø× × ØÑ#Ð#Ð#Ø×%Ñ% aÕ(àÑ'Ð'Ð'Ø×$Ñ$ QÕ1r   c                 óÜ   • [        [        R                  R                  [        R                  R	                  [
        5      U5      S5      nUR                  5       nUR                  5         U$ )NÚr)ÚopenÚosÚpathr]   ÚdirnameÚ__file__Ú	readlinesÚclose)r   ÚfilenameÚgÚliness       r   Ú_rel_readlinesÚRecompiler._rel_readlines!  sC   € Ü”—‘—‘œbŸg™gŸo™o¬hÓ7¸ÓBÀCÓHˆØ—‘“ˆØ	�‰Œ	Øˆr   c           	      ób  • Xl         U R                  nU R                  R                  b  U" S5        [        (       d  U" S5        U R                  S5      nUR                  S5      nU R                  S5      XEUS-   & U" SR                  U5      5        U R                  R                  S5      S	   nU R                  R                  bô  U" S
U R                  < S35        U" S5        U R                  U R                  R                  5        U" S5        U" S5        U" SU< 35        U" S5        U" SU< 35        U" S5        U" SU< 35        U" S5        U R                  S5      nUR                  S5      nU R                  S5      XEUS-   & U" SR                  U5      5        U R                  [        5        U" S5        U" 5         U" U5        U" 5         U" S5        U" 5         U" S5        [        U R                  R                  5        VVs/ s H  u  puXW4PM
     snn5      n[!        U R"                  5       H<  u  pYSn
XX;   a  SX…   R%                  5       -   n
U" SXYR'                  5       U
4-  5        M>     U R"                  (       d  U" S5        U" S5        U" 5         [)        5       U l        U R-                  S5        0 nU R.                   Hh  nU R0                  U   n[3        U5      X¼'   X¼   S:”  d  M)  U" S U< S!U< S"35        U H  nU" UR'                  5       5        M     U" S5        U" 5         Mj     U R                  R4                  (       aj  U" S#5        U R                  R4                   H1  n UR6                  S S$ u  nnUc  [;        S(5      eU" S)U< S*35        M3     U" S+5        U" S5        U" 5         U" S,5        U" S-5        U R.                   H#  nX¼   S:”  a  U" S.U-  5        M  U" S/U-  5        M%     U R.                   H  nUS0:w  d  M  U" S1X¼   U4-  5        M     U R                  R4                  (       a	  U" S25        OU" S35        U" S4[3        U R"                  5      4-  5        SnU R<                  S:”  d  U R                  R                  b  US-  nU" S5U-  5        U" S5        U" 5         U" S65        U" S75        U" S5        U" 5         U" S5        U" S85        U" S9U< S:35        U" S;5        US-  (       a  U" S<5        U" S=5        U" S>5        U" S?U R>                  -  5        U" S@5        U" SA5        U" SB5        U" S5        U" SC5        U" SD5        U" SE5        U" SF5        U" SGU< SH35        U" SI5        U" SJU< SK35        U" SL5        U" SL5        U" S5        U" S85        U" SMU< SN35        U" S;5        U" SOU R                  U R>                  4-  5        U" SC5        U" S5        U" S85        U" SPU< SN35        U" S;5        U" SQU R                  U R>                  4-  5        U" SC5        U" S5        U" 5         U" S65        U" SR5        U" S5        S U l        g s  snnf ! [8         a    [;        S%U R                  < S&U< S'35      ef = f)SNz#define _CFFI_USE_EMBEDDINGz#define _CFFI_NO_LIMITED_APIz_cffi_include.hz#include "parse_c_type.h"
zparse_c_type.hr   r@   Ú.éÿÿÿÿz#define _CFFI_MODULE_NAME  "Ú"z1static const char _CFFI_PYTHON_STARTUP_CODE[] = {z0 };z#ifdef PYPY_VERSIONz3# define _CFFI_PYTHON_STARTUP_FUNC  _cffi_pypyinit_z#elif PY_MAJOR_VERSION >= 3z+# define _CFFI_PYTHON_STARTUP_FUNC  PyInit_ú#elsez(# define _CFFI_PYTHON_STARTUP_FUNC  initú#endifz_embedding.hz#include "_cffi_errors.h"
z_cffi_errors.hz>/************************************************************/zstatic void *_cffi_types[] = {z // z/* %2d */ %s,%sz  0z};Údeclr   zstatic const struct _cffi_z	_s _cffi_zs[] = {z.static const char * const _cffi_includes[] = {rl   úffi object ú
 includes ú8, but the latter has not been prepared with set_source()zMnot implemented yet: ffi.include() of a Python-based ffi inside a C-based ffiz  "z",z  NULLz?static const struct _cffi_type_context_s _cffi_type_context = {z  _cffi_types,z  _cffi_%ss,z  NULL,  /* no %ss */rä   z  %d,  /* num_%ss */z  _cffi_includes,z  NULL,  /* no includes */z  %d,  /* num_types */z  %d,  /* flags */z#ifdef __GNUC__z?#  pragma GCC visibility push(default)  /* for -fvisibility= */ÚPyMODINIT_FUNCÚ_cffi_pypyinit_z(const void *p[])Ú{z%    if (((intptr_t)p[0]) >= 0x0A03) {zQ        _cffi_call_python_org = (void(*)(struct _cffi_externpy_s *, char *))p[1];z    }z    p[0] = (const void *)0x%x;z    p[1] = &_cffi_type_context;z#if PY_MAJOR_VERSION >= 3ú    return NULL;Ú}z#  ifdef _MSC_VERz     PyMODINIT_FUNCz#  if PY_MAJOR_VERSION >= 3z     PyInit_z(void) { return NULL; }z#  elsez	     initz
(void) { }z#  endifÚPyInit_ú(void)z5  return _cffi_init("%s", 0x%x, &_cffi_type_context);Úinitz.  _cffi_init("%s", 0x%x, &_cffi_type_context);z#  pragma GCC visibility pop) r÷   rú   r‡   Ú
_embeddingÚUSE_LIMITED_APIr  Úindexr]   rˆ   r×   Ú_print_string_literal_in_arrayr�   ÚVERSION_EMBEDDEDÚdictr¡   rÖ   r¶   r¥   Ú_get_c_namer   rï   Ú_seen_constantsr¢   rî   rí   r9   Ú_included_ffisÚ_assigned_sourcerØ   r   Ú_num_externpyr‹   )r   rÿ   r   Úprntr  r½   Úbase_module_namer›   Útypeindex2typerC   rQ   ÚnumsrÜ   rÝ   rë   Úffi_to_includeÚincluded_module_nameÚincluded_sourcerO   s                      r   rþ   ÚRecompiler.write_c_source_to_f'  sS  € ØŒØ�z‰zˆØ�8‰8×ÑÑ*ÙÐ.Ô/ßŠÙÐ/Ô0ð ×#Ñ#Ð$5Ó6ˆØ�K‰KÐ5Ó6ˆØ×*Ñ*Ð+;Ó<ˆ��!‘ˆÙˆR�W‰W�U‹^Ôð  ×+Ñ+×1Ñ1°#Ó6°rÑ:ÐØ�8‰8×ÑÑ*Ú°d×6FÔ6FÐHÔIÙÐDÔEØ×/Ñ/°·±×0CÑ0CÔDÙ�ŒLÙÐ&Ô'ÚÚ ð#ô $áÐ.Ô/ÚÚ ð#ô $á�ŒMÚÚ ð#ô $á�ŒNØ×'Ñ'¨Ó7ˆEØ—‘Ð9Ó:ˆAØ×.Ñ.Ð/?Ó@ˆE�A�a‘CˆLÙ�—‘˜“Ô Ø×ÑÔ/Ô0ñ 	ÐMÔNÙŒÙˆXŒÙŒÙÐMÔNÙŒñ 	Ð-Ô.Ü°d·o±o×6KÑ6KÔ6MÔNÒ6M©7¨B ›wÑ6MÒNÓOˆÜ˜tŸ™Ö/‰EˆAØˆGØÓ"Ø  >Ñ#4×#@Ñ#@Ó#BÑB�ÙÐ" a¯©«¸Ð%AÑAÖBñ	 0ð
 ��Ù�ŒKÙˆTŒ
ÙŒô  #›uˆÔØ�‰�vÔð ˆØŸœˆIØ—*‘*˜YÑ'ˆCÜ! #›hˆD‰OØ‰ Õ"ÚÛ›yð*ô +ã �EÙ˜Ÿ™Ó*Ö+ñ !á�T”
Ù–ñ (ð �8‰8×"×"ÙÐAÔBØ"&§(¡(×"9Ô"9�ð8à&×7Ñ7¸¸Ð;ñ :Ð(¨/ð #Ñ*Ü+ð3ó4ð 4ò Ó"6Ð8Ö9ñ #:ñ �ŒNÙ�ŒJÙŒFñ 	ÐNÔOÙÐÔØŸœˆIØ‰ Ó"Ù�^ iÑ/Ö0áÐ,¨yÑ8Ö9ñ	 (ð
 ŸœˆIØ˜GÕ#ÙÐ+¨t©À	Ð.JÑJÖKñ (ð �8‰8×"×"ÙÐ$Õ%áÐ-Ô.ÙÐ%¬¨T¯_©_Ó)=Ð(?Ñ?Ô@ØˆØ×Ñ Ó! T§X¡X×%8Ñ%8Ñ%DØ�Q‰JˆEÙÐ! EÑ)Ô*ÙˆTŒ
ÙŒñ 	ÐÔÙÐNÔOÙˆXŒÙŒÙÐ"Ô#ÙÐÔÚÓ5EÐGÔHÙˆSŒ	Ø�1�9ÙÐ8Ô9Ùð Eô Fá�ŒMÙÐ-°·±Ñ=Ô>ÙÐ.Ô/ÙÐ(Ô)ÙÐÔ ÙˆXŒÙˆSŒ	ñ 	Ð Ô!ÙÐ"Ô#ÙÐ*Ô+ÚÓ8HÐJÔKÙˆYŒÚÓ(8Ð:Ô;ÙˆZÔÙˆZÔÙÐ*Ô+ÙÐÔÚÓ"2Ð4Ô5ÙˆSŒ	ÙÐDØ×Ñ˜dŸm™mðH-ñ -ô 	.áˆSŒ	ÙˆWŒÙÐÔÚÓ/Ð1Ô2ÙˆSŒ	ÙÐ=Ø×Ñ˜dŸm™mðA-ñ -ô 	.áˆSŒ	ÙˆXŒÙŒÙÐÔÙÐ+Ô,ÙˆXŒØˆ�ùów OøôH &ó 8Ý+ð !ŸHœH£nð7ó8ð 8ð8ús   ÈY?
Í?ZÚ)Z.c                 óF  • [        U[        5      (       a  SU< S3$ [        U[        [        45      (       aV  U Vs/ s H  o R	                  U5      PM     nn[        U5      S:X  a  UR                  S5        SSR                  U5      < S3$ UR                  5       $ s  snf )NrA   rB   r   r@   Ú(rY   rZ   )	r©   r¤   Úlistrº   Ú_to_pyr9   r§   r]   r$   )r   rÏ   ÚitemÚreps       r   r9  ÚRecompiler._to_pyÔ  s   € Ü�aœ×ÒÛ�>Ð!Ü�aœ$¤˜×'Ñ'Ù12Ó3²¨—;‘;˜tÖ$±ˆCÐ3Ü�3‹x˜1‹}Ø—
‘
˜2”øØ ŸX™X cž]Ð,Ð,Ø×ÑÓ!Ð!ùò	 4s   ¼Bc           
      óÆ  • Xl         U R                  nU" S5        U" S5        [        U R                  R                  =(       d    S5      n[        U5       HH  nU R                  R                  U   n UR                  S S u  pgUb  [        S5      eU" S	Xd4-  5        MJ     U" 5         U" S
U R                  < S35        U" SU R                  4-  5        S U l
        [        U R                  5      U l        U R                   Vs/ s H  oˆR                  5       PM     n	nU" SU R                  SR                  U	5      5      < S35        [!        U R"                  R%                  5        V
Vs/ s H  u  p¤XJ4PM
     snn
5      nU R&                   HK  nU R(                  U   n[        U5      S:”  d  M#  US:w  d  M+  U" SU< SU R                  U5      < S35        MM     US:”  a9  U" SSR                  [        U5       Vs/ s H  nSU-  PM
     sn5      < S35        U" S5        g ! [         a    [        SU R                  < SU< S35      ef = fs  snf s  snn
f s  snf )Nz# auto-generated filezimport _cffi_backendr,   rl   r  r  r  zMnot implemented yet: ffi.include() of a C-based ffi inside a Python-based ffizfrom %s import ffi as _ffi%dzffi = _cffi_backend.FFI('rX   z    _version = 0x%x,z    _types = r@   rY   r   rä   z    _zs = z    _includes = (r   z_ffi%dz,),rZ   )r÷   rú   r9   r‡   r+  Úranger,  rØ   r   rˆ   r‹   rº   r¥   r#   r9  r]   r(  r¡   rÖ   rî   rí   )r   rÿ   r.  Únum_includesr½   r2  r3  r4  rC   Ú	types_lstr›   r0  rÜ   rÝ   s                 r   rý   ÚRecompiler.write_py_source_to_fÞ  s&  € ØŒØ�z‰zˆñ 	Ð$Ô%ÙÐ#Ô$ô ˜4Ÿ8™8×2Ñ2×8°bÓ9ˆÜ�|Ö$ˆAØ!ŸX™X×4Ñ4°QÑ7ˆNð4à"×3Ñ3°B°QÐ7ñ 6Ð$ð Ñ*Ü'ð4ó5ð 5ñ Ð/Ð3GÐ2KÑKÖLñ %ñ 	ŒÚ°×0@Ô0@ÐBÔCÙÐ# t§}¡}Ð&6Ñ6Ô7ØˆŒô   §¡Ó0ˆŒØ48·O²OÓD²O¨b×'Ñ'Ö)±Oˆ	ÐDÚ 4§;¡;¨r¯w©w°yÓ/AÖ#BÐDÔEÜ°d·o±o×6KÑ6KÔ6MÔNÒ6M©7¨B ›wÑ6MÒNÓOˆð ŸœˆIØ—*‘*˜YÑ'ˆCÜ�3‹x˜!�| 	¨WÕ 4Ú«°D·K±KÀÖ4DÐEÖFñ (ð ˜!ÓÚØ—	‘	´°|Ô1DÓEÒ1D¨A˜8 aœ<Ñ1DÑEÖFðIô Jñ 	ˆS�	øôC "ó 4Ý'ð Ÿœ£.ð3ó4ð 4ð4üò" EùãNùò Fs   Á3H'ÄIÅ-I
È IÈ')Ic                 ó    • U R                   U   $ r   )r¡   )r   Útypes     r   Ú_gettypenumÚRecompiler._gettypenum  s   € à�‰˜tÑ$Ð$r   c           
      ó²  • Sn[        U[        R                  5      (       aÕ  UR                  5       (       dÀ  UR	                  5       (       a"  UR
                  S:w  a  SnSUR
                  -  nO†[        U[        R                  5      (       a  SUR                  S5      < S3nOPUR                  S5      nSU< SUR
                  R                  SS	5      < 3nUS
;   a  U R                  [        5        SnOÿ[        U[        R                  5      (       a  U R                  XX45        g [        U[        R                  5      (       d  [        U[        R                  5      (       a:  U R                  SX0R                  U5      U4-  5        U R                  SU-  5        g [        U[        R                   5      (       a+  SUR                  S5      -  nSU R                  U5      -  nSnO[#        U5      eU R                  SU< SU< SU< U< S35        U R                  SU< SUR                  S5      < SU< S35        U R                  SU-  5        g )Nr@   Ú_BoolÚ_cffi_to_c_intz, %sr7  z)_cffi_to_c_doublez)_cffi_to_c_r7   rÑ   ©Úchar16_tÚchar32_tz-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 = ú);z  if (z == (rZ   z && PyErr_Occurred()))r©   r   r«   Úis_complex_typeÚis_integer_typer   ÚUnknownFloatTypeÚ
get_c_nameÚreplacer�   ÚVERSION_CHAR16CHAR32r¬   Ú"_convert_funcarg_to_c_ptr_or_arrayr­   rú   rD  r®   r=   )	r   r›   ÚfromvarÚtovarÚerrcodeÚextraargÚ	converterÚcnameÚerrvalues	            r   Ú_convert_funcarg_to_cÚ Recompiler._convert_funcarg_to_c  så  € ØˆÜ�bœ%×1Ñ1×2Ñ2¸2×;MÑ;M×;OÑ;OØ×!Ñ!×#Ñ#¨¯©°7Ó(:Ø,�	Ø! B§G¡GÑ+‘Ü˜B¤× 6Ñ 6×7Ò7ð 8:·}±}ÀRÖ7HÐJ‘	àŸ™ bÓ)‘Û38Ø35·7±7·?±?À3ÈÕ3LðN�	àÐ4Ó4Ø×&Ñ&Ô';Ô<Ø‰Hä˜œE×-Ñ-×.Ñ.Ø×3Ñ3°BØ49ôDàä˜œU×6Ñ6×7Ñ7Ü˜œU×4Ñ4×5Ñ5ð �J‰JÐOØ× 0Ñ 0°Ó 4°gÐ>ñ?ô @à�J‰J�y 7Ñ*Ô+Øä˜œE×1Ñ1×2Ñ2Ø0°2·=±=ÀÓ3DÑDˆIØ)¨D×,<Ñ,<¸RÓ,@Ñ@ˆHØ‰Hô & bÓ)Ð)à�
Š
«³	º7ÃHÐMÔNØ�
Š
Û�2—=‘= Ö$£hð0ô 	1à�
‰
�9˜wÑ&Õ'r   c                 óª   • [        U[        R                  5      (       a4  UR                  S5        UR                  S5        UR                  S5        g g )NzPy_ssize_t datasizez-struct _cffi_freeme_s *large_args_free = NULLzIif (large_args_free != NULL) _cffi_free_array_arguments(large_args_free);)r©   r   r¬   Úadd)r   r›   Ú	localvarsÚ	freeliness       r   Ú_extra_local_variablesÚ!Recompiler._extra_local_variablesC  sG   € Ü�bœ%×+Ñ+×,Ñ,Ø�M‰MÐ/Ô0Ø�M‰MÐIÔJØ�M‰Mð Jõ Kð -r   c                 óš  • U R                  S5        U R                  SU R                  U5      X#4-  5        U R                  S5        U R                  SU< SUR                  S5      < S35        U R                  SU R                  U5      X#4-  5        U R                  S	5        U R                  S
U-  5        U R                  S5        g )Nz1  datasize = _cffi_prepare_pointer_call_argument(z(      _cffi_type(%d), %s, (char **)&%s);z  if (datasize != 0) {z    z  = ((size_t)datasize) <= 640 ? (r@   z!)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;z  })rú   rD  rR  )r   r›   rV  rW  rX  s        r   rU  Ú-Recompiler._convert_funcarg_to_c_ptr_or_arrayJ  s¼   € Ø�
‰
ÐFÔGØ�
‰
Ð=Ø×Ñ˜RÓ  'ðA2ñ 2ô 	3à�
‰
Ð+Ô,Ø�
Š
ã�2—=‘= Ö$ð&ô 	'ð 	�
‰
ð #Ø&*×&6Ñ&6°rÓ&:¸GÐ%KñLô 	Mà�
‰
ÐAÔBØ�
‰
�; Ñ(Ô)Ø�
‰
�5Õr   c                 óh  • [        U[        R                  5      (       aÜ  UR                  5       (       a%  UR                  S:w  a  SU< SUR                  < S3$ [        U[        R
                  5      (       a  SU< S3$ UR                  S:w  aW  UR                  5       (       dB  UR                  R                  SS5      nUS	;   a  U R                  [        5        S
U< SU< S3$ SX R                  U5      4-  $ [        U[        R                  [        R                  45      (       a  SX R                  U5      4-  $ [        U[        R                  5      (       a3  SX R                  [        R                  " UR                  5      5      4-  $ [        U[        R                  5      (       aD  UR                   c"  [#        SUR%                  5       < SU< S35      eSX R                  U5      4-  $ [        U[        R&                  5      (       a  SX R                  U5      4-  $ [)        U5      e)NrG  z_cffi_from_c_int(r   rZ   z_cffi_from_c_double(úlong doubler7   rÑ   rI  Ú_cffi_from_c_r7  z/_cffi_from_c_deref((char *)&%s, _cffi_type(%d))z0_cffi_from_c_pointer((char *)%s, _cffi_type(%d))rB   z' is used as z, but is opaquez0_cffi_from_c_struct((char *)&%s, _cffi_type(%d)))r©   r   r«   rP  r   rQ  rO  rS  r�   rT  rD  r¬   r®   Ú	ArrayTyper:  r´   ÚfldnamesÚ	TypeErrorr)  rµ   r=   )r   r›   ÚvarÚcontextr[  s        r   Ú_convert_expr_from_cÚRecompiler._convert_expr_from_cX  së  € Ü�bœ%×1Ñ1×2Ñ2Ø×!Ñ!×#Ñ#¨¯©°7Ô(:Û58¸"¿'¼'ÐBÐBÜ˜B¤× 6Ñ 6×7Ò7Û47Ð9Ð9Ø—‘˜MÓ)°"×2DÑ2D×2FÑ2FØŸ™Ÿ™¨¨SÓ1�ØÐ4Ó4Ø×&Ñ&Ô';Ô<øÛ05³sÐ;Ð;àHØ×)Ñ)¨"Ó-ðL/ñ /ð /ä˜œU×.Ñ.´×0EÑ0EÐF×GÑGØEØ×%Ñ% bÓ)ðI+ñ +ð +ä˜œEŸO™O×,Ñ,ØEØ×%Ñ%¤e×&7Ò&7¸¿¹Ó&@ÓAðICñ Cð Cä˜œE×/Ñ/×0Ñ0Ø�{‰{Ñ"ÝØ—N‘NÖ$£gð!/ó 0ð 0àEØ×%Ñ% bÓ)ðI+ñ +ð +ä˜œEŸN™N×+Ñ+ØDØ×%Ñ% bÓ)ðH+ñ +ð +ô & bÓ)Ð)r   c                 ó0   • U R                  USU< S35      $ )Nz(*(z *)0))Ú_global_type©r   r›   r   s      r   Ú_typedef_typeÚRecompiler._typedef_type{  s   € Ø× Ñ ¡³TÐ%;Ó<Ð<r   c                 óD   • U R                  U R                  X5      5        g r   )rÈ   rt  rs  s      r   Ú!_generate_cpy_typedef_collecttypeÚ,Recompiler._generate_cpy_typedef_collecttype~  s   € Ø×Ñ˜d×0Ñ0°Ó:Õ;r   c                 ó   • g r   r,   rs  s      r   Ú_generate_cpy_typedef_declÚ%Recompiler._generate_cpy_typedef_decl�  ó   € Ør   c                 óp   • U R                   U   nU R                  S   R                  [        X#5      5        g )Nrç   )r¡   rí   r§   rz   )r   r›   r   rN   s       r   Ú_typedef_ctxÚRecompiler._typedef_ctx„  s,   € Ø—_‘_ RÑ(ˆ
Ø�
‰
�:Ñ×%Ñ%¤l°4Ó&DÕEr   c                 óT  • U R                  X5      nU R                  X5        [        USS 5      S:X  a  U R                  XR                  S S9  g [        U[        R                  5      (       a;  U R                  UR                  UR                  R                  UR                  US9  g g )NÚoriginÚunknown_type)Ú
approxname)rƒ  Ú	named_ptr)	rt  r~  r·   Ú_struct_ctxr   r©   r   ÚNamedPointerTypeÚtotypers  s      r   Ú_generate_cpy_typedef_ctxÚ$Recompiler._generate_cpy_typedef_ctxˆ  sŒ   € Ø×Ñ Ó)ˆØ×Ñ˜"Ô#Ü�2�x Ó&¨.Ó8Ø×Ñ˜R§¡°TÐÒ:Ü˜œE×2Ñ2×3Ñ3Ø×Ñ˜RŸY™Y¨¯	©	¯©À2Ç7Á7Ø')ð ò +ð 4r   c                 ó¬   • U R                  UR                  5       5        UR                  (       a$  U R                  (       d  U R                  U5        g g g r   )rÈ   rÉ   Úellipsisr‰   rs  s      r   Ú"_generate_cpy_function_collecttypeÚ-Recompiler._generate_cpy_function_collecttype”  s=   € Ø×Ñ˜b×0Ñ0Ó2Ô3Ø�;�;˜t×4×4Ø×!Ñ! "Õ%ð  5ˆ;r   c                 óú  • U R                   (       a   e[        U[        R                  5      (       d   eUR                  (       a  U R                  X5        g U R                  n[        UR                  5      nUS:X  a  SnOUS:X  a  SnOSn/ n/ nSU-  n[        UR                  5       H=  u  pšUR                  U
R                  SU	-  U5      5        UR                  SU	-  5        M?     S	R                  U5      nU=(       d    S
nUR                  (       a  UR                  S-   nOSnU< SU< SU< S3nU" SUR                  R                  U5      < 35        U" S5        S	R                  U5      nSn[        UR                  [        R                  5      (       a  SnU" SU< U< SU< S35        U" S5        U" S5        U" S5        U" SU< SU< S35        U" S5        SU-  n[        UR                  5       H%  u  pšU
R                  SU	-  U5      nU" SU-  5        M'     [!        5       n[!        5       nUR                   H  n
U R#                  U
UU5        M     [%        U5       H  nU" SU< S35        M     [        UR                  [        R                  5      (       d7  SnSU-  nSUR                  R                  SU5      -  nU" U5        U" S5        OS nSn[        UR                  5      S:”  a…  ['        [        UR                  5      5      nU H  n	U" S U	-  5        M     U" 5         U" S!U[        U5      [        U5      S	R                  U V	s/ s H  n	S"U	-  PM
     sn	5      4-  5        U" S#5        U" 5         [        UR                  5       H&  u  pšU R)                  U
S$U	-  SU	-  S%5        U" 5         M(     U" S&5        U" S'5        ['        [        UR                  5      5       V	s/ s H  n	SU	-  PM
     nn	S	R                  U5      nU" S(U< U< SU< S)35        U" S*5        U" S+5        U" 5         U" S,5        US:X  a  U" S-5        U(       aC  U" S.U R+                  UR                  S/S05      -  5        U H  nU" SU-   5        M     U" S15        O$U H  nU" SU-   5        M     U" S25        U" S35        U" S5        U" S45        S5 nS6n/ n/ nSU-  n[        UR                  5       HV  u  pšSnU" U
5      (       a  S7nS8nU
R                  S9UU	4-  U5      nUR                  U5        UR                  S:UU	4-  5        MX     UR                  nU" U5      (       a?  SU-  nUR                  S;U5      nUR-                  SU5        [        R.                  nS nS<nS8nU(       a™  S	R                  U5      nU=(       d    S
nU< SU< SU< S3nU" SUR                  U5      < 35        U" S5        U(       a  U" U5        S	R                  U5      nU" S(U< U< SU< S)35        U(       a  U" S=5        U" S5        OU" S>U< S?U< 35        U" S@5        U" 5         g s  sn	f s  sn	f )ANr   Únoargr   Úarg0r¨   úargument of %sz x%dzx%dr   Úvoidr7   r@   Ú_cffi_d_r7  rZ   ústatic r  zreturn rM  rN  r  z#ifndef PYPY_VERSIONzstatic PyObject *Ú_cffi_f_z(PyObject *self, PyObject *z  %s;Ú;z	result = úresult of %sz resultz  PyObject *pyresult;z  PyObject *arg%d;z1  if (!PyArg_UnpackTuple(args, "%s", %d, %d, %s))z&arg%dr  zarg%dzreturn NULLz  Py_BEGIN_ALLOW_THREADSz  _cffi_restore_errno();ú  { z); }z  _cffi_save_errno();z  Py_END_ALLOW_THREADSz  (void)self; /* unused */z  (void)noarg; /* unused */z  pyresult = %s;Úresultzresult typez  return pyresult;z  Py_INCREF(Py_None);z  return Py_None;r  c                 ó¦   • [        U [        R                  5      =(       d1    [        U [        R                  5      =(       a    U R	                  5       $ r   )r©   r   r´   ÚPrimitiveTyperO  )rC  s    r   Úneed_indirectionÚ@Recompiler._generate_cpy_function_decl.<locals>.need_indirection  s=   € Ü˜t¤U×%8Ñ%8Ó9÷ -Ü ¤e×&9Ñ&9Ó:÷ ,Ø×)Ñ)Ó+ð.r   Fr   Tz %sx%dz%sx%dz *resultz
*result = z  return result;z#  define _cffi_f_z	 _cffi_d_r  )r‰   r©   r   r®   r‹  Ú_generate_cpy_constant_declrú   r9   r¨   r¶   r§   rR  r]   Úabir™  rª   rï   rc  r£   r>  r]  ro  ÚinsertÚ	void_type)r   r›   r   r.  ÚnumargsÚargnameÚ	argumentsÚcall_argumentsrn  r½   rC  Úrepr_argumentsrŸ  Úname_and_argumentsÚresult_codeÚargra  rb  r  Úresult_declÚrngÚfreelinerœ  Ú
differenceÚindirectionÚ	tp_results                             r   Ú_generate_cpy_function_declÚ&Recompiler._generate_cpy_function_decl™  sè  € Ø×(×(Ð(Ð(Ü˜"œe×3Ñ3×4Ñ4Ð4Ð4Ø�;�;ð ×,Ñ,¨RÔ6ØØ�z‰zˆÜ�b—g‘g“,ˆØ�a‹<Ø‰GØ˜‹\Ø‰GàˆGð ˆ	ØˆØ" TÑ)ˆÜ  §¡Ö)‰GˆAØ×Ñ˜TŸ_™_¨V°a©Z¸ÓAÔBØ×!Ñ! %¨!¡)Ö,ñ *ð Ÿ™ 9Ó-ˆØ'×1¨6ˆØ�6�6Ø—&‘&˜3‘,‰CàˆCÛ36»»nÐMÐÚ˜BŸI™I×0Ñ0Ð1CÕDÐFÔGÙˆSŒ	ØŸ™ >Ó2ˆØˆÜ�b—i‘i¤§¡×0Ñ0ØˆKÚšk«4³Ð@ÔAÙˆSŒ	áÐ#Ô$áÐ Ô!Ú»4ÃÐIÔJÙˆSŒ	à" TÑ)ˆÜ  §¡Ö)‰GˆAØ—/‘/ &¨1¡*¨gÓ6ˆCÙ�˜3‘Öñ *ô “Eˆ	Ü“Eˆ	Ø—G”GˆDØ×'Ñ'¨¨i¸ÖCñ ä˜9Ö%ˆDÚ›DÐ"Ö#ñ &ô ˜"Ÿ)™)¤U§^¡^×4Ñ4Ø%ˆKØ$ tÑ+ˆGØ! B§I¡I×$8Ñ$8¸ÀGÓ$LÑLˆKÙ�ÔÙÐ(Õ)àˆKØˆKäˆr�w‰w‹<˜!ÓÜœ˜BŸG™G›Ó%ˆCÛ�ÙÐ)¨AÑ-Ö.ñ áŒFÙÐDØ”c˜#“h¤ C£Ø—	‘	±Ó5²¨A˜8 aœ<±Ñ5Ó6ðH8ñ 8ô 9ñ Ð#Ô$ÙŒä  §¡Ö)‰GˆAØ×&Ñ& t¨W°q©[¸%À!¹)Ø'4ô6áŽFñ *ñ
 	Ð'Ô(ÙÐ'Ô(Ü-2´3°r·w±w³<Ô-@ÓAÒ-@¨˜% !œ)Ñ-@ˆÐAØŸ™ >Ó2ˆÚ¢+«t³^ÐDÔEÙÐ$Ô%ÙÐ%Ô&ÙŒáÐ)Ô*Ø�a‹<ÙÐ.Ô/ÞÙÐ#Ø×*Ñ*¨2¯9©9°hÀÓNñOô Pã%�Ù�T˜H‘_Ö%ñ &áÐ%Õ&ã%�Ù�T˜H‘_Ö%ñ &áÐ(Ô)ÙÐ$Ô%ÙˆSŒ	áˆWŒò	.ð ˆ
Øˆ	ØˆØ" TÑ)ˆÜ  §¡Ö)‰GˆAØˆKÙ ×%Ñ%Ø!�Ø!�
Ø—/‘/ (¨k¸1Ð-=Ñ"=¸wÓGˆCØ×Ñ˜SÔ!Ø×!Ñ! '¨[¸!Ð,<Ñ"<Ö=ñ *ð —I‘Iˆ	Ù˜I×&Ñ&Ø$ tÑ+ˆGØ×&Ñ& z°7Ó;ˆCØ×Ñ˜Q Ô$ÜŸ™ˆIØˆKØ&ˆKØˆJÞØ!ŸY™Y yÓ1ˆNØ+×5¨vˆNÛ7:»DÛ7Eð"GÐâ 	× 4Ñ 4Ð5GÕ HÐJÔKÙ�ŒIÞÙ�[Ô!Ø!ŸY™Y ~Ó6ˆNÚ¢k³4»ÐHÔIÞÙÐ'Ô(Ù��Iâ³dºDÐAÔBáˆXŒÙ�ùòg 6ùò Bs   Í"Y3Ï=Y8c           
      ó®  • UR                   (       a#  U R                  (       d  U R                  X5        g U R                  UR	                  5          n[        UR                  5      nU R                  (       a  [        nO US:X  a  [        nOUS:X  a  [        nO[        nU R                  S   R                  [        USU-  [        XS5      SU-  S95        g )Nr   r   rã   z
_cffi_f_%sz
_cffi_d_%s)r   )r‹  r‰   Ú_generate_cpy_constant_ctxr¡   rÉ   r9   r¨   ÚOP_DLOPEN_FUNCÚOP_CPYTHON_BLTN_NÚOP_CPYTHON_BLTN_OÚOP_CPYTHON_BLTN_Vrí   r§   r   r¹   )r   r›   r   rN   r¢  Ú	meth_kinds         r   Ú_generate_cpy_function_ctxÚ%Recompiler._generate_cpy_function_ctx;  s©   € Ø�;�;˜t×4×4Ø×+Ñ+¨BÔ5ØØ—_‘_ R×%7Ñ%7Ó%9Ñ:ˆ
Ü�b—g‘g“,ˆØ× × Ü&‰IØ˜‹\Ü)‰IØ˜‹\Ü)‰Iä)ˆIØ�
‰
�8Ñ×#Ñ#Ü�t˜\¨DÑ0Ü˜iÓ4Ø(¨4Ñ/ñ1õ	2r   c                 ó  • [        U[        R                  5      (       ad  UR                  nUS:X  a  UR	                  S5      nSU< SU< S3nU R                  USU-  UR                  5      n[        R                  " Xd5      nU$ )Nú...r   z_cffi_array_len(((ú)0)->rZ   ú%s[0])r©   r   rj  r°   rR  rÍ   r:  )r   Ú	tp_structÚ
field_nameÚtp_fieldÚactual_lengthÚptr_struct_nameÚtp_items          r   rÍ   ÚRecompiler._field_typeQ  ss   € Ü�h¤§¡×0Ñ0Ø$ŸO™OˆMØ Ó%Ø"+×"6Ñ"6°sÓ";‘ã#£Zð!1�à×&Ñ& y°'¸JÑ2FØ'/§}¡}ó6ˆGä—’ wÓ>ˆHØˆr   c                 óš   • U R                  U5        U R                  (       a)  UR                  5        H  nU R                  U5        M     g g r   )rÈ   r‰   Úanonymous_struct_fieldsÚ_struct_collecttype)r   r›   Úfldtypes      r   rÈ  ÚRecompiler._struct_collecttype]  s?   € Ø×Ñ˜bÔ!Ø× × à×5Ñ5Ö7�Ø×(Ñ(¨Ö1ò 8ð !r   c           
      óH  • UR                   c  g U R                  nSU< 3nU" S5        U" SU< SU< S35        U" S5        U" S5        U" S5        U R                  U5       Hï  u  pgp‰ UR                  5       (       d  US	:¼  a  US
:w  a  U" SU< SU< SU< S35        M?  [	        U[
        R                  5      (       an  UR                  b  UR                  S:X  aQ  UR                  nUS-   n[	        U[
        R                  5      (       a!  UR                  c  M?  UR                  S:X  a  MQ  U" SUR                  SSU-  U	S9< SU< S35        Mñ     U" S5        U" SU< SU< S35        U" 5         g ! [         a   n
U" S[        U
5      -  5         S n
A
GM9  S n
A
ff = f)NÚ_cffi_checkfld_Ú_CFFI_UNUSED_FNzstatic void r7  z *p)r  z8  /* only to generate compile-time warnings or errors */z
  (void)p;r   r@   z  (void)((p->z) | 0);  /* check that 'r  z' is an integer */r¼  z[0]r˜  z*tmpzfield %r©rÞ   z = &p->z; (void)tmp; }z
  /* %s */r  zstruct _cffi_align_z { char x; z y; };)rÊ   rú   rÄ   rP  r©   r   rj  r°   r:  rR  r   r¤   )r   r›   r[  rƒ  r.  ÚcheckfuncnameÚfnameÚftyper3   Úfqualrá   s              r   Ú_struct_declÚRecompiler._struct_decld  sr  € Ø�;‰;ÑØØ�z‰z‰Ú/9Ð;ˆÙÐÔÚ«³uÐ=Ô>ÙˆSŒ	ÙÐGÔHÙˆ\ÔØ-1×->Ñ->¸rÖ-BÑ)ˆE˜(ð,Ø×(Ñ(×*Ñ*¨h¸!«mà “{ÚÛ05³u»eðEô Fáô " %¬¯©×9Ñ9Ø!ŸL™LÑ0°E·L±LÀEÓ4IØ!ŸJ™J�EØ! E™M�Eô " %¬¯©×9Ñ9Ø!ŸL™LÓ0°E·L±LÀEÕ4Iò Ø×$Ñ$ V¨Z¸Ñ-=ÀUÐ$ÓKÛðö ñ .Cñ( 	ˆSŒ	Ú»:ÃuÐMÔNÙ�øô	 %ó ,Ù�\¤C¨£FÑ*×+Ó+ûð,ús+   Á*6E7Â"A9E7ÄE7Ä/#E7Å7
F!ÆFÆF!Nc                 ó  • U R                   U   nS n/ n[        U[        R                  5      (       a  UR	                  S5        UR
                  c  UR	                  S5        SnXR                  R                  R                  ;  aÅ  Ub#  X@R                  R                  R                  ;  aŸ  UR
                  c  OAUR                  (       d  [        UR                  5       5      (       a  OUR	                  S5        UR                  (       a>  UR                  S:”  a  [        U< SUR                  < S35      eUR	                  S5        OUR	                  S	5        S
nSR                  U5      =(       d    Sn/ nUGc¬  [        U R!                  U5      5      n	U	 GH#  u  p«pÍU R#                  XU5      nU R%                  USUR&                  < SU
< S35        [(        nUS:¼  a  [*        nSU-  nO[Ub,  [        U[        R,                  5      (       a  UR.                  c  SnO)SUc  UR1                  S5      OUR&                  < SU
< S3nUb  US:¼  a  SnO3Ub  SUR&                  < SU
< S3nOSUR1                  S5      < SU
< S3nUR	                  [3        U
UXü[5        XàR                   U   5      5      5        GM&     [7        U R8                  S   5      nU R8                  S   R;                  U5        Uc  SnSnS nO0Ub  S!UR&                  < S"3nS#nOS$U< S3nS%U< S&3nS nOSnS'nS'nUnU R8                  S(   R	                  [=        UR&                  XWUUUUU5      5        U R>                  RA                  U5        g ))NÚ_CFFI_F_UNIONÚ_CFFI_F_OPAQUEÚopaqueÚ_CFFI_F_CHECK_FIELDSr   z is declared with 'pack=zi'; only 0 or 1 are supported in API mode (try to use "...;", which does not require a 'pack' declaration)Ú_CFFI_F_PACKEDÚ_CFFI_F_EXTERNALÚexternalÚ|Ú0zfield 'r  rB   r   z%d /* bits */z
(size_t)-1z	sizeof(((r   r½  rZ   z(size_t)(((char *)&((z)4096)->z) - (char *)4096)z	offsetof(r@   r   rä   z
(size_t)-2éþÿÿÿÚunnamedz	sizeof(*(z)0)z-1 /* unknown alignment */zsizeof(zoffsetof(struct _cffi_align_z, y)r  rå   )!r¡   r©   r   Ú	UnionTyper§   rÊ   r‡   rË   rÌ   ÚpartialÚanyrÇ  Úpackedr=   r]   r8  rÄ   rÍ   Ú_check_not_opaquer   rD   rE   rj  r°   rR  r.   r¹   r9   rí   ÚextendrK   rð   r`  )r   r›   r[  rƒ  r„  rN   Úreason_for_not_expandingrO   rS   rÂ   ÚfldnamerÉ  r3   rÒ  rC   r   ÚoffsetrR   ÚalignrQ   s                       r   r…  ÚRecompiler._struct_ctx†  s-  € Ø—_‘_ RÑ(ˆ
Ø#'Ð ØˆÜ�bœ%Ÿ/™/×*Ñ*Ø�L‰L˜Ô)Ø�;‰;ÑØ�L‰LÐ)Ô*Ø'/Ð$Ø—h‘h×&Ñ&×=Ñ=Ó=ØÑ"Ø§(¡(×"2Ñ"2×"IÑ"IÓIØ�{‰{Ñ"ØØ——œs 2×#=Ñ#=Ó#?×@Ñ@Øà—‘Ð3Ô4Ø�y�yØ—9‘9˜q“=Ü-ó ˜RŸYœYð(ó)ð )ð
 —‘Ð-Ô.øà�L‰LÐ+Ô,Ø'1Ð$Ø—‘˜“×& 3ˆØˆØ#Ò+Ü˜d×/Ñ/°Ó3Ó4ˆJÜ5?Ñ1� (Ø×*Ñ*¨2¸Ó@�Ø×&Ñ&¡wØ:<¿'¼'Ã7Ð'KôMô �Ø˜q“=Ü$�BØ*¨XÑ5‘DØ‘]Ü" 7¬E¯O©O×<Ñ<ØŸ™Ñ.Ø'‘Døð /8Ñ.?˜Ÿ™ cÔ*Ø09·±ò?ãð!�Dð ‘= H°£MØ)‘FØÒ*à!Ÿœ«ð1‘Fð +ð 46·=±=ÀÖ3DÃgÐN�FØ—‘Ü˜g v¨tÜ$ R¯©¸Ñ)AÓBóD÷Eñ3 6@ô8 !$ D§J¡J¨wÑ$7Ó 8ÐØ�J‰J�wÑ×&Ñ& xÔ0à‰}Ø#�Ø�Ø#‘àÒ(Ø/8¯~¬~Ð?�DØ8‘Eð )ó ,1Ð2‘DÛDNÐP�EØ‘àˆDØˆEØ "ÐØ.ˆGØ�
‰
�>Ñ"×)Ñ)Ü˜BŸG™G Z¸¸eÀWØ-¨xó9ô	:ð 	× Ñ ×$Ñ$ RÕ(r   c                 ó  • [        U[        R                  5      (       a-  UR                  n[        U[        R                  5      (       a  M-  [        U[        R                  5      (       a  UR
                  c  [        SU-  5      eg g )Nz0%s is of an opaque type (not declared in cdef()))r©   r   rj  r:  r´   rÊ   rl  )r   r›   Úlocations      r   rå  ÚRecompiler._check_not_opaqueÜ  sk   € Ü˜œUŸ_™_×-Ñ-Ø—‘ˆBô ˜œUŸ_™_×-Ó-ä�bœ%×-Ñ-×.Ñ.°2·;±;Ñ3FÜØBÀXÑMóOð Oð 4GÐ.r   c                 ó6  • [        U R                  R                  5       5      nUR                  S S9  U Hà  u  p#X R                  ;  d  M  UR
                  (       a  [        SU< S35      eUR                  R                  S5      (       a2  UR                  SS  R                  5       (       a  UR                  SS  nODUR                  S:X  a%  UR                  S:X  a  SnU R                  US5        O[        SU< 35      eU R                  US U5        Mâ     g )	Nc                 ó   • U S   $ )Nr   r,   )Útp_orders    r   rœ   Ú7Recompiler._add_missing_struct_unions.<locals>.<lambda>é  s   €  h¨q¢kr   r”   zinternal inconsistency: z* is partial but was not seen at this pointÚ$r   Ú_IO_FILEÚFILE)r8  r²   rÖ   rò   rð   râ  r=   r   Ú
startswithÚisdigitÚ	forcenamer~  r…  )r   rÝ   r›   Úorderrƒ  s        r   rñ   Ú%Recompiler._add_missing_struct_unionsã  sô   € ô
 �4×&Ñ&×,Ñ,Ó.Ó/ˆØ�‰Ñ1ˆÑ2Û‰IˆBØ×1Ñ1Õ1Ø—:—:Ý-ã>@ð/Có Dð Dð —7‘7×%Ñ% c×*Ñ*¨r¯w©w°q°r¨{×/BÑ/B×/DÑ/DØ!#§¡¨¨ ‘JØ—W‘W 
Ó*¨r¯|©|¸vÓ/EØ!'�JØ×%Ñ% b¨&Õ1å-Ú/1ð/4ó 5ð 5à× Ñ   T¨:Ö6ò r   c                 ó&   • U R                  U5        g r   )rÈ  rs  s      r   Ú _generate_cpy_struct_collecttypeÚ+Recompiler._generate_cpy_struct_collecttypeú  s   € Ø× Ñ  Õ$r   c                 ód   • UR                  S5      nSU;   a  X"R                  SS5      4$ USU-   4$ )Nr@   r7   rÑ   )rR  rS  )r   r›   r[  s      r   Ú_struct_namesÚRecompiler._struct_namesþ  s:   € Ø—‘˜bÓ!ˆØ�%‹<ØŸ-™-¨¨SÓ1Ð1Ð1à˜# ™+Ð%Ð%r   c                 óH   • U R                   " U/U R                  U5      Q76   g r   )rÓ  rÿ  rs  s      r   Ú_generate_cpy_struct_declÚ$Recompiler._generate_cpy_struct_decl  s    € Ø×Ò˜"Ð6˜t×1Ñ1°"Ó5Ô6r   c                 óH   • U R                   " U/U R                  U5      Q76   g r   )r…  rÿ  rs  s      r   Ú_generate_cpy_struct_ctxÚ#Recompiler._generate_cpy_struct_ctx	  s    € Ø×Ò˜Ð5˜d×0Ñ0°Ó4Ô5r   c                 óˆ   • [        U[        R                  5      (       a  U R                  X5        g U R	                  U5        g r   )r©   r   rµ   Ú_generate_cpy_enum_collecttyperÈ  rs  s      r   Ú#_generate_cpy_anonymous_collecttypeÚ.Recompiler._generate_cpy_anonymous_collecttype  s/   € Ü�bœ%Ÿ.™.×)Ñ)Ø×/Ñ/°Õ9à×$Ñ$ RÕ(r   c                 ó�   • [        U[        R                  5      (       a  U R                  U5        g U R	                  XSU-   5        g ©NÚtypedef_)r©   r   rµ   Ú_generate_cpy_enum_declrÓ  rs  s      r   Ú_generate_cpy_anonymous_declÚ'Recompiler._generate_cpy_anonymous_decl  s6   € Ü�bœ%Ÿ.™.×)Ñ)Ø×(Ñ(¨Õ,à×Ñ˜b¨
°TÑ(9Õ:r   c                 ó�   • [        U[        R                  5      (       a  U R                  X5        g U R	                  XSU-   5        g r  )r©   r   rµ   Ú	_enum_ctxr…  rs  s      r   Ú_generate_cpy_anonymous_ctxÚ&Recompiler._generate_cpy_anonymous_ctx  s4   € Ü�bœ%Ÿ.™.×)Ñ)Ø�N‰N˜2Õ$à×Ñ˜R z°DÑ'8Õ9r   c                 ó  • XB4U R                   ;   a  [        SU< SU< S35      eU R                   R                  XB45        U R                  nSU< SU< 3nU(       af  U" SU-  5        U" S5        U" SU< S	35        U" S
U< SU< S35        Ub!  US:”  a  SU4-  nU" SU< S35        U" S5        U" S5        U" S5        O@Ub   eU" SU-  5        U" S5        U" SUR	                  S5      < SU< S35        U" S5        U" 5         g )Nzduplicate declaration of z 'rB   Ú_cffi_rÑ   z$static int %s(unsigned long long *o)r  z  int n = (z) <= 0;z  *o = (unsigned long long)((z) | 0);  /* check that z is an integer */r   z%dUz  if (!_cffi_check_int(*o, n, z))z    n |= 2;z  return n;r  zstatic void %s(char *o)z  *(r   z)o = r–  )r*  r   r`  rú   rR  )r   Úis_intr   r›   Úcategoryr   r.  Úfuncnames           r   Ú_generate_cpy_constÚRecompiler._generate_cpy_const&  s	  € àÐ˜t×3Ñ3Ó3Ý#Û6>ÃÐEóGð Gà×Ñ× Ñ  (Ð!1Ô2à�z‰z‰Û$,ªdÐ3ˆÞÙÐ7¸(ÑBÔCÙ�ŒIÚ«4Ð1Ô2ÚÛ:>ÃðFô GàÑ&Ø “?Ø"'¨;¨.Ñ"8�KÚ»[ÐJÔKÙ�]Ô#Ù�ÔÙ��IàÑ&Ð&Ð&ÙÐ*¨XÑ5Ô6Ù�ŒIÚ R§]¡]°3Ö%7»Ð>Ô?Ù�ŒIÙ�r   c                 óx   • UR                  5       nU(       a  U R                  (       a  U R                  U5        g g r   )rP  r‰   rÈ   ©r   r›   r   r  s       r   Ú"_generate_cpy_constant_collecttypeÚ-Recompiler._generate_cpy_constant_collecttypeD  s.   € Ø×#Ñ#Ó%ˆÞ˜×.×.Ø×!Ñ! "Õ%ð /r   c                 óH   • UR                  5       nU R                  X2U5        g r   )rP  r  r  s       r   rž  Ú&Recompiler._generate_cpy_constant_declI  s    € Ø×#Ñ#Ó%ˆØ× Ñ  ¨rÕ2r   c                 ó:  • U R                   (       d&  UR                  5       (       a  [        [        S5      nO8U R                   (       a  [        nO[
        nU R                  U   n[        XE5      nU R                  S   R                  [        USU-  U5      5        g )Nr  rã   ú_cffi_const_%s)
r‰   rP  r¹   ÚOP_CONSTANT_INTÚOP_DLOPEN_CONSTÚOP_CONSTANTr¡   rí   r§   r   )r   r›   r   r   Ú
const_kindrN   s         r   r³  Ú%Recompiler._generate_cpy_constant_ctxM  sz   € Ø×$×$¨×);Ñ);×)=Ñ)=Üœ_¨bÓ1‰Gà×$×$Ü,‘
ä(�
ØŸ™¨Ñ,ˆJÜ˜ZÓ4ˆGØ�
‰
�8Ñ×#Ñ#Ü�tÐ-°Ñ4°gÓ>õ	@r   c                 ó&   • U R                  U5        g r   )rÈ   rs  s      r   r  Ú)Recompiler._generate_cpy_enum_collecttype]  s   € Ø×Ñ˜bÕ!r   c                 óN   • UR                    H  nU R                  SU5        M     g )NT)Úenumeratorsr  )r   r›   r   Ú
enumerators       r   r  Ú"Recompiler._generate_cpy_enum_decl`  s    € ØŸ.œ.ˆJØ×$Ñ$ T¨:Ö6ò )r   c           
      óâ  • U R                   U   n[        [        S5      nU R                  (       a  UR	                  5         [        UR                  UR                  5       H0  u  pVU R                  S   R                  [        USU-  UUS95        M2     Ub"  SU;  a  U R                  (       d  SU-  nSU-  nOhUR                  U R                  / 5      n	U R                  R                  U	5      n[        [        U R                  R                  U	S5      5      S:  5      nS	R!                  UR                  5      n
U R                  S
   R                  [#        UR$                  X7XŠ5      5        g )Nr  rã   r#  ©r   ró  z
sizeof(%s)z((%s)-1) <= 0r   rY   ræ   )r¡   r¹   ÚOP_ENUMr‰   Úcheck_not_partialÚzipr,  Ú
enumvaluesrí   r§   r   Úbuild_baseinttyper‡   ÚsizeofÚintÚcastr]   rb   r   )r   r›   r[  rN   r   r-  Ú	enumvaluer   rf   Úbasetprg   s              r   r  ÚRecompiler._enum_ctxd  s,  € Ø—_‘_ RÑ(ˆ
Üœ "Ó%ˆØ× × Ø× Ñ Ô"Ü%(¨¯©¸¿¹Ö%GÑ!ˆJØ�J‰J�xÑ ×'Ñ'Ü˜:Ð'7¸*Ñ'DÀgØ'0ñ2ö3ñ &Hð
 Ñ ¨EÓ!1¸$×:O×:OØ %Ñ'ˆDØ$ uÑ,‰Fà×)Ñ)¨$¯(©(°BÓ7ˆFØ—8‘8—?‘? 6Ó*ˆDÜœ˜TŸX™XŸ]™]¨6°2Ó6Ó7¸!Ñ;Ó<ˆFØ—8‘8˜BŸN™NÓ+ˆØ�
‰
�6Ñ×!Ñ!Ü�R—W‘W˜j°ÓAõ	Cr   c                 óB   • U R                  XR                  5       5        g r   )r  r)  rs  s      r   Ú_generate_cpy_enum_ctxÚ!Recompiler._generate_cpy_enum_ctxy  s   € Ø�‰�rŸ>™>Ó+Õ,r   c                 ó   • g r   r,   rs  s      r   Ú_generate_cpy_macro_collecttypeÚ*Recompiler._generate_cpy_macro_collecttype  r|  r   c                 ó:   • US:X  a  S nOUnU R                  SX#S9  g )Nr¼  Tr0  )r  )r   r›   r   r   s       r   Ú_generate_cpy_macro_declÚ#Recompiler._generate_cpy_macro_decl‚  s&   € Ø�‹;Ø‰KàˆKØ× Ñ   tÐ ÒEr   c           	      óÒ   • US:X  a$  U R                   (       a  [        SU< S35      eS nOUn[        [        S5      nU R                  S   R                  [        USU-  UUS95        g )Nr¼  z(cannot use the syntax '...' in '#define z ...' when using the ABI moder  rã   r#  r0  )r‰   r   r¹   r$  rí   r§   r   )r   r›   r   r   r   s        r   Ú_generate_cpy_macro_ctxÚ"Recompiler._generate_cpy_macro_ctx‰  sm   € Ø�‹;Ø×$×$Ý'ã,0ð3ó4ð 4ð ‰KàˆKÜœ¨"Ó-ˆØ�
‰
�8Ñ×#Ñ#Ü�tÐ-°Ñ4°gØ#.ñ0õ	1r   c                 óà   • [        U[        R                  5      (       aN  UR                  nUS:X  a  SU< S3nU R	                  UR
                  SU-  5      n[        R                  " XC5      nU$ )Nr¼  z_cffi_array_len(rZ   r¾  )r©   r   rj  r°   rr  r:  )r   r›   Úglobal_namerÂ  rÄ  s        r   rr  ÚRecompiler._global_typeš  sZ   € Ü�bœ%Ÿ/™/×*Ñ*ØŸI™IˆMØ Ô%Û9DÐ F�Ø×'Ñ'¨¯©°¸;Ñ1FÓGˆGÜ—’ Ó8ˆBØˆ	r   c                 óD   • U R                  U R                  X5      5        g r   )rÈ   rr  rs  s      r   Ú"_generate_cpy_variable_collecttypeÚ-Recompiler._generate_cpy_variable_collecttype£  s   € Ø×Ñ˜d×/Ñ/°Ó9Õ:r   c                 óZ  • U R                   nU R                  X5      n[        U[        R                  5      (       a  UR
                  c  UR                  nSnOSnSU< S3nU" SUR                  XPR                  S9-   5        U" S5        U" SU< S	U< S
35        U" S5        U" 5         g )Nr@   Ú&z*_cffi_var_r!  r”  rÎ  r  z	  return r7  rN  r  )	rú   rr  r©   r   rj  r°   r:  rR  rÙ   )r   r›   r   r.  Ú	ampersandr  s         r   Ú_generate_cpy_variable_declÚ&Recompiler._generate_cpy_variable_decl¦  s‘   € Ø�z‰zˆØ×Ñ˜rÓ(ˆÜ�bœ%Ÿ/™/×*Ñ*¨r¯y©yÑ/@Ø—‘ˆBØ‰IàˆIøó )-Ð.ˆÙˆY˜Ÿ™ t×3FÑ3F˜ÐGÑGÔHÙˆSŒ	Ú£9«dÐ3Ô4ÙˆSŒ	Ù�r   c           
      óê   • U R                  X5      nU R                  U   nU R                  (       a  [        nO[        nU R
                  S   R                  [        USU-  [        XC5      5      5        g )Nrã   z_cffi_var_%s)	rr  r¡   r‰   ÚOP_GLOBAL_VARÚOP_GLOBAL_VAR_Frí   r§   r   r¹   )r   r›   r   rN   rC   s        r   Ú_generate_cpy_variable_ctxÚ%Recompiler._generate_cpy_variable_ctx½  sa   € Ø×Ñ˜rÓ(ˆØ—_‘_ RÑ(ˆ
Ø× × Ü‰Bä ˆBØ�
‰
�8Ñ×#Ñ#Ü�t˜^¨dÑ2´F¸2Ó4JÓKõ	Mr   c                 óh   • [        U[        R                  5      (       d   eU R                  U5        g r   )r©   r   r®   rÈ   rs  s      r   Ú'_generate_cpy_extern_python_collecttypeÚ2Recompiler._generate_cpy_extern_python_collecttypeÊ  s)   € Ü˜"œe×3Ñ3×4Ñ4Ð4Ð4Ø×Ñ˜bÕ!r   c           	      ó  • U R                   n[        UR                  [        R                  5      (       a  SnO&SU-  nSUR                  R                  SU5      < S3nU" SU-  5        U" SU R                  < SU< S	U< S
35        U" 5         / nSU-  n[        UR                  5       H+  u  p‰U	R                  SU-  U5      n
UR                  U
5        M-     SR                  U5      nU=(       d    SnU< SU< S3nUR                  S:X  a  SU-   nS n[        [        UR                  5      S-  S5      nU" UR                  5      (       a  [        US5      n[        UR                  [        R                  5      (       a;  SUR                  R                  S5      UUR                  R                  S5      U4-  nU" U< UR                  R                  U5      < 35        U" S5        U" SU-  5        U" S5        [        UR                  5       Hq  u  p‰SU-  n
[        U	[        R                  5      (       d  U" U	5      (       a  SU
-   n
[        R                  " U	5      n	U" SU	R                  S5      US-  U
4-  5        Ms     U" SU-  5        [        UR                  [        R                  5      (       d&  U" SUR                  R                  S5      < S35        U" S 5        U" 5         U =R                   S!-  sl        g )"NrÞ  r—  z(int)sizeof(r@   rZ   z3static struct _cffi_externpy_s _cffi_externpy__%s =r   r  r8   z	, 0, 0 };r‘  z a%dr   r’  r7  Ú	__stdcallz_cffi_stdcall c                 ób   • [        U [        R                  5      =(       a    U R                  S:H  $ )Nrh  )r©   r   r›  r   rš   s    r   Úmay_need_128_bitsÚ9Recompiler._extern_python_decl.<locals>.may_need_128_bitsê  s(   € Ü˜r¤5×#6Ñ#6Ó7÷ -Ø—G‘G˜}Ñ,ð.r   rn   é   z!sizeof(%s) > %d ? sizeof(%s) : %dr  z  char a[%s];z  char *p = a;za%drO  z  *(%s)(p + %d) = %s;r   z,  _cffi_call_python(&_cffi_externpy__%s, p);z  return *(z)p;r  r   )rú   r©   r™  r   rª   rR  rˆ   r¶   r¨   r§   r]   rŸ  rŽ   r9   r´   r¬   r-  )r   r›   r   Útag_and_spacer.  Úsize_of_resultrn  r¤  r½   rC  r©  r¦  r§  r^  Ú	size_of_as                  r   Ú_extern_python_declÚRecompiler._extern_python_declÑ  s‘  € Ø�z‰zˆÜ�b—i‘i¤§¡×0Ñ0Ø ‰Nà$ tÑ+‰Gà—	‘	×$Ñ$ R¨Ö1ð4ˆNáÐBÀTÑIÔJÚØ×Ô›d£Nð4ô 	5áŒàˆ	Ø" TÑ)ˆÜ  §¡Ö)‰GˆAØ—/‘/ &¨1¡*¨gÓ6ˆCØ×Ñ˜SÖ!ñ *ð Ÿ™ 9Ó-ˆØ'×1¨6ˆÛ)-«~Ð>ÐØ�6‰6�[Ó Ø!1Ð4FÑ!FÐò	.ô œ˜BŸG™G› Q™¨Ó*ˆ	Ù˜RŸY™Y×'Ñ'Ü˜I rÓ*ˆIÜ�b—i‘i¤×!4Ñ!4×5Ñ5Ø;Ø—	‘	×$Ñ$ RÓ(¨)Ø—	‘	×$Ñ$ RÓ(¨)ð?5ñ 5ˆIñ 	’} b§i¡i×&:Ñ&:Ð;MÕ&NÐOÔPÙˆSŒ	Ùˆ_˜yÑ(Ô)ÙÐÔÜ  §¡Ö)‰GˆAØ˜!‘)ˆCÜ˜4¤×!4Ñ!4×5Ñ5Ù% d×+Ñ+Ø˜C‘i�Ü×(Ò(¨Ó.�ÙÐ(¨D¯O©O¸CÓ,@À!ÀAÁ#ÀsÐ+KÑKÖLñ *ñ 	Ð;¸dÑBÔCÜ˜"Ÿ)™)¤U§^¡^×4Ñ4Ú r§y¡y×';Ñ';¸CÖ'@ÐBÔCÙˆSŒ	ÙŒØ×Ò˜aÑÖr   c                 ó(   • U R                  XS5        g )Nr”  ©rd  rs  s      r   Ú _generate_cpy_extern_python_declÚ+Recompiler._generate_cpy_extern_python_decl  s   € Ø× Ñ  ¨9Õ5r   c                 ó(   • U R                  XS5        g )NzCFFI_DLLEXPORT rg  rs  s      r   Ú#_generate_cpy_dllexport_python_declÚ.Recompiler._generate_cpy_dllexport_python_decl
  s   € Ø× Ñ  Ð+<Õ=r   c                 ó(   • U R                  XS5        g )Nr@   rg  rs  s      r   Ú'_generate_cpy_extern_python_plus_c_declÚ2Recompiler._generate_cpy_extern_python_plus_c_decl  s   € Ø× Ñ  ¨2Õ.r   c                 ó
  • U R                   (       a  [        S5      eUR                  (       a  [        S5      eU R                  U   n[        [        U5      nU R                  S   R                  [        USU-  XB5      5        g )Nz,cannot use 'extern "Python"' in the ABI modez$a vararg function is extern "Python"rã   z&_cffi_externpy__%s)
r‰   r   r‹  r=   r¡   r¹   ÚOP_EXTERN_PYTHONrí   r§   r   )r   r›   r   rN   r   s        r   Ú_generate_cpy_extern_python_ctxÚ*Recompiler._generate_cpy_extern_python_ctx  su   € Ø× × Ü#Ø@óBð Bà�;�;Ü%Ð&NÓOÐOØ—_‘_ RÑ(ˆ
ÜÔ)¨:Ó6ˆØ�
‰
�8Ñ×#Ñ#Ü�tÐ2°TÑ9¸7ÓIõ	Kr   c                 ó  • U R                   nU" S5        [        U[        5      (       d  UR                  S5      nOUR	                  S5         UR	                  S5        UR                  S5       H„  nUn[        S5      [        L a  [        [        U5      nO[        U5      SS nU" S	U-   R                  5       5        S
nU H%  n[        U5      S:¼  a
  U" U5        S
nUSU4-  -  nM'     U" U5        M†     g ! [
         a    SU-   n N«f = f)Nz=// # NB. this is not a string because of a size limit in MSVCzutf-8Úasciis   # -*- encoding: utf8 -*-
Tz//r   r  z// r@   éL   z%d,)rú   r©   ÚbytesÚencodeÚdecodeÚUnicodeDecodeErrorÚ
splitlinesrC  ÚmapÚordru  Úrstripr9   )r   Úsr.  ÚlinerQ   Úprinted_lineÚcs          r   r&  Ú)Recompiler._print_string_literal_in_array  s  € Ø�z‰zˆÙÐLÔMÜ˜!œU×#Ñ#Ø—‘˜Ó!‰Aà�H‰H�WÔð	2Ø�H‰H�WÔð —L‘L Ö&ˆDØˆGÜ�D‹zœUÒ"Üœ3 “~‘ô   ›.¨¨2Ð.�Ù�%˜'‘/×)Ñ)Ó+Ô,ØˆLÛ�Ü�|Ó$¨Ó*Ù˜Ô&Ø#%�LØ ¨¨¡Ñ,’ñ	 ñ
 �Öò 'øô "ó 	2Ø-°Ñ1ŠAð	2ús   ÁC9 Ã9DÄ
Dc                 óF   • [        [        [        5      U R                  U'   g r   )r¹   ÚOP_PRIMITIVEÚ	PRIM_VOIDr¥   ©r   r›   r%  s      r   Ú_emit_bytecode_VoidTypeÚ"Recompiler._emit_bytecode_VoidType=  s   € Ü!'¬´iÓ!@ˆ�‰˜Òr   c                 ód   • [         UR                     n[        [        U5      U R                  U'   g r   )ÚPRIMITIVE_TO_INDEXr   r¹   r…  r¥   )r   r›   r%  rw   s       r   Ú_emit_bytecode_PrimitiveTypeÚ'Recompiler._emit_bytecode_PrimitiveType@  s%   € Ü'¨¯©Ñ0ˆ
Ü!'¬°jÓ!Aˆ�‰˜Òr   c                 ó˜   • SUR                   < SUR                   < SUR                   < S3n[        [        U5      U R                  U'   g )Nz_cffi_prim_int(sizeof(z), (
           ((z)-1) | 0 /* check that z' is an integer type */
         ) <= 0)©r   r¹   r…  r¥   ©r   r›   r%  r  s       r   Ú!_emit_bytecode_UnknownIntegerTypeÚ,Recompiler._emit_bytecode_UnknownIntegerTypeD  s5   � ð $&§7¤7¨B¯G¬G°R·W´Wð>ˆô "(¬°aÓ!8ˆ�‰˜Òr   c                 ó|   • SUR                   < SUR                   < S3n[        [        U5      U R                  U'   g )Nz_cffi_prim_float(sizeof(z) *
           (((z6)1) / 2) * 2 /* integer => 0, float => 1 */
         )r�  r�  s       r   Ú_emit_bytecode_UnknownFloatTypeÚ*Recompiler._emit_bytecode_UnknownFloatTypeJ  s/   � ð  ŸWœW b§g¤gð/ˆô "(¬°aÓ!8ˆ�‰˜Òr   c                 óF  • [        [        U R                  UR                     5      U R                  U'   US-  nUR
                   Hj  nU R                  U   nX$:w  aN  [        U[        R                  5      (       a  U R                  X25        O[        [        U5      U R                  U'   US-  nMl     [        UR                  5      nUR                  b/  UR                  S:X  a  US-  nO[        SUR                  < 35      e[        [        U5      U R                  U'   g )Nr   r\  rl   zabi=)r¹   ÚOP_FUNCTIONr¡   r™  r¥   r¨   r©   r   r›  rŒ  rD   r7  r‹  rŸ  r=   ÚOP_FUNCTION_END)r   r›   r%  r¼   Ú	realindexrO   s         r   Ú_emit_bytecode_RawFunctionTypeÚ)Recompiler._emit_bytecode_RawFunctionTypeP  sä   € Ü!'¬°T·_±_ÀRÇYÁYÑ5OÓ!Pˆ�‰˜ÑØ�‰
ˆØ—7”7ˆCØŸ™¨Ñ,ˆIØÓ!Ü˜c¤5×#6Ñ#6×7Ñ7Ø×5Ñ5°cÕAä-3´G¸YÓ-G�D—O‘O EÑ*Ø�Q‰JŠEñ ô �B—K‘KÓ ˆØ�6‰6ÑØ�v‰v˜Ó$Ø˜‘
‘å)°b·f³fÐ*>Ó?Ð?Ü!'¬¸Ó!?ˆ�‰˜Òr   c                 ól   • [        [        U R                  UR                     5      U R                  U'   g r   )r¹   Ú
OP_POINTERr¡   r‡  r¥   r‡  s      r   Ú_emit_bytecode_PointerTypeÚ%Recompiler._emit_bytecode_PointerTypec  s$   € Ü!'¬
°D·O±OÀBÇIÁIÑ4NÓ!Oˆ�‰˜Òr   c                 óx   • UR                  5       n[        [        U R                  U   5      U R                  U'   g r   )rÉ   r¹   r�  r¡   r¥   )r   r›   r%  Úraws       r   Ú_emit_bytecode_FunctionPtrTypeÚ)Recompiler._emit_bytecode_FunctionPtrTypei  s.   € Ø× Ñ Ó"ˆÜ!'¬
°D·O±OÀCÑ4HÓ!Iˆ�‰˜Òr   c                 óÆ  • U R                   UR                     nUR                  c  [        [        U5      U R
                  U'   g UR                  S:X  a)  [        S[        U5      R                  SS5      < S35      eU R
                  US-      S:X  d   e[        [        U5      U R
                  U'   [        S [        UR                  5      5      U R
                  US-   '   g )Nr¼  ztype z/*...*/zb badly placed: the '...' array length can only be used on global arrays or on fields of structuresr   r—   )
r¡   r:  r°   r¹   ÚOP_OPEN_ARRAYr¥   r   r¤   rS  ÚOP_ARRAY)r   r›   r%  Ú
item_indexs       r   Ú_emit_bytecode_ArrayTypeÚ#Recompiler._emit_bytecode_ArrayTypem  s¸   € Ø—_‘_ R§W¡WÑ-ˆ
Ø�9‰9ÑÜ%+¬M¸:Ó%FˆD�O‰O˜EÒ"Ø�Y‰Y˜%ÓÝ#ô ˜“G—O‘O I¨uÖ5ð8ó9ð 9ð
 —?‘? 5¨1¡9Ñ-°Ó6Ð6Ð6Ü%+¬H°jÓ%AˆD�O‰O˜EÑ"Ü)/°´c¸"¿)¹)³nÓ)EˆD�O‰O˜E A™IÒ&r   c                 ó\   • U R                   U   n[        [        U5      U R                  U'   g r   )r²   r¹   ÚOP_STRUCT_UNIONr¥   )r   r›   r%  Ústruct_indexs       r   Ú_emit_bytecode_StructTypeÚ$Recompiler._emit_bytecode_StructType{  s'   € Ø×*Ñ*¨2Ñ.ˆÜ!'¬¸Ó!Fˆ�‰˜Òr   c                 ó\   • U R                   U   n[        [        U5      U R                  U'   g r   )r³   r¹   r1  r¥   )r   r›   r%  Ú
enum_indexs       r   Ú_emit_bytecode_EnumTypeÚ"Recompiler._emit_bytecode_EnumType€  s$   € Ø—[‘[ ‘_ˆ
Ü!'¬°Ó!<ˆ�‰˜Òr   )rÙ   r³   r÷   rí   r*  rð   r²   r¡   r‹   r¥   r‡   rˆ   r‰   ©F)r@   r   )NÚconstN)Xr'   r(   r)   r*   r-  r   r�   r¿   rÄ   rÈ   r¢   rî   ró   rú   r  r  rþ   r9  rý   rD  r]  rc  rU  ro  rt  rw  rz  r~  rˆ  rŒ  r°  r¹  rÍ   rÈ  rÓ  r…  rå  rñ   rü  Ú_generate_cpy_union_collecttyperÿ  r  Ú_generate_cpy_union_declr  Ú_generate_cpy_union_ctxr	  r  r  r  r  rž  r³  r  r  r  r=  r@  rC  rF  rr  rL  rQ  rV  rY  Ú*_generate_cpy_dllexport_python_collecttypeÚ._generate_cpy_extern_python_plus_c_collecttyperd  rh  rk  rn  rr  Ú"_generate_cpy_dllexport_python_ctxÚ&_generate_cpy_extern_python_plus_c_ctxr&  rˆ  rŒ  r‘  r”  rš  rž  Ú_emit_bytecode_ConstPointerTypeÚ_emit_bytecode_NamedPointerTyper¢  r¨  r­  Ú_emit_bytecode_UnionTyper±  r+   r,   r   r   r„   r„   ~   sà  † Ø€Mô%ò0ò81òt	<ò-ò&ò& H€Iò,ô>#ò2òòkòZ"ò0òh%ò+(òZKòò*òF=ò<òòFò+ò&ò
`òD2ò,
ò2ò ôDT)òlOò7ò.%à&FÐ#ò&ò7à8Ðò6à6Ðò)ò;ò:ð CJØ(,ôò<&ò
3ò@ò "ô7òCò*-òòFò1ò"ò;òò.Mò"ð
 .ð.Ð.Ø4ò4 òl6ò>ò/ò	Kð &ð&Ð&Ø,òò<AòBò9ò9ò@ò&Pð 'AÐ#Ø&@Ð#òJòFòGð  9Ðõ=r   r„   )r	   c                   ó(   ^ • \ rS rSrU 4S jrSrU =r$ )ÚNativeIOiˆ  c                 óx   >• [        U[        5      (       a  UR                  S5      n[        [        U ]  U5        g )Nru  )r©   Úunicoderx  ÚsuperrÀ  rø   )r   r  r¸   s     €r   rø   ÚNativeIO.write‰  s-   ø€ Ü˜!œW×%Ñ%Ø—H‘H˜WÓ%�Ü”(˜DÑ'¨Õ*r   r,   )r'   r(   r)   r*   rø   r+   Ú__classcell__)r¸   s   @r   rÀ  rÀ  ˆ  s   ø† ÷	+ó 	+r   rÀ  c                 ó   • [        U S5      $ )Nrø   )Úhasattr)Ú	maybefiles    r   Ú_is_file_likerÉ  Ž  s   € ä�9˜gÓ&Ð&r   c                 óP  • U(       a  [        SU< 35        [        XUS L S9nUR                  5         UR                  5         [	        U5      (       a  UR                  X25        g[        5       nUR                  Xb5        UR                  5       n [        US5       nUR                  [        U5      S-   5      U:w  a  [        e S S S 5        U(       a  [        S5        g! , (       d  f       N!= f! [         a©    SU[        R                  " 5       4-  n	[        U	S	5       nUR                  U5        S S S 5        O! , (       d  f       O= f [        R                  " X“5        O<! [          a/    [        R"                  " U5        [        R                  " X“5         Of = f gf = f)
Nzgenerating )r‰   Tr  r   z(already up-to-date)Fz%s.~%dÚw)Úprintr„   r¿   ró   rÉ  r  rÀ  Úgetvaluer  Úreadr9   ÚIOErrorr  Úgetpidrø   ÚrenameÚOSErrorÚunlink)
r‡   rˆ   r   Útarget_fileÚverboseÚ
recompilerrÿ   ÚoutputÚf1Útmp_files
             r   Ú_make_c_or_py_sourcerÚ  ’  sR  € ÞÝ¢Ð.Ô/Ü˜CØ.6¸$Ð.>ñA€Jà×!Ñ!Ô#Ø×"Ñ"Ô$Ü�[×!Ñ!Ø×$Ñ$ [Ô;ØÜ‹
€AØ× Ñ  Ô-Ø�Z‰Z‹\€FðÜ�+˜sÔ# rØ�w‰w”s˜6“{ Q‘Ó'¨6Ó1Ü�ð 2÷ $ö ÜÐ(Ô)Ø÷ $Õ#ûô ó 	Ø˜{¬B¯IªI«KÐ8Ñ8ˆÜ�(˜CÔ  BØ�H‰H�VÔ÷ !× Ö úð	-Ü�IŠI�hÕ,øÜó 	-Ü�IŠI�kÔ"Ü�IŠI�hÖ,ð	-úñ ð	úsf   ÂC2 Â(C!ÃC2 Ã!
C/Ã+C2 Ã20F%Ä"D=Ä4	F%Ä=
E	ÅF%ÅE&Å%F%Å&6FÆF%ÆFÆF%Æ$F%c                 ó&   • Uc   e[        XX#U5      $ r   ©rÚ  )r‡   rˆ   r   Útarget_c_filerÕ  s        r   Úmake_c_sourcerÞ  ±  s"   € ØÑÐÐÜ °(Ø 'ó)ð )r   c                 ó   • [        XS UU5      $ r   rÜ  )r‡   rˆ   Útarget_py_filerÕ  s       r   Úmake_py_sourcerá  ¶  s   € Ü °$¸Ø 'ó)ð )r   c                 ó  • UR                  S5      n [        R                  " [        R                  R                  " U /US S Q76 5        US==   U-  ss'   [        R                  R                  " U /UQ76 U4$ ! [
         a     N<f = f)Nr  r  )r×   r  Úmakedirsr  r]   rÒ  )Ú	outputdirÚmodnameÚ	extensionÚpartss       r   Ú_modname_to_filerè  º  sz   € Ø�M‰M˜#Ó€EðÜ
�Š”B—G‘G—L’L Ð8¨U°3°B¨ZÒ8Ô9ð 
ˆ"ƒI�ÑƒIÜ�7‰7�<Š<˜	Ð* EÒ*¨EÐ1Ð1øô ó Ùðús   “8A; Á;
BÂBc                 óZ   • [        X5      nU R                  XU45        [        XU5        U$ r   )r·   r§   Úsetattr)Ú	patchlistÚclsr   Únew_methÚolds        r   Ú_patch_methrï  È  s.   € Ü
�#Ó
€CØ×Ñ�c Ð%Ô&ÜˆC�xÔ Ø€Jr   c                 óF   • [        U 5       H  u  pn[        XU5        M     g r   )Úreversedrê  )rë  rì  r   Úold_meths       r   Ú_unpatch_methsró  Î  s    € Ü'¨	Ö2Ñˆ�8Ü�˜8Ö$ò  3r   c                 ó¸   ^• [         R                  S:X  a  SSKJn  Ub  [	        XSS 5        [         R                  S:X  a  SSKJn  U4S jn[	        XS	U5      mg g )
Nr   r   )ÚMSVCCompilerÚ_remove_visual_c_refc                 ó   • U$ r   r,   )r   Úmanifest_files     r   rœ   Ú&_patch_for_embedding.<locals>.<lambda>Ú  s   € ±Mr   Údarwin)Ú	CCompilerc                 óÄ   >• SU R                   ;   aD  [        U R                   5      U l         U R                   R                  S5      nSU R                   U'   T" U /UQ70 UD6$ )Nz-bundlez-dynamiclib)Ú	linker_sor8  r%  )r   r¨   Úkwdsr½   Úold_link_shared_objects       €r   Úmy_link_shared_objectÚ3_patch_for_embedding.<locals>.my_link_shared_objectß  sV   ø€ Ø˜DŸN™NÓ*Ü!% d§n¡nÓ!5�”Ø—N‘N×(Ñ(¨Ó3�Ø$1�—‘˜qÑ!Ù)¨$Ð>°Ò>¸Ñ>Ð>r   Úlink_shared_object)ÚsysÚplatformÚcffi._shimmed_dist_utilsrõ  rï  rû  )rë  rõ  rû  r   rÿ  s       @r   Ú_patch_for_embeddingr  Ò  s\   ø€ Ü
‡|�|�wÓõ 	:ØÑ#Ü˜	Ð1GÙAôCô ‡|�|�xÓå6õ	?ô "-¨YØ-AØ-Bó"DÑð  r   c                 óÜ   ^• SSK Jn  TR                  S5      (       a>  TS S m[        R                  S:X  a  TS-  mO[        R                  S:X  a  TS-  mOTS	-  m[        XS
U4S j5        g )Nr   )Ú	build_extz.*rß  r   z.dllrú  z.dylibz.soÚget_ext_filenamec                 ó   >• T$ r   r,   )r   Úext_nameÚtargets     €r   rœ   Ú#_patch_for_target.<locals>.<lambda>÷  s   ø€ ¡vr   )r  r  Úendswithr  r  rï  )rë  r  r  s    ` r   Ú_patch_for_targetr  é  sg   ø€ Ý2ð ‡��t×ÑØ˜˜�ˆÜ�<‰<˜7Ó"Ø�fÑ‰FÜ�\‰\˜XÓ%Ø�hÑ‰Fà�e‰OˆFÜ�	Ð&8Ü-õ/r   c                 ót  • [        U[        5      (       d  UR                  S5      nU R                  (       a  U R	                  U5        UGb�  U(       a  [        U5      (       a  [        S5      eU R                  S LnU(       a  U R                  U5        Uc9  [        X1U5      u  p^U(       a  U/U-   n[        R                  R                  " U6 nOUnU	c  U(       a  SU-  n	OSn	U(       a  [        R                  " Xñ40 UD6nOS n[        XX%US9nU(       aÎ  / n[        R                   " 5       n U(       a  [#        U5        U	S:w  a  [%        UU	5        U(       a:  US:X  a  SnOSn['        U< S	[        R                  R)                  U5      < 35        [        R*                  " U5        [        R,                  " SUXŠ5      n[        R*                  " U5        [/        U5        U$ UU4$ Uc  [        X1S
5      u  nn[1        XUUS9nU(       a  U$ S U4$ ! [        R*                  " U5        [/        U5        f = f)Nru  zGWriting to file-like objects is not supported with call_c_compiler=Truez%s.*r   )rÕ  r  zthe current directory isz setting the current directory tor7   z.py)r©   r¤   rx  Ú_windows_unicodeÚ_apply_windows_unicoderÉ  rl  r#  Ú_apply_embedding_fixrè  r  r  r]   r   Úget_extensionrÞ  Úgetcwdr  r  rÌ  ÚabspathÚchdirÚcompileró  rá  )r‡   rˆ   r   ÚtmpdirÚcall_c_compilerÚc_fileÚsource_extensionÚextradirÚcompiler_verboser  ÚdebugÚuses_ffiplatformrþ  Ú	embeddingrç  Ú
ext_c_fileÚextÚupdatedrë  ÚcwdÚmsgÚoutputfilenamerÑ   s                          r   Ú	recompiler(  ú  s÷  € ô �k¤3×'Ñ'Ø!×(Ñ(¨Ó1ˆØ
××Ø×"Ñ" 4Ô(ØÒÞœ}¨V×4Ñ4Üð 8ó 9ð 9à—^‘^¨4Ð/ˆ	ÞØ×$Ñ$ TÔ*Ø‰>Ü,¨VØ-=ó?‰MˆFæØ!˜
 UÑ*�ÜŸ™Ÿš uÐ-‰JàˆJà‰>ÞØ +Ñ-‘à�æÜ×+Ò+¨JÑLÀtÑL‰CàˆCÜ °(Ø(8ñ:ˆæØˆIÜ—)’)“+ˆCð*ÞÜ(¨Ô3Ø˜S“=Ü% i°Ô8Þ#Ø “}Ø8™à@˜Ü£S¬"¯'©'¯/©/¸&Õ*AÐBÔCÜ—’˜Ô Ü!,×!4Ò!4°S¸#Ø5Eó"N�ô —’˜”Ü˜yÔ)Ø!Ð!à˜�<Ðà‰>Ü(¨¸eÓD‰IˆF�AÜ  °6Ø)9ñ;ˆæØˆMà˜�=Ð øô —’˜”Ü˜yÕ)ús   Ä0BH È#H7r³  )	r  TNz.cNr   NNT)$Úior  r  Ú	sysconfigr@   r   r   Úerrorr   Úcffi_opcoderŠ   r'  rT  r  Úversion_infoÚget_config_varr$  r   r.   rK   rb   rz   r„   ÚStringIOrÀ  ÚBytesIOrÉ  rÚ  rÞ  rá  rè  rï  ró  r  r  r(  r,   r   r   Ú<module>r1     s!  ðß × ß  Ý $Ü à€ØÐ ØÐ à—L‘L GÑ+÷ .¨s×/?Ñ/?À&Ñ/H÷ .Ø×#Ñ# vÑ-÷Cà ×/Ò/Ð0AÓBÔBð ÷1ñ 1÷ )ñ )÷8#ñ #÷:?ñ ?÷0	Kñ 	K÷D=ñ D=ðN( ×Ñ�tÓØ�{‰{�Hô+�2—:‘:ô +ò'òô>)ô
)ò2òò%òDò./ð" GKØ;?Ø59Ø#õC!r   