ó
    Õ›‘hWÿ  ã                   óð  • 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:¬  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\R.                  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	   é   c                   ó*   • \ 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         ÚSC:\Users\psant\Downloads\Noiseback\school\venv\Lib\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   r0   r1   r2   r3   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   r0   r1   r3   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'Ú')	r3   ÚopÚOP_NOOPÚOP_BITFIELDÚformat_four_bytesr2   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   )r2   r0   r1   r3   r   N)	r&   r'   r(   r)   r   r   r#   rG   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   rM   rN   r   rO   rP   rQ   rR   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   rM   rN   r   rO   rQ   r8   rR   rP   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'ú',Ú,Ú))	ÚevalrN   ÚG_FLAGSrR   rG   rE   rM   r   Újoin)r   rN   Ú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)rO   rR   rP   rQ   rN   r   r   rM   Nr%   r+   r   r   rJ   rJ   :   s   † ò	!òõ#r   rJ   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   rM   r   ÚsignedÚallenums)r   r   rM   r   re   rf   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" },rd   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   )rk   r   )é   r   )rl   r   )é   r   )rm   r   r@   z\x00rA   )Ú
PRIM_UINT8Ú	PRIM_INT8ÚPRIM_UINT16Ú
PRIM_INT16ÚPRIM_UINT32Ú
PRIM_INT32ÚPRIM_UINT64Ú
PRIM_INT64r   re   rE   rM   r   rf   )r   Ú
prim_indexs     r   r#   ÚEnumExpr.as_python_exprd   sa   € ä¬)Ü¬*Ü¬*Ü¬*ñ	ð
 �i‰i˜Ÿ™Ð$ñ&‰
ô &7°t·±Õ%GÜ%6°zÕ%BØ%)§Y¤Y°·´ð?ð 	?r   )rf   r   re   r   rM   Nr%   r+   r   r   ra   ra   W   s   † ò!òIõ
	?r   ra   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   rM   )r   r   rM   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$ )Nr@   rA   )rE   rM   r   r   s    r   r#   ÚTypenameExpr.as_python_exprw   s   � Ü-¨d¯o©oÕ>ÀÇ	Ä	ÐJÐJr   r|   Nr%   r+   r   r   ry   ry   o   s   † ò%ò@õKr   ry   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_functionr8   Ú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ÚmethodrB   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)Nr6   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Õ   r8   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[] = {rk   ú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ì   r8   Ú_included_ffisÚ_assigned_sourcer×   r   Ú_num_externpyrŠ   )r   rþ   rÿ   Úprntr  r¼   Úbase_module_namerš   Útypeindex2typerB   rP   ÚnumsrÛ   rÜ   rê   Úffi_to_includeÚincluded_module_nameÚincluded_sourcerN   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 )Nr@   rA   r   r?   Ú(rX   rY   )	r¨   r£   Úlistr¹   Ú_to_pyr8   r¦   r\   r#   )r   rÎ   ÚitemÚreps       r   r8  Ú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+   rk   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('rW   z    _version = 0x%x,z    _types = r?   rX   r   rã   z    _zs = z    _includes = (r   z_ffi%dz,),rY   )rö   rù   r8   r†   r*  Úranger+  r×   r   r‡   rŠ   r¹   r¤   r"   r8  r\   r'  r    rÕ   rí   rì   )r   rþ   r-  Únum_includesr¼   r1  r2  r3  rB   Ú	types_lstrš   r/  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, %sr6  z)_cffi_to_c_doublez)_cffi_to_c_r6   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 == (rY   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ù   rC  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ù   rC  rQ  )r   rš   rU  rV  rW  s        r   rT  Ú-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)NrF  z_cffi_from_c_int(r   rY   z_cffi_from_c_double(úlong doubler6   rÐ   rH  Ú_cffi_from_c_r6  z/_cffi_from_c_deref((char *)&%s, _cffi_type(%d))z0_cffi_from_c_pointer((char *)%s, _cffi_type(%d))rA   z' is used as z, but is opaquez0_cffi_from_c_struct((char *)&%s, _cffi_type(%d)))r¨   r   rª   rO  r   rP  rN  rR  r�   rS  rC  r«   r­   Ú	ArrayTyper9  r³   ÚfldnamesÚ	TypeErrorr(  r´   r<   )r   rš   ÚvarÚcontextrZ  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Ç   rs  rr  s      r   Ú!_generate_cpy_typedef_collecttypeÚ,Recompiler._generate_cpy_typedef_collecttype~  s   € Ø×Ñ˜d×0Ñ0°Ó:Õ;r   c                 ó   • g r   r+   rr  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¦   ry   )r   rš   r   rM   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)	rs  r}  r¶   Ú_struct_ctxr   r¨   r   ÚNamedPointerTypeÚtotyperr  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ˆ   rr  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   Úvoidr6   r?   Ú_cffi_d_r6  rY   ústatic r  zreturn rL  rM  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³   ÚPrimitiveTyperN  )rB  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ù   r8   r§   rµ   r¦   rQ  r\   Úabir˜  r©   rî   rb  r¢   r=  r\  rn  ÚinsertÚ	void_type)r   rš   r   r-  ÚnumargsÚargnameÚ	argumentsÚcall_argumentsrm  r¼   rB  Úrepr_argumentsrž  Úname_and_argumentsÚresult_codeÚargr`  ra  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È   r8   r§   ÚOP_DLOPEN_FUNCÚOP_CPYTHON_BLTN_NÚOP_CPYTHON_BLTN_OÚOP_CPYTHON_BLTN_Vrì   r¦   r   r¸   )r   rš   r   rM   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)->rY   ú%s[0])r¨   r   ri  r¯   rQ  rÌ   r9  )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 r6  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Ã   rO  r¨   r   ri  r¯   r9  rQ  r   r£   )r   rš   rZ  r‚  r-  ÚcheckfuncnameÚfnameÚftyper2   Ú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  rA   r   z%d /* bits */z
