
    Qih                       d Z ddlZddlmZ ddlmZ ddlmZm	Z	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mZ ddlmZ ddlmZ ddlmZ ddlmZmZmZm Z m!Z! ddl"m#Z# ddl"m$Z% ddl"m&Z' er<ddlm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC  G d de      ZD G d deD      ZEy)z?This module contains an object that represents a Telegram Chat.    N)Sequence)escape)TYPE_CHECKINGFinalOptionalUnion)	constants)ChatPermissions)
ForumTopic)
MenuButton)ReactionType)TelegramObject)enum)DEFAULT_NONE)CorrectOptionID	FileInputJSONDictODVInputReplyMarkup)escape_markdown)mention_html)mention_markdown)	AnimationAudioChatInviteLink
ChatMemberContactDocumentGiftInlineKeyboardMarkupInputMediaAudioInputMediaDocumentInputMediaPhotoInputMediaVideoInputPaidMediaInputPollOptionLabeledPriceLinkPreviewOptionsLocationMessageMessageEntity	MessageId	PhotoSizeReplyParametersStickerUserChatBoostsVenueVideo	VideoNoteVoicec            J       R/    e Zd ZU dZdZ	 	 	 	 	 ddddededee   dee   d	ee   d
ee   dee   dee	   f fdZ
ej                  j                  Zee   ed<   	 ej                  j                   Zee   ed<   	 ej                  j"                  Zee   ed<   	 ej                  j$                  Zee   ed<   	 ej                  j&                  Zee   ed<   	 edee   fd       Zedee   fd       Zedee   fd       Zddee   defdZddee   defdZddee   defdZeeeedddee   dee   dee   dee   dee	   defd Zeeeedddee   dee   dee   dee   dee	   ded!   fd"Z eeeedddee   dee   dee   dee   dee	   defd#Z!eeeeddd$edee   dee   dee   dee   dee	   dd%fd&Z"	 	 deeeeddd$ed'ee   d(ee#ee$jJ                  f      dee   dee   dee   dee   dee	   defd)Z&eeeeddd*edee   dee   dee   dee   dee	   defd+Z'eeeeddd,e#eef   dee   dee   dee   dee   dee	   defd-Z(eeeeddd*edee   dee   dee   dee   dee	   defd.Z)eeeeddd,e#eef   dee   dee   dee   dee   dee	   defd/Z*	 deeeeddd$ed0ee   dee   dee   dee   dee   dee	   defd1Z+	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 deeeeddd$ed2ee   d3ee   d4ee   d5ee   d6ee   d7ee   d8ee   d9ee   d:ee   d;ee   d<ee   d=ee   d>ee   d?ee   d@ee   dee   dee   dee   dee   dee	   def,dAZ,	 	 deeeeddd$edBe-d(ee#ee$jJ                  f      dCee   dee   dee   dee   dee   dee	   defdDZ.	 deeeedddBe-dCee   dee   dee   dee   dee   dee	   defdEZ/eeeeddd$edFedee   dee   dee   dee   dee	   defdGZ0eeeedddHe1dee   dee   dee   dee   dee	   defdIZ2eeeedddee   dee   dee   dee   dee	   defdJZ3eeeedddedee   dee   dee   dee   dee	   defdKZ4	 deeeedddLee   dee   dee   dee   dee   dee	   defdMZ5edfeeeedddNedOee   dPee   dee   dee   dee   dee   dee	   defdQZ6	 	 deeeedddNee   dPee   dee   dee   dee   dee   dee	   defdRZ7eeeedddee   dee   dee   dee   dee	   defdSZ8eeddededdddfdedeeeeddTdUedVee   dOee   dWee9   dXee:dY      dZee   d[ee   d\ed]   d^ed_   dPee   d`ee   daee   dbee   dcee   ddee   dee   dee   dee   dee   dee	   ddef*dfZ;eeeedddNedee   dee   dee   dee   dee	   defdgZ<eeeedddhe:e   dee   dee   dee   dee   dee	   defdiZ=eedddddfdeeeeeddeddj
dke:e#dl      dOee   dZee   d[ee   d^ed_   dPee   d`ee   daee   dbee   dcee   dee   dee   dee   dee   dee	   dmee   dVee   dnee:dY      dedo   f&dpZ>	 	 deeeedddqed[ee   dPee   dee   dee   dee   dee   dee	   defdrZ?e?Z@	 dedededddddddfdedeeeeddsdHe#e1dtf   dmee   dOee   dWee9   dVee   dnee:dY      dZee   d[ee   duee   d^ed_   dPee   d`ee   daee   dvee   dbee   dcee   dwee   dee   dee   dee   dee   dee	   ddef.dxZAdddeddedddddfdedeeeeddydzee   d	ee   d
ee   dOee   dWee9   d{ee   dZee   d[ee   d^ed_   dPee   d`ee   daee   dbee   dcee   d|ed}   dee   dee   dee   dee   dee	   ddef*d~ZBddddedededdddddfdedeeeeddsde#e1df   dee   dee   dee   dmee   dOee   dWee9   dVee   dnee:dY      dZee   d[ee   dee1   d^ed_   dPee   d`ee   daee   dbee   dcee   dwee   dee   dee   dee   dee   dee	   ddef2dZCdededdeddddddfdedeeeeddsde#e1df   dmee   dOee   dWee9   dVee   dee   dnee:dY      dZee   d[ee   dee1   d^ed_   dPee   d`ee   daee   dbee   dcee   dwee   dee   dee   dee   dee   dee	   ddef.dZDeddedddddf	deeeeedddOee   dWee9   dee   dZee   d[ee   d^ed_   dPee   d`ee   daee   dbee   dcee   dee   dee   dee   dee   dee	   ddef"dZEededddddfdeeeeedddedOee   dWed   dZee   d[ee   d^ed_   dPee   d`ee   daee   dbee   dcee   dee   dee   dee   dee   dee	   ddef"dZFddddddddddeddddddeddddfdeeeeedddedLededee   dede:d   dee   dee   dee   dee   dee   dee   dee   dee   dee   dee   dOee   dWed   dee#eeGf      dee   dee   dee   dee:e      dZee   d[ee   d^ed_   d`ee   daee   dbee   dcee   dee   dee   dee   dee   dee	   ddefHdZHddedddddedddddfdedeeeedddee   dee   dOee   dWee9   dee   dee   dee   dee   dZee   d[ee   d^ed_   dPee   d`ee   daee   dbee   dcee   ded   dee   dee   dee   dee   dee	   ddef.dZIddddeeddeddddddddfdedeeeeddsde#e1df   dee   dee   dee   dmee   dVee   dOee   dWee9   dnee:dY      dZee   d[ee   duee   dee1   d^ed_   dPee   d`ee   daee   dvee   dbee   dcee   dwee   dee   dee   dee   dee   dee	   ddef6dZJededdddddf	deeeeeddde#e1df   dOee   dWee9   dZee   d[ee   dee   d^ed_   dPee   d`ee   daee   dbee   dcee   dee   dee   dee   dee   dee	   ddef$dZKdddddeddddedddddfdedeeeedddee   dee   dee   dee   dee   dOee   dWee9   dee   dee   dee   dZee   d[ee   d^ed_   dPee   d`ee   daee   dbee   dcee   ded   dee   dee   dee   dee   dee	   ddef2dZLddedddeddeddddddddfdedeeeeddsde#e1df   dee   dmee   dOee   dWee9   dee   dee   dVee   dee   dnee:dY      dZee   d[ee   duee   dee1   d^ed_   dPee   d`ee   daee   dvee   dbee   dcee   dwee   dee   dee   dee   dee   dee	   ddef8dZMddededdddddfdedeeeeddsde#e1df   dee   dee   dOee   dWee9   dZee   d[ee   dee1   d^ed_   dPee   d`ee   daee   dbee   dcee   dwee   dee   dee   dee   dee   dee	   ddef*dƄZNddedededddddfdedeeeeddsde#e1df   dee   dmee   dOee   dWee9   dVee   dnee:dY      dZee   d[ee   d^ed_   dPee   d`ee   daee   dbee   dcee   dwee   dee   dee   dee   dee   dee	   ddef,dɄZOdddddeddedddedddedddfdeeeeedddede:e#edf      d:ee   dee   dee   deeP   dee   dOee   dWee9   dee   dee   dee   dee#ee$jJ                  f      dee:dY      dZee   d[ee   d^ed_   dPee   dee   dee:dY      d`ee   daee   dbee   dcee   dee   dee   dee   dee   dee	   ddef<dׄZQdedededdddf
deeeeeddde#eef   dNedmee   dVee   dnee:dY      dOee   dWee9   dZee   d[ee   d^ed_   dvee   daee   dbee   dcee   dee   dee   dee   dee   dee	   ddf(dڄZRdedededdddf
deeeeeddd,e#eef   dNedmee   dVee   dnee:dY      dOee   dWee9   dZee   d[ee   d^ed_   dvee   daee   dbee   dcee   dee   dee   dee   dee   dee	   ddf(dۄZSeeddfeeeeddde#eef   dhe:e   dOee   dZee   d[ee   dee   dee   dee   dee   dee   dee	   ded   fdބZTeeddfeeeeddd,e#eef   dhe:e   dOee   dZee   d[ee   dee   dee   dee   dee   dee   dee	   ded   fd߄ZUeedfeeeeddde#eef   dNedOee   dZee   d[ee   dee   dee   dee   dee   dee	   ddefdZVeedfeeeeddd,e#eef   dNedOee   dZee   d[ee   dee   dee   dee   dee   dee	   ddefdZWeedfeeeeddde#eef   dhe:e   dOee   dZee   d[ee   dee   dee   dee   dee   dee	   ded   fdZXeedfeeeeddd,e#eef   dhe:e   dOee   dZee   d[ee   dee   dee   dee   dee   dee	   ded   fdZYeeeedddee   dee   dee   dee   dee	   defdZZ	 	 	 	 deeeedddee#ee$jJ                  f      dee   dee   dee   dee   dee   dee   dee   dee	   ddfdZ[	 	 	 	 deeeeddde#edf   dee#ee$jJ                  f      dee   dee   dee   dee   dee   dee   dee   dee	   ddfdZ\eeeeddde#edf   dee   dee   dee   dee   dee	   ddfdZ]	 deeeedddededee   dee   dee   dee   dee   dee	   ddfdZ^	 deeeeddde#edf   dee   dee   dee   dee   dee   dee	   ddfdZ_eeeeddd$edee   dee   dee   dee   dee	   defdZ`eeeeddd$edee   dee   dee   dee   dee	   defdZa	 deeeedddeeb   dee   dee   dee   dee   dee	   defdZc	 	 deeeedddedee   dee   dee   dee   dee   dee   dee	   dedfdZe	 	 deeeeddd[edee   dee   dee   dee   dee   dee   dee	   defdZfeeeeddd[edee   dee   dee   dee   dee	   defdZgeeeeddd[edee   dee   dee   dee   dee	   defdZheeeeddd[edee   dee   dee   dee   dee	   defdZieeeeddd[edee   dee   dee   dee   dee	   defdZjeeeedddee   dee   dee   dee   dee	   defdZkeeeedddedee   dee   dee   dee   dee	   defdZleeeedddee   dee   dee   dee   dee	   defdZmeeeedddee   dee   dee   dee   dee	   defd Zneeeedddee   dee   dee   dee   dee	   defdZoeeeedddee   dee   dee   dee   dee	   defdZpeeeedddee   dee   dee   dee   dee	   debfdZqeeeeddd$edee   dee   dee   dee   dee	   ddfdZr	 	 deeeedddNedee#e:e#esef      esef      dee   dee   dee   dee   dee   dee	   defdZtdeddeedddddfedeeeedd	d
edke:d   dmee   dVee   dnee:dY      dvee   dOee   dZee   d^ed_   dWee9   dPee   dee   daee   dcee   dbee   dee   dee   dee   dee   dee	   ddef*dZudeddfeeeeddde#edf   dUee   dee   dee:dY      dee   dee   dee   dee   dee   dee	   defdZv	 deeeedddee   dee   dee   dee   dee   dee	   defdZweeeedddee   dee   dee   dee   dee	   defdZx xZyS (  	_ChatBasezjBase class for :class:`telegram.Chat` and :class:`telegram.ChatFullInfo`.

    .. versionadded:: 21.3
    )
first_nameidis_forum	last_nametitletypeusernameN
api_kwargsr8   r<   r;   r=   r7   r:   r9   r?   c                   t         	|   |       || _        t        j                  t
        j                  ||      | _        || _        || _	        || _
        || _        || _        | j                  f| _        | j                          y )Nr>   )super__init__r8   r   
