
    6gE                      d Z ddlmZ ddlZddlmZmZ ddlZddlZddl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlZddlZddlZddlmZ ddlm Z  dd	l!m"Z" dd
l#m$Z$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl. ddl.m/Z/ ddl0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9m:Z: ddl;m<Z< ddl=m>Z>m?Z?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZHmIZI ddlJmKZK ddlLmMZM ddlNmOZOmPZP ddlQmRZR ddlSmTZTmUZU dd lVmWZW dd!lXmYZY dd"lZm[Z[ dd#l\m]Z] erdd$l^m_Z_ dd%l,m`Z` dd&lmaZa dd'lbmcZc dd(ldmeZe dd)lfmgZg dd*lhmiZi dd+ljmkZk dd,llmmZmmnZn dd-lompZp dd.lqmrZrmsZs dd/ltmuZu dd0lvmwZx dd1lymzZ{ dd2l|m$Z}m~Z dd3lm'Zm+Z ddlmRZ ddlmZ dd4lm-ZmZ dd5lmfZ dd6lmZ  ed7      Zeeae_ef   Z G d8 d9      Z ej(                  e      Zd?d:Z G d; d<eeY         Z G d= d>eeY         Zy)@a:  
The MIT License (MIT)

Copyright (c) 2015-present Rapptz

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
    )annotationsN)dequeOrderedDict)DictOptionalTYPE_CHECKINGTypeUnionCallableAnyListTypeVar	CoroutineSequenceGenericTupleDequeLiteraloverload   )Guild)BaseActivity)Entitlement)User
ClientUser)Emoji)AllowedMentions)PartialEmojiMessage)*)_channel_factory)RawPresenceUpdateEvent)Member)Role)ChannelTypetry_enumStatus)utils)ApplicationFlagsIntentsMemberCacheFlags)Invite)_integration_factory)Interaction)	ViewStoreView)ScheduledEvent)StageInstance)ThreadThreadMember)GuildSticker)AutoModRuleAutoModAction)AuditLogEntry)ClientT)SoundboardSound)Subscription)PrivateChannel)MessageableChannel)GuildChannel)
HTTPClient)VoiceProtocol)DiscordWebSocket)Item)DynamicItem)CommandTree
Translator)Poll)AutoModerationRuleAutoModerationActionExecution)	Snowflake)Activity)	DMChannel)r   PartialUser)r   r   )r    PartialMessage)gateway)"GuildApplicationCommandPermissionsTc                  P    e Zd Zdd	 	 	 	 	 	 	 	 	 	 	 d	dZd
dZddZddZddZy)ChunkRequestTcachec                   || _         || _        || _        || _        || _        t        j                  d      j                         | _        g | _	        g | _
        y )N   )guild_idshard_idresolverlooprU   osurandomhexnoncebufferwaiters)selfrX   rY   r[   rZ   rU   s         c/var/www/python.lazyprojects.co.uk/rdoDiscordBot/venv/lib/python3.12/site-packages/discord/state.py__init__zChunkRequest.__init__s   sM     &%.6/3	 
**R.,,.
$&;=    c                   | j                   j                  |       | j                  ra| j                  | j                        }|y |D ]=  }|j                  |j                        }||j                  -|j                  |       ? y y N)	r`   extendrU   rZ   rX   
get_memberid	joined_at_add_member)rb   membersguildmemberexistings        rc   add_memberszChunkRequest.add_members   sw    7#::MM$--0E}! ++FII6#x'9'9'A%%f- " re   c                  K   | j                   j                         }| j                  j                  |       	 | d {   | j                  j	                  |       S 7 # | j                  j	                  |       w xY wwrg   )r[   create_futurera   appendremoverb   futures     rc   waitzChunkRequest.wait   s^     ((*F#	(<LL'  LL's,   6B A  AA  B A   A==B c                p    | j                   j                         }| j                  j                  |       |S rg   )r[   rs   ra   rt   rv   s     rc   
get_futurezChunkRequest.get_future   s+    ((*F#re   c                ~    | j                   D ].  }|j                         r|j                  | j                         0 y rg   )ra   done
set_resultr`   rv   s     rc   r|   zChunkRequest.done   s+    llF;;=!!$++. #re   N)rX   intrY   r~   r[   zasyncio.AbstractEventLooprZ   zCallable[[int], Any]rU   boolreturnNone)rm   List[Member]r   r   )r   r   )r   asyncio.Future[List[Member]]r   r   )__name__
__module____qualname__rd   rq   rx   rz   r|    re   rc   rS   rS   r   sZ     >> > (	>
 '> > 
>$
.(
/re   rS   c               p   K   	 |  d {    y 7 # t         $ r t        j                  d|       Y y w xY ww)NzException occurred during %s)	Exception_log	exception)	coroutineinfos     rc   logging_coroutiner      s/     = =5t<=s(   6  6 3636c                     e Zd ZU erded<   ded<   ded<   	 	 	 	 	 	 	 	 	 	 	 	 ddZedd       Zdd	Zd
dddZ	ddZ
ddZddZddZedd       Zedd       Zedd       ZddZddZddZddZd
dddZd
dddZddZddZddZddZddd Zdd!Zdd"Zdd#Zedd$       Zedd%       Z dd&Z!dd'dd(Z"dd)Z#dd*Z$edd+       Z%edd,       Z&edd-       Z'dd.Z(dd/Z)edd0       Z*dd1Z+dd2Z,dd3Z-dd4Z.dd5Z/dd6Z0dd7Z1dd8Z2	 d	 	 	 	 	 dd9Z3ddd:Z4dd;Z5	 ddd<	 	 	 	 	 	 	 	 	 	 	 dd=Z6	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd>Z7dd?Z8dd@Z9ddAZ:ddBZ;ddCZ<ddDZ=ddEZ>ddFZ?ddGZ@ddHZAddIZBddJZCddKZDddLZEddMZFddNZGddOZHddPZIddQZJddRZKddSZLddTZMddUZNddVZOddWZPddXZQddYZRddZZSdd[ZTdd\ZUdd]ZVdd^ZWdd_ZXdd`ZYddaZZddbZ[ddcZ\dddZ]e^dededfddg       Z_e^dededf	 	 	 	 	 	 	 ddh       Z_d
ddf	 	 	 	 	 	 	 ddiZ_ddjZ`dk ZaddlZbddmZcddnZdddoZeddpZfddqZgddrZhddsZiddtZjdduZkddvZlddwZmddxZnddyZoddzZpd d{Zqdd|Zrdd}Zsdd~ZtddZuddZvddZwddZxddZyd	dZzd
dZ{ddZ|ddZ}ddZ~ddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZy(  ConnectionStatezCallable[..., DiscordWebSocket]_get_websocketzCallable[..., ClientT]_get_clientz+Dict[str, Callable[[Dict[str, Any]], None]]_parsersc                  t         j                  | _        || _        |j	                  dd      | _        | j
                  | j
                  dk  rd| _        || _        || _        || _        d | _	        d | _
        t        j                  |d      | _        t         j                  | _        |j	                  dd      | _        |j	                  dd      | _        | j                  dk  rt!        d	      |j	                  d
      }|t#        |t$              st'        d      || _        i | _        |j	                  dd       }|r+t#        |t,              st'        d      |j/                         }|j	                  dd       }|r |t0        j2                  u rd}nt5        |      }|j	                  dd       }	|	't#        |	t6              s+t'        dt9        |	            t7        j:                         }	|	j<                  st>        jA                  d       |j	                  d|	jB                        | _"        |	jB                  s| jD                  rt!        d      |j	                  dd       }
|
tG        jH                  |	      }
n8t#        |
tF              st'        dt9        |
            |
jK                  |	       |
| _&        || _'        || _(        |	| _)        d | _*        d | _+        |	jB                  r|
jX                  r| jZ                  | _.        |j	                  dt         j                        | _/        | j^                  t         j                  u r |	jB                   xr |	j`                  | _/        |  i x| _1        }te        jf                  |       D ]-  \  }}|ji                  d      s|||dd  jk                         <   / | jm                          y )Nmax_messagesi  r   application_idheartbeat_timeoutg      N@guild_ready_timeoutg       @z&guild_ready_timeout cannot be negativeallowed_mentionsz2allowed_mentions parameter must be AllowedMentionsactivityz1activity parameter must derive from BaseActivity.status	invisibleintentsz%intents parameter must be Intent not zHGuilds intent seems to be disabled. This may cause state related issues.chunk_guilds_at_startupz;Intents.members must be enabled to chunk guilds at startup.member_cache_flagsz:member_cache_flags parameter must be MemberCacheFlags not enable_raw_presencesparse_   )7r)   MISSINGr[   httpgetr   dispatchhandlershooksshard_count_ready_task_get_as_snowflaker   application_flagsr   r   
ValueError
isinstancer   	TypeErrorr   _chunk_requestsr   to_dictr(   offlinestrr+   typedefaultguildsr   warningrm   _chunk_guildsr,   from_intents_verify_intentsr   	_activity_status_intents_command_tree_translator_emptystore_user_no_intents
store_userraw_presence_flag	presencesparsersinspect
getmembers
startswithupperclear)rb   r   r   r   r   optionsr   r   r   r   cache_flagsr   attrfuncs                 rc   rd   zConnectionState.__init__   s>    05}}	 $	+2;;~t+L(T->->!-C $D,47?IN
*.37-2-D-DWN^-_38==(/4G(N*1++6KS*Q ##a'EFF";;'9:'
;K_0]PQQ;KDF;;z40h5 STT'')HXt,'$V++i.gw/"GWGX YZZoo'G~~LLcd#*;;/H'//#Z 4#5#5Z[[kk"6=*77@Kk+;<"\]abm]n\q rss''04?4<&,!(4815+"4"4"88DO'.{{3I5=='Y!!U]]2)0%8%NW=N=ND"!##w!,,T2JD$x(,0QR() 3 	

re   c                .    | j                   j                  S rg   )r   emojis_and_stickersrb   s    rc   cache_guild_expressionsz'ConnectionState.cache_guild_expressions  s    }}000re   c                   K   | j                   D ]  }	 |j                  d       d {     | j                  r#| j                  j	                          d {    y y 7 6# t        $ r Y ]w xY w7 w)NT)force)voice_clients
disconnectr   r   unload)rb   voices     rc   closezConnectionState.close  sv     ''E&&T&222 ( ""))+++  3 
 ,sC   A2A!AA!+A2A0A2A!!	A-*A2,A--A2Tviewsc               *   d | _         t        j                         | _        i | _        i | _        i | _        |rt        |       | _        i | _	        t               | _        i | _        | j                  t        | j                        | _        y d | _        y )Nmaxlen)userweakrefWeakValueDictionary_users_emojis	_stickers_guildsr0   _view_store_voice_clientsr   _private_channels_private_channels_by_userr   r   	_messages)rb   r   s     rc   r   zConnectionState.clear)  s    *.	>E>Y>Y>[)+24)+*3D/D8: DO=?A&(7<DDUDU7VDN7;DNre   c                   g }| j                   j                         D ]Z  \  }}|j                  |k(  s|j                  |k(  s&|j	                  |       |s:|j                          |j                  |       \ |D ]  }| j                   |=  y rg   )r   itemsrX   r_   rq   r|   rt   )rb   rX   r_   rm   completeremovedkeyrequests           rc   process_chunk_requestsz&ConnectionState.process_chunk_requests=  s}     00668LC8+0F##G,LLNNN3' 9 C$$S) re   c                    g }| j                   j                         D ]8  \  }}||j                  |k(  s|j                          |j	                  |       : |D ]  }| j                   |=  y rg   )r   r   rY   r|   rt   )rb   rY   r   r   r   s        rc   clear_chunk_requestsz$ConnectionState.clear_chunk_requestsI  sf     00668LC7#3#3x#?s# 9
 C$$S) re   c                R    	 | j                   |   } ||i | y # t        $ r Y y w xY wrg   )r   KeyError)rb   r   argskwargsr   s        rc   call_handlerszConnectionState.call_handlersS  s8    	"==%D $!&!  		s    	&&c                n   K   	 | j                   |   } ||i | d {    y 7 # t        $ r Y y w xY wwrg   )r   r   )rb   r   r   r   coros        rc   
