a �DOg9&�@s�dZddlZdd�Zee�Zedd��Zeej�Zeej�Z eej �Z dd�Z ee ��Z d d �Zee��Zd d �Ze�Zee�Ze��d d�Ze�Zee�ZGdd�d�Zee�j�Zee�Zegj�Zeej�Zee�j�Z ee!j"�Z#ee$jd�Z%ee�Z&ze'�Wn8e'�y@e�(�dZ)ee)�Z*ee)j+�Z,dZ)[)Yn0eej�Z-eej.�Z/[[[[[[d$dd�Z0dd�Z1d%dd�Z2dd�Z3Gdd�d�Z4Gdd�d�Z5d d!�Z6ee7e8�Z9d"d#�e:�D�Z;dS)&zO Define names for built-in types that aren't directly accessible as a builtin. �NcCsdS�N�rrr�/usr/lib64/python3.9/types.py�_f �rcCsdSrrrrrr� rrcsd��fdd�}|jdS)N�csdSrrr��arr�fsz_cell_factory..fr)� __closure__)r rr r� _cell_factorys r ccs dVdS)Nrrrrrr�_gsrc�sdSrrrrrr�_crrcCs dVdSrrrrrr�_ag"src@seZdZdd�ZdS)�_CcCsdSrr��selfrrr�_m(rz_C._mN)�__name__� __module__� __qualname__rrrrrr'sr�fromkeys�rcCsNt|�}t|||�\}}}|dur*||�||ur:||d<||||fi|��S)zBCreate a class object dynamically using the appropriate metaclass.N�__orig_bases__)� resolve_bases� prepare_class)�name�bases�kwds� exec_body�resolved_bases�meta�nsrrr� new_classEsr$cCs�t|�}d}d}t|�D]t\}}t|t�r6t|t�s6qt|d�sBq|�|�}d}t|t�sdtd��q||||||d�<|t |�d7}q|s�|St|�S)z8Resolve MRO entries dynamically as specified by PEP 560.Fr�__mro_entries__Tz#__mro_entries__ must return a tupler) �list� enumerate� isinstance�type� GenericAlias�hasattrr%�tuple� TypeError�len)r� new_bases�updated�shift�i�base�new_baserrrrOs"    rcCs�|duri}nt|�}d|vr*|�d�}n|r|}|D]0}t|�}t||�r qt||�r0|}qtd��q|S)z%Calculate the most derived metaclass.zxmetaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases)r)� issubclassr-)r"r�winnerr3� base_metarrrr9�s   r9c@sLeZdZdZddd�Zddd�Zdd�Zd d �Zd d �Zd d�Z dd�Z dS)�DynamicClassAttributeaRoute attribute access on a class to __getattr__. This is a descriptor, used to define attributes that act differently when accessed through an instance and through a class. Instance access remains normal, but access to an attribute through a class will be routed to the class's __getattr__ method; this is done by raising AttributeError. This allows one to have properties active on an instance, and have virtual attributes on the class with the same name (see Enum for an example). NcCs>||_||_||_|p|j|_|du|_tt|dd��|_dS)N�__isabstractmethod__F)�fget�fset�fdel�__doc__� overwrite_doc�bool�getattrr>)rr?r@rA�docrrr�__init__�s   zDynamicClassAttribute.__init__cCs6|dur|jr|St��n|jdur,td��|�|�S)Nzunreadable attribute)r>�AttributeErrorr?)r�instance� ownerclassrrr�__get__�s zDynamicClassAttribute.__get__cCs"|jdurtd��|�||�dS)Nzcan't set attribute)r@rH)rrI�valuerrr�__set__�s zDynamicClassAttribute.__set__cCs |jdurtd��|�|�dS)Nzcan't delete attribute)rArH)rrIrrr� __delete__�s z DynamicClassAttribute.__delete__cCs8|jr |jnd}t|�||j|j|p(|j�}|j|_|Sr)rCrBr)r@rA)rr?�fdoc�resultrrr�getter�szDynamicClassAttribute.gettercCs$t|�|j||j|j�}|j|_|Sr)r)r?rArBrC)rr@rPrrr�setter�szDynamicClassAttribute.settercCs$t|�|j|j||j�}|j|_|Sr)r)r?r@rBrC)rrArPrrr�deleter�szDynamicClassAttribute.deleter)NNNN)N) rrrrBrGrKrMrNrQrRrSrrrrr=�s r=c@s�eZdZdd�Zdd�Zdd�Zdd�Zed d ��Zed d ��Z ed d��Z edd��Z eZ e Z e Ze Zdd�Zdd�ZeZdS)�_GeneratorWrappercCs2||_|jtu|_t|dd�|_t|dd�|_dS)Nrr)�_GeneratorWrapper__wrapped� __class__� GeneratorType�_GeneratorWrapper__isgenrErr)r�genrrrrG�s z_GeneratorWrapper.__init__cCs |j�|�Sr)rU�send)r�valrrrrZ�sz_GeneratorWrapper.sendcGs|jj|g|�R�Sr)rU�throw)r�tp�restrrrr\�sz_GeneratorWrapper.throwcCs |j��Sr)rU�closerrrrr_�sz_GeneratorWrapper.closecCs|jjSr)rU�gi_coderrrrr`�sz_GeneratorWrapper.gi_codecCs|jjSr)rU�gi_framerrrrra�sz_GeneratorWrapper.gi_framecCs|jjSr)rU� gi_runningrrrrrb�sz_GeneratorWrapper.gi_runningcCs|jjSr)rU� gi_yieldfromrrrrrc�sz_GeneratorWrapper.gi_yieldfromcCs t|j�Sr)�nextrUrrrr�__next__�sz_GeneratorWrapper.__next__cCs|jr |jS|Sr)rXrUrrrr�__iter__�sz_GeneratorWrapper.__iter__N)rrrrGrZr\r_�propertyr`rarbrc�cr_code�cr_frame� cr_running�cr_awaitrerf� __await__rrrrrT�s&    rTcs�t��std���jturft�dd�jturf�jj}|d@r@�S|d@rf�j}|j|jdBd��_�Sddl }ddl �|� ����fd d ��}|S) z2Convert regular generator function to a coroutine.z$types.coroutine() expects a callable�__code__Ni�� �)�co_flagsrcsV�|i|��}|jtus.|jtur2|jjd@r2|St|�j�rRt|�j�sRt|�S|S)Nro) rV� CoroutineTyperWr`rpr(� Generator� CoroutinerT)�args�kwargs�coro��_collections_abc�funcrr�wrappeds � �  �zcoroutine..wrapped) �callabler-rV� FunctionTyperE�CodeTypermrp�replace� functoolsrx�wraps)ryrp�corrzrrwr� coroutine�s" �r�cCs g|]}|dd�dkr|�qS)Nr�_r)�.0�nrrr� +rr�)rNN)rN)s\                   :%4