
    4bh4                       	 d dl mZm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Zd dlmZmZmZmZ d dlmZmZmZmZmZmZmZmZ g dZdddd	ZddddZd Zd Z d Z!d Z"d Z#d Z$dddZ%d Z&d Z'd Z(d Z)g Z*i Z+ddddZ,d e-       ddZ. G d d      Z/ G d d      Z0 G d  d!e/e0d
"      Z1 G d# d$e1d
"      Z2 G d% d&e3      Z4 G d' d(e4)      Z5e1d*        Z6e1d+        Z7e1d,        Z8e1d-        Z9e1d.        Z:e1d/        Z;e1d0        Z<d1 Z=e1d2        Z>e2 e,d
      d3               Z?e1d4        Z@e1d5        ZAe1d6        ZB G d7 d8e/d
"      ZCd9e5d:eDfd;ZEd9e5d:eDfd<ZF G d= d>      ZGd? ZHd@ ZIdA ZJdB ZKe,dC        ZLdD ZMdE ZN G dF dGe/d
"      ZO G dH dIeOd
"      ZP G dJ dKe0eOd
"      ZQ G dL dMeQd
"      ZR G dN dOe0ePd
"      ZS G dP dQeQd
"      ZT G dR dSeQd
"      ZU G dT dUe0ePd
"      ZVdV ZW G dW dXePd
"      ZX G dY dZePd
"      ZYe1d[        ZZ G d\ d]ePd
"      Z[ G d^ d_      Z\ e-h d`      Z] e-h da      Z^e]e^z  dbhz  Z_dc Z`dd ZaddfZbddhZcg didjdkgdlZdej                  dm        Zfe*j                  efj                         dn Zi ej                  eei       do Zk ej                  eek       [i[k G dp dqe      Zlemdr        Zn G ds dteel)      Zo G du dve0ePd
"      Zp G dw dx      Zqdy Zrdz Zsd{ Ztej                  ej                  ej                  ej                  eeefZydd|Zzd} Z{d~ Z|d Z}d Z~dZde7d:e7fdZd Zd Zd Z e ej                  ee            Zd Zd Zd Zd Z ed      Z ed      Z ed      Z edd
      Z edd
      Z edd
      Z edd
      Z edd
e3      Z edee      ZeQZ eej                   j.                  d       Z eej                   j0                  de      Z eej                   j2                  d      Z eej                   j4                  de      Z eej                   j6                  de      Z eej                   j8                  de      Z eej                   j:                  de      Z eej                   j<                  de      Z eej                   j>                  d       Z eej                   j@                  de      Z eej                   jB                  de      Z eTej                   jD                  dg      Zde_         eej                   jH                  ded      Z eej                   jL                  de      Z eej                   jN                  dg      Z eej                   jP                  dg      Z eej                   jR                  de      Z eej                   jT                  de      Z eRej                   jV                  d d      Z eUeddd      Zde_         eededd      Z eej`                  ded      Z eededd      Z ee-dedd      Z eej                   jh                  de      Z eej                   jj                  de      Z eej                   jl                  dg      Z eej                   jn                  de      Z eejp                  ded      Z eejt                  ded      Z eedgdd      Z eej                  dgd      Z eej|                  dg      Z eej~                  de      Z eej                  dg      Z eej                   j                  d      Z eej                   j                  dg      Z ee3dedd      Zde_        er G d deo             Zer G d deo             Zer G d deo             Zer G d deo             Zer G d deo             Zer d               Zer d               ZddZ e-h d      Z e-h d      Z G d de3      ZddZe3j                  eddi       Zd Zee_         G d de3      Zdd
ddÄZe3j                  eddi       Zdń e_        e1dƄ        Ze1dǄ        Z G dȄ dɫ      ZeZdZ G dʄ dee         Z G d̄ dee         Z G d΄ dee         Z G dЄ de3      Z G d҄ de߬)      Zedz   e_        eej                  ej                  <    eej                  de      Z eej                  de      Z G dՄ de߬)      Z
edz   e
_        e
ej                  e
j                  <    d؄        Z G dل deo      Zd
dddddۜdeDdeDdeDdeDdee3e5   ede5f   z  df   de5d:efdZddd fZ d        Zy)    )abstractmethodABCMetaN)defaultdict)WrapperDescriptorTypeMethodWrapperTypeMethodDescriptorTypeGenericAlias)_idfuncTypeVar	ParamSpecTypeVarTupleParamSpecArgsParamSpecKwargsTypeAliasTypeGeneric)c	AnnotatedAnyCallableClassVarConcatenateFinal
ForwardRefr   LiteralOptionalr   ProtocolTupleTyper   r   UnionAbstractSet
ByteString	ContainerContextManagerHashable	ItemsViewIterableIteratorKeysViewMappingMappingViewMutableMappingMutableSequence
MutableSetSequenceSized
ValuesView	AwaitableAsyncIteratorAsyncIterable	Coroutine
CollectionAsyncGeneratorAsyncContextManager
ReversibleSupportsAbsSupportsBytesSupportsComplexSupportsFloatSupportsIndexSupportsIntSupportsRoundChainMapCounterDequeDictDefaultDictListOrderedDictSet	FrozenSet
NamedTuple	TypedDict	GeneratorBinaryIOIOMatchPatternTextIOAnyStrassert_typeassert_nevercastclear_overloadsdataclass_transformfinalget_args
get_originget_overloadsget_type_hintsis_typeddictLiteralStringNeverNewTypeno_type_checkno_type_check_decoratorNoReturnNotRequiredoverloadoverrider   r   Requiredreveal_typeruntime_checkableSelfTextTYPE_CHECKING	TypeAlias	TypeGuardr   UnpackFallow_special_formsc                ^    	 | t        d       S t        | t              rt        | ||      S | S )N)moduleis_class)type
isinstancestrr   )argrq   ro   s      0/opt/python-3.12.12/usr/lib/python3.12/typing.py_type_convertrx      s3    G
{Dz#s#f7JKKJ    Tc                   	 t         t        f}|s|t        fz  }|r
|t        fz  }t	        | ||      } t        | t              r| j                  |v rt        |  d      | t        t        t        t        t        t        fv r| S |r| t        t        fv r| S t        | t              s| t         t        fv rt        d|  d      t!        |       t"        u rt        | d| dd      | S )N)rq   ro    is not valid as type argumentzPlain z Got z.100.)r   r   r   r   rx   rt   _GenericAlias
__origin__	TypeErrorr   r\   ra   r]   rh   rk   _SpecialFormrs   tuple)rv   msgis_argumentrq   ro   invalid_generic_formss         rw   _type_checkr      s    
 %h/(,!eX-!
F@S
TC3&NN333%=>??
sM8UD)DD
sx&77
#|$/B(B&%CDEECyE3%uS4L233Jry   c                 N    | du xs  t        | t        t        t        t        f      S N.)rt   r   listr   _ConcatenateGenericAlias)rv   s    rw   _is_param_exprr      s,    #: @CD)%=>@ @ry   c                     	 | j                   t        j                  j                  u xr t	        |      dk(  xr t        |d          S )N   r   )r~   collectionsabcr   lenr   )typargss     rw   _should_unflatten_callable_argsr      sE    $ 	+//222 	=Ta;N47$;<ry   c                 X   	 t        | t              r6| j                  dk(  r| j                  S | j                   d| j                   S | du ryt        | t        j
                        r| j                  S t        | t              rddj                  d | D              z   dz   S t        |       S )	Nbuiltinsr|   ....[, c              3   2   K   | ]  }t        |        y wN)
_type_repr).0ts     rw   	<genexpr>z_type_repr.<locals>.<genexpr>  s     :cz!}c   ])
rt   rs   
__module____qualname__typesFunctionType__name__r   joinreprobjs    rw   r   r      s     #t>>Z'###..!3#3#3"455
cz#u))*||#uTYY:c:::S@@9ry   c                 b   	 g }| D ]  }t        |t              rt        |t              r/|D ])  }t        |g      D ]  }||vs|j	                  |        + St        |d      r||vsd|j	                  |       vt        |dd      D ]  }||vs|j	                  |         t        |      S N__typing_subst____parameters__ )rt   rs   r   _collect_parametersappendhasattrgetattr)r   
parametersr   x	collecteds        rw   r   r     s    	 Ja5! !4aS!9I 
2")))4 ":  Q*+
"!!!$Q 0"5J&%%a( 6 $ ry   c           
          	 |st        |  d      t        |      }||k7  rt        d||kD  rdnd d|  d| d|       y )N is not a generic classToo manyfew arguments for 	; actual , expected )r   r   )clsr   elenalens       rw   _check_genericr   '  sm     3%6788z?Dt|$v%@PSu U##'&D6; < 	< ry   c                     g }| D ]=  }t        |dd       }||r|d   du s|j                  |       -|j                  |       ? |S )N__typing_unpacked_tuple_args__.)r   extendr   )r   newargsrv   subargss       rw   _unpack_argsr   3  sR    G#?FGBK34FNN7#NN3  Nry   unhashable_fallbackc                h    	 t         j                  |       S # t        $ r |s t        |       cY S w xY wr   )dictfromkeysr   _deduplicate_unhashable)paramsr   s     rw   _deduplicater   =  s6    /}}V$$ /"&v..	/s    11c                 D    g }| D ]  }||vs|j                  |        |S r   )r   )unhashable_paramsnew_unhashabler   s      rw   r   r   G  s/    NN"!!!$  ry   c                     t        |       }t        |      }t        |      }	 |D ]  }|j                  |        	 | S # t        $ r Y yw xY w)NF)r   r   remove
ValueError)
first_argssecond_argsfirst_unhashablesecond_unhashabler   elems         rw   _compare_args_orderlessr   N  sZ    .z:/<A$DHHTN % 5L  s   ? 	A
Ac                     	 g }| D ]O  }t        |t        t        j                  f      r|j	                  |j
                         ?|j                  |       Q t        t        |d            S )NTr   )	rt   _UnionGenericAliasr   	UnionTyper   __args__r   r   r   r   r   ps      rw   _remove_dups_flattenr   Y  s\    
 Fa,eoo>?MM!**%MM!	  f$?@@ry   c                     	 g }| D ]?  }t        |t              r|j                  |j                         /|j	                  |       A t        |      S r   )rt   _LiteralGenericAliasr   r   r   r   r   s      rw   _flatten_literal_paramsr   i  sG    RFa-.MM!**%MM!	 
 =ry   typedc               (    	 fd}|  ||       S |S )Nc                       t        j                               }|t         <   t        j	                  |j
                         ~t        j                          fd       }|S )Nr   c                  P    	 t           | i |S # t        $ r Y nw xY w | i |S r   )_cachesr   )r   kwdsfuncs     rw   innerz+_tp_cache.<locals>.decorator.<locals>.inner  s>    t}d3d33 &&&s    	)	functools	lru_cacher   	_cleanupsr   cache_clearwraps)r   cacher   r   s   `  rw   	decoratorz_tp_cache.<locals>.decorator}  s^     1	##%06**+			' 
	' ry   r   )r   r   r   s    ` rw   	_tp_cacher   x  s%    ( ry   recursive_guardc                   	 t        | t              r| j                        S t        | t        t        t
        j                  f      rt        | t              rft        d | j                  D              }| j                  }t        | |      r| j                  |d d |d   f   } n| j                  |   } |r	t        |    } t        fd| j                  D              }|| j                  k(  r| S t        | t              rt	        | j                  |      S t        | t
        j                        r$t        j                  t        j                   |      S | j#                  |      S | S )Nr   c              3   V   K   | ]!  }t        |t              rt        |      n| # y wr   )rt   ru   r   r   rv   s     rw   r   z_eval_type.<locals>.<genexpr>  s*      %C $.c3#7
3S@%s   ')r   c              3   >   K   | ]  }t        |         yw)r   N)
_eval_type)r   aglobalnslocalnsr   type_paramss     rw   r   z_eval_type.<locals>.<genexpr>  s2      
   8Wk?   s   )rt   r   	_evaluater}   r	   r   r   r   r   __unpacked__r   r~   rm   r   reduceoperatoror_	copy_with)r   r   r   r  r   r   is_unpackedev_argss    ````   rw   r   r     s5    !Z {{8Wk?{[[!m\5??CDa& :: D ..K.q$7LL$s)T"X!67LL&1I 
 ZZ	
 
 ajj Ha&g66a)##HLL'::;;w''Hry   c                       e Zd Z	 dZd Zy)_Final)__weakref__c                "    d|vrt        d      y )N_rootz&Cannot subclass special typing classesr   )r   r   r   s      rw   __init_subclass__z_Final.__init_subclass__  s    $DEE ry   N)r   r   r   	__slots__r  r   ry   rw   r  r    s    ( IFry   r  c                       e Zd Z	 dZdZy)_NotIterabler   N)r   r   r   r  __iter__r   ry   rw   r  r    s     IHry   r  c                   \    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zed        Zy)r   )_name__doc___getitemc                 V    || _         |j                  | _        |j                  | _        y r   )r  r   r  r  )selfgetitems     rw   __init__z_SpecialForm.__init__  s!    %%
ry   c                 8    |dv r| j                   S t        |      )N>   r   r   )r  AttributeError)r  items     rw   __getattr__z_SpecialForm.__getattr__  s     //::T""ry   c                     t        d|       )NCannot subclass r  r  basess     rw   __mro_entries__z_SpecialForm.__mro_entries__  s    *4(344ry   c                      d| j                   z   S Ntyping.r  r  s    rw   __repr__z_SpecialForm.__repr__      4::%%ry   c                     | j                   S r   r)  r*  s    rw   
__reduce__z_SpecialForm.__reduce__      zzry   c                     t        d|       )NzCannot instantiate r  )r  r   r   s      rw   __call__z_SpecialForm.__call__  s    -dX677ry   c                     t         | |f   S r   r   r  others     rw   __or__z_SpecialForm.__or__      T5[!!ry   c                     t         || f   S r   r3  r4  s     rw   __ror__z_SpecialForm.__ror__      UD[!!ry   c                     t        |  d      )Nz! cannot be used with isinstance()r  r  r   s     rw   __instancecheck__z_SpecialForm.__instancecheck__      4& ABCCry   c                     t        |  d      )Nz! cannot be used with issubclass()r  r  r   s     rw   __subclasscheck__z_SpecialForm.__subclasscheck__   r>  ry   c                 &    | j                  | |      S r   )r  r  r   s     rw   __getitem__z_SpecialForm.__getitem__  s    }}T:..ry   N)r   r   r   r  r  r   r%  r+  r.  r1  r6  r9  r=  rA  r   rD  r   ry   rw   r   r     sO    0I'
#5&8""DD / /ry   r   )r  c                       e Zd Zd Zy)_LiteralSpecialFormc                 N    t        |t              s|f} | j                  | g| S r   )rt   r   r  rC  s     rw   rD  z_LiteralSpecialForm.__getitem__	  s)    *e,$Jt}}T/J//ry   N)r   r   r   rD  r   ry   rw   rF  rF    s    0ry   rF  c                   (     e Zd Z fdZ fdZ xZS )_AnyMetac                 H    | t         u rt        d      t        |   |      S )Nz+typing.Any cannot be used with isinstance())r   r   superr=  )r  r   	__class__s     rw   r=  z_AnyMeta.__instancecheck__  s&    3;IJJw(--ry   c                 2    | t         u ryt        | 	         S )Nz
typing.Any)r   rK  r+  )r  rL  s    rw   r+  z_AnyMeta.__repr__  s    3;w!!ry   )r   r   r   r=  r+  __classcell__rL  s   @rw   rI  rI    s    .
" "ry   rI  c                         e Zd Z	  fdZ xZS )r   c                 H    | t         u rt        d      t        |   |       S )NzAny cannot be instantiated)r   r   rK  __new__r   r   kwargsrL  s      rw   rR  zAny.__new__'  s%    #:899ws##ry   )r   r   r   rR  rN  rO  s   @rw   r   r     s    	$ $ry   r   )	metaclassc                      	 t        |  d      Nz is not subscriptabler  rC  s     rw   ra   ra   -  s     tf12
33ry   c                      	 t        |  d      rW  r  rC  s     rw   r]   r]   B  s    ( tf12
33ry   c                      	 t        |  d      rW  r  rC  s     rw   rh   rh   [  s     tf12
33ry   c                      	 t        |  d      rW  r  rC  s     rw   r\   r\   o  s    , tf12
33ry   c                 <    	 t        ||  d      }t        | |f      S N accepts only single type.r   r}   r  r   r  s      rw   r   r     ,    " zdV+E#FGDw''ry   c                 <    	 t        ||  d      }t        | |f      S r\  r^  r_  s      rw   r   r     r`  ry   c                    	 |dk(  rt        d      t        |t              s|f}dt        fd|D              }t        |      }t	        |      dk(  r|d   S t	        |      dk(  rt        d       |v rt        | |d	      S t        | |      S )
Nr   z Cannot take a Union of no types.z)Union[arg, ...]: each arg must be a type.c              3   6   K   | ]  }t        |        y wr   r   r   r   r   s     rw   r   zUnion.<locals>.<genexpr>  s     ?Jq{1c*J      r   r   r   name)r   rt   r   r   r   rs   r   r  r   r   s     @rw   r   r     s    : R:;;j%( ]