get_memberr	   ChatTyper<   r;   r=   r7   r:   r9   	_id_attrs_freeze)
selfr8   r<   r;   r=   r7   r:   r9   r?   	__class__s
            9/app/.venv/lib/python3.12/site-packages/telegram/_chat.pyrB   z_ChatBase.__init__P   so     	J/););T4H	$)
'/)3(1(0''    SENDERPRIVATEGROUP
SUPERGROUPCHANNELreturnc                 d    | j                   | j                   S | j                  | j                  S y)z
        :obj:`str`: Convenience property. Gives :attr:`~Chat.title` if not :obj:`None`,
        else :attr:`~Chat.full_name` if not :obj:`None`.

        .. versionadded:: 20.1
        N)r;   	full_namerG   s    rI   effective_namez_ChatBase.effective_namey   s/     ::!::>>%>>!rJ   c                     | j                   sy| j                  r| j                    d| j                   S | j                   S )a]  
        :obj:`str`: Convenience property. If :attr:`~Chat.first_name` is not :obj:`None`, gives
        :attr:`~Chat.first_name` followed by (if available) :attr:`~Chat.last_name`.

        Note:
            :attr:`full_name` will always be :obj:`None`, if the chat is a (super)group or
            channel.

        .. versionadded:: 13.2
        N )r7   r:   rS   s    rI   rR   z_ChatBase.full_name   s:     >>oo&a'788rJ   c                 :    | j                   rd| j                    S y)z}:obj:`str`: Convenience property. If the chat has a :attr:`~Chat.username`, returns a
        t.me link of the chat.
        zhttps://t.me/N)r=   rS   s    rI   linkz_ChatBase.link   s    
 =="4==/22rJ   namec                    | j                   | j                  k(  rO|rt        | j                  |      S | j                  r t        | j                  | j                        S t        d      | j                  rI|rd| d| j                   dS | j                  rd| j                   d| j                   dS t        d      t        d      )a  
        Note:
            :tg-const:`telegram.constants.ParseMode.MARKDOWN` is a legacy mode, retained by
            Telegram for backward compatibility. You should use :meth:`mention_markdown_v2`
            instead.

        .. versionadded:: 20.0

        Args:
            name (:obj:`str`): The name used as a link for the chat. Defaults to
                :attr:`~Chat.full_name`.

        Returns:
            :obj:`str`: The inline mention for the chat as markdown (version 1).

        Raises:
            :exc:`TypeError`: If the chat is a private chat and neither the :paramref:`name`
                nor the :attr:`~Chat.first_name` is set, then throw an :exc:`TypeError`.
                If the chat is a public chat and neither the :paramref:`name` nor the
                :attr:`~Chat.title` is set, then throw an :exc:`TypeError`. If chat is a
                private group chat, then throw an :exc:`TypeError`.

        =Can not create a mention to a private chat without first name[]()7Can not create a mention to a public chat without title0Can not create a mention to a private group chat)	r<   rL   helpers_mention_markdownr8   rR   	TypeErrorr=   rX   r;   rG   rY   s     rI   r   z_ChatBase.mention_markdown   s    0 99$/>>~~/HH[\\==4&499+Q//zz4::,b155UVVJKKrJ   c                    | j                   | j                  k(  rS|rt        | j                  |d      S | j                  r"t        | j                  | j                  d      S t        d      | j                  r_|rdt        |d       d| j                   dS | j                  r(dt        | j                  d       d| j                   dS t        d      t        d      )	a  
        .. versionadded:: 20.0

        Args:
            name (:obj:`str`): The name used as a link for the chat. Defaults to
                :attr:`~Chat.full_name`.

        Returns:
            :obj:`str`: The inline mention for the chat as markdown (version 2).

        Raises:
            :exc:`TypeError`: If the chat is a private chat and neither the :paramref:`name`
                nor the :attr:`~Chat.first_name` is set, then throw an :exc:`TypeError`.
                If the chat is a public chat and neither the :paramref:`name` nor the
                :attr:`~Chat.title` is set, then throw an :exc:`TypeError`. If chat is a
                private group chat, then throw an :exc:`TypeError`.

           )versionr[   r\   r]   r^   r_   r`   )
r<   rL   ra   r8   rR   rb   r=   r   rX   r;   rc   s     rI   mention_markdown_v2z_ChatBase.mention_markdown_v2   s    & 99$/qII~~/QRSS[\\==?4;<BtyykKKzz?4::qAB"TYYKqQQUVVJKKrJ   c                    | j                   | j                  k(  rO|rt        | j                  |      S | j                  r t        | j                  | j                        S t        d      | j                  r[|rd| j                   dt        |       dS | j                  r&d| j                   dt        | j                         dS t        d      t        d      )a  
        .. versionadded:: 20.0

        Args:
            name (:obj:`str`): The name used as a link for the chat. Defaults to :attr:`full_name`.

        Returns:
            :obj:`str`: The inline mention for the chat as HTML.

        Raises:
            :exc:`TypeError`: If the chat is a private chat and neither the :paramref:`name`
                nor the :attr:`~Chat.first_name` is set, then throw an :exc:`TypeError`.
                If the chat is a public chat and neither the :paramref:`name` nor the
                :attr:`~Chat.title` is set, then throw an :exc:`TypeError`.
                If chat is a private group chat, then throw an :exc:`TypeError`.

        r[   z	<a href="z">z</a>r_   r`   )
r<   rL   helpers_mention_htmlr8   rR   rb   r=   rX   r   r;   rc   s     rI   r   z_ChatBase.mention_html   s    $ 99$+DGGT::~~+DGGT^^DD[\\=="499+Rt~TBBzz"499+Rtzz0B/C4HHUVVJKKrJ   )read_timeoutwrite_timeoutconnect_timeoutpool_timeoutr?   rj   rk   rl   rm   c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)a  Shortcut for::

             await bot.leave_chat(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.leave_chat`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        chat_idrj   rk   rl   rm   r?   N)get_bot
leave_chatr8   rG   rj   rk   rl   rm   r?   s         rI   leavez_ChatBase.leave	  sF     & \\^..GG%'+%! / 
 
 	
 
   3<:<)r   .c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)a]  Shortcut for::

             await bot.get_chat_administrators(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_chat_administrators`.

        Returns:
            tuple[:class:`telegram.ChatMember`]: A tuple of administrators in a chat. An Array of
            :class:`telegram.ChatMember` objects that contains information about all
            chat administrators except other bots. If the chat is a group or a supergroup
            and no administrators were appointed, only the creator will be returned.

        ro   N)rq   get_chat_administratorsr8   rs   s         rI   get_administratorsz_ChatBase.get_administrators%  sF     . \\^;;GG%'+%! < 
 
 	
 