(size_t)-1z	sizeof(((r   r¼  rY   z((char *)&((z)4096)->z) - (char *)4096z	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\   r7  rÃ   rÌ   Ú_check_not_opaquer   rC   rD   ri  r¯   rQ  r-   r¸   r8   rì   ÚextendrJ   rï   r_  )r   rš   rZ  r‚  rƒ  rM   Úreason_for_not_expandingrN   rR   rÁ   ÚfldnamerÈ  r2   rÑ  rB   r   ÚoffsetrQ   ÚalignrP   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   ri  r9  r³   rÉ   rk  )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)r7  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Ç  rr  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?   r6   rÐ   )rQ  rR  )r   rš   rZ  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þ  rr  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þ  rr  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Ç  rr  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Ò  rr  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„  rr  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 'rA   Ú_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ù   rQ  )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   )rO  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   )rO  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ˆ   rO  r¸   ÚOP_CONSTANT_INTÚOP_DLOPEN_CONSTÚOP_CONSTANTr    rì   r¦   r   )r   rš   r   r   Ú
const_kindrM   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Ç   rr  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   rX   rå   )r    r¸   ÚOP_ENUMrˆ   Úcheck_not_partialÚzipr+  Ú
enumvaluesrì   r¦   r   Úbuild_baseinttyper†   ÚsizeofÚintÚcastr\   ra   r   )r   rš   rZ  rM   r   r,  Ú	enumvaluer   re   Úbasetprf   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(  rr  s      r   Ú_generate_cpy_enum_ctxÚ!Recompiler._generate_cpy_enum_ctxy  s   € Ø�‰�rŸ>™>Ó+Õ,r   c                 ó   • g r   r+   rr  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»  Tr/  )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"  r/  )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(rY   r½  )r¨   r   ri  r¯   rq  r9  )r   rš   Úglobal_namerÁ  rÃ  s        r   rq  Ú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Ç   rq  rr  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 r6  rM  r  )	rù   rq  r¨   r   ri  r¯   r9  rQ  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)	rq  r    rˆ   ÚOP_GLOBAL_VARÚOP_GLOBAL_VAR_Frì   r¦   r   r¸   )r   rš   r   rM   rB   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Ç   rr  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?   rY   z3static struct _cffi_externpy_s _cffi_externpy__%s =r   r  r7   z	, 0, 0 };r�  z a%dr   r‘  r6  Ú	__stdcallz_cffi_stdcall c                 ób   • [        U [        R                  5      =(       a    U R                  S:H  $ )Nrg  )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   rm   é   z!sizeof(%s) > %d ? sizeof(%s) : %dr  z  char a[%s];z  char *p = a;za%drN  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©   rQ  r‡   rµ   r§   r¦   r\   rž  r�   r8   r³   r«   r,  )r   rš   r   Útag_and_spacer-  Úsize_of_resultrm  r£  r¼   rB  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“  ©rc  rr  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 rf  rr  s      r   Ú#_generate_cpy_dllexport_python_declÚ.Recompiler._generate_cpy_dllexport_python_decl
  s   € Ø× Ñ  Ð+<Õ=r   c                 ó(   • U R                  XS5        g )Nr?   rf  rr  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   rM   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Ú
splitlinesrB  ÚmapÚordrt  Úrstripr8   )r   Úsr-  ÚlinerP   Ú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$  rv   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[  rk   zabi=)r¸   ÚOP_FUNCTIONr    r˜  r¤   r§   r¨   r   rš  r‹  rC   r6  rŠ  rž  r<   ÚOP_FUNCTION_END)r   rš   r$  r»   Ú	realindexrN   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    r9  r¯   r¸   ÚOP_OPEN_ARRAYr¤   r   r£   rR  Ú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¸   r0  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ý   r8  rü   rC  r\  rb  rT  rn  rs  rv  ry  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?  rB  rE  rq  rK  rP  rU  rX  Ú*_generate_cpy_dllexport_python_collecttypeÚ._generate_cpy_extern_python_plus_c_collecttyperc  rg  rj  rm  rq  Ú"_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 )Nrt  )r¨   Úunicoderw  Ú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  Úreadr8   Ú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_sor7  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)Nrt  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 tor6   z.py)r¨   r£   rw  Ú_windows_unicodeÚ_apply_windows_unicoderÈ  rk  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)"r  r  Úior?   r   r   Úerrorr   Úcffi_opcoder‰   r&  rS  r  Úversion_infor#  r   r-   rJ   ra   ry   rƒ   ÚStringIOr¿  ÚBytesIOrÈ  rÙ  rÝ  rà  rç  rî  rò  r  r  r'  r+   r   r   Ú<module>r.     s	  ðß Ó ß  Ý $Ü à€ØÐ ØÐ à—<‘< 7Ñ*÷ .¨c×.>Ñ.>ÀÑ.G÷ .Ø×#Ñ# vÑ-ð ÷1ñ 1÷ )ñ )÷8#ñ #÷:?ñ ?÷0	Kñ 	K÷D=ñ D=ðN( ×Ñ�tÓØ�{‰{�Hô+�2—:‘:ô +ò'òô>)ô
)ò2òò%òDò./ð" GKØ;?Ø59Ø#õC!r   