5C?J??J%j1J
:!!}
:!T
j 8!$
DDdJ//ry   c                     	 t         | |f   S r   r3  )leftrights     rw   _make_unionrn    s     ury   c                 J    	 t        ||  d      }t        |t        d       f   S )Nz requires a single type.)r   r   rs   )r  r   rv   s      rw   r   r     s,    6
jTF*B"C
DCd4j!!ry   c           
          	 t        |      }	 t        d t        t        t	        |                  D              }t        | |      S # t
        $ r Y w xY w)Nc              3   &   K   | ]	  \  }}|  y wr   r   )r   r   _s      rw   r   zLiteral.<locals>.<genexpr>  s     ^)]A1)]s   )r   r   r   r   _value_and_type_iterr   r   rC  s     rw   r   r     s\    , )4J^d;OPZ;[6\)]^^
  j11  s   -A 	AAc                      	 t        |  d      rW  r  rC  s     rw   rk   rk     s     tf12
33ry   c                     	 |dk(  rt        d      t        |t              s|f}|d   du st        |d   t              st        d      dg fd|d d D        |d   }t	        | |      S )Nr   z&Cannot take a Concatenate of no types.r   .zMThe last parameter to Concatenate should be a ParamSpec variable or ellipsis.z/Concatenate[arg, ...]: each arg must be a type.c              3   6   K   | ]  }t        |        y wr   rd  re  s     rw   r   zConcatenate.<locals>.<genexpr>;  s     AAK3'rf  )r   rt   r   r   r   rj  s     @rw   r   r   %  s     R@AAj%( ]
rNc!Z
2	%J : ; 	;
;CRACRAR:b>RJ#D*55ry   c                 <    	 t        ||  d      }t        | |f      S r\  r^  r_  s      rw   rl   rl   ?  s-    .^ zdV+E#FGDw''ry   c                   F    e Zd Z	 dZddddZddZd Zd Zd	 Zd
 Z	d Z
y)r   )__forward_arg____forward_code____forward_evaluated____forward_value____forward_is_argument____forward_is_class____forward_module__NF)rr   c                (   t        |t              st        d|      |j                  d      rd| d}n|}	 t	        |dd      }|| _        || _        d| _        d | _	        || _
        || _        || _        y # t
        $ r t        d|      w xY w)	Nz*Forward reference must be a string -- got *(z,)[0]z<string>evalz/Forward reference must be an expression -- got F)rt   ru   r   
startswithcompileSyntaxErrorry  rz  r{  r|  r}  r~  r  )r  rv   r   rq   rr   arg_to_compilecodes          rw   r  zForwardRef.__init__|  s    #s#HPQQ
 >># U^N N	Y>:v>D  # $%*"!%'2$$,!"(  	Y OPSwWXX	Ys   A9 9Bc                l   | j                   |v r| S | j                  r||ur||i x}}n	||}n||}| j                  5t        t        j
                  j                  | j                  d       d|      }|rQt        |      t        |      }}|D ]6  }|j                  }| j                  r||vs |||<   |j                  |d        8 t        t        | j                  ||      d| j                  | j                        }t        |||||| j                   hz        | _        d| _        | j                   S )N__dict__z*Forward references must evaluate to types.)r   ro   r   T)ry  r{  r  r   sysmodulesgetr   r   r~  popr   r  rz  r}  r   r|  )r  r   r   r  r   param
