<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]9             D   @   sK  d  d l  Z  d  d l  m Z 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	 y d  d l
 j  Z Wn e k
 r d  d l Z Yn Xe j d d  d d f k r d  d l Z y  d  d l	 m Z m Z m Z WnB e k
 r-e e j  Z e e   j  Z e e j  Z Yn Xd d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: g4 Z d; d<   Z d= d>   Z Gd? d@   d@ e  Z GdA dB   dB dC e dD dE Z GdF dG   dG e dD dE Z GdH dI   dI e dD dE Z GdJ dK   dK e dD dE Z dL dM   Z  dN dO   Z! dP dQ   Z" dR dS   Z# dT dU   Z$ GdV dW   dW e dD dE Z% e% dD dE  Z& GdX dY   dY e dD dE Z' e' dD dE  Z( GdZ d   d e dD dE Z) e) d[  Z* e) d\  Z+ e) d]  Z, e) d^ d_ dE Z- e) d` d_ dE Z. e) da d_ dE Z/ e) db dc dE Z0 e) d2 e1 e  Z2 dd de   Z3 d d df dg  Z4 dh di   Z5 dj dk   Z6 g  Z7 dl dm   Z8 Gdn do   do e dD dE Z9 e9 dD dE  Z: Gdp dq   dq e dD dE Z; e; dD dE  Z< dr ds   Z= dt du   Z> dv dw   Z? dx dy   Z@ dz d{   ZA Gd| d   d e e  jB  ZC d ZD d} d~   ZE Gd d
   d
 dC eC ZD Gd d   d  ZF Gd d   d  ZG Gd d   d eC  ZH Gd d   d eI d eI dC eH ZJ Gd d   d eC  ZK Gd d   d d e jL dC eK ZL Gd d   d e dD dE ZM eM dD dE  ZN d d3   ZO d d   ZP e	 jQ e	 jR e	 jS e	 jT e e e f ZU d d d d4  ZV d d6   ZW d d7   ZX d d   ZY d d8   ZZ Gd d   d eC  Z[ Gd d   d dC e[ Z\ e j] Z] e^ e d  rwGd d   d eD e- d e j_ Z_ e j` d  e^ e d  rGd d   d e_ e. eD e- e0 e. f d e ja Za e j` d  e^ e d  r5Gd d   d eD e- d e jb Zb Gd d   d eb e- d e jc Zc e j` d  e j` d  Gd d   d eD e- d e jd Zd Gd d   d ed e- d e je Ze Gd d'   d' e\  Zf Gd d&   d& e\  Zg Gd d%   d% e\  Zh Gd d$   d$ e\  Zi Gd d#   d# e\ e-  Zj Gd d(   d( e\ e-  Zk e^ e d"  r<Gd d"   d" ed e- d e jl Zl n Gd d"   d" e\ e-  Zl e jm Zm Gd d   d eD e- d e jn Zn e^ e d  rGd d   d em ed e- en e- d e jo Zo e j` d  e^ e d  r 	Gd d   d eo e- d e jp Zq n- Gd d   d em ed e- en e- d e jp Zq Gd d   d eq e* d e jr Zr e^ e d  r	Gd d   d eo e+ eD e+ e/ f d e js Zs n: Gd d   d em ed e+ en e+ eD e+ e/ f d e js Zs Gd d   d es e+ e, f d e jt Zt e^ e d"  rp
e^ e d  r@
Gd d   d el e- eo e- d e ju Zu n- Gd d   d em el e- en e- d e ju Zu n- Gd d   d em ed e- en e- d e ju Zu Gd d   d eu e* d e jv Zv Gd d   d eu ew d e jx Zx Gd d-   d- ey ev e* d ey Zz Gd d*   d* e j{ ev e* d e j{ Z| Gd d.   d. e} er e* d e} Zp Gd d/   d/ e~ eq e- d e~ Z Gd d   d em ed e- d e j Z Gd d   d e e+ eq e+ d e j Z Gd d   d e eJ e+ e/ f eq eJ e+ e/ f eD e+ e/ f d e j Z Gd d!   d! e e/ d e j Z e^ e d  rhGd d   d eD e- d e j Z n Gd d   d eD e-  Z e^ e d  rGd d   d eD e- d e j Z e j` d  n) e j d d  d d f k re d  Gd d+   d+ e et e+ e, f d e Z Gd d,   d, e j et e+ e, f d e j Z Gd d)   d) e j e e* ew f d e j Z e^ e d  re j` d  Gd d   d e j et e+ e, f d e j Z e^ e d1  re j Z n	 e	 j Z Gd d1   d1 ee e- eD e- e0 e. f d e Z e^ e d  r_Gd d   d ec e- eD e- e0 f d e j Z e j` d  e) d d_ dE d e Z Gd d   d eD e d e Z d d   Z e j d d  d d f k Z d d d d d d d d d d d f Z d d d d f Z Gd d   d e  Z Gd d0   d0 dC e Z d d5   Z e Z d Z Gd d   d eD e2  Z Gd d   d e e1  Z Gd d   d e e  Z Gd d   d  Z e d e _ e e j e j <e d e2 e e j d   d d    Z e d e2 e e j d d   d d    Z Gd d   d  Z e d e _ e e j e j <d S)    N)abstractmethodabstractproperty         )WrapperDescriptorTypeMethodWrapperTypeMethodDescriptorTypeAnyCallableClassVarGenericOptionalTupleTypeTypeVarUnionAbstractSetGenericMeta
ByteString	ContainerContextManagerHashable	ItemsViewIterableIteratorKeysViewMappingMappingViewMutableMappingMutableSequence
MutableSetSequenceSized
ValuesView
ReversibleSupportsAbsSupportsBytesSupportsComplexSupportsFloatSupportsIntSupportsRoundCounterDequeDictDefaultDictListSet	FrozenSet
NamedTuple	GeneratorAnyStrcastget_type_hintsNewTypeno_type_checkno_type_check_decoratoroverloadTextTYPE_CHECKINGc             C   s+   t  j d  d  d k r  |  j S|  j Sd  S)Nr   r   )r   r   )sysversion_info__qualname____name__)x rC   +/opt/alt/python35/lib64/python3.5/typing.py	_qualnameg   s    rE   c             C   s5   d } |  j  d  r1 |  | k r1 |  d d   }  |  S)N
_TypeAlias_ForwardRef_TypingBase_FinalTypingBase_   )rF   rG   rH   rI   )
startswith)ZnmZ	whitelistrC   rC   rD   
_trim_nameo   s    rM   c                   s^   e  Z d  Z d Z d d   f d d  Z d d   Z d d   Z d	 d
   Z d d   Z   S)
TypingMetaF_rootc               sG   | s. t  d d j t t |   p' d   t   j |  | | |  S)NzCannot subclass %sz, z())	TypeErrorjoinmap
_type_reprsuper__new__)clsnamebases	namespacerO   )	__class__rC   rD   rU      s    "zTypingMeta.__new__c             O   s   d  S)NrC   )selfargskwdsrC   rC   rD   __init__   s    zTypingMeta.__init__c             C   s   |  S)NrC   )r[   globalnslocalnsrC   rC   rD   
_eval_type   s    zTypingMeta._eval_typec             C   s   d  S)NrC   )r[   tvarsrC   rC   rD   _get_type_vars   s    zTypingMeta._get_type_varsc             C   s#   t  t |    } d |  j | f S)Nz%s.%s)rM   rE   
__module__)r[   qnamerC   rC   rD   __repr__   s    zTypingMeta.__repr__)	rA   rd   r@   _is_protocolrU   r^   ra   rc   rf   rC   rC   )rZ   rD   rN   v   s   
rN   c                   sd   e  Z d  Z d Z d d   Z   f d d   Z d d   Z d d	   Z d
 d   Z d d   Z	   S)rH   __weakref__c             O   s   d  S)NrC   )r[   r\   r]   rC   rC   rD   r^      s    z_TypingBase.__init__c                sX   t  |  d k rH t | d t  rH t | d t  rH t d |    t   j |   S)Nr   r   rK   zCannot subclass %r)len
isinstancestrtuplerP   rT   rU   )rV   r\   r]   )rZ   rC   rD   rU      s
    z_TypingBase.__new__c             C   s   |  S)NrC   )r[   r_   r`   rC   rC   rD   ra      s    z_TypingBase._eval_typec             C   s   d  S)NrC   )r[   rb   rC   rC   rD   rc      s    z_TypingBase._get_type_varsc             C   s/   t  |   } t t |   } d | j | f S)Nz%s.%s)typerM   rE   rd   )r[   rV   re   rC   rC   rD   rf      s    z_TypingBase.__repr__c             O   s   t  d t |     d  S)NzCannot instantiate %r)rP   rm   )r[   r\   r]   rC   rC   rD   __call__   s    z_TypingBase.__call__)rh   )