call_hookszConnectionState.call_hooks[  s@     	(::c?D ''''  		s$   5& 5$5	2525c                :    | j                   }|r|j                  S d S rg   )r   rj   )rb   us     rc   self_idzConnectionState.self_idc  s    IIqtt"d"re   c                d    t        j                         }| j                  j                  |_        |S rg   )r+   noner   value)rb   rets     rc   r   zConnectionState.intentsh  s#    llnMM''	
re   c                H    t        | j                  j                               S rg   )listr   valuesr   s    rc   r   zConnectionState.voice_clientsn  s    D''..011re   c                8    | j                   j                  |      S rg   )r   r   rb   rX   s     rc   _get_voice_clientz!ConnectionState._get_voice_clientr  s    ""&&x00re   c                "    || j                   |<   y rg   )r   )rb   rX   r   s      rc   _add_voice_clientz!ConnectionState._add_voice_clientv  s    (-H%re   c                <    | j                   j                  |d        y rg   )r   popr  s     rc   _remove_voice_clientz$ConnectionState._remove_voice_clienty  s    $/re   c                4    | j                   D ]	  }||_         y rg   )r   main_ws)rb   wsvcs      rc   _update_referencesz"ConnectionState._update_references|  s    $$BBJ %re   rT   c                   t        |d         }	 | j                  |   S # t        $ r# t        | |      }|r|| j                  |<   |cY S w xY wNrj   statedata)r~   r   r   r   )rb   r  rU   user_idr   s        rc   r   zConnectionState.store_user  sT    d4j/	;;w'' 	d.D'+G$K		s    )A
Ac                   t        | |      S Nr  r   )rb   r  rU   s      rc   r   z%ConnectionState.store_user_no_intents      $T**re   c                    t        | |      S r  r  rb   r  s     rc   create_userzConnectionState.create_user  r  re   c                8    | j                   j                  |      S rg   )r   r   )rb   rj   s     rc   get_userzConnectionState.get_user  s    {{r""re   c                \    t        |d         }t        || |      x| j                  |<   }|S )Nrj   rn   r  r  )r~   r   r   )rb   rn   r  emoji_idemojis        rc   store_emojizConnectionState.store_emoji  s0    tDz?).U$T)RRXre   c                Z    t        |d         }t        | |      x| j                  |<   }|S r  )r~   r6   r   )rb   rn   r  
sticker_idstickers        rc   store_stickerzConnectionState.store_sticker  s.    d_
/;$T/RRz"Wre   Nc                v    || j                   j                  |       | j                   j                  ||       y rg   )r   remove_interaction_mappingadd_view)rb   view
message_idinteraction_ids       rc   
store_viewzConnectionState.store_view  s2    %77G!!$
3re   c                8    | j                   j                  |      S rg   )r   remove_message_tracking)rb   r0  s     rc   prevent_view_updates_forz(ConnectionState.prevent_view_updates_for  s    77
CCre   c                6     | j                   j                  |  y rg   )r   add_dynamic_itemsrb   r   s     rc   store_dynamic_itemsz#ConnectionState.store_dynamic_items  s    ***E2re   c                6     | j                   j                  |  y rg   )r   remove_dynamic_itemsr8  s     rc   r;  z$ConnectionState.remove_dynamic_items  s    ---u5re   c                .    | j                   j                  S rg   )r   persistent_viewsr   s    rc   r=  z ConnectionState.persistent_views  s    000re   c                \    t        j                  | j                  j                               S rg   )r)   SequenceProxyr   r  r   s    rc   r   zConnectionState.guilds       ""4<<#6#6#899re   c                8    | j                   j                  |      S rg   )r   r   r  s     rc   
_get_guildzConnectionState._get_guild      ||))re   )r  c               l    | j                   j                  |      xs t        j                  | ||      S )N)r  rX   r  )r   r   r   _create_unavailable)rb   rX   r  s      rc    _get_or_create_unavailable_guildz0ConnectionState._get_or_create_unavailable_guild  s-    ||)pU-F-FT\dko-ppre   c                6    || j                   |j                  <   y rg   )r   rj   rb   rn   s     rc   
_add_guildzConnectionState._add_guild  s    !&UXXre   c                .   | j                   j                  |j                  d        |j                  D ](  }| j                  j                  |j                  d        * |j
                  D ](  }| j                  j                  |j                  d        * ~y rg   )r   r  rj   emojisr   stickersr   )rb   rn   r&  r*  s       rc   _remove_guildzConnectionState._remove_guild  sm    4(\\ELLUXXt, " ~~GNNwzz40 & re   c                \    t        j                  | j                  j                               S rg   )r)   r?  r   r  r   s    rc   rK  zConnectionState.emojis  r@  re   c                \    t        j                  | j                  j                               S rg   )r)   r?  r   r  r   s    rc   rL  zConnectionState.stickers  s     ""4>>#8#8#:;;re   c                b    g }| j                   D ]  }|j                  |j                          |S rg   )r   rh   soundboard_sounds)rb   
all_soundsrn   s      rc   rQ  z!ConnectionState.soundboard_sounds  s1    
[[Ee556 ! re   c                8    | j                   j                  |      S rg   )r   r   )rb   r%  s     rc   	get_emojizConnectionState.get_emoji  rC  re   c                8    | j                   j                  |      S rg   )r   r   )rb   r)  s     rc   get_stickerzConnectionState.get_sticker  s    ~~!!*--re   c                \    t        j                  | j                  j                               S rg   )r)   r?  r   r  r   s    rc   private_channelsz ConnectionState.private_channels  s"    ""4#9#9#@#@#BCCre   c                z    	 | j                   |   }| j                   j                  |       |S # t        $ r Y y w xY wrg   )r   move_to_endr   )rb   
channel_idr  s      rc   _get_private_channelz$ConnectionState._get_private_channel  sF    	**:6E
 ""..z:L  		s   . 	::c                8    | j                   j                  |      S rg   )r   r   )rb   r  s     rc   _get_private_channel_by_userz,ConnectionState._get_private_channel_by_user  s    --11'::re   c                   |j                   }|| j                  |<   t        | j                        dkD  rk| j                  j                  d      \  }}t	        |t
              r<|j                  r0| j                  j                  |j                  j                   d        t	        |t
              r1|j                  r$|| j                  |j                  j                   <   y y y )N   F)last)	rj   r   lenpopitemr   rL   	recipientr   r  )rb   channelr[  _	to_removes        rc   _add_private_channelz$ConnectionState._add_private_channel  s    ZZ
-4z*t%%&,1199u9ELAy)Y/I4G4G..2293F3F3I3I4Pgy)g.?.?CJD**7+<+<+?+?@ /@)re   c                X    t        | j                  | |      }| j                  |       |S )N)mer  r  )rL   r   rh  )rb   r  re  s      rc   add_dm_channelzConnectionState.add_dm_channel  s'    tyy4@!!'*re   c                    | j                   j                  |j                  d        t        |t              r6|j
                  }|'| j                  j                  |j                  d        y y y rg   )r   r  rj   r   rL   rd  r   )rb   re  rd  s      rc   _remove_private_channelz'ConnectionState._remove_private_channel  s[    ""7::t4gy)))I$..229<<F % *re   c                x    | j                   r,t        j                  fdt        | j                               S d S )Nc                "    | j                   k(  S rg   )rj   )mmsg_ids    rc   <lambda>z.ConnectionState._get_message.<locals>.<lambda>  s    ADDFNre   )r   r)   findreversed)rb   rq  s    `rc   _get_messagezConnectionState._get_message  s,    QUQ_Q_uzz2HT^^4LMieiire   c                B    t        ||       }| j                  |       |S )Nr  r  )r   rI  rb   r  rn   s      rc   _add_guild_from_dataz$ConnectionState._add_guild_from_data  s    4t,re   c                    | j                   xr5 |j                   xr& | j                  j                  xr |j                    S rg   )r   chunkedr   r   largerH  s     rc   _guild_needs_chunkingz%ConnectionState._guild_needs_chunking  s;    !!m%--&7mAXAXAlafalal]l<mmre   c                   t        |d         }	 |xs t        |d         }| j                  |      }|xr |j                  |      }|xs t        | ||      |fS # t        $ r t        j                  | |      }d }Y 7w xY w)Nr[  rX   )r  rX   rj   )r~   rB  _resolve_channelr   rL   _from_messagePartialMessageable)rb   r  rX   r[  rn   re  s         rc   _get_guild_channelz"ConnectionState._get_guild_channel  s     l+,
	C83tJ'7#8HOOH-E
 B 6 6z BGZ,4(zZ\aaa  	--dJ?GE	s   #A !B ?B c                J    |j                   }|sy |j                  |||       |S rg   )poll_handle_vote)rb   message	answer_idadded
self_votedr  s         rc   _update_poll_countsz#ConnectionState._update_poll_counts)  s(    ||)UJ7re   c                R   t        |t              r| j                  |j                        }n(t        |t              r| j                  |      }|y |}ny |j
                  y |j
                  j                  |       |)|j
                  r|j
                  j                  |       y y y rg   )r   r    ru  rj   r~   r  _update_results_from_message)rb   from_tocacheds       rc   _update_poll_resultsz$ConnectionState._update_poll_results0  s    b'"&&ruu-FC &&r*F~B77?
,,U3&++KK44U; #.re   r_   c               n   K   | j                  |      }|j                  |||||       d {    y 7 w)Nquerylimitr   r_   r   request_chunks)rb   rX   r  r  r   r_   r  s          rc   chunkerzConnectionState.chunkerE  s8        *Ui_deees   +535c                  K   |j                   }| j                  |      }|t        d      t        |j                   |j                  | j
                  | j                  |      }	|	| j                  |	j                  <   	 |j                  ||||||	j                         d {    t        j                  |	j                         d       d {   S 7 17 # t        j                  $ r t        j                  d|||        w xY ww)Nz1Somehow do not have a websocket for this guild_idrT   )r  r  user_idsr   r_   g      >@timeoutzGTimed out waiting for chunks with query %r and limit %d for guild_id %d)rj   r   RuntimeErrorrS   rY   r[   rB  r   r_   r  asynciowait_forrx   TimeoutErrorr   r   )
rb   rn   r  r  r  rU   r   rX   r  r   s
             rc   query_memberszConnectionState.query_membersK  s      88  *:RSSuxxDOO[`a.5W]]+	##UXQZbibobo $    !))',,.$GGG H## 	LLbdikprz{	sB   A<D	?$C #C$,C CC D	C C -DD	c                  K   	 g }	 	 t        j                  | j                  j                         | j                         d {   }| j                  |      r/| j                  |d       d {   }|j                  ||f       n4|j                  du r| j                  d|       n| j                  d|       	 7 y7 O# t         j                  $ r Y nw xY w|D ]  \  }}| j                  |      }	 t        j                  ||       d {  7   nD# t         j                  $ r. t        j                  d|j                  |j                         Y nw xY w|j                  du r| j                  d|       | j                  d|        	 | `n# t         $ r Y nw xY w| j#                  d       | j                  d       n# t         j$                  $ r Y nw xY wd | _        y # d | _        w xY ww)Nr  Frx   guild_available
guild_join9Shard ID %s timed out waiting for chunks for guild_id %s.ready)r  r  _ready_stater   r   r}  chunk_guildrt   unavailabler   r  _chunk_timeoutr   r   rY   rj   AttributeErrorr   CancelledErrorr   )rb   statesrn   rw   r  s        rc   _delay_readyzConnectionState._delay_ready`  s    -	$F?")"2"243D3D3H3H3JTXTlTl"mmE 11%8'+'7'7E'7'J!Jufo6 ,,5 MM*;UC MM,>  n
 "K	 ++  "(v--e4x!**67CCC++ xLL!\^c^l^lnsnvnvwx $$-MM"3U;MM,6 "(%!  w'MM'" %% 		  $DtDs   G2G <C B>C 	'G 0C 1AG >C  G CG CG 5DDDG >EG E8G F G 	FG FG "#G& GG& GG& G2&	G//G2c                   | j                   | j                   j                          t        j                         | _        | j                  d       | j                  d        t        | |d         x| _        }|| j                  |j                  <   | j                  >	 |d   }t        j                  |d      | _        t        j                  |d         | _        |d   D ]  }| j%                  |        | j'                  d	       t        j(                  | j+                               | _         y # t"        $ r Y `w xY w)
NFr   r   r  applicationrj   flagsr   connect)r   cancelr  Queuer  r   r   r   r   r   rj   r   r)   r   r*   _from_valuer   r   ry  r   create_taskr  )rb   r  r   r  
guild_datas        rc   parse_readyzConnectionState.parse_ready  s   '##%29--/


!!$'%DtF|DD	D#DGG&n"=1 ',&=&=k4&P#;K;W;WXcdkXl;m&x.J%%j1 ) 	i "..t/@/@/BC  s    D2 2	D>=D>c                &    | j                  d       y )Nresumedr   r  s     rc   parse_resumedzConnectionState.parse_resumed  s    i re   c                (   | j                  |      \  }}t        |||       }| j                  d|       | j                  | j                  j	                  |       |r5|j
                  t        t        t        t        fv r|j                  |_        y y y )Nre  r  r  r  )r  r    r   r   rt   	__class__TextChannelVoiceChannelr4   StageChannelrj   last_message_id)rb   r  re  rf  r  s        rc   parse_message_createz$ConnectionState.parse_message_create  s|    ,,T2
'DAi)>>%NN!!'*w(([,P\,]]&-jjG# ^7re   c                    t        |      }| j                  |j                        }||_        | j	                  d|       | j
                  1|.| j	                  d|       | j
                  j                  |       y y y )Nraw_message_deletemessage_delete)RawMessageDeleteEventru  r0  cached_messager   r   ru   )rb   r  rawfounds       rc   parse_message_deletez$ConnectionState.parse_message_delete  so    #D)!!#..1"*C0>>%%*;MM*E2NN!!%( +<%re   c                F   t        |      }| j                  r3| j                  D cg c]  }|j                  |j                  v s| }}ng }||_        | j                  d|       |r5| j                  d|       |D ]  }| j                  j                  |        y y c c}w )Nraw_bulk_message_deletebulk_message_delete)RawBulkMessageDeleteEventr   rj   message_idscached_messagesr   ru   )rb   r  r  r  found_messagesmsgs         rc   parse_message_delete_bulkz)ConnectionState.parse_message_delete_bulk  s    '->>59^^e^'wzzUXUdUdGdg^NeN,/5MM/@%%%c* &  fs   BBc                n   | j                  |      \  }}t        |||       }t        ||      }| j                  |j                        }|dt        j
                  |      }||_        | j                  d|       |j                  |       |j                  |_	        | j                  d||       n| j                  d|       d|v rN	 t        |d   d         }| j                  j                  |      r | j                  j!                  ||d          y y y # t        t        f$ r |j                  }Y Zw xY w)Nr  )r  r  raw_message_editmessage_edit
componentsinteractionrj   )r  r    RawMessageUpdateEventru  rj   copyr  r   _updateauthorr~   r   r   r0  r   is_message_trackedupdate_from_message)	rb   r  re  rf  updated_messager  r  older_message	entity_ids	            rc   parse_message_updatez$ConnectionState.parse_message_update  s)   ,,T2
!'DI#G**?+=+=>% IIn5M!.CMM,c2""4( $3#9#9M MM.-IMM,c24+] 3D 9:	 229=  44Y\@RS >   j) +NN	+s   D D43D4c                R   t        j                  |d         }| |_        t        ||d      }|j	                  d      }|r9| j                  |j                        }|t        |||       |_        nd |_        nd |_        | j                  d|       | j                  |j                        }|y| j                  |      }|j                  |||j                        }|j                  xs& | j                  |j                   |j                        }|r| j                  d||       y y y )Nr&  REACTION_ADDro   r  rn   r  raw_reaction_addreaction_add)r   	from_dict_stateRawReactionActionEventr   rB  rX   r$   ro   r   ru  r0  _upgrade_partial_emoji_add_reactionr  _get_reaction_userre  )	rb   r  r&  r  member_datarn   r  reactionr   s	            rc   parse_message_reaction_addz*ConnectionState.parse_message_reaction_add  s   &&tG}5$T5.Ahhx(OOCLL1E #EN
!
CJ(#. ##CNN3//6E,,T5#++FH::V!8!8#++!VDnh=  re   c                   t        |      }| j                  d|       | j                  |j                        }|H|j                  j                         }|j                  j                          | j                  d||       y y )Nraw_reaction_clearreaction_clear)RawReactionClearEventr   ru  r0  	reactionsr  r   )rb   r  r  r  old_reactionss        rc   !parse_message_reaction_remove_allz1ConnectionState.parse_message_reaction_remove_all  sq    #D)*C0##CNN3#--224M##%MM*G]C re   c                   t        j                  |d         }| |_        t        ||d      }| j	                  d|       | j                  |j                        }|l| j                  |      }	 |j                  |||j                        }| j                  |j                  |j                        }|r| j	                  d||       y y y # t        t        f$ r Y y w xY w)Nr&  REACTION_REMOVEraw_reaction_removereaction_remove)r   r  r  r  r   ru  r0  r  _remove_reactionr  r  re  r  r   )rb   r  r&  r  r  r  r   s          rc   parse_message_reaction_removez-ConnectionState.parse_message_reaction_remove  s    &&tG}5$T52CD+S1##CNN3//6EE"33D%M ..wLMM"3XtD   #J/ s   .C	 	CCc                2   t        j                  |d         }| |_        t        ||      }| j	                  d|       | j                  |j                        }|(	 |j                  |      }|r| j	                  d|       y y y # t        t        f$ r Y y w xY w)Nr&  raw_reaction_clear_emojireaction_clear_emoji)
r   r  r  RawReactionClearEmojiEventr   ru  r0  _clear_emojir  r   )rb   r  r&  r  r  r  s         rc   #parse_message_reaction_remove_emojiz3ConnectionState.parse_message_reaction_remove_emoji   s    &&tG}5(u50#6##CNN3D"//6 MM"8(C   #J/ s   B BBc                r   t        ||       }|d   dv r(| j                  r| j                  j                  |       ni|d   dk(  r-|d   }|d   }|d   }| j                  j	                  |||       n4|d   dk(  r,|d   }|d   }|d	   }| j                  j                  |||       | j                  d
|       y )Nrw  r   )         r  	custom_idcomponent_type   r  r  )r/   r   _from_interactionr   dispatch_viewdispatch_modalr   )rb   r  r  
inner_datar  r  r  s          rc   parse_interaction_createz(ConnectionState.parse_interaction_create0  s    !t48<6!d&8&800=&\QfJ";/I'(89N**>9kR&\QfJ";/I#L1J++I{JOm[1re   c                   t        ||       }| j                  r| j                  d|       |j                  !t        j                  d|j                         y |j                  j                  |j                        }|!t        j                  d|j                         y t        j                  |      }|j                  ||d         }|r| j                  d|d   |d	          | j                  d
||       y )Nrw  raw_presence_updatez@PRESENCE_UPDATE referencing an unknown guild ID: %s. Discarding.z@PRESENCE_UPDATE referencing an unknown member ID: %s. Discardingr   )r  r   user_updater   r   presence_update)r#   r   r   rn   r   debugrX   ri   r  r$   _copy_presence_update)rb   r  r  ro   
old_memberr  s         rc   parse_presence_updatez%ConnectionState.parse_presence_updateB  s    $$d;!!MM/599JJY[^[g[gh%%ckk2>JJY[^[f[fg\\&)
--#DL-IMM-QQH'V<re   c                T    | j                   r| j                   j                  |       y y rg   )r   r  r  s     rc   parse_user_updatez!ConnectionState.parse_user_updateZ  s     99IId# re   c                V    t        j                  | |      }| j                  d|       y )Nr  invite_creater-   from_gatewayr   rb   r  invites      rc   parse_invite_createz#ConnectionState.parse_invite_create^  "    $$4d;ov.re   c                V    t        j                  | |      }| j                  d|       y )Nr  invite_deleter   r"  s      rc   parse_invite_deletez#ConnectionState.parse_invite_deleteb  r%  re   c                   | j                  t        j                  |d            }t        |d         }||j	                  |      }||j                  |       | j                  d|       |j                  t        j                  t        j                  fv rb|j                  D ]S  }|j                  |j                  k(  s|j                  j                  |j                         | j                  d|       U |j!                  |      }|D ]9  }| j                  d|       | j                  dt"        j%                  |             ; y y y )NrX   rj   guild_channel_deletescheduled_event_deletethread_deleteraw_thread_delete)rB  r)   r   r~   get_channel_remove_channelr   r   r&   r   stage_voicescheduled_eventsr[  rj   _scheduled_eventsr  _remove_threads_by_channelRawThreadDeleteEvent_from_thread)rb   r  rn   r[  re  sthreadsthreads           rc   parse_channel_deletez$ConnectionState.parse_channel_deletef  s    7 7j IJd_
''
3G"%%g.4g><<K$5$5{7N7N#OO"33<<7::5!3377= MM*BAF 4
  :::F%FMM/6:MM"57K7X7XY_7`a & # re   c                   t        t        |j                  d            }t        |d         }|t        j                  u rc| j                  |      }|:t        j                  |      }|j                  |       | j                  d||       y t        j                  d|       t        j                  |d      }| j                  |      }|e|j                  |      }|;t        j                  |      }|j                  ||       | j                  d||       y t        j                  d|       y t        j                  d|       y )Nr   rj   private_channel_updatezACHANNEL_UPDATE referencing an unknown channel ID: %s. Discarding.rX   guild_channel_updatez?CHANNEL_UPDATE referencing an unknown guild ID: %s. Discarding.)r'   r&   r   r~   groupr\  r  _update_groupr   r   r  r)   r   rB  r.  r  )rb   r  channel_typer[  re  old_channelrX   rn   s           rc   parse_channel_updatez$ConnectionState.parse_channel_update{  s   TXXf-=>d_
;,,,//
;G""ii0%%d+6WM

^`jk**4<)''
3G""ii0t,4k7K

^`jkJJXZbcre   c                :   t        |d         \  }}|t        j                  d|d          y t        j                  |d      }| j                  |      }|/ ||| |      }|j                  |       | j                  d|       y t        j                  d|       y )Nr   zBCHANNEL_CREATE referencing an unknown channel type %s. Discarding.rX   r$  guild_channel_createz?CHANNEL_CREATE referencing an unknown guild ID: %s. Discarding.)r"   r   r  r)   r   rB  _add_channelr   )rb   r  factorych_typerX   rn   re  s          rc   parse_channel_createz$ConnectionState.parse_channel_create  s    +DL9?JJ[]abh]ij**4<)EDAGw'MM0':JJXZbcre   c                   t        |d         }	 | j                  t        |d               }|xr |j                  |      }|t
        j                  d|       y t        j                  |j                  d            }|| j                  d||       y | j                  d||       y # t        $ r d }| j	                  |      }Y w xY w)Nr[  rX   zFCHANNEL_PINS_UPDATE referencing an unknown channel ID: %s. Discarding.last_pin_timestampprivate_channel_pins_updateguild_channel_pins_update)r~   rB  r  r   r\  r   r  r)   
parse_timer   r   )rb   r  r[  rn   re  last_pins         rc   parse_channel_pins_updatez)ConnectionState.parse_channel_pins_update  s    l+,
	COOCZ(8$9:E
 B 6 6z BG?JJ_akl##DHH-A$BC=MM7(KMM5wI  	<E//
;G	<s   B) )CCc                   t        |d         }| j                  |      }|t        j                  d|       y t	        ||j
                  |      }|j                  |j                        }|j                  |       |sn|j                  d      rJ|j                  j                  t        u r|j                  |j                  _        | j                  d|       y | j                  d|       y y )NrX   z=THREAD_CREATE referencing an unknown guild ID: %s. Discardingr$  newly_createdthread_createthread_join)r~   rB  r   r  r4   r  
get_threadrj   _add_threadr   parentr  ForumChannelr  r   )rb   r  rX   rn   r8  
has_threads         rc   parse_thread_createz#ConnectionState.parse_thread_create  s    tJ'(!%!:=JJVX`ae5<<dC%%fii0
&!xx(==**l:4:IIFMM1ov6mV4 re   c                2   t        |d         }| j                  |      }|t        j                  d|       y t	        |      }|j                  |j                        x|_        }| j                  d|       |Wt        j                  |      }|j                  |       |j                  r|j                  |       | j                  d||       y t        ||j                  |      }|j                  s|j                  |       | j                  d|       y )NrX   z=THREAD_UPDATE referencing an unknown guild ID: %s. Discardingraw_thread_updatethread_updater$  rR  )r~   rB  r   r  RawThreadUpdateEventrS  	thread_idr8  r   r  r  archived_remove_threadr4   r  rT  )rb   r  rX   rn   r  r8  olds          rc   parse_thread_updatez#ConnectionState.parse_thread_update  s    tJ'()=JJVX`a"4(#..s}}==
V)3/))F#CNN4 $$V,MM/37%u||$GF??!!&)MM-0re   c                >   t        |d         }| j                  |      }|t        j                  d|       y t	        |      }|j                  |j                        x|_        }| j                  d|       |$|j                  |       | j                  d|       y y )NrX   z=THREAD_DELETE referencing an unknown guild ID: %s. Discardingr-  r,  )
r~   rB  r   r  r4  rS  r]  r8  r   r_  )rb   r  rX   rn   r  r8  s         rc   parse_thread_deletez#ConnectionState.parse_thread_delete  s    tJ'()=JJVX`a"4(#..s}}==
V)3/  (MM/62 re   c                (   t        |d         }| j                  |      }|t        j                  d|       y 	 |d   D ch c]  }t        |       }}|j	                  |      }|j                  dg       D ci c]  }|d   |j                  |       }}|j                  dg       D ]&  }		 ||	d      }
|
j                  t        |
|	             ( |j                         D ]3  }
|j                  |
j                  d       }|"| j!                  d|
       5 |j                         D ]  }
| j!                  d|
        y c c}w # t
        $ r. |j                  j                         }|j                          Y w xY wc c}w # t
        $ r Y w xY w)	NrX   z@THREAD_LIST_SYNC referencing an unknown guild ID: %s. Discardingchannel_idsr7  rj   rm   rR  thread_remove)r~   rB  r   r  _filter_threadsr   _threadsr  _clear_threadsr   _store_threadrl   r5   r  r  rj   r   )rb   r  rX   rn   ire  previous_threadsdr7  ro   r8  r`  s               rc   parse_thread_list_syncz&ConnectionState.parse_thread_list_sync  s   tJ'(!%!:=JJY[cd	B+/+>?+>a3q6+>K?  %44[A<@HHYPR<ST<Sq1T7E//22<SThhy"-FA . ""<#?@ . nn&F"&&vyy$7C{mV4 '
 '--/FMM/62 03 @ 	#  %~~224  "		# U  s;   E EE :F .FE 3E=<E=	FFc                
   t        |d         }| j                  |      }|t        j                  d|       y t        |d         }|j	                  |      }|t        j                  d|       y t        ||      }||_        y )NrX   zDTHREAD_MEMBER_UPDATE referencing an unknown guild ID: %s. Discardingrj   zETHREAD_MEMBER_UPDATE referencing an unknown thread ID: %s. Discarding)r~   rB  r   r  rS  r5   rj  )rb   r  rX   rn   r]  r8  ro   s          rc   parse_thread_member_updatez*ConnectionState.parse_thread_member_update  s    tJ'(!%!:=JJ]_ghT
O	#(#3#3I#>>JJ^`ijfd+	re   c                   t        |d         }| j                  |      }|t        j                  d|       y t        |d         }|j	                  |      }t        |      }|t        j                  d|       y |j                  dg       D cg c]  }t        ||       }}|j                  dg       D 	cg c]  }	t        |	       }
}	| j                  }|D ]N  }|j                  |k7  r$|j                  |       | j                  d|       6||_        | j                  d|       P |
D ]R  }||k7  r9|j                  |      }| j                  d	|       |.| j                  d
|       A| j                  d|       T y c c}w c c}	w )NrX   zETHREAD_MEMBERS_UPDATE referencing an unknown guild ID: %s. Discardingrj   zFTHREAD_MEMBERS_UPDATE referencing an unknown thread ID: %s. Discardingadded_membersremoved_member_idsthread_member_joinrR  raw_thread_member_removethread_member_removerf  )r~   rB  r   r  rS  RawThreadMembersUpdater   r5   r   rj   rl   r   rj  _pop_member)rb   r  rX   rn   r]  r8  r  rm  rr  xrs  r   ro   	member_ids                 rc   parse_thread_members_updatez+ConnectionState.parse_thread_members_update(  sv   tJ'(!%!:=JJ^`hiT
O	#(#3#3I#>$T*>JJ_ajk:>((?TV:WX:WQfa0:WX.2hh7KR.PQ.Pc!f.PQ,,#FyyG#""6*2F;"	mV4 $ ,IG#++I68#>%MM"8&Aov6 , YQs   F9F	c                F   | j                  t        |d               }|t        j                  d|d          y t	        |||       }| j
                  j                  r|j                  |       |j                  |xj                  dz  c_        | j                  d|       y )NrX   zAGUILD_MEMBER_ADD referencing an unknown guild ID: %s. Discarding.rn   r  r  r   member_join)
rB  r~   r   r  r$   r   joinedrl   _member_countr   )rb   r  rn   ro   s       rc   parse_guild_member_addz&ConnectionState.parse_guild_member_addJ  s    D$4 56=JJZ\`ak\lme$d;""))f%*1$mV,re   c                   | j                  |d         }t        ||      }| j                  |j                        }|i|j                  |xj                  dz  c_        |j                  |j                        }|D||_        |j                  |       | j                  d|       nt        j                  d|d          | j                  d|       y )Nr   r   member_removezDGUILD_MEMBER_REMOVE referencing an unknown guild ID: %s. Discarding.rX   raw_member_remove)r   RawMemberRemoveEventrB  rX   r  ri   rj   r   _remove_memberr   r   r  )rb   r  r   r  rn   ro   s         rc   parse_guild_member_removez)ConnectionState.parse_guild_member_removeY  s    tF|,"4.-"".##q(#%%dgg.F!!$$V,ov6JJ]_cdn_op)3/re   c                |   | j                  t        |d               }|d   }t        |d         }|t        j                  d|d          y |j	                  |      }|ft        j                  |      }|j                  |       |j                  |      }|r| j                  d|d   |d          | j                  d||       y | j                  j                  rKt        ||| 	      }|j                  |      }|r| j                  d|d   |d          |j                  |       t        j                  d
|       y )NrX   r   rj   zDGUILD_MEMBER_UPDATE referencing an unknown guild ID: %s. Discarding.r  r   r   member_updater  zEGUILD_MEMBER_UPDATE referencing an unknown member ID: %s. Discarding.)rB  r~   r   r  ri   r$   r  r  _update_inner_userr   r   r  rl   )rb   r  rn   r   r  ro   r  r  s           rc   parse_guild_member_updatez)ConnectionState.parse_guild_member_updatel  s!   D$4 56F|d4j/=JJ]_cdn_op!!'*f-JNN4  33D9Km[^[^LMM/:v>&&--TdC %77=MM-QQP!!&)JJ^`ghre   c                j     j                  t        |d               t        j                  d|d          y j                  }|D ](  } j
                  j                  |j                  d        * t        t         fd|d               _         j                  d|j                         y )NrX   zDGUILD_EMOJIS_UPDATE referencing an unknown guild ID: %s. Discarding.c                (    j                  |       S rg   )r'  rm  rn   rb   s    rc   rr  z;ConnectionState.parse_guild_emojis_update.<locals>.<lambda>  s    4+;+;E1+Ere   rK  guild_emojis_update)rB  r~   r   r  rK  r   r  rj   tuplemapr   )rb   r  before_emojisr&  rn   s   `   @rc   parse_guild_emojis_updatez)ConnectionState.parse_guild_emojis_update  s    D$4 56=JJ]_cdn_op"ELLUXXt, # S!EtH~VW+UM5<<Pre   c                j     j                  t        |d               t        j                  d|d          y j                  }|D ](  } j
                  j                  |j                  d        * t        t         fd|d               _         j                  d|j                         y )NrX   zFGUILD_STICKERS_UPDATE referencing an unknown guild ID: %s. Discarding.c                (    j                  |       S rg   )r+  r  s    rc   rr  z=ConnectionState.parse_guild_stickers_update.<locals>.<lambda>  s    T-?-?q-Ire   rL  guild_stickers_update)rB  r~   r   r  rL  r   r  rj   r  r  r   )rb   r  before_stickersr&  rn   s   `   @rc   parse_guild_stickers_updatez+ConnectionState.parse_guild_stickers_update  s    D$4 56=JJ_aefpaqr..$ENNuxx. % s#I4PZK[\]-uou~~Vre   c           	         | j                  t        |d               }|t        j                  d|d          y t	        | j
                  i i i i ||      }| j                  d|       y )NrX   zMGUILD_AUDIT_LOG_ENTRY_CREATE referencing an unknown guild ID: %s. Discarding.)usersintegrationsapp_commandsautomod_ruleswebhooksr  rn   audit_log_entry_create)rB  r~   r   r  r9   r   r   )rb   r  rn   entrys       rc   "parse_guild_audit_log_entry_createz2ConnectionState.parse_guild_audit_log_entry_create  sl    D$4 56=JJfhlmwhxy++
 	.6re   c                    | j                  t        |d               }|t        j                  d|d          y t	        |||       }| j                  d|       y )NrX   zLAUTO_MODERATION_RULE_CREATE referencing an unknown guild ID: %s. Discarding.r  automod_rule_createrB  r~   r   r  r7   r   rb   r  rn   rules       rc   !parse_auto_moderation_rule_createz1ConnectionState.parse_auto_moderation_rule_create  U    D$4 56=JJegklvgwxE>+T2re   c                    | j                  t        |d               }|t        j                  d|d          y t	        |||       }| j                  d|       y )NrX   zLAUTO_MODERATION_RULE_UPDATE referencing an unknown guild ID: %s. Discarding.r  automod_rule_updater  r  s       rc   !parse_auto_moderation_rule_updatez1ConnectionState.parse_auto_moderation_rule_update  r  re   c                    | j                  t        |d               }|t        j                  d|d          y t	        |||       }| j                  d|       y )NrX   zLAUTO_MODERATION_RULE_DELETE referencing an unknown guild ID: %s. Discarding.r  automod_rule_deleter  r  s       rc   !parse_auto_moderation_rule_deletez1ConnectionState.parse_auto_moderation_rule_delete  r  re   c                    | j                  t        |d               }|t        j                  d|d          y t	        ||       }| j                  d|       y )NrX   zQAUTO_MODERATION_ACTION_EXECUTION referencing an unknown guild ID: %s. Discarding.rw  automod_action)rB  r~   r   r  r8   r   )rb   r  rn   	executions       rc   &parse_auto_moderation_action_executionz6ConnectionState.parse_auto_moderation_action_execution  sS    D$4 56=JJjlpq{l|}!t48	&	2re   c                    |j                  d      du r9| j                  t        |d               }|d|_        |j	                  |       |S | j                  |      S )Nr  Frj   )r   rB  r~   r  
_from_datary  rx  s      rc   _get_create_guildz!ConnectionState._get_create_guild  s]    88M"e+ OOCT
O4E $)!  &((..re   c                2    |j                   | j                  vS rg   )rj   r   rH  s     rc   is_guild_evictedz ConnectionState.is_guild_evicted  s    xxt||++re   .)rx   rU   c                  K   y wrg   r   rb   rn   rx   rU   s       rc   r  zConnectionState.chunk_guild  s	        c                  K   y wrg   r   r  s       rc   r  zConnectionState.chunk_guild  s      	r  c                 K   |xs | j                   j                  }| j                  j                  |j                        }|t        |j                  |j                  | j                  | j                  |      x| j                  |j                  <   }| j                  |j                  |j                         d {    |r|j                          d {   S |j                         S 7 .7 w)NrT   r  )r   r  r   r   rj   rS   rY   r[   rB  r  r_   rx   rz   )rb   rn   rx   rU   r   s        rc   r  zConnectionState.chunk_guild  s      70077&&**5884?7C%..$))T__E8 D  *W ,,uxxw}},=== ''!!##	 > (s$   B=C2?C. C2C0C20C2c                <    t        d|j                  xs ddz        S )Ng      @r   i'  )maxmember_countrH  s     rc   r  zConnectionState._chunk_timeout  s    3++0qE9::re   c                T  K   | j                  |      }	 t        j                  | j                  |      |       d {    |du r| j                  d|       y | j                  d|       y 7 .# t        j                  $ r# t
        j                  d|j                         Y aw xY ww)Nr  z5Somehow timed out waiting for chunks for guild ID %s.Fr  r  )	r  r  r  r  r  r   r   rj   r   )rb   rn   r  r  s       rc   _chunk_and_dispatchz#ConnectionState._chunk_and_dispatch	  s     %%e,	\""4#3#3E#:GLLL %MM+U3MM,. M## 	\LLPRWRZRZ[	\s8   B()A/ A-A/ *B(-A/ /3B%"B($B%%B(c                Z    	 | j                   j                  |       y# t        $ r Y yw xY wNTF)r  
put_nowaitr  rH  s     rc   _add_ready_statez ConnectionState._add_ready_state  s4    	((/   		s    	**c                6   |j                  d      }|du ry | j                  |      }| j                  |      ry | j                  |      r&t	        j
                  | j                  ||             y |du r| j                  d|       y | j                  d|       y )Nr  TFr  r  )r   r  r  r}  r  r  r  r   )rb   r  r  rn   s       rc   parse_guild_createz"ConnectionState.parse_guild_create  s    hh}-$&&t,  ' %%e, 8 8 LM %MM+U3MM,.re   c                    | j                  t        |d               }|:t        j                  |      }|j                  |       | j	                  d||       y t
        j                  d|d          y )Nrj   guild_updatez=GUILD_UPDATE referencing an unknown guild ID: %s. Discarding.)rB  r~   r  r  r   r   r  )rb   r  rn   	old_guilds       rc   parse_guild_updatez"ConnectionState.parse_guild_update5  s`    DJ0		%(IT"MM.)U;JJVX\]aXbcre   c                   | j                  t        |d               t        j                  d|d          y |j	                  dd      rd_        | j                  d       y | j                  /t        fd| j                  D        | j                        | _        | j                         | j                  d	       y )
Nrj   z=GUILD_DELETE referencing an unknown guild ID: %s. Discarding.r  FTguild_unavailablec              3  B   K   | ]  }|j                   k7  s|  y wrg   )rn   ).0r  rn   s     rc   	<genexpr>z5ConnectionState.parse_guild_delete.<locals>.<genexpr>N  s     E#))u2Ds   r   guild_remove)rB  r~   r   r  r   r  r   r   r   r   rM  rx  s     @rc   parse_guild_deletez"ConnectionState.parse_guild_delete>  s    DJ0=JJVX\]aXbc88M5) !%EMM-u5 >>%7<EEdN_N_8DN 	5!ne,re   c                    | j                  t        |d               }|D	 t        |d   |       }|j                  |j                        xs |}| j                  d||       y y # t        $ r Y y w xY w)NrX   r   rw  
member_ban)rB  r~   r   ri   rj   r   r   )rb   r  rn   r   ro   s        rc   parse_guild_ban_addz#ConnectionState.parse_guild_ban_addT  s{     D$4 56;fT: ))$''2:dlE6:   s   A% %	A10A1c                    | j                  t        |d               }|-d|v r(| j                  |d         }| j                  d||       y y y )NrX   r   member_unban)rB  r~   r   r   )rb   r  rn   r   s       rc   parse_guild_ban_removez&ConnectionState.parse_guild_ban_removed  sP    D$4 564??4<0DMM.%6 "0re   c                    | j                  t        |d               }|t        j                  d|d          y |d   }t	        |||       }|j                  |       | j                  d|       y )NrX   zBGUILD_ROLE_CREATE referencing an unknown guild ID: %s. Discarding.roler}  guild_role_create)rB  r~   r   r  r%   	_add_roler   )rb   r  rn   	role_datar  s        rc   parse_guild_role_createz'ConnectionState.parse_guild_role_createj  sj    D$4 56=JJ[]abl]mnL	%it<)40re   c                    | j                  t        |d               }|3t        |d         }	 |j                  |      }| j                  d|       y t
        j                  d|d          y # t        $ r Y y w xY w)NrX   role_idguild_role_deletezBGUILD_ROLE_DELETE referencing an unknown guild ID: %s. Discarding.)rB  r~   _remove_roler   r   r   r  )rb   r  rn   r  r  s        rc   parse_guild_role_deletez'ConnectionState.parse_guild_role_deleteu  s~    D$4 56$y/*G9))'2 148JJ[]abl]mn  s   A- -	A98A9c                6   | j                  t        |d               }|a|d   }t        |d         }|j                  |      }|:t        j                  |      }|j	                  |       | j                  d||       y y t        j                  d|d          y )NrX   r  rj   guild_role_updatezBGUILD_ROLE_UPDATE referencing an unknown guild ID: %s. Discarding.)rB  r~   get_roler  r  r   r   r  )rb   r  rn   r  r  r  old_roles          rc   parse_guild_role_updatez'ConnectionState.parse_guild_role_update  s    D$4 56VI)D/*G>>'*D99T?Y'18TB  
 JJ[]abl]mnre   c                |   t        |d         }| j                  |      }|j                  dg       }|y |j                  dg       D cg c]  }t        |||        }}t        j                  dt        |      |       |rg|D ci c]  }t        |j                        | }}|D ]?  }|d   }	|	d   }
|j                  |
      }|!t        ||       }|j                  ||	       A |j                  d	d
      dz   |j                  d      k(  }| j                  ||j                  d      ||       y c c}w c c}w )NrX   r   rm   r}  z0Processed a chunk for %s members in guild ID %s.r   rj   rw  chunk_indexr   r   chunk_countr_   )r~   rB  r   r$   r   r  rb  r   rj   r#   r  r   )rb   r  rX   rn   r   ro   rm   member_dictpresencer   rz  raw_presencer   s                rc   parse_guild_members_chunkz)ConnectionState.parse_guild_members_chunk  s:   tJ'()HH["-	=NRhhW`bdNefNeF6F$?Nef

Es7|U]^Y`3aY`vC		NF4JY`K3a%' J	$3%#9xt#TL++L$? & 88M1-1TXXm5LL##Hdhhw.?(S g 4bs   	D4D9c                    | j                  t        |d               }|| j                  d|       y t        j	                  d|d          y )NrX   guild_integrations_updatezJGUILD_INTEGRATIONS_UPDATE referencing an unknown guild ID: %s. Discarding.)rB  r~   r   r   r  rx  s      rc   parse_guild_integrations_updatez/ConnectionState.parse_guild_integrations_update  sE    D$4 56MM5u=JJceijteuvre   c                    t        |d         }| j                  |      }|.t        |d         \  }} |||      }| j                  d|       y t        j                  d|       y )NrX   r   r  rn   integration_createzCINTEGRATION_CREATE referencing an unknown guild ID: %s. Discarding.r~   rB  r.   r   r   r  rb   r  rX   rn   clsrf  integrations          rc   parse_integration_createz(ConnectionState.parse_integration_create  b    tJ'())$v,7FC4u5KMM.<JJ\^fgre   c                    t        |d         }| j                  |      }|.t        |d         \  }} |||      }| j                  d|       y t        j                  d|       y )NrX   r   r  integration_updatezCINTEGRATION_UPDATE referencing an unknown guild ID: %s. Discarding.r  r  s          rc   parse_integration_updatez(ConnectionState.parse_integration_update  r  re   c                    t        |d         }| j                  |      }|t        |      }| j                  d|       y t        j                  d|       y )NrX   raw_integration_deletezCINTEGRATION_DELETE referencing an unknown guild ID: %s. Discarding.)r~   rB  RawIntegrationDeleteEventr   r   r  )rb   r  rX   rn   r  s        rc   parse_integration_deletez(ConnectionState.parse_integration_delete  sN    tJ'()+D1CMM2C8JJ\^fgre   c                    | j                  t        |d               }|t        j                  d|d          y t	        j
                  |d      }|j                  |      }|| j                  d|       y t        j                  d|d          y )NrX   z?WEBHOOKS_UPDATE referencing an unknown guild ID: %s. Discardingr[  webhooks_updatezBWEBHOOKS_UPDATE referencing an unknown channel ID: %s. Discarding.)rB  r~   r   r  r)   r   r.  r   )rb   r  rn   r[  re  s        rc   parse_webhooks_updatez%ConnectionState.parse_webhooks_update  s    D$4 56=JJXZ^_iZjk,,T<@
##J/MM+W5JJ[]abn]opre   c                    | j                  t        |d               }|:t        || |      }||j                  |j                  <   | j                  d|       y t        j                  d|d          y )NrX   r$  stage_instance_createzCSTAGE_INSTANCE_CREATE referencing unknown guild ID: %s. Discarding.)rB  r~   r3   _stage_instancesrj   r   r   r  rb   r  rn   stage_instances       rc   parse_stage_instance_createz+ConnectionState.parse_stage_instance_create  si    D$4 56*dNN8FE"">#4#45MM1>BJJ\^bcm^nore   c                n   | j                  t        |d               }|}|j                  j                  t        |d               }|:t	        j                  |      }|j                  |       | j                  d||       y t        j                  d|d          y t        j                  d|d          y )NrX   rj   stage_instance_updatezLSTAGE_INSTANCE_UPDATE referencing unknown stage instance ID: %s. Discarding.zCSTAGE_INSTANCE_UPDATE referencing unknown guild ID: %s. Discarding.)	rB  r~   r  r   r  r  r   r   r  )rb   r  rn   r
  old_stage_instances        rc   parse_stage_instance_updatez+ConnectionState.parse_stage_instance_update  s    D$4 56"3377DJHN)%)YY~%>"&&t,57I>Z

ikoptkuvJJ\^bcm^nore   c                   | j                  t        |d               }|;	 |j                  j                  t        |d               }| j	                  d|       y t        j                  d|d          y # t
        $ r Y y w xY w)NrX   rj   stage_instance_deletezCSTAGE_INSTANCE_DELETE referencing unknown guild ID: %s. Discarding.)rB  r~   r  r  r   r   r   r  r	  s       rc   parse_stage_instance_deletez+ConnectionState.parse_stage_instance_delete  s    D$4 56G!&!7!7!;!;CT
O!L 5~FJJ\^bcm^no     'A5 5	B Bc                    | j                  t        |d               }|9t        | |      }||j                  |j                  <   | j                  d|       y t        j                  d|d          y )NrX   r  scheduled_event_createzDSCHEDULED_EVENT_CREATE referencing unknown guild ID: %s. Discarding.)rB  r~   r2   r2  rj   r   r   r  rb   r  rn   scheduled_events       rc   "parse_guild_scheduled_event_createz2ConnectionState.parse_guild_scheduled_event_create  sg    D$4 56,4dCO:IE##O$6$67MM2ODJJ]_cdn_opre   c                n   | j                  t        |d               }|}|j                  j                  t        |d               }|:t	        j                  |      }|j                  |       | j                  d||       y t        j                  d|d          y t        j                  d|d          y )NrX   rj   scheduled_event_updatezNSCHEDULED_EVENT_UPDATE referencing unknown scheduled event ID: %s. Discarding.zDSCHEDULED_EVENT_UPDATE referencing unknown guild ID: %s. Discarding.)	rB  r~   r2  r   r  r  r   r   r  )rb   r  rn   r  old_scheduled_events        rc   "parse_guild_scheduled_event_updatez2ConnectionState.parse_guild_scheduled_event_update  s    D$4 56#5599#d4j/JO*&*ii&@#''-68K_]

kmqrvmwxJJ]_cdn_opre   c                   | j                  t        |d               }|;	 |j                  j                  t        |d               }| j	                  d|       y t        j                  d|d          y # t
        $ r Y y w xY w)NrX   rj   r+  zDSCHEDULED_EVENT_DELETE referencing unknown guild ID: %s. Discarding.)rB  r~   r2  r  r   r   r   r  r  s       rc   "parse_guild_scheduled_event_deletez2ConnectionState.parse_guild_scheduled_event_delete  s    D$4 56I"'"9"9"="=c$t*o"N 6HJJ]_cdn_op  r  c                   | j                  t        |d               }||j                  j                  t        |d               }|^| j	                  t        |d               }|%|j                  |       | j                  d||       y t        j                  d|d          y t        j                  d|d          y t        j                  d|d          y )NrX   guild_scheduled_event_idr  scheduled_event_user_addzESCHEDULED_EVENT_USER_ADD referencing unknown user ID: %s. Discarding.zPSCHEDULED_EVENT_USER_ADD referencing unknown scheduled event ID: %s. Discarding.zFSCHEDULED_EVENT_USER_ADD referencing unknown guild ID: %s. Discarding.)	rB  r~   r2  r   r"  	_add_userr   r   r  rb   r  rn   r  r   s        rc   $parse_guild_scheduled_event_user_addz4ConnectionState.parse_guild_scheduled_event_user_add  s    D$4 56#5599#dC]>^:_`O*}}Si%9:##--d3MM"<otTJJfhlmvhwx

f34
 JJ_aefpaqrre   c                   | j                  t        |d               }||j                  j                  t        |d               }|h| j	                  t        |d               }|/|j                  |j                         | j                  d||       y t        j                  d|d          y t        j                  d|d          y t        j                  d|d          y )NrX   r   r  scheduled_event_user_removezHSCHEDULED_EVENT_USER_REMOVE referencing unknown user ID: %s. Discarding.zSSCHEDULED_EVENT_USER_REMOVE referencing unknown scheduled event ID: %s. Discarding.zISCHEDULED_EVENT_USER_REMOVE referencing unknown guild ID: %s. Discarding.)
rB  r~   r2  r   r"  	_pop_userrj   r   r   r  r#  s        rc   'parse_guild_scheduled_event_user_removez7ConnectionState.parse_guild_scheduled_event_user_remove0  s    D$4 56#5599#dC]>^:_`O*}}Si%9:##--dgg6MM"?RVWJJikopykz{

i34
 JJbdhisdture   c                    t        |d         }| j                  |      }|2t        || |      }|j                  |       | j	                  d|       y t
        j                  d|       y )NrX   r$  soundboard_sound_createzKGUILD_SOUNDBOARD_SOUND_CREATE referencing unknown guild ID: %s. Discarding.)r~   rB  r;   _add_soundboard_soundr   r   r  )rb   r  rX   rn   sounds        rc   #parse_guild_soundboard_sound_createz3ConnectionState.parse_guild_soundboard_sound_createC  s`    tJ'()#%t$GE''.MM3U;JJdfnore   c                v    t        j                   |      }|j                  |       | j                  d||       y )Nsoundboard_sound_update)r  r  r   )rb   r,  r  	old_sounds       rc   !_update_and_dispatch_sound_updatez1ConnectionState._update_and_dispatch_sound_updateM  s-    IIe$	d/EBre   c                   t        |d         }| j                  |      }|Kt        |d         }|j                  |      }|| j                  ||       y t        j                  d|       y t        j                  d|       y )NrX   sound_idzKGUILD_SOUNDBOARD_SOUND_UPDATE referencing unknown sound ID: %s. Discarding.zKGUILD_SOUNDBOARD_SOUND_UPDATE referencing unknown guild ID: %s. Discarding.)r~   rB  get_soundboard_soundr1  r   r   r  rb   r  rX   rn   r3  r,  s         rc   #parse_guild_soundboard_sound_updatez3ConnectionState.parse_guild_soundboard_sound_updateR  sz    tJ'()4
+,H..x8E 66udCjltuJJdfnore   c                *   t        |d         }| j                  |      }|\t        |d         }|j                  |      }|$|j                  |       | j	                  d|       y t
        j                  d|       y t
        j                  d|       y )NrX   r3  soundboard_sound_deletezKGUILD_SOUNDBOARD_SOUND_DELETE referencing unknown sound ID: %s. Discarding.zKGUILD_SOUNDBOARD_SOUND_DELETE referencing unknown guild ID: %s. Discarding.)r~   rB  r4  _remove_soundboard_soundr   r   r   r  r5  s         rc   #parse_guild_soundboard_sound_deletez3ConnectionState.parse_guild_soundboard_sound_delete_  s    tJ'()4
+,H..x8E ..u57?jltuJJdfnore   c                   t        |d         }| j                  |      }|t        j                  d|       y |d   D ]L  }t        |d         }|j	                  |      }|| j                  ||       7t        j                  d|       N y )NrX   zLGUILD_SOUNDBOARD_SOUNDS_UPDATE referencing unknown guild ID: %s. Discarding.rQ  r3  zLGUILD_SOUNDBOARD_SOUNDS_UPDATE referencing unknown sound ID: %s. Discarding.)r~   rB  r   r  r4  r1  r   )rb   r  rX   rn   	raw_soundr3  r,  s          rc   $parse_guild_soundboard_sounds_updatez4ConnectionState.parse_guild_soundboard_sounds_updatem  s    tJ'()=JJegop12I9Z01H..x8E 66uiHkmuv 3re   c                B    t        ||       }| j                  d|       y )Nrw  "raw_app_command_permissions_update)#RawAppCommandPermissionsUpdateEventr   )rb   r  r  s      rc   ,parse_application_command_permissions_updatez<ConnectionState.parse_application_command_permissions_update|  s    1t4H:C@re   c                   | j                  t        j                  |d            }t        j                  |d      }| j                  }| j                  j
                  }|t        |d         |k(  rN| j                  |j
                        }|1|j                  |      }t        j                  t        |d             |j                  ||      \  }}	}
|c|j                  rB|-|j                  r!|j
                  |k7  r|j                  |       n||j!                  |       | j#                  d||	|
       y t$        j'                  d|d          y y )NrX   r[  r  z)Voice Protocol voice state update handlerr   voice_state_updatezDVOICE_STATE_UPDATE referencing an unknown member ID: %s. Discarding.)rB  r)   r   r   r   rj   r~   r	  on_voice_state_updater  r  r   _update_voice_stater   _voice_onlyr  rl   r   r   r  )rb   r  rn   r[  r  r   r   r   ro   beforeafters              rc   parse_voice_state_updatez(ConnectionState.parse_voice_state_update  s/    7 7j IJ,,T<@
'')),,4	?#w...uxx8$ 66t<D''(9$Ep(qr$)$=$=dJ$O!FFE!;;!)e.?.?FIIQXDX,,V4#/))&12FFEJ

acghqcrs% re   c                    | j                  t        |d               }|!t        | ||      }| j                  d|       y t        j                  d|d          y )NrX   )r  r  rn   voice_channel_effectzJVOICE_CHANNEL_EFFECT_SEND referencing an unknown guild ID: %s. Discarding.)rB  r~   VoiceChannelEffectr   r   r  )rb   r  rn   effects       rc   parse_voice_channel_effect_sendz/ConnectionState.parse_voice_channel_effect_send  sS    D$4 56'dUKFMM0&9JJceijteuvre   c                    t        |d         }| j                  |      }|2|j                  |      }t        j                  t        |d             y y )NrX   z*Voice Protocol voice server update handlerrC  )r~   r	  on_voice_server_updater  r  r   )rb   r  key_idr  r   s        rc   parse_voice_server_updatez)ConnectionState.parse_voice_server_update  sR    T*%&##F+>,,T2D 1$=i jk re   c                n   t        |      }| j                  |j                        |_        | j	                  |      \  }}|t        |t              rJ|j                  |j                  |j                  vrz|j                  j                  |j                         nT|R|j                  |j                        |_        |j                  &|j                  d      }|rt        || |      |_        |j                  (| j                  d||j                  |j                         | j                  d|       y )Nro   )r  r  rn   typing
raw_typing)RawTypingEventr"  r  r   r  r   rL   
recipientsrt   ri   r   r$   r   	timestamp)rb   r  r  re  rn   r  s         rc   parse_typing_startz"ConnectionState.parse_typing_start  s    T"==-006'9-88'CHHG<N<N,N&&--chh7" ++CKK888#"&((8"4K"#){$e#Txx#h3==IlC(re   c                B    t        ||       }| j                  d|       y )Nrw  entitlement_creater   r   rb   r  entitlements      rc   parse_entitlement_createz(ConnectionState.parse_entitlement_create      !t48*K8re   c                B    t        ||       }| j                  d|       y )Nrw  entitlement_updater]  r^  s      rc   parse_entitlement_updatez(ConnectionState.parse_entitlement_update  ra  re   c                B    t        ||       }| j                  d|       y )Nrw  entitlement_deleter]  r^  s      rc   parse_entitlement_deletez(ConnectionState.parse_entitlement_delete  ra  re   c                   t        |      }| j                  d|       | j                  |j                        }| j	                  |j
                        }|r|j                  |j                        }n| j                  |j                        }|rh|re| j                  ||j                  d|j                  | j                  k(        }|r-| j                  d||j                  |j                               y y y y )Nraw_poll_vote_addTpoll_vote_addRawPollVoteActionEventr   ru  r0  rB  rX   ri   r  r"  r  r  r   
get_answerrb   r  r  r  rn   r   r  s          rc   parse_message_poll_vote_addz+ConnectionState.parse_message_poll_vote_add  s    $T*)3/##CNN3-##CKK0D==-Dt++GS]]D#++Y]YeYeJefDotT__S]]5ST  7re   c                   t        |      }| j                  d|       | j                  |j                        }| j	                  |j
                        }|r|j                  |j                        }n| j                  |j                        }|rh|re| j                  ||j                  d|j                  | j                  k(        }|r-| j                  d||j                  |j                               y y y y )Nraw_poll_vote_removeFpoll_vote_removerk  rn  s          rc   parse_message_poll_vote_removez.ConnectionState.parse_message_poll_vote_remove  s    $T*,c2##CNN3-##CKK0D==-Dt++GS]]E3;;Z^ZfZfKfgD0$8VW  7re   c                B    t        ||       }| j                  d|       y )Nrw  subscription_creater<   r   rb   r  subscriptions      rc   parse_subscription_createz)ConnectionState.parse_subscription_create      #T:+\:re   c                B    t        ||       }| j                  d|       y )Nrw  subscription_updaterv  rw  s      rc   parse_subscription_updatez)ConnectionState.parse_subscription_update  rz  re   c                B    t        ||       }| j                  d|       y )Nrw  subscription_deleterv  rw  s      rc   parse_subscription_deletez)ConnectionState.parse_subscription_delete  rz  re   c                    t        |t        t        t        f      r|j                  j                  |      S | j                  |      S rg   )r   r  r4   r  rn   ri   r"  )rb   re  r  s      rc   r  z"ConnectionState._get_reaction_user  s7    gV\BC==++G44}}W%%re   c                    t        j                  |d      }|s|d   S 	 | j                  |   S # t        $ r/ t	        j
                  | |j                  dd      ||d         cY S w xY w)Nrj   nameanimatedF)r  rj   r  )r)   r   r   r   r   
with_stater   )rb   r  r%  s      rc   get_reaction_emojiz"ConnectionState.get_reaction_emoji  sp    **46<	<<)) 	**txx
E:xdSYl 	s   . 5A&%A&c                x    |j                   }|s|j                  S 	 | j                  |   S # t        $ r |cY S w xY wrg   )rj   r  r   r   )rb   r&  r%  s      rc   r  z&ConnectionState._upgrade_partial_emoji  s@    88::	<<)) 	L	s   + 99c                    |y | j                  |      }||S | j                  D ]  }|j                  |      }||c S  y rg   )r\  r   r  )rb   rj   pmrn   re  s        rc   r.  zConnectionState.get_channel  sM    :&&r*>I[[E,,R0G" !re   c                   t        | ||      S )N)r  re  r  r   )rb   re  r  s      rc   create_messagezConnectionState.create_message%  s    T7>>re   c                Z    |y | j                   D ]  }|j                  |      }||c S  y rg   )r   _resolve_soundboard_sound)rb   rj   rn   r,  s       rc   r4  z$ConnectionState.get_soundboard_sound(  s3    :[[E33B7E  !re   )r   zCallable[..., Any]r   zDict[str, Callable[..., Any]]r   z2Dict[str, Callable[..., Coroutine[Any, Any, Any]]]r   r@   r   r   r   r   )r   r   r   )r   r   r   r   )
rX   r~   r_   Optional[str]rm   r   r   r   r   r   )rY   z
int | Noner   r   )r   r   r   r   r   r   r   r   )r   Optional[int])r   r+   )r   zList[VoiceProtocol])rX   r  r   zOptional[VoiceProtocol])rX   r~   r   rA   r   r   )rX   r~   r   r   )r  rB   r   r   )r  &Union[UserPayload, PartialUserPayload]rU   r   r   r   )r  r  r   r   )rj   r~   r   zOptional[User])rn   r   r  EmojiPayloadr   r   )rn   r   r  GuildStickerPayloadr   r6   )NN)r/  r1   r0  r  r1  r  r   r   )r0  r~   r   zOptional[View])r   zType[DynamicItem[Item[Any]]]r   r   )r   zSequence[View])r   zSequence[Guild])rX   r  r   zOptional[Guild])rX   r~   r  zOptional[Dict[str, Any]]r   r   )rn   r   r   r   )r   zSequence[Emoji])r   zSequence[GuildSticker])r   zList[SoundboardSound])r%  r  r   zOptional[Emoji])r)  r  r   zOptional[GuildSticker])r   zSequence[PrivateChannel])r[  r  r   zOptional[PrivateChannel])r  r  r   zOptional[DMChannel])re  r=   r   r   )r  DMChannelPayloadr   rL   )rq  r  r   zOptional[Message])r  GuildPayloadr   r   rn   r   r   r   rg   )r  PartialMessagePayloadrX   r  r   z.Tuple[Union[Channel, Thread], Optional[Guild]])F)
r  r    r  r~   r  r   r  r   r   zOptional[Poll])r  r    r  zUnion[Message, int]r   r    r   F)rX   r~   r  r   r  r~   r   r   r_   r  r   r   )rn   r   r  r  r  r~   r  zOptional[List[int]]rU   r   r   r   r   r   r  zgw.ReadyEventr   r   r  zgw.ResumedEventr   r   )r  zgw.MessageCreateEventr   r   )r  zgw.MessageDeleteEventr   r   )r  zgw.MessageDeleteBulkEventr   r   )r  zgw.MessageUpdateEventr   r   )r  zgw.MessageReactionAddEventr   r   )r  z gw.MessageReactionRemoveAllEventr   r   )r  zgw.MessageReactionRemoveEventr   r   )r  z"gw.MessageReactionRemoveEmojiEventr   r   )r  zgw.InteractionCreateEventr   r   )r  zgw.PresenceUpdateEventr   r   )r  zgw.UserUpdateEventr   r   )r  zgw.InviteCreateEventr   r   )r  zgw.InviteDeleteEventr   r   )r  zgw.ChannelDeleteEventr   r   )r  zgw.ChannelUpdateEventr   r   )r  zgw.ChannelCreateEventr   r   )r  zgw.ChannelPinsUpdateEventr   r   )r  zgw.ThreadCreateEventr   r   )r  zgw.ThreadUpdateEventr   r   )r  zgw.ThreadDeleteEventr   r   )r  zgw.ThreadListSyncEventr   r   )r  zgw.ThreadMemberUpdater   r   )r  zgw.ThreadMembersUpdater   r   )r  zgw.GuildMemberAddEventr   r   )r  zgw.GuildMemberRemoveEventr   r   )r  zgw.GuildMemberUpdateEventr   r   )r  zgw.GuildEmojisUpdateEventr   r   )r  zgw.GuildStickersUpdateEventr   r   )r  zgw.GuildAuditLogEntryCreater   r   )r  rH   r   r   )r  rI   r   r   )r  gw.GuildCreateEventr   r   )rn   r   rx   zLiteral[True]rU   Optional[bool]r   r   )rn   r   rx   zLiteral[False]rU   r  r   r   )rn   r   rx   r   rU   r  r   z1Union[List[Member], asyncio.Future[List[Member]]])rn   r   r   float)r  r  r   r   )r  zgw.GuildUpdateEventr   r   )r  zgw.GuildDeleteEventr   r   )r  zgw.GuildBanAddEventr   r   )r  zgw.GuildBanRemoveEventr   r   )r  zgw.GuildRoleCreateEventr   r   )r  zgw.GuildRoleDeleteEventr   r   )r  zgw.GuildRoleUpdateEventr   r   )r  zgw.GuildMembersChunkEventr   r   )r  zgw.GuildIntegrationsUpdateEventr   r   )r  zgw.IntegrationCreateEventr   r   )r  zgw.IntegrationUpdateEventr   r   )r  zgw.IntegrationDeleteEventr   r   )r  zgw.WebhooksUpdateEventr   r   )r  zgw.StageInstanceCreateEventr   r   )r  zgw.StageInstanceUpdateEventr   r   )r  zgw.StageInstanceDeleteEventr   r   )r  z!gw.GuildScheduledEventCreateEventr   r   )r  z!gw.GuildScheduledEventUpdateEventr   r   )r  z!gw.GuildScheduledEventDeleteEventr   r   )r  zgw.GuildScheduledEventUserAddr   r   )r  z gw.GuildScheduledEventUserRemover   r   )r  z"gw.GuildSoundBoardSoundCreateEventr   r   )r,  r;   r  "gw.GuildSoundBoardSoundUpdateEvent)r  r  r   r   )r  z"gw.GuildSoundBoardSoundDeleteEventr   r   )r  z#gw.GuildSoundBoardSoundsUpdateEventr   r   )r  )GuildApplicationCommandPermissionsPayload)r  zgw.VoiceStateUpdateEventr   r   )r  zgw.VoiceChannelEffectSendEvent)r  zgw.VoiceServerUpdateEventr   r   )r  zgw.TypingStartEventr   r   )r  zgw.EntitlementCreateEventr   r   )r  zgw.EntitlementUpdateEventr   r   )r  zgw.EntitlementDeleteEventr   r   )r  zgw.PollVoteActionEventr   r   )r  zgw.SubscriptionCreateEventr   r   )r  zgw.SubscriptionUpdateEventr   r   )r  zgw.SubscriptionDeleteEventr   r   )re  r>   r  r~   r   zOptional[Union[User, Member]])r  PartialEmojiPayloadr   Union[Emoji, PartialEmoji, str])r&  r   r   r  )rj   r  r   z Optional[Union[Channel, Thread]])re  r>   r  MessagePayloadr   r    )rj   r  r   zOptional[SoundboardSound])r   r   r   r   __annotations__rd   propertyr   r   r   r   r   r   r   r   r   r   r	  r  r  r  r   r   r   r"  r'  r+  r2  r5  r9  r;  r=  r   rB  rF  rI  rM  rK  rL  rQ  rT  rV  rX  r\  r^  rh  rk  rm  ru  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r$  r(  r9  rA  rG  rN  rX  ra  rc  rn  rp  r{  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r(  r-  r1  r6  r:  r=  rA  rJ  rO  rS  rZ  r`  rd  rg  ro  rs  ry  r}  r  r  r  r  r.  r  r4  r   re   rc   r   r      s   77++==_ %_ 0	_
 B_ _ _ 
_H 1 1	, &* <(
**"( # #  
 2 21.0 Y] 	 dh ++#
4
D36 1 1 : :* cg q'	 : : < <  *. D D	;
KGj
n
 FJb)b5Bb	7b<, QVfquff$'f58fIMfanf	f#09<H[dhuy	*.$`D2!	1)+T8>4DE$D 2$=0$//b*d6"J*5&1,3"3H  7D-0&i:QW7$3333/, GJdg   69SV%3BP	%  -1$$$%)$9G$	:$;//,d-,; 7	1ooT2whhhqpp
pqq
qs&v&pC
ppwAt4wl),999U$X$;;;&
?re   r   c                       e Zd Zd fdZddZ	 	 	 dddd	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZddZddZdd	Z	dd
Z
 xZS )AutoShardedConnectionStatec                N    t        |   |i | g | _        i | _        i | _        y rg   )superrd   	shard_ids_ready_tasks_ready_states)rb   r   r   r  s      rc   rd   z#AutoShardedConnectionState.__init__3  s,    $)&)24;=>@re   c                T   | j                   D ]  }|j                  s| j                  |j                  j                        }|8||j                  usG|j                  j                  }|j                  |      xs t        | ||j                        }|j                  ||        y )N)r  rj   rX   )r   rn   rB  rj   re  r  r  _rebind_cached_references)rb   r  	new_guildr[  re  s        rc   _update_message_referencesz5AutoShardedConnectionState._update_message_references;  s    >>C99		5I$#)))C [[^^
#44Z@ DV:	E --iA "re   N)rY   r_   c               r   K   | j                  ||      }|j                  |||||       d {    y 7 w)N)rY   r  r  )rb   rX   r  r  r   rY   r_   r  s           rc   r  z"AutoShardedConnectionState.chunkerI  s=        H =Ui_deees   -757c                t    	 | j                   |j                     j                  |       y# t        $ r Y yw xY wr  )r  rY   r  r   rH  s     rc   r  z+AutoShardedConnectionState._add_ready_stateV  s=    	u~~.99%@   		s   (+ 	77c                   K   t        j                  | j                  j                           d {    d | _        i | _        | j                  d       | j                  d       y 7 5w)Nr  )r  gatherr  r  r   r   r   r   s    rc   r  z'AutoShardedConnectionState._delay_ready_  sZ     nnd//668999   	7#g 	:s   .A(A&6A(c                  K   	 g }	 	 t        j                  | j                  |   j                         | j                         d {   }| j                  |      r/| j                  |d       d {   }|j                  ||f       n4|j                  du r| j                  d|       n| j                  d|       	 7 y7 O# t         j                  $ r Y nw xY w|D ]  \  }}| j                  |      }	 t        j                  ||       d {  7   nD# t         j                  $ r. t        j                  d|j                  |j                         Y nw xY w|j                  du r| j                  d|       | j                  d|        	 | j                  |= n# t         $ r Y nw xY w| j                  d|       y # t         j"                  $ r Y y w xY ww)Nr  Fr  r  r  r  shard_ready)r  r  r  r   r   r}  r  rt   r  r   r  r  r   r   rY   rj   r   r  )rb   rY   r  rn   rw   r  s         rc   _delay_shard_readyz-AutoShardedConnectionState._delay_shard_readyj  s    *	3F?")"2"243E3Eh3O3S3S3U_c_w_w"xxE 11%8'+'7'7E'7'J!Jufo6 ,,5 MM*;UC MM,>  y
 "K	 ++  "(v--e4x!**67CCC++ xLL!\^c^l^lnsnvnvwx $$-MM"3U;MM,6 "(&&x0  MM-2	 %% 		s   GG ?C CC 'G 3C4AG C G CG CG 8DDDG >EG E8G F!  G !	F-*G ,F--G 0GGGGGc                
   | j                   | j                   j                          |d   d   }|| j                  v r.| j                  |   j                          | j                  |       || j                  vr!t        j                         | j                  |<   |  t        | |d         x| _        }|| j                  |j                  <   | j                  >	 |d   }t        j                  |d      | _        t        j                  |d         | _        |d   D ]  }| j%                  |        | j&                  r| j)                          | j+                  d	       | j+                  d
|       t        j,                  | j/                  |            | j                  |<   t1        | j                        t1        | j2                        k(  r)t        j,                  | j5                               | _         y y # t"        $ r Y w xY w)Nshardr   r   r  r  rj   r  r   r  shard_connect)r   r  r  r   r  r  r  r   r   r   rj   r   r)   r   r*   r  r   r   ry  r   r  r   r  r  rb  r  r  )rb   r  rY   r   r  r  s         rc   r  z&AutoShardedConnectionState.parse_ready  s   '##%=#t(((h'..0%%h/4---+2==?Dx(%DtF|DD	D#DGG&n"=1 6;5L5L[Z^5_#;K;W;WXcdkXl;m&x.J%%j1 ) >>++-i ox0&-&9&9$:Q:QRZ:[&\(# t  !S%88&2243D3D3FGD 9%  s   G6 6	HHc                P    | j                  d       | j                  d|d          y )Nr  shard_resumed__shard_id__r  r  s     rc   r  z(AutoShardedConnectionState.parse_resumed  s!    i otN';<re   )r   r   r   r   r   r   r   r  )rX   r~   r  r   r  r~   r   r   rY   r  r_   r  r   r   r  )rY   r~   r   r   r  r  )r   r   r   rd   r  r  r  r  r  r  r  __classcell__)r  s   @rc   r  r  2  s    AB" f #'#ff f 	f
 f  f f 
f	+3Z(HT=re   r  )r   zCoroutine[Any, Any, T]r   r   r   zOptional[T])__doc__
__future__r   r  collectionsr   r   r  loggingrU  r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r\   rn   r   r   r   skur   r   r   r   r&  r   mentionsr   partial_emojir   r  r    re  r"   
raw_modelsr   r#   ro   r$   r  r%   enumsr&   r'   r(   r  r)   r  r*   r+   r,   r#  r-   r  r.   interactionsr/   ui.viewr0   r1   r  r2   r
  r3   r7  r4   r5   r*  r6   automodr7   r8   
audit_logsr9   _typesr:   
soundboardr;   rx  r<   abcr=   r>   r?   r   r@   voice_clientrA   rO   rB   ui.itemrC   
ui.dynamicrD   r  rE   rF   r  rG   types.automodrH   rI   types.snowflakerJ   types.activityrK   ActivityPayloadtypes.channelrL   r  
types.userUserPayloadrM   PartialUserPayloadtypes.emojir  r  types.stickerr  types.guildr  types.messager  rN   r  typesgwtypes.commandrP   r  rQ   r  ChannelrS   	getLoggerr   r   r   r   r  r   re   rc   <module>r     sI  0 #  *      $   	  "  "  % '   %  -   0 0  > >  . % $ + ) ) ! / %  ' & #+# +)'5P*;<RWB2a$nAL.2DDEG// //d w"=Agg& AH4Q=!9 Q=re   