+
    šh©jwJ  ã                   óT   € ^ RI Ht ^ RIHtHtHtHtHt ^ RIH	t	H
t
  ! R R]	4      tR# )é    )ÚBytesIO)Úlinefeed_byte_valueÚcrlfÚcr_byteÚlinefeed_byteÚcr_byte_value)ÚClosingContextManagerÚuc                   ó  a € ] tR t^t o RtRt^ t^t^t^t	^t
^t^t^ t^@t^€tR tR tR tR tR tR tR	 tR
 tR tR tRR ltRR ltRR ltRR ltR tR tR t R t!]"R 4       t#R t$R t%R t&R R lt'R t(R t)Rt*V t+R# )!ÚBufferedFilezW
Reusable base class to implement Python-style file buffering around a
simpler stream.
i    c                óÆ   € R V n         ^ V n        V P                  V n        \	        4       V n        \        4       V n        RV n        RV n	        ^ ;V n
        V n        ^ V n        R # )NF)ÚnewlinesÚ_flagsÚ_DEFAULT_BUFSIZEÚ_bufsizer   Ú_wbufferÚbytesÚ_rbufferÚ_at_trailing_crÚ_closedÚ_posÚ_realposÚ_size©Úselfs   &ÚH/var/www/html/bestweb/venv/lib/python3.14/site-packages/paramiko/file.pyÚ__init__ÚBufferedFile.__init__3   sU   € ØˆŒØˆŒØ×-Ñ-ˆŒÜ›	ˆŒÜ›ˆŒØ$ˆÔØˆŒð %&Ð%ˆŒ	�D”MàˆŽ
ó    c                ó&   € V P                  4        R # ©N)Úcloser   s   &r   Ú__del__ÚBufferedFile.__del__B   s   € Ø�
‰
Žr   c                ó@   € V P                   '       d   \        R4      hV # )zÕ
Returns an iterator that can be used to iterate over the lines in this
file.  This iterator happens to return the file itself, since a file is
its own iterator.

:raises: ``ValueError`` -- if the file is closed.
zI/O operation on closed file)r   Ú
ValueErrorr   s   &r   Ú__iter__ÚBufferedFile.__iter__E   s   € ð �<�<ˆ<ÜÐ;Ó<Ð<Øˆr   c                ó4   € V P                  4        RV n        R# )z>
Close the file.  Future read and write operations will fail.
TN)Úflushr   r   s   &r   r"   ÚBufferedFile.closeQ   s   € ð 	�
‰
ŒØˆŽr   c                óv   € V P                  V P                  P                  4       4       \        4       V n        R# )zc
Write out any data in the write buffer.  This may do nothing if write
buffering is not turned on.
N)Ú
_write_allr   Úgetvaluer   r   s   &r   r*   ÚBufferedFile.flushX   s)   € ð
 	�‰˜Ÿ™×.Ñ.Ó0Ô1Ü›	ˆŒÙr   c                óB   € V P                  4       pV'       g   \        hV# )aP  
Returns the next line from the input, or raises ``StopIteration``
when EOF is hit.  Unlike python file objects, it's okay to mix
calls to `.next` and `.readline`.

:raises: ``StopIteration`` -- when the end of the file is reached.

:returns:
    a line (`str`, or `bytes` if the file was opened in binary mode)
    read from the file.
)ÚreadlineÚStopIteration)r   Úlines   & r   Ú__next__ÚBufferedFile.__next__a   s   € ð �}‰}‹ˆßÜÐØˆr   c                óV   € V P                   V P                  ,          V P                  8H  # )z‰
Check if the file can be read from.

:returns:
    `True` if the file can be read from. If `False`, `read` will raise
    an exception.
)r   Ú	FLAG_READr   s   &r   ÚreadableÚBufferedFile.readabler   s    € ð —‘˜dŸn™nÕ,°·±Ñ?Ð?r   c                óV   € V P                   V P                  ,          V P                  8H  # )zŒ
Check if the file can be written to.

:returns:
    `True` if the file can be written to. If `False`, `write` will
    raise an exception.
)r   Ú
FLAG_WRITEr   s   &r   ÚwritableÚBufferedFile.writable|   s    € ð —‘˜dŸo™oÕ-°$·/±/ÑAÐAr   c                ó   € R# )z•
Check if the file supports random access.

:returns:
    `True` if the file supports random access. If `False`, `seek` will
    raise an exception.
F© r   s   &r   ÚseekableÚBufferedFile.seekable†   s   € ñ r   c                óf   € V P                  \        V4      4      pW!R\        V4      % \        V4      # )zˆ
Read up to ``len(buff)`` bytes into ``bytearray`` *buff* and return the
number of bytes read.

:returns:
    The number of bytes read.
N)ÚreadÚlen)r   ÚbuffÚdatas   && r   ÚreadintoÚBufferedFile.readinto�   s.   € ð �y‰yœ˜T›Ó#ˆØ ˆ[Œs�4‹yÐÜ�4‹yÐr   Nc                ó¦  € V P                   '       d   \        R4      hV P                  V P                  ,          '       g   \        R4      hVe   V^ 8  dÛ   \	        V P
                  4      p\        4       V n        V ;P                  \        V4      ,          un          V P                  V P                  4      pVe   \        V4      ^ 8X  d   MWVP                  V4       V ;P                  \        V4      ,          un        V ;P                  \        V4      ,          un        K‰  \        V4      # V\        V P
                  4      8:  dH   V P
                  RV pV P
                  VR V n        V ;P                  \        V4      ,          un        V# \        V P
                  4      V8  dº   V\        V P
                  4      ,
          pV P                  V P                  ,          '       d   \        V P                   V4      p V P                  V4      pVe   \        V4      ^ 8X  d   M=V ;P
                  V,          un        V ;P                  \        V4      ,          un        KÓ  V P
                  RV pV P
                  VR V n        V ;P                  \        V4      ,          un        V#   \         d    Rp ELi ; i  \         d    Rp L¼i ; i)a1  
Read at most ``size`` bytes from the file (less if we hit the end of
the file first).  If the ``size`` argument is negative or omitted,
read all the remaining data in the file.

.. note::
    ``'b'`` mode flag is ignored (``self.FLAG_BINARY`` in
    ``self._flags``), because SSH treats all files as binary, since we
    have no idea what encoding the file is in, or even if the file is
    text data.

:param int size: maximum number of bytes to read
:returns:
    data read from the file (as bytes), or an empty string if EOF was
    encountered immediately
úFile is closedzFile is not open for readingN)r   ÚIOErrorr   r7   Ú	bytearrayr   r   r   rD   Ú_readr   ÚEOFErrorÚextendr   ÚFLAG_BUFFEREDÚmaxr   )r   ÚsizeÚresultÚnew_dataÚ	read_sizes   &&   r   rC   ÚBufferedFile.readœ   s  € ð" �<�<ˆ<ÜÐ*Ó+Ð+Ø—‘˜dŸn™n×,Ô,ÜÐ8Ó9Ð9ØŠL˜d Qœhä˜tŸ}™}Ó-ˆFÜ!›GˆDŒMØ�IŠIœ˜V›Õ$�IØð$Ø#Ÿz™z¨$×*?Ñ*?Ó@�Hð Ò$¬#¨h«-¸1Ô*<ØØ—‘˜hÔ'Ø—’¤ X£Õ.•Ø—	’	œS ›]Õ*—	Ü˜“=Ð Ø”3�t—}‘}Ó%Ô%Ø—]‘] 5 DÐ)ˆFØ ŸM™M¨$¨%Ð0ˆDŒMØ�IŠIœ˜V›Õ$�IØˆMÜ�$—-‘-Ó  4Ô'Øœs 4§=¡=Ó1Õ1ˆIØ�{‰{˜T×/Ñ/×/Ô/Ü §¡¨yÓ9�	ð ØŸ:™: iÓ0�ð Ò ¤c¨(£m°qÔ&8ØØ�MŠM˜XÕ%�MØ�MŠMœS ›]Õ*�MØ—‘˜u Ð%ˆØŸ™ d eÐ,ˆŒØ�	Š	”S˜“[Õ �	Øˆøô9  ô $Ø#“Hð$ûô& ô  Ø’ð ús$   ÂJ, ÈK  Ê,J=Ê<J=Ë KËKc                ó  € V P                   '       d   \        R4      hV P                  V P                  ,          '       g   \        R4      hV P                  pRp V P
                  '       d�   V P                  V P                  ,          '       d^   \        V4      ^ 8”  dN   V^ ,          \        8X  d    VR,          pV P                  \        4       MV P                  \        4       RV n        Ve=   V^ 8¼  d6   \        V4      V8¼  d   W!R V n        VRV pRpEMV\        V4      ,
          pMV P                  p\        V9   g/   V P                  V P                  ,          '       d   \        V9   d   M´ V P                  V4      pVe   \        V4      ^ 8X  db   \!        4       V n        V ;P"                  \        V4      ,          un        V P                  V P$                  ,          '       d   V# \'        V4      # W%,          pV ;P(                  \        V4      ,          un        EKÍ  VP+                  \        4      pV P                  V P                  ,          '       d,   VP+                  \        4      pV^ 8¼  d   Wv8  g   V^ 8  d   TpVR8X  dS   V ;P"                  \        V4      ,          un        V P                  V P$                  ,          '       d   V# \'        V4      # V^,           pW&,          \,        8X  d+   V\        V4      8  d   W(,          \        8X  d
   V^,          pV'       d   W(R V P                  ,           V n        M	W(R V n        W&V p	VRV \        ,           p\        V P                  4      ^ 8X  d   V	\        8X  d	   RV n        MV P                  V	4       V ;P"                  \        V4      ,          un        V P                  V P$                  ,          '       d   V# \'        V4      #   \         d    Rp EL‚i ; i)aE  
Read one entire line from the file.  A trailing newline character is
kept in the string (but may be absent when a file ends with an
incomplete line).  If the size argument is present and non-negative, it
is a maximum byte count (including the trailing newline) and an
incomplete line may be returned.  An empty string is returned only when
EOF is encountered immediately.

.. note::
    Unlike stdio's ``fgets``, the returned string contains null
    characters (``'\0'``) if they occurred in the input.

:param int size: maximum length of returned string.
:returns:
    next line of the file, or an empty string if the end of the
    file has been reached.

    If the file was opened in binary (``'b'``) mode: bytes are returned
    Else: the encoding of the file is assumed to be UTF-8 and character
    strings (`str`) are returned
rJ   zFile not open for readingFT:é   NNNéÿÿÿÿ)r   rK   r   r7   r   r   ÚFLAG_UNIVERSAL_NEWLINErD   r   Ú_record_newliner   r   r   r   rM   rN   r   r   ÚFLAG_BINARYr
   r   Úfindr   )
r   rR   r3   Ú	truncatedÚnrT   ÚposÚrposÚxposÚlfs
   &&        r   r1   ÚBufferedFile.readline×   s  € ð. �<�<ˆ<ÜÐ*Ó+Ð+Ø—‘˜dŸn™n×,Ô,ÜÐ5Ó6Ð6Ø�}‰}ˆØˆ	Øà×$×$Ð$Ø—K‘K $×"=Ñ"=×=Ô=Ü˜“I ”Mð ˜•7Ô1Ô1Ø �8�DØ×(Ñ(¬Õ.à×(Ñ(¬Ô1Ø',�Ô$ð Ò  t¨q¤yÜ�t“9 Ô$à$(¨ K�D”MØ  ˜;�DØ $�IÙØœ3˜t›9Õ$‘à—M‘M�Ü Ô$Ø—‘˜d×9Ñ9×9Ô9¼gÈ¼oàð ØŸ:™: a›=�ð Ò ¤c¨(£m°qÔ&8Ü %£�”Ø—	’	œS ›YÕ&•	Ø#Ÿ{™{¨T×-=Ñ-=×=Ô=�tÐJÄ1ÀTÃ7ÐJØÕˆDØ�MŠMœS ›]Õ*�MˆMà�i‰iœÓ&ˆØ�;‰;˜×4Ñ4×4Ô4Ø—9‘9œWÓ%ˆDØ˜”	 ¤
¨c°A¬gØ�Ø�"Œ9à�IŠIœ˜T›Õ"�IØŸ;™;¨×)9Ñ)9×9Ô9�4ÐF¼qÀ»wÐFØ�Q�wˆà�IœÔ&Ø”s˜4“yÔ Ø•
Ô1Ô1à�A�IˆD÷ Ø  ˜K¨$¯-©-Õ7ˆD�Mà  ˜KˆDŒMà�dˆ^ˆØ�D�SˆzœMÕ)ˆÜ�—‘Ó !Ô#¨"´¬-ð $(ˆDÕ à× Ñ  Ô$Ø�	Š	”S˜“YÕ�	Ø—{‘{ T×%5Ñ%5×5Ô5ˆtÐB¼1¸T»7ÐBøôU ô  Ø“ð ús   Å4O7 Ï7PÐPc                óº   € . p^ p V P                  4       p\        V4      ^ 8X  d    V# VP                  V4       V\        V4      ,          pVf   KM  W18¼  g   KU   V# )av  
Read all remaining lines using `readline` and return them as a list.
If the optional ``sizehint`` argument is present, instead of reading up
to EOF, whole lines totalling approximately sizehint bytes (possibly
after rounding up to an internal buffer size) are read.

:param int sizehint: desired maximum number of bytes to read.
:returns: list of lines read from the file.
)r1   rD   Úappend)r   ÚsizehintÚlinesÚ
byte_countr3   s   &&   r   Ú	readlinesÚBufferedFile.readlines@  s`   € ð ˆØˆ
ØØ—=‘=“?ˆDÜ�4‹y˜AŒ~Øð
 ˆð	 �L‰L˜ÔØœ#˜d›)Õ#ˆJØÔ$¨:Ö+AØØˆr   c                ó   € \        R4      h)aD  
Set the file's current position, like stdio's ``fseek``.  Not all file
objects support seeking.

.. note::
    If a file is opened in append mode (``'a'`` or ``'a+'``), any seek
    operations will be undone at the next write (as the file position
    will move back to the end of the file).

:param int offset:
    position to move to within the file, relative to ``whence``.
:param int whence:
    type of movement: 0 = absolute; 1 = relative to the current
    position; 2 = relative to the end of the file.

:raises: ``IOError`` -- if the file doesn't support random access.
zFile does not support seeking.©rK   )r   ÚoffsetÚwhences   &&&r   ÚseekÚBufferedFile.seekV  s   € ô$ Ð6Ó7Ð7r   c                ó   € V P                   # )zÑ
Return the file's current position.  This may not be accurate or
useful if the underlying file doesn't support random access, or was
opened in append mode.

:returns: file position (`number <int>` of bytes).
)r   r   s   &r   ÚtellÚBufferedFile.tellj  s   € ð �y‰yÐr   c                ó”  € \        V\        4      '       d   VP                  R4      pV P                  '       d   \	        R4      hV P
                  V P                  ,          '       g   \	        R4      hV P
                  V P                  ,          '       g   V P                  V4       R# V P                  P                  V4       V P
                  V P                  ,          '       d©   VP                  \        4      pV^ 8¼  d‹   V P                  P                  4       pV\        V4      \        V4      ,
          ,          pV P                  VRV^,            4       \!        4       V n	        V P                  P                  W2^,           R 4       R# V P                  P#                  4       V P$                  8¼  d   V P'                  4        R# )a  
Write data to the file.  If write buffering is on (``bufsize`` was
specified and non-zero), some or all of the data may not actually be
written yet.  (Use `flush` or `close` to force buffered data to be
written out.)

:param data: ``str``/``bytes`` data to write
zutf-8rJ   zFile not open for writingN)Ú
isinstanceÚstrÚencoder   rK   r   r;   rP   r-   r   ÚwriteÚFLAG_LINE_BUFFEREDÚrfindr   r.   rD   r   rs   r   r*   )r   rF   Úlast_newline_posÚwbufs   &&  r   ry   ÚBufferedFile.writet  sI  € ô �dœC× Ò à—;‘;˜wÓ'ˆDØ�<�<ˆ<ÜÐ*Ó+Ð+Ø—‘˜dŸo™o×-Ô-ÜÐ5Ó6Ð6Ø—‘˜d×0Ñ0×0Ô0Ø�O‰O˜DÔ!ÙØ�‰×Ñ˜DÔ!Ø�;‰;˜×0Ñ0×0Ô0à#Ÿz™z¬-Ó8ÐØ 1Ô$Ø—}‘}×-Ñ-Ó/�Ø ¤C¨£I´°D³	Õ$9Õ9Ð Ø—‘ Ð%;Ð'7¸!Õ';Ð <Ô=Ü '£	�”Ø—‘×#Ñ# D¸AÕ)=Ð)?Ð$@ÔAÙð �=‰=×ÑÓ 4§=¡=Ô0Ø�J‰JŒLÙr   c                ó:   € V F  pV P                  V4       K  	  R# )a  
Write a sequence of strings to the file.  The sequence can be any
iterable object producing strings, typically a list of strings.  (The
name is intended to match `readlines`; `writelines` does not add line
separators.)

:param sequence: an iterable sequence of strings.
N)ry   )r   Úsequencer3   s   && r   Ú
writelinesÚBufferedFile.writelines˜  s   € ó ˆDØ�J‰J�tÖñ ár   c                ó   € V # )zg
Identical to ``iter(f)``.  This is a deprecated file interface that
predates Python iterator support.
r?   r   s   &r   Ú
xreadlinesÚBufferedFile.xreadlines¥  s	   € ð
 ˆr   c                ó   € V P                   # r!   )r   r   s   &r   ÚclosedÚBufferedFile.closed¬  s   € à�|‰|Ðr   c                ó   € \        4       h)zh
(subclass override)
Read data from the stream.  Return ``None`` or raise ``EOFError`` to
indicate EOF.
)rN   )r   rR   s   &&r   rM   ÚBufferedFile._read²  s   € ô ‹jÐr   c                ó   € \        R4      h)z1
(subclass override)
Write data into the stream.
zwrite not implementedrm   )r   rF   s   &&r   Ú_writeÚBufferedFile._writeº  s   € ô
 Ð-Ó.Ð.r   c                ó   € ^ # )a1  
(subclass override)
Return the size of the file.  This is called from within `_set_mode`
if the file is opened in append mode, so the file position can be
tracked and `seek` and `tell` will work correctly.  If the file is
a stream that can't be randomly accessed, you don't need to override
this method,
r?   r   s   &r   Ú	_get_sizeÚBufferedFile._get_sizeÁ  s   € ñ r   c                ó"  € V P                   V n        V^ 8  d   ^ pV^8X  d6   V ;P                  V P                  V P                  ,          ,          un        M‘V^8”  dO   W n        V ;P                  V P                  ,          un        V ;P                  V P                  ( ,          un        M<V^ 8X  d6   V ;P                  V P                  V P                  ,          ( ,          un        RV9   g   RV9   d$   V ;P                  V P
                  ,          un        RV9   g   RV9   d$   V ;P                  V P                  ,          un        RV9   db   V ;P                  V P                  V P                  ,          ,          un        V P                  4       V n	        V P                  ;V n
        V n        RV9   d$   V ;P                  V P                  ,          un        RV9   d-   V ;P                  V P                  ,          un        RV n        R# R# )z=
Subclasses call this method to initialize the BufferedFile.
ÚrÚ+ÚwÚaÚbÚUN)r   r   r   rP   rz   r7   r;   ÚFLAG_APPENDr�   r   r   r   r\   rZ   r   )r   ÚmodeÚbufsizes   &&&r   Ú	_set_modeÚBufferedFile._set_modeÎ  sm  € ð
 ×-Ñ-ˆŒØ�QŒ;ð ˆGØ�aŒ<ð �KŠK˜4×-Ñ-°×0GÑ0GÕGÕGŽKØ�qŒ[Ø#ŒMØ�KŠK˜4×-Ñ-Õ-�KØ�KŠK˜D×3Ñ3Ð3Õ3ŽKØ˜Œ\à�KŠK˜T×/Ñ/°$×2IÑ2IÕIÐJÕJ�Kà�4ŒK˜S Dœ[Ø�KŠK˜4Ÿ>™>Õ)�KØ�4ŒK˜S Dœ[Ø�KŠK˜4Ÿ?™?Õ*�KØ�$Œ;Ø�KŠK˜4Ÿ?™?¨T×-=Ñ-=Õ=Õ=�KØŸ™Ó)ˆDŒJØ(,¯
©
Ð2ˆDŒI˜œØ�$Œ;Ø�KŠK˜4×+Ñ+Õ+�KØ�$Œ;Ø�KŠK˜4×6Ñ6Õ6�Kð !ˆDŽMñ r   c                óz  € \        V4      p\        V4      ^ 8”  d    V P                  V4      pW#R pV P                  V P                  ,          '       d4   V ;P
                  V,          un        V P
                  ;V n        V n        K{  V ;P                  V,          un        V ;P                  V,          un        K¯  R# )r   N)Ú
memoryviewrD   rŒ   r   r˜   r   r   r   )r   Úraw_datarF   Úcounts   &&  r   r-   ÚBufferedFile._write_allö  s„   € ô ˜(Ó#ˆÜ�$‹i˜!ŒmØ—K‘K Ó%ˆEØ˜�<ˆDØ�{‰{˜T×-Ñ-×-Ô-Ø—
’
˜eÕ#•
Ø,0¯J©JÐ6�”	˜DžMà—	’	˜UÕ"•	Ø—’ Õ&—Ùr   c                ó`  € V P                   V P                  ,          '       g   R # V P                  f	   Wn        R # V P                  V8w  d6   \        V P                  \        4      '       d   V P                  V3V n        R # WP                  9  d   V ;P                  V3,          un        R # R # r!   )r   rZ   r   rv   r   )r   Únewlines   &&r   r[   ÚBufferedFile._record_newline  sv   € ð —‘˜d×9Ñ9×9Ô9ÙØ�=‰=Ò Ø#ŽMØ�]‰]˜gÔ%¬*°T·]±]ÄE×*JÒ*JØ!Ÿ]™]¨GÐ4ˆDŽMØŸM™MÔ)Ø�MŠM˜g˜ZÕ'�Mñ *r   )
r   r   r   r   r   r   r   r   r   r   r!   )r   )r’   rY   ),Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   ÚSEEK_SETÚSEEK_CURÚSEEK_ENDr7   r;   r˜   r\   rP   rz   rZ   r   r#   r'   r"   r*   r4   r8   r<   r@   rG   rC   r1   rj   rp   rs   ry   r�   r„   Úpropertyr‡   rM   rŒ   r�   r›   r-   r[   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      sß   ø‡ € ñð
 Ðà€HØ€HØ€Hà€IØ€JØ€KØ€KØ€MØÐØ!Ðòòò
òòòò"@òBòò
ô9ôvgCôRô,8ò(ò"òHòð ñó ðò
ò/ò	ô&!òP÷(ð (r   r   N)Úior   Úparamiko.commonr   r   r   r   r   Úparamiko.utilr	   r
   r   r?   r   r   Ú<module>r´      s(   ðõ$ ÷õ ÷ 3ôq(Ð(ö q(r   