rA   rd   r@   	__slots__r^   rU   ra   rc   rf   rn   rC   rC   )rZ   rD   rH      s   rH   	metaclassrO   Tc                   s:   e  Z d  Z f  Z d d   f d d  Z d d   Z   S)rI   rO   Fc               s<   t    j |  | |  } | d k r( | St d |    d  S)NTzCannot instantiate %r)rT   rU   rP   )rV   rO   r\   r]   r[   )rZ   rC   rD   rU      s    z_FinalTypingBase.__new__c             C   s   t  t |   j  S)N)rM   rm   rA   )r[   rC   rC   rD   
__reduce__   s    z_FinalTypingBase.__reduce__)rA   rd   r@   ro   rU   rq   rC   rC   )rZ   rD   rI      s   rI   c                   sp   e  Z d  Z d Z   f d d   Z d d   Z d	 d
   Z d d   Z d d   Z d d   Z	 d d   Z
   S)rG   __forward_arg____forward_code____forward_evaluated____forward_value__c                s   t    j |  t | t  s2 t d | f   y t | d d  } Wn% t k
 ro t d | f   Yn X| |  _ | |  _ d |  _	 d  |  _
 d  S)Nz,Forward reference must be a string -- got %rz<string>evalz1Forward reference must be an expression -- got %rF)rT   r^   rj   rk   rP   compileSyntaxErrorrr   rs   rt   ru   )r[   argcode)rZ   rC   rD   r^      s    			z_ForwardRef.__init__c             C   s   |  j  s | | k	 r | d  k r; | d  k r; i  } } n' | d  k rP | } n | d  k rb | } t t |  j | |  d  |  _ d |  _  |  j S)Nz*Forward references must evaluate to types.T)rt   _type_checkrv   rs   ru   )r[   r_   r`   rC   rC   rD   ra      s    		z_ForwardRef._eval_typec             C   s5   t  | t  s t S|  j | j k o4 |  j | j k S)N)rj   rG   NotImplementedrr   ru   )r[   otherrC   rC   rD   __eq__   s    z_ForwardRef.__eq__c             C   s   t  |  j |  j f  S)N)hashrr   ru   )r[   rC   rC   rD   __hash__   s    z_ForwardRef.__hash__c             C   s   t  d   d  S)Nz4Forward references cannot be used with isinstance().)rP   )r[   objrC   rC   rD   __instancecheck__  s    z_ForwardRef.__instancecheck__c             C   s   t  d   d  S)Nz4Forward references cannot be used with issubclass().)rP   )r[   rV   rC   rC   rD   __subclasscheck__  s    z_ForwardRef.__subclasscheck__c             C   s   d |  j  f S)Nz_ForwardRef(%r))rr   )r[   rC   rC   rD   rf   	  s    z_ForwardRef.__repr__)rr   rs   rt   ru   )rA   rd   r@   ro   r^   ra   r~   r   r   r   rf   rC   rC   )rZ   rD   rG      s    rG   c               @   sj   e  Z d  Z d Z d d   Z d d   Z d	 d
   Z d d   Z d d   Z d d   Z	 d d   Z
 d S)rF   rW   type_var	impl_typetype_checkerc             C   s(   | |  _  | |  _ | |  _ | |  _ d  S)N)rW   r   r   r   )r[   rW   r   r   r   rC   rC   rD   r^     s    			z_TypeAlias.__init__c             C   s   d |  j  t |  j  f S)Nz%s[%s])rW   rS   r   )r[   rC   rC   rD   rf   ,  s    z_TypeAlias.__repr__c             C   s   t  |  j t  s" t d |    |  j j rk t  | t  rk t | |  j j  sk t d | |  j f   t  | t  r | |  j k	 r t d |    |  j |  j | |  j	 |  j
  S)Nz#%s cannot be further parameterized.z&%s is not a valid substitution for %s.z%s cannot be re-parameterized.)rj   r   r   rP   __constraints__rm   