param_nametype_s           rw   r  zForwardRef._evaluate  sG   ?2K))WH-DGO%''7!""&&2"KKOOD$;$;TBJPX $(NDM'(E!&J44
(8R/4,J5	 )  T**Hg>< 88$($=$=	E &0!0D4H4H3I!I&D" *.D&%%%ry   c                 .   t        |t              st        S | j                  r@|j                  r4| j                  |j                  k(  xr | j
                  |j
                  k(  S | j                  |j                  k(  xr | j                  |j                  k(  S r   )rt   r   NotImplementedr{  ry  r|  r  r4  s     rw   __eq__zForwardRef.__eq__  s    %,!!%%%*E*E((E,A,AA F**e.E.EEG$$(=(== D''5+C+CC	Ery   c                 D    t        | j                  | j                  f      S r   )hashry  r  r*  s    rw   __hash__zForwardRef.__hash__  s    T))4+B+BCDDry   c                     t         | |f   S r   r3  r4  s     rw   r6  zForwardRef.__or__  r7  ry   c                     t         || f   S r   r3  r4  s     rw   r9  zForwardRef.__ror__  r:  ry   c                 b    | j                   d}nd| j                   }d| j                  | dS )N z	, module=zForwardRef())r  ry  )r  module_reprs     rw   r+  zForwardRef.__repr__  s@    ""*K%d&=&=%@AKT114[MCCry   TNr   )r   r   r   r  r  r  r  r  r6  r9  r+  r   ry   rw   r   r   t  s:    7'I
)u )0,&\EE""Dry   r   r   returnc                 B    t        | t               xr t        | dd      S )N#__typing_is_unpacked_typevartuple__F)rt   rs   r   r   s    rw   _is_unpacked_typevartupler    s(    At$$ EA<eDFry   c                 H    t        | t        t        f      xs t        |       S r   )rt   r   r   r  r  s    rw   _is_typevar_liker    s    a'9-.N2KA2NNry   c                       e Zd Z	 d Zy)_PickleUsingNameMixinc                     | j                   S r   r   r*  s    rw   r.  z _PickleUsingNameMixin.__reduce__  s    }}ry   N)r   r   r   r.  r   ry   rw   r  r    s
    9ry   r  c                     d}t        ||d      }t        |t              r|j                  t        u st        |t
              rt        |dd      rt        | d      |S )N*Parameters to generic types must be types.T)r   r  Fr{   )r   rt   r}   r~   rm   r	   r   r   )r  rv   r   s      rw   _typevar_substr    sW    
6C
c3D
1C	C	'CNNf,D	C	&73+N3%=>??Jry   c           	         |j                   }|j                  |       }||dz   d  D ]   }t        |t              st	        d|        t        |      }t        |      }|}||z
  dz
  }	d }
d }t        |      D ]Q  \  }}t        |t              rt        |dd       }|s't        |      dk(  s6|d   du s>|
t	        d      |}
|d   }S |
t        ||
      }t        |	||
z
  dz
        }	n||	z   |kD  rt	        d	| d
| d|dz
         g |d | |g||z
  z  t        ||||	z
         |g||	z
  |z
  |z
  dz
  z  |||	z
  d  S )Nrg  z(More than one TypeVarTuple parameter in r   r   r   .z6More than one unpacked arbitrary-length tuple argumentr   Too few arguments for r   z, expected at least )r   indexrt   r   r   r   	enumeraters   r   minr   )r  aliasr   r   typevartuple_indexr  r   plenrl  rm  var_tuple_indexfillargkrv   r   s                  rw   _typevartuple_prepare_substr    s   !!Fd+*Q./0e\*FugNOO 1 t9Dv;DD%%)EOGD/3#t$c#CTJG3w<1,1C".#$\]]"#!!* " "4)E4/1A56		0 8##'&(<T!VHF G 	G	et)'$.
/ 	d4&' )TE\D(+==A
B	
 
dUlm	 ry   c                     t        |t        t        f      rt        d |D              }|S t        |      st	        d|       |S )Nc              3   4   K   | ]  }t        |d         yw)zExpected a type.Nrd  r   r   s     rw   r   z#_paramspec_subst.<locals>.<genexpr>  s     D1K#56   zFExpected a list of types, an ellipsis, ParamSpec, or Concatenate. Got )rt   r   r   r   r   r  rv   s     rw   _paramspec_substr    sU    #e}%DDD J C  ::=@ A 	AJry   c                    |j                   }|j                  |       }|t        |      k\  rt        d|       t        |      dk(  rt	        |d         s|f}|S t        ||   t              rg |d | t        ||         ||dz   d  }|S )Nr  rg  r   )r   r  r   r   r   rt   r   r   )r  r  r   r   is        rw   _paramspec_prepare_substr  #  s    !!FTACI~0899
6{atAw 7w K 
DGT	"7bq75a>7D1J7Kry   c                    	 t        |t              s|f}t        d |D              }| t        t        fv }|r|st	        d| j
                   d      t        d |D              st	        d| j                   d      t        t        |            t        |      k7  rt	        d| j                   d      | j                  D ]  }t        |dd       }| || |      } t        | |t        | j                               g }t        | j                  |      D ]8  \  }}t        |t              r|j                  |       (|j!                  |       : t        |      }t#        | |      S )	Nc              3   2   K   | ]  }t        |        y wr   rx   r   r   s     rw   r   z)_generic_class_getitem.<locals>.<genexpr>@  s     4V=#Vr   zParameter list to z[...] cannot be emptyc              3   2   K   | ]  }t        |        y wr   )r  r  s     rw   r   z)_generic_class_getitem.<locals>.<genexpr>I  s     71#A&r   zParameters to zF[...] must all be type variables or parameter specification variables.z[...] must all be unique__typing_prepare_subst__)rt   r   r   r   r   r   allr   r   setr   r   r   zipr   r   r   r}   )r   r   is_generic_or_protocolr  preparenew_argsnew_args          rw   _generic_class_getitemr  2  sp    fe$4V44F Wh$77$S%5%5$66KL  777  /8 9: : s6{s6{* .FGI I ''Ee%?FG" f- ( 	sFC(:(:$;<!#"4"4f=NE7%.((	 >
 xf%%ry   c                   
 t        t        | 
  |i | g }d| j                  v rt        | j                  v }n7t        | j
                  v xr# | j                  dk7  xr t        |       t        k7  }|rt        d      d| j                  v rt        | j                        }d }| j                  D ]?  }t        |t              s|j                  t        u s'|t        d      |j                  }A |at        |      }t        |      
|
k  sDdj!                  
fd|D              }dj!                  d |D              }	t        d| d	|	 d
      |}t#        |      | _        y )N__orig_bases__r   z!Cannot inherit from plain Genericz0Cannot inherit from Generic[...] multiple times.r   c              3   >   K   | ]  }|vst        |        y wr   ru   )r   r   gvarsets     rw   r   z)_generic_init_subclass.<locals>.<genexpr>  s     "M5aAW<L3q65s   	c              3   2   K   | ]  }t        |        y wr   r  )r   gs     rw   r   z)_generic_init_subclass.<locals>.<genexpr>  s     "95a3q65r   zSome type variables (z) are not listed in Generic[r   )rK  r   r  r  r  	__bases__r   rs   _TypedDictMetar   r   rt   r}   r~   r   r  r   r   )r   r   rT  tvarserrorgvarsbasetvarsets_varss_argsr  s             @rw   _generic_init_subclassr  c  sl   	'3)4:6:E3<<'3---CMM) 0LLJ.0I/ 	 ;<<3<<'#C$6$67 &&D4/OOw.$#JL L++ ' %jG%jGg%"M5"MM"95"99"7x @::@!D E EEuCry   c                 J    | j                  d      xr | j                  d      S )N__)r  endswith)attrs    rw   
_is_dunderr    s    ??4 8T]]4%88ry   c                   V     e Zd Z	 ddddZd Zd Zd Z fdZd	 Zd
 Z	 fdZ
 xZS )_BaseGenericAliasTNinstri  c                <    || _         || _        || _        d | _        y r   )_instr  r~   r  )r  originr  ri  s       rw   r  z_BaseGenericAlias.__init__  s    

 ry   c                     | j                   s0t        d| j                   d| j                  j                   d       | j                  |i |}	 | |_        |S # t        $ r Y |S w xY w)NzType z cannot be instantiated; use z
() instead)r  r   r  r~   r   __orig_class__	Exception)r  r   rT  results       rw   r1  z_BaseGenericAlias.__call__  s    zzeDJJ< 0##'??#;#;"<JH I I $1&1	$(F!
   		s   A 	A&%A&c                 ,   g }| j                   |vr|j                  | j                          |j                  |       }||dz   d  D ].  }t        |t              st        |t              s$ t        |      S  |j                  t               t        |      S )Nrg  )r~   r   r  rt   r  
issubclassr   r   )r  r$  resr  bs        rw   r%  z!_BaseGenericAlias.__mro_entries__  s    ??%'JJt'KKqstA!./:a3I Sz  JJwSzry   c                     |dv r$| j                   xs | j                  j                  S d| j                  v r!t	        |      st        | j                  |      S t        |      )N>   r   r   r~   )r  r~   r   r  r  r   r  )r  r  s     rw   r   z_BaseGenericAlias.__getattr__  sU    //::9!9!99 4==(D1A4??D11T""ry   c                 t    t        |      s|dv rt        | 	  ||       y t        | j                  ||       y )N>   r  r  _nparams)r  rK  __setattr__setattrr~   )r  r  valrL  s      rw   r  z_BaseGenericAlias.__setattr__  s2    dt'EEGc*DOOT3/ry   c                 6    | j                  t        |            S r   )rA  rs   r<  s     rw   r=  z#_BaseGenericAlias.__instancecheck__  s    %%d3i00ry   c                     t        d      )NzBSubscripted generics cannot be used with class and instance checksr  r@  s     rw   rA  z#_BaseGenericAlias.__subclasscheck__  s     5 6 	6ry   c                     t        t        t        |          t	        | j
                        D cg c]  }t        |      r| c}z               S c c}w r   )r   r  rK  __dir__dirr~   r  r  r  rL  s     rw   r  z_BaseGenericAlias.__dir__  sP    C)$'$8Q$8D