ru   c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)a	  Shortcut for::

             await bot.get_chat_member_count(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_chat_member_count`.

        Returns:
            :obj:`int`
        ro   N)rq   get_chat_member_countr8   rs   s         rI   get_member_countz_ChatBase.get_member_countE  sF     & \\^99GG%'+%! : 
 
 	
 
ru   user_idr   c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)a  Shortcut for::

             await bot.get_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.get_chat_member`.

        Returns:
            :class:`telegram.ChatMember`

        rp   r|   rj   rk   rl   rm   r?   N)rq   get_chat_memberr8   rG   r|   rj   rk   rl   rm   r?   s          rI   rC   z_ChatBase.get_membera  sI     ( \\^33GG%'+%! 4 
 
 	
 
   4=;=revoke_messages
until_datec                   K   | j                         j                  | j                  ||||||||	       d{   S 7 w)a$  Shortcut for::

             await bot.ban_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.ban_chat_member`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )	rp   r|   rj   rk   rl   rm   r   r?   r   N)rq   ban_chat_memberr8   )	rG   r|   r   r   rj   rk   rl   rm   r?   s	            rI   
ban_memberz_ChatBase.ban_member  sO     , \\^33GG%'+%!!+ 4 

 

 
	
 

   6?=?sender_chat_idc          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)aW  Shortcut for::

             await bot.ban_chat_sender_chat(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.ban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        rp   r   rj   rk   rl   rm   r?   Nrq   ban_chat_sender_chatr8   rG   r   rj   rk   rl   rm   r?   s          rI   ban_sender_chatz_ChatBase.ban_sender_chat  sI     . \\^88GG)%'+%! 9 
 
 	
 
r   rp   c          	      ~   K   | j                         j                  || j                  |||||       d{   S 7 w)a~  Shortcut for::

             await bot.ban_chat_sender_chat(
                 sender_chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.ban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r   Nr   rG   rp   rj   rk   rl   rm   r?   s          rI   ban_chatz_ChatBase.ban_chat  sI     2 \\^8877%'+%! 9 
 
 	
 
r   c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)a[  Shortcut for::

             await bot.unban_chat_sender_chat(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r   Nrq   unban_chat_sender_chatr8   r   s          rI   unban_sender_chatz_ChatBase.unban_sender_chat  sI     . \\^::GG)%'+%! ; 
 
 	
 
r   c          	      ~   K   | j                         j                  || j                  |||||       d{   S 7 w)a  Shortcut for::

             await bot.unban_chat_sender_chat(
                 sender_chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r   Nr   r   s          rI   
unban_chatz_ChatBase.unban_chat  sI     2 \\^::77%'+%! ; 
 
 	
 
r   only_if_bannedc          
         K   | j                         j                  | j                  |||||||       d{   S 7 w)a!  Shortcut for::

             await bot.unban_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.unban_chat_member`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rp   r|   rj   rk   rl   rm   r?   r   N)rq   unban_chat_memberr8   )rG   r|   r   rj   rk   rl   rm   r?   s           rI   unban_memberz_ChatBase.unban_member)  sL     * \\^55GG%'+%!) 6 	
 	
 		
 	
   5><>can_change_infocan_post_messagescan_edit_messagescan_delete_messagescan_invite_userscan_restrict_memberscan_pin_messagescan_promote_membersis_anonymouscan_manage_chatcan_manage_video_chatscan_manage_topicscan_post_storiescan_edit_storiescan_delete_storiesc                   K   | j                         j                  | j                  |||||||||	||||||
||||||       d{   S 7 w)a  Shortcut for::

             await bot.promote_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.promote_chat_member`.

        .. versionadded:: 13.2
        .. versionchanged:: 20.0
           The argument ``can_manage_voice_chats`` was renamed to
           :paramref:`~telegram.Bot.promote_chat_member.can_manage_video_chats` in accordance to
           Bot API 6.0.
        .. versionchanged:: 20.6
           The arguments `can_post_stories`, `can_edit_stories` and `can_delete_stories` were
           added.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rp   r|   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   r   r   r   r   r   r   r   N)rq   promote_chat_memberr8   )rG   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                         rI   promote_memberz_ChatBase.promote_memberI  sw     Z \\^77GG+// 3-!5- 3%'+%!%+#9/--1- 8 
 
 	
 
   AAA
Apermissions use_independent_chat_permissionsc                   K   | j                         j                  | j                  |||||||||	
       d{   S 7 w)a  Shortcut for::

             await bot.restrict_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.restrict_chat_member`.

        .. versionadded:: 13.2

        .. versionadded:: 20.1
            Added :paramref:`~telegram.Bot.restrict_chat_member.use_independent_chat_permissions`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )
rp   r|   r   r   r   rj   rk   rl   rm   r?   N)rq   restrict_chat_memberr8   )
rG   r|   r   r   r   rj   rk   rl   rm   r?   s
             rI   restrict_memberz_ChatBase.restrict_member  sR     : \\^88GG#!-M%'+%! 9 
 
 	
 
   7A >A c          
         K   | j                         j                  | j                  |||||||       d{   S 7 w)a  Shortcut for::

             await bot.set_chat_permissions(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_permissions`.

        .. versionadded:: 20.1
            Added :paramref:`~telegram.Bot.set_chat_permissions.use_independent_chat_permissions`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rp   r   r   rj   rk   rl   rm   r?   N)rq   set_chat_permissionsr8   )rG   r   r   rj   rk   rl   rm   r?   s           rI   set_permissionsz_ChatBase.set_permissions  sL     2 \\^88GG#-M%'+%! 9 	
 	
 		
 	
r   custom_titlec          
         K   | j                         j                  | j                  |||||||       d{   S 7 w)am  Shortcut for::

             await bot.set_chat_administrator_custom_title(
                 update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_administrator_custom_title`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rp   r|   r   rj   rk   rl   rm   r?   N)rq   #set_chat_administrator_custom_titler8   )rG   r|   r   rj   rk   rl   rm   r?   s           rI   set_administrator_custom_titlez(_ChatBase.set_administrator_custom_title  sM     0 \\^GGGG%%'+%! H 	
 	
 		
 	
r   photoc          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)ak  Shortcut for::

             await bot.set_chat_photo(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_photo`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rp   r   rj   rk   rl   rm   r?   N)rq   set_chat_photor8   )rG   r   rj   rk   rl   rm   r?   s          rI   	set_photoz_ChatBase.set_photo   I     2 \\^22GG%'+%! 3 
 
 	
 
r   c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)aq  Shortcut for::

             await bot.delete_chat_photo(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.delete_chat_photo`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        ro   N)rq   delete_chat_photor8   rs   s         rI   delete_photoz_ChatBase.delete_photo#  sF     0 \\^55GG%'+%! 6 
 
 	
 
ru   c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)ak  Shortcut for::

             await bot.set_chat_title(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_title`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rp   r;   rj   rk   rl   rm   r?   N)rq   set_chat_titler8   )rG   r;   rj   rk   rl   rm   r?   s          rI   	set_titlez_ChatBase.set_titleD  r   r   descriptionc          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)aw  Shortcut for::

             await bot.set_chat_description(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_description`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rp   r   rj   rk   rl   rm   r?   N)rq   set_chat_descriptionr8   )rG   r   rj   rk   rl   rm   r?   s          rI   set_descriptionz_ChatBase.set_descriptiong  sI     2 \\^88GG#%'+%! 9 
 
 	
 
r   
message_iddisable_notificationbusiness_connection_idc                   K   | j                         j                  | j                  ||||||||	       d{   S 7 w)a0  Shortcut for::

              await bot.pin_chat_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.pin_chat_message`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )	rp   r   r   rj   rk   rl   rm   r?   r   N)rq   pin_chat_messager8   )	rG   r   r   r   rj   rk   rl   rm   r?   s	            rI   pin_messagez_ChatBase.pin_message  sO     . \\^44GG!!5%'+%!#9 5 

 

 
	
 

r   c          
         K   | j                         j                  | j                  |||||||       d{   S 7 w)a4  Shortcut for::

              await bot.unpin_chat_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_chat_message`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rp   rj   rk   rl   rm   r?   r   r   N)rq   unpin_chat_messager8   )rG   r   r   rj   rk   rl   rm   r?   s           rI   unpin_messagez_ChatBase.unpin_message  sL     , \\^66GG%'+%!!#9 7 	
 	
 		
 	
r   c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)a>  Shortcut for::

              await bot.unpin_all_chat_messages(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_all_chat_messages`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        ro   N)rq   unpin_all_chat_messagesr8   rs   s         rI   unpin_all_messagesz_ChatBase.unpin_all_messages  sF     ( \\^;;GG%'+%! < 
 
 	
 
ru   )reply_to_message_idallow_sending_without_replydisable_web_page_previewrj   rk   rl   rm   r?   text
parse_modereply_markupentitiesr+   protect_contentmessage_thread_idlink_preview_optionsr(   reply_parametersr.   message_effect_idallow_paid_broadcastr   r   r   r*   c                   K   | j                         j                  | j                  |||||||	|||||||||||
||       d{   S 7 w)a6  Shortcut for::

             await bot.send_message(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_message`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   r   r   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   r   r   r   N)rq   send_messager8   )rG   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                        rI   r   z_ChatBase.send_message  st     D \\^00GG!%=!5 3!5-%(C+/%'+%!#9/!5+ 1 
 
 	
 
   AAA	Ac          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)a;  Shortcut for::

             await bot.delete_message(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.delete_message`.

        .. versionadded:: 20.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rp   r   rj   rk   rl   rm   r?   N)rq   delete_messager8   )rG   r   rj   rk   rl   rm   r?   s          rI   r   z_ChatBase.delete_message%  sI     , \\^22GG!%'+%! 3 
 
 	
 
r   message_idsc          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)a=  Shortcut for::

             await bot.delete_messages(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.delete_messages`.

        .. versionadded:: 20.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rp   r   rj   rk   rl   rm   r?   N)rq   delete_messagesr8   )rG   r   rj   rk   rl   rm   r?   s          rI   r   z_ChatBase.delete_messagesE  sI     , \\^33GG#%'+%! 4 
 
 	
 