issubclassrZ   rW   r   r   )r[   Z	parameterrC   rC   rD   __getitem__/  s    z_TypeAlias.__getitem__c             C   s5   t  | t  s t S|  j | j k o4 |  j | j k S)N)rj   rF   r|   rW   r   )r[   r}   rC   rC   rD   r~   ;  s    z_TypeAlias.__eq__c             C   s   t  |  j |  j f  S)N)r   rW   r   )r[   rC   rC   rD   r   @  s    z_TypeAlias.__hash__c             C   s.   t  |  j t  s t d   t  | |  j  S)Nz<Parameterized type aliases cannot be used with isinstance().)rj   r   r   rP   r   )r[   r   rC   rC   rD   r   C  s    z_TypeAlias.__instancecheck__c             C   s.   t  |  j t  s t d   t | |  j  S)Nz<Parameterized type aliases cannot be used with issubclass().)rj   r   r   rP   r   r   )r[   rV   rC   rC   rD   r   I  s    z_TypeAlias.__subclasscheck__N)rW   r   r   r   )rA   rd   r@   ro   r^   rf   r   r~   r   r   r   rC   rC   rC   rD   rF     s   	rF   c             C   s@   x9 |  D]1 } t  | t  s+ t  | t  r | j |  q Wd  S)N)rj   rN   rH   rc   )typesrb   trC   rC   rD   rc   P  s    rc   c             C   s   g  } t  |  |  t |  S)N)rc   rl   )r   rb   rC   rC   rD   
_type_varsV  s    r   c             C   s2   t  |  t  s t  |  t  r. |  j | |  S|  S)N)rj   rN   rH   ra   )r   r_   r`   rC   rC   rD   ra   \  s    ra   c             C   s   |  d  k r t  d   St |  t  r1 t |   }  t |  t  rU t  |   j d k sx t |  t  t f  r t |   r t | d |  f   t  |   j d k r t |  d d   s t |  t	  r t
 |   t t f k r t d |    |  S)N	_ClassVarz Got %.100r._Union	_Optional
__origin__z&Plain %s is not valid as type argument)r   r   )rm   rj   rk   rG   rH   rA   callablerP   getattrrN   _gorgr   	_Protocol)ry   msgrC   rC   rD   r{   b  s    
$#'r{   c             C   s   t  |  t  rO t  |  t  rO |  j d k r8 t |   Sd |  j t |   f S|  d k r_ d St  |  t j  rx |  j St |   S)Nbuiltinsz%s.%s.z...)	rj   rm   rN   rd   rE   r   FunctionTyperA   repr)r   rC   rC   rD   rS     s    
rS   c               @   s.   e  Z d  Z f  Z d d   Z d d   Z d S)_Anyc             C   s   t  d   d  S)Nz%Any cannot be used with isinstance().)rP   )r[   r   rC   rC   rD   r     s    z_Any.__instancecheck__c             C   s   t  d   d  S)Nz%Any cannot be used with issubclass().)rP   )r[   rV   rC   rC   rD   r     s    z_Any.__subclasscheck__N)rA   rd   r@   ro   r   r   rC   rC   rC   rD   r     s   r   c               @   s.   e  Z d  Z f  Z d d   Z d d   Z d S)	_NoReturnc             C   s   t  d   d  S)Nz*NoReturn cannot be used with isinstance().)rP   )r[   r   rC   rC   rD   r     s    z_NoReturn.__instancecheck__c             C   s   t  d   d  S)Nz*NoReturn cannot be used with issubclass().)rP   )r[   rV   rC   rC   rD   r     s    z_NoReturn.__subclasscheck__N)rA   rd   r@   ro   r   r   rC   rC   rC   rD   r     s   r   c            	       sj   e  Z d  Z d Z d d d d	 d
 d	   f d d  Z d d   Z d d   Z d d   Z d d   Z   S)r   rA   	__bound__r   __covariant____contravariant__boundN	covariantFcontravariantc         	      s   t    j | | d | d | d | | |  _ | rF | rF t d   t |  |  _ t |  |  _ | r | d  k	 r t d   | r t |  d k r t d   d   t	   f d	 d
   | D  |  _
 | r t | d  |  _ n	 d  |  _ d  S)Nr   r   r   z"Bivariant types are not supported.z-Constraints cannot be combined with bound=...rK   z"A single constraint is not allowedz:TypeVar(name, constraint, ...): constraints must be types.c             3   s   |  ] } t  |    Vq d  S)N)r{   ).0r   )r   rC   rD   	<genexpr>   s    z#TypeVar.__init__.<locals>.<genexpr>zBound must be a type.)rT   r^   rA   
ValueErrorboolr   r   rP   ri   rl   r   r{   r   )r[   rW   r   r   r   Zconstraints)rZ   )r   rD   r^     s     	"zTypeVar.__init__c             C   s   |  | k r | j  |   d  S)N)append)r[   rb   rC   rC   rD   rc     s    zTypeVar._get_type_varsc             C   s5   |  j  r d } n |  j r$ d } n d } | |  j S)N+-~)r   r   rA   )r[   prefixrC   rC   rD   rf   
  s    				zTypeVar.__repr__c             C   s   t  d   d  S)Nz0Type variables cannot be used with isinstance().)rP   )r[   instancerC   rC   rD   r     s    zTypeVar.__instancecheck__c             C   s   t  d   d  S)Nz0Type variables cannot be used with issubclass().)rP   )r[   rV   rC   rC   rD   r     s    zTypeVar.__subclasscheck__)rA   r   r   r   r   )	rA   rd   r@   ro   r^   rc   rf   r   r   rC   rC   )rZ   rD   r     s   * 		TKTVTT_cor   V_coVT_coT_contrar   c             C   s   | d  k r g  } t  |  d  rF t |  t t f  rF |  j | |  St |  t  r x. t |  D]  \ } } |  | k rb | | Sqb W|  S)N
_subs_tree)hasattrrj   r   rH   r   r   	enumerate)ry   rb   r\   iZtvarrC   rC   rD   _replace_arg)  s    $r   c       	      C   s   |  j  d  k r |  S|  j  } g  } x) | j  d  k	 rM | j |  | j  } q% Wg  } x* |  j D] } | j t | | |   q^ WxJ | D]B } g  } x- | j D]" } | j t | | j |   q W| } q W| S)N)r   r   __args__r   __parameters__)	rV   rb   r\   currentZ
orig_chain	tree_argsry   ZoclsZnew_tree_argsrC   rC   rD   r   D  s     	 
r   c                s  g  } x |  D] } t  | t  rD | j t k rD | j | j  q t  | t  r t |  d k r | d t k r | j | d d    q | j |  q Wt	 |    t    t |  k  rg  } x4 | D], } |   k r | j |    j
 |  q W| } t	 |    xS | D]K  t   t  s2qt  f d d      h D  r  j
   qWt   f d d   | D  S)Nr   rK   c             3   sK   |  ]A } t  | t  o$ | j d  k	 s t  | t  oB t   |  Vq d  S)N)rj   r   r   rm   r   )r   Zt2)t1rC   rD   r     s   z'_remove_dups_flatten.<locals>.<genexpr>c             3   s!   |  ] } |   k r | Vq d  S)NrC   )r   r   )
all_paramsrC   rD   r     s    )rj   r   r   r   extendr   rl   ri   r   setremoverm   any)
parametersparamspZ
new_paramsr   rC   )r   r   rD   _remove_dups_flattene  s.    1r   c             C   s~   |  j  s t d t |     t |  } t |  j   } | | k rz t d | | k r^ d n d t |   | | f   d  S)Nz%s is not a generic classz0Too %s parameters for %s; actual %s, expected %sZmanyZfew)r   rP   r   ri   )rV   r   ZalenZelenrC   rC   rD   _check_generic  s    	r   c                sJ   t  j       t j   j  t  j      f d d    } | S)Nc                 s3   y   |  |   SWn t  k
 r% Yn X |  |   S)N)rP   )r\   r]   )cachedfuncrC   rD   inner  s
    z_tp_cache.<locals>.inner)	functools	lru_cache	_cleanupsr   cache_clearwraps)r   r   rC   )r   r   rD   	_tp_cache  s    $r   c                   s   e  Z d  Z d Z d d d d   f d d	 Z d
 d   Z d d   Z   f d d   Z   f d d   Z e	 d d    Z
 d d d d  Z d d   Z d d   Z d d   Z d d   Z   S)r   r   r   r   __tree_hash__NrO   Fc               s  t    j |  | | | d | } | d  k ra d  | _ d  | _ d  | _ t t d   | _ | St | t	  s| t
 d   | t k r t |  } t |  d k r | d St |  | _ | | _ | | _ | j   } t | t	  rt t |   | _ n t |  | _ | S)NrO   r   zExpected parameters=<tuple>rK   r   )r   )rT   rU   r   r   r   r   	frozensetr   rj   rl   rP   r   r   ri   r   r   )rV   r   originrO   r\   r[   Z	subs_tree)rZ   rC   rD   rU     s*    !					z_Union.__new__c                s   |  j  d  k r |  St    f d d   |  j  D  } t |  j     } | |  j  k ro | |  j k ro |  S|  j | | d d S)Nc             3   s!   |  ] } t  |     Vq d  S)N)ra   )r   r   )r_   r`   rC   rD   r     s    z$_Union._eval_type.<locals>.<genexpr>rO   T)r   rl   ra   r   rZ   )r[   r_   r`   ev_args	ev_originrC   )r_   r`   rD   ra     s    %z_Union._eval_typec             C   s&   |  j  r" |  j r" t |  j |  d  S)N)r   r   rc   )r[   rb   rC   rC   rD   rc     s    z_Union._get_type_varsc                sR   |  j  d  k r t   j   S|  j   } t | t  sA t |  S| d j |  S)Nr   )r   rT   rf   r   rj   rl   r   