4@P4$8QR S T 	TQs   AA)r   r   r   r  r1  r%  r   r  r=  rA  r  rN  rO  s   @rw   r  r    s>     (,$ 
#016T Try   r  c                   |     e Zd Zddd fd
Zd Zd Zd Zd Zed	        Z	d
 Z
d Zd Zd Zd Z fdZd Z xZS )r}   TNr  c                    t         |   |||       t        |t              s|f}t        d |D              | _        t        |      | _        |s|j                  | _        y y )Nr  c              3   4   K   | ]  }|t         u rd n|  yw).N)_TypingEllipsisr  s     rw   r   z)_GenericAlias.__init__.<locals>.<genexpr>  s'      /)-A &'/%9c )-r  )rK  r  rt   r   r   r   r   r   )r  r  r   r  ri  rL  s        rw   r  z_GenericAlias.__init__  sc    d6$&7D /)-/ /1$7$//DO ry   c                     t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r   )rt   r}   r  r~   r   r4  s     rw   r  z_GenericAlias.__eq__  s>    %/!!5#3#33 4MMU^^3	5ry   c                 D    t        | j                  | j                  f      S r   )r  r~   r   r*  s    rw   r  z_GenericAlias.__hash__  s    T__dmm455ry   c                     t         | |f   S r   r3  r  rm  s     rw   r6  z_GenericAlias.__or__  r7  ry   c                     t         || f   S r   r3  r  rl  s     rw   r9  z_GenericAlias.__ror__      T4Z  ry   c                 *   | j                   t        t        fv rt        d|        | j                  st        |  d      t        |t              s|f}t        d |D              }t        |      }| j                  |      }| j                  |      }|S )Nz%Cannot subscript already-subscripted r   c              3   2   K   | ]  }t        |        y wr   r  r  s     rw   r   z,_GenericAlias.__getitem__.<locals>.<genexpr>(  s     4t!]1%tr   )
r~   r   r   r   r   rt   r   r   _determine_new_argsr  )r  r   r  rs       rw   rD  z_GenericAlias.__getitem__  s    " ??w11CD6JKK""tf$;<== $&7D4t44D!++D1NN8$ry   c           
      @   | j                   }|D ]  }t        |dd       }| || |      } t        |      }t        |      }||k7  rt        d||kD  rdnd d|  d| d|       t	        t        ||            }t        | j                  | j                  |            S )Nr  r   r   r   r   r   r   )	r   r   r   r   r   r  r   _make_substitutionr   )r  r   r   r  r  r   r  new_arg_by_params           rw   r  z!_GenericAlias._determine_new_args.  s     $$Ee%?FG"tT*  4y6{4<dTD[6e"DOTXSY Z''+fKv? @ @FD 12T,,T]]<LMNNry   c           	         	 g }|D ]V  }t        |t              r|j                  |       &t        |dd       }|r |||         }nbt        |dd      }|s|}nPg }|D ];  }	t        |	t              r|j                  ||	          (|j                  ||	          = |t        |         }| j                  t        j                  j                  k(  r"t        |t              r|j                  |       t        |      r|j                  |       
t        |t              r,|j                  t        | j                  ||                   F|j                  |       Y |S r   )rt   rs   r   r   r   r   r   r~   r   r   r   r  r  )
r  r   r  r  old_arg	substfuncr  	subparamsr   r   s
             rw   r  z _GenericAlias._make_substitutionK  s<   2G'4(();TBI#$4W$=>#G-=rB	 %G G&%a6#NN+;A+>?#NN+;A+>?	 '
 &eGn5G+//":"::z'SX?Y (*73 (GU+ $11';KLM (q r ry   c                 h    | j                  | j                  || j                  | j                        S N)ri  r  )rL  r~   r  r  r  r   s     rw   r  z_GenericAlias.copy_with  s%    ~~doot$**4::~VVry   c                     | j                   rd| j                   z   }nt        | j                        }| j                  r3dj	                  | j                  D cg c]  }t        |       c}      }nd}| d| dS c c}w )Nr(  r   z()r   r   )r  r   r~   r   r   )r  ri  r   r   s       rw   r+  z_GenericAlias.__repr__  sq    ::tzz)Ddoo.D==99T]]C]jm]CDD Dqa  	 Ds   A;c                     | j                   rt               | j                      }n| j                  }t        | j                        }t        |      dk(  rt        |d   t              s|\  }t        j                  ||ffS )Nrg  r   )	r  globalsr~   r   r   r   rt   r  r  )r  r  r   s      rw   r.  z_GenericAlias.__reduce__  sd    ::Ytzz*F__FT]]#t9>*T!We"<ED&$//ry   c                 D   t        | j                  t              rt        d|       | j                  rt
        |   |      S | j                  t        u r>t        |v ry|j                  |       }||dz   d  D ]  }t        |t              s|| us y | j                  fS )Nr"  r   rg  )rt   r~   r   r   r  rK  r%  r   r   r  r  )r  r$  r  r  rL  s       rw   r%  z_GenericAlias.__mro_entries__  s    doo|4.th788::7*511??g%5 D!A1Q34[a!23 ! !!ry   c              #   "   K   t         |     y wr   )rm   r*  s    rw   r  z_GenericAlias.__iter__  s     Tls   )r   r   r   r  r  r  r6  r9  r   rD  r  r  r  r+  r.  r%  r  rN  rO  s   @rw   r}   r}     s]    2 .2 056"!  >O:<|W
!0"ry   r}   c                   ^     e Zd Zddd fd
Zed        Zd Zd Z fdZd	 Z	d
 Z
d Z xZS )_SpecialGenericAliasTNr  c                    ||j                   }t        | 	  |||       || _        |j                  dk(  rd|j
                   d| _        y d|j                   d|j
                   d| _        y )Nr  r   zA generic version of r|   )r   rK  r  r  r   r   r  )r  r  nparamsr  ri  rL  s        rw   r  z_SpecialGenericAlias.__init__  sv    <??Dd6
*263F3F2GqIDL263D3D2EQvGZGZF[[\]DLry   c                     t        |t              s|f}dt        fd|D              }t        | || j                         | j	                  |      S )Nr  c              3   6   K   | ]  }t        |        y wr   rd  re  s     rw   r   z3_SpecialGenericAlias.__getitem__.<locals>.<genexpr>       ;Fq{1c*Frf  )rt   r   r   r  r  r  r   r   s     @rw   rD  z _SpecialGenericAlias.__getitem__  sH    &%(YF:;F;;tVT]]3~~f%%ry   c                 \    t        | j                  || j                  | j                        S r  )r}   r~   r  r  r  r   s     rw   r  z_SpecialGenericAlias.copy_with  s$    T__f"&**4::? 	?ry   c                      d| j                   z   S r'  r)  r*  s    rw   r+  z_SpecialGenericAlias.__repr__  r,  ry   c                     t        |t              r t        |j                  | j                        S t        |t              st        || j                        S t
        |   |      S r   )rt   r   r  r~   r}   rK  rA  )r  r   rL  s     rw   rA  z&_SpecialGenericAlias.__subclasscheck__  sN    c/0cnndoo>>#}-c4??33w(--ry   c                     | j                   S r   r)  r*  s    rw   r.  z_SpecialGenericAlias.__reduce__  r/  ry   c                     t         | |f   S r   r3  r  s     rw   r6  z_SpecialGenericAlias.__or__  r7  ry   c                     t         || f   S r   r3  r
  s     rw   r9  z_SpecialGenericAlias.__ror__  r  ry   )r   r   r   r  r   rD  r  r+  rA  r.  r6  r9  rN  rO  s   @rw   r   r     s@    044 ^ & &?&."!ry   r   c                   0     e Zd Zddd fd
Z fdZ xZS )_DeprecatedGenericAliasTNr  c                :    t         |   ||||       || _        y )Nr  )rK  r  _removal_version)r  r  r"  removal_versionr  ri  rL  s         rw   r  z _DeprecatedGenericAlias.__init__  s#     	t$? /ry   c                     dd l } |j                  | j                   d| j                   | j                         t
        |   |      S )Nr   r|   )r   )warnings_deprecatedr   r  r1  rK  r=  )r  r  r4  rL  s      rw   r=  z)_DeprecatedGenericAlias.__instancecheck__  sG    q-d6K6K	
 w(..ry   )r   r   r   r  r=  rN  rO  s   @rw   r/  r/    s    8<40/ /ry   r/  c                   $     e Zd Z fdZd Z xZS )_CallableGenericAliasc           	          | j                   }t        |      dk(  rt        |d         rt        |          S ddj                  |d d D cg c]  }t        |       c}       dt        |d          dS c c}w )Nr   r   ztyping.Callable[[r   r   z], r   )r   r   r   rK  r+  r   r   )r  r   r   rL  s      rw   r+  z_CallableGenericAlias.__repr__  s}    }}t9>nT!W57#%%YYtCRyAy!
1yABC3d2h'(+ 	,As   A6
c                     | j                   }t        |      dk(  rt        |d         st        |d d       |d   f}t        j
                  t        |ffS )Nr   r   r   )r   r   r   r   r  r  r   r  s     rw   r.  z _CallableGenericAlias.__reduce__  sO    }}D	Q>$q'#:Sb	?DH,D(D!111ry   )r   r   r   r+  r.  rN  rO  s   @rw   r7  r7    s    ,2ry   r7  c                   (    e Zd Zd Zd Zed        Zy)_CallableTypec                 \    t        | j                  || j                  | j                        S r  )r7  r~   r  r  r(  s     rw   r  z_CallableType.copy_with  s&    $T__f*.**4::G 	Gry   c                     t        |t              rt        |      dk7  rt        d      |\  }}t        |t              rt        |      |f}n||f}| j                  |      S )Nr   z6Callable must be used as Callable[[arg, ...], result].)rt   r   r   r   r   __getitem_inner__)r  r   r   r  s       rw   rD  z_CallableType.__getitem__
  sf    &%(CK1,< < = =f dD!Dk6*FF^F%%f--ry   c                     |\  }}d}t        ||      }|t        u r| j                  t        |f      S t	        |t
              s|f}t        d |D              }||fz   }| j                  |      S )Nz.Callable[args, result]: result must be a type.c              3   2   K   | ]  }t        |        y wr   r  r   s     rw   r   z2_CallableType.__getitem_inner__.<locals>.<genexpr>!  s     84C]3'4r   )r   Ellipsisr  r  rt   r   )r  r   r   r  r   s        rw   r>  z_CallableType.__getitem_inner__  st    f>VS)8>>?F";<<$&7D8488	!~~f%%ry   N)r   r   r   r  rD  r   r>  r   ry   rw   r;  r;    s!    G. 