r   )
r   r   rj   rk   rl   rm   r?   captionr   caption_entitiesmedia)r!   r"   r#   r$   r   r   )r*   .c	       
            K   | j                         j                  | j                  |||	||||||
|||||||||       d{   S 7 w)as  Shortcut for::

             await bot.send_media_group(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_media_group`.

        Returns:
            tuple[:class:`telegram.Message`]: On success, a tuple of :class:`~telegram.Message`
            instances that were sent is returned.

        )rp   r   r   r   rj   rk   rl   rm   r?   r   r   r   r   r   r   r   r   r   r   N)rq   send_media_groupr8   )rG   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   r   r   r   s                      rI   r   z_ChatBase.send_media_groupe  sn     F \\^44GG!5 3%'+%!(C+/!--#9/!5' 5 
 
 	
 
s   A A	AA	actionc                   K   | j                         j                  | j                  ||||||||	       d{   S 7 w)a  Shortcut for::

             await bot.send_chat_action(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_chat_action`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )	rp   r   r   rj   rk   rl   rm   r?   r   N)rq   send_chat_actionr8   )	rG   r   r   r   rj   rk   rl   rm   r?   s	            rI   r   z_ChatBase.send_chat_action  sO     , \\^44GG/%'+%!#9 5 

 

 
	
 

r   )r   r   filenamerj   rk   rl   rm   r?   r-   has_spoilershow_caption_above_mediar   c                   K   | j                         j                  | j                  |||||
|||||||||||||	||||       d{   S 7 w)a2  Shortcut for::

             await bot.send_photo(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_photo`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   r   r   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   r   r   r   r   r   N)rq   
send_photor8   )rG   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                          rI   r   z_ChatBase.send_photo  sz     H \\^..GG!5 3-%!(C-+/%'+%!##9/!5%=/ / 
 
 	
 
   AAAA)r   r   contactrj   rk   rl   rm   r?   phone_numbervcardr   r   c                   K   | j                         j                  | j                  ||||||	||||||||||||
||       d{   S 7 w)a6  Shortcut for::

             await bot.send_contact(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_contact`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   r   r7   r:   r   r   r   r   rj   rk   rl   rm   r   r   r?   r   r   r   r   r   r   N)rq   send_contactr8   )rG   r   r7   r:   r   r   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                        rI   r   z_ChatBase.send_contact  st     D \\^00GG%!!5 3-%%'+%!(C+/#9/!5+ 1 
 
 	
 
r   audior   duration	performer	thumbnailc                   K   | j                         j                  | j                  ||||||||||||	||
||||||||||       d{   S 7 w)a2  Shortcut for::

             await bot.send_audio(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_audio`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   r   r  r  r;   r   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   r  r   r   r   N)rq   
send_audior8   )rG   r   r  r  r;   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                            rI   r  z_ChatBase.send_audio;  s     L \\^..GG!5 3-%!(C-+/%'+%!#9/!53 / 
 
 	
 
   AAA	Adocumentr   disable_content_type_detectionc                   K   | j                         j                  | j                  |||||||||||||
||||||	|||       d{   S 7 w)a8  Shortcut for::

             await bot.send_document(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_document`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   r  r   r   r   r   r   r   rj   rk   rl   rm   r   r  r?   r  r   r   r   r   r   r   r   N)rq   send_documentr8   )rG   r  r   r   r   r   r  r   r   r   r  r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                          rI   r
  z_ChatBase.send_document}  sz     H \\^11GG!5 3-%%'+%!!+I(C-+/#9/!5/ 2 
 
 	
 
r   )r   r   rj   rk   rl   rm   r?   emojic
                   K   | j                         j                  | j                  ||
||||||||||||||	       d{   S 7 w)a0  Shortcut for::

             await bot.send_dice(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_dice`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   r   r   r   r   rj   rk   rl   rm   r  r?   r   r   r   r   r   r   N)rq   	send_dicer8   )rG   r   r   r  r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                    rI   r  z_ChatBase.send_dice  sg     < \\^--GG!5 3-%%'+%!(C+/#9/!5# . 
 
 	
 
   >A AAgame_short_namer    c
                   K   | j                         j                  | j                  |||
|||||||||||||	       d{   S 7 w)a0  Shortcut for::

             await bot.send_game(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_game`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   r  r   r   r   r   rj   rk   rl   rm   r?   r   r   r   r   r   r   N)rq   	send_gamer8   )rG   r  r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                    rI   r  z_ChatBase.send_game  sg     < \\^--GG+!5 3-%%'+%!(C+/#9/!5# . 
 
 	
 
r  payloadprovider_tokencurrencypricesr'   start_parameter	photo_url
photo_sizephoto_widthphoto_height	need_nameneed_phone_number
need_emailneed_shipping_addressis_flexibleprovider_datasend_phone_number_to_providersend_email_to_providermax_tip_amountsuggested_tip_amountsc                F  K    | j                         j                  d&i d| j                  d|d|d|d|d|d|d|d	|d
|	d|
d|d|d|d|d|d|d|d|d|d|d|d|d|d| d|!d|"d|#d|d|d|d |d!|d"|d#|d$| d%{   S 7 w)'a  Shortcut for::

             await bot.send_invoice(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_invoice`.

        Warning:
            As of API 5.2 :paramref:`start_parameter <telegram.Bot.send_invoice.start_parameter>`
            is an optional argument and therefore the
            order of the arguments had to be changed. Use keyword arguments to make sure that the
            arguments are passed correctly.

        .. versionchanged:: 13.5
            As of Bot API 5.2, the parameter
            :paramref:`start_parameter <telegram.Bot.send_invoice.start_parameter>` is optional.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rp   r;   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r!  r"  rj   rk   rl   rm   r?   r   r#  r$  r   r   r   r   r   N )rq   send_invoicer8   )$rG   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   rj   rk   rl   rm   r?   s$                                       rI   r'  z_ChatBase.send_invoice  s    v 1T\\^00 %
GG%
%
 $%
 	%

 *%
 %
 %
 ,%
  %
 "%
 $%
 &%
  %
 0%
 "%
  #8!%
" $#%
$ "6%%
& !4'%
( &)%
* (+%
, +H-%
. $:/%
0 &1%
2 (3%
4 ,5%
6 &7%
8 "9%
: )D;%
< *=%
> #8?%
@ ,A%
B 0C%
D .E%
F 0G%
H "6I%
 %
 %	
 %
s   BB!BB!)r   r   locationrj   rk   rl   rm   r?   latitude	longitudelive_periodhorizontal_accuracyheadingproximity_alert_radiusr(  r)   c                   K   | j                         j                  | j                  ||||||||||||||||||	|
|||       d{   S 7 w)a8  Shortcut for::

             await bot.send_location(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_location`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   r)  r*  r   r   r   r   rj   rk   rl   rm   r(  r+  r?   r,  r-  r.  r   r   r   r   r   r   N)rq   send_locationr8   )rG   r)  r*  r   r   r+  r,  r-  r.  r   r   r   r   r   r   r   r   r(  rj   rk   rl   rm   r?   s                          rI   r0  z_ChatBase.send_location  sz     H \\^11GG!5 3-%%'+%#! 3#9(C+/#9/!5/ 2 
 
 	
 
r   	animationr   widthheightc                   K   | j                         j                  | j                  |||||||||||||||||	||
|||||||       d{   S 7 w)a:  Shortcut for::

             await bot.send_animation(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_animation`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   r1  r  r2  r3  r   r   r   r   r   r   rj   rk   rl   rm   r?   r   r   r   r   r   r   r  r   r   r   r   N)rq   send_animationr8   )rG   r1  r  r2  r3  r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                              rI   r5  z_ChatBase.send_animation  s     P \\^22GG!!5 3-%%'+%!(C-+/##9/!5%=7 3 
 
 	
 
s   AA
AAstickerr/   c                   K   | j                         j                  | j                  ||||||||||||||||	|
       d{   S 7 w)a6  Shortcut for::

             await bot.send_sticker(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_sticker`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   r6  r   r   r   r   rj   rk   rl   rm   r?   r   r   r   r  r   r   r   N)rq   send_stickerr8   )rG   r6  r   r   r   r   r  r   r   r   r   r   r   rj   rk   rl   rm   r?   s                     rI   r8  z_ChatBase.send_sticker  sj     > \\^00GG!5 3-%%'+%!(C+/#9/!5% 1 
 
 	
 
s   ?AAA)r   r   venuerj   rk   rl   rm   r?   addressfoursquare_idfoursquare_typegoogle_place_idgoogle_place_typer9  r1   c                   K   | j                         j                  | j                  |||||||||||||||||	|
||||||       d{   S 7 w)a2  Shortcut for::

             await bot.send_venue(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_venue`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   r)  r*  r;   r:  r;  r   r   r   r   rj   rk   rl   rm   r9  r<  r?   r=  r>  r   r   r   r   r   r   N)rq   
send_venuer8   )rG   r)  r*  r;   r:  r;  r   r   r<  r=  r>  r   r   r   r   r   r   r   r   r9  rj   rk   rl   rm   r?   s                            rI   r@  z_ChatBase.send_venue9  s     L \\^..GG'!5 3-%%'+%+!+/(C+/#9/!53 / 
 
 	
 
r  videor2   supports_streamingc                   K   | j                         j                  | j                  |||||||||||||||	||||
||||||||       d{   S 7 w)a2  Shortcut for::

             await bot.send_video(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_video`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   rA  r  r   r   r   r   r   rj   rk   rl   rm   r2  r3  r   rB  r  r?   r   r   r   r   r   r   r   r   r   r   N)rq   
