§
    
 @gÔý  ã                  óü  — U d Z ddlmZ ddlZddlZddlmZ ddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" ddlm#Z# ddl$Z$ddl%m&Z& ddl%m'Z' ddl(m)Z) ddlm*Z* ddl%m+Z+  e"d ¦  «        Z, e"d!d"¬#¦  «        Z- e"d$ed%ef         ¬&¦  «        Z. e"d'd(¬&¦  «        Z/ e"d)d*¬&¦  «        Z0 e"d+d,¬&¦  «        Z1 e"d-d.¬&¦  «        Z2e'j3        r�dd3„Z4n�dd4„Z4�dd7„Z5 G d8„ d9¦  «        Z6�dd=„Z7�dd?„Z8�ddA„Z9�ddG„Z:�ddK„Z;�ddP„Z<�ddV„Z= e"dWdE¬&¦  «        Z>�ddZ„Z?d[„ Z@�dda„ZA e"db¦  «        ZB e"dc¦  «        ZC G dd„ de¦  «        ZDdf„ ZEedd%dgœ�ddn„¦   «         ZFeddodgœ�ddp„¦   «         ZFddodgœ�ddq„ZF�d dt„ZG	 �d!�d"dx„ZH	 �d#�d$d|„ZI�d#d}„ZJ	 	 	 	 �d%�d&d‡„ZKdˆ„ ZLd‰„ ZM	 	 	 �d'�d(d�„ZN G d�„ d‘¦  «        ZOd’„ ZPd“„ ZQ	 	 	 	 �d)d•„ZRd–„ ZS�d*d—„ZT e"d˜d™¬&¦  «        ZU G dš„ d›ee-         ¦  «        ZV G dœ„ d�eVe-         ¦  «        ZW G dž„ dŸeVe-         ¦  «        ZXe!r	eVZYeVZZe[Z\e[Z]neXxZYZ\eWxZZZ]�d+d „Z^ G d¡„ d¢¦  «        Z_e!re[Z`ne_ja        Z` G d£„ d¤¦  «        Zb�d,d¥„Zc�d-d¨„Zd�d.d«„Ze	 	 �d/�d0d³„Zf�d1d´„Zg�d2d¶„Zh�d3d¸„Zi	 �d4�d5d¼„Zj�d6dÁ„ZkdÂ„ Zl G dÃ„ dÄe[¦  «        Zm G dÅ„ dÆee,         ¦  «        Zn G dÇ„ dÈee,         ¦  «        Zo G dÉ„ dÊee,         ¦  «        Zp G dË„ dÌeq¦  «        Zr G dÍ„ dÎes¦  «        Zt G dÏ„ dÐet¬Ñ¦  «        Zue!r	ddÒlmvZv evZwneuZw e"dÓejx        ¬&¦  «        Zy	 �d7�d8dØ„Zzda{�d9dÚ„Z|�d:dÜ„Z}�d;dÞ„Z~ G dß„ dàe¦  «        Z€�d4�d<dã„Z��d=då„Z‚i Zƒdæe„dç<   �d>dì„Z… e
j†        dí¦  «        Z‡	 	 �d?�d@dñ„Zˆ�dAdõ„Z‰ e
j†        dö¦  «        ZŠ e
j†        d÷¦  «        Z‹e‹eŠf�dBdü„ZŒ esd¦  «        Z�dý„ ZŽ G dþ„ dÿ¦  «        Z� G �d „ �d¦  «        Z��d„ Z‘�d„ Z’�dC�d„Z“�dD�d„Z”�dE�d
„Z• e
j†        �d¦  «        Z–�dF�d„Z—�dG�d„Z˜�d7�d„Z™dS (H  z…Routines to help with the creation, loading and introspection of
modules, classes, hierarchies, attributes, functions, and methods.

é    )ÚannotationsN©Úupdate_wrapper)ÚCodeType)ÚAny)ÚCallable)Úcast)ÚDict)Ú	FrozenSet)ÚGeneric)ÚIterator)ÚList)ÚMapping)ÚNoReturn)ÚOptional)Úoverload)ÚSequence)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú_collections)Úcompat)ÚHAS_CYEXTENSION)ÚLiteralé   )ÚexcÚ_TÚ_T_coT)Ú	covariantÚ_F.)ÚboundÚ_MPzmemoized_property[Any]Ú_MAz#HasMemoized.memoized_attribute[Any]Ú_HPzhybridproperty[Any]Ú_HMzhybridmethod[Any]Úobjr   ÚreturnúMapping[str, Any]c                ó*   — t          j        | ¦  «        S ©N)ÚinspectÚget_annotations©r*   s    úO/var/www/piapp/venv/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.pyr0   r0   A   s   € ÝÔ& sÑ+Ô+Ð+ó    c                óÂ   — t          | t          ¦  «        r| j                             dd ¦  «        }nt	          | dd ¦  «        }|€t
          j        S t          d|¦  «        S )NÚ__annotations__r,   )Ú
isinstanceÚtypeÚ__dict__ÚgetÚgetattrr   Ú
EMPTY_DICTr	   )r*   Úanns     r2   r0   r0   F   sa   € õ �c�4Ñ Ô ð 	8Ø”,×"Ò"Ð#4°dÑ;Ô;ˆCˆCå˜#Ð0°$Ñ7Ô7ˆCàˆ;ÝÔ*Ð*åÐ+¨SÑ1Ô1Ð1r3   ÚxÚstrc                óÊ   — |                       d¦  «        } t          j        ¦   «         }|                     | ¦  «         t	          t
          |                     ¦   «         ¦  «        S )Nzutf-8)Úencoder   Úmd5_not_for_securityÚupdater	   r>   Ú	hexdigest)r=   Úms     r2   Úmd5_hexrE   W   sH   € Ø	�Š�ÑÔ€AÝÔ#Ñ%Ô%€AØ‡H‚HˆQ�K„K€KÝ•�Q—[’[‘]”]Ñ#Ô#Ð#r3   c                  ó2   — e Zd ZU dZdZded<   dd„Zdd„ZdS )Úsafe_reraisea  Reraise an exception after invoking some
    handler code.

    Stores the existing exception info before
    invoking so that it is maintained across a potential
    coroutine context switch.

    e.g.::

        try:
            sess.commit()
        except:
            with safe_reraise():
                sess.rollback()

    TODO: we should at some point evaluate current behaviors in this regard
    based on current greenlet, gevent/eventlet implementations in Python 3, and
    also see the degree to which our own asyncio (based on greenlet also) is
    impacted by this. .rollback() will cause IO / context switch to occur in
    all these scenarios; what happens to the exception context from an
    "except:" block if we don't explicitly store it? Original issue was #2703.

    )Ú	_exc_infozdUnion[None, Tuple[Type[BaseException], BaseException, types.TracebackType], Tuple[None, None, None]]rH   r+   ÚNonec                ó6   — t          j        ¦   «         | _        d S r.   )ÚsysÚexc_inforH   ©Úselfs    r2   Ú	__enter__zsafe_reraise.__enter__ƒ   s   € Ýœ™œˆŒˆˆr3   Útype_úOptional[Type[BaseException]]ÚvalueúOptional[BaseException]Ú	tracebackúOptional[types.TracebackType]r   c                ó®   — | j         €J ‚|€+| j         \  }}}|€J ‚d | _         |                     |¦  «        ‚d | _         |€J ‚|                     |¦  «        ‚r.   )rH   Úwith_traceback)rN   rP   rR   rT   Úexc_typeÚ	exc_valueÚexc_tbs          r2   Ú__exit__zsafe_reraise.__exit__†   ss   € ð Œ~Ð)Ð)Ð)àˆ=Ø*.¬.Ñ'ˆH�i ØÐ(Ð(Ð(Ø!ˆDŒNØ×*Ò*¨6Ñ2Ô2Ð2à!ˆDŒNØÐ$Ð$Ð$Ø×&Ò& yÑ1Ô1Ð1r3   N©r+   rI   )rP   rQ   rR   rS   rT   rU   r+   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r5   rO   r[   © r3   r2   rG   rG   ^   sc   € € € € € € ðð ð0 €Iðð ð ñ ð(ð (ð (ð (ð2ð 2ð 2ð 2ð 2ð 2r3   rG   ÚclsúType[_T]úIterator[Type[_T]]c              #  óê   K  — t          ¦   «         }| g}|r]|                     ¦   «         } | |v rŒ|                     | ¦  «         |                     |                      ¦   «         ¦  «         | V — |°[d S d S r.   )ÚsetÚpopÚaddÚextendÚ__subclasses__)rc   ÚseenÚstacks      r2   Úwalk_subclassesrn   ™   s‹   è è € Ý‘U”U€DàˆE€EØ
ð Ø�iŠi‰kŒkˆØ�$ˆ;ˆ;Øà�HŠH�S‰MŒMˆMØ�Š�S×'Ò'Ñ)Ô)Ñ*Ô*Ð*Øˆ	ˆ	ˆ	ð ð ð ð ð ð r3   Úelementc                óz   — t          | t          ¦  «        r| S 	 t          | ¦  «        S # t          $ r d| z  cY S w xY w)Nzunprintable element %r)r6   r>   Ú	Exception)ro   s    r2   Ústring_or_unprintablerr   §   sV   € Ý�'�3ÑÔð 6Øˆð	6Ý�w‘<”<ÐøÝð 	6ð 	6ð 	6Ø+¨gÑ5Ð5Ð5Ð5ð	6øøøs   ™( ¨:¹:ú	Type[Any]c                óp   — d                      d„ t          j        d| j        ¦  «        D ¦   «         ¦  «        S )Nú c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S r.   )Úlower)Ú.0Úns     r2   ú	<genexpr>z(clsname_as_plain_name.<locals>.<genexpr>²   s;   è è € ð ð Øˆ�Š‰	Œ	ðð ð ð ð ð r3   z([A-Z][a-z]+|SQL))ÚjoinÚreÚfindallr]   ©rc   s    r2   Úclsname_as_plain_namer   ±   sC   € Ø�8Š8ð ð Ýœ:Ð&:¸C¼LÑIÔIðñ ô ñ ô ð r3   Úinstance_or_clsúUnion[Type[Any], object]Úagainst_methodúCallable[..., Any]Úboolc                óz   — t          | t          ¦  «        s| j        }n| }|j        }t	          ||¦  «        }||k    S )z1Return True if the two class methods don't match.)r6   r7   Ú	__class__r]   r:   )r€   r‚   Úcurrent_clsÚmethod_nameÚcurrent_methods        r2   Úmethod_is_overriddenrŠ   ·   sG   € õ �o¥tÑ,Ô,ð &Ø%Ô/ˆˆà%ˆà Ô)€Kå'.¨{¸KÑ'HÔ'H€Nà˜^Ò+Ð+r3   ÚslcÚsliceúTuple[Any, ...]c                óÄ   — g }| j         | j        | j        fD ];}t          |d¦  «        r|                     ¦   «         }|                     |¦  «         Œ<t          |¦  «        S )zrdecode a slice object as sent to __getitem__.

    takes into account the 2.5 __index__() method, basically.

    Ú	__index__)ÚstartÚstopÚstepÚhasattrr�   ÚappendÚtuple)r‹   Úretr=   s      r2   Údecode_slicer—   É   sa   € ð €CØŒY˜œ #¤(Ð*ð ð ˆÝ�1�kÑ"Ô"ð 	Ø—’‘”ˆAØ�
Š
�1‰ŒˆˆÝ�‰:Œ:Ðr3   ÚusedúSequence[str]ÚbasesúIterator[str]c           
   '  ó  ‡K  — t          | ¦  «        }|D ]lŠt          j        ‰ft          ˆfd„t	          d¦  «        ¦  «        ¦  «        }|D ]!}||vr|                     |¦  «         |V —  nŒ"t          d‰z  ¦  «        ‚Œmd S )Nc                ó(   •— ‰t          | ¦  «        z   S r.   ©r>   )ÚiÚbases    €r2   ú<lambda>z!_unique_symbols.<locals>.<lambda>Ü   s   ø€ ˜$¥ Q¡¤™-€ r3   iè  z&exhausted namespace for symbol base %s)rg   Ú	itertoolsÚchainÚmapÚrangeri   Ú	NameError)r˜   rš   Úused_setÚpoolÚsymr    s        @r2   Ú_unique_symbolsrª   ×   sÀ   øè è € Ý�4‰yŒy€HØð Mð MˆÝŒØˆGÝÐ'Ð'Ð'Ð'­¨t©¬Ñ5Ô5ñ
ô 
ˆð ð 	Mð 	MˆCØ˜(Ð"Ð"Ø—’˜SÑ!Ô!Ð!Ø�	�	�	Ø�ð #õ
 ÐDÀtÑKÑLÔLÐLð ðMð Mr3   ÚfnúCallable[[int], Any]ry   ÚintúIterator[Any]c              #  óL   K  — |r|| dz   z  } | |¦  «        V — ||z  }|°dS dS )z6Call the given function given each nonzero bit from n.r   Nrb   )r«   ry   Úbs      r2   Úmap_bitsr±   ç   sW   è è € ð ð Ø�!��a‘‰LˆØˆb�‰eŒeˆˆˆØ	ˆQ‰ˆð ð ð ð ð ð r3   Ú_FnÚtargetúCallable[[_Fn], _Fn]c                ó0   ‡ — dˆ fd„}t          |‰ ¦  «        S )z'A signature-matching decorator factory.r«   r²   r+   c                ó  •— t          j        | ¦  «        s#t          j        | ¦  «        st          d¦  «        ‚t	          j        | ¦  «        }i }t          ||¦  «        }t          t          d|d         ¦  «        ¦  «        t          d|dd…         ¦  «        z   | j	        fz   }t          |dd¦  «        \  }}t          ||¬¦  «        }|                     t          |d	¬
¦  «        ¦  «         | j	        |d<   t          j        | ¦  «        rd|d<   d|d<   n
d|d<   d|d<   dt          |d         ¦  «        v rd|z  }nd|z  }t           j        | j                 }|                     t'          |¦  «        ¦  «         |                     |‰
|| d| j        i¦  «         t          t(          j        t-          ||| j	        ¦  «        ¦  «        }	t/          | d| ¦  «        j        |	_        | |	_        t          t4          t7          |	| ¦  «        ¦  «        S )Nznot a decoratable functionzTuple[str, ...]r   r   é   r³   r«   )r³   r«   F©ÚgroupedÚnamezasync Úprefixzawait Útarget_prefixÚ Ú__zf%(prefix)sdef %(name)s%(grouped_args)s:
    return %(target_prefix)s%(target)s(%(fn)s, %(apply_pos)s)
ze%(prefix)sdef %(name)s%(grouped_args)s:
    return %(target_prefix)s%(target)s(%(fn)s, %(apply_kw)s)