& 
&ry   r;  c                       e Zd Zed        Zy)
_TupleTypec                    t        |t              s|f}t        |      dk\  r:|d   du r3dt        fd|d d D              }| j                  g |t              S dt        fd|D              }| j                  |      S )Nr   r   .z Tuple[t, ...]: t must be a type.c              3   6   K   | ]  }t        |        y wr   rd  re  s     rw   r   z)_TupleType.__getitem__.<locals>.<genexpr>-  s     D1;q#.rf  z*Tuple[t0, t1, ...]: each t must be a type.c              3   6   K   | ]  }t        |        y wr   rd  re  s     rw   r   z)_TupleType.__getitem__.<locals>.<genexpr>0  r%  rf  )rt   r   r   r  r  r&  s     @rw   rD  z_TupleType.__getitem__'  s    &%(YFv;!r
c 14CDsDDF>>"<F"<O"<==:;F;;~~f%%ry   N)r   r   r   r   rD  r   ry   rw   rC  rC  &  s    	& 	&ry   rC  c                   F     e Zd Zd Zd Zd Z fdZd Zd Z fdZ	 xZ
S )r   c                     t         |   S r   r3  r(  s     rw   r  z_UnionGenericAlias.copy_with5  s    V}ry   c                    t        |t        t        j                  f      st        S 	 t        | j                        t        |j                        k(  S # t        $ r# t        | j                  |j                        cY S w xY wr   )	rt   r   r   r   r  r  r   r   r   r4  s     rw   r  z_UnionGenericAlias.__eq__8  se    %"4eoo!FG!!	Jt}}%U^^)<<< 	J*4==%..II	Js   *A )A?>A?c                 >    t        t        | j                              S r   )r  	frozensetr   r*  s    rw   r  z_UnionGenericAlias.__hash__@  s    Idmm,--ry   c                     | j                   }t        |      dk(  rD|d   t        d       u rdt        |d          dS |d   t        d       u rdt        |d          dS t        |          S )Nr   r   ztyping.Optional[rg  r   )r   r   rs   r   rK  r+  r  r   rL  s     rw   r+  z_UnionGenericAlias.__repr__C  sw    }}t9>Aw$t*$)*T!W*=)>a@@aDJ&)*T!W*=)>a@@w!!ry   c                 B    | j                   D ]  }t        ||      s y yNTF)r   rt   )r  r   rv   s      rw   r=  z$_UnionGenericAlias.__instancecheck__L  "    ==C#s# ! ry   c                 B    | j                   D ]  }t        ||      s y yrO  )r   r  )r  r   rv   s      rw   rA  z$_UnionGenericAlias.__subclasscheck__R  rP  ry   c                 @    t         |          \  }\  }}|t        |ffS r   )rK  r.  r   )r  r   r  r   rL  s       rw   r.  z_UnionGenericAlias.__reduce__X  s(    $w13nvteT]""ry   )r   r   r   r  r  r  r+  r=  rA  r.  rN  rO  s   @rw   r   r   4  s,    J."# #ry   r   c                     d | D        S )Nc              3   6   K   | ]  }|t        |      f  y wr   )rs   r  s     rw   r   z'_value_and_type_iter.<locals>.<genexpr>^  s     -*QQQL*s   r   )r   s    rw   rs  rs  ]  s    -*--ry   c                       e Zd Zd Zd Zy)r   c                     t        |t              st        S t        t	        | j
                              t        t	        |j
                              k(  S r   )rt   r   r  r  rs  r   r4  s     rw   r  z_LiteralGenericAlias.__eq__b  s?    %!56!!'673?STYTbTb?c;dddry   c                 P    t        t        t        | j                                    S r   )r  rK  rs  r   r*  s    rw   r  z_LiteralGenericAlias.__hash__h  s    I24==ABCCry   N)r   r   r   r  r  r   ry   rw   r   r   a  s    eDry   r   c                        e Zd Z fdZ xZS )r   c                     t        |d   t        t        f      rg |d d |d   S t        |d   t              rg |d d |d   j                  }t
        |   |      S )Nr   )rt   r   r   r   r   rK  r  )r  r   rL  s     rw   r  z"_ConcatenateGenericAlias.copy_withm  sm    fRj4-0.VCR[.6":..fRj":;9vcr{9VBZ%8%89Fw ((ry   )r   r   r   r  rN  rO  s   @rw   r   r   l  s    ) )ry   r   c                 >    	 t        ||  d      }t        | |f      S )Nr]  )r  r   )r   _UnpackGenericAliasr_  s      rw   rm   rm   u  s-    ,Z zdV+E#FGDd$99ry   c                   D     e Zd Zd Z fdZed        Zed        Z xZS )r[  c                 :    dt        | j                  d          dS )Nztyping.Unpack[r   r   )r   r   r*  s    rw   r+  z_UnpackGenericAlias.__repr__  s"      
4==+; <=Q??ry   c                 >    | j                   r|S t        | 	  |      S r   )r  rK  rD  rM  s     rw   rD  z_UnpackGenericAlias.__getitem__  s!    33Kw"4((ry   c                     | j                   \  }t        |t        t        j                  f      r)|j
                  t        urt        d      |j                   S y )Nz*Unpack[...] must be used with a tuple type)r   rt   r}   r   r	   r~   r   r   r  s     rw   r   z2_UnpackGenericAlias.__typing_unpacked_tuple_args__  sI     }}cM5+=+=>?~~U* LMM<<ry   c                 <    t        | j                  d   t              S Nr   )rt   r   r   r*  s    rw   r  z7_UnpackGenericAlias.__typing_is_unpacked_typevartuple__  s     $--*L99ry   )	r   r   r   r+  rD  propertyr   r  rN  rO  s   @rw   r[  r[    s6    @
)
   : :ry   r[  c                       e Zd Zy)r  N)r   r   r   r   ry   rw   r  r    s    2ry   r  >   _is_protocolr  r  r   __type_params____protocol_attrs___is_runtime_protocol__non_callable_proto_members__>   r  rR  r  r  r  r   r  __annotations____subclasshook____class_getitem____abstractmethods___MutableMapping__markerc                     	 t               }| j                  d d D ]`  }|j                  dv rt        |di       }g |j                  |D ].  }|j                  d      r|t        vs|j                  |       0 b |S )Nr   >   r   r   ri  _abc_)r  __mro__r   r   r  r  EXCLUDED_ATTRIBUTESadd)r   attrsr  annotationsr  s        rw   _get_protocol_attrsru    s    
 EECR ==33d$5r:2dmm2k2D??7+<O0O		$ 3	 ! Lry   c                 H   t        |       }|j                  rt        d      |j                  t        ury |j
                  D ]3  }|j                  j                  dt              }|t        us,||_         n t        j                  |_         |j                  | g|i | y )Nz Protocols cannot be instantiatedr  )	rs   rd  r   r  _no_init_or_replace_initrp  r  r  object)r  r   rT  r   r  inits         rw   rw  rw    s    
t*C
:;; ||33 }}  -EF//CL	  CLL'''ry   rg  c                     	 t        j                  | dz         xs |S # t        $ r Y nw xY w	 t        j                  | dz         j                  j                  d|      S # t        t        f$ r Y y w xY w)Nrg  r   )r  _getframemodulenamer  	_getframe	f_globalsr  r   )depthdefaults     rw   _callerr    sx    &&uqy1<W< }}UQY'1155j'JJJ' s    	**1A   A21A2r   c                     	 t        |       dv S )N>   Nr   r   )r  )r~  s    rw   _allow_reckless_class_checksr    s    
 5>777ry   )r   r0   r%   r&   r2   r1   r#   r.   r!   r4   r7   BufferAbstractContextManagerAbstractAsyncContextManager)zcollections.abc
contextlibc                      ddl m}  | S )Nr   getattr_static)inspectr  r  s    rw   _lazy_load_getattr_staticr  %  s     'ry   c                 (    t         | j                  ffS r   )r   r~   )psargss    rw   _pickle_psargsr  /  s    6,,...ry   c                 (    t         | j                  ffS r   )r   r~   )pskwargss    rw   _pickle_pskwargsr  4  s    X00222ry   c                   <     e Zd Z fdZ fdZ fdZ fdZ xZS )_ProtocolMetac                6   |dk(  r|t         fk(  rnvt        |v rn|D ]i  }|t        t         hv r|j                  t        j                  |j                  g       v r?t        |t               rt        |dd      r]t        d|       t        | ,  | |||fi |S )Nr   rd  Fz5Protocols can only inherit from other protocols, got )r   r   rx  r   _PROTO_ALLOWLISTr  r   r  r   r   rK  rR  )mclsri  r$  	namespacerT  r  rL  s         rw   rR  z_ProtocolMeta.__new__?  s    :%G:"5VW--}}(8(<(<T__b(QQ"41#D.%@ $#h(   wtT5)FvFFry   c                 `    t        |   |i | t        | dd      rt        |       | _        y y )Nrd  F)rK  r  r   ru  rf  rS  s      rw   r  z_ProtocolMeta.__init__R  s3    $)&)3.%8%=C" /ry   c                 b   | t         u rt        j                  | |      S t        | dd      rut	               skt        |t              st        d      t        | dd      st        d      | j                  r,| j                  j                  d      t        u rt        d      t        | 	  |      S )Nrd  Fz"issubclass() arg 1 must be a classrg  LInstance and class checks can only be used with @runtime_checkable protocolsrj  z<Protocols with non-method members don't support issubclass())r   rs   rA  r   r  rt   r   rh  r  r  _proto_hookrK  )r   r5  rL  s     rw   rA  z_ProtocolMeta.__subclasscheck__W  s    (?))#u55C/02eT* DEE3 6>3  22LL$$%78KGR  w(//ry   c                 n   | t         u rt        j                  | |      S t        | dd      st        | 	  |      S t        | dd      st               st        d      t        | 	  |      ryt               }| j                  D ]  }	  |||      }||| j                  vs y y# t        $ r Y  yw xY w)Nrd  Frg  r  T)r   rs   r=  r   rK  r  r   r  rf  r  rh  )r   instancer  r  r  rL  s        rw   r=  z_ProtocolMeta.__instancecheck__p  s     (?))#x88sNE27,X66 3U;,. < = = 7$X.24**D$Xt4 {t3+M+MM  +  "  s   	B''	B43B4)r   r   r   rR  r  rA  r=  rN  rO  s   @rw   r  r  <  s    G&>
02 ry   r  c                    | j                   j                  dd      st        S | j                  D ]  }|j                  D ]  }||j                   v r|j                   |   
t        c c S  ;t        |di       }t        |t        j                  j                        s^||v sct        |t              stt        |dd      s  t        c S  y)Nrd  Fri  T)r  r  r  rf  rp  r   rt   r   r   r(   r  r   )r   r5  r  r  rt  s        rw   r  r    s    <<NE2&&MMDt}}$==&.)) "$(92>K;(?(?@K'ug.75.RW3X " "! '  ry   c                   ,     e Zd Z	 dZdZdZ fdZ xZS )r   r   TFc                 :   t        |   |i | | j                  j                  dd      s!t	        d | j
                  D              | _        d| j                  vrt        | _        | j                  r)| j                  t        j                  u rt        | _	        y y y )Nrd  Fc              3   ,   K   | ]  }|t         u   y wr   r   r   r  s     rw   r   z-Protocol.__init_subclass__.<locals>.<genexpr>  s     "H-Q1=-s   rj  )rK  r  r  r  anyr  rd  r  rj  r  r   rw  rS  s      rw   r  zProtocol.__init_subclass__  s    !4262 ||6""H#--"HHC S\\1#.C  0A0A A3CL !Bry   )r   r   r   r  rd  rg  r  rN  rO  s   @rw   r   r     s%    @ IL 4 4ry   r   c                   N     e Zd Z	  fdZd Zd Zd Zd Zd Z fdZ	d Z
 xZS )	_AnnotatedAliasc                     t        |t              r|j                  |z   }|j                  }t        |   ||d       || _        y )Nr   rh  )rt   r  __metadata__r~   rK  r  )r  r  metadatarL  s      rw   r  z_AnnotatedAlias.__init__  sD    fo.**X5H&&Fk:$ry   c                 8    |d   }t        || j                        S ra  )r  r  )r  r   new_types      rw   r  z_AnnotatedAlias.copy_with  s    !9x):):;;ry   c                     dj                  t        | j                        dj                  d | j                  D                    S )Nztyping.Annotated[{}, {}]r   c              3   2   K   | ]  }t        |        y wr   )r   r  s     rw   r   z+_AnnotatedAlias.__repr__.<locals>.<genexpr>  s     9'8!d1g'8r   )formatr   r~   r   r  r*  s    rw   r+  z_AnnotatedAlias.__repr__  s9    )00t'II9t'8'899
 	
ry   c                 b    t         j                  t        | j                  f| j                  z   ffS r   )r  r  r   r~   r  r*  s    rw   r.  z_AnnotatedAlias.__reduce__  s1    )D,=,=="
 
 	
ry   c                     t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r   )rt   r  r  r~   r  r4  s     rw   r  z_AnnotatedAlias.__eq__  sB    %1!!5#3#33 <%%););;	=ry   c                 D    t        | j                  | j                  f      S r   )r  r~   r  r*  s    rw   r  z_AnnotatedAlias.__hash__  s    T__d&7&7899ry   c                 ,    |dv ryt         |   |      S )N>   r   r   r   )rK  r   r   s     rw   r   z_AnnotatedAlias.__getattr__
  s    //w"4((ry   c                     | j                   fS r   )r~   r#  s     rw   r%  z_AnnotatedAlias.__mro_entries__  s    !!ry   )r   r   r   r  r  r+  r.  r  r  r   r%  rN  rO  s   @rw   r  r    s0    %<



=:)
"ry   r  c                   B    e Zd Z	 dZd Zd Z ed      d        Zd Zy)	r   r   c                     t        d      )Nz&Type Annotated cannot be instantiated.r  r   r   rT  s      rw   rR  zAnnotated.__new__E  s    @AAry   c                 N    t        |t              s|f} | j                  | g| S r   )rt   r   _class_getitem_inner)r   r   s     rw   rk  zAnnotated.__class_getitem__H  s+    &%(YF's''5f55ry   Tr   c                     t        |      dk  rt        d      t        |d         rt        d      d}t        |d   |d      }t	        |dd        }t        ||      S )	Nr   zUAnnotated[...] should be used with at least two arguments (a type and an annotation).r   z?Annotated[...] should not be used with an unpacked TypeVarTuplez$Annotated[t, ...]: t must be a type.Trn   rg  )r   r   r  r   r   r  )r   r   r   r  r  s        rw   r  zAnnotated._class_getitem_innerM  ss    v;? + , , %VAY/ 4 5 54VAYF$vx00ry   c                 J    t        dj                  | j                              )NzCannot subclass {}.Annotated)r   r  r   r  s      rw   r  zAnnotated.__init_subclass__[  s!    *11#..A
 	
ry   N)	r   r   r   r  rR  rk  r   r  r  r   ry   rw   r   r     s8    -^ IB6
 T1 1
ry   r   c                 X   	 t        | t              rt        | dd      st        d| z        d| _        t               | _        | j                  D ]7  }	 t        t        | |d             }|r| j                  j                  |       9 | S # t        $ r}t        d|d      |d }~ww xY w)Nrd  FzB@runtime_checkable can be only applied to protocol classes, got %rTz,Failed to determine whether protocol member z is a method member)r  r   r   r   rg  r  rh  rf  callablerr  r  )r   r  is_callablees       rw   rg   rg   a  s    $ c7#73+N "$'( ) 	)#C
 *-C&&&		="73d#;<K 2266t< ' J  	>th G% % 	s   B	B)B$$B)c                     	 |S r   r   )r   r  s     rw   rS   rS     s     Jry   c                    	 | S r   r   )r  r   s     rw   rQ   rQ     s     Jry   c                    	 t        | dd       ri S t        | t              r?i }t        | j                        D ]  }|6t        t
        j                  j                  |j                  d       di       }n|}|j                  j                  di       }t        |t        j                        ri }|t        t        |            n|}||||}}|j                         D ]M  \  }	}
|
t        d       }
t        |
t              rt!        |
dd      }
t#        |
|||j$                        }
|
||	<   O  |r|S |j                         D ci c]  \  }}|t'        |       c}}S |`t        | t        j(                        r| j                  }n4| }t+        |d      r|j,                  }t+        |d      rt        |di       }||}n||}t        | dd       }|,t        | t.              ri S t1        d	j3                  |             t        |      }t        | d
d      }|j                         D ]Z  \  }	}
|
t        d       }
t        |
t              r't!        |
t        | t        j(                         d      }
t#        |
|||      ||	<   \ |r|S |j                         D ci c]  \  }}|t'        |       c}}S c c}}w c c}}w )N__no_type_check__r  ri  FT)r   rr   __wrapped____globals__z1{!r} is not a module, class, method, or function.re  r   )r   rt   rs   reversedrp  r  r  r  r   r  r   GetSetDescriptorTyper   varsitemsru   r   r   re  _strip_annotations
ModuleTyper   r  _allowed_typesr   r  )r   r   r   include_extrashintsr  base_globalsannbase_localsri  valuer  r   nsobjr  s                  rw   rZ   rZ     s   < s'.	#tS[[)D&s{{t'Mz[]^'--##$5r:C#u99:.5o$tDz*7K8#3 -8k"yy{e= JEeS)&u%$OE"5,TEYEYZ#d  +# *0 'u`RWR]R]R_,`R_$!QQ0B10E-ER_,``c5++,||HE%/)) %/umR8H?G	C*D1E}c>*I ++16#;8 8KE#0"5K{{}e=JEeS!  *30@0@ AAE
 !';Gd % #5\ekkm(\mda,>q,A)Am(\\K -aJ )]s   J8J>c                    	 t        | t              rt        | j                        S t	        | d      r0| j                  t
        t        fv rt        | j                  d         S t        | t              r>t        d | j                  D              }|| j                  k(  r| S | j                  |      S t        | t              rCt        d | j                  D              }|| j                  k(  r| S t        | j                  |      S t        | t        j                        rQt        d | j                  D              }|| j                  k(  r| S t        j                  t         j"                  |      S | S )Nr~   r   c              3   2   K   | ]  }t        |        y wr   r  r  s     rw   r   z%_strip_annotations.<locals>.<genexpr>	       HZ03Zr   c              3   2   K   | ]  }t        |        y wr   r  r  s     rw   r   z%_strip_annotations.<locals>.<genexpr>	  r  r   c              3   2   K   | ]  }t        |        y wr   r  r  s     rw   r   z%_strip_annotations.<locals>.<genexpr> 	  r  r   )rt   r  r  r~   r   re   rb   r   r}   r   r  r	   r   r   r   r  r  r  )r   stripped_argss     rw   r  r  	  s   2!_%!!,,//q,ALLX{4K$K!!**Q-00!]#HQZZHHAJJ&H{{=))!\"HQZZHHAJJ&HALL-88!U__%HQZZHHAJJ&Hm<<Hry   c                     	 t        | t              rt        S t        | t        t        t
        t        f      r| j                  S | t        u rt        S t        | t        j                        rt        j                  S y r   )rt   r  r   r  r	   r   r   r~   r   r   r   tps    rw   rX   rX   (	  sc    " "o&"(,$o7 8}}	W}"eoo&ry   c                 ,   	 t        | t              r| j                  f| j                  z   S t        | t        t
        f      r-| j                  }t        | |      rt        |d d       |d   f}|S t        | t        j                        r| j                  S y)Nr   r   )rt   r  r~   r  r}   r	   r   r   r   r   r   )r  r  s     rw   rW   rW   F	  s     "o&"//11"}l34kk*2s3CR>3r7+C
"eoo&{{ry   c                 $    	 t        | t              S r   )rt   r  r  s    rw   r[   r[   `	  s     b.))ry   d   rv   c                r    	 t        |       }t        |      t        kD  r|d t         dz   }t        d|       )Nr   z*Expected code to be unreachable, but got: )r   r   _ASSERT_NEVER_REPR_MAX_LENGTHAssertionError)rv   r  s     rw   rR   rR   u	  sE    $ IE
5z11445=
EeWM
NNry   c                    	 t        | t              rt        |       D ]  }t        | |      }t	        |d      rB|j
                  | j
                   d|j                   k7  st        |dd       | j                  k7  r^t        |t        j                        rd|_
        t        |t        j                        rd|j                  _
        t        |t              st        |        	 d| _
        | S # t        $ r Y | S w xY w)Nr   r|   r   T)rt   rs   r  r   r   r   r   r   r   r   r  
MethodType__func__r_   r   )rv   keyr   s      rw   r_   r_   	  s     #ts8C#s#CC0###*:*:);1S\\N'KK3d3s~~E
 #u112(,%#u//015.#t$c"% & $ J  Js   &C/ /	C<;C<c                 D     	 t        j                          fd       }|S )Nc                  .     | i |}t        |      }|S r   )r_   )r   r   r   r   s      rw   wrapped_decoratorz2no_type_check_decorator.<locals>.wrapped_decorator	  s!    $'$'T"ry   )r   r   )r   r  s   ` rw   r`   r`   	  s-    
 __Y  
 ry   c                      	 t        d      )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   s     rw   _overload_dummyr  	  s    4
	9: :ry   c                     	 t        | d|       }	 | t        |j                     |j                     |j                  j
                  <   t        S # t        $ r Y t        S w xY wNr  )r   _overload_registryr   r   __code__co_firstlinenor  r  )r   fs     rw   rc   rc   	  se    > 	j$'AVZ1<<(89R9RS   s   7A 	AAc                     	 t        | d|       }|j                  t        vrg S t        |j                     }|j                  |vrg S t	        ||j                     j                               S r  )r   r   r  r   r   values)r   r  mod_dicts      rw   rY   rY   	  sa    @j$'A||--	!!,,/H~~X%	(//122ry   c                  .    	 t         j                          y r   )r  clearr   ry   rw   rT   rT   
  s    .ry   c                 D    	 	 d| _         | S # t        t        f$ r Y | S w xY wNT)	__final__r  r   )r  s    rw   rV   rV   
  s:    2 H I&  	H    TKTVTT_co)	covariantV_coVT_coT_contra)contravariantCT_co)r   boundrP      a  Deprecated alias to collections.abc.Callable.

    Callable[[int], str] signifies a function that takes a single
    parameter of type int and returns a str.

    The subscription syntax must always be used with exactly two
    values: the argument list and the return type.
    The argument list must be a list of types, a ParamSpec,
    Concatenate or ellipsis. The return type must be a single type.

    There is no syntax to indicate optional or keyword arguments;
    such function types are rarely used as callback types.
    r   rh  )r     )r2  r   r   r  a]  Deprecated alias to builtins.tuple.

    Tuple[X, Y] is the cross-product type of X and Y.

    Example: Tuple[T1, T2] is a tuple of two elements corresponding
    to type variables T1 and T2.  Tuple[int, float, str] is a tuple
    of an int, a float and a string.

    To specify a variable-length tuple of homogeneous type, use Tuple[T, ...].
    rD   rA   rF   rG   r"   r6   rB   rC   r   a  Deprecated alias to builtins.type.

    builtins.type or typing.Type can be used to annotate class objects.
    For example, suppose we have the following classes::

        class User: ...  # Abstract base for User classes
        class BasicUser(User): ...
        class ProUser(User): ...
        class TeamUser(User): ...

    And a function that takes a class argument that's a subclass of
    User and returns an instance of the corresponding class::

        def new_user[U](user_class: Type[U]) -> U:
            user = user_class()
            # (Here we could write the user object to a database)
            return user

        joe = new_user(BasicUser)

    At this point the type checker knows that joe has type BasicUser.
    c                   (    e Zd Z	 dZedefd       Zy)r=   r   r  c                      y r   r   r*  s    rw   __int__zSupportsInt.__int__
      ry   N)r   r   r   r  r   intr  r   ry   rw   r=   r=   
  s#    2I  ry   r=   c                   (    e Zd Z	 dZedefd       Zy)r;   r   r  c                      y r   r   r*  s    rw   	__float__zSupportsFloat.__float__
  r  ry   N)r   r   r   r  r   floatr  r   ry   rw   r;   r;   
  #    4I5  ry   r;   c                   (    e Zd Z	 dZedefd       Zy)r:   r   r  c                      y r   r   r*  s    rw   __complex__zSupportsComplex.__complex__
  r  ry   N)r   r   r   r  r   complexr  r   ry   rw   r:   r:   
  s#    6IW  ry   r:   c                   (    e Zd Z	 dZedefd       Zy)r9   r   r  c                      y r   r   r*  s    rw   	__bytes__zSupportsBytes.__bytes__
  r  ry   N)r   r   r   r  r   bytesr  r   ry   rw   r9   r9   
  r  ry   r9   c                   (    e Zd Z	 dZedefd       Zy)r<   r   r  c                      y r   r   r*  s    rw   	__index__zSupportsIndex.__index__
  r  ry   N)r   r   r   r  r   r  r  r   ry   rw   r<   r<   
  s#    4I3  ry   r<   c                  >    d xf G fdd
} t         |       S )r  c                   2    e Zd ZW  Z	 dZedW fd       Zy)r8   r   r  c                      y r   r   r*  s    rw   __abs__zSupportsAbs.__abs__
  r  ry   N)r   r   r   re  r  r   r!  .type_paramsr  s   rw   r8   r8   
  s$    WI  ry   r8   r  .generic_baser#  r  s    @@rw   #<generic parameters of SupportsAbs>r&  
  s      X ry   c                  >    d xf G fdd
} t         |       S )r  c                   8    e Zd ZW  Z	 dZeddedW fd       Zy)r>   r   ndigitsr  c                      y r   r   )r  r)  s     rw   	__round__zSupportsRound.__round__
  r  ry   Nr   )r   r   r   re  r  r   r  r+  r"  s   rw   r>   r>   
  s+    YI Q  ry   r>   r  r$  s    @@rw   %<generic parameters of SupportsRound>r-  
  s      x ry   r   c                     |D cg c]  \  }}|	 }}}|D ci c]  \  }}|t        |d| d       }}}t        j                  | |||      }|x|_        |j                  _        |S c c}}w c c}}w )Nzfield z annotation must be a typedefaultsrq   )r   r   
namedtupleri  rR  )ri  r   rq   r0  nr   fieldsnm_tpls           rw   _make_nmtupler5  
  s    !"EDAqaEF" A As*DEFF 
  ##D&-5fFF>CCFV^^;M # s
   A+A1>
   _makerR  _asdict_fields_sourcer  _replacer  __getnewargs___field_defaults>   r   r   ri  c                       e Zd Zd Zy)NamedTupleMetac                    |D ]  }|t         us|t        ust        d       t        d |D              }|j	                  di       }g }|D ]M  }||v r|j                  |       |st        d| dt        |      dkD  rdnd d	d
j                  |              t        | |j                         |D cg c]  }||   	 c}|d         }	||	_
        t        |v rt        }
t        |
      |	_        |D ]@  }|t        v rt        d|z         |t         vs"||	j"                  vs1t%        |	|||          B t        |v r|	j'                          |	S c c}w )Nz3can only inherit from a NamedTuple type and Genericc              3   <   K   | ]  }|t         u rt        n|  y wr   )_NamedTupler   )r   r  s     rw   r   z)NamedTupleMeta.__new__.<locals>.<genexpr>  s     Ot{2e<   ri  zNon-default namedtuple field z cannot follow default fieldrg  sr   r   r   r/  z&Cannot overwrite NamedTuple attribute )rA  r   r   r   r  r   r   r   r5  r  r  r  classmethodrk  _prohibitedr  _specialr8  r  r  )r   typenamer$  nsr  r   default_names
field_namer2  r4  class_getitemr  s               rw   rR  zNamedTupleMeta.__new__
  s~   D;&4w+>IK K  OOO("-JR$$Z0"?
| L>*-m*<q*@3b"I#'99]#;"<!> ? ?	   x8E(F1A(F&(&68 !e2M'2='AF$Ck!$%MPS%STTH$FNN)BRW-	 
 e$$& )Gs   6EN)r   r   r   rR  r   ry   rw   r>  r>  
  s     ry   r>  c                    	 ||j                         }n|rt        d      t        | |t                     }t        f|_        |S )NzIEither list of fields or keywords can be provided to NamedTuple, not bothrq   )r  r   r5  r  rH   r  )rH  r3  rT  nts       rw   rH   rH   !  sP    & ~	 C D 	D	x		:B#BIry   rH   c                     t         fS r   )rA  r$  s    rw   _namedtuple_mro_entriesrR  @  s
    >ry   c                   "    e Zd ZddZeZd ZeZy)r  c           
         	 |D ]'  }t        |      t        us|t        ust        d       t	        d |D              rt        f}nd}t         j                  t        |g |t        |      }t        |d      s||_        i }|j                  di       }	d}
|	j                         D ci c]  \  }}|t        ||
|j                          }	}}t               }t               }|D ]  }|j                  |j                  j                  di              |j                  j                  dt                     }||z  }||z  }|j                  j                  d	t                     }||z  }||z  } |j                  |	       |	j                         D ]  \  }}t!        |      }|t"        u rt%        |      }|r|d
   }t!        |      }|t&        u rd}n|t(        u rd}n|}|r#|j+                  |       |j-                  |       s|j+                  |       |j-                  |        ||_        t1        |      |_        t1        |      |_        t        |d      s||_        |S c c}}w )NzHcannot inherit from both a TypedDict type and a non-TypedDict base classc              3   <   K   | ]  }t        |t                y wr   )r  r   r  s     rw   r   z)_TypedDictMeta.__new__.<locals>.<genexpr>U  s     5u!z!W%urB  r   r  ri  z?TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a typerN  __required_keys____optional_keys__r   TF	__total__)rs   r  r   r   r  rR  r   r   r  r  r  r   r   r  updater  rX   r   rW   re   rb   rr  discardri  rK  rV  rW  rX  )r   ri  r$  rI  totalr  generic_basetp_dictrt  own_annotationsr   r2  r  required_keysoptional_keysbase_requiredbase_optionalannotation_keyannotation_typeannotation_originannotation_argsis_requireds                         rw   rR  z_TypedDictMeta.__new__H  st   	 DDz/D4G !A B B 
 5u55#:LL,,~t5J|5JT5JBOw 01%*G"&&!2B7O )..0
02 {2s7+=+=>>0 	 
 Dt}}001BBGH MM--.A35IM]*M]*M MM--.A35IM]*M]*M  	?+/>/D/D/F+NO *? ; I-"*?";"&5a&8O(2?(C% H,""k1##!!.1%%n5!!.1%%n5) 0G4 #.$-m$<!$-m$<!w, %Ge
s   +#I'c                     t        d      )Nz4TypedDict does not support instance and class checksr  )r   r5  s     rw   rA  z _TypedDictMeta.__subclasscheck__  s    NOOry   N)T)r   r   r   rR  r   r1  rA  r=  r   ry   rw   r  r  G  s    L\ HP *ry   r  r[  c                   	 ||}n|rt        d      |rt        j                  dt        d       dt	        |      i}t               }|||d<   t        | d||      }t        f|_        |S )	Nz@TypedDict takes either a dict or keyword arguments, but not bothzThe kwargs-based syntax for TypedDict definitions is deprecated in Python 3.11, will be removed in Python 3.13, and may not be understood by third-party type checkers.r   
stacklevelri  r   r   ri  )	r   r4  warnDeprecationWarningr   r  r  rI   r  )rH  r3  r[  rT  rI  rq   tds          rw   rI   rI     s    -\ ~	 ( ) 	)7 	
 T&\	*BYF!<	"b	6B"BIry   rI   c                     t         fS r   )
_TypedDictrQ  s    rw   <lambda>rr    s    :-ry   c                 P    	 t        || j                   d      }t        | |f      S Nz accepts only a single type.r   r  r}   r_  s      rw   re   re     s0    $ zdjj\1M#NODw''ry   c                 P    	 t        || j                   d      }t        | |f      S rt  ru  r_  s      rw   rb   rb     s0     zdjj\1M#NODw''ry   c                   6    e Zd Z	 eZd Zd Zd Zd Zd Z	d Z
y)r^   c                     || _         d|v r|j                  d      d   }|| _        || _        t	               }|dk7  r|| _        y y )Nr|   r   typing)r   
rpartitionr   __supertype__r  r   )r  ri  r  def_mods       rw   r  zNewType.__init__-  sN     $;??3'+D)h%DO ry   c                 :    | j                    G fdd      }|fS )Nc                       e Zd Z fdZy)&NewType.__mro_entries__.<locals>.Dummyc           	      F    | j                   }t        d| d|d d      )NzGCannot subclass an instance of NewType. Perhaps you were looking for: `z = NewType(r   z)`)r   r   )r   subclass_namesuperclass_names     rw   r  z8NewType.__mro_entries__.<locals>.Dummy.__init_subclass__=  s:     #%k-1B"_DUUWY ry   N)r   r   r   r  )r  s   rw   Dummyr  <  s    ry   r  r  )r  r$  r  r  s      @rw   r%  zNewType.__mro_entries__7  s!     --	 	 xry   c                 8    | j                    d| j                   S )Nr|   )r   r   r*  s    rw   r+  zNewType.__repr__F  s    //"!D$5$5#677ry   c                     | j                   S r   )r   r*  s    rw   r.  zNewType.__reduce__I  s       ry   c                     t         | |f   S r   r3  r4  s     rw   r6  zNewType.__or__L  r7  ry   c                     t         || f   S r   r3  r4  s     rw   r9  zNewType.__ror__O  r:  ry   N)r   r   r   r
   r1  r  r%  r+  r.  r6  r9  r   ry   rw   r^   r^     s,    * H&8!""ry   r^   c                      e Zd Z	 dZeedefd              Zeedefd              Zed d       Z	eede
fd              Zedefd       Zed d	       Zede
fd
       Zed!dedefd       Zede
fd       Zed!dedefd       Zed!dedee   fd       Zed"dededefd       Zede
fd       Zedefd       Zed#dedefd       Zede
fd       Zededefd       Zedee   ddfd       Zed$d       Zed d       Zy)%rL   r   r  c                      y r   r   r*  s    rw   modezIO.modej       	ry   c                      y r   r   r*  s    rw   ri  zIO.nameo  r  ry   Nc                      y r   r   r*  s    rw   closezIO.closet  r  ry   c                      y r   r   r*  s    rw   closedz	IO.closedx  r  ry   c                      y r   r   r*  s    rw   filenoz	IO.fileno}  r  ry   c                      y r   r   r*  s    rw   flushzIO.flush  r  ry   c                      y r   r   r*  s    rw   isattyz	IO.isatty  r  ry   r2  c                      y r   r   )r  r2  s     rw   readzIO.read  r  ry   c                      y r   r   r*  s    rw   readablezIO.readable  r  ry   limitc                      y r   r   )r  r  s     rw   readlinezIO.readline  r  ry   hintc                      y r   r   )r  r  s     rw   	readlineszIO.readlines  r  ry   offsetwhencec                      y r   r   )r  r  r  s      rw   seekzIO.seek  r  ry   c                      y r   r   r*  s    rw   seekablezIO.seekable  r  ry   c                      y r   r   r*  s    rw   tellzIO.tell  r  ry   sizec                      y r   r   )r  r  s     rw   truncatezIO.truncate  r  ry   c                      y r   r   r*  s    rw   writablezIO.writable  r  ry   rC  c                      y r   r   r  rC  s     rw   writezIO.write  r  ry   linesc                      y r   r   )r  r  s     rw   
writelineszIO.writelines  r  ry   c                      y r   r   r*  s    rw   	__enter__zIO.__enter__  r  ry   c                      y r   r   )r  rs   r  	tracebacks       rw   __exit__zIO.__exit__  r  ry   )r  N)r   r,  r   )r  z
IO[AnyStr])r   r   r   r  rb  r   ru   r  ri  r  boolr  r  r  r  r  rP   r  r  r  rD   r  r  r  r  r  r  r  r  r  r  r   ry   rw   rL   rL   [  sd   
 Ic    c                  c 6   $   c 6   c 4<   3  C   $   c   S C   $   v #   V       ry   rL   c                   H    e Zd Z	 dZedeeef   defd       Z	edd       Z
y)rK   r   rC  r  c                      y r   r   r  s     rw   r  zBinaryIO.write  r  ry   c                      y r   r   r*  s    rw   r  zBinaryIO.__enter__  r  ry   N)r  rK   )r   r   r   r  r   r   r  	bytearrayr  r  r  r   ry   rw   rK   rK     sH    ?IuUI-. 3    ry   rK   c                       e Zd Z	 dZeedefd              Zeedefd              Z	eede
e   fd              Zeedefd              Zeedefd              Zed
d       Zy	)rO   r   r  c                      y r   r   r*  s    rw   bufferzTextIO.buffer  r  ry   c                      y r   r   r*  s    rw   encodingzTextIO.encoding  r  ry   c                      y r   r   r*  s    rw   errorszTextIO.errors  r  ry   c                      y r   r   r*  s    rw   line_bufferingzTextIO.line_buffering  r  ry   c                      y r   r   r*  s    rw   newlineszTextIO.newlines  r  ry   c                      y r   r   r*  s    rw   r  zTextIO.__enter__  r  ry   N)r  rO   )r   r   r   r  rb  r   rK   r  ru   r  r   r  r  r  r   r  r  r   ry   rw   rO   rO     s    =I    #            #     ry   rO   c                        e Zd Z fdZ xZS )_DeprecatedTypec                     |dvrD|| j                   v r6t        j                  | j                   d| j                   dt        d       t
        |   |      S )N>   r  r  r   z5 is deprecated, import directly from typing instead. z  will be removed in Python 3.13.r   rk  )r  r4  rm  r   rn  rK  __getattribute__)r   ri  rL  s     rw   r  z _DeprecatedType.__getattribute__  s^    <<AUMM<<. !((+~ 6"" # w'--ry   )r   r   r   r  rN  rO  s   @rw   r  r    s    	. 	.ry   r  c                   "    e Zd Z	 g dZeZeZeZy)io)rL   rO   rK   N)r   r   r   __all__rL   rO   rK   r   ry   rw   r  r    s    3*G	BFHry   r  z.ioc                       e Zd Z	 ddgZeZeZy)rerN   rM   N)r   r   r   r  rN   rM   r   ry   rw   r  r    s    0'"GGEry   r  z.rec                       d x}fd|d|fdcS )r  r   r  c                j    	 t        dt        |       j                  t        j                         | S )NzRuntime type is )file)printrs   r   r  stderrr   s    rw   rf   rf     s/     
T#Y//2
3#**EJry   r   )	.defaultsr  s     rw   #<generic parameters of reveal_type>r    s       ry   c                   *     e Zd ZW    fd       Z Zy)_IdentityCallablec                  "    d x}fd|d|fdcS )r  rv   r  c                     y r   r   r  s     rw   r1  z_IdentityCallable.__call__+  s    ry   r   )r  r  __classdict__s     rw   z <generic parameters of __call__>z2_IdentityCallable.<generic parameters of __call__>+  s     q  ry   N)r   r   r   r1  __classdictcell__)r  s   @rw   r  r  *  s     ry   r  )
eq_defaultorder_defaultkw_only_defaultfrozen_defaultfield_specifiersr  r  r  r  r  .rT  c                 (     	  fd}|S )Nc                 $    d| _         | S )N)r  r  r  r  r  rT  )__dataclass_transform__)	cls_or_fnr  r  r  r  rT  r  s    rw   r   z&dataclass_transform.<locals>.decoratorv  s'    $*., 0-
	) ry   r   )r  r  r  r  r  rT  r   s   `````` rw   rU   rU   /  s    =|	 	 ry   _Funcc                       t         dt        f   S r   )r   r   r   ry   rw   r  r    s    Xc3h ry   c                  $    d d x}fd|d|fdcS )Fc                      t         S r   )r  r   ry   rw   r  r    s    Xry   methodr  c                D    	 	 d| _         | S # t        t        f$ r Y | S w xY wr  )__override__r  r   )r  s    rw   rd   rd     s;    0" M I&  	Mr  r   )r  r  s     rw    <generic parameters of override>r    s    X  q    ry   r   r  )rg  __main__)r   )NNF)r   )r   r   r   r   r   collections.abccopyregr  r   r  r  	stdlib_rer  r   r4  r   r   r   r	   _typingr
   r   r   r   r   r   r   r   r  rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rK  r   r  r  r   rF  rs   rI  r   ra   r]   rh   r\   r   r   r   rn  r   r   rk   r   rl   r   r  r  r  r  r  r  r  r  r  r  r  r  r}   r   r/  r7  r;  rC  r   rs  r   r   rm   r[  r  _TYPING_INTERNALS_SPECIAL_NAMESrq  ru  rw  r  r  r  r   r  r   r   r  pickler  r  rE  r  r   r  r   rg   rS   rQ   r   BuiltinFunctionTyper  r  r  rZ   r  rX   rW   r[   r  rR   r_   r`   r  partialr   r  rc   rY   rT   rV   r  r  r  r  r  r  r  r  r  ru   rP   _aliasr#   r0   r3   r2   r1   r%   r&   r7   r.   r!   r4   r   r  rF   r   r,   r(   r*   r-   r+   r    r   r   r   rD   dequerA   r  rG   r)   r'   r$   r/   r  r"   r  r6   rB   rC   rE   r@   r?   rJ   r5   r   r=   r;   r:   r9   r<   r8   r>   r5  rF  rG  r>  rH   rR  rA  rR  r%  r  rI   rq  re   rb   r^   ri   rj   rL   rK   rO   r  r  r   r  rN   rM   rf   r  rU   r  rd   r   ry   rw   <module>r     s  * (  #       
   ^ ^	 	 	ol5 PU B@
02B
< 16 /	A  	
U >%)+ %PF F ((/6<t (/V0,d 0	"t 	"$H $$ 4 4( 4 40 4 4& 4 44 ( (* ( (* )0 )0V " "
 
2  2B 4 4  6 62 1( 1(heDt eDPF F F
O O O "J -& -&`#&L9BTd BT`V%T Vz)!<):$ )!X/2$ /2L-t 2"&( &B&%T &&#}D &#R.D= D)}D ) /: /:d:-t ::3 3        (.8<U;VV "(:	8
 ,-JK    
  *66 7/ }n -3  0 1$SG Sl  .24w- 24j1"lM 1"hK
 K
\'T  $$e&?&?""E$4$4'):<PR
a]H2<4*$ !$ Oe O5 O2!H: !!2!2!2;!EF &R	3
!N CLT]T]v&v&4(:T24t4
 
5#	& 
+//**A.;??,,a0	;??,,a0	{44a8{44a8+//**A.+//**A.KOO..2
{$$a(;??,,a0	KOO..2
1115 	  [__((!-@KOO..2

((!
,66:+//**A.88!<$OO7
 	5"5w7	  dAE/{  !'2S!%e,9ae+>	[__00!4+//**A.;??,,a0	KOO..2

991CSTZCCQMbc dAE/[,,amD[,,a0
$$a
(+&&*;??,,a0	66:dAE/ 2 (   H   h   H   H        D E BC!T !H: ll><R@ 5
 U*T U*pE EN \\.+r2>
7	  ( (. ( ($;" ;"~  ` `Fr%y  RW  F
.d 
.?  BKK 
""A
&y"?  BKK &  ! CEQQ Q 	Q
 Q DIc(::C?@Q Q Qh     ry   