Ë
    ¦üàgü  ã                  óT   — d dl mZ d dlZd dlmZ d dlmZmZmZ  G d„ dee   «      Z	y)é    )ÚannotationsN)ÚIterable)ÚIOÚAnyStrÚNoReturnc                  óÐ   — e Zd ZdZdd„Zdd„Zdd„Zej                  fdd„Z	dd„Z
dd„Zddd„Zddd	„Zddd
„Zdd„Zdd„Zdd„Zd d!d„Zd"d„Zd#d„Zd"d„Zd$d„Zdd„Zd%d„Zd%d„Zy)&ÚContainerIOzm
    A file object that provides read access to a part of an existing
    file (for example a TAR file).
    c                ór   — || _         d| _        || _        || _        | j                   j	                  |«       y)z­
        Create file object.

        :param file: Existing file.
        :param offset: Start of region, in bytes.
        :param length: Size of region, in bytes.
        r   N)ÚfhÚposÚoffsetÚlengthÚseek)ÚselfÚfiler   r   s       úM/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/PIL/ContainerIO.pyÚ__init__zContainerIO.__init__   s0   € ð #ˆŒØˆŒØˆŒØˆŒØ�‰�‰�VÕó    c                 ó   — y©NF© ©r   s    r   ÚisattyzContainerIO.isatty.   ó   € Ør   c                 ó   — y©NTr   r   s    r   ÚseekablezContainerIO.seekable1   ó   € Ør   c                óR  — |dk(  r| j                   |z   | _         n!|dk(  r| j                  |z   | _         n|| _         t        dt        | j                   | j                  «      «      | _         | j                  j                  | j                  | j                   z   «       | j                   S )aK  
        Move file pointer.

        :param offset: Offset in bytes.
        :param mode: Starting position. Use 0 for beginning of region, 1
           for current offset, and 2 for end of region.  You cannot move
           the pointer outside the defined region.
        :returns: Offset from start of region, in bytes.
        é   é   r   )r   r   ÚmaxÚminr   r   r   )r   r   Úmodes      r   r   zContainerIO.seek4   s|   € ð �1Š9Ø—x‘x &Ñ(ˆD�HØ�QŠYØ—{‘{ VÑ+ˆD�HàˆDŒHä�qœ#˜dŸh™h¨¯©Ó4Ó5ˆŒØ�‰�‰�T—[‘[ 4§8¡8Ñ+Ô,Ø�x‰xˆr   c                ó   — | j                   S )ze
        Get current file pointer.

        :returns: Offset from start of region, in bytes.
        )r   r   s    r   ÚtellzContainerIO.tellI   s   € ð �x‰xˆr   c                 ó   — yr   r   r   s    r   ÚreadablezContainerIO.readableQ   r   r   c                ó&  — |dkD  r$t        || j                  | j                  z
  «      }n| j                  | j                  z
  }|dk  rd| j                  j                  v rdS dS | j                  |z   | _        | j                  j                  |«      S )z¯
        Read data.

        :param n: Number of bytes to read. If omitted, zero or negative,
            read until end of region.
        :returns: An 8-bit string.
        r   Úbr   Ú )r#   r   r   r   r$   Úread)r   Úns     r   r,   zContainerIO.readT   sx   € ð ˆqŠ5Ü�A�t—{‘{ T§X¡XÑ-Ó.‰Aà—‘˜dŸh™hÑ&ˆAØ�Š6Ø §¡§¡Ñ-�3Ð5°2Ð5Ø—8‘8˜a‘<ˆŒØ�w‰w�|‰|˜A‹Ðr   c                óØ   — d| j                   j                  v rdnd}d| j                   j                  v rdnd}	 | j                  d«      }|s	 |S ||z   }||k(  st        |«      |k(  r	 |S Œ2)z·
        Read a line of text.

        :param n: Number of bytes to read. If omitted, zero or negative,
            read until end of line.
        :returns: An 8-bit string.
        r*   r   r+   ó   
ú
r    )r   r$   r,   Úlen)r   r-   ÚsÚnewline_characterÚcs        r   ÚreadlinezContainerIO.readlinee   sy   € ð  $§'¡'§,¡,Ñ.‘C°BˆØ%(¨D¯G©G¯L©LÑ%8™E¸dÐØØ—	‘	˜!“ˆAÙØð ˆð �A‘ˆAØÐ%Ò%¬¨Q«°1ªØØˆð r   c                óx   — g }	 | j                  «       }|s	 |S |j                  |«       t        |«      |k(  r	 |S Œ8)zÏ
        Read multiple lines of text.

        :param n: Number of lines to read. If omitted, zero, negative or None,
            read until end of region.
        :returns: A list of 8-bit strings.
        )r5   Úappendr1   )r   r-   Úlinesr2   s       r   Ú	readlineszContainerIO.readlinesx   sI   € ð ˆØØ—‘“ˆAÙØð ˆð �L‰L˜ŒOÜ�5‹z˜QŠØØˆð r   c                 ó   — yr   r   r   s    r   ÚwritablezContainerIO.writableŠ   r   r   c                ó   — t        «       ‚©N©ÚNotImplementedError)r   r*   s     r   ÚwritezContainerIO.write�   ó   € Ü!Ó#Ð#r   c                ó   — t        «       ‚r=   r>   )r   r8   s     r   Ú
writelineszContainerIO.writelines�   rA   r   Nc                ó   — t        «       ‚r=   r>   )r   Úsizes     r   ÚtruncatezContainerIO.truncate“   rA   r   c                ó   — | S r=   r   r   s    r   Ú	__enter__zContainerIO.__enter__–   ó   € Øˆr   c                ó$   — | j                  «        y r=   )Úclose)r   Úargss     r   Ú__exit__zContainerIO.__exit__™   s   € Ø�
‰
�r   c                ó   — | S r=   r   r   s    r   Ú__iter__zContainerIO.__iter__œ   rI   r   c                óD   — | j                  «       }|sd}t        |«      ‚|S )Nzend of region)r5   ÚStopIteration)r   ÚlineÚmsgs      r   Ú__next__zContainerIO.__next__Ÿ   s%   € Ø�}‰}‹ˆÙØ!ˆCÜ Ó$Ð$Øˆr   c                ó6   — | j                   j                  «       S r=   )r   Úfilenor   s    r   rV   zContainerIO.fileno¦   s   € Ø�w‰w�~‰~ÓÐr   c                ó8   — | j                   j                  «        y r=   )r   Úflushr   s    r   rX   zContainerIO.flush©   ó   € Ø�‰�‰�r   c                ó8   — | j                   j                  «        y r=   )r   rK   r   s    r   rK   zContainerIO.close¬   rY   r   )r   z
IO[AnyStr]r   Úintr   r[   ÚreturnÚNone)r\   Úbool)r   r[   r$   r[   r\   r[   )r\   r[   )éÿÿÿÿ)r-   r[   r\   r   )r-   ú
int | Noner\   zlist[AnyStr])r*   r   r\   r   )r8   zIterable[AnyStr]r\   r   r=   )rE   r`   r\   r[   )r\   zContainerIO[AnyStr])rL   Úobjectr\   r]   )r\   r   )r\   r]   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   ÚioÚSEEK_SETr   r&   r(   r,   r5   r9   r;   r@   rC   rF   rH   rM   rO   rT   rV   rX   rK   r   r   r   r	   r	      st   „ ñó
ó"óð -/¯K©Kô ó*óôô"ô&ó$ó$ó$ô$óóóóó óôr   r	   )
Ú
__future__r   rf   Úcollections.abcr   Útypingr   r   r   r	   r   r   r   ú<module>rk      s(   ðõ  #ã 	Ý $ß 'Ñ 'ôV�"�V‘*õ Vr   