o
    ZzjDŒ  ã                   @   sè   d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ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 erjddlmZmZmZmZmZmZmZm Z m!Z! ddl"m#Z# ddlm$Z$ G dd„ deƒZ%dS )zGThis module contains an object that represents a Telegram CallbackQueryé    )ÚSequence)ÚTYPE_CHECKINGÚFinal)Ú	constants)ÚInputChecklist)ÚMaybeInaccessibleMessageÚMessage)ÚTelegramObject)ÚUser)Úde_json_optional)ÚDEFAULT_NONE)ÚJSONDictÚODVInputÚ
TimePeriod)	ÚBotÚGameHighScoreÚInlineKeyboardMarkupÚ
InputMediaÚLinkPreviewOptionsÚMessageEntityÚ	MessageIdÚReplyParametersÚSuggestedPostParameters)ÚLocation)ÚReplyMarkupc                .       s>  e Zd ZU dZdZ				dlddœdededededB d	edB d
edB dedB dedB f‡ fdd„Z	e
dmd	edddd f‡ fdd„ƒZ				dleeeeddœdedB dedB dedB dedB dee dee dee dee dedB defdd„Zdnd edefd!d"„Zeddefdeeeedd#œded$ee d%d&d'ed( dB d)ed* d+edB dee dee dee dee dedB dd,fd-d.„Zddeddfeeeeddœd/edB d%d&d$ee d0ed( dB d1edB dee dee dee dee dedB dd,fd2d3„Z	dmeeeeddœd4ed%d&dee dee dee dee dedB dd,fd5d6„Z	dmeeeeddœd%d&dee dee dee dee dedB dd,fd7d8„Z	dmeeeeddœd9d:d%d&dee dee dee dee dedB dd,fd;d<„Z							dodeeeedd=œd>edB d?edB d%d&d@edB dAedB dBedB dCedB dDdEdee dee dee dee dedB dd,fdFdG„Z	dmeeeeddœd%d&dee dee dee dee dedB dd,fdHdI„Z		dpeeeeddœdJedKedLedB dMedB dee dee dee dee dedB dd,fdNdO„ZeeeeddœdJedee dee dee dee dedB dedP fdQdR„Z eeeeddœdee dee dee dee dedB defdSdT„Z!efeeeeddœdUee dee dee dee dee dedB defdVdW„Z"eeeeddœdee dee dee dee dedB defdXdY„Z#dedededddddddfedeeeeddZœd[eeB d/edB d$ee d0ed( dB dUee d%d\d]ee d^edB d_d`d1edB daedB dbedB dcdddeedB dfee dgedB dee dee dee dee dedB ddhf,didj„Z$e%j&j'Z(e)e e*dk< ‡  Z+S )qÚCallbackQuerya(  
    This object represents an incoming callback query from a callback button in an inline keyboard.

    If the button that originated the query was attached to a message sent by the bot, the field
    :attr:`message` will be present. If the button was attached to a message sent via the bot (in
    inline mode), the field :attr:`inline_message_id` will be present.

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

    Note:
        * In Python :keyword:`from` is a reserved word. Use :paramref:`from_user` instead.
        * Exactly one of the fields :attr:`data` or :attr:`game_short_name` will be present.
        * After the user presses an inline button, Telegram clients will display a progress bar
          until you call :attr:`answer`. It is, therefore, necessary to react
          by calling :attr:`telegram.Bot.answer_callback_query` even if no notification to the user
          is needed (e.g., without specifying any of the optional parameters).
        * If you're using :attr:`telegram.ext.ExtBot.callback_data_cache`, :attr:`data` may be
          an instance
          of :class:`telegram.ext.InvalidCallbackData`. This will be the case, if the data
          associated with the button triggering the :class:`telegram.CallbackQuery` was already
          deleted or if :attr:`data` was manipulated by a malicious client.

          .. versionadded:: 13.6

    Args:
        id (:obj:`str`): Unique identifier for this query.
        from_user (:class:`telegram.User`): Sender.
        chat_instance (:obj:`str`): Global identifier, uniquely corresponding to the chat to which
            the message with the callback button was sent. Useful for high scores in games.
        message (:class:`telegram.MaybeInaccessibleMessage`, optional): Message sent by the bot
            with the callback button that originated the query.

            .. versionchanged:: 20.8
               Accept objects of type :class:`telegram.MaybeInaccessibleMessage` since Bot API 7.0.
        data (:obj:`str`, optional): Data associated with the callback button. Be aware that the
            message, which originated the query, can contain no callback buttons with this data.
        inline_message_id (:obj:`str`, optional): Identifier of the message sent via the bot in
            inline mode, that originated the query.
        game_short_name (:obj:`str`, optional): Short name of a Game to be returned, serves as
            the unique identifier for the game.

    Attributes:
        id (:obj:`str`): Unique identifier for this query.
        from_user (:class:`telegram.User`): Sender.
        chat_instance (:obj:`str`): Global identifier, uniquely corresponding to the chat to which
            the message with the callback button was sent. Useful for high scores in games.
        message (:class:`telegram.MaybeInaccessibleMessage`): Optional. Message sent by the bot
            with the callback button that originated the query.

            .. versionchanged:: 20.8
               Objects may be of type :class:`telegram.MaybeInaccessibleMessage` since Bot API
               7.0.
        data (:obj:`str` | :obj:`object`): Optional. Data associated with the callback button.
            Be aware that the message, which originated the query, can contain no callback buttons
            with this data.

            Tip:
                The value here is the same as the value passed in
                :paramref:`telegram.InlineKeyboardButton.callback_data`.
        inline_message_id (:obj:`str`): Optional. Identifier of the message sent via the bot in
            inline mode, that originated the query.
        game_short_name (:obj:`str`): Optional. Short name of a Game to be returned, serves as
            the unique identifier for the game.


    )Úchat_instanceÚdataÚ	from_userÚgame_short_nameÚidÚinline_message_idÚmessageN©Ú
api_kwargsr    r   r   r"   r   r!   r   r$   c          	         sN   t ƒ j|d� || _|| _|| _|| _|| _|| _|| _| jf| _	|  
¡  d S )Nr#   )ÚsuperÚ__init__r    r   r   r"   r   r!   r   Ú	_id_attrsÚ_freeze)	Úselfr    r   r   r"   r   r!   r   r$   ©Ú	__class__© úR/var/www/kodo/tsheker/venv/lib/python3.10/site-packages/telegram/_callbackquery.pyr&   �   s   
zCallbackQuery.__init__Úbotz
Bot | NoneÚreturnc                    sH   |   |¡}t| dd¡t|ƒ|d< t| d¡t|ƒ|d< tƒ j||d�S )z,See :meth:`telegram.TelegramObject.de_json`.ÚfromNr   r"   )r   r.   )Ú_parse_datar   Úpopr
   Úgetr   r%   Úde_json)Úclsr   r.   r*   r,   r-   r4   œ   s   
zCallbackQuery.de_json©Úread_timeoutÚwrite_timeoutÚconnect_timeoutÚpool_timeoutr$   ÚtextÚ
show_alertÚurlÚ
cache_timer7   r8   r9   r:   c          
      Ã   s,   �|   ¡ j| j|||||||||	d�
I dH S )a1  Shortcut for::

             await bot.answer_callback_query(update.callback_query.id, *args, **kwargs)

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

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

        )
Úcallback_query_idr;   r<   r=   r>   r7   r8   r9   r:   r$   N)Úget_botÚanswer_callback_queryr    )
r)   r;   r<   r=   r>   r7   r8   r9   r:   r$   r,   r,   r-   Úanswer¦   s   €özCallbackQuery.answerÚeditÚactionc                 C   s"   t | jtƒstd|› d�ƒ‚| jS )zŠHelper method to get the message for the shortcut methods. Must be called only
        if :attr:`inline_message_id` is *not* set.
        zCannot z an inaccessible message)Ú
isinstancer"   r   Ú	TypeError)r)   rD   r,   r,   r-   Ú_get_messageË   s   zCallbackQuery._get_message)Údisable_web_page_previewr7   r8   r9   r:   r$   Ú
parse_modeÚreply_markupzInlineKeyboardMarkup | NoneÚentitiesr   Úlink_preview_optionsr   rH   zMessage | boolc                Ã   sf   �| j r|  ¡ j| j ||||||||	|
||dddd�I dH S |  ¡ j||||||||	|
||d�I dH S )a  Shortcut for either::

            await update.callback_query.message.edit_text(*args, **kwargs)

        or::

            await bot.edit_message_text(
                inline_message_id=update.callback_query.inline_message_id, *args, **kwargs,
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_message_text` and :meth:`telegram.Message.edit_text`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

        Returns:
            :class:`telegram.Message`: On success, if edited message is sent by the bot, the
            edited Message is returned, otherwise :obj:`True` is returned.

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.

        N)r!   r;   rI   rH   rL   rJ   r7   r8   r9   r:   r$   rK   Úchat_idÚ
message_idÚbusiness_connection_id)r;   rI   rH   rL   rJ   r7   r8   r9   r:   r$   rK   )r!   r@   Úedit_message_textrG   Ú	edit_text)r)   r;   rI   rJ   rK   rL   rH   r7   r8   r9   r:   r$   r,   r,   r-   rP   Ó   s@   €'ðõzCallbackQuery.edit_message_textÚcaptionÚcaption_entitiesÚshow_caption_above_mediac                Ã   sb   �| j r|  ¡ j|| j |||||	||
|dd|dd�I dH S |  ¡ j||||||	||
||d�
I dH S )a%  Shortcut for either::

            await update.callback_query.message.edit_caption(*args, **kwargs)

        or::

            await bot.edit_message_caption(
                inline_message_id=update.callback_query.inline_message_id, *args, **kwargs,
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_message_caption` and :meth:`telegram.Message.edit_caption`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

        Returns:
            :class:`telegram.Message`: On success, if edited message is sent by the bot, the
            edited Message is returned, otherwise :obj:`True` is returned.

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.

        N)rR   r!   rJ   r7   r8   r9   r:   rI   r$   rS   rM   rN   rT   rO   )
rR   rJ   r7   r8   r9   r:   rI   r$   rS   rT   )r!   r@   Úedit_message_captionrG   Úedit_caption)r)   rR   rJ   rI   rS   rT   r7   r8   r9   r:   r$   r,   r,   r-   rU     s<   €&ñöz"CallbackQuery.edit_message_captionÚ	checklistc             	   Ã   s$   �|   ¡ j|||||||d�I dH S )a¯  Shortcut for::

            await update.callback_query.message.edit_checklist(*args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Message.edit_checklist`.

        .. versionadded:: 22.3

        Returns:
            :class:`telegram.Message`: On success, the edited Message is returned.

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.

        )rW   rJ   r7   r8   r9   r:   r$   N)rG   Úedit_checklist)r)   rW   rJ   r7   r8   r9   r:   r$   r,   r,   r-   Úedit_message_checklist`  s   €ùz$CallbackQuery.edit_message_checklistc                Ã   sR   �| j r|  ¡ j|| j |||||dddd�
I dH S |  ¡ j||||||d�I dH S )a@  Shortcut for either::

            await update.callback_query.message.edit_reply_markup(*args, **kwargs)

        or::

            await bot.edit_message_reply_markup(
                inline_message_id=update.callback_query.inline_message_id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_message_reply_markup` and
        :meth:`telegram.Message.edit_reply_markup`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

        Returns:
            :class:`telegram.Message`: On success, if edited message is sent by the bot, the
            edited Message is returned, otherwise :obj:`True` is returned.

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.

        N)
rJ   r!   r7   r8   r9   r:   r$   rM   rN   rO   ©rJ   r7   r8   r9   r:   r$   )r!   r@   Úedit_message_reply_markuprG   Úedit_reply_markup©r)   rJ   r7   r8   r9   r:   r$   r,   r,   r-   r[   …  s,   €#õúz'CallbackQuery.edit_message_reply_markupÚmediar   c                Ã   sV   �| j r|  ¡ j| j |||||||dddd�I dH S |  ¡ j|||||||d�I dH S )a"  Shortcut for either::

            await update.callback_query.message.edit_media(*args, **kwargs)

        or::

            await bot.edit_message_media(
                inline_message_id=update.callback_query.inline_message_id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_message_media` and :meth:`telegram.Message.edit_media`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

        Returns:
            :class:`telegram.Message`: On success, if edited message is not an inline message, the
            edited Message is returned, otherwise :obj:`True` is returned.

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.

        N)r!   r^   rJ   r7   r8   r9   r:   r$   rM   rN   rO   )r^   rJ   r7   r8   r9   r:   r$   )r!   r@   Úedit_message_mediarG   Ú
edit_media)r)   r^   rJ   r7   r8   r9   r:   r$   r,   r,   r-   r_   ¿  s0   €#ôùz CallbackQuery.edit_message_media)Úlocationr7   r8   r9   r:   r$   ÚlatitudeÚ	longitudeÚhorizontal_accuracyÚheadingÚproximity_alert_radiusÚlive_periodra   zLocation | Nonec                Ã   s´   �| j rC|  ¡ jdi d| j “d|“d|“d|“d|“d|	“d|
“d|“d	|“d
|“d|“d|“d|“d|“dd“dd“dd“ŽI dH S |  ¡ j|||||	|
|||||||d�I dH S )aD  Shortcut for either::

            await update.callback_query.message.edit_live_location(*args, **kwargs)

        or::

            await bot.edit_message_live_location(
                inline_message_id=update.callback_query.inline_message_id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_message_live_location` and
        :meth:`telegram.Message.edit_live_location`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

        Returns:
            :class:`telegram.Message`: On success, if edited message is sent by the bot, the
            edited Message is returned, otherwise :obj:`True` is returned.

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.

        r!   rb   rc   ra   rJ   r7   r8   r9   r:   r$   rd   re   rf   rg   rM   NrN   rO   )rb   rc   ra   rJ   r7   r8   r9   r:   r$   rd   re   rf   rg   r,   )r!   r@   Úedit_message_live_locationrG   Úedit_live_location)r)   rb   rc   rJ   rd   re   rf   rg   ra   r7   r8   r9   r:   r$   r,   r,   r-   rh   û  sh   €*ÿþýüûúùø	÷
öõôóòñð
îóz(CallbackQuery.edit_message_live_locationc                Ã   sR   �| j r|  ¡ j| j ||||||dddd�
I dH S |  ¡ j||||||d�I dH S )aD  Shortcut for either::

            await update.callback_query.message.stop_live_location(*args, **kwargs)

        or::

            await bot.stop_message_live_location(
                inline_message_id=update.callback_query.inline_message_id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.stop_message_live_location` and
        :meth:`telegram.Message.stop_live_location`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

        Returns:
            :class:`telegram.Message`: On success, if edited message is sent by the bot, the
            edited Message is returned, otherwise :obj:`True` is returned.

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.

        N)
r!   rJ   r7   r8   r9   r:   r$   rM   rN   rO   rZ   )r!   r@   Ústop_message_live_locationrG   Ústop_live_locationr]   r,   r,   r-   rj   J  s,   €#õúz(CallbackQuery.stop_message_live_locationÚuser_idÚscoreÚforceÚdisable_edit_messagec          
      Ã   s\   �| j r|  ¡ j| j |||||||||	ddd�I dH S |  ¡ j|||||||||	d�	I dH S )a  Shortcut for either::

           await update.callback_query.message.set_game_score(*args, **kwargs)

        or::

            await bot.set_game_score(
                inline_message_id=update.callback_query.inline_message_id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_game_score` and :meth:`telegram.Message.set_game_score`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

        Returns:
            :class:`telegram.Message`: On success, if edited message is sent by the bot, the
            edited Message is returned, otherwise :obj:`True` is returned.

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.

        N)r!   rl   rm   rn   ro   r7   r8   r9   r:   r$   rM   rN   )	rl   rm   rn   ro   r7   r8   r9   r:   r$   )r!   r@   Úset_game_scorerG   )
r)   rl   rm   rn   ro   r7   r8   r9   r:   r$   r,   r,   r-   rp   „  s6   €%ô÷zCallbackQuery.set_game_score)r   .c                Ã   sP   �| j r|  ¡ j| j ||||||ddd�	I dH S |  ¡ j||||||d�I dH S )aÆ  Shortcut for either::

            await update.callback_query.message.get_game_high_score(*args, **kwargs)

        or::

            await bot.get_game_high_scores(
                inline_message_id=update.callback_query.inline_message_id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_game_high_scores` and
        :meth:`telegram.Message.get_game_high_scores`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

        Returns:
            tuple[:class:`telegram.GameHighScore`]

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.

        N)	r!   rl   r7   r8   r9   r:   r$   rM   rN   )rl   r7   r8   r9   r:   r$   )r!   r@   Úget_game_high_scoresrG   )r)   rl   r7   r8   r9   r:   r$   r,   r,   r-   rq   Ä  s*   €"÷úz"CallbackQuery.get_game_high_scoresc                Ã   ó$   �| j dd�j|||||d�I dH S )aÍ  Shortcut for::

            await update.callback_query.message.delete(*args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Message.delete`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

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

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.

        Údelete©rD   r6   N)rG   rs   ©r)   r7   r8   r9   r:   r$   r,   r,   r-   Údelete_messageû  s   €ûzCallbackQuery.delete_messageÚdisable_notificationc                Ã   s&   �| j dd�j||||||d�I dH S )aÆ  Shortcut for::

            await update.callback_query.message.pin(*args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Message.pin`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

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

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.
        Úpinrt   )rw   r7   r8   r9   r:   r$   N)rG   rx   )r)   rw   r7   r8   r9   r:   r$   r,   r,   r-   Úpin_message  s   €úzCallbackQuery.pin_messagec                Ã   rr   )aÊ  Shortcut for::

            await update.callback_query.message.unpin(*args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Message.unpin`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

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

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.
        Úunpinrt   r6   N)rG   rz   ru   r,   r,   r-   Úunpin_message>  s   €ûzCallbackQuery.unpin_message)Úallow_sending_without_replyÚreply_to_message_idr7   r8   r9   r:   r$   rM   zReplyMarkup | NoneÚprotect_contentÚmessage_thread_idÚreply_parameterszReplyParameters | NoneÚallow_paid_broadcastÚvideo_start_timestampÚsuggested_post_parameterszSuggestedPostParameters | NoneÚmessage_effect_idr|   r}   r   c                Ã   sš   �| j dd�jdi d|“d|“d|“d|“d|“d|“d	|“d
|“d|“d|“d|“d|“d|“d|“d|“d|“d|	“d|
“d|“d|“d|“ŽI dH S )aÛ  Shortcut for::

            await update.callback_query.message.copy(
                from_chat_id=update.message.chat_id,
                message_id=update.message.message_id,
                direct_messages_topic_id=update.message.direct_messages_topic.topic_id,
                *args,
                **kwargs
            )

        For the documentation of the arguments, please see :meth:`telegram.Message.copy`.

        .. versionchanged:: 20.8
           Raises :exc:`TypeError` if :attr:`message` is not accessible.

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

        Raises:
            :exc:`TypeError` if :attr:`message` is not accessible.
        Úcopyrt   rM   rR   rI   r‚   rS   rw   r}   r|   rJ   r7   r8   r9   r:   r$   r~   r   r€   rT   r�   rƒ   r„   Nr,   )rG   r…   )r)   rM   rR   rI   rS   rw   rJ   r~   r   r€   rT   r�   r‚   rƒ   r„   r|   r}   r7   r8   r9   r:   r$   r,   r,   r-   Úcopy_message^  sX   €.ÿþýüûúùø	÷
öõôóòñðïîíì
ëzCallbackQuery.copy_messageÚMAX_ANSWER_TEXT_LENGTH)NNNN)N)rC   )NNNNNNN)NN),Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__Ústrr
   r   r   r&   Úclassmethodr4   r   Úboolr   r   ÚfloatrB   r   rG   r   rP   rU   r   rY   r[   r_   Úintrh   rj   rp   Útuplerq   rv   ry   r{   r†   r   ÚCallbackQueryLimitÚ!ANSWER_CALLBACK_QUERY_TEXT_LENGTHr‡   r   Ú__annotations__Ú__classcell__r,   r,   r*   r-   r   2   sr  
 Dø
öþýüûúùø
öûõþýüûùø	÷
öõ
ô%úóþýü
ûúø	÷
öõôó
òJúôþýü
ûúø	÷
öõô
óHý÷þýûúùø	÷

ö'þøþüûúùø	
÷=ý÷þýûúùø	÷

ö>ø
ñþýüûúùø
öõôóòñ
ðQþøþüûúùø	
÷>ûõþýüûùø	÷
öõ
ôDøþüûúùø	
÷:ùýüûúù
ø#þøþüûúùø	
÷%ùýüûúù
ø#ñéþýü
ûúùø	÷
öõôóòñïîíìëêé
èGÿr   N)&r‹   Úcollections.abcr   Útypingr   r   Útelegramr   Útelegram._inputchecklistr   Útelegram._messager   r   Útelegram._telegramobjectr	   Útelegram._userr
   Útelegram._utils.argumentparsingr   Útelegram._utils.defaultvaluer   Útelegram._utils.typesr   r   r   r   r   r   r   r   r   r   r   r   Útelegram._files.locationr   r   r   r,   r,   r,   r-   Ú<module>   s    ,