_tree_repr)r[   tree)rZ   rC   rD   rf     s    
z_Union.__repr__c                s~   g  } xW | d d   D]E } t  | t  sB | j t |   q | j | d j |   q Wt   j   d d j |  S)NrK   r   z[%s]z, )rj   rl   r   rS   r   rT   rf   rQ   )r[   r   arg_listry   )rZ   rC   rD   r     s    z_Union._tree_reprc                s   | f  k r t  d   t | t  s0 | f } |  j d  k rH d   n d   t   f d d   | D  } |  t k	 r t |  |  |  j | d |  d d S)	Nz Cannot take a Union of no types.z)Union[arg, ...]: each arg must be a type.z*Parameters to generic types must be types.c             3   s   |  ] } t  |    Vq d  S)N)r{   )r   r   )r   rC   rD   r      s    z%_Union.__getitem__.<locals>.<genexpr>r   rO   T)rP   rj   rl   r   r   r   rZ   )r[   r   rC   )r   rD   r     s    		z_Union.__getitem__c             C   sS   |  t  k r t  St |  | |  } t |  } t |  d k rH | d St  f | S)NrK   r   )r   r   r   ri   )r[   rb   r\   r   rC   rC   rD   r   %  s    z_Union._subs_treec             C   sI   t  | t  r |  j | j k S|  t k	 r; |  j   | k S|  | k Sd  S)N)rj   r   r   r   r   )r[   r}   rC   rC   rD   r~   .  s
    z_Union.__eq__c             C   s   |  j  S)N)r   )r[   rC   rC   rD   r   6  s    z_Union.__hash__c             C   s   t  d   d  S)Nz(Unions cannot be used with isinstance().)rP   )r[   r   rC   rC   rD   r   9  s    z_Union.__instancecheck__c             C   s   t  d   d  S)Nz(Unions cannot be used with issubclass().)rP   )r[   rV   rC   rC   rD   r   <  s    z_Union.__subclasscheck__)r   r   r   r   )rA   rd   r@   ro   rU   ra   rc   rf   r   r   r   r   r~   r   r   r   rC   rC   )rZ   rD   r     s   ,
		r   c               @   s(   e  Z d  Z f  Z e d d    Z d S)r   c             C   s#   t  | d  } t | t d   f S)Nz#Optional[t] requires a single type.)r{   r   rm   )r[   ry   rC   rC   rD   r   K  s    z_Optional.__getitem__N)rA   rd   r@   ro   r   r   rC   rC   rC   rD   r   C  s   r   c             C   s#   x |  j  d  k	 r |  j  }  q W|  S)N)r   )arC   rC   rD   r   T  s    r   c             C   s   t  |   t  |  k S)N)r   )r   brC   rC   rD   _geqv\  s    r   c             C   sf   t  } xY t |  j d  d   D]> \ } } t | t  r  t |  t k r  |  j | d } q  W| S)NrK   )objectr   __mro__rj   r   r   r   )rV   Znext_in_mror   crC   rC   rD   _next_in_mrok  s
    &!r   c                s@   t    j t j  r*   f d d   } n   f d d   } | S)Nc                s{     j  j |   } | t k	 r" | S  j  |  j k r8 d Sx<   j  j   D]+ } t | t  r` qH t |  |  rH d SqH Wt S)NT)	__extra____subclasshook__r|   r   __subclasses__rj   r   r   )subclassresscls)rV   rC   rD   __extrahook__  s    z)_make_subclasshook.<locals>.__extrahook__c                s#     j  r t |    j   r d St S)NT)r   r   r|   )r   )rV   rC   rD   r     s    )rj   r   abcABCMeta)rV   r   rC   )rV   rD   _make_subclasshooky  s    r   c             C   sA   t  |   } d | k r= x" | d D] } | j | d   q# W| S)Nro   )dictpop)dctZ	dict_copyZslotrC   rC   rD   _no_slots_copy  s
    r   c                   s3  e  Z d  Z d d d d d   f d d  Z e d d    Z e j d d    Z e d d    Z e j d	 d    Z d
 d   Z d d   Z	   f d d   Z
   f d d   Z d d d d  Z d d   Z d d   Z e d d    Z   f d d   Z d d   Z d d   Z   f d  d!   Z   S)"r   Nc	                s  | d  k	 r nt  |  } d  }	 xe | D]] }
 |
 t k rF t d   t |
 t  r( |
 j t k r( |	 d  k	 r| t d   |
 j }	 q( W|	 d  k r | }	 nr t |  } t |	    |   k s
t d d j   f d d   | D  d j d d   |	 D  f   |	 } | } | d  k	 rPt	 |  t
 j k rP| | k rP| f | } t d d   | D  } t d	 d   | D  rt d
 d   | D  } | j d | d | i  t   j |  | | | d d } | | _ | rt d d   | D  n d  | _ t |  | _ | d  k r*| | _ d | k r<| sWt | j d d  d k rft |  | _ t | t
 j  r| j | _ | j | _ n$ | d  k	 r| j | _ | j | _ | rt | d  r| j | _ | rt | j    n t t |  j   | _ | S)Nz!Cannot inherit from plain Genericz0Cannot inherit from Generic[...] multiple types.z6Some type variables (%s) are not listed in Generic[%s]z, c             3   s'   |  ] } |   k r t  |  Vq d  S)N)rk   )r   r   )gvarsetrC   rD   r     s    z&GenericMeta.__new__.<locals>.<genexpr>c             s   s   |  ] } t  |  Vq d  S)N)rk   )r   grC   rC   rD   r     s    c             s   s0   |  ]& } t  | t  r$ t |  n | Vq d  S)N)rj   r   r   )r   r   rC   rC   rD   r     s    c             s   s*   |  ]  } t  | t  o! | t k	 Vq d  S)N)rj   r   r   )r   r   rC   rC   rD   r     s    c             s   s!   |  ] } | t  k	 r | Vq d  S)N)r   )r   r   rC   rC   rD   r     s    r   r   rO   Tc             s   s9   |  ]/ } | t  k r d  n | t k r- f  n | Vq d S).N)_TypingEllipsis_TypingEmpty)r   r   rC   rC   rD   r     s   r   rA    r   r@   ) r   r   rP   rj   r   r   r   r   rQ   rm   r   r   rl   r   updaterT   rU   r   r   __next_in_mro____orig_bases__r   r   r   _abc_registry
_abc_cacher   r@   r   r   r   r   )rV   rW   rX   rY   rb   r\   r   extra
orig_basesZgvarsbaseZtvarsetZinitial_basesr[   )rZ   )r   rD   rU     sd    		#-!	(	zGenericMeta.__new__c             C   s,   t  |  j t j  r |  j j St |   j S)N)rj   r   r   r   _abc_negative_cacher   _abc_generic_negative_cache)r[   rC   rC   rD   r     s    
zGenericMeta._abc_negative_cachec             C   s@   |  j  d  k r< t |  j t j  r3 | |  j _ n	 | |  _ d  S)N)r   rj   r   r   r   r   r   )r[   valuerC   rC   rD   r     s    c             C   s,   t  |  j t j  r |  j j St |   j S)N)rj   r   r   r   _abc_negative_cache_versionr   #_abc_generic_negative_cache_version)r[   rC   rC   rD   r     s    
z'GenericMeta._abc_negative_cache_versionc             C   s@   |  j  d  k r< t |  j t j  r3 | |  j _ n	 | |  _ d  S)N)r   rj   r   r   r   r   r   )r[   r   rC   rC   rD   r   $  s    c             C   s&   |  j  r" |  j r" t |  j |  d  S)N)r   r   rc   )r[   rb   rC   rC   rD   rc   ,  s    zGenericMeta._get_type_varsc                s   |  j  r |  j  j     n d  } |  j rR t    f d d   |  j D  n d  } | |  j  k rz | |  j k rz |  S|  j |  j |  j t |  j  d | r t	 |  n d  d | d | d |  j
 d |  j S)Nc             3   s!   |  ] } t  |     Vq d  S)N)ra   )r   r   )r_   r`   rC   rD   r   3  s    z)GenericMeta._eval_type.<locals>.<genexpr>rb   r\   r   r   r   )r   ra   r   rl   rZ   rA   	__bases__r   __dict__r   r   r   )r[   r_   r`   r   r   rC   )r_   r`   rD   ra   0  s    $4	zGenericMeta._eval_typec                s/   |  j  d  k r t   j   S|  j |  j    S)N)r   rT   rf   r   r   )r[   )rZ   rC   rD   rf   @  s    zGenericMeta.__repr__c                s   g  } xs | d d   D]a } | f  k r9 | j  d  q t | t  s^ | j  t |   q | j  | d j |   q Wt   j   d d j |  S)NrK   z()r   z[%s]z, )r   rj   rl   rS   r   rT   rf   rQ   )r[   r   r   ry   )rZ   rC   rD   r   E  s    zGenericMeta._tree_reprc             C   s<   |  j  d  k r |  St |  | |  } t |   f t |  S)N)r   r   r   rl   )r[   rb   r\   r   rC   rC   rD   r   P  s    zGenericMeta._subs_treec             C   sK   t  | t  s t S|  j d  k s1 | j d  k r; |  | k S|  j | j k S)N)rj   r   r|   r   r   )r[   r}   rC   rC   rD   r~   V  s
    
zGenericMeta.__eq__c             C   s   |  j  S)N)r   )r[   rC   rC   rD   r   ]  s    zGenericMeta.__hash__c                s  t  | t  s | f } | rG t |   t k	 rG t d t |     d   t   f d d   | D  } |  t k r t d d   | D  s t d   t t	 |   t |  k r t d   | } | } n |  t t
 f k r t |  } | } nh |  t k r| } | } nM |  j t t f k rFt d t |     n t |  |  t |  } | } |  j d  k r}|  f n f  } |  j |  j | |  j t |  j  d	 | d
 | d |  d |  j d |  j S)Nz)Parameter list to %s[...] cannot be emptyz*Parameters to generic types must be types.c             3   s   |  ] } t  |    Vq d  S)N)r{   )r   r   )r   rC   rD   r   h  s    z*GenericMeta.__getitem__.<locals>.<genexpr>c             s   s   |  ] } t  | t  Vq d  S)N)rj   r   )r   r   rC   rC   rD   r   k  s    z5Parameters to Generic[...] must all be type variablesz-Parameters to Generic[...] must all be uniquez'Cannot subscript already-subscripted %srb   r\   r   r   r   )rj   rl   r   r   rP   rE   r   allri   r   r   r   r   r   r   r   rZ   rA   r   r   r   r   r   )r[   r   rb   r\   ZprependrC   )r   rD   r   `  sJ    						
	zGenericMeta.__getitem__c                sg   |  j  d  k	 r; t j d  j d d k r7 t d   d S|  t k rW t d |    t   j |  S)	NrK   rA   r   r   zCParameterized generics cannot be used with class or instance checksFz5Class %r cannot be used with class or instance checks)r   r   )r   r>   	_getframe	f_globalsrP   r   rT   r   )r[   rV   )rZ   rC   rD   r     s    