send_videor8   )rG   rA  r  r   r   r   r2  r3  r   rB  r   r   r   r   r  r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                               rI   rD  z_ChatBase.send_video{  s     R \\^..GG!5 3-%%'+%!1!(C-+/##9/!5%=9 / 
 
 	
 
s   A	AAA
video_noter3   lengthc                   K   | j                         j                  | j                  ||||||	||||||||||||
||       d{   S 7 w)a<  Shortcut for::

             await bot.send_video_note(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_video_note`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   rE  r  rF  r   r   r   r   rj   rk   rl   rm   r  r?   r   r   r   r   r   r   r   N)rq   send_video_noter8   )rG   rE  r  rF  r   r   r   r   r  r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                        rI   rH  z_ChatBase.send_video_note  st     D \\^33GG!!5 3-%%'+%!(C+/#9/!5+ 4 
 
 	
 
r   voicer4   c                   K   | j                         j                  | j                  ||||||
||||||||||||	|||       d{   S 7 w)a2  Shortcut for::

             await bot.send_voice(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_voice`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   rI  r  r   r   r   r   r   rj   rk   rl   rm   r   r?   r   r   r   r   r   r   r   r   N)rq   
send_voicer8   )rG   rI  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                         rI   rK  z_ChatBase.send_voice  sw     F \\^..GG!5 3-%%'+%!!(C-+/#9/!5- / 
 
 	
 
r   questionoptionsr&   allows_multiple_answerscorrect_option_id	is_closedexplanationexplanation_parse_modeopen_period
close_dateexplanation_entitiesquestion_parse_modequestion_entitiesc                "  K    | j                         j                  d i d| j                  d|d|d|d|d|d|d|d	|d
|d|d|	d|d|d|d|d|d|d|
d|d|d|d|d|d|d|d|d|d|d| d{   S 7 w)!a0  Shortcut for::

             await bot.send_poll(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_poll`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rp   rL  rM  r   r<   rN  rO  rP  r   r   r   r   rj   rk   rl   rm   r   r   rQ  rR  rS  rT  r?   r   rU  r   r   r   rV  rW  Nr&  )rq   	send_pollr8   )rG   rL  rM  r   r<   rN  rO  rP  r   r   rQ  rR  rS  rT  rU  r   r   r   r   rV  rW  r   r   r   r   rj   rk   rl   rm   r?   s                                 rI   rY  z_ChatBase.send_poll9  s[    V .T\\^-- 
GG

 
 &	

 
 %<
 0
  
 "6
 !4
 .
 &
 &
 (
 ,
  &!
" 0#
$ "6%
& $'
( $:)
* $+
, "-
. "/
0 )D1
2 "63
4 ,5
6 07
8 $:9
: !4;
< 0=
 
 	
 
s   BBB	Bfrom_chat_idr,   c                   K   | j                         j                  | j                  ||||||||
|||||||||	||       d{   S 7 w)a  Shortcut for::

             await bot.copy_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_message`.

        .. seealso:: :meth:`copy_message`, :meth:`send_copies`, :meth:`copy_messages`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   rZ  r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   r   r   r   r   Nrq   copy_messager8   )rG   rZ  r   r   r   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                       rI   	send_copyz_ChatBase.send_copy  sq     F \\^00GG%!!-!5 3-(C%%'+%!+/%=!5) 1 
 
 	
 
   AA
AA
c                   K   | j                         j                  | j                  ||||||||
|||||||||	||       d{   S 7 w)a  Shortcut for::

             await bot.copy_message(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_message`.

        .. seealso:: :meth:`send_copy`, :meth:`send_copies`, :meth:`copy_messages`.

        Returns:
            :class:`telegram.MessageId`: On success, returns the MessageId of the sent message.

        )rZ  rp   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   r   r   r   r   Nr\  )rG   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   s                       rI   r]  z_ChatBase.copy_message  sq     F \\^00!!-!5 3-(C%%'+%!+/%=!5) 1 
 
 	
 
r_  remove_caption)r,   .c                   K   | j                         j                  | j                  |||||||||	|
|       d{   S 7 w)a  Shortcut for::

             await bot.copy_messages(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_messages`.

        .. seealso:: :meth:`copy_message`, :meth:`send_copy`, :meth:`copy_messages`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of the sent messages is returned.

        )rp   rZ  r   r   r   r   ra  rj   rk   rl   rm   r?   Nrq   copy_messagesr8   )rG   rZ  r   r   r   r   ra  rj   rk   rl   rm   r?   s               rI   send_copiesz_ChatBase.send_copies  sX     < \\^11GG%#!5+/)%'+%! 2 
 
 	
 
   9AA Ac                   K   | j                         j                  | j                  |||||||||	|
|       d{   S 7 w)a  Shortcut for::

             await bot.copy_messages(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_messages`.

        .. seealso:: :meth:`copy_message`, :meth:`send_copy`, :meth:`send_copies`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of the sent messages is returned.

        )rZ  rp   r   r   r   r   ra  rj   rk   rl   rm   r?   Nrc  )rG   rp   r   r   r   r   ra  rj   rk   rl   rm   r?   s               rI   rd  z_ChatBase.copy_messages&	  sX     < \\^11#!5+/)%'+%! 2 
 
 	
 
rf  c                   K   | j                         j                  | j                  |||||||	|
||       d{   S 7 w)a  Shortcut for::

             await bot.forward_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_message`.

        .. seealso:: :meth:`forward_to`, :meth:`forward_messages_from`, :meth:`forward_messages_to`

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rp   rZ  r   r   rj   rk   rl   rm   r?   r   r   Nrq   forward_messager8   )rG   rZ  r   r   r   r   rj   rk   rl   rm   r?   s              rI   forward_fromz_ChatBase.forward_fromS	  sU     8 \\^33GG%!!5%'+%!+/ 4 
 
 	
 
   8A?Ac                   K   | j                         j                  | j                  |||||||	|
||       d{   S 7 w)a  Shortcut for::

             await bot.forward_message(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_message`.

        .. seealso:: :meth:`forward_from`, :meth:`forward_messages_from`,
            :meth:`forward_messages_to`

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rZ  rp   r   r   rj   rk   rl   rm   r?   r   r   Nri  )rG   rp   r   r   r   r   rj   rk   rl   rm   r?   s              rI   
forward_toz_ChatBase.forward_to}	  sU     : \\^33!!5%'+%!+/ 4 
 
 	
 
rl  c                   K   | j                         j                  | j                  |||||||||	|
       d{   S 7 w)a  Shortcut for::

             await bot.forward_messages(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_messages`.

        .. seealso:: :meth:`forward_to`, :meth:`forward_from`, :meth:`forward_messages_to`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of sent messages is returned.

        )rp   rZ  r   r   r   r   rj   rk   rl   rm   r?   Nrq   forward_messagesr8   )rG   rZ  r   r   r   r   rj   rk   rl   rm   r?   s              rI   forward_messages_fromz_ChatBase.forward_messages_from	  sU     : \\^44GG%#!5+/%'+%! 5 
 
 	
 
rl  c                   K   | j                         j                  | j                  |||||||||	|
       d{   S 7 w)a  Shortcut for::

             await bot.forward_messages(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_messages`.

        .. seealso:: :meth:`forward_from`, :meth:`forward_to`, :meth:`forward_messages_from`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of sent messages is returned.

        )rZ  rp   r   r   r   r   rj   rk   rl   rm   r?   Nrp  )rG   rp   r   r   r   r   rj   rk   rl   rm   r?   s              rI   forward_messages_toz_ChatBase.forward_messages_to	  sU     : \\^44#!5+/%'+%! 5 
 
 	
 
rl  c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)aS  Shortcut for::

             await bot.export_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.export_chat_invite_link`.

        .. versionadded:: 13.4

        Returns:
            :obj:`str`: New invite link on success.

        ro   N)rq   export_chat_invite_linkr8   rs   s         rI   export_invite_linkz_ChatBase.export_invite_link	  sF     , \\^;;GG%'+%! < 
 
 	
 
ru   expire_datemember_limitcreates_join_requestr   c                   K   | j                         j                  | j                  |||||||	||
       d{   S 7 w)a  Shortcut for::

             await bot.create_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.create_chat_invite_link`.

        .. versionadded:: 13.4

        .. versionchanged:: 13.8
           Edited signature according to the changes of
           :meth:`telegram.Bot.create_chat_invite_link`.

        Returns:
            :class:`telegram.ChatInviteLink`

        )
rp   rx  ry  rj   rk   rl   rm   r?   rY   rz  N)rq   create_chat_invite_linkr8   )
rG   rx  ry  rY   rz  rj   rk   rl   rm   r?   s
             rI   create_invite_linkz_ChatBase.create_invite_link
  sR     < \\^;;GG#%%'+%!!5 < 
 
 	
 
r   invite_linkc                   K   | j                         j                  | j                  |||||||	|
||       d{   S 7 w)a  Shortcut for::

             await bot.edit_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_chat_invite_link`.

        .. versionadded:: 13.4

        .. versionchanged:: 13.8
           Edited signature according to the changes of :meth:`telegram.Bot.edit_chat_invite_link`.

        Returns:
            :class:`telegram.ChatInviteLink`

        )rp   r~  rx  ry  rj   rk   rl   rm   r?   rY   rz  N)rq   edit_chat_invite_linkr8   )rG   r~  rx  ry  rY   rz  rj   rk   rl   rm   r?   s              rI   edit_invite_linkz_ChatBase.edit_invite_linkH
  sU     < \\^99GG##%%'+%!!5 : 
 
 	
 