r]   Ú__func__)r/   Ú
isfunctionÚismethodrq   r   Úinspect_getfullargspecÚ!_update_argspec_defaults_into_envr•   r	   r]   rª   ÚdictrB   Úformat_argspec_plusÚiscoroutinefunctionÚreprrK   Úmodulesr^   ÚvarsÚtypesÚFunctionTypeÚ_exec_code_in_envr:   Ú__defaults__Ú__wrapped__r²   r   )r«   ÚspecÚenvÚnamesÚ	targ_nameÚfn_nameÚmetadataÚcodeÚmodÚ	decoratedr³   s             €r2   Údecoratezdecorator.<locals>.decorateø   s"  ø€ ÝÔ! "Ñ%Ô%ð 	:­gÔ.>¸rÑ.BÔ.Bð 	:ÝÐ8Ñ9Ô9Ð9åÔ,¨RÑ0Ô0ˆØ ˆå0°°sÑ;Ô;ˆõ •$Ð(¨$¨q¬'Ñ2Ô2Ñ3Ô3ÝÐ$ d¨1¨Q¨3¤iÑ0Ô0ñ1àŒ{ˆnñð 	õ
 -¨U°H¸dÑCÔCÑˆ	�7å-1¸ÀwÐ-OÑ-OÔ-OˆØ�ŠÕ+¨D¸%Ð@Ñ@Ô@ÑAÔAÐAØœ;ˆ�ÑåÔ& rÑ*Ô*ð 	+Ø!)ˆH�XÑØ(0ˆH�_Ñ%Ð%à!#ˆH�XÑØ(*ˆH�_Ñ%ð •4˜˜Qœ‘=”=Ð Ð ðð ñ	ð ˆDðð ñ	ð õ Œk˜"œ-Ô(ˆØ�
Š
•4˜‘9”9ÑÔÐØ�
Š
�I˜v w°°JÀÄÐNÑOÔOÐOåÝÔÝ˜d C¨¬Ñ5Ô5ñ
ô 
ˆ	õ ")¨¨Z¸Ñ!<Ô!<Ô!Iˆ	Ôà "ˆ	ÔÝ•C�¨	°2Ñ6Ô6Ñ7Ô7Ð7r3   )r«   r²   r+   r²   r   )r³   rØ   s   ` r2   Ú	decoratorrÙ   õ   s4   ø€ ð?8ð ?8ð ?8ð ?8ð ?8ð ?8õB ˜( FÑ+Ô+Ð+r3   c                ó.  — | j         r�g }d}| j         D ]R}t          |¦  «        j        dvr%d|z  }|||<   |                     |¦  «         |dz  }Œ=|                     |¦  «         ŒSt	          | ¦  «        }t          |¦  «        |d<   t          j        |Ž S | S )zCgiven a FullArgSpec, convert defaults to be symbol names in an env.r   )ÚbuiltinsÚ__builtin__zx%dr   r·   )Údefaultsr7   r^   r”   Úlistr•   r   ÚFullArgSpec)rÏ   rÐ   Únew_defaultsrŸ   Úargrº   Úelems          r2   rÃ   rÃ   <  sµ   € ð „}ð ØˆØˆØ”=ð 	)ð 	)ˆCÝ�C‰yŒyÔ#Ð+FÐFÐFØ˜q‘y�Ø��D‘	Ø×#Ò# DÑ)Ô)Ð)Ø�Q‘��à×#Ò# CÑ(Ô(Ð(Ð(Ý�D‰zŒzˆÝ˜Ñ%Ô%ˆˆQ‰ÝÔ! 4Ð(Ð(àˆr3   rÕ   úUnion[str, types.CodeType]rÐ   úDict[str, Any]rÓ   c                ó2   — t          | |¦  «         ||         S r.   )Úexec)rÕ   rÐ   rÓ   s      r2   rÌ   rÌ   Q  s   € õ 	ˆˆs�O„O€OØˆwŒ<Ðr3   Ú_PFÚ_TEc                  ó0   — e Zd Z	 ddd„Zd„ Zdd„Zdd„ZdS )ÚPluginLoaderNÚgroupr>   Úauto_fnúOptional[Callable[..., Any]]c                ó0   — || _         i | _        || _        d S r.   )rë   Úimplsrì   )rN   rë   rì   s      r2   Ú__init__zPluginLoader.__init__]  s   € ð ˆŒ
Ø%'ˆŒ
ØˆŒˆˆr3   c                ó8   — | j                              ¦   «          d S r.   )rï   ÚclearrM   s    r2   rò   zPluginLoader.cleard  s   € ØŒ
×ÒÑÔÐÐÐr3   rº   r+   r   c                óx  — || j         v r | j         |         ¦   «         S | j        r+|                      |¦  «        }|r|| j         |<    |¦   «         S t          j        | j        ¦  «        D ]2}|j        |k    r%|j        | j         |<   |                     ¦   «         c S Œ3t          j        d| j        ›d|›�¦  «        ‚)NzCan't load plugin: ú:)	rï   rì   r   Úimportlib_metadata_getrë   rº   Úloadr    ÚNoSuchModuleError)rN   rº   ÚloaderÚimpls       r2   rö   zPluginLoader.loadg  sØ   € Ø�4”:ÐÐØ#�4”:˜dÔ#Ñ%Ô%Ð%àŒ<ð 	 Ø—\’\ $Ñ'Ô'ˆFØð  Ø#)�”
˜4Ñ Ø�v‘x”x�åÔ1°$´*Ñ=Ô=ð 	#ð 	#ˆDØŒy˜DÒ Ð Ø#'¤9�”
˜4Ñ Ø—y’y‘{”{Ð"Ð"Ð"ð !õ Ô#Ð#Ø*.¬*¨*¨*°d°dÐ;ñ
ô 
ð 	
r3   Ú
modulepathÚobjnamerI   c                ó*   ‡‡— ˆˆfd„}|| j         |<   d S )Nc                 ó¢   •— t          ‰¦  «        } ‰                     d¦  «        dd …         D ]}t          | |¦  «        } Œt          | ‰¦  «        S )Nú.r   )Ú
__import__Úsplitr:   )rÖ   Útokenrú   rû   s     €€r2   rö   z#PluginLoader.register.<locals>.load{  sW   ø€ Ý˜ZÑ(Ô(ˆCØ#×)Ò)¨#Ñ.Ô.¨q¨r¨rÔ2ð *ð *�Ý˜c 5Ñ)Ô)��Ý˜3 Ñ(Ô(Ð(r3   )rï   )rN   rº   rú   rû   rö   s     `` r2   ÚregisterzPluginLoader.registerz  s6   øø€ ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð  ˆŒ
�4ÑÐÐr3   r.   )rë   r>   rì   rí   )rº   r>   r+   r   )rº   r>   rú   r>   rû   r>   r+   rI   )r]   r^   r_   rð   rò   rö   r  rb   r3   r2   rê   rê   \  sg   € € € € € àBFðð ð ð ð ðð ð ð
ð 
ð 
ð 
ð& ð  ð  ð  ð  ð  r3   rê   c                ó   — 	 t           j        }| j        }|j        }t	          |j        d |…         ¦  «        t          |j        |z  ¦  «        fS # t          $ r4 t          j
        | ¦  «        }|d         t          |d         ¦  «        fcY S w xY w)Nr   r   )r/   ÚCO_VARKEYWORDSÚ__code__Úco_argcountrÞ   Úco_varnamesr„   Úco_flagsÚAttributeErrorr   rÂ   )r«   Úco_varkeywordsÚcoÚnargsrÏ   s        r2   Ú_inspect_func_argsr  „  sŸ   € ð
Ý Ô/ˆð Œ[ˆØ”ˆå�”   Ô'Ñ(Ô(Ý�”˜~Ñ-Ñ.Ô.ð
ð 	
øõ ð &ð &ð &õ
 Ô,¨RÑ0Ô0ˆØ�AŒw�˜T !œW™œÐ%Ð%Ð%Ð%ð&øøøs   ‚A Á;BÂB)Ú_setÚraiseerrr7   r  úOptional[Set[str]]r  úLiteral[True]úSet[str]c               ó   — d S r.   rb   ©rc   r  r  s      r2   Úget_cls_kwargsr  ˜  s	   € ð €Cr3   Fc               ó   — d S r.   rb   r  s      r2   r  r  ¢  s	   € ð €Cr3   c               óÜ  — |du }|rt          ¦   «         }|€J ‚| j                             dd¦  «        }|o8t          |t          j        ¦  «        ot          |j        t          j        ¦  «        }|rCt          |¦  «        \  }}| 	                    |¦  «         |s|s|rt          d| › d�¦  «        ‚dS nd}|r|r| j        D ]}t          ||¬¦  «        € nŒ|                     d¦  «         |S )ae  Return the full set of inherited kwargs for the given `cls`.

    Probes a class's __init__ method, collecting all named arguments.  If the
    __init__ defines a \**kwargs catch-all, then the constructor is presumed
    to pass along unrecognized keywords to its base classes, and the
    collection process is repeated recursively on each of the bases.

    Uses a subset of inspect.getfullargspec() to cut down on method overhead,
    as this is used within the Core typing system to create copies of type
    objects which is a performance-sensitive operation.

    No anonymous tuple arguments please !

    Nrð   Fz
given cls z  doesn't have an __init__ method)r  rN   )rg   r8   r9   r6   rÊ   rË   r  r   r  rB   Ú	TypeErrorÚ	__bases__r  Údiscard)	rc   r  r  ÚtoplevelÚctrÚhas_initrÑ   Úhas_kwÚcs	            r2   r  r  ©  s=  € ð" �tˆ|€HØð Ý‰uŒuˆØÐÐÐà
Œ,×
Ò
˜: uÑ
-Ô
-€Cð 	ð 	5Ý�s�EÔ.Ñ/Ô/ð	5å�s”|¥U¤^Ñ4Ô4ð ð ð Ý*¨3Ñ/Ô/‰ˆˆvØ�Š�EÑÔÐàð 	˜hð 	Øð ÝØF ÐFÐFÐFñô ð ð �tøàˆàð �vð Ø”ð 	ð 	ˆAÝ˜a dÐ+Ñ+Ô+Ð3Ø�ð 4ð 	‡L‚L�ÑÔÐØ€Kr3   Úfuncú	List[str]c                ó6   — t          j        | ¦  «        d         S )zƒReturn the set of legal kwargs for the given `func`.

    Uses getargspec so is safe to call for methods, functions,
    etc.

    r   )r   rÂ   )r   s    r2   Úget_func_kwargsr#  Þ  s   € õ Ô(¨Ñ.Ô.¨qÔ1Ð1r3   Úno_selfÚ_is_initúcompat.FullArgSpecc           	     óò  — t          j        | ¦  «        rt          d| z  ¦  «        ‚t          j        | ¦  «        rq|r[|rYt	          j        | ¦  «        }t	          j        |j        dd…         |j        |j	        |j
        |j        |j        |j        ¦  «        S t	          j        | ¦  «        S t          j        | ¦  «        r‚|rg|s| j        r^t	          j        | j        ¦  «        }t	          j        |j        dd…         |j        |j	        |j
        |j        |j        |j        ¦  «        S t	          j        | j        ¦  «        S t          j        | ¦  «        rt%          | j        |d¬¦  «        S t)          | d¦  «        rt	          j        | j        ¦  «        S t)          | d¦  «        rAt          j        | j        ¦  «        rt%          | j        |¬¦  «        S t          d	| z  ¦  «        ‚t          d	| z  ¦  «        ‚)
zþReturn the argument signature for any callable.

    All pure-Python callables are accepted, including
    functions, methods, classes, objects with __call__;
    builtins and other edge cases like functools.partial() objects
    raise a TypeError.

    zCan't inspect builtin: %sr   NT)r$  r%  r¿   Ú__call__)r$  zCan't inspect callable: %s)r/   Ú	isbuiltinr  rÀ   r   rÂ   rß   ÚargsÚvarargsÚvarkwrÝ   Ú
kwonlyargsÚkwonlydefaultsr   rÁ   Ú__self__r¿   ÚisclassÚget_callable_argspecrð   r“   r(  )r«   r$  r%  rÏ   s       r2   r1  r1  é  s  € õ Ô˜ÑÔð *;ÝÐ3°bÑ8Ñ9Ô9Ð9Ý	Ô	˜BÑ	Ô	ð (;Øð 	5˜ð 	5ÝÔ0°Ñ4Ô4ˆDÝÔ%Ø”	˜!˜"˜"”Ø”Ø”
Ø”Ø”ØÔ#ØÔ ñô ð õ Ô0°Ñ4Ô4Ð4Ý	Ô	˜"Ñ	Ô	ð ;Øð 	>˜ð 	> B¤Kð 	>ÝÔ0°´Ñ=Ô=ˆDÝÔ%Ø”	˜!˜"˜"”Ø”Ø”
Ø”Ø”ØÔ#ØÔ ñô ð õ Ô0°´Ñ=Ô=Ð=Ý	Œ˜Ñ	Ô	ð ;Ý#ØŒK °4ð
ñ 
ô 
ð 	
õ 
��ZÑ	 Ô	 ð ;ÝÔ,¨R¬[Ñ9Ô9Ð9Ý	��ZÑ	 Ô	 ð ;ÝÔ˜BœKÑ(Ô(ð 	?Ý'¨¬¸WÐEÑEÔEÐEåÐ8¸2Ñ=Ñ>Ô>Ð>åÐ4°rÑ9Ñ:Ô:Ð:r3   ú-Union[Callable[..., Any], compat.FullArgSpec]r¹   úDict[str, Optional[str]]c           
     óø  — t          | ¦  «        rt          j        | ¦  «        }n| }t          j        |Ž }t          j        |d         |d         |d         d|d         ¦  «        }|d         rG|d         d         }t          j        |d         dd…         |d         |d         d|d         ¦  «        }n|d         rd|d         z  }|}nd}|}d}|d         r6|t	          t          t          t                   |d         ¦  «        ¦  «        z  }|d         r|t	          |d         ¦  «        z  }|d         |d         z   }|r|d|z
  d…         }	nd}	t          j        ||d         |d         |	d	„ ¬
¦  «        }
|d         r/t          j        |dd…         |d         |d         |	d„ ¬
¦  «        }n|
}|rt          ||||
||¬¦  «        S t          |||dd…         |
dd…         |dd…         |dd…         ¬¦  «        S )a  Returns a dictionary of formatted, introspected function arguments.

    A enhanced variant of inspect.formatargspec to support code generation.

    fn
       An inspectable callable or tuple of inspect getargspec() results.
    grouped
      Defaults to True; include (parens, around, argument) lists

    Returns:

    args
      Full inspect.formatargspec for fn
    self_arg
      The name of the first positional argument, varargs[0], or None
      if the function defines no positional arguments.
    apply_pos
      args, re-written in calling rather than receiving syntax.  Arguments are
      passed positionally.
    apply_kw
      Like apply_pos, except keyword-ish args are passed as keywords.
    apply_pos_proxied
      Like apply_pos but omits the self/cls argument

    Example::

      >>> format_argspec_plus(lambda self, a, b, c=3, **d: 123)
      {'grouped_args': '(self, a, b, c=3, **d)',
       'self_arg': 'self',
       'apply_kw': '(self, a, b, c=c, **d)',
       'apply_pos': '(self, a, b, c, **d)'}

    r   r   r   Né   z%s[0]r·   rb   c                ó&   — dt          | ¦  «        z   S ©Nú=rž   ©r=   s    r2   r¡   z%format_argspec_plus.<locals>.<lambda>t  s   € ˜c¥C¨¡F¤F™l€ r3   )Úformatvaluec                ó&   — dt          | ¦  «        z   S r7  rž   r9  s    r2   r¡   z%format_argspec_plus.<locals>.<lambda>}  s   €  #­¨A©¬¡,€ r3   )Úgrouped_argsÚself_argÚ	apply_posÚapply_kwÚapply_pos_proxiedÚapply_kw_proxiedéÿÿÿÿ)	Úcallabler   rÂ   Úinspect_formatargspecÚlenr	   r   r   rÄ   )r«   r¹   rÏ   r*  r>  r=  r@  Únum_defaultsÚ	name_argsÚdefaulted_valsr?  rA  s               r2   rÅ   rÅ   !  sw  € õH ��|„|ð ÝÔ,¨RÑ0Ô0ˆˆàˆåÔ'¨Ð.€DåÔ,ØˆQŒ��a”˜$˜qœ' 4¨¨a¬ñô €Ið ˆA„wð &Ø˜”7˜1”:ˆå"Ô8Ø�ŒG�A�B�BŒK˜˜aœ $ q¤'¨4°°a´ñ
ô 
ÐÐð 
ˆaŒð &à˜T !œWÑ$ˆà%ÐÐàˆØ%Ðà€LØˆA„wð 7Ø��D¥¥s¤¨T°!¬WÑ5Ô5Ñ6Ô6Ñ6ˆØˆA„wð %Ø�˜D œG™œÑ$ˆà�Q”˜$˜qœ'Ñ!€Ið ð Ø" 1 |Ñ#3Ð#5Ð#5Ô6ˆˆàˆåÔ+ØØˆQŒØˆQŒØØ*Ð*ðñ ô €Hð ˆA„wð 	$Ý!Ô7Ø�a�b�bŒMØ�ŒGØ�ŒGØØ.Ð.ð
ñ 
ô 
ÐÐð $Ðàð 
ÝØØØØØ/Ø-ð
ñ 
ô 
ð 	
õ ØØØ  " ”oØ˜a ˜d”^Ø/°°"°Ô5Ø-¨a°¨dÔ3ð
ñ 
ô 
ð 	
r3   c                óÆ   — | t           j        u rd}|rdnd}|rdnd}n0	 t          | |¬¦  «        S # t          $ r d}|r|nd}|rdnd	}Y nw xY wt	          d|||||¬
¦  «        S )a  format_argspec_plus with considerations for typical __init__ methods

    Wraps format_argspec_plus with error handling strategies for typical
    __init__ cases::

      object.__init__ -> (self)
      other unreflectable (usually C) -> (self, *args, **kwargs)

    z(self)rN   z()r½   r¸   z(self, *args, **kwargs)zself, *args, **kwargsz(*args, **kwargs)z*args, **kwargs)r=  r<  r>  r?  r@  rA  )Úobjectrð   rÅ   r  rÄ   )Úmethodr¹   r<  r*  Úproxieds        r2   Úformat_argspec_initrM  –  sÀ   € ð •”Ð Ð ØˆØ"Ð.ˆxˆx¨ˆØ!Ð)�$�$ rˆˆð	LÝ& v°wÐ?Ñ?Ô?Ð?øÝð 	Lð 	Lð 	LØ4ˆLØ#*ÐG�<�<Ð0GˆDØ-4ÐKÐ)Ð)Ð:KˆGˆGˆGð	Løøøõ ØØ!ØØØ!Ø ðñ ô ð s   Ÿ0 °AÁ
Arb   Ú
target_clsÚtarget_cls_sphinx_nameÚproxy_cls_sphinx_nameÚclassmethodsÚmethodsÚ
attributesÚuse_intermediate_variableúCallable[[_T], _T]c                ó   — d„ }|S )aS  A class decorator indicating attributes should refer to a proxy
    class.

    This decorator is now a "marker" that does nothing at runtime.  Instead,
    it is consumed by the tools/generate_proxy_methods.py script to
    statically generate proxy methods and attributes that are fully
    recognized by typing tools such as mypy.

    c                ó   — | S r.   rb   r~   s    r2   rØ   z&create_proxy_methods.<locals>.decorateÈ  s   € Øˆ
r3   rb   )rN  rO  rP  rQ  rR  rS  rT  rØ   s           r2   Úcreate_proxy_methodsrX  µ  s   € ð&ð ð ð €Or3   c                óˆ   — 	 t          j        | ¦  «        S # t          $ r! | t          j        u r	dgdddfcY S dgdddfcY S w xY w)zúinspect.getargspec with considerations for typical __init__ methods

    Wraps inspect.getargspec with error handling for typical __init__ cases::

      object.__init__ -> (self)
      other unreflectable (usually C) -> (self, *args, **kwargs)

    rN   Nr*  Úkwargs)r   rÂ   r  rJ  rð   )rK  s    r2   Úgetargspec_initr[  Î  sn   € ð6ÝÔ,¨VÑ4Ô4Ð4øÝð 6ð 6ð 6Ø•V”_Ð$Ð$Ø�H˜d D¨$Ð/Ð/Ð/Ð/à�H˜f h°Ð5Ð5Ð5Ð5ð	6øøøs   ‚ –A·AÁ Ac                óV   — t          | t          j        ¦  «        r| j        s| j        S | S )zSAdjust the incoming callable such that a 'self' argument is not
    required.

    )r6   rÊ   Ú
MethodTyper/  r¿   )Úfunc_or_clss    r2   Úunbound_method_to_callabler_  à  s2   € õ �+�uÔ/Ñ0Ô0ð ¸Ô9Mð ØÔ#Ð#àÐr3   Úadditional_kwúSequence[Tuple[str, Any]]Ú
to_inspectú%Optional[Union[object, List[object]]]Ú
omit_kwargc           	     óh  ‡ ‡— |€‰ g}nt          j        |¦  «        }t          ¦   «         Šg }t          j        ¦   «         }d}t	          |¦  «        D �]%\  }}	 t          j        |j        ¦  «        }	|	j        rt          |	j        ¦  «        nd}
|dk    rW|	j
        r|	j
        }|
r$|                     |	j        d|
 …         ¦  «         nR|                     |	j        dd…         ¦  «         n/|                     ˆfd„|	j        d|
 …         D ¦   «         ¦  «         |
rI|	j        sJ ‚|                     d„ t          |	j        |
 d…         |	j        ¦  «        D ¦   «         ¦  «         �Œ# t          $ r Y �Œ#w xY wg }|                     ˆ fd„|D ¦   «         ¦  «         |�=t!          ‰ |¦  «        r-|                     d„ t#          ‰ |¦  «        D ¦   «         ¦  «         |                     ¦   «         D ]P\  }}||v rŒ
	 t#          ‰ |‰¦  «        }|‰ur ||k    r|                     |›d|›�¦  «         ŒA# t(          $ r Y ŒMw xY w|rN|D ]K\  }}	 t#          ‰ |‰¦  «        }|‰ur ||k    r|                     |›d|›�¦  «         Œ<# t(          $ r Y ŒHw xY w‰ j        j        ›d	d
                     |¦  «        ›d�S )z}Produce a __repr__() based on direct association of the __init__()
    specification vs. same-named attributes present.

    Nr   r   c                ó   •— g | ]}|‰f‘ŒS rb   rb   )rx   rá   Úmissings     €r2   ú
<listcomp>z generic_repr.<locals>.<listcomp>  s   ø€ ÐIÐIÐI¨�c˜7�^ÐIÐIÐIr3   c                ó   — g | ]	\  }}||f‘Œ
S rb   rb   )rx   rá   Údefaults      r2   rh  z generic_repr.<locals>.<listcomp>  s0   € ð ð ð á(˜C ð ˜g˜ðð ð r3   c              3  óT   •K  — | ]"}t          t          ‰|d ¦  «        ¦  «        V — Œ#d S r.   )rÇ   r:   )rx   rá   r*   s     €r2   rz   zgeneric_repr.<locals>.<genexpr>  s7   øè è € ÐDÐD°C•$•w˜s C¨Ñ.Ô.Ñ/Ô/ÐDÐDÐDÐDÐDÐDr3   c                ó,   — g | ]}t          |¦  «        ‘ŒS rb   ©rÇ   )rx   Úvals     r2   rh  z generic_repr.<locals>.<listcomp>"  s   € Ð@Ð@Ð@ S•t˜C‘y”yÐ@Ð@Ð@r3   r8  ú(ú, ú))r   Úto_listrJ  ÚOrderedDictÚ	enumerater   rÂ   rð   rÝ   rE  r+  rj   r*  rB   Úzipr  r“   r:   Úitemsr”   rq   r†   r]   r{   )r*   r`  rb  rd  Úpos_argsÚkw_argsÚvargsrŸ   ÚinsprÏ   Údefault_lenÚoutputrá   Údefvalrn  rg  s   `              @r2   Úgeneric_reprr~  ì  si  øø€ ð ÐØ�Uˆ
ˆ
å!Ô)¨*Ñ5Ô5ˆ
å‰hŒh€Gà€HÝ2>Ô2JÑ2LÔ2L€GØ€EÝ˜ZÑ(Ô(ð ñ ‰ˆˆ4ð	ÝÔ0°´Ñ?Ô?ˆDð 15´ÐD�#˜dœmÑ,Ô,Ð,À1ˆKØ�AŠvˆvØ”<ð )Ø œL�EØð 3Ø—O’O D¤I¨a°°¨nÔ$=Ñ>Ô>Ð>Ð>à—O’O D¤I¨a¨b¨b¤MÑ2Ô2Ð2Ð2à—’ØIÐIÐIÐI¨t¬y¸¸K¸<¸Ô/HÐIÑIÔIñô ð ð ð 	Ø”}Ð$Ð$Ð$Ø—’ðð å,/Ø œI { l m mÔ4°d´mñ-ô -ðñ ô ñô ð ùøõ% ð 	ð 	ð 	Ø‰Hð	øøøð4 €Fà
‡M‚MÐDÐDÐDÐD¸8ÐDÑDÔDÑDÔDÐDàÐ�W S¨%Ñ0Ô0ÐØ�ŠÐ@Ð@­G°C¸Ñ,?Ô,?Ð@Ñ@Ô@ÑAÔAÐAà—}’}‘”ð ð ‰ˆˆVØ�*ÐÐØð	Ý˜#˜s GÑ,Ô,ˆCØ˜'Ð!Ð! c¨V¢m mØ—’¨¨¨¨c¨cÐ2Ñ3Ô3Ð3øøÝð 	ð 	ð 	ØˆDð	øøøð ð Ø(ð 	ð 	‰KˆC�ðÝ˜c 3¨Ñ0Ô0�Ø˜gÐ%Ð%¨#°ª-¨-Ø—M’M¨S¨S¨S°#°#Ð"6Ñ7Ô7Ð7øøÝð ð ð Ø�ðøøøð ”}Ô-Ð-Ð-¨t¯yªy¸Ñ/@Ô/@Ð/@Ð/@ÐAÐAs6   ÁE'Å'
E5Å4E5Ç95H/È/
H<È;H<É	5I?É?
JÊJc                  ó0   — e Zd ZdZdZd„ Zd„ Zd	d„Zd„ ZdS )
Úportable_instancemethodz_Turn an instancemethod into a (parent, name) pair
    to produce a serializable callable.

    )r³   rº   rZ  Ú__weakref__c                ó,   — | j         | j        | j        dœS )N©r³   rº   rZ  rƒ  rM   s    r2   Ú__getstate__z$portable_instancemethod.__getstate__B  s    € à”kØ”IØ”kð
ð 
ð 	
r3   c                óp   — |d         | _         |d         | _        |                     dd¦  «        | _        d S )Nr³   rº   rZ  rb   )r³   rº   r9   rZ  )rN   Ústates     r2   Ú__setstate__z$portable_instancemethod.__setstate__I  s1   € Ø˜H”oˆŒØ˜&”MˆŒ	Ø—i’i ¨"Ñ-Ô-ˆŒˆˆr3   rb   c                óD   — |j         | _        |j        | _        || _        d S r.   )r/  r³   r]   rº   rZ  )rN   ÚmethrZ  s      r2   rð   z portable_instancemethod.__init__N  s   € Ø”mˆŒØ”MˆŒ	ØˆŒˆˆr3   c                óv   — |                      | j        ¦  «          t          | j        | j        ¦  «        |i |¤ŽS r.   )rB   rZ  r:   r³   rº   )rN   rá   Úkws      r2   r(  z portable_instancemethod.__call__S  s9   € Ø
�	Š	�$”+ÑÔÐØ.�w�t”{ D¤IÑ.Ô.°Ð:°rÐ:Ð:Ð:r3   N)rb   )	r]   r^   r_   r`   ra   r„  r‡  rð   r(  rb   r3   r2   r€  r€  :  sf   € € € € € ðð ð
 :€Ið
ð 
ð 
ð.ð .ð .ð
ð ð ð ð
;ð ;ð ;ð ;ð ;r3   r€  c                ó*  ‡— | hŠt          | j        ¦  «        }|rë|                     ¦   «         }ˆfd„|j        D ¦   «         }|D ],}|                     |¦  «         ‰                     |¦  «         Œ-|j        dk    st          |d¦  «        sŒtˆfd„t          |t          ¦  «        s| 
                    ¦   «         n| 
                    |¦  «        D ¦   «         D ],}|                     |¦  «         ‰                     |¦  «         Œ-|°ët          ‰¦  «        S )a'  Return an unordered sequence of all classes related to cls.

    Traverses diamond hierarchies.

    Fibs slightly: subclasses of builtin types are not returned.  Thus
    class_hierarchy(class A(object)) returns (A, object), not A plus every
    class systemwide that derives from object.

    c              3  ó$   •K  — | ]
}|‰v¯|V — Œd S r.   rb   ©rx   Ú_Úhiers     €r2   rz   z"class_hierarchy.<locals>.<genexpr>g  s'   øè è € Ð9Ð9�q¨1°D¨=¨=�¨=¨=¨=¨=Ð9Ð9r3   rÛ   rk   c                ó   •— g | ]}|‰v¯|‘Œ	S rb   rb   rŽ  s     €r2   rh  z#class_hierarchy.<locals>.<listcomp>p  s.   ø€ ð 
ð 
ð 
àð
 ˜ˆ}ˆ}ð ð ˆ}ˆ}r3   )rÞ   Ú__mro__rh   r  r”   ri   r^   r“   Ú