zGenericMeta.__subclasscheck__c             C   s   t  | j |   S)N)r   rZ   )r[   r   rC   rC   rD   r     s    zGenericMeta.__instancecheck__c          	   C   s@   |  j  |  j |  j t |  j  |  j |  j |  j |  j |  j	  S)N)
rZ   rA   r   r   r   r   r   r   r   r   )r[   rC   rC   rD   __copy__  s    zGenericMeta.__copy__c                sl   | j  d  r | j d  s- | j  d  rI t t |   j | |  n t t t |    j | |  d  S)N___abc_)rL   endswithrT   r   __setattr__r   )r[   attrr   )rZ   rC   rD   r    s    zGenericMeta.__setattr__)rA   rd   r@   rU   propertyr   setterr   rc   ra   rf   r   r   r~   r   r   r   r   r   r  r  rC   rC   )rZ   rD   r     s"   !^.c             O   sq   | j  d  k r |  j |  St |  } |  j |  } y | | _ Wn t k
 rX Yn X| j | |   | Sd  S)N)r   rU   r   Z__orig_class__AttributeErrorr^   )Zbase_clsrV   r\   r]   r   r   rC   rC   rD   _generic_new  s    r  c               @   s"   e  Z d  Z f  Z d d   Z d S)r   c             O   s1   t  |  t  r t d   t |  j |  | |  S)NzHType Generic cannot be instantiated; it can be used only as a base class)r   r   rP   r  r   )rV   r\   r]   rC   rC   rD   rU     s    zGeneric.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   r     s   c               @   s   e  Z d  Z d S)r   N)rA   rd   r@   rC   rC   rC   rD   r     s   r   c               @   s   e  Z d  Z d S)r   N)rA   rd   r@   rC   rC   rC   rD   r     s   r   c                   s@   e  Z d  Z e   f d d    Z d d   Z d d   Z   S)	TupleMetac                s   |  j  d  k	 s t |  t  r/ t   j |  S| f  k rN t   j t f  St | t  sf | f } t |  d k r | d d k r d   t	 | d    } t   j | t
 f  Sd   t   f d d   | D  } t   j |  S)	Nr   rK   .z Tuple[t, ...]: t must be a type.r   z*Tuple[t0, t1, ...]: each t must be a type.c             3   s   |  ] } t  |    Vq d  S)N)r{   )r   r   )r   rC   rD   r     s    z(TupleMeta.__getitem__.<locals>.<genexpr>)r   r   r   rT   r   r   rj   rl   ri   r{   r   )r[   r   r   )rZ   )r   rD   r     s    	"zTupleMeta.__getitem__c             C   s,   |  j  d  k r t | t  St d   d  S)Nz5Parameterized Tuple cannot be used with isinstance().)r   rj   rl   rP   )r[   r   rC   rC   rD   r     s    zTupleMeta.__instancecheck__c             C   s,   |  j  d  k r t | t  St d   d  S)Nz5Parameterized Tuple cannot be used with issubclass().)r   r   rl   rP   )r[   rV   rC   rC   rD   r   
  s    zTupleMeta.__subclasscheck__)rA   rd   r@   r   r   r   r   rC   rC   )rZ   rD   r    s   r  c               @   s"   e  Z d  Z f  Z d d   Z d S)r   c             O   s.   t  |  t  r t d   t t |  | |  S)Nz6Type Tuple cannot be instantiated; use tuple() instead)r   r   rP   r  rl   )rV   r\   r]   rC   rC   rD   rU     s    zTuple.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   r     s   
r   c                   s^   e  Z d  Z   f d d   Z   f d d   Z   f d d   Z e   f d d    Z   S)	CallableMetac                s/   |  j  d  k r t   j   S|  j |  j    S)N)r   rT   rf   r   r   )r[   )rZ   rC   rD   rf   '  s    zCallableMeta.__repr__c                s   t  |   t k	 r" t   j |  Sg  } xW | d d   D]E } t | t  sd | j t |   q9 | j | d j |   q9 W| d d k r t | d  d | d St | d  d d j	 | d  d   | d f S)	NrK   r   z...z	[..., %s]z
[[%s], %s]z, r   r   )
r   r   rT   r   rj   rl   r   rS   r   rQ   )r[   r   r   ry   )rZ   rC   rD   r   ,  s    zCallableMeta._tree_reprc                s   |  j  d  k	 s t |  t  r/ t   j |  St | t  sQ t |  d k r] t d   | \ } } | t	 k r t	 | f } n4 t | t
  s t d | f   t |  | f } |  j |  S)Nr   z6Callable must be used as Callable[[arg, ...], result].z8Callable[args, result]: args must be a list. Got %.100r.)r   r   r   rT   r   rj   rl   ri   rP   Ellipsislist__getitem_inner__)r[   r   r\   result)rZ   rC   rD   r   <  s    "zCallableMeta.__getitem__c                s   | \ } } d   t  |    } | t k rC t   j t | f  Sd   t   f d d   | D  } | | f } t   j |  S)Nz.Callable[args, result]: result must be a type.z6Callable[[arg, ...], result]: each arg must be a type.c             3   s   |  ] } t  |    Vq d  S)N)r{   )r   ry   )r   rC   rD   r   X  s    z1CallableMeta.__getitem_inner__.<locals>.<genexpr>)r{   r  rT   r   r   rl   )r[   r   r\   r  )rZ   )r   rD   r  P  s    zCallableMeta.__getitem_inner__)rA   rd   r@   rf   r   r   r   r  rC   rC   )rZ   rD   r  $  s   r  c               @   s"   e  Z d  Z f  Z d d   Z d S)r   c             O   s1   t  |  t  r t d   t |  j |  | |  S)NzIType Callable cannot be instantiated; use a non-abstract subclass instead)r   r   rP   r  r   )rV   r\   r]   rC   rC   rD   rU   j  s    zCallable.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   r   ]  s   c                   sg   e  Z d  Z d Z d d d  Z d d   Z d d   Z   f d	 d
   Z d d   Z d d   Z	   S)r   __type__Nc             K   s   | |  _  d  S)N)r  )r[   tpr]   rC   rC   rD   r^     s    z_ClassVar.__init__c             C   sp   t  |   } |  j d  k rJ | t | d j | j d d     d d St d j | j d d      d  S)Nz{} accepts only single type.rK   rO   Tz {} cannot be further subscripted)rm   r  r{   formatrA   rP   )r[   itemrV   rC   rC   rD   r     s    		z_ClassVar.__getitem__c             C   s>   t  |  j | |  } | |  j k r( |  St |   | d d S)NrO   T)ra   r  rm   )r[   r_   r`   Znew_tprC   rC   rD   ra     s    z_ClassVar._eval_typec                s>   t    j   } |  j d  k	 r: | d j t |  j   7} | S)Nz[{}])rT   rf   r  r  rS   )r[   r)rZ   rC   rD   rf     s    z_ClassVar.__repr__c             C   s   t  t |   j |  j f  S)N)r   rm   rA   r  )r[   rC   rC   rD   r     s    z_ClassVar.__hash__c             C   s<   t  | t  s t S|  j d  k	 r2 |  j | j k S|  | k S)N)rj   r   r|   r  )r[   r}   rC   rC   rD   r~     s
    z_ClassVar.__eq__)r  )
rA   rd   r@   ro   r^   r   ra   rf   r   r~   rC   rC   )rZ   rD   r   q  s   	r   c             C   s   | S)NrC   )typvalrC   rC   rD   r6     s    c       
      C   s   y |  j  } Wn t k
 r% i  SYn X| j } | j } | d  |  } |  j pT f  } |  j } | rr t |  n i  } | t |  } x1 t | | d   |  D] \ } }	 |	 | | <q W| S)N)	__code__r  co_argcountco_varnames__defaults____kwdefaults__r   ri   zip)
r   rz   Z	pos_countZ	arg_namesdefaultsZ
kwdefaultsr   Z
pos_offsetrW   r   rC   rC   rD   _get_defaults  s    				&r"  c       	      C   s  t  |  d d   r i  S| d  k rI t  |  d i   } | d  k r[ | } n | d  k r[ | } t |  t  ri  } x t |  j  D] } | j j d i   } xi | j   D][ \ } } | d  k r t d   } t | t  r t	 |  } t
 | | |  } | | | <q Wq W| St  |  d d   } | d  k rUt |  t  r@i  St d j |     t |   } t |  } x | j   D] \ } } | d  k rt d   } t | t  rt	 |  } t
 | | |  } | | k r| | d  k rt | } | | | <qzW| S)N__no_type_check____globals____annotations__z1{!r} is not a module, class, method, or function.)r   rj   rm   reversedr   r   getitemsrk   rG   ra   _allowed_typesrP   r  r"  r   r   )	r   r_   r`   Zhintsr   ZannrW   r   r!  rC   rC   rD   r7     sL    		
c             C   s   t  |  t  r |  j j   } x9 |  j j   D]( \ } } | |  j k r. | j |  q. WxH | j   D]: } t  | t j	  r d | _
 t  | t  rg t |  qg Wy d |  _
 Wn t k
 r Yn X|  S)NT)rj   rm   r   copyr(  r   r   valuesr   r   r#  r9   rP   )ry   Z	arg_attrsr	  r  r   rC   rC   rD   r9     s    		c                s%   t  j      f d d    } | S)Nc                 s     |  |   } t  |  } | S)N)r9   )r\   r]   r   )	decoratorrC   rD   wrapped_decorator8  s    z2no_type_check_decorator.<locals>.wrapped_decorator)r   r   )r,  r-  rC   )r,  rD   r:   1  s    !c              O   s   t  d   d  S)NzYou should not call an overloaded function. A series of @overload-decorated functions outside a stub module should always be followed by an implementation that is not @overload-ed.)NotImplementedError)r\   r]   rC   rC   rD   _overload_dummyA  s    r/  c             C   s   t  S)N)r/  )r   rC   rC   rD   r;   J  s    c                   s:   e  Z d  Z   f d d   Z d d   Z d d   Z   S)_ProtocolMetac                s/   t  |  j k r t   j |  St d   d  S)Nz+Protocols cannot be used with isinstance().)r   r   rT   r   rP   )r[   r   )rZ   rC   rD   r   n  s    z_ProtocolMeta.__instancecheck__c                sd   |  j  s t S|  t k r d S|  j   } x4 | D],   t   f d d   | j D  s0 d Sq0 Wd S)NTc             3   s   |  ] }   | j  k Vq d  S)N)r   )r   d)r	  rC   rD   r     s    z2_ProtocolMeta.__subclasscheck__.<locals>.<genexpr>F)rg   r|   r   _get_protocol_attrsr   r   )r[   rV   attrsrC   )r	  rD   r   s  s    	"z_ProtocolMeta.__subclasscheck__c             C   s  g  } x? |  j  D]4 } t | d d  r | j d k r | j |  q Wt   } x<| D]4} x+| j j   D]} x|  j  D]5 } | | k	 r~ | | j k r~ t | d d  r~ Pq~ W| j d  rn | d k rn | d k rn | d k rn | d k rn | d k rn | d	 k rn | d
 k rn | d k rn | d k rn | d k rn | d k rn | d k rn | d k rn | d k rn | d k rn | j |  qn WqX W| S)Nrg   Fr   r  __abstractmethods__r%  rh   r   r   ro   r2  r   r   r   r   r   r   rd   )	r   r   rA   r   r   r   keysrL   add)r[   Zprotocol_basesr   r3  r   r	  rC   rC   rD   r2    s:    !	z!_ProtocolMeta._get_protocol_attrs)rA   rd   r@   r   r   r2  rC   rC   )rZ   rD   r0  g  s   r0  c               @   s   e  Z d  Z f  Z d Z d S)r   TN)rA   rd   r@   ro   rg   rC   rC   rC   rD   r     s   r   	Awaitablec               @   s   e  Z d  Z f  Z d S)r7  N)rA   rd   r@   ro   rC   rC   rC   rD   r7    s   	Coroutinec               @   s   e  Z d  Z f  Z d S)r8  N)rA   rd   r@   ro   rC   rC   rC   rD   r8    s   AsyncIterablec               @   s   e  Z d  Z f  Z d S)r9  N)rA   rd   r@   ro   rC   rC   rC   rD   r9    s   c               @   s   e  Z d  Z f  Z d S)AsyncIteratorN)rA   rd   r@   ro   rC   rC   rC   rD   r:    s   r:  c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r     s   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r     s   c               @   s1   e  Z d  Z f  Z e e d d d     Z d S)r*   )returnc             C   s   d  S)NrC   )r[   rC   rC   rD   __int__  s    zSupportsInt.__int__N)rA   rd   r@   ro   r   intr<  rC   rC   rC   rD   r*     s   c               @   s1   e  Z d  Z f  Z e e d d d     Z d S)r)   )r;  c             C   s   d  S)NrC   )r[   rC   rC   rD   	__float__  s    zSupportsFloat.__float__N)rA   rd   r@   ro   r   floatr>  rC   rC   rC   rD   r)     s   c               @   s1   e  Z d  Z f  Z e e d d d     Z d S)r(   )r;  c             C   s   d  S)NrC   )r[   rC   rC   rD   __complex__  s    zSupportsComplex.__complex__N)rA   rd   r@   ro   r   complexr@  rC   rC   rC   rD   r(     s   c               @   s1   e  Z d  Z f  Z e e d d d     Z d S)r'   )r;  c             C   s   d  S)NrC   )r[   rC   rC   rD   	__bytes__  s    zSupportsBytes.__bytes__N)rA   rd   r@   ro   r   bytesrB  rC   rC   rC   rD   r'     s   c               @   s1   e  Z d  Z f  Z e e d d d     Z d S)r&   )r;  c             C   s   d  S)NrC   )r[   rC   rC   rD   __abs__  s    zSupportsAbs.__abs__N)rA   rd   r@   ro   r   r   rD  rC   rC   rC   rD   r&     s   c               @   s7   e  Z d  Z f  Z e d e e d d d    Z d S)r+   r   )ndigitsr;  c             C   s   d  S)NrC   )r[   rE  rC   rC   rD   	__round__  s    zSupportsRound.__round__N)rA   rd   r@   ro   r   r=  r   rF  rC   rC   rC   rD   r+   	  s   c               @   s   e  Z d  Z f  Z d S)r%   N)rA   rd   r@   ro   rC   rC   rC   rD   r%     s   c               @   s1   e  Z d  Z f  Z e d d d d     Z d S)r%   zIterator[T_co])r;  c             C   s   d  S)NrC   )r[   rC   rC   rD   __reversed__  s    zReversible.__reversed__N)rA   rd   r@   ro   r   rG  rC   rC   rC   rD   r%     s   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r      s   
Collectionc               @   s   e  Z d  Z f  Z d S)rH  N)rA   rd   r@   ro   rC   rC   rC   rD   rH  %  s   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r   /  s   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r   3  s   c               @   s   e  Z d  Z f  Z d S)r!   N)rA   rd   r@   ro   rC   rC   rC   rD   r!   8  s   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r   >  s   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r   B  s   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r   G  s   c               @   s   e  Z d  Z f  Z d S)r"   N)rA   rd   r@   ro   rC   rC   rC   rD   r"   M  s   c               @   s   e  Z d  Z f  Z d S)r"   N)rA   rd   r@   ro   rC   rC   rC   rD   r"   Q  s   c               @   s   e  Z d  Z f  Z d S)r"   N)rA   rd   r@   ro   rC   rC   rC   rD   r"   U  s   c               @   s   e  Z d  Z f  Z d S)r    N)rA   rd   r@   ro   rC   rC   rC   rD   r    Z  s   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r   ^  s   c               @   s"   e  Z d  Z f  Z d d   Z d S)r0   c             O   s.   t  |  t  r t d   t t |  | |  S)Nz4Type List cannot be instantiated; use list() instead)r   r0   rP   r  r  )rV   r\   r]   rC   rC   rD   rU   f  s    zList.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   r0   b  s   c               @   s"   e  Z d  Z f  Z d d   Z d S)r-   c             O   s5   t  |  t  r t j | |   St t j |  | |  S)N)r   r-   collectionsdequer  )rV   r\   r]   rC   rC   rD   rU   q  s    zDeque.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   r-   m  s   c               @   s"   e  Z d  Z f  Z d d   Z d S)r1   c             O   s.   t  |  t  r t d   t t |  | |  S)Nz2Type Set cannot be instantiated; use set() instead)r   r1   rP   r  r   )rV   r\   r]   rC   rC   rD   rU   {  s    zSet.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   r1   w  s   c               @   s"   e  Z d  Z f  Z d d   Z d S)r2   c             O   s.   t  |  t  r t d   t t |  | |  S)Nz>Type FrozenSet cannot be instantiated; use frozenset() instead)r   r2   rP   r  r   )rV   r\   r]   rC   rC   rD   rU     s    zFrozenSet.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   r2     s   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r     s   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r     s   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r     s   c               @   s   e  Z d  Z f  Z d S)r$   N)rA   rd   r@   ro   rC   rC   rC   rD   r$     s   AbstractContextManagerc               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r     s   c               @   sI   e  Z d  Z f  Z d d   Z e j d d    Z e d d    Z	 d S)r   c             C   s   |  S)NrC   )r[   rC   rC   rD   	__enter__  s    zContextManager.__enter__c             C   s   d  S)NrC   )r[   exc_type	exc_value	tracebackrC   rC   rD   __exit__  s    zContextManager.__exit__c             C   sL   |  t  k rH t d d   | j D  rH t d d   | j D  rH d St S)Nc             s   s   |  ] } d  | j  k Vq d S)rL  N)r   )r   BrC   rC   rD   r     s    z2ContextManager.__subclasshook__.<locals>.<genexpr>c             s   s   |  ] } d  | j  k Vq d S)rP  N)r   )r   rQ  rC   rC   rD   r     s    T)r   r   r   r|   )rV   CrC   rC   rD   r     s
    zContextManager.__subclasshook__N)
rA   rd   r@   ro   rL  r   r   rP  classmethodr   rC   rC   rC   rD   r     s   AbstractAsyncContextManagerc               @   s   e  Z d  Z f  Z d S)AsyncContextManagerN)rA   rd   r@   ro   rC   rC   rC   rD   rU    s   rU     a  
class AsyncContextManager(Generic[T_co]):
    __slots__ = ()

    async def __aenter__(self):
        return self

    @abc.abstractmethod
    async def __aexit__(self, exc_type, exc_value, traceback):
        return None

    @classmethod
    def __subclasshook__(cls, C):
        if cls is AsyncContextManager:
            if sys.version_info[:2] >= (3, 6):
                return _collections_abc._check_methods(C, "__aenter__", "__aexit__")
            if (any("__aenter__" in B.__dict__ for B in C.__mro__) and
                    any("__aexit__" in B.__dict__ for B in C.__mro__)):
                return True
        return NotImplemented

__all__.append('AsyncContextManager')
c               @   s"   e  Z d  Z f  Z d d   Z d S)r.   c             O   s.   t  |  t  r t d   t t |  | |  S)Nz4Type Dict cannot be instantiated; use dict() instead)r   r.   rP   r  r   )rV   r\   r]   rC   rC   rD   rU     s    zDict.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   r.     s   c               @   s"   e  Z d  Z f  Z d d   Z d S)r/   c             O   s5   t  |  t  r t j | |   St t j |  | |  S)N)r   r/   rI  defaultdictr  )rV   r\   r]   rC   rC   rD   rU     s    zDefaultDict.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   r/     s   c               @   s"   e  Z d  Z f  Z d d   Z d S)r,   c             O   s5   t  |  t  r t j | |   St t j |  | |  S)N)r   r,   rI  r  )rV   r\   r]   rC   rC   rD   rU     s    zCounter.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   r,     s   ChainMapc               @   s"   e  Z d  Z f  Z d d   Z d S)rX  c             O   s5   t  |  t  r t j | |   St t j |  | |  S)N)r   rX  rI  r  )rV   r\   r]   rC   rC   rD   rU     s    zChainMap.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   rX     s   c               @   s"   e  Z d  Z f  Z d d   Z d S)r4   c             O   s.   t  |  t  r t d   t t |  | |  S)Nz@Type Generator cannot be instantiated; create a subclass instead)r   r4   rP   r  _G_base)rV   r\   r]   rC   rC   rD   rU     s    zGenerator.__new__N)rA   rd   r@   ro   rU   rC   rC   rC   rD   r4     s   AsyncGeneratorc               @   s   e  Z d  Z f  Z d S)rZ  N)rA   rd   r@   ro   rC   rC   rC   rD   rZ     s   CT_cor   c               @   s   e  Z d  Z f  Z d S)r   N)rA   rd   r@   ro   rC   rC   rC   rD   r   ,  s   c                s   d     f d d   | D } t  j |  d d   | D  } t  j |  | _ | _ y% t j d  j j d d  | _	 Wn t
 t f k
 r Yn X| S)NzDNamedTuple('Name', [(f0, t0), (f1, t1), ...]); each t must be a typec                s+   g  |  ]! \ } } | t  |    f  q SrC   )r{   )r   nr   )r   rC   rD   
<listcomp>I  s   	 z!_make_nmtuple.<locals>.<listcomp>c             S   s   g  |  ] \ } } |  q SrC   rC   )r   r\  r   rC   rC   rD   r]  J  s   	 r   rA   __main__)rI  
namedtupleOrderedDictr%  _field_typesr>   r  r  r'  rd   r  r   )rW   r   nm_tplrC   )r   rD   _make_nmtupleG  s    %rc  rU   r^   ro   __getnewargs___fields_field_defaultsra  _make_replace_asdict_sourcerd   rA   r@   r%  c                   s"   e  Z d  Z   f d d   Z   S)NamedTupleMetac                sb  | j  d d  r+ t   j |  | | |  St s= t d   | j  d i   } t | | j    } g  } i  } xq | D]i } | | k r | | }	 | j |	  |	 | | <qw | rw t d j d | d d j	 | j
       qw Wt |  | j _ | | _ x\ | D]T }
 |
 t k r+t d	 |
   q|
 t k r|
 | j k rt | |
 | |
  qW| S)
NrO   Fz<Class syntax for NamedTuple is only supported in Python 3.6+r%  zXNon-default namedtuple field {field_name} cannot follow default field(s) {default_names}
field_nameZdefault_namesz, z&Cannot overwrite NamedTuple attribute )r'  rT   rU   _PY36rP   rc  r(  r   r  rQ   r5  rl   r  rf  _prohibitedr  _specialre  setattr)rV   typenamerX   nsr   rb  r!  Zdefaults_dictrl  Zdefault_valuekey)rZ   rC   rD   rU   a  s2    
	zNamedTupleMeta.__new__)rA   rd   r@   rU   rC   rC   )rZ   rD   rk  _  s   rk  c               @   s%   e  Z d  Z d Z d d d  Z d S)r3   TNc             K   sS   | r t  r t d   | d  k r4 | j   } n | rF t d   t | |  S)Nz>Keyword syntax for NamedTuple is only supported in Python 3.6+zIEither list of fields or keywords can be provided to NamedTuple, not both)rm  rP   r(  rc  )r[   rq  ZfieldskwargsrC   rC   rD   rU     s    zNamedTuple.__new__)rA   rd   r@   rO   rU   rC   rC   rC   rD   r3     s   c             C   s"   d d   } |  | _  | | _ | S)Nc             S   s   |  S)NrC   )rB   rC   rC   rD   new_type  s    zNewType.<locals>.new_type)rA   Z__supertype__)rW   r  ru  rC   rC   rD   r8     s    		Fc               @   sa  e  Z d  Z f  Z e e d d d     Z e e d d d     Z e d d d d     Z	 e e
 d d	 d
     Z e e d d d     Z e d d d d     Z e e
 d d d     Z e d5 e e d d d    Z e e
 d d d     Z e d6 e e d d d    Z e d7 e e e d d d    Z e d e e e d d d     Z e e
 d d! d"     Z e e d d# d$     Z e d e e d% d& d'    Z e e
 d d( d)     Z e e e d* d+ d,     Z e e e d d- d. d/     Z e d0 d d1 d2     Z e d d d3 d4     Z d S)8IO)r;  c             C   s   d  S)NrC   )r[   rC   rC   rD   mode  s    zIO.modec             C   s   d  S)NrC   )r[   rC   rC   rD   rW     s    zIO.nameNc             C   s   d  S)NrC   )r[   rC   rC   rD   close  s    zIO.closec             C   s   d  S)NrC   )r[   rC   rC   rD   closed  s    z	IO.closedc             C   s   d  S)NrC   )r[   rC   rC   rD   fileno  s    z	IO.filenoc             C   s   d  S)NrC   )r[   rC   rC   rD   flush  s    zIO.flushc             C   s   d  S)NrC   )r[   rC   rC   rD   isatty  s    z	IO.isattyrK   )r\  r;  c             C   s   d  S)NrC   )r[   r\  rC   rC   rD   read  s    zIO.readc             C   s   d  S)NrC   )r[   rC   rC   rD   readable  s    zIO.readable)limitr;  c             C   s   d  S)NrC   )r[   r  rC   rC   rD   readline  s    zIO.readline)hintr;  c             C   s   d  S)NrC   )r[   r  rC   rC   rD   	readlines	  s    zIO.readlinesr   )offsetwhencer;  c             C   s   d  S)NrC   )r[   r  r  rC   rC   rD   seek	  s    zIO.seekc             C   s   d  S)NrC   )r[   rC   rC   rD   seekable
	  s    zIO.seekablec             C   s   d  S)NrC   )r[   rC   rC   rD   tell	  s    zIO.tell)sizer;  c             C   s   d  S)NrC   )r[   r  rC   rC   rD   truncate	  s    zIO.truncatec             C   s   d  S)NrC   )r[   rC   rC   rD   writable	  s    zIO.writable)sr;  c             C   s   d  S)NrC   )r[   r  rC   rC   rD   write	  s    zIO.write)linesr;  c             C   s   d  S)NrC   )r[   r  rC   rC   rD   
writelines	  s    zIO.writelinesz
IO[AnyStr]c             C   s   d  S)NrC   )r[   rC   rC   rD   rL  "	  s    zIO.__enter__c             C   s   d  S)NrC   )r[   rm   r   rO  rC   rC   rD   rP  &	  s    zIO.__exit__r   r   r   )rA   rd   r@   ro   r   rk   rw  rW   r   rx  r   ry  r=  rz  r{  r|  r5   r}  r~  r  r0   r  r  r  r  r  r  r  r  rL  rP  rC   rC   rC   rD   rv    sR   "!rv  c               @   sY   e  Z d  Z f  Z e e e e f e d d d     Z	 e d  d d d     Z
 d S)BinaryIO)r  r;  c             C   s   d  S)NrC   )r[   r  rC   rC   rD   r  0	  s    zBinaryIO.write)r;  c             C   s   d  S)NrC   )r[   rC   rC   rD   rL  4	  s    zBinaryIO.__enter__N)rA   rd   r@   ro   r   r   rC  	bytearrayr=  r  rL  rC   rC   rC   rD   r  +	  s
   %r  c               @   s   e  Z d  Z f  Z e e d d d     Z e e d d d     Z e e	 e d d d     Z
 e e d d d	     Z e e d d
 d     Z e d  d d d     Z d S)TextIO)r;  c             C   s   d  S)NrC   )r[   rC   rC   rD   buffer>	  s    zTextIO.bufferc             C   s   d  S)NrC   )r[   rC   rC   rD   encodingB	  s    zTextIO.encodingc             C   s   d  S)NrC   )r[   rC   rC   rD   errorsF	  s    zTextIO.errorsc             C   s   d  S)NrC   )r[   rC   rC   rD   line_bufferingJ	  s    zTextIO.line_bufferingc             C   s   d  S)NrC   )r[   rC   rC   rD   newlinesN	  s    zTextIO.newlinesc             C   s   d  S)NrC   )r[   rC   rC   rD   rL  R	  s    zTextIO.__enter__N)rA   rd   r@   ro   r   r  r  rk   r  r   r  r   r  r
   r  r   rL  rC   rC   rC   rD   r  9	  s   r  c               @   s1   e  Z d  Z d d d g Z e Z e Z e Z d S)iorv  r  r  N)rA   rd   r@   __all__rv  r  r  rC   rC   rC   rD   r  W	  s   r  z.ioPatternr   c             C   s   |  j  S)N)pattern)r   rC   rC   rD   <lambda>e	  s    r  Matchc             C   s
   |  j  j S)N)rer  )mrC   rC   rD   r  g	  s    c               @   s(   e  Z d  Z d d g Z e Z e Z d S)r  r  r  N)rA   rd   r@   r  r  r  rC   rC   rC   rD   r  j	  s   r  z.re)r   r   r   rI  
contextlibr   r  Z	stdlib_rer>   r   collections.abcZcollections_abcImportErrorr?   _collections_abcr   r   r	   rm   r   r^   __str__rk   rQ   r  rE   rM   rN   rH   rI   rG   rF   rc   r   ra   r{   rS   r   r
   r   ZNoReturnr   r   r   r   r   r   r   r   rC  r5   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  rl   r   r  r   r   r   r6   r"  r   BuiltinFunctionType
MethodType
ModuleTyper)  r7   r9   r:   r/  r;   r0  r   r   r   r7  r   r8  r9  r:  r   r   r*   r)   r(   r'   r&   r+   r%   r#   r   rH  r1   r   r!   r   r   r"   r    r=  r   r  r0   rJ  r-   r   r   r2   r   r   r   r$   rK  r   rT  rU  execr   r.   rW  r/   r,   rX  r4   rY  GeneratorTyperZ  r[  r   rc  rm  rn  ro  rk  r3   r8   r<   r=   rv  r  r  r  rA   modulesrw   r  matchr  rC   rC   rC   rD   <module>   s   	*%5CW!) ""9"6I	C	#'###&	#!!#$.)!!###)
##
&#&)#
/
#	'	
$ 	!(`	