rl  c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)aL  Shortcut for::

             await bot.revoke_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.revoke_chat_invite_link`.

        .. versionadded:: 13.4

        Returns:
            :class:`telegram.ChatInviteLink`

        )rp   r~  rj   rk   rl   rm   r?   N)rq   revoke_chat_invite_linkr8   )rG   r~  rj   rk   rl   rm   r?   s          rI   revoke_invite_linkz_ChatBase.revoke_invite_linkt
  sI     . \\^;;GG#%'+%! < 
 
 	
 
r   subscription_periodsubscription_pricec                   K   | j                         j                  | j                  ||||||||	       d{   S 7 w)a  Shortcut for::

            await bot.create_chat_subscription_invite_link(
                chat_id=update.effective_chat.id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.create_chat_subscription_invite_link`.

        .. versionadded:: 21.5

        Returns:
            :class:`telegram.ChatInviteLink`
        )	rp   r  r  rY   rj   rk   rl   rm   r?   N)rq   $create_chat_subscription_invite_linkr8   )	rG   r  r  rY   rj   rk   rl   rm   r?   s	            rI   create_subscription_invite_linkz)_ChatBase.create_subscription_invite_link
  sP     4 \\^HHGG 31%'+%! I 

 

 
	
 

r   c          
         K   | j                         j                  | j                  |||||||       d{   S 7 w)a  Shortcut for::

            await bot.edit_chat_subscription_invite_link(
                chat_id=update.effective_chat.id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_chat_subscription_invite_link`.

        .. versionadded:: 21.5

        Returns:
            :class:`telegram.ChatInviteLink`

        )rp   r~  rj   rk   rl   rm   r?   rY   N)rq   "edit_chat_subscription_invite_linkr8   )rG   r~  rY   rj   rk   rl   rm   r?   s           rI   edit_subscription_invite_linkz'_ChatBase.edit_subscription_invite_link
  sM     4 \\^FFGG#%'+%! G 	
 	
 		
 	
r   c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)aa  Shortcut for::

             await bot.approve_chat_join_request(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.approve_chat_join_request`.

        .. versionadded:: 13.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r~   N)rq   approve_chat_join_requestr8   r   s          rI   approve_join_requestz_ChatBase.approve_join_request
  I     . \\^==GG%'+%! > 
 
 	
 
r   c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)aa  Shortcut for::

             await bot.decline_chat_join_request(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.decline_chat_join_request`.

        .. versionadded:: 13.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r~   N)rq   decline_chat_join_requestr8   r   s          rI   decline_join_requestz_ChatBase.decline_join_request  r  r   menu_buttonc          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)a  Shortcut for::

             await bot.set_chat_menu_button(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_menu_button`.

        Caution:
            Can only work, if the chat is a private chat.

        .. seealso:: :meth:`get_menu_button`

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rp   r  rj   rk   rl   rm   r?   N)rq   set_chat_menu_buttonr8   )rG   r  rj   rk   rl   rm   r?   s          rI   set_menu_buttonz_ChatBase.set_menu_button"  sI     6 \\^88GG#%'+%! 9 
 
 	
 
r   
icon_coloricon_custom_emoji_idc                   K   | j                         j                  | j                  ||||||||	       d{   S 7 w)a=  Shortcut for::

             await bot.create_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.create_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.ForumTopic`
        )	rp   rY   r  r  rj   rk   rl   rm   r?   N)rq   create_forum_topicr8   )	rG   rY   r  r  rj   rk   rl   rm   r?   s	            rI   r  z_ChatBase.create_forum_topicG  sO     0 \\^66GG!!5%'+%! 7 

 

 
	
 

r   c                   K   | j                         j                  | j                  ||||||||	       d{   S 7 w)aN  Shortcut for::

             await bot.edit_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )	rp   r   rY   r  rj   rk   rl   rm   r?   N)rq   edit_forum_topicr8   )	rG   r   rY   r  rj   rk   rl   rm   r?   s	            rI   r  z_ChatBase.edit_forum_topick  sO     0 \\^44GG/!5%'+%! 5 

 

 
	
 

r   c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)aP  Shortcut for::

             await bot.close_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.close_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rp   r   rj   rk   rl   rm   r?   N)rq   close_forum_topicr8   rG   r   rj   rk   rl   rm   r?   s          rI   r  z_ChatBase.close_forum_topic  sI     , \\^55GG/%'+%! 6 
 
 	
 
r   c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)aR  Shortcut for::

             await bot.reopen_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.reopen_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        r  N)rq   reopen_forum_topicr8   r  s          rI   r  z_ChatBase.reopen_forum_topic  I     , \\^66GG/%'+%! 7 
 
 	
 
r   c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)aR  Shortcut for::

             await bot.delete_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.delete_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        r  N)rq   delete_forum_topicr8   r  s          rI   r  z_ChatBase.delete_forum_topic  r  r   c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)az  Shortcut for::

             await bot.unpin_all_forum_topic_messages(chat_id=update.effective_chat.id,
                *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_all_forum_topic_messages`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        r  N)rq   unpin_all_forum_topic_messagesr8   r  s          rI   r  z(_ChatBase.unpin_all_forum_topic_messages  sJ     . \\^BBGG/%'+%! C 
 
 	
 
r   c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)a  Shortcut for::

             await bot.unpin_all_general_forum_topic_messages(chat_id=update.effective_chat.id,
                *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_all_general_forum_topic_messages`.

        .. versionadded:: 20.5

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ro   N)rq   &unpin_all_general_forum_topic_messagesr8   rs   s         rI   r  z0_ChatBase.unpin_all_general_forum_topic_messages  sG     , \\^JJGG%'+%! K 
 
 	
 
ru   c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)a}  Shortcut for::

             await bot.edit_general_forum_topic(
                chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rp   rY   rj   rk   rl   rm   r?   N)rq   edit_general_forum_topicr8   )rG   rY   rj   rk   rl   rm   r?   s          rI   r  z"_ChatBase.edit_general_forum_topic/  sI     0 \\^<<GG%'+%! = 
 
 	
 
r   c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)a`  Shortcut for::

             await bot.close_general_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.close_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ro   N)rq   close_general_forum_topicr8   rs   s         rI   r  z#_ChatBase.close_general_forum_topicQ  sF     * \\^==GG%'+%! > 
 
 	
 
ru   c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)a  Shortcut for::

             await bot.reopen_general_forum_topic(
                chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.reopen_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ro   N)rq   reopen_general_forum_topicr8   rs   s         rI   r  z$_ChatBase.reopen_general_forum_topico  F     . \\^>>GG%'+%! ? 
 
 	
 
ru   c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)a^  Shortcut for::

             await bot.hide_general_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.hide_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ro   N)rq   hide_general_forum_topicr8   rs   s         rI   r  z"_ChatBase.hide_general_forum_topic  F     * \\^<<GG%'+%! = 
 
 	
 
ru   c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)a  Shortcut for::

             await bot.unhide_general_forum_topic (
                chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unhide_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ro   N)rq   unhide_general_forum_topicr8   rs   s         rI   r  z$_ChatBase.unhide_general_forum_topic  r  ru   c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)a  Shortcut for::

             await bot.get_chat_menu_button(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_chat_menu_button`.

        Caution:
            Can only work, if the chat is a private chat.

        .. seealso:: :meth:`set_menu_button`

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.MenuButton`: On success, the current menu button is returned.
        ro   N)rq   get_chat_menu_buttonr8   rs   s         rI   get_menu_buttonz_ChatBase.get_menu_button  sF     4 \\^88GG%'+%! 9 
 
 	
 
ru   r0   c          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)az  Shortcut for::

             await bot.get_user_chat_boosts(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_user_chat_boosts`.

        .. versionadded:: 20.8

        Returns:
            :class:`telegram.UserChatBoosts`: On success, returns the boosts applied in the chat.
        )rp   r|   r?   rj   rk   rl   rm   N)rq   get_user_chat_boostsr8   r   s          rI   r  z_ChatBase.get_user_chat_boosts  sI     , \\^88GG!%'+% 9 
 
 	
 
r   reactionis_bigc                   K   | j                         j                  | j                  ||||||||	       d{   S 7 w)aU  Shortcut for::

             await bot.set_message_reaction(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_message_reaction`.

        .. versionadded:: 20.8

        Returns:
            :obj:`bool` On success, :obj:`True` is returned.
        )	rp   r   r  r  rj   rk   rl   rm   r?   N)rq   set_message_reactionr8   )	rG   r   r  r  rj   rk   rl   rm   r?   s	            rI   r  z_ChatBase.set_message_reaction  sO     0 \\^88GG!%'+%! 9 

 

 
	
 

r   )r   r   rj   rk   rl   rm   r?   
star_countr%   c                   K   | j                         j                  | j                  |||||||||	|
||||||||||       d{   S 7 w)ak  Shortcut for::

             await bot.send_paid_media(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.send_paid_media`.

        .. versionadded:: 21.4

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.
        )rp   r  r   r   r   r   r   r   r   r   r   r   r   rj   rk   rl   rm   r?   r   r  r   N)rq   send_paid_mediar8   )rG   r  r   r   r   r   r   r   r   r   r   r   r  r   r   r   rj   rk   rl   rm   r?   s                        rI   r  z_ChatBase.send_paid_media4  st     H \\^33GG!!-%=!5+-%(C 3%'+%!#9!5+ 4 
 
 	
 
r   gift_idr   text_parse_modetext_entitiespay_for_upgradec                   K   | j                         j                  | j                  |||||||||	|
       d{   S 7 w)a  Shortcut for::

             await bot.send_gift(user_id=update.effective_chat.id, *args, **kwargs )

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_gift`.

        Caution:
            Can only work, if the chat is a private chat, see :attr:`type`.

        .. versionadded:: 21.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )r|   r  r   r  r  r  rj   rk   rl   rm   r?   N)rq   	send_giftr8   )rG   r  r   r  r  r  rj   rk   rl   rm   r?   s              rI   r  z_ChatBase.send_giftp  sU     8 \\^--GG+'+%'+%! . 
 
 	
 
rl  custom_descriptionc          	      ~   K   | j                         j                  | j                  ||||||       d{   S 7 w)aE  Shortcut for::

             await bot.verify_chat(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.verify_chat`.

        .. versionadded:: 21.10

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rp   r  rj   rk   rl   rm   r?   N)rq   verify_chatr8   )rG   r  rj   rk   rl   rm   r?   s          rI   verifyz_ChatBase.verify  sI     , \\^//GG1%'+%! 0 
 
 	
 
r   c                |   K   | j                         j                  | j                  |||||       d{   S 7 w)a_  Shortcut for::

             await bot.remove_chat_verification(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.remove_chat_verification`.

        .. versionadded:: 21.10

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ro   N)rq   remove_chat_verificationr8   rs   s         rI   remove_verificationz_ChatBase.remove_verification  r  ru   )NNNNN)N)NN)NNNNNNNNNNNNNNN)NNNN)z__name__
__module____qualname____doc__	__slots__intstrr   boolr   rB   r	   rD   rK   r   __annotations__rL   rM   rN   rO   propertyrT   rR   rX   r   rg   r   r   r   floatrt   tuplerx   r{   rC   r   dtmdatetimer   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   send_actionr   r   r  r
  r  r  objectr'  r0  r5  r8  r@  rD  rH  rK  r   rY  r^  r]  re  rd  rk  rn  rr  rt  rw  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  __classcell__)rH   s   @rI   r6   r6   H   sHA   
 [I  $"&$(#'#' *.  }	
 3- SM C= 4. X&6 #++22FE#J2 $,,44GU3Z46!**00E5:04&//::Jc
:9#,,44GU3Z46   8C=  " hsm  $LXc] $Lc $LLL L LBL# L# LF )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

> )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 
 	!
F )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

@ )5)5+7(4)-

 uo	

  
 "%
 uo
 X&
 

B +/9=	 
 )5)5+7(4)- 
 
 "$ 
 U3#456	 
 uo 
   
 "% 
 uo 
 X& 
 
 
L )5)5+7(4)-

 uo	

  
 "%
 uo
 X&
 

J )5)5+7(4)-!
sCx!
 uo	!

  !
 "%!
 uo!
 X&!
 
!
N )5)5+7(4)-

 uo	

  
 "%
 uo
 X&
 

J )5)5+7(4)-!
sCx!
 uo	!

  !
 "%!
 uo!
 X&!
 
!
L *.

 )5)5+7(4)-

 !

 uo
  
 "%
 uo
 X&
 

F +/,0,0.2+//3+/.2'+*.15,0+/+/-1#D
& )5)5+7(4)-/D
D
 "$D
 $D>	D

 $D>D
 &d^D
 #4.D
 'tnD
 #4.D
 &d^D
 tnD
 "$D
 !)D
 $D>D
 #4.D
  #4.!D
" %TN#D
& uo'D
(  )D
* "%+D
, uo-D
. X&/D
0 
1D
T :>;?(
 )5)5+7(4)-(
(
 %(
 U3#456	(

 +34.(
 uo(
  (
 "%(
 uo(
 X&(
 
(
Z <@"

 )5)5+7(4)-"
$"
 +34."

 uo"
  "
 "%"
 uo"
 X&"
 
"
R )5)5+7(4)-!
!
 !

 uo!
  !
 "%!
 uo!
 X&!
 
!
N )5)5+7(4)-!
!
 uo	!

  !
 "%!
 uo!
 X&!
 
!
L )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

J )5)5+7(4)-!
!
 uo	!

  !
 "%!
 uo!
 X&!
 
!
J &*!
 )5)5+7(4)-!
c]!
 uo	!

  !
 "%!
 uo!
 X&!
 
!
L 0<04	!
 )5)5+7(4)-!
!
 'tn!
 !)	!
 uo!
  !
 "%!
 uo!
 X&!
 
!
J %)04

 )5)5+7(4)-
SM
 !)

 uo
  
 "%
 uo
 X&
 

H )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

@ %1/;.28<*6+/?K8<04+//38
 .26B37(4)5+7(4)--8
8
 SM8
 'tn	8

 {+8
 8O458
 "$8
 $C=8
 '';<8
 ##458
 !)8
 $C=8
 'tn8
 &c]8
  &.d^!8
" #+4.#8
$ uo%8
&  '8
( "%)8
* uo+8
, X&-8
. 
/8
| )5)5+7(4)-

 uo	

  
 "%
 uo
 X&
 

H )5)5+7(4)-
c]
 uo	

  
 "%
 uo
 X&
 

J 0<*6+/8<04+//37
 .26B(4)5+7(4)-!%$0@D-7
_`
7

 'tn7
 "$7
 $C=7
 ##457
 !)7
 $C=7
 'tn7
 &c]7
 &.d^7
 uo7
   !7
" "%#7
$ uo%7
& X&'7
( #)7
* SM+7
, #8O#<=-7
. 
~	/7
x ,004	 
 )5)5+7(4)- 
 
 $C= 
 !)	 
 uo 
   
 "% 
 uo 
 X& 
 
 
D #K,
 "&/;.2$0@D*6+/&*8<04+//337<
" .26B"&(4)5+7(4)-1<
Y+,<
 #<
 'tn	<

 {+<
 SM<
 #8O#<=<
 "$<
 $C=<
 d^<
 ##45<
 !)<
 $C=<
 'tn<
 #+4.<
" &c]#<
$ &.d^%<
& 3-'<
( uo)<
*  +<
, "%-<
. uo/<
0 X&1<
2 
3<
@ '+$(#'/;.2#*6+/8<04+//38
 .26B'+(4)5+7(4)--8
sm8
 SM8
 C=	8

 'tn8
 {+8
 }8
 "$8
 $C=8
 ##458
 !)8
 $C=8
 'tn8
 &c]8
  &.d^!8
" )$#8
$ uo%8
&  '8
( "%)8
* uo+8
, X&-8
. 
/8
z #'#'#!%/;.2$0@D*6+/)-8<04+//3#@
& .26B"&(4)5+7(4)-5@
Y'(@
 3-@
 C=	@

 }@
 #@
 'tn@
 {+@
 SM@
 #8O#<=@
 "$@
 $C=@
 I&@
 ##45@
 !)@
  $C=!@
" 'tn#@
& &c]'@
( &.d^)@
* 3-+@
, uo-@
.  /@
0 "%1@
2 uo3@
4 X&5@
6 
7@
J "&/;.2$09=@D*6+/)-8<04+//3<
" .26B"&(4)5+7(4)-1<
	:-.<
 #<
 'tn	<

 {+<
 SM<
 )1<
 #8O#<=<
 "$<
 $C=<
 I&<
 ##45<
 !)<
 $C=<
 'tn<
" &c]#<
$ &.d^%<
& 3-'<
( uo)<
*  +<
, "%-<
. uo/<
0 X&1<
2 
3<
@ 0<.2#*6+/8<04+//30
 .26B(4)5+7(4)-%0
&tn0
 {+0
 }	0

 "$0
 $C=0
 ##450
 !)0
 $C=0
 'tn0
 &c]0
 &.d^0
 uo0
  0
  "%!0
" uo#0
$ X&%0
& 
'0
j 0<9=*6+/8<04+//30
 .26B(4)5+7(4)-%0
0
 'tn0
 56	0

 "$0
 $C=0
 ##450
 !)0
 $C=0
 'tn0
 &c]0
 &.d^0
 uo0
  0
  "%!0
" uo#0
$ X&%0
& 
'0
t *.#'$(%)&*$(,0%)04&*/;9=6:8<15(,9=*6+/8<+//3;`
> .26B(4)5+7(4)-K`
`
 `
 	`

 !`
 `
 (`
 "#`
 C=`
 SM`
 c]`
 sm`
 D>`
 $D>`
 TN`
   (~!`
" d^#`
$ 'tn%`
& 56'`
(  c6k 23)`
* (0~+`
, !)-`
. !/`
0  (61`
2 "$3`
4 $C=5`
6 ##457`
8 $C=9`
: 'tn;`
> &c]?`
@ &.d^A`
B uoC`
D  E`
F "%G`
H uoI`
J X&K`
L 
M`
H %)%)/;.2%)/3!%04*6+/8<04+//3<
" .26B)-(4)5+7(4)-1<
5/<
 E?<
 'tn	<

 {+<
 c]<
 &e_<
 #<
 !)<
 "$<
 $C=<
 ##45<
 !)<
 $C=<
 'tn<
" &c]#<
$ &.d^%<
& :&'<
( uo)<
*  +<
, "%-<
. uo/<
0 X&1<
2 
3<
B #'# $!%$0/;.2@D*6+/&*)-8<04+//337'D
* .26B"&(4)5+7(4)-9D
K/0D
 3-D
 }	D

 D
 #D
 SMD
 'tnD
 {+D
 #8O#<=D
 "$D
 $C=D
 d^D
 I&D
 ##45D
  !)!D
" $C=#D
$ 'tn%D
& #+4.'D
* &c]+D
, &.d^-D
. 3-/D
0 uo1D
2  3D
4 "%5D
6 uo7D
8 X&9D
: 
;D
R 0<.2*6+/#8<04+//32
 .26B(4)5+7(4)-'2
y)+,2
 'tn2
 {+	2

 "$2
 $C=2
 }2
 ##452
 !)2
 $C=2
 'tn2
 &c]2
 &.d^2
 uo2
   !2
" "%#2
$ uo%2
& X&'2
( 
)2
l %)%)#!%'+/;.2)-)-+/*6+/8<04+//3#@
& .26B#'(4)5+7(4)-5@
5/@
 E?@
 }	@

 #@
  }@
 'tn@
 {+@
 "#@
 "#@
 $C=@
 "$@
 $C=@
 ##45@
 !)@
  $C=!@
" 'tn#@
& &c]'@
( &.d^)@
*  +@
, uo-@
.  /@
0 "%1@
2 uo3@
4 X&5@
6 
7@
J #'!%/;.2# $$0-1@D*6+/&*)-8<04+//337)F
, .26B"&(4)5+7(4)-;F
Y'(F
 3-F
 #	F

 'tnF
 {+F
 }F
 F
 SMF
 %TNF
 #8O#<=F
 "$F
 $C=F
 d^F
 I&F
  ##45!F
" !)#F
$ $C=%F
& 'tn'F
( #+4.)F
, &c]-F
. &.d^/F
0 3-1F
2 uo3F
4  5F
6 "%7F
8 uo9F
: X&;F
< 
=F
V #' $/;.2*6+/)-8<04+//38
 .26B"&(4)5+7(4)--8
)[018
 3-8
 	8

 'tn8
 {+8
 "$8
 $C=8
 I&8
 ##458
 !)8
 $C=8
 'tn8
 &c]8
  &.d^!8
" 3-#8
$ uo%8
&  '8
( "%)8
* uo+8
, X&-8
. 
/8
z #'!%/;.2$0@D*6+/8<04+//3:
  .26B"&(4)5+7(4)-/:
Y'(:
 3-:
 #	:

 'tn:
 {+:
 SM:
 #8O#<=:
 "$:
 $C=:
 ##45:
 !):
 $C=:
 'tn:
  &c]!:
" &.d^#:
$ 3-%:
& uo':
(  ):
* "%+:
, uo-:
. X&/:
0 
1:
@ (,"267;$(/;.2%)0<%)9=DH*6+/8<04-9AE+//3/J
2 .26B(4)5+7(4)-?J
J
 %%6 678J
 tn	J

 smJ
 "*$J
 $O4J
 D>J
 'tnJ
 {+J
 c]J
 !)J
 c]J
 U3#456J
 'x'@AJ
  "$!J
" $C=#J
$ ##45%J
& !)'J
( &c])J
* $H_$=>+J
, $C=-J
. 'tn/J
2 &c]3J
4 &.d^5J
6 uo7J
8  9J
: "%;J
< uo=J
> X&?J
@ 
AJ
` "&$0@D/;.2*6+/8<37/38
 .26B(4)5+7(4)-+8
CHo8
 8
 #	8

 SM8
 #8O#<=8
 'tn8
 {+8
 "$8
 $C=8
 ##458
 #+4.8
 'tn8
 &c]8
  &.d^!8
" uo#8
$  %8
& "%'8
( uo)8
* X&+8
, 
-8
| "&$0@D/;.2*6+/8<37/38
 .26B(4)5+7(4)-+8
sCx8
 8
 #	8

 SM8
 #8O#<=8
 'tn8
 {+8
 "$8
 $C=8
 ##458
 #+4.8
 'tn8
 &c]8
  &.d^!8
" uo#8
$  %8
& "%'8
( uo)8
* X&+8
, 
-8
| 0<*6+/)-+
 )5)5+7(4)-+
CHo+
 c]+
 'tn	+

 "$+
 $C=+
 !+
 uo+
  +
 "%+
 uo+
 X&+
 
	 +
b 0<*6+/)-+
 )5)5+7(4)-+
sCx+
 c]+
 'tn	+

 "$+
 $C=+
 !+
 uo+
  +
 "%+
 uo+
 X&+
 
	 +
b 0<*6+/(
 )5)5+7(4)-(
CHo(
 (
 'tn	(

 "$(
 $C=(
 uo(
  (
 "%(
 uo(
 X&(
 
(
\ 0<*6+/)
 )5)5+7(4)-)
sCx)
 )
 'tn	)

 "$)
 $C=)
 uo)
  )
 "%)
 uo)
 X&)
 
)
^ 0<*6+/)
 )5)5+7(4)-)
CHo)
 c])
 'tn	)

 "$)
 $C=)
 uo)
  )
 "%)
 uo)
 X&)
 
	 )
^ 0<*6+/)
 )5)5+7(4)-)
sCx)
 c])
 'tn	)

 "$)
 $C=)
 uo)
  )
 "%)
 uo)
 X&)
 
	 )
\ )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

B ;?&*"/3)
 )5)5+7(4)-)
eC$567)
 sm)
 sm	)

 'tn)
 uo)
  )
 "%)
 uo)
 X&)
 
)
\ ;?&*"/3*
 )5)5+7(4)-*
3 001*
 eC$567*
 sm	*

 sm*
 'tn*
 uo*
  *
 "%*
 uo*
 X&*
 
*
` )5)5+7(4)-
3 001
 uo	

  
 "%
 uo
 X&
 

J #	$
 )5)5+7(4)-$
 $
  $
 sm	$
 uo$
  $
 "%$
 uo$
 X&$
 
$
R ##

 )5)5+7(4)-#
3 001#
 sm#

 uo#
  #
 "%#
 uo#
 X&#
 
#
R )5)5+7(4)-

 uo	

  
 "%
 uo
 X&
 

J )5)5+7(4)-

 uo	

  
 "%
 uo
 X&
 

F -1#
 )5)5+7(4)-#
j)#
 uo	#

  #
 "%#
 uo#
 X&#
 
#
P %).2	"
 )5)5+7(4)-"
"
 SM"
 'sm	"
 uo"
  "
 "%"
 uo"
 X&"
 
"
N #.2	"
 )5)5+7(4)-"
"
 sm"
 'sm	"
 uo"
  "
 "%"
 uo"
 X&"
 
"
P )5)5+7(4)-

 uo	

  
 "%
 uo
 X&
 

H )5)5+7(4)-

 uo	

  
 "%
 uo
 X&
 

H )5)5+7(4)-

 uo	

  
 "%
 uo
 X&
 

H )5)5+7(4)-

 uo	

  
 "%
 uo
 X&
 

H )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

F )5)5+7(4)- 
 
 uo	 

   
 "% 
 uo 
 X& 
 
 
J )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

B )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

F )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

B )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

F )5)5+7(4)-!
 uo!
  	!

 "%!
 uo!
 X&!
 
!
N )5)5+7(4)-

 uo	

  
 "%
 uo
 X&
 

F \`!%	"
 )5)5+7(4)-"
"
 5%c0A*B!C\SV!VWX"
 	"
 uo"
  "
 "%"
 uo"
 X&"
 
"
P "&$0@D37/;*68<.204!%/3:
  7C-1(4)5+7(4)--:
:
 ():
 #	:

 SM:
 #8O#<=:
 #+4.:
 'tn:
 "$:
 ##45:
 {+:
 !):
 #:
 'tn:
  &.d^!:
" &c]#:
$ uo%:
&  ':
( "%):
* uo+:
, X&-:
. 
/:
~ #)5=A*.(
 )5)5+7(4)-(
sF{#(
 sm(
 "#	(

   9:(
 "$(
 uo(
  (
 "%(
 uo(
 X&(
 
(
X -1
 )5)5+7(4)-
$SM
 uo	

  
 "%
 uo
 X&
 

F )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

 
rJ   r6   c                       e Zd ZdZdZy)ChataN
  This object represents a chat.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if their :attr:`id` is equal.

    .. versionchanged:: 20.0

        * Removed the deprecated methods ``kick_member`` and ``get_members_count``.
        * The following are now keyword-only arguments in Bot methods:
          ``location``, ``filename``, ``contact``, ``{read, write, connect, pool}_timeout``,
          ``api_kwargs``. Use a named argument for those,
          and notice that some positional arguments changed position as a result.

    .. versionchanged:: 20.0
        Removed the attribute ``all_members_are_administrators``. As long as Telegram provides
        this field for backwards compatibility, it is available through
        :attr:`~telegram.TelegramObject.api_kwargs`.

    .. versionchanged:: 21.3
        As per Bot API 7.3, most of the arguments and attributes of this class have now moved to
        :class:`telegram.ChatFullInfo`.

    Args:
        id (:obj:`int`): Unique identifier for this chat.
        type (:obj:`str`): Type of chat, can be either :attr:`PRIVATE`, :attr:`GROUP`,
            :attr:`SUPERGROUP` or :attr:`CHANNEL`.
        title (:obj:`str`, optional): Title, for supergroups, channels and group chats.
        username (:obj:`str`, optional): Username, for private chats, supergroups and channels if
            available.
        first_name (:obj:`str`, optional): First name of the other party in a private chat.
        last_name (:obj:`str`, optional): Last name of the other party in a private chat.
        is_forum (:obj:`bool`, optional): :obj:`True`, if the supergroup chat is a forum
            (has topics_ enabled).

            .. versionadded:: 20.0

    Attributes:
        id (:obj:`int`): Unique identifier for this chat.
        type (:obj:`str`): Type of chat, can be either :attr:`PRIVATE`, :attr:`GROUP`,
            :attr:`SUPERGROUP` or :attr:`CHANNEL`.
        title (:obj:`str`): Optional. Title, for supergroups, channels and group chats.
        username (:obj:`str`): Optional. Username, for private chats, supergroups and channels if
            available.
        first_name (:obj:`str`): Optional. First name of the other party in a private chat.
        last_name (:obj:`str`): Optional. Last name of the other party in a private chat.
        is_forum (:obj:`bool`): Optional. :obj:`True`, if the supergroup chat is a forum
            (has topics_ enabled).

            .. versionadded:: 20.0

    .. _topics: https://telegram.org/blog/topics-in-groups-collectible-usernames#topics-in-groups
    r&  N)r  r  r  r  r  r&  rJ   rI   r  r    s    3j IrJ   r  )Fr  r  r  collections.abcr   htmlr   typingr   r   r   r   telegramr	   telegram._chatpermissionsr
   telegram._forumtopicr   telegram._menubuttonr   telegram._reactionr   telegram._telegramobjectr   telegram._utilsr   telegram._utils.defaultvaluer   telegram._utils.typesr   r   r   r   r   telegram.helpersr   r   ri   r   ra   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r6   r  r&  rJ   rI   <module>r     s   ( F  $  8 8  5 + + + 3   5 ] ] , A I       @N6
 N6
bl69 6rJ   