issubclassr7   rk   )rc   Úprocessr  rš   r°   Úsr�  s         @r2   Úclass_hierarchyr–  X  s?  ø€ ð ˆ5€DÝ�3”;ÑÔ€GØ
ð Ø�KŠK‰MŒMˆØ9Ð9Ð9Ð9˜AœKÐ9Ñ9Ô9ˆàð 	ð 	ˆAØ�NŠN˜1ÑÔÐØ�HŠH�Q‰KŒKˆKˆKàŒ<˜:Ò%Ð%­W°QÐ8HÑ-IÔ-IÐ%Øð
ð 
ð 
ð 
õ " !¥TÑ*Ô*ð)�× Ò Ñ"Ô"Ð"à×%Ò% aÑ(Ô(ð
ñ 
ô 
ð 
	ð 
	ˆAð �NŠN˜1ÑÔÐØ�HŠH�Q‰KŒKˆKˆKð+ ð õ, �‰:Œ:Ðr3   c              #  ó~   K  — t          | ¦  «        }|D ](}| j        D ]}||j        v r||j        |         fV —  nŒŒ)dS )zÍiterate all the keys and attributes associated
    with a class, without using getattr().

    Does not use getattr() so that class-sensitive
    descriptors (i.e. property.__get__()) are not called.

    N)Údirr’  r8   )rc   ÚkeysÚkeyr  s       r2   Úiterate_attributesr›  ~  sl   è è € õ ˆs‰8Œ8€DØð ð ˆØ”ð 	ð 	ˆAØ�a”jÐ Ð Ø˜AœJ sœOÐ,Ð,Ð,Ð,Ø�ð !øðð r3   ú
self.proxyc                ó¶  ‡ ‡— |r|}n ‰€dŠˆ ˆfd„t          |¦  «        D ¦   «         }|D �]-}	 t          ||¦  «        }t          |d¦  «        sŒ%t          |d|¦  «        }t          t          j        |¦  «        }	n# t          $ r Y Œ]w xY w	 t          j        |	¦  «        }
t          j	        |
d         ¦  «        }t          j	        |
d         dd…         ¦  «        }n# t          $ r d}d	}Y nw xY wd
t          ¦   «         z  }|dur||ipi }t          ||¦  «         	 |	j        ||         _        n# t          $ r Y nw xY wt          ‰ |||         ¦  «         �Œ/dS )z9Automates delegation of __specials__ for a proxying type.N)ra   Ú__del__Ú__getattribute__Ú__metaclass__r„  r‡  c                ó�   •— g | ]B}|                      d ¦  «        r+|                     d ¦  «        rt          ‰|¦  «        s|‰v¯@|‘ŒCS )r¾   )Ú
startswithÚendswithr“   )rx   rD   Úinto_clsÚskips     €€r2   rh  z0monkeypatch_proxied_specials.<locals>.<listcomp>¤  sl   ø€ ð 	
ð 	
ð 	
àà—’˜TÑ"Ô"ð		
ð
 —J’J˜tÑ$Ô$ð	
õ   ¨!Ñ,Ô,ð	
ð ˜T�M�Mð ð "�M�Mr3   r(  r¿   r   r   z(self, *args, **kw)z(*args, **kw)z?def %(method)s%(fn_args)s: return %(name)s.%(method)s%(d_args)s)r˜  r:   r“   r	   rÊ   rË   r	  r   rÂ   rD  r  Úlocalsræ   rÍ   Úsetattr)r¤  Úfrom_clsr¥  Úonlyrº   Úfrom_instanceÚdundersrK  Úmaybe_fnr«   rÏ   Úfn_argsÚd_argsÚpyrÐ   s   ` `            r2   Úmonkeypatch_proxied_specialsr°  Ž  sß  øø€ ð ð 
Øˆˆàˆ<ðˆDð	
ð 	
ð 	
ð 	
ð 	
å˜‘]”]ð	
ñ 	
ô 	
ˆð ð /ñ /ˆð	Ý˜x¨Ñ0Ô0ˆHÝ˜8 ZÑ0Ô0ð ØÝ˜x¨°XÑ>Ô>ˆHÝ•eÔ(¨(Ñ3Ô3ˆBˆBøåð 	ð 	ð 	ØˆHð	øøøð	%ÝÔ0°Ñ4Ô4ˆDÝÔ2°4¸´7Ñ;Ô;ˆGÝÔ1°$°q´'¸!¸"¸"´+Ñ>Ô>ˆFˆFøÝð 	%ð 	%ð 	%Ø+ˆGØ$ˆFˆFˆFð	%øøøð
3Ý5;±X´Xñ>ð 	ð  Ð%Ð?¨4°Ð*?ÐEÀ2ð 	õ 	ˆR�‰Œˆð	Ø')¤ˆC�ŒKÔ$Ð$øÝð 	ð 	ð 	ØˆDð	øøøå�˜& # f¤+Ñ.Ô.Ð.Ñ.ð?/ð /s<   ® A;Á+A;Á;
BÂBÂACÃC.Ã-C.ÄD0Ä0
D=Ä<D=c                óF   — t          | d| ¦  «        t          |d|¦  «        u S )z;Return True if the two methods are the same implementation.r¿   )r:   )Úmeth1Úmeth2s     r2   Úmethods_equivalentr´  Ñ  s0   € õ �5˜* eÑ,Ô,µØˆz˜5ñ1ô 1ð ð r3   c           	     óJ  — |s|st          d¦  «        ‚t          |t          ¦  «        rt          | |¦  «        r| S t          |pd„ t	          |¦  «        D ¦   «         ¦  «        }t          t	          | ¦  «        ¦  «        }t
          j        }t          |t          ¦  «        r|}n,|st          ¦   «         }t
          j        }nt          |¦  «        } ||                     |¦  «        |¦  «        r| S t          | t          ¦  «        s<|t
          j        u rdpd}t          | ›d|›dd 
                    |¦  «        ›�¦  «        ‚ G d„ d	¦  «        }|rd
|j        z   |_        t          ¦   «         }	t          | ¦  «        D ]r\  }
}|
|vrt          d|
z  ¦  «        ‚t          |¦  «        st          |
›d|›d�¦  «        ‚t          ||
t          |¦  «        ¦  «         |	                     |
¦  «         Œs ||	|¦  «        r|S t          dd 
                    ||	z
  ¦  «        z  ¦  «        ‚)aŽ  Ensure basic interface compliance for an instance or dict of callables.

    Checks that ``obj`` implements public methods of ``cls`` or has members
    listed in ``methods``. If ``required`` is not supplied, implementing at
    least one interface method is sufficient. Methods present on ``obj`` that
    are not in the interface are ignored.

    If ``obj`` is a dict and ``dict`` does not meet the interface
    requirements, the keys of the dictionary are inspected. Keys present in
    ``obj`` that are not in the interface will raise TypeErrors.

    Raises TypeError if ``obj`` does not meet the interface criteria.

    In all passing cases, an object with callable members is returned.  In the
    simple case, ``obj`` is returned as-is; if dict processing kicks in then
    an anonymous class is returned.

    obj
      A type, instance, or dictionary of callables.
    cls
      Optional, a type.  All public methods of cls are considered the
      interface.  An ``obj`` instance of cls will always pass, ignoring
      ``required``..
    methods
      Optional, a sequence of method names to consider as the interface.
    required
      Optional, a sequence of mandatory implementations. If omitted, an
      ``obj`` that provides at least one interface method is considered
      sufficient.  As a convenience, required may be a type, in which case
      all public methods of the type are required.

    z2a class or collection of method names are requiredc                ó<   — g | ]}|                      d ¦  «        °|‘ŒS )r�  )r¢  )rx   rD   s     r2   rh  z as_interface.<locals>.<listcomp>   s)   € ÐMÐMÐM a¸1¿<º<ÈÑ;LÔ;LÐM ÐMÐMÐMr3   zany ofzall ofz does not implement z: rp  c                  ó   — e Zd ZdZdS )ú(as_interface.<locals>.AnonymousInterfacezA callable-holding shell.N©r]   r^   r_   r`   rb   r3   r2   ÚAnonymousInterfacer¸    s   € € € € € Ø'Ð'Ð'Ð'r3   rº  Ú	Anonymousz%r: unknown in this interfacer8  z is not callablez,dictionary does not contain required keys %s)r  r6   r7   rg   r˜  ÚoperatorÚgeÚgtÚintersectionrÄ   r{   r]   Údictlike_iteritemsrC  r§  Ústaticmethodri   )r*   rc   rR  ÚrequiredÚ	interfaceÚimplementedÚcompliesÚ	qualifierrº  ÚfoundrK  rù   s               r2   Úas_interfacerÈ  Ù  sx  € ðB ð N�wð NÝÐLÑMÔMÐMå�#•tÑÔð ¥¨C°Ñ!5Ô!5ð Øˆ
å�GÐMÐMÐM­3¨s©8¬8ÐMÑMÔMÑNÔN€IÝ•c˜#‘h”h‘-”-€KåŒ{€HÝ�(�DÑ!Ô!ð !ØˆˆØð !Ý‘5”5ˆÝ”;ˆˆå�x‘=”=ˆà€x�×(Ò(¨Ñ3Ô3°XÑ>Ô>ð Øˆ
õ �c�4Ñ Ô ð 
Ø¥¤Ð+Ð8°ÐD¸Hˆ	Ýàˆsˆs�I�I�I˜tŸyšy¨Ñ3Ô3Ð3ð5ñ
ô 
ð 	
ð
(ð (ð (ð (ð (ñ (ô (ð (ð ð AØ&1°C´LÑ&@ÐÔ#Ý‰EŒE€Eå*¨3Ñ/Ô/ð ð ‰ˆ�Ø˜Ð"Ð"ÝÐ;¸fÑDÑEÔEÐEÝ˜‰~Œ~ð 	FÝ°v°v°v¸t¸t¸tÐDÑEÔEÐEÝÐ" F­L¸Ñ,>Ô,>Ñ?Ô?Ð?Ø�	Š	�&ÑÔÐÐà€x��xÑ Ô ð "Ø!Ð!å
Ø6Ø
�)Š)�H˜uÑ$Ñ
%Ô
%ñ	&ñô ð r3   Ú_GFDzgeneric_fn_descriptor[Any]c                  ó¨   — e Zd ZU dZded<   ded<   ded<   dd d
„Zed!d„¦   «         Zed"d„¦   «         Zd#d„Zerd$d„Z	d%d„Z
d&d„Zed'd„¦   «         ZdS )(Úgeneric_fn_descriptorag  Descriptor which proxies a function when the attribute is not
    present in dict

    This superclass is organized in a particular way with "memoized" and
    "non-memoized" implementation classes that are hidden from type checkers,
    as Mypy seems to not be able to handle seeing multiple kinds of descriptor
    classes used for the same attribute.

    úCallable[..., _T_co]ÚfgetúOptional[str]r`   r>   r]   NÚdocc                óH   — || _         |p|j        | _        |j        | _        d S r.   ©rÍ  r`   r]   ©rN   rÍ  rÏ  s      r2   rð   zgeneric_fn_descriptor.__init__A  s$   € ØˆŒ	ØÐ*˜dœlˆŒØœˆŒˆˆr3   rN   rÉ  r*   rI   rc   r   r+   c                ó   — d S r.   rb   ©rN   r*   rc   s      r2   Ú__get__zgeneric_fn_descriptor.__get__F  ó   € àˆr3   rJ  r"   c                ó   — d S r.   rb   rÔ  s      r2   rÕ  zgeneric_fn_descriptor.__get__J  rÖ  r3   úUnion[_GFD, _T_co]c                ó   — t          ¦   «         ‚r.   ©ÚNotImplementedErrorrÔ  s      r2   rÕ  zgeneric_fn_descriptor.__get__N  ó   € Ý!Ñ#Ô#Ð#r3   ÚinstancerR   c                ó   — d S r.   rb   ©rN   rÝ  rR   s      r2   Ú__set__zgeneric_fn_descriptor.__set__S  ó   € ØˆCr3   c                ó   — d S r.   rb   )rN   rÝ  s     r2   Ú
__delete__z generic_fn_descriptor.__delete__V  rá  r3   c                ó   — t          ¦   «         ‚r.   rÚ  ©rN   r*   s     r2   Ú_resetzgeneric_fn_descriptor._resetY  rÜ  r3   rº   c                ó   — t          ¦   «         ‚r.   rÚ  ©rc   r*   rº   s      r2   Úresetzgeneric_fn_descriptor.reset\  s   € å!Ñ#Ô#Ð#r3   r.   )rÍ  rÌ  rÏ  rÎ  )rN   rÉ  r*   rI   rc   r   r+   rÉ  )r*   rJ  rc   r   r+   r"   )rN   rÉ  r*   r   rc   r   r+   rØ  ©rÝ  r   rR   r   r+   rI   ©rÝ  r   r+   rI   )r*   r   r+   rI   )r*   r   rº   r>   r+   rI   )r]   r^   r_   r`   r5   rð   r   rÕ  r   rà  rã  ræ  Úclassmethodré  rb   r3   r2   rË  rË  2  s  € € € € € € ðð ð ÐÐÑØÐÐÑØ€M€M�Mð&ð &ð &ð &ð &ð
 ðð ð ñ „Xðð ðð ð ñ „Xðð$ð $ð $ð $ð ð ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð$ð $ð $ð $ð ð$ð $ð $ñ „[ð$ð $ð $r3   rË  c                  ó    — e Zd ZdZesd„ ZdS dS )Ú_non_memoized_propertyzÉa plain descriptor that proxies a function.

    primary rationale is to provide a plain attribute that's
    compatible with memoized_property which is also recognized as equivalent
    by mypy.

    c                ó4   — |€| S |                       |¦  «        S r.   ©rÍ  rÔ  s      r2   rÕ  z_non_memoized_property.__get__l  s   € Øˆ{Ø�Ø—9’9˜S‘>”>Ð!r3   N)r]   r^   r_   r`   r   rÕ  rb   r3   r2   rî  rî  a  sA   € € € € € ðð ð ð "ð	"ð 	"ð 	"ð 	"ð 	"ð"ð "r3   rî  c                  ó8   — e Zd ZdZesd„ Zd„ Zed„ ¦   «         ZdS )Ú_memoized_propertyz2A read-only @property that is only evaluated once.c                óV   — |€| S |                       |¦  «        x|j        | j        <   }|S r.   )rÍ  r8   r]   ©rN   r*   rc   Úresults       r2   rÕ  z_memoized_property.__get__w  s.   € Øˆ{Ø�Ø37·9²9¸S±>´>ÐAˆCŒL˜œÑ'¨&ØˆMr3   c                óF   — t                                || j        ¦  «         d S r.   )rò  ré  r]   rå  s     r2   ræ  z_memoized_property._reset}  s    € Ý× Ò   d¤mÑ4Ô4Ð4Ð4Ð4r3   c                ó<   — |j                              |d ¦  «         d S r.   )r8   rh   rè  s      r2   ré  z_memoized_property.reset€  s    € àŒ×Ò˜˜tÑ$Ô$Ð$Ð$Ð$r3   N)	r]   r^   r_   r`   r   rÕ  ræ  rì  ré  rb   r3   r2   rò  rò  r  s[   € € € € € Ø<Ð<àð ð	ð 	ð 	ð5ð 5ð 5ð ð%ð %ñ „[ð%ð %ð %r3   rò  c                ó.   ‡ — ˆ fd„}t          |‰ ¦  «        S )zàDecorate a method memoize its return value.

    Best applied to no-arg methods: memoization is not sensitive to
    argument values, and will always return the same value even when
    called with different arguments.

    c                óz   •‡—  ‰| g|¢R i |¤ŽŠˆfd„}‰j         |_         ‰j        |_        || j        ‰j         <   ‰S )Nc                 ó   •— ‰S r.   rb   ©Úar‹  rõ  s     €r2   Úmemoz6memoized_instancemethod.<locals>.oneshot.<locals>.memo­  s   ø€ ØˆMr3   )r]   r`   r8   ©rN   r*  r‹  rý  rõ  r«   s       @€r2   Úoneshotz(memoized_instancemethod.<locals>.oneshotª  sc   øø€ Ø��DÐ&˜4Ð&Ð&Ð& 2Ð&Ð&ˆð	ð 	ð 	ð 	ð 	ð œˆŒØ”zˆŒØ%)ˆŒ�b”kÑ"Øˆr3   r   )r«   rÿ  s   ` r2   Úmemoized_instancemethodr   ¡  s.   ø€ ð	ð 	ð 	ð 	ð 	õ ˜' 2Ñ&Ô&Ð&r3   c                  ó’   — e Zd ZU dZesdZ e¦   «         Zded<   dd„Z	dd„Z
dd„Z G d„ dee         ¦  «        Zedd„¦   «         ZdS )ÚHasMemoizedzA mixin class that maintains the names of memoized elements in a
    collection for easy cache clearing, generative, etc.

    rb   zFrozenSet[str]Ú_memoized_keysr+   rI   c                óP   — | j         D ]}| j                             |d ¦  «         Œd S r.   )r  r8   rh   ©rN   râ   s     r2   Ú_reset_memoizationszHasMemoized._reset_memoizationsÅ  s9   € ØÔ'ð 	*ð 	*ˆDØŒM×Ò˜d DÑ)Ô)Ð)Ð)ð	*ð 	*r3   c                ó0   — | j         D ]}|| j        vsJ ‚Œd S r.   )r  r8   r  s     r2   Ú_assert_no_memoizationsz#HasMemoized._assert_no_memoizationsÉ  s4   € ØÔ'ð 	-ð 	-ˆDØ˜tœ}Ð,Ð,Ð,Ð,Ð,ð	-ð 	-r3   rš  r>   rR   r   c                ó<   — || j         |<   | xj        |hz  c_        d S r.   )r8   r  )rN   rš  rR   s      r2   Ú_set_memoized_attributez#HasMemoized._set_memoized_attributeÍ  s*   € Ø"ˆŒ�cÑØÐÔ ˜uÑ$ÐÔÐÐr3   c                  ór   — e Zd ZU dZded<   ded<   ded<   ddd
„Zedd„¦   «         Zedd„¦   «         Zd„ ZdS )úHasMemoized.memoized_attributezTA read-only @property that is only evaluated once.

        :meta private:

        úCallable[..., _T]rÍ  rÎ  r`   r>   r]   NrÏ  c                óH   — || _         |p|j        | _        |j        | _        d S r.   rÑ  rÒ  s      r2   rð   z'HasMemoized.memoized_attribute.__init__Ü  s$   € ØˆDŒIØÐ. $¤,ˆDŒLØ œMˆDŒMˆMˆMr3   rN   r'   r*   rI   rc   r   r+   c                ó   — d S r.   rb   rÔ  s      r2   rÕ  z&HasMemoized.memoized_attribute.__get__á  ó   € àˆCr3   r!   c                ó   — d S r.   rb   rÔ  s      r2   rÕ  z&HasMemoized.memoized_attribute.__get__å  r  r3   c                ó‚   — |€| S |                       |¦  «        x|j        | j        <   }|xj        | j        hz  c_        |S r.   )rÍ  r8   r]   r  rô  s       r2   rÕ  z&HasMemoized.memoized_attribute.__get__é  sF   € Øˆ{Ø�Ø37·9²9¸S±>´>ÐAˆCŒL˜œÑ'¨&ØÐÔ 4¤= /Ñ1ÐÔØˆMr3   r.   )rÍ  r  rÏ  rÎ  )rN   r'   r*   rI   rc   r   r+   r'   )r*   r   rc   r   r+   r!   )r]   r^   r_   r`   r5   rð   r   rÕ  rb   r3   r2   Úmemoized_attributer  Ñ  s«   € € € € € € ð	ð 	ð 	 ÐÐÑØÐÐÑØˆˆ‰ð	*ð 	*ð 	*ð 	*ð 	*ð
 
ð	ð 	ð 	ñ 
Œð	ð 
ð	ð 	ð 	ñ 
Œð	ð	ð 	ð 	ð 	ð 	r3   r  r«   r$   c                ó0   ‡— dˆfd„}t          |‰¦  «        S )zMDecorate a method memoize its return value.

        :meta private:

        rN   r   r*  r‹  r+   c                ó¦   •‡—  ‰| g|¢R i |¤ŽŠˆfd„}‰j         |_         ‰j        |_        || j        ‰j         <   | xj        ‰j         hz  c_        ‰S )Nc                 ó   •— ‰S r.   rb   rû  s     €r2   rý  zBHasMemoized.memoized_instancemethod.<locals>.oneshot.<locals>.memoû  s   ø€ Ø�r3   )r]   r`   r8   r  rþ  s       @€r2   rÿ  z4HasMemoized.memoized_instancemethod.<locals>.oneshotø  s{   øø€ Ø�R˜Ð*˜tÐ*Ð*Ð* rÐ*Ð*ˆFðð ð ð ð ð œKˆDŒMØœ:ˆDŒLØ)-ˆDŒM˜"œ+Ñ&ØÐÔ B¤K =Ñ0ÐÔØˆMr3   )rN   r   r*  r   r‹  r   r+   r   r   )rc   r«   rÿ  s    ` r2   r   z#HasMemoized.memoized_instancemethodð  s3   ø€ ð
	ð 
	ð 
	ð 
	ð 
	ð 
	õ ˜g rÑ*Ô*Ð*r3   Nr\   )rš  r>   rR   r   r+   rI   ©r«   r$   r+   r$   )r]   r^   r_   r`   r   ra   Ú	frozensetr  r5   r  r  r
  Úmemoized_propertyr!   r  rì  r   rb   r3   r2   r  r  ¸  sÔ   € € € € € € ðð ð
 ð ð ˆ	à%. Y¡[¤[€NÐ0Ð0Ð0Ñ0ð*ð *ð *ð *ð-ð -ð -ð -ð%ð %ð %ð %ðð ð ð ð Ð.¨rÔ2ñ ô ð ð> ð+ð +ð +ñ „[ð+ð +ð +r3   r  c                  ó$   — e Zd ZdZdZd„ Zd
d„Zd	S )ÚMemoizedSlotszÇApply memoized items to an object using a __getattr__ scheme.

    This allows the functionality of memoized_property and
    memoized_instancemethod to be available to a class using __slots__.

    rb   c                ó    — t          |¦  «        ‚r.   )r	  )rN   rš  s     r2   Ú_fallback_getattrzMemoizedSlots._fallback_getattr  s   € Ý˜SÑ!Ô!Ð!r3   rš  r>   r+   r   c                ó°  ‡ ‡‡— ‰                      d¦  «        s‰                      d¦  «        rt          ‰¦  «        ‚t          ‰ j        d‰› �¦  «        r. t	          ‰ d‰› �¦  «        ¦   «         }t          ‰ ‰|¦  «         |S t          ‰ j        d‰› �¦  «        r(t	          ‰ d‰› �¦  «        Šˆˆˆ fd„}‰j        |_        |S ‰                      ‰¦  «        S )NÚ_memoized_attr_Ú_memoized_method_c                 óv   •‡—  ‰| i |¤ŽŠˆfd„}‰j         |_         ‰j        |_        t          ‰‰|¦  «         ‰S )Nc                 ó   •— ‰S r.   rb   rû  s     €r2   rý  z8MemoizedSlots.__getattr__.<locals>.oneshot.<locals>.memo,  s   ø€ Ø!�Mr3   )r]   r`   r§  )r*  r‹  rý  rõ  r«   rš  rN   s      @€€€r2   rÿ  z*MemoizedSlots.__getattr__.<locals>.oneshot)  sY   øø€ Ø˜˜T˜ R˜˜�ð"ð "ð "ð "ð "ð !#¤�”Ø!œz�”Ý˜˜c 4Ñ(Ô(Ð(Ø�r3   )r¢  r	  r“   r†   r:   r§  r`   r  )rN   rš  rR   rÿ  r«   s   ``  @r2   Ú__getattr__zMemoizedSlots.__getattr__  s  øøø€ Ø�>Š>Ð+Ñ,Ô,ð 	/°·²Øñ1
ô 1
ð 	/õ ! Ñ%Ô%Ð%õ �T”^Ð%<°sÐ%<Ð%<Ñ=Ô=ð 	/Ø:•G˜DÐ"9°CÐ"9Ð"9Ñ:Ô:Ñ<Ô<ˆEÝ�D˜#˜uÑ%Ô%Ð%ØˆLÝ�T”^Ð%>¸Ð%>Ð%>Ñ?Ô?ð 	/Ý˜Ð8°3Ð8Ð8Ñ9Ô9ˆBð	ð 	ð 	ð 	ð 	ð 	ð 	ð !œjˆGŒOØˆNà×)Ò)¨#Ñ.Ô.Ð.r3   N)rš  r>   r+   r   )r]   r^   r_   r`   ra   r  r#  rb   r3   r2   r  r    sH   € € € € € ðð ð €Ið"ð "ð "ð/ð /ð /ð /ð /ð /r3   r  c                óÒ   — t          | t          ¦  «        rD|                      ¦   «                              ¦   «         } | dv rdS | dv rdS t	          d| z  ¦  «        ‚t          | ¦  «        S )N)ÚtrueÚyesÚonÚyÚtÚ1T)ÚfalseÚnoÚoffry   ÚfÚ0FzString is not true/false: %r)r6   r>   Ústriprw   Ú
ValueErrorr„   r1   s    r2   Úasboolr2  ;  sp   € Ý�#•sÑÔð CØ�iŠi‰kŒk×ÒÑ!Ô!ˆØÐ6Ð6Ð6Ø�4ØÐ9Ð9Ð9Ø�5åÐ;¸cÑAÑBÔBÐBÝ�‰9Œ9Ðr3   Útextú!Callable[[str], Union[str, bool]]c                 ó   ‡ — dˆ fd„}|S )zqReturn a callable that will evaluate a string as
    boolean, or one of a set of "alternate" string values.

    r*   r>   r+   úUnion[str, bool]c                ó.   •— | ‰v r| S t          | ¦  «        S r.   )r2  )r*   r3  s    €r2   Úbool_or_valuez"bool_or_str.<locals>.bool_or_valueM  s   ø€ Ø�$ˆ;ˆ;ØˆJå˜#‘;”;Ðr3   )r*   r>   r+   r6  rb   )r3  r8  s   ` r2   Úbool_or_strr9  G  s)   ø€ ðð ð ð ð ð ð Ðr3   rR   úOptional[int]c                ó(   — | €| S t          | ¦  «        S )zCoerce to integer.)r­   )rR   s    r2   Úasintr<  V  s   € ð €}ØˆÝˆu‰:Œ:Ðr3   r‹  rš  rP   Ú
flexi_boolÚdestúOptional[Dict[str, Any]]rI   c                óú   — |€| }|| v rnt          |t          ¦  «        rt          | |         |¦  «        sG| |         �=|t          u r|rt          | |         ¦  «        ||<   dS  || |         ¦  «        ||<   dS dS dS dS )zµIf 'key' is present in dict 'kw', coerce its value to type 'type\_' if
    necessary.  If 'flexi_bool' is True, the string '0' is considered false
    when coercing to boolean.
    N)r6   r7   r„   r2  )r‹  rš  rP   r=  r>  s        r2   Úcoerce_kw_typerA  ^  sœ   € ð €|Øˆð 	ˆrˆ	ˆ	Ý˜E¥4Ñ(Ô(ð 	Ý0:¸2¸c¼7ÀEÑ0JÔ0Jð 	àˆsŒGÐà•Dˆ=ˆ=˜Zˆ=Ý˜r #œw™œˆD�‰IˆIˆIà˜˜b œg™œˆD�‰IˆIˆIð 	ˆ	àÐð 	ˆ	r3   c                ó`   ‡ — t          |¦  «        }|ft          ˆ fd„|D ¦   «         ¦  «        z   S )zbProduce a tuple structure that is cacheable using the __dict__ of
    obj to retrieve values

    c              3  óH   •K  — | ]}|‰j         v ¯|‰j         |         fV — Œd S r.   ©r8   ©rx   Úkr*   s     €r2   rz   z"constructor_key.<locals>.<genexpr>~  sC   øè è € ð ð Ø!"¨q°C´LÐ/@Ð/@ˆˆCŒL˜ŒOÐÐ/@Ð/@Ð/@Ð/@ðð r3   )r  r•   )r*   rc   rÑ   s   `  r2   Úconstructor_keyrG  x  sS   ø€ õ
 ˜3ÑÔ€EØˆ6•Eð ð ð ð Ø&+ðñ ô ñ ô ñ ð r3   r*  c                óš   ‡ — t          |¦  «        }|                     ˆ fd„|                     |¦  «        D ¦   «         ¦  «          ||i |¤ŽS )z„Instantiate cls using the __dict__ of obj as constructor arguments.

    Uses inspect to match the named arguments of ``cls``.

    c              3  óH   •K  — | ]}|‰j         v ¯|‰j         |         fV — Œd S r.   rD  rE  s     €r2   rz   z#constructor_copy.<locals>.<genexpr>‹  sC   øè è € ð ð Ø!"¸aÀ3Ä<Ð>OÐ>OˆˆCŒL˜ŒOÐÐ>OÐ>OÐ>OÐ>Oðð r3   )r  rB   Ú
difference)r*   rc   r*  r‹  rÑ   s   `    r2   Úconstructor_copyrK  ƒ  ss   ø€ õ ˜3ÑÔ€EØ‡I‚Ið ð ð ð Ø&+×&6Ò&6°rÑ&:Ô&:ðñ ô ñ ô ð ð ˆ3�Ð˜ÐÐÐr3   úCallable[[], int]c                 ód   ‡‡— t          j        ¦   «         Št          j        d¦  «        Šˆˆfd„} | S )z%Return a threadsafe counter function.r   c                 óZ   •— ‰5  t          ‰ ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r.   )Únext)ÚcounterÚlocks   €€r2   Ú_nextzcounter.<locals>._next˜  sv   ø€ Øð 	!ð 	!Ý˜‘=”=ð	!ð 	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   „  $§$)Ú	threadingÚLockr¢   Úcount)rR  rP  rQ  s    @@r2   rP  rP  ‘  sG   øø€ õ Œ>ÑÔ€DÝŒo˜aÑ Ô €Gð!ð !ð !ð !ð !ð !ð €Lr3   Úspecimenrj  úOptional[Type[Any]]c                óä  — t          | d¦  «        r/| j        �!t          | j        t          ¦  «        rt          S | j        S t	          | t
          ¦  «        rt          nt          } || t          ¦  «        rt          S  || t          ¦  «        rt          S  || t          ¦  «        rt          S t          | d¦  «        rt          S t          | d¦  «        rt          S t          | d¦  «        rt          S |S )zÄGiven an instance or class, guess if it is or is acting as one of
    the basic collection types: list, set and dict.  If the __emulates__
    property is present, return that preferentially.
    Ú__emulates__Nr”   ri   rg   )r“   rY  r“  rg   r6   r7   rÞ   rÄ   )rV  rj  Úisas      r2   Úduck_type_collectionr[  Ÿ  só   € õ ˆx˜Ñ(Ô(ð )àÔ Ð,µØÔ!¥3ñ2
ô 2
Ð,õ ˆJàÔ(Ð(å" 8­TÑ2Ô2Ð
B�*ˆ*½
€CØ
€sˆ8•TÑÔð ÝˆØ	ˆˆX•sÑ	Ô	ð Ýˆ
Ø	ˆˆX•tÑ	Ô	ð Ýˆåˆx˜Ñ"Ô"ð ÝˆÝ	�˜5Ñ	!Ô	!ð Ýˆ
Ý	�˜5Ñ	!Ô	!ð Ýˆàˆr3   rá   Úargtypeú'Union[Tuple[Type[Any], ...], Type[Any]]rº   c           
     ó6  — t          | |¦  «        r| S t          |t          ¦  «        rHt          j        d|›dd                     d„ |D ¦   «         ¦  «        ›dt          | ¦  «        ›d�¦  «        ‚t          j        d|›d|›dt          | ¦  «        ›d�¦  «        ‚)	Nz
Argument 'z ' is expected to be one of type z or c              3  ó    K  — | ]	}d |z  V — Œ
dS )z'%s'Nrb   )rx   rü  s     r2   rz   z"assert_arg_type.<locals>.<genexpr>Ë  s&   è è € Ð$AÐ$A°A V¨a¡ZÐ$AÐ$AÐ$AÐ$AÐ$AÐ$Ar3   z, got 'ú'z' is expected to be of type 'z', got ')r6   r•   r    ÚArgumentErrorr{   r7   )rá   r\  rº   s      r2   Úassert_arg_typerb  Â  s¹   € õ �#�wÑÔð Øˆ
å�g�uÑ%Ô%ð 		ÝÔ#Ð#à�4�4˜ŸšÐ$AÐ$A¸Ð$AÑ$AÔ$AÑAÔAÐAÐAÅ4ÈÁ9Ä9À9À9ðNñô ð õ
 Ô#Ð#à�4�4˜˜˜¥$ s¡)¤) ) )ð-ñô ð r3   c           	     ó®  ‡ ‡— t          ‰ d¦  «        r!t          ‰                      ¦   «         ¦  «        S t          ‰ dt          ‰ dd¦  «        ¦  «        Š‰€t	          d‰ z  ¦  «        ‚t          ‰ d¦  «        rˆ ˆfd„} |¦   «         S t          ‰ d¦  «        r-t          ˆfd	„‰                      ¦   «         D ¦   «         ¦  «        S t	          d‰ z  ¦  «        ‚)
z?Return a (key, value) iterator for almost any dict-like object.rv  Ú__getitem__r9   NzObject '%r' is not dict-likeÚiterkeysc               3  ó`   •K  — ‰                      ¦   «         D ]} ‰€J ‚|  ‰| ¦  «        fV — Œd S r.   )re  )rš  ÚdictlikeÚgetters    €€r2   Úiteratorz$dictlike_iteritems.<locals>.iteratorà  sT   øè è € Ø×(Ò(Ñ*Ô*ð 'ð '�ØÐ)Ð)Ð)Ø˜6˜6 #™;œ;Ð&Ð&Ð&Ð&Ð&ð'ð 'r3   r™  c              3  ó2   •K  — | ]}| ‰|¦  «        fV — Œd S r.   rb   )rx   rš  rh  s     €r2   rz   z%dictlike_iteritems.<locals>.<genexpr>ç  s0   øè è € ÐBÐB¨3�S˜&˜& ™+œ+Ð&ÐBÐBÐBÐBÐBÐBr3   )r“   rÞ   rv  r:   r  Úiterr™  )rg  ri  rh  s   ` @r2   rÀ  rÀ  Ô  s÷   øø€ õ ˆx˜Ñ!Ô!ð &Ý�H—N’NÑ$Ô$Ñ%Ô%Ð%å�X˜}­g°hÀÀtÑ.LÔ.LÑMÔM€FØ€~ÝÐ6¸ÑAÑBÔBÐBåˆx˜Ñ$Ô$ð Cð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð
 ˆx‰zŒzÐÝ	�˜6Ñ	"Ô	"ð CÝÐBÐBÐBÐB°(·-²-±/´/ÐBÑBÔBÑBÔBÐBåÐ6¸ÑAÑBÔBÐBr3   c                  ó:   ‡ — e Zd ZU dZded<   dˆ fd„Zddd„Zˆ xZS )ÚclasspropertyaA  A decorator that behaves like @property except that operates
    on classes rather than instances.

    The decorator is currently special when using the declarative
    module, but note that the
    :class:`~.sqlalchemy.ext.declarative.declared_attr`
    decorator should be used for this purpose with declarative.

    úCallable[[Any], Any]rÍ  rá   r   r‹  c                óZ   •—  t          ¦   «         j        |g|¢R i |¤Ž |j        | _        d S r.   )Úsuperrð   r`   )rN   rÍ  rá   r‹  r†   s       €r2   rð   zclassproperty.__init__ù  s7   ø€ Ø�‰ŒÔ˜Ð* Ð*Ð*Ð* rÐ*Ð*Ð*Ø”|ˆŒˆˆr3   Nr*   rc   úOptional[type]r+   c                ó,   — |                       |¦  «        S r.   rð  rÔ  s      r2   rÕ  zclassproperty.__get__ý  s   € Ø�yŠy˜‰~Œ~Ðr3   )rÍ  rn  rá   r   r‹  r   r.   )r*   r   rc   rq  r+   r   )r]   r^   r_   r`   r5   rð   rÕ  Ú__classcell__©r†   s   @r2   rm  rm  ì  sp   ø€ € € € € € ðð ð ÐÐÑð$ð $ð $ð $ð $ð $ðð ð ð ð ð ð ð ð r3   rm  c                  ó&   — e Zd Zdd„Zdd	„Zdd„ZdS )Úhybridpropertyr   r  c                ó"   — || _         || _        d S r.   )r   Úclslevel©rN   r   s     r2   rð   zhybridproperty.__init__  s   € ØˆŒ	ØˆŒˆˆr3   rÝ  r   Úownerr+   r!   c                ó^   — |€|                       |¦  «        }|S |                      |¦  «        S r.   ©rx  r   ©rN   rÝ  rz  Úclsvals       r2   rÕ  zhybridproperty.__get__  ó0   € ØÐØ—]’] 5Ñ)Ô)ˆFØˆMà—9’9˜XÑ&Ô&Ð&r3   rƒ   úhybridproperty[_T]c                ó   — || _         | S r.   ©rx  ry  s     r2   Ú
classlevelzhybridproperty.classlevel  ó   € ØˆŒØˆr3   N©r   r  ©rÝ  r   rz  r   r+   r!   )r   rƒ   r+   r€  )r]   r^   r_   rð   rÕ  rƒ  rb   r3   r2   rv  rv    sP   € € € € € ðð ð ð ð'ð 'ð 'ð 'ðð ð ð ð ð r3   rv  c                  ó6   — e Zd Zdd„Zdd	„Zdd„Zdd„Zdd„ZdS )Úrw_hybridpropertyr   r  c                ó0   — || _         || _        d | _        d S r.   )r   rx  Úsetfnry  s     r2   rð   zrw_hybridproperty.__init__  s   € ØˆŒ	ØˆŒØ37ˆŒ
ˆ
ˆ
r3   rÝ  r   rz  r+   r!   c                ó^   — |€|                       |¦  «        }|S |                      |¦  «        S r.   r|  r}  s       r2   rÕ  zrw_hybridproperty.__get__  r  r3   rR   rI   c                óD   — | j         €J ‚|                       ||¦  «         d S r.   ©rŠ  rß  s      r2   rà  zrw_hybridproperty.__set__  s*   € ØŒzÐ%Ð%Ð%Ø�
Š
�8˜UÑ#Ô#Ð#Ð#Ð#r3   rƒ   úrw_hybridproperty[_T]c                ó   — || _         | S r.   r�  ry  s     r2   Úsetterzrw_hybridproperty.setter#  s   € ØˆŒ
Øˆr3   c                ó   — || _         | S r.   r‚  ry  s     r2   rƒ  zrw_hybridproperty.classlevel'  r„  r3   Nr…  r†  rê  )r   rƒ   r+   rŽ  )r]   r^   r_   rð   rÕ  rà  r�  rƒ  rb   r3   r2   rˆ  rˆ    sx   € € € € € ð8ð 8ð 8ð 8ð
'ð 'ð 'ð 'ð$ð $ð $ð $ðð ð ð ðð ð ð ð ð r3   rˆ  c                  ó*   — e Zd ZdZdd„Zdd	„Zdd„ZdS )Úhybridmethodz/Decorate a function as cls- or instance- level.r   r  c                ó0   — |x| _         | _        || _        d S r.   )r   r¿   rx  ry  s     r2   rð   zhybridmethod.__init__/  s   € Ø$(Ð(ˆŒ	�D”MØˆŒˆˆr3   rÝ  r   rz  r+   c                ó|   — |€ | j                              ||j        ¦  «        S | j                             ||¦  «        S r.   )rx  rÕ  r†   r   )rN   rÝ  rz  s      r2   rÕ  zhybridmethod.__get__3  s:   € ØÐØ”=×(Ò(¨°´Ñ@Ô@Ð@à”9×$Ò$ X¨uÑ5Ô5Ð5r3   rƒ   úhybridmethod[_T]c                ó   — || _         | S r.   r‚  ry  s     r2   rƒ  zhybridmethod.classlevel9  r„  r3   Nr…  )rÝ  r   rz  r   r+   r  )r   rƒ   r+   r–  )r]   r^   r_   r`   rð   rÕ  rƒ  rb   r3   r2   r“  r“  ,  sV   € € € € € Ø9Ð9ðð ð ð ð6ð 6ð 6ð 6ðð ð ð ð ð r3   r“  c                  ój   — e Zd ZU dZded<   i Zded<    ej        ¦   «         Z	 	 ddd„Z	d„ Z
d„ Zd„ ZdS )ÚsymbolaI  A constant symbol.

    >>> symbol('foo') is symbol('foo')
    True
    >>> symbol('foo')
    <symbol 'foo>

    A slight refinement of the MAGICCOOKIE=object() pattern.  The primary
    advantage of symbol() is its repr().  They are also singletons.

    Repeated calls of symbol('name') will all return the same instance.

    r>   rº   zDict[str, symbol]ÚsymbolsNrÏ  rÎ  Ú	canonicalr:  r+   c                ó€  — | j         5  | j                             |¦  «        }|€ct          |t          ¦  «        sJ ‚|€t          |¦  «        }t                               t          |¦  «        }||_	        |r||_
        || j        |<   n|r||k    rt          d|›d|› �¦  «        ‚|cd d d ¦  «         S # 1 swxY w Y   d S )Nz#Can't replace canonical symbol for z with new int value )Ú_lockrš  r9   r6   r>   Úhashr­   Ú__new__r™  rº   r`   r  )rc   rº   rÏ  r›  r©   s        r2   rŸ  zsymbol.__new__R  s0  € ð ŒYð 	ð 	Ø”+—/’/ $Ñ'Ô'ˆCØˆ{Ý! $­Ñ,Ô,Ð,Ð,Ð,ØÐ$Ý $ T¡
¤
�IÝ—k’k¥&¨)Ñ4Ô4�Ø�”Øð &Ø"%�C”Kð %(�”˜DÑ!Ð!àð  ¨cÒ!1Ð!1Ý#ð:¸dð :ð :Ø.7ð:ð :ñô ð ð ð-	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˆBB3Â3B7Â:B7c                ó>   — t           | j        dt          | ¦  «        ffS )Nr=   )r™  rº   r­   rM   s    r2   Ú
__reduce__zsymbol.__reduce__p  s   € Ý˜œ	 3­¨D©	¬	Ð2Ð2Ð2r3   c                ó    — t          | ¦  «        S r.   rm  rM   s    r2   Ú__str__zsymbol.__str__s  s   € Ý�D‰zŒzÐr3   c                ó   — d| j         ›d�S )Nzsymbol(rq  ©rº   rM   s    r2   Ú__repr__zsymbol.__repr__v  s   € Ø'˜œÐ'Ð'Ð'Ð'r3   )NN)rº   r>   rÏ  rÎ  r›  r:  r+   r™  )r]   r^   r_   r`   r5   rš  rS  rT  r�  rŸ  r¡  r£  r¦  rb   r3   r2   r™  r™  >  s™   € € € € € € ðð ð €I€I�Ià!#€GÐ#Ð#Ð#Ñ#ØˆIŒNÑÔ€Eð
 "Ø#'ð	ð ð ð ð ð<3ð 3ð 3ðð ð ð(ð (ð (ð (ð (r3   r™  c                  ó   — e Zd Zdd„Zdd„ZdS )Ú_IntFlagMetaÚ	classnamer>   rš   úTuple[Type[Any], ...]Údict_rä   r‹  r   r+   rI   c                óv  — g x| _         }|                     ¦   «         D ]w\  }}t          |t          ¦  «        rt	          ||¬¦  «        }n%|                     d¦  «        st          d¦  «        ‚ŒQt          | ||¦  «         |                     |¦  «         Œxt          j
        d„ |D ¦   «         ¦  «        | _        d S )N)r›  r�  z#Expected integer values for IntFlagc                ó   — i | ]
}|j         |“ŒS rb   r¥  )rx   r©   s     r2   ú
<dictcomp>z)_IntFlagMeta.__init__.<locals>.<dictcomp>�  s   € Ð,Ð,Ð,˜sˆSŒX�sÐ,Ð,Ð,r3   )Ú_itemsrv  r6   r­   r™  r¢  r  r§  r”   r   ÚimmutabledictÚ__members__)	rc   r©  rš   r«  r‹  rv  rF  Úvr©   s	            r2   rð   z_IntFlagMeta.__init__{  sÇ   € ð  ÐˆŒ
�UØ—K’K‘M”Mð 	ð 	‰DˆAˆqÝ˜!�SÑ!Ô!ð Ý˜Q¨!Ð,Ñ,Ô,��Ø—\’\ #Ñ&Ô&ð ÝÐ EÑFÔFÐFàÝ�C˜˜CÑ Ô Ð Ø�LŠL˜ÑÔÐÐå&Ô4Ø,Ð, eÐ,Ñ,Ô,ñ
ô 
ˆŒˆˆr3   úIterator[symbol]c                ó    — t          d¦  «        ‚)Nz“iter not implemented to ensure compatibility with Python 3.11 IntFlag.  Please use __members__.  See https://github.com/python/cpython/issues/99304rÚ  rM   s    r2   Ú__iter__z_IntFlagMeta.__iter__’  s   € Ý!ð=ñ
ô 
ð 	
r3   N)
r©  r>   rš   rª  r«  rä   r‹  r   r+   rI   )r+   r³  )r]   r^   r_   rð   rµ  rb   r3   r2   r¨  r¨  z  s<   € € € € € ð
ð 
ð 
ð 
ð.
ð 
ð 
ð 
ð 
ð 
r3   r¨  c                  ó   — e Zd ZdZdS )Ú_FastIntFlagzÆAn 'IntFlag' copycat that isn't slow when performing bitwise
    operations.

    the ``FastIntFlag`` class will return ``enum.IntFlag`` under TYPE_CHECKING
    and ``_FastIntFlag`` otherwise.

    Nr¹  rb   r3   r2   r·  r·  š  s   € € € € € ðð ð ð r3   r·  )Ú	metaclass)ÚIntFlagÚ_EÚchoicesúDict[_E, List[Any]]Úresolve_symbol_namesúOptional[_E]c                ó´   — |                      ¦   «         D ]&\  }}| |u r|c S |r| |j        k    r|c S | |v r|c S Œ'| €dS t          j        d|› d| ›�¦  «        ‚)aO  Given a user parameter, parse the parameter into a chosen value
    from a list of choice objects, typically Enum values.

    The user argument can be a string name that matches the name of a
    symbol, or the symbol object itself, or any number of alternate choices
    such as True/False/ None etc.

    :param arg: the user argument.
    :param choices: dictionary of enum values to lists of possible
        entries for each.
    :param name: name of the argument.   Used in an :class:`.ArgumentError`
        that is raised if the parameter doesn't match any available argument.

    NzInvalid value for 'z': )rv  rº   r    ra  )rá   r»  rº   r½  Ú
enum_valueÚchoices         r2   Úparse_user_argument_for_enumrÂ  ¯  sŸ   € ð( &Ÿmšm™oœoð ð Ñˆ
�FØ�*ÐÐØÐÐÐØ!ð 	 c¨Z¬_Ò&<Ð&<ØÐÐÐØ�Fˆ]ˆ]ØÐÐÐð ð €{Øˆtå
Ô
ÐB°$ÐBÐB¸3ÐBÐBÑ
CÔ
CÐCr3   rÝ  c                ó2   — t           | _         t           dz  a dS )zÞAssign a '_creation_order' sequence to the given instance.

    This allows multiple instances to be sorted in order of creation
    (typically within a single thread; the counter is not particularly
    threadsafe).

    r   N)Ú_creation_order)rÝ  s    r2   Úset_creation_orderrÅ  Ô  s   € õ  /€HÔÝ�qÑ€O€O€Or3   rZ  c                óŒ   — 	  | |i |¤ŽS # t           $ r/ t          dt          j        ¦   «         dd…         z  ¦  «         Y dS w xY w)zXexecutes the given function, catches all exceptions and converts to
    a warning.

    z%s('%s') ignoredr   r   N)rq   ÚwarnrK   rL   )r   r*  rZ  s      r2   Úwarn_exceptionrÈ  á  sc   € ð
7Øˆt�TÐ$˜VÐ$Ð$Ð$øÝð 7ð 7ð 7ÝÐ¥#¤,¡.¤.°°1°Ô"5Ñ5Ñ6Ô6Ð6Ð6Ð6Ð6ð7øøøs   ‚
 Š5AÁAé   c                ól   — 	 t          | ¦  «        |k    rd| d|…         z  S | S # t          $ r | cY S w xY w)Nz%s...r   )rE  r  )rR   Úlen_s     r2   Úellipses_stringrÌ  ì  sT   € ðÝˆu‰:Œ:˜ÒÐØ˜U 1 T 6œ]Ñ*Ð*àˆLøÝð ð ð Øˆˆˆðøøøs   ‚$ ¢$ ¤3²3c                  ó@   ‡ — e Zd ZU dZded<   dˆ fd
„Zdd„Zdd„Zˆ xZS )Ú_hash_limit_stringa/  A string subclass that can only be hashed on a maximum amount
    of unique values.

    This is used for warnings so that we can send out parameterized warnings
    without the __warningregistry__ of the module,  or the non-overridable
    "once" registry within warnings.py, overloading memory,


    r­   Ú_hashrR   r>   Únumr*  úSequence[Any]r+   c                ó´   •— ||z  d|z  z   }t          ¦   «                              | |¦  «        }t          d|t          |¦  «        |z  fz  ¦  «        |_        |S )Nz6 (this warning may be suppressed after %d occurrences)z%s_%d)rp  rŸ  rž  rÏ  )rc   rR   rÐ  r*  ÚinterpolatedrN   r†   s         €r2   rŸ  z_hash_limit_string.__new__  s_   ø€ ð  ™ØDÀsÑJñ
ˆõ ‰wŒw�Š˜s LÑ1Ô1ˆÝ˜' U­D°Ñ,>Ô,>ÀÑ,DÐ$EÑEÑFÔFˆŒ
Øˆr3   c                ó   — | j         S r.   )rÏ  rM   s    r2   Ú__hash__z_hash_limit_string.__hash__  s
   € ØŒzÐr3   Úotherr   r„   c                óB   — t          | ¦  «        t          |¦  «        k    S r.   )rž  )rN   rÖ  s     r2   Ú__eq__z_hash_limit_string.__eq__  s   € Ý�D‰zŒz�T %™[œ[Ò(Ð(r3   )rR   r>   rÐ  r­   r*  rÑ  r+   rÎ  )r+   r­   )rÖ  r   r+   r„   )	r]   r^   r_   r`   r5   rŸ  rÕ  rØ  rs  rt  s   @r2   rÎ  rÎ  ö  s|   ø€ € € € € € ðð ð €J€J�Jðð ð ð ð ð ðð ð ð ð)ð )ð )ð )ð )ð )ð )ð )r3   rÎ  ÚmsgrÎ  c                óˆ   — |r%t          t          j        | |¬¦  «        ¦  «         dS t          | t          j        ¦  «         dS )zdIssue a warning.

    If msg is a string, :class:`.exc.SAWarning` is used as
    the category.

    )rÕ   N)Ú_warnings_warnr    Ú	SAWarning)rÙ  rÕ   s     r2   rÇ  rÇ    sG   € ð ð +Ý•s”} S¨tÐ4Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5å�s�CœMÑ*Ô*Ð*Ð*Ð*r3   rÑ  c                ó`   — |rt          | d|¦  «        } t          | t          j        ¦  «         dS )z\Issue a warning with a parameterized string, limiting the number
    of registrations.

    é
   N)rÎ  rÛ  r    rÜ  )rÙ  r*  s     r2   Úwarn_limitedrß  !  s5   € ð
 ð 0Ý   b¨$Ñ/Ô/ˆÝ�3�œÑ&Ô&Ð&Ð&Ð&r3   z)Dict[CodeType, Tuple[str, Type[Warning]]]Ú_warning_tagsÚmessageÚcategoryúType[Warning]úCallable[[_F], _F]c                ó   ‡ ‡— ˆˆ fd„}|S )Nc                ó*   •— ‰‰ft           | j        <   | S r.   )rà  r  )r«   râ  rá  s    €€r2   Úgoz#tag_method_for_warnings.<locals>.go1  s   ø€ Ø&-¨xÐ%8��b”kÑ"Øˆ	r3   rb   )rá  râ  rç  s   `` r2   Útag_method_for_warningsrè  .  s)   øø€ ðð ð ð ð ð ð €Ir3   z&^(?:sqlalchemy\.(?!testing)|alembic\.)úUnion[str, Warning]úOptional[Type[Warning]]Ú
stacklevelc                óÔ  — 	 t          j        |¦  «        }dx}}|�~|s5t          j        t          |j                             dd¦  «        ¦  «        sd}|j        t          v r#d}t          |j                 \  }}|p|}| › d|› d�} |j	        }|s|dz  }n|r|rn|­~n# t          $ r d}Y n d}Y nxY w|�t          j        | ||dz   ¬	¦  «         d S t          j        | |dz   ¬	¦  «         d S )
NFr]   r½   Tz (rq  r   r   )rë  )rK   Ú	_getframer|   ÚmatchÚ_not_sa_patternÚ	f_globalsr9   Úf_coderà  Úf_backr1  ÚwarningsrÇ  )rá  râ  rë  ÚframeÚstacklevel_foundÚwarning_tag_foundÚ_suffixÚ	_categorys           r2   rÛ  rÛ  ;  s]  € ð%Ý”˜jÑ)Ô)ˆð 05Ð4ÐÐ,ØÐð $ð (­B¬HÝ ¤×!4Ò!4°ZÀÑ!DÔ!Dñ-ô -ð (ð
 $(Ð ð
 Œ|�}Ð,Ð,Ø$(Ð!Ý'4°U´\Ô'BÑ$�˜)Ø#Ð0 y�Ø$Ð2Ð2¨Ð2Ð2Ð2�à”LˆEà#ð Ø˜a‘�
�
Ø!ð Ð&7ð Øð3 Ðøøõ ð ð ð ð ˆ
ˆ
ˆ
ðð ˆ
ˆ
ˆ
øøøð< ÐÝŒ�g˜x°JÀ±NÐCÑCÔCÐCÐCÐCåŒ�g¨*°q©.Ð9Ñ9Ô9Ð9Ð9Ð9s   ‚B ÂB.Â)B.r  Úretry_on_exceptionúCallable[..., Optional[_T]]c                ó"   ‡ ‡‡— ‰ gŠdˆ ˆˆfd„}|S )zNDecorate the given function to be a no-op after it is called exactly
    once.rá   r   r‹  r+   úOptional[_T]c                 ó†   •— ‰}‰r;‰                      ¦   «         }	  || i |¤ŽS #  ‰r‰                     d|¦  «         ‚ xY wd S )Nr   )rh   Úinsert)rá   r‹  Ú	strong_fnÚonce_fnr«   Úoncerù  s       €€€r2   rç  zonly_once.<locals>.gov  sf   ø€ ð ˆ	Øð 	Ø—h’h‘j”jˆGðØ�w Ð* rÐ*Ð*Ð*øðØ%ð ,Ø—K’K  7Ñ+Ô+Ð+Øøøøàˆts   ›# £>)rá   r   r‹  r   r+   rü  rb   )r«   rù  rç  r  s   `` @r2   Ú	only_oncer  n  s=   øøø€ ð ˆ4€Dðð ð ð ð ð ð ð ð €Ir3   z%sqlalchemy/([a-z_]+/){0,2}[a-z_]+\.pyzunit(?:2|test2?/)ÚtbÚexclude_prefixúre.Pattern[str]Úexclude_suffixc                ó`  — d}t          | ¦  «        dz
  }||k    rA|                     | |         ¦  «        r&|dz  }||k    r|                     | |         ¦  «        °&||k    rA|                     | |         ¦  «        r&|dz  }||k    r|                     | |         ¦  «        °&| ||dz   …         S )at  Chop extraneous lines off beginning and end of a traceback.

    :param tb:
      a list of traceback lines as returned by ``traceback.format_stack()``

    :param exclude_prefix:
      a regular expression object matching lines to skip at beginning of
      ``tb``

    :param exclude_suffix:
      a regular expression object matching lines to skip at end of ``tb``
    r   r   )rE  Úsearch)r  r  r  r�   Úends        r2   Úchop_tracebackr
  Œ  s½   € ð" €EÝ
ˆb‰'Œ'�A‰+€CØ
�3Š,ˆ,˜>×0Ò0°°E´Ñ;Ô;ˆ,Ø�‰
ˆð �3Š,ˆ,˜>×0Ò0°°E´Ñ;Ô;ˆ,à
�3Š,ˆ,˜>×0Ò0°°C´Ñ9Ô9ˆ,Øˆq‰ˆð �3Š,ˆ,˜>×0Ò0°°C´Ñ9Ô9ˆ,àˆe�c˜A‘gˆoÔÐr3   c                ó|   — d| z  }t          ¦   «                              ¦   «         }t          ||¦  «         |d         S )Nz&def set(obj, value):    obj.%s = valuerg   )r¦  Úcopyræ   )ÚattrnamerÕ   rÐ   s      r2   Ú
attrsetterr  ©  s4   € Ø6¸ÑA€DÝ
‰(Œ(�-Š-‰/Œ/€CÝˆˆs�O„O€OØˆuŒ:Ðr3   c                  ó(   ‡ — e Zd ZdZdZdˆ fd„Zˆ xZS )Ú
TypingOnlyz“A mixin class that marks a class as 'typing only', meaning it has
    absolutely no methods, attributes, or runtime functionality whatsoever.

    rb   r+   rI   c                óæ   •— t           | j        v rAt          | j        ¦  «                             h d£¦  «        }|rt          d| › d|› d�¦  «        ‚t          ¦   «                              ¦   «          d S )N>   r`   ra   r^   Ú__orig_bases__r5   zClass z< directly inherits TypingOnly but has additional attributes rþ   )r  r  rg   r8   rJ  ÚAssertionErrorrp  Ú__init_subclass__)rc   Ú	remainingr†   s     €r2   r  zTypingOnly.__init_subclass__¸  s›   ø€ Ý˜œÐ&Ð&Ý˜CœLÑ)Ô)×4Ò4ðð ð ñô ˆIð ð Ý$ð:˜Sð :ð :Ø-6ð:ð :ð :ñô ð õ 	‰Œ×!Ò!Ñ#Ô#Ð#Ð#Ð#r3   r\   )r]   r^   r_   r`   ra   r  rs  rt  s   @r2   r  r  °  sN   ø€ € € € € ðð ð
 €Ið$ð $ð $ð $ð $ð $ð $ð $ð $ð $r3   r  c                  óJ   ‡ — e Zd ZU dZded<   	 d
ˆ fd„Zedd	„¦   «         Zˆ xZS )ÚEnsureKWArga6  Apply translation of functions to accept \**kw arguments if they
    don't already.

    Used to ensure cross-compatibility with third party legacy code, for things
    like compiler visit methods that need to accept ``**kw`` arguments,
    but may have been copied from old code that didn't accept them.

    r>   Úensure_kwargr+   rI   c                ó2  •— | j         }| j        }|re|D ]b}t          j        ||¦  «        }|rI||         }t	          j        |¦  «        }|j        s&|                      |¦  «        }t          | ||¦  «         Œct          ¦   «          
                    ¦   «          d S r.   )r  r8   r|   rî  r   rÂ   r,  Ú
_wrap_w_kwr§  rp  r  )	rc   Úfn_regÚclsdictrš  rD   r«   rÏ   Úwrappedr†   s	           €r2   r  zEnsureKWArg.__init_subclass__Þ  s¥   ø€ ØÔ!ˆØ”,ˆØð 	3Øð 3ð 3�Ý”H˜V SÑ)Ô)�Øð 3Ø  œ�BÝ!Ô8¸Ñ<Ô<�DØœ:ð 3Ø"%§.¢.°Ñ"4Ô"4˜Ý  S¨'Ñ2Ô2Ð2øÝ‰Œ×!Ò!Ñ#Ô#Ð#Ð#Ð#r3   r«   rƒ   c                ó0   ‡— dˆfd„}t          |‰¦  «        S )Nrá   r   r‹  r+   c                 ó   •—  ‰| Ž S r.   rb   )rá   r‹  r«   s     €r2   Úwrapz$EnsureKWArg._wrap_w_kw.<locals>.wrapî  s   ø€ Ø�2�s�8ˆOr3   )rá   r   r‹  r   r+   r   r   )rc   r«   r   s    ` r2   r  zEnsureKWArg._wrap_w_kwì  s3   ø€ ð	ð 	ð 	ð 	ð 	ð 	õ ˜d BÑ'Ô'Ð'r3   r\   )r«   rƒ   r+   rƒ   )	r]   r^   r_   r`   r5   r  rì  r  rs  rt  s   @r2   r  r  Ë  s|   ø€ € € € € € ðð ð ÐÐÑðð$ð $ð $ð $ð $ð $ð ð(ð (ð (ñ „[ð(ð (ð (ð (ð (r3   r  c                ó0  — t          |d¦  «        rt          | |¦  «        S | }|j        j        |_        t          |d¦  «        r|j        |_        t          |j        d¦  «        r|j        j        r|j        j        |_        n|j        r|j        |_        |S )z‘Augment functools.update_wrapper() to work with objects with
    a ``__call__()`` method.

    :param fn:
      object with __call__ method

    r]   r^   r`   )r“   r   r†   r]   r^   r(  r`   )Úwrapperr«   Ú_fs      r2   Úwrap_callabler$  ô  s˜   € õ ˆr�:ÑÔð Ý˜g rÑ*Ô*Ð*àˆØ”lÔ+ˆŒÝ�2�|Ñ$Ô$ð 	*ØœMˆBŒMå�2”; 	Ñ*Ô*ð 	$¨r¬{Ô/Bð 	$ØœÔ,ˆBŒJˆJØŒZð 	$ØœˆBŒJàˆ	r3   c                óº  — d| vr|                       d¦  «        S d}g g}d}t          | ¦  «        }||k     r›| |         }|dk    rE|dk    r9||dz
  k     r0| |dz            dk    r!|d                              d¦  «         |dz  }nC|dz  }n=|dk    r|dk    r|                     g ¦  «         n|d                              |¦  «         |dz  }||k     °›d„ |D ¦   «         S )aÄ  Parse a dotted identifier with accommodation for quoted names.

    Includes support for SQL-style double quotes as a literal character.

    E.g.::

        >>> quoted_token_parser("name")
        ["name"]
        >>> quoted_token_parser("schema.name")
        ["schema", "name"]
        >>> quoted_token_parser('"Schema"."Name"')
        ['Schema', 'Name']
        >>> quoted_token_parser('"Schema"."Name""Foo"')
        ['Schema', 'Name""Foo']

    ú"rþ   r   r   rB  c                ó8   — g | ]}d                       |¦  «        ‘ŒS )r½   )r{   )rx   r  s     r2   rh  z'quoted_token_parser.<locals>.<listcomp>5  s"   € Ð/Ð/Ð/˜uˆB�GŠG�E‰NŒNÐ/Ð/Ð/r3   )r   rE  r”   )rR   r†  rõ  ÚidxÚlvÚchars         r2   Úquoted_token_parserr+    s  € ð$ �%ÐÐØ�{Š{˜3ÑÔÐð €EØ!˜d€FØ
€CÝ	ˆU‰Œ€BØ
�Š(ˆ(Ø�SŒzˆØ�3Š;ˆ;Ø˜Šzˆz˜c B¨¡Fšl˜l¨u°S¸1±W¬~ÀÒ/DÐ/DØ�r”
×!Ò! #Ñ&Ô&Ð&Ø�q‘��à˜‘
��Ø�SŠ[ˆ[˜U ašZ˜ZØ�MŠM˜"ÑÔÐÐà�2ŒJ×Ò˜dÑ#Ô#Ð#Øˆq‰ˆð �Š(ˆ(ð 0Ð/¨Ð/Ñ/Ô/Ð/r3   Úparamsc                ó>   ‡ ‡— t          j        ‰ ¦  «        Š ˆ ˆfd„}|S )Nc                óv   •— | j         d ur| j         pd}|rt          |ˆfd„‰D ¦   «         ¦  «        }|| _         | S )Nr½   c                ó   •— i | ]}|‰“ŒS rb   rb   )rx   Úparamr3  s     €r2   r®  z8add_parameter_text.<locals>.decorate.<locals>.<dictcomp>>  s   ø€ Ð)JÐ)JÐ)J¸%¨%°Ð)JÐ)JÐ)Jr3   )r`   Úinject_param_text)r«   rÏ  r,  r3  s     €€r2   rØ   z$add_parameter_text.<locals>.decorate;  sT   ø€ ØŒj Ð$Ð3¨¬Ð9°rˆØð 	LÝ# CÐ)JÐ)JÐ)JÐ)JÀ6Ð)JÑ)JÔ)JÑKÔKˆCØˆŒ
Øˆ	r3   )r   rr  )r,  r3  rØ   s   `` r2   Úadd_parameter_textr2  8  s9   øø€ ÝÔ! &Ñ)Ô)€Fðð ð ð ð ð ð €Or3   c                óè   — |                       dd¦  «        }t          |¦  «        dk    r| S |\  }}|                     d¦  «        s|dz   t          j        |¦  «        z   S t          j        | ¦  «        S )Nú
r   ru   )r   rE  r¢  ÚtextwrapÚdedent)r3  Ú
split_textÚ	firstliner  s       r2   Ú_dedent_docstringr9  E  su   € Ø—’˜D !Ñ$Ô$€JÝ
ˆ:�„˜!ÒÐØˆà)Ñˆ	�9Ø×Ò Ñ$Ô$ð %Ø˜4Ñ¥(¤/°)Ñ"<Ô"<Ñ<Ð<åŒ˜tÑ$Ô$Ð$r3   Úgiven_doctextÚ
injecttextÚposc                ó,  — t          | pd¦  «        }|                     d¦  «        }t          |¦  «        dk    r|                     d¦  «         t	          j        |¦  «                             d¦  «        }|d         r|                     dd¦  «         d„ t          |¦  «        D ¦   «         }|                     dd¦  «         |t          |t          |¦  «        dz
  ¦  «                 }|d|…         |z   ||d …         z   }d 	                    |¦  «        S )Nr½   r4  r   r   c                ó@   — g | ]\  }}|                      ¦   «         °|‘ŒS rb   )r0  )rx   rÐ  Úlines      r2   rh  z)inject_docstring_text.<locals>.<listcomp>\  s)   € ÐHÐHÐH‘i�c˜4¸4¿:º:¹<¼<ÐHˆcÐHÐHÐHr3   )
r9  r   rE  r”   r5  r6  rþ  rt  Úminr{   )r:  r;  r<  ÚdoctextÚlinesÚinjectlinesÚblanksÚ
inject_poss           r2   Úinject_docstring_textrF  Q  s  € õ % ]Ð%8°bÑ9Ô9€GØ�MŠM˜$ÑÔ€EÝ
ˆ5�z„z�Q‚€Ø�Š�RÑÔÐÝ”/ *Ñ-Ô-×3Ò3°DÑ9Ô9€KØ�1„~ð "Ø×Ò˜1˜bÑ!Ô!Ð!àHÐH¥9¨UÑ#3Ô#3ÐHÑHÔH€FØ
‡M‚M�!�QÑÔÐà�˜C¥ V¡¤¨q¡Ñ1Ô1Ô2€Jà�!�J�,Ô +Ñ-°°j°k°kÔ0BÑB€EØ�9Š9�UÑÔÐr3   z(\s+):param (.+?):rA  Úinject_paramsúDict[str, str]c                óz  — t          j        |                      ¦   «         ¦  «        }g }d }|�rz|                     ¦   «         }t                               |¦  «        }|€¦|r£|                     d¦  «                             d¦  «        }||v rwdt          |                     d¦  «        ¦  «        z  dz   }|rBt          j        d|d         ¦  «        }	|	r%dt          |	                     d¦  «        ¦  «        z  }|||         z   }nŒ|r| 
                    d|dg¦  «         d }no|                     ¦   «         s| 
                    ||dg¦  «         d }n@|                     d¦  «        r+| 
                    ||                     ¦   «         g¦  «         �Œe|                     |¦  «         |�°zd                     |¦  «        S )	Nr   Ú*ru   r   z(\s+)\Sr   r4  z::)ÚcollectionsÚdequeÚ
splitlinesÚpopleftÚ
_param_regrî  rë   ÚlstriprE  r|   rj   Úrstripr£  r”   r{   )
rA  rG  ÚdoclinesrB  Ú	to_injectr?  rD   r0  ÚindentÚm2s
             r2   r1  r1  h  sÃ  € ÝÔ  ×!3Ò!3Ñ!5Ô!5Ñ6Ô6€HØ€Eð €IØ
ñ Ø×ÒÑ!Ô!ˆå×Ò˜TÑ"Ô"ˆàÐØð >ØŸš ™
œ
×)Ò)¨#Ñ.Ô.�Ø˜MÐ)Ð)à ¥3 q§w¢w¨q¡z¤z¡?¤?Ñ2°SÑ8�Fð  ð <ÝœX j°(¸1´+Ñ>Ô>˜Øð <Ø%(­3¨r¯xªx¸©{¬{Ñ+;Ô+;Ñ%;˜Fà &¨°uÔ)=Ñ =�IøØð 
	Ø�LŠL˜$ 	¨4Ð0Ñ1Ô1Ð1ØˆIˆIØ—’‘”ð 	Ø�LŠL˜$ 	¨4Ð0Ñ1Ô1Ð1ØˆIˆIØ�]Š]˜4Ñ Ô ð 	ð �LŠL˜$ × 0Ò 0Ñ 2Ô 2Ð3Ñ4Ô4Ð4ÙØ�Š�TÑÔÐð? ñ ðB �9Š9�UÑÔÐr3   rÑ   c                ó*  — t          | ¦  «        dk    rdS t          | ¦  «        dk    }|r
| dd…         n| dd…         | dd…         z   } d„ | D ¦   «         }|rd                     |¦  «        S d                     |dd…         ¦  «        ›d|d         ›�S )	zŒTrims a list of strings from the middle and return a string of up to
    four elements. Strings greater than 11 characters will be truncatedr   Nr5  r·   rB  c                óR   — g | ]$}t          |¦  «        d k    rd|dd …         z  n|‘Œ%S )é   z%s..N)rE  )rx   rº   s     r2   rh  z$repr_tuple_names.<locals>.<listcomp>š  s8   € Ð
LÐ
LÐ
L¸d¥ T¡¤¨R¢ ˆ6�D˜˜"˜”IÑÐ°TÐ
LÐ
LÐ
Lr3   rp  z, ..., )rE  r{   )rÑ   ÚflagÚress      r2   Úrepr_tuple_namesr[  “  s¨   € õ ˆ5�z„z�Q‚€ØˆtÝˆu‰:Œ:˜Š?€DØÐ;ˆE�!�A�#ŒJˆJ E¨!¨A¨#¤J°°r°s°s´Ñ$;€EØ
LÐ
LÀeÐ
LÑ
LÔ
L€CØð >Ø�yŠy˜‰~Œ~Ðà $§	¢	¨#¨a°¨c¬(Ñ 3Ô 3Ð 3Ð 3°S¸´W°WÐ=Ð=r3   c                ó:   — t           rdS | rt          d¦  «        ‚dS )NTzDcython extensions were expected to be installed, but are not presentF)r   ÚImportError)Úraise_s    r2   Úhas_compiled_extr_  ¡  s5   € Ýð ØˆtØ	ð Ýð"ñ
ô 
ð 	
ð
 ˆur3   )r*   r   r+   r,   )r=   r   r+   r>   )rc   rd   r+   re   )ro   r   r+   r>   )rc   rs   r+   r>   )r€   r�   r‚   rƒ   r+   r„   )r‹   rŒ   r+   r�   )r˜   r™   rš   r>   r+   r›   )r«   r¬   ry   r­   r+   r®   )r³   rƒ   r+   r´   )rÕ   rã   rÐ   rä   rÓ   r>   r+   rƒ   )rc   r7   r  r  r  r  r+   r  )rc   r7   r  r  r  r„   r+   r  )r   rƒ   r+   r!  )FF)r«   rƒ   r$  r„   r%  r„   r+   r&  )T)r«   r2  r¹   r„   r+   r3  )rb   rb   rb   rb   )rN  rs   rO  r>   rP  r>   rQ  r™   rR  r™   rS  r™   rT  r™   r+   rU  )rb   Nrb   )
r*   r   r`  ra  rb  rc  rd  r™   r+   r>   )NNrœ  N)NNNr  )r*   r   r+   r„   )r3  r>   r+   r4  )rR   r   r+   r:  )TN)r‹  rä   rš  r>   rP   rs   r=  r„   r>  r?  r+   rI   )r*   r   rc   rs   r+   r�   )
r*   r!   rc   rd   r*  r   r‹  r   r+   r!   )r+   rL  r.   )rV  r   rj  rW  r+   rW  )rá   r   r\  r]  rº   r>   r+   r   )F)
rá   r   r»  r¼  rº   r>   r½  r„   r+   r¾  rë  )r   rƒ   r*  r   rZ  r   r+   r   )rÉ  )rÙ  r>   rÕ   rÎ  r+   rI   )rÙ  r>   r*  rÑ  r+   rI   )rá  r>   râ  rã  r+   rä  )Nr   )rá  ré  râ  rê  rë  r­   r+   rI   )r«   r  rù  r„   r+   rú  )r  r!  r  r  r  r  r+   r!  )r,  r   r3  r>   r+   rä  )r3  r>   r+   r>   )r:  rÎ  r;  r>   r<  r­   r+   r>   )rA  r>   rG  rH  r+   r>   )rÑ   r!  r+   rÎ  )šr`   Ú
__future__r   rK  ÚenumÚ	functoolsr   r/   r¢   r¼  r|   rK   r5  rS  rÊ   r   Útypingr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ró  r½   r   r   Ú_has_cyr   r   r    r!   r"   r$   r&   r'   r(   r)   Úpy310r0   rE   rG   rn   rr   r   rŠ   r—   rª   r±   r²   rÙ   rÃ   rÌ   rç   rè   rê   r  r  r#  r1  rÅ   rM  rX  r[  r_  r~  r€  r–  r›  r°  r´  rÈ  rÉ  rË  rî  rò  r  Únon_memoized_propertyÚpropertyÚro_memoized_propertyÚro_non_memoized_propertyr   r  Ú!HasMemoized_ro_memoized_attributer  r  r2  r9  r<  rA  rG  rK  rP  r[  rb  rÀ  rm  rv  rˆ  r“  r­   r™  r7   r¨  r·  r¹  ÚFastIntFlagÚEnumrº  rÂ  rÄ  rÅ  rÈ  rÌ  r>   rÎ  rÇ  rß  rà  r5   rè  Úcompilerï  rÛ  r  Ú_SQLA_REÚ_UNITTEST_REr
  ÚNoneTyper  r  r  r$  r+  r2  r9  rF  rO  r1  r[  r_  rb   r3   r2   ú<module>rq     s  ððð ð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€WˆT�]„]€Øˆ� 4Ð(Ñ(Ô(€Ø€WˆT˜ # s (Ô+Ð,Ñ,Ô,€Ø€gˆeÐ3Ð4Ñ4Ô4€Ø€gˆeÐ@ÐAÑAÔA€Ø€gˆeÐ0Ð1Ñ1Ô1€Ø€gˆeÐ.Ð/Ñ/Ô/€ð 
„<ð 2ñ,ð ,ð ,ð ,ð ,ñ
2ð 2ð 2ð 2ñ"$ð $ð $ð $ð82ð 82ð 82ð 82ð 82ñ 82ô 82ð 82ñvð ð ð ñ6ð 6ð 6ð 6ñð ð ð ñ,ð ,ð ,ð ,ñ$ð ð ð ñMð Mð Mð Mñ ð ð ð ð €gˆeÐ/Ð0Ñ0Ô0€ñ
D,ð D,ð D,ð D,ðNð ð ñ*ð ð ð ð €gˆe�n„n€Ø€gˆe�n„n€ð% ð % ð % ð % ð % ñ % ô % ð % ðP
ð 
ð 
ð( 
ð  $Ø!ð	ð ñ ð ð ñ 
„ðð 
à-1ÀEðð ñ ð ð ñ 
„ðð .2ÀEð2ð 2ñ 2ð 2ð 2ð 2ñj2ð 2ð 2ð 2ð EJñ5;ñ 5;ð 5;ð 5;ð 5;ðr HLñr
ñ r
ð r
ð r
ð r
ñjð ð ð ðF #%ØØ "Ø/1ññ ð ð ð ð26ð 6ð 6ð$	ð 	ð 	ð 02Ø8<Ø "ñ	KBñ KBð KBð KBð KBð\;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð<#ð #ð #ðLð ð ð& 
Ø	Ø	Øñ@/ð @/ð @/ð @/ðFð ð ñSð Sð Sð Sðl €wˆvÐ9Ð:Ñ:Ô:€ð,$ð ,$ð ,$ð ,$ð ,$˜G EœNñ ,$ô ,$ð ,$ð^"ð "ð "ð "ð "Ð2°5Ô9ñ "ô "ð "ð"%ð %ð %ð %ð %Ð.¨uÔ5ñ %ô %ð %ð< ð Nð .ÐØ1Ðð
 $ÐØ'ÐÐð 0BÐAÐÐ,Ø7MÐMÐÐ4ñ'ð 'ð 'ð 'ð.L+ð L+ð L+ð L+ð L+ñ L+ô L+ð L+ð^ ð GØ(0Ð%Ð%à(3Ô(FÐ%ð*/ð */ð */ð */ð */ñ */ô */ð */ñ\	ð 	ð 	ð 	ñð ð ð ñð ð ð ð Ø%)ñ'ñ 'ð 'ð 'ð 'ñ4ð ð ð ñð ð ð ñð ð ð ð 37ñ ñ  ð  ð  ð  ñFð ð ð ð$Cð Cð Cð0ð ð ð ð �Hñ ô ð ð*ð ð ð ð �W˜R”[ñ ô ð ð"ð ð ð ð ˜ œñ ô ð ð4ð ð ð ð �7˜2”;ñ ô ð ð$9(ð 9(ð 9(ð 9(ð 9(ˆSñ 9(ô 9(ð 9(ðx
ð 
ð 
ð 
ð 
�4ñ 
ô 
ð 
ð@ð ð ð ð ˜\ð ñ ô ð ð ð ØÐÐÐÐÐà€K€Kà€Kð €WˆT˜œÐ#Ñ#Ô#€ð "'ñ	Dñ Dð Dð Dð DðD €ñ
ð 
ð 
ð 
ñ7ð 7ð 7ð 7ñð ð ð ð)ð )ð )ð )ð )˜ñ )ô )ð )ñ<
+ñ 
+ð 
+ð 
+ð 
+ñ'ð 'ð 'ð 'ð <>€Ð =Ð =Ð =Ñ =ñð ð ð ð �"”*ÐFÑGÔG€ð
 )-Øñ0:ñ 0:ð 0:ð 0:ð 0:ñfð ð ð ð4 ˆ2Œ:Ð>Ñ?Ô?€ØˆrŒzÐ.Ñ/Ô/€ð
 '3Ø&.ðñ ð ð ð ð4 ˆ4�‰:Œ:€ðð ð ð$ð $ð $ð $ð $ñ $ô $ð $ð6&(ð &(ñ &(ð &(ñ &(ñ &(ô &(ð &(ñRð ð ñ0)0ð )0ð )0ñX
ñ 
ð 
ð 
ñ	%ñ 	%ð 	%ð 	%ññ ð ð ð( ˆRŒZÑ-Ñ.Ô.€
ñ(ñ (ð (ð (ñV>ñ >ð >ð >ñ	ñ 	ð 	ð 	ð 	ð 	r3   