
    /j                        U d Z ddlZddlmZ ddl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 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)m*Z*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 erddl(m2Z2  G d de      Z3 G d de3      Z4 G d de      Z5 G d d e5      Z6 G d! d"e5      Z7 G d# d$e5      Z8 G d% d&e4      Z9 G d' d(e4      Z: G d) d*e4      Z; G d+ d,e3      Z< G d- d.e3      Z= G d/ d0e3      Z> G d1 d2e4      Z? G d3 d4e4      Z@ G d5 d6e4      ZAe9e?z  e@z  eAz  e<z  e:z  e=z  e;z  ZBeeCd7<   	 e9eAz  e<z  e:z  e>z  e=z  e;z  ZDeeCd8<   y)9zfBase classes for Telegram InputMedia, InputPaidMedia, InputPollMedia
and InputPollOptionMedia Objects.    N)Sequence)TYPE_CHECKINGFinal	TypeAlias)	constants)	Animation)Audio)Document)	InputFile)	PhotoSize)Sticker)Video)MessageEntity)TelegramObject)enum)parse_sequence_argto_timedelta)get_timedelta_value)DEFAULT_NONEparse_file_input)JSONDictODVInput
TimePeriod)warn)BaseInputMediaType)PTBDeprecationWarning)	FileInputc                   <     e Zd ZdZdZdddededz  f fdZ xZS )_BaseInputMediaz
    Base class for objects representing the various input media types.

    Args:
        media_type (:obj:`str`): Type of media that the instance represents.

    Attributes:
        type (:obj:`str`): Type of media that the instance represents.
    )typeN
api_kwargs
media_typer#   c                z    t         |   |       t        j                  t        j
                  ||      | _        y Nr"   )super__init__r   
get_memberr   r   r!   )selfr$   r#   	__class__s      X/var/www/html/maxservice/venv/lib/python3.12/site-packages/telegram/_files/inputmedia.pyr(   z_BaseInputMedia.__init__?   s0     	J/)E)EzS]^	    	__name__
__module____qualname____doc__	__slots__strr   r(   __classcell__r+   s   @r,   r    r    2   s8     I '+	__ tO	_ _r-   r    c                        e Zd ZdZdZddefdddedeez  dedz  dee	   dz  d	e
e   d
edz  f fdZedddeez  dz  fd       Z xZS )
InputMediaa  
    This object represents the content of a media message to be sent. It should be one of:

    * :class:`telegram.InputMediaAnimation`
    * :class:`telegram.InputMediaAudio`
    * :class:`telegram.InputMediaDocument`
    * :class:`telegram.InputMediaLivePhoto`
    * :class:`telegram.InputMediaPhoto`
    * :class:`telegram.InputMediaVideo`

    .. versionchanged:: 20.0
        Added arguments and attributes :attr:`type`, :attr:`media`, :attr:`caption`,
            :attr:`caption_entities`, :paramref:`parse_mode`.

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    Args:
        media_type (:obj:`str`): Type of media that the instance represents.
        media (:obj:`str` | :class:`~telegram.InputFile`): File to send.
            |fileinputnopath|
        caption (:obj:`str`, optional): Caption of the media to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters after entities
            parsing.
        caption_entities (Sequence[:class:`telegram.MessageEntity`], optional): |caption_entities|

            .. versionchanged:: 20.0
                |sequenceclassargs|

        parse_mode (:obj:`str`, optional): |parse_mode|

    Attributes:
        type (:obj:`str`): Type of the input media.
        media (:obj:`str` | :class:`telegram.InputFile`): Media to send.
        caption (:obj:`str`): Optional. Caption of the media to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters after entities
            parsing.
        parse_mode (:obj:`str`): Optional. |parse_mode|
        caption_entities (tuple[:class:`telegram.MessageEntity`]): Optional. |captionentitiesattr|

            .. versionchanged:: 20.0

                * |tupleclassattrs|
                * |alwaystuple|

    )captioncaption_entitiesmedia
parse_modeNr"   r$   r;   r9   r:   r<   r#   c                    t         |   ||       | j                         5  || _        || _        t        |      | _        || _        d d d        y # 1 sw Y   y xY wNr$   r#   )r'   r(   	_unfrozenr;   r9   r   r:   r<   )r*   r$   r;   r9   r:   r<   r#   r+   s          r,   r(   zInputMedia.__init__z   sY     	J:F^^ 	8*/DJ'.DL?QRb?cD!-7DO		8 	8 	8s   &AA	thumbnailFileInput | Nonereturnc                 &    | t        | dd      S | S )NTattach
local_moder   )rA   s    r,   _parse_thumbnail_inputz!InputMedia._parse_thumbnail_input   s'     $ YtE	
 	
r-   )r/   r0   r1   r2   r3   r   r4   r   r   r   r   r   r(   staticmethodrH   r5   r6   s   @r,   r8   r8   I   s    ,\ GI #;?$08 '+88 Y8 t	8
 #=1D88 SM8 tO8" 
*< 
ySWAW 
 
r-   r8   c                       e Zd ZU 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<   	 dZddded	eez  d
edz  f fdZ xZS )InputPaidMediaa  
    Base class for Telegram InputPaidMedia Objects. Currently, it can be one of:

    * :class:`telegram.InputPaidMediaPhoto`
    * :class:`telegram.InputPaidMediaVideo`
    * :class:`telegram.InputPaidMediaLivePhoto`

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    .. versionadded:: 21.4

    Args:
        type (:obj:`str`): Type of media that the instance represents.
        media (:obj:`str` | :class:`~telegram.InputFile`): File
            to send. |fileinputnopath|

    Attributes:
        type (:obj:`str`): Type of the input media.
        media (:obj:`str` | :class:`telegram.InputFile`): Media to send.
    PHOTOVIDEO
LIVE_PHOTO)r;   r!   Nr"   r!   r;   r#   c                    t         |   |       t        j                  t        j
                  ||      | _        || _        | j                          y r&   )	r'   r(   r   r)   r   InputPaidMediaTyper!   r;   _freeze)r*   r!   r;   r#   r+   s       r,   r(   zInputPaidMedia.__init__   s?     	J/)E)EtTR	&+
r-   )r/   r0   r1   r2   r   rP   rL   r   r4   __annotations__rM   rN   r3   r   r   r(   r5   r6   s   @r,   rK   rK      s    * "44::E5::>!44::E5::>&99DDJc
D
 "I '+ Y
 tO r-   rK   c                   <     e Zd ZdZdZdddddedz  f fdZ xZS )	InputPaidMediaPhotoa  The paid media to send is a photo.

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    .. versionadded:: 21.4

    Args:
        media (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes` |             :class:`pathlib.Path` | :class:`telegram.PhotoSize`): File to send. |fileinputnopath|
            Lastly you can pass an existing :class:`telegram.PhotoSize` object to send.

    Attributes:
        type (:obj:`str`): Type of the media, always
            :tg-const:`telegram.constants.InputPaidMediaType.PHOTO`.
        media (:obj:`str` | :class:`telegram.InputFile`): Photo to send.
     Nr"   r;   FileInput | PhotoSizer#   c                    t        |t        dd      }t        |   t        j
                  ||       | j                          y NTrE   r!   r;   r#   )r   r   r'   r(   rK   rL   rQ   )r*   r;   r#   r+   s      r,   r(   zInputPaidMediaPhoto.__init__   s8     !	$4Pn22%JWr-   r/   r0   r1   r2   r3   r   r(   r5   r6   s   @r,   rT   rT      s4    " I '+	& tO	 r-   rT   c                        e Zd ZdZdZ	 	 	 	 	 	 	 dddddddd	edz  d
edz  dedz  dedz  dddedz  dedz  f fdZ	e
deej                  z  dz  fd       Z xZS )InputPaidMediaVideoa
  
    The paid media to send is a video.

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    .. versionadded:: 21.4

    Note:
        *  When using a :class:`telegram.Video` for the :attr:`media` attribute, it will take the
           width, height and duration from that video, unless otherwise specified with the optional
           arguments.
        *  :paramref:`thumbnail` will be ignored for small video files, for which Telegram can
           easily generate thumbnails. However, this behaviour is undocumented and might be
           changed by Telegram.

    Args:
        media (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes` |             :class:`pathlib.Path` | :class:`telegram.Video`): File to send. |fileinputnopath|
            Lastly you can pass an existing :class:`telegram.Video` object to send.
        thumbnail (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | :obj:`str`,                 optional): |thumbdocstringnopath|
        cover (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | :obj:`str`,                 optional): Cover for the video in the message. |fileinputnopath|

            .. versionchanged:: 21.11
        start_timestamp (:obj:`int`, optional): Start timestamp for the video in the message

            .. versionchanged:: 21.11
        width (:obj:`int`, optional): Video width.
        height (:obj:`int`, optional): Video height.
        duration (:obj:`int` | :class:`datetime.timedelta`, optional): Video duration in seconds.

            .. versionchanged:: v22.2
                |time-period-input|
        supports_streaming (:obj:`bool`, optional): Pass :obj:`True`, if the uploaded video is
            suitable for streaming.

    Attributes:
        type (:obj:`str`): Type of the media, always
            :tg-const:`telegram.constants.InputPaidMediaType.VIDEO`.
        media (:obj:`str` | :class:`telegram.InputFile`): Video to send.
        thumbnail (:class:`telegram.InputFile`): Optional. |thumbdocstringbase|
        cover (:class:`telegram.InputFile`): Optional. Cover for the video in the message.
            |fileinputnopath|

            .. versionchanged:: 21.11
        start_timestamp (:obj:`int`): Optional. Start timestamp for the video in the message

            .. versionchanged:: 21.11
        width (:obj:`int`): Optional. Video width.
        height (:obj:`int`): Optional. Video height.
        duration (:obj:`int` | :class:`datetime.timedelta`): Optional. Video duration in seconds.

            .. deprecated:: v22.2
                |time-period-int-deprecated|
        supports_streaming (:obj:`bool`): Optional. :obj:`True`, if the uploaded video is
            suitable for streaming.
    )	_durationcoverheightstart_timestampsupports_streamingrA   widthNr"   r;   FileInput | VideorA   rB   rb   r_   durationra   r^   r`   r#   c	                    t        |t              r=||n|j                  }||n|j                  }||n|j                  }|j
                  }nt        |dd      }t        
| !  t        j                  ||	       | j                         5  t        j                  |      | _        || _        || _        t        |      | _        || _        |rt        |dd      nd | _        || _        d d d        y # 1 sw Y   y xY wrX   )
isinstancer   rb   r_   r]   file_idr   r'   r(   rK   rM   r@   r8   rH   rA   r   ra   r^   r`   )r*   r;   rA   rb   r_   rd   ra   r^   r`   r#   r+   s             r,   r(   zInputPaidMediaVideo.__init__+  s     eU#".EEKKE%1Vu||F#+#7xU__HMME %U4DIEn22%JW^^ 		?5?5V5VW`5aDN%*DJ&,DK3?3IDN3ED#IN tETX J 0?D 		? 		? 		?s   AC44C=rC   c                 0    t        | j                  d      S Nrd   )	attributer   r]   r*   s    r,   rd   zInputPaidMediaVideo.durationN      "4>>ZHHr-   )NNNNNNN)r/   r0   r1   r2   r3   intr   boolr   r(   propertydtm	timedeltard   r5   r6   s   @r,   r\   r\      s    9vI )- !&**.$(&*!? '+!?"!? &!? Tz	!?
 d
!? t#!? !4K!? "!? t!? tO!?F I#-4 I Ir-   r\   c                   @     e Zd ZdZdZddddddd	edz  f fd
Z xZS )InputPaidMediaLivePhotoa  
    The paid media to send is a live photo.

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    .. versionadded:: 22.8

    Args:
        media (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes`             | :class:`pathlib.Path` | :class:`~telegram.Video`): Video of the live photo to send.
           Pass a ``file_id`` to send a file that exists on the Telegram servers (recommended).
           |uploadinputnopath| Sending live photos by a URL is currently unsupported. Lastly you
           can pass an existing :class:`telegram.Video` object to send.
        photo (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes` |             :class:`pathlib.Path` | :class:`~telegram.PhotoSize`): Photo of the live photo to send.
            Pass a ``file_id`` to send a file that exists on the Telegram servers (recommended).
            |uploadinputnopath| Sending live photos by a URL is currently unsupported.
            Lastly you can pass an existing :class:`telegram.PhotoSize` object to send.

    Attributes:
        type (:obj:`str`): Type of the media, always
            :tg-const:`telegram.constants.InputPaidMediaType.LIVE_PHOTO`.
        media (:obj:`str` | :class:`telegram.InputFile`): Video of the live photo to send.
            |fileinputnopath|
        photo (:obj:`str` | :class:`telegram.InputFile`): Photo of the live photo to send.
            |fileinputnopath|
    )photoNr"   r;   rc   ru   rV   r#   c                    t        |t        dd      }t        |t        dd      }t        |   t
        j                  ||       | j                         5  || _        d d d        y # 1 sw Y   y xY w)NTtg_typerF   rG   rY   )	r   r   r   r'   r(   rK   rN   r@   ru   )r*   r;   ru   r#   r+   s       r,   r(   z InputPaidMediaLivePhoto.__init__r  sg     !dtT 	$SWXn77uQ[\^^ 	0*/DJ	0 	0 	0s   A))A2rZ   r6   s   @r,   rt   rt   S  s>    8 I '+0"0 '0
 tO0 0r-   rt   c                        e Zd ZdZdZdeddddddddf
ddddddedz  dee   d	edz  d
edz  de	dz  de
e   dz  dedz  dedz  dddedz  dedz  dedz  f fdZedeej"                  z  dz  fd       Z xZS )InputMediaAnimationa  Represents an animation file (GIF or H.264/MPEG-4 AVC video without sound) to be sent.

    Note:
        When using a :class:`telegram.Animation` for the :attr:`media` attribute, it will take the
        width, height and duration from that animation, unless otherwise specified with the
        optional arguments.

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    .. versionchanged:: 20.5
      |removed_thumb_note|

    Args:
        media (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes` |             :class:`pathlib.Path` | :class:`telegram.Animation`): File to send. |fileinputnopath|
            Lastly you can pass an existing :class:`telegram.Animation` object to send.

            .. versionchanged:: 13.2
               Accept :obj:`bytes` as input.
        filename_depr (:obj:`str`, optional): Positional placeholder for keyword only parameter
            :paramref:`filename`. For backward compatibility.

            .. versionadded:: 22.8
            .. deprecated:: 22.8
                This parameter is deprecated, use :paramref:`filename` instead.
        caption (:obj:`str`, optional): Caption of the animation to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters
            after entities parsing.
        parse_mode (:obj:`str`, optional): |parse_mode|
        caption_entities (Sequence[:class:`telegram.MessageEntity`], optional): |caption_entities|

            .. versionchanged:: 20.0
                |sequenceclassargs|

        width (:obj:`int`, optional): Animation width.
        height (:obj:`int`, optional): Animation height.
        duration (:obj:`int` | :class:`datetime.timedelta`, optional): Animation duration
            in seconds.

            .. versionchanged:: v22.2
                |time-period-input|
        has_spoiler (:obj:`bool`, optional): Pass :obj:`True`, if the animation needs to be covered
            with a spoiler animation.

            .. versionadded:: 20.0
        thumbnail (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | :obj:`str`,                 optional): |thumbdocstringnopath|

            .. versionadded:: 20.2
        show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|

            .. versionadded:: 21.3

    Keyword Args:
        filename (:obj:`str`, optional): Custom file name for the animation, when uploading a
            new file. Convenience parameter, useful e.g. when sending files generated by the
            :obj:`tempfile` module.

            .. versionadded:: 13.1
            .. versionchanged:: 22.8
               This parameter is now keyword-only.

    Attributes:
        type (:obj:`str`): :tg-const:`telegram.constants.BaseInputMediaType.ANIMATION`.
        media (:obj:`str` | :class:`telegram.InputFile`): Animation to send.
        caption (:obj:`str`): Optional. Caption of the animation to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters
            after entities parsing.
        parse_mode (:obj:`str`): Optional. The parse mode to use for text formatting.
        caption_entities (tuple[:class:`telegram.MessageEntity`]): Optional. |captionentitiesattr|

            .. versionchanged:: 20.0

                * |tupleclassattrs|
                * |alwaystuple|
        width (:obj:`int`): Optional. Animation width.
        height (:obj:`int`): Optional. Animation height.
        duration (:obj:`int` | :class:`datetime.timedelta`): Optional. Animation duration
            in seconds.

            .. deprecated:: v22.2
                |time-period-int-deprecated|
        has_spoiler (:obj:`bool`): Optional. :obj:`True`, if the animation is covered with a
            spoiler animation.

            .. versionadded:: 20.0
        thumbnail (:class:`telegram.InputFile`): Optional. |thumbdocstringbase|

            .. versionadded:: 20.2
        show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|

            .. versionadded:: 21.3
    )r]   has_spoilerr_   show_caption_above_mediarA   rb   Nfilenamer#   r;   zFileInput | Animationr9   r<   rb   r_   rd   r:   filename_deprr{   rA   rB   r|   r~   r#   c                .   ||t        d      |t        t        dd      d       t        |t              r=||j
                  n|}||j                  n|}||n|j                  }|j                  }n|xs |}t        ||dd      }t        | -  t        j                  |||||       | j                         5  | j                  |
      | _        || _        || _        t#        |      | _        |	| _        || _        d d d        y # 1 sw Y   y xY w	N6`filename_depr` and `filename` are mutually exclusive.22.8Positional passing of `filename` or keyword usage of `filename_depr` is deprecated. `filename` will become a keyword-only argument.   
stacklevelTr~   rF   rG   r"   )
ValueErrorr   r   rf   r   rb   r_   r]   rg   r   r'   r(   r   	ANIMATIONr@   rH   rA   r   r{   r|   )r*   r;   r9   r<   rb   r_   rd   r:   r   r{   rA   r|   r~   r#   effective_filenamer+   s                  r,   r(   zInputMediaAnimation.__init__  s2   & $)=UVV$%V
  eY'#(=EKKeE%+^U\\F#+#7xU__HMME "/!:($ 24DE 	((! 	 	
 ^^ 	R595P5PQZ5[DN%*DJ&,DK3?3IDN,7D9QD)	R 	R 	Rs   ?ADDrC   c                 0    t        | j                  d      S ri   rk   rl   s    r,   rd   zInputMediaAnimation.duration$  rm   r-   )r/   r0   r1   r2   r3   r   r4   r   rn   r   r   r   ro   r   r(   rp   rq   rr   rd   r5   r6   s   @r,   rz   rz     s2   \|I #$0 !&*;?$(#'(,04:R   $&*#:R&:R t:R SM	:R
 Tz:R d
:R t#:R #=1D8:R Tz:R D[:R &:R #'+:R  *!:R" tO#:Rx I#-4 I Ir-   rz   c                        e Zd ZdZdZdeddddfddddddedz  dee   d	ee	   dz  d
edz  de
dz  de
dz  dedz  dedz  f fdZ xZS )InputMediaPhotoa
  Represents a photo to be sent.

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    Args:
        media (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes` |             :class:`pathlib.Path` | :class:`telegram.PhotoSize`): File to send. |fileinputnopath|
            Lastly you can pass an existing :class:`telegram.PhotoSize` object to send.

            .. versionchanged:: 13.2
               Accept :obj:`bytes` as input.
        filename_depr (:obj:`str`, optional): Positional placeholder for keyword only parameter
            :paramref:`filename`. For backward compatibility.

            .. versionadded:: 22.8
            .. deprecated:: 22.8
                This parameter is deprecated, use :paramref:`filename` instead.
        caption (:obj:`str`, optional ): Caption of the photo to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters after
            entities parsing.
        parse_mode (:obj:`str`, optional): |parse_mode|
        caption_entities (Sequence[:class:`telegram.MessageEntity`], optional): |caption_entities|

            .. versionchanged:: 20.0
                |sequenceclassargs|
        has_spoiler (:obj:`bool`, optional): Pass :obj:`True`, if the photo needs to be covered
            with a spoiler animation.

            .. versionadded:: 20.0
        show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|

            .. versionadded:: 21.3

    Keyword Args:
        filename (:obj:`str`, optional): Custom file name for the photo, when uploading a
            new file. Convenience parameter, useful e.g. when sending files generated by the
            :obj:`tempfile` module.

            .. versionadded:: 13.1
            .. versionchanged:: 22.8
               This parameter is now keyword-only.

    Attributes:
        type (:obj:`str`): :tg-const:`telegram.constants.BaseInputMediaType.PHOTO`.
        media (:obj:`str` | :class:`telegram.InputFile`): Photo to send.
        caption (:obj:`str`): Optional. Caption of the photo to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters
            after entities parsing.
        parse_mode (:obj:`str`): Optional. |parse_mode|
        caption_entities (tuple[:class:`telegram.MessageEntity`]): Optional. |captionentitiesattr|

            .. versionchanged:: 20.0

                * |tupleclassattrs|
                * |alwaystuple|
        has_spoiler (:obj:`bool`): Optional. :obj:`True`, if the photo is covered with a
            spoiler animation.

            .. versionadded:: 20.0
        show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|

            .. versionadded:: 21.3
    )r{   r|   Nr}   r;   rV   r9   r<   r:   r   r{   r|   r~   r#   c                6   ||t        d      |t        t        dd      d       |xs |}
t        |t        |
dd      }t
        |   t        j                  |||||	       | j                         5  || _
        || _        d d d        y # 1 sw Y   y xY wr   )r   r   r   r   r   r'   r(   r   rL   r@   r{   r|   )r*   r;   r9   r<   r:   r   r{   r|   r~   r#   r   r+   s              r,   r(   zInputMediaPhoto.__init__o  s     $)=UVV$%V
  +6h 9'9$SW
 	$$! 	 	
 ^^ 	R,7D9QD)	R 	R 	Rs   7BBr/   r0   r1   r2   r3   r   r4   r   r   r   ro   r   r(   r5   r6   s   @r,   r   r   )  s    >@I #$0;?$(#'04,R  $&*,R&,R t,R SM	,R
 #=1D8,R Tz,R D[,R #'+,R *,R tO,R ,Rr-   r   c            #           e Zd ZdZdZdddddedddddddfddddddedz  dedz  d	edz  d
edz  de	dz  de
e   dee   dz  dedz  de	dz  ddde	dz  dddedz  dedz  dedz  f  fdZedeej"                  z  dz  fd       Z xZS )InputMediaVideoa  Represents a video to be sent.

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    Note:
        *  When using a :class:`telegram.Video` for the :attr:`media` attribute, it will take the
           width, height and duration from that video, unless otherwise specified with the optional
           arguments.
        *  :paramref:`thumbnail` will be ignored for small video files, for which Telegram can
            easily generate thumbnails. However, this behaviour is undocumented and might be
            changed by Telegram.

    .. versionchanged:: 20.5
      |removed_thumb_note|

    Args:
        media (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes` |             :class:`pathlib.Path` | :class:`telegram.Video`): File to send. |fileinputnopath|
            Lastly you can pass an existing :class:`telegram.Video` object to send.

            .. versionchanged:: 13.2
               Accept :obj:`bytes` as input.
        filename_depr (:obj:`str`, optional): Positional placeholder for keyword only parameter
            :paramref:`filename`. For backward compatibility.

            .. versionadded:: 22.8
            .. deprecated:: 22.8
                This parameter is deprecated, use :paramref:`filename` instead.
        caption (:obj:`str`, optional): Caption of the video to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters after
            entities parsing.
        parse_mode (:obj:`str`, optional): |parse_mode|
        caption_entities (Sequence[:class:`telegram.MessageEntity`], optional): |caption_entities|

            .. versionchanged:: 20.0
                |sequenceclassargs|

        width (:obj:`int`, optional): Video width.
        height (:obj:`int`, optional): Video height.
        duration (:obj:`int` | :class:`datetime.timedelta`, optional): Video duration in seconds.

            .. versionchanged:: v22.2
                |time-period-input|
        supports_streaming (:obj:`bool`, optional): Pass :obj:`True`, if the uploaded video is
            suitable for streaming.
        has_spoiler (:obj:`bool`, optional): Pass :obj:`True`, if the video needs to be covered
            with a spoiler animation.

            .. versionadded:: 20.0
        thumbnail (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | :obj:`str`,                 optional): |thumbdocstringnopath|

            .. versionadded:: 20.2
        cover (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | :obj:`str`,                 optional): Cover for the video in the message. |fileinputnopath|

            .. versionchanged:: 21.11
        start_timestamp (:obj:`int`, optional): Start timestamp for the video in the message

            .. versionchanged:: 21.11
        show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|

            .. versionadded:: 21.3

    Keyword Args:
        filename (:obj:`str`, optional): Custom file name for the video, when uploading a
            new file. Convenience parameter, useful e.g. when sending files generated by the
            :obj:`tempfile` module.

            .. versionadded:: 13.1
            .. versionchanged:: 22.8
               This parameter is now keyword-only.

    Attributes:
        type (:obj:`str`): :tg-const:`telegram.constants.BaseInputMediaType.VIDEO`.
        media (:obj:`str` | :class:`telegram.InputFile`): Video file to send.
        caption (:obj:`str`): Optional. Caption of the video to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters
            after entities parsing.
        parse_mode (:obj:`str`): Optional. |parse_mode|
        caption_entities (tuple[:class:`telegram.MessageEntity`]): Optional. |captionentitiesattr|

            .. versionchanged:: 20.0

                * |tupleclassattrs|
                * |alwaystuple|
        width (:obj:`int`): Optional. Video width.
        height (:obj:`int`): Optional. Video height.
        duration (:obj:`int` | :class:`datetime.timedelta`): Optional. Video duration in seconds.

            .. deprecated:: v22.2
                |time-period-int-deprecated|
        supports_streaming (:obj:`bool`): Optional. :obj:`True`, if the uploaded video is
            suitable for streaming.
        has_spoiler (:obj:`bool`): Optional. :obj:`True`, if the video is covered with a
            spoiler animation.

            .. versionadded:: 20.0
        thumbnail (:class:`telegram.InputFile`): Optional. |thumbdocstringbase|

            .. versionadded:: 20.2
        show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|

            .. versionadded:: 21.3
        cover (:class:`telegram.InputFile`): Optional. Cover for the video in the message.
            |fileinputnopath|

            .. versionchanged:: 21.11
        start_timestamp (:obj:`int`): Optional. Start timestamp for the video in the message

            .. versionchanged:: 21.11
    )	r]   r^   r{   r_   r|   r`   ra   rA   rb   Nr}   r;   rc   r9   rb   r_   rd   ra   r<   r:   r   r{   rA   rB   r|   r^   r`   r~   r#   c                x   |	|t        d      |	t        t        dd      d       t        |t              r=||n|j
                  }||n|j                  }||n|j                  }|j                  }n|	xs |}t        ||dd      }t        | -  t        j                  |||||       | j                         5  || _        || _        t        |      | _        | j!                  |      | _        || _        |
| _        || _        |rt        |dd	      nd | _        || _        d d d        y # 1 sw Y   y xY w)
Nr   r   r   r   r   Tr   r"   rE   )r   r   r   rf   r   rb   r_   r]   rg   r   r'   r(   r   rM   r@   r   rH   rA   ra   r{   r|   r^   r`   )r*   r;   r9   rb   r_   rd   ra   r<   r:   r   r{   rA   r|   r^   r`   r~   r#   r   r+   s                     r,   r(   zInputMediaVideo.__init__  s[   , $)=UVV$%V
  eU#".EEKKE%1Vu||F#+#7xU__HMME "/!:($ 24DE 	$$! 	 	
 ^^ 	?%*DJ&,DK3?3IDN595P5PQZ5[DN3ED#,7D9QD)IN tETX J 0?D 	? 	? 	?s   ?A(D00D9rC   c                 0    t        | j                  d      S ri   rk   rl   s    r,   rd   zInputMediaVideo.duration`  rm   r-   )r/   r0   r1   r2   r3   r   r4   rn   r   ro   r   r   r   r   r(   rp   rq   rr   rd   r5   r6   s   @r,   r   r     sd   ob
I # !&**.$0;?$(#'(,04$(&*#B?&  $&*)B?"B? tB? Tz	B?
 d
B? t#B? !4KB? SMB? #=1D8B? TzB? D[B? &B? #'+B?  "!B?" t#B?& *'B?( tO)B?H I#-4 I Ir-   r   c                   N     e Zd ZdZdZ	 d
dddedededz  dedz  f fd	Z xZS )InputMediaLocationa  Represents a location to be sent.

    .. versionadded:: 22.8

    Args:
        latitude (:obj:`float`): Latitude of the location.
        longitude (:obj:`float`): Longitude of the location.
        horizontal_accuracy (:obj:`float`, optional): The radius of uncertainty for the location,
            measured in meters; 0-:tg-const:`telegram.Location.HORIZONTAL_ACCURACY`.

    Attributes:
        type (:obj:`str`): :tg-const:`telegram.constants.BaseInputMediaType.LOCATION`.
        latitude (:obj:`float`): Latitude of the location.
        longitude (:obj:`float`): Longitude of the location.
        horizontal_accuracy (:obj:`float`): Optional. The radius of uncertainty for the location,
            measured in meters; 0-:tg-const:`telegram.Location.HORIZONTAL_ACCURACY`.
    )horizontal_accuracylatitude	longitudeNr"   r   r   r   r#   c                    t         |   t        j                  |       | j	                         5  || _        || _        || _        d d d        y # 1 sw Y   y xY wr>   )r'   r(   r   LOCATIONr@   r   r   r   )r*   r   r   r   r#   r+   s        r,   r(   zInputMediaLocation.__init__z  sW     	$6$?$?JW^^ 	I#+DM$-DN5HD$	I 	I 	Is   AAN)	r/   r0   r1   r2   r3   floatr   r(   r5   r6   s   @r,   r   r   e  s^    $ AI -1	I '+II I #T\	I tOI Ir-   r   c                   z     e Zd ZdZdZ	 	 	 	 ddddedededed	edz  d
edz  dedz  dedz  dedz  f fdZ xZ	S )InputMediaVenueu  Represents a venue to be sent.

    .. versionadded:: 22.8

    Args:
        latitude (:obj:`float`): Latitude of the location.
        longitude (:obj:`float`): Longitude of the location.
        title (:obj:`str`): Name of the venue.
        address (:obj:`str`): Address of the venue.
        foursquare_id (:obj:`str`, optional): Foursquare identifier of the venue.
        foursquare_type (:obj:`str`, optional): Foursquare type of the venue, if known. (For
            example, ``“arts_entertainment/default”``, ``“arts_entertainment/aquarium”``
            or ``“food/icecream”``).
        google_place_id (:obj:`str`, optional): Google Places identifier of the venue.
        google_place_type (:obj:`str`, optional): Google Places type of the venue. (See        `supported types <https://developers.google.com/places/web-service/supported_types>`__)

    Attributes:
        type (:obj:`str`): :tg-const:`telegram.constants.BaseInputMediaType.VENUE`.
        latitude (:obj:`float`): Latitude of the location.
        longitude (:obj:`float`): Longitude of the location.
        title (:obj:`str`): Name of the venue.
        address (:obj:`str`): Address of the venue.
        foursquare_id (:obj:`str`): Optional. Foursquare identifier of the venue.
        foursquare_type (:obj:`str`): Optional. Foursquare type of the venue, if known. (For
            example, ``“arts_entertainment/default”``, ``“arts_entertainment/aquarium”``
            or ``“food/icecream”``).
        google_place_id (:obj:`str`): Optional. Google Places identifier of the venue.
        google_place_type (:obj:`str`): Optional. Google Places type of the venue. (See        `supported types <https://developers.google.com/places/web-service/supported_types>`__)
    )addressfoursquare_idfoursquare_typegoogle_place_idgoogle_place_typer   r   titleNr"   r   r   r   r   r   r   r   r   r#   c	                    t         
|   t        j                  |	       | j	                         5  || _        || _        || _        || _        || _	        || _
        || _        || _        d d d        y # 1 sw Y   y xY wr>   )r'   r(   r   VENUEr@   r   r   r   r   r   r   r   r   )r*   r   r   r   r   r   r   r   r   r#   r+   s             r,   r(   zInputMediaVenue.__init__  s}     	$6$<$<T^^ 	C#+DM$-DN#DJ 'DL-:D/>D />D 1BD"	C 	C 	Cs   9A33A<)NNNN)
r/   r0   r1   r2   r3   r   r4   r   r(   r5   r6   s   @r,   r   r     s    @	I" %)&*&*(,C '+CC C 	C
 C TzC tC tC :C tOC Cr-   r   c                   V     e Zd ZdZdZ	 dddddddedz  dedz  d	edz  f fd
Z xZS )InputMediaStickeraQ  Represents a sticker file to be sent.

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    .. versionadded:: 22.8

    Args:
        media (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes` |             :class:`pathlib.Path` | :class:`telegram.Sticker`): File to send. |fileinputnopath|

            Lastly you can pass an existing :class:`telegram.Sticker` object to send.
        emoji (:obj:`str`, optional): Emoji associated with the sticker; only for just uploaded
            stickers.

    Keyword Args:
        filename (:obj:`str`, optional): Custom file name for the sticker, when uploading a
            new file. Convenience parameter, useful e.g. when sending files generated by the
            :obj:`tempfile` module.

    Attributes:
        type (:obj:`str`): :tg-const:`telegram.constants.BaseInputMediaType.STICKER`.
        media (:obj:`str` | :class:`telegram.InputFile`): Sticker file to send.
        emoji (:obj:`str`): Optional. Emoji associated with the sticker; only for just uploaded
            stickers.
    )emojir;   Nr}   r;   zFileInput | Stickerr   r~   r#   c                    t        |t        |dd      }t        |   t        j
                  |       | j                         5  || _        || _        d d d        y # 1 sw Y   y xY w)NTr   r?   )	r   r   r'   r(   r   STICKERr@   r;   r   )r*   r;   r   r~   r#   r+   s        r,   r(   zInputMediaSticker.__init__  s^     !(4\`a$6$>$>:V^^ 	+*/DJ%*DJ	+ 	+ 	+s   AA&r   r.   r6   s   @r,   r   r     s]    4 #I
 !+
  $&*+$+ Tz+
 *+ tO+ +r-   r   c                        e Zd ZdZdZdeddddddfddddddedz  dee   d	edz  d
edz  dedz  de	e
   dz  dedz  dddedz  dedz  f fdZedeej                   z  dz  fd       Z xZS )InputMediaAudioa[  Represents an audio file to be treated as music to be sent.

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    Note:
        When using a :class:`telegram.Audio` for the :attr:`media` attribute, it will take the
        duration, performer and title from that video, unless otherwise specified with the
        optional arguments.

    .. versionchanged:: 20.5
      |removed_thumb_note|

    Args:
        media (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes` |             :class:`pathlib.Path` | :class:`telegram.Audio`): File to send. |fileinputnopath|
            Lastly you can pass an existing :class:`telegram.Audio` object to send.

            .. versionchanged:: 13.2
               Accept :obj:`bytes` as input.
        filename_depr (:obj:`str`, optional): Positional placeholder for keyword only parameter
            :paramref:`filename`. For backward compatibility.

            .. versionadded:: 22.8
            .. deprecated:: 22.8
                This parameter is deprecated, use :paramref:`filename` instead.
        caption (:obj:`str`, optional): Caption of the audio to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters after
            entities parsing.
        parse_mode (:obj:`str`, optional): |parse_mode|
        caption_entities (Sequence[:class:`telegram.MessageEntity`], optional): |caption_entities|

            .. versionchanged:: 20.0
                |sequenceclassargs|

        duration (:obj:`int` | :class:`datetime.timedelta`, optional): Duration of the audio
            in seconds as defined by the sender.

            .. versionchanged:: v22.2
                |time-period-input|
        performer (:obj:`str`, optional): Performer of the audio as defined by the sender or by
            audio tags.
        title (:obj:`str`, optional): Title of the audio as defined by the sender or by audio tags.
        thumbnail (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | :obj:`str`,                 optional): |thumbdocstringnopath|

            .. versionadded:: 20.2

    Keyword Args:
        filename (:obj:`str`, optional): Custom file name for the audio, when uploading a
            new file. Convenience parameter, useful e.g. when sending files generated by the
            :obj:`tempfile` module.

            .. versionadded:: 13.1
            .. versionchanged:: 22.8
               This parameter is now keyword-only.

    Attributes:
        type (:obj:`str`): :tg-const:`telegram.constants.BaseInputMediaType.AUDIO`.
        media (:obj:`str` | :class:`telegram.InputFile`): Audio file to send.
        caption (:obj:`str`): Optional. Caption of the audio to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters
            after entities parsing.
        parse_mode (:obj:`str`): Optional. |parse_mode|
        caption_entities (tuple[:class:`telegram.MessageEntity`]): Optional. |captionentitiesattr|

            .. versionchanged:: 20.0

                * |tupleclassattrs|
                * |alwaystuple|
        duration (:obj:`int` | :class:`datetime.timedelta`): Optional. Duration of the audio
            in seconds.

            .. deprecated:: v22.2
                |time-period-int-deprecated|
        performer (:obj:`str`): Optional. Performer of the audio as defined by the sender or by
            audio tags.
        title (:obj:`str`): Optional. Title of the audio as defined by the sender or by audio tags.
        thumbnail (:class:`telegram.InputFile`): Optional. |thumbdocstringbase|

            .. versionadded:: 20.2

    )r]   	performerrA   r   Nr}   r;   zFileInput | Audior9   r<   rd   r   r   r:   r   rA   rB   r~   r#   c
                   ||
t        d      |t        t        dd      d       t        |t              r=||n|j
                  }||j                  n|}||j                  n|}|j                  }n|xs |
}t        ||dd      }t        | -  t        j                  |||||       | j                         5  | j                  |	      | _        t#        |      | _        || _        || _        d d d        y # 1 sw Y   y xY wr   )r   r   r   rf   r	   r]   r   r   rg   r   r'   r(   r   AUDIOr@   rH   rA   r   )r*   r;   r9   r<   rd   r   r   r:   r   rA   r~   r#   r   r+   s                r,   r(   zInputMediaAudio.__init__Q  s   " $)=UVV$%V
  eU##+#7xU__H+4+<)I#(=EKKeEMME "/!:($ 24DE 	$$! 	 	
 ^^ 	3595P5PQZ5[DN3?3IDN%*DJ)2DN		3 	3 	3s   ?5C==DrC   c                 0    t        | j                  d      S ri   rk   rl   s    r,   rd   zInputMediaAudio.duration  rm   r-   )r/   r0   r1   r2   r3   r   r4   r   r   r   r   r   r(   rp   rn   rq   rr   rd   r5   r6   s   @r,   r   r     s   Qf AI
 #$0&* $ ;?$((,63  $&*63"63 t63 SM	63
 t#63 :63 Tz63 #=1D863 Tz63 &63 *63 tO63p I#-4 I Ir-   r   c                        e Zd ZdZdZdeddddfddddddedz  dee   d	edz  d
e	e
   dz  dedz  dddedz  dedz  f fdZ xZS )InputMediaDocumenta  Represents a general file to be sent.

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    .. versionchanged:: 20.5
      |removed_thumb_note|

    Args:
        media (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes`             | :class:`pathlib.Path` | :class:`telegram.Document`): File to send. |fileinputnopath|
            Lastly you can pass an existing :class:`telegram.Document` object to send.

            .. versionchanged:: 13.2
               Accept :obj:`bytes` as input.
        filename_depr (:obj:`str`, optional): Positional placeholder for keyword only parameter
            :paramref:`filename`. For backward compatibility.

            .. versionadded:: 22.8
            .. deprecated:: 22.8
                This parameter is deprecated, use :paramref:`filename` instead.
        caption (:obj:`str`, optional): Caption of the document to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters after
            entities parsing.
        parse_mode (:obj:`str`, optional): |parse_mode|
        caption_entities (Sequence[:class:`telegram.MessageEntity`], optional): |caption_entities|

            .. versionchanged:: 20.0
                |sequenceclassargs|

        disable_content_type_detection (:obj:`bool`, optional): Disables automatic server-side
            content type detection for files uploaded using multipart/form-data. Always
            :obj:`True`, if the document is sent as part of an album.
        thumbnail (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | :obj:`str`,                 optional): |thumbdocstringnopath|

            .. versionadded:: 20.2

    Keyword Args:
        filename (:obj:`str`, optional): Custom file name for the document, when uploading a
            new file. Convenience parameter, useful e.g. when sending files generated by the
            :obj:`tempfile` module.

            .. versionadded:: 13.1
            .. versionchanged:: 22.8
               This parameter is now keyword-only.

    Attributes:
        type (:obj:`str`): :tg-const:`telegram.constants.BaseInputMediaType.DOCUMENT`.
        media (:obj:`str` | :class:`telegram.InputFile`): File to send.
        caption (:obj:`str`): Optional. Caption of the document to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters
            after entities parsing.
        parse_mode (:obj:`str`): Optional. |parse_mode|
        caption_entities (tuple[:class:`telegram.MessageEntity`]): Optional. |captionentitiesattr|

            .. versionchanged:: 20.0

                * |tupleclassattrs|
                * |alwaystuple|
        disable_content_type_detection (:obj:`bool`): Optional. Disables automatic server-side
            content type detection for files uploaded using multipart/form-data. Always
            :obj:`True`, if the document is sent as part of an album.
        thumbnail (:class:`telegram.InputFile`): Optional. |thumbdocstringbase|

            .. versionadded:: 20.2
    )disable_content_type_detectionrA   Nr}   r;   zFileInput | Documentr9   r<   r   r:   r   rA   rB   r~   r#   c                T   ||t        d      |t        t        dd      d       |xs |}
t        |t        |
dd      }t
        |   t        j                  |||||	       | j                         5  | j                  |      | _        || _        d d d        y # 1 sw Y   y xY wr   )r   r   r   r   r
   r'   r(   r   DOCUMENTr@   rH   rA   r   )r*   r;   r9   r<   r   r:   r   rA   r~   r#   r   r+   s              r,   r(   zInputMediaDocument.__init__  s     $)=UVV$%V
  +6h 8&8RV
 	''! 	 	
 ^^ 	^595P5PQZ5[DN?]D/	^ 	^ 	^s   7BB')r/   r0   r1   r2   r3   r   r4   r   ro   r   r   r   r(   r5   r6   s   @r,   r   r     s    AF @I
 #$06:;?$((,,^  $&*,^%,^ t,^ SM	,^
 )-t,^ #=1D8,^ Tz,^ &,^ *,^ tO,^ ,^r-   r   c                        e Zd ZdZdZdedddfddddddd	edz  d
ee   dee	   dz  de
dz  de
dz  dedz  f fdZ xZS )InputMediaLivePhotoa	  Represents a live photo to be sent.

    .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

    .. versionadded:: 22.8

    Args:
        media (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes`             | :class:`pathlib.Path` | :class:`~telegram.Video`): Video of the live photo to send.
           Pass a ``file_id`` to send a file that exists on the Telegram servers (recommended).
           |uploadinputnopath| Sending live photos by a URL is currently unsupported. Lastly
           you can pass an existing :class:`telegram.Video` object to send.
        photo (:obj:`str` | :term:`file object` | :class:`~telegram.InputFile` | :obj:`bytes`             | :class:`pathlib.Path` | :class:`~telegram.PhotoSize`): The static photo to send.
            Pass a ``file_id`` to send a file that exists on the Telegram servers (recommended).
            |uploadinputnopath| Sending live photos by a URL is currently unsupported. Lastly
            you can pass an existing :class:`telegram.PhotoSize` object to send.
        caption (:obj:`str`, optional): Caption of the live photo to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters after
            entities parsing.
        parse_mode (:obj:`str`, optional): |parse_mode|
        caption_entities (Sequence[:class:`telegram.MessageEntity`], optional): |caption_entities|
        show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
        has_spoiler (:obj:`bool`, optional): Pass :obj:`True`, if the video needs to be covered
            with a spoiler animation.

    Attributes:
        type (:obj:`str`): :tg-const:`telegram.constants.BaseInputMediaType.LIVE_PHOTO`.
        media (:obj:`str` | :class:`telegram.InputFile`): Video of the live photo to send.
        photo (:obj:`str` | :class:`telegram.InputFile`): The static photo to send.
        caption (:obj:`str`): Optional. Caption of the live photo to be sent,
            0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters
            after entities parsing.
        parse_mode (:obj:`str`): Optional. |parse_mode|
        caption_entities (tuple[:class:`telegram.MessageEntity`]): Optional. |captionentitiesattr|
        show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
        has_spoiler (:obj:`bool`): Optional. :obj:`True`, if the video is covered with a
            spoiler animation.
    )r{   ru   r|   Nr"   r;   rc   ru   rV   r9   r<   r:   r|   r{   r#   c                   t        |t        dd      }t        |t        dd      }t        	|   t
        j                  |||||       | j                         5  || _        || _	        || _
        d d d        y # 1 sw Y   y xY w)NTrw   r"   )r   r   r   r'   r(   r   rN   r@   ru   r|   r{   )
r*   r;   ru   r9   r<   r:   r|   r{   r#   r+   s
            r,   r(   zInputMediaLivePhoto.__init__.  s     !dtT 	$SWX))! 	 	
 ^^ 	8*/DJ9QD),7D	8 	8 	8s   A::Br   r6   s   @r,   r   r     s    &P EI #$0;?04#'8 '+8"8 '8 t	8
 SM8 #=1D88 #'+8 D[8 tO8 8r-   r   InputPollMediaInputPollOptionMedia)Er2   datetimerq   collections.abcr   typingr   r   r   telegramr   telegram._files.animationr   telegram._files.audior	   telegram._files.documentr
   telegram._files.inputfiler   telegram._files.photosizer   telegram._files.stickerr   telegram._files.videor   telegram._messageentityr   telegram._telegramobjectr   telegram._utilsr   telegram._utils.argumentparsingr   r   telegram._utils.datetimer   telegram._utils.defaultvaluer   telegram._utils.filesr   telegram._utils.typesr   r   r   telegram._utils.warningsr   telegram.constantsr   telegram.warningsr   r   r    r8   rK   rT   r\   rt   rz   r   r   r   r   r   r   r   r   r   rR   r   rU   r-   r,   <module>r      s  &%  $ 2 2  / ' - / / + ' 1 3   L 8 5 2 @ @ ) 1 3/_n _.J
 J
Z-^ -`. >kI. kI\*0n *0ZfI* fIRrRj rRjDIj DIN!I !IHBCo BCJ*+ *+ZPIj PIfr^ r^jE8* E8R   	
    	 	   	
   i r-   