ó
    F\h1  ã                   ó„   • S r SSKrSSKr\R                  r " S S\R
                  5      r " S S\R                  5      rg)z7Internal classes used by the gzip, lzma and bz2 modulesé    Nc                   ó0   • \ rS rSrSrS rS rS rS rSr	g)	Ú
BaseStreamé	   zMode-checking helper functions.c                 ó<   • U R                   (       a  [        S5      eg )NzI/O operation on closed file)ÚclosedÚ
ValueError©Úselfs    Ú#/usr/lib/python3.13/_compression.pyÚ_check_not_closedÚBaseStream._check_not_closed   s   € Ø�;�;ÜÐ;Ó<Ð<ð ó    c                 óZ   • U R                  5       (       d  [        R                  " S5      eg )NzFile not open for reading)ÚreadableÚioÚUnsupportedOperationr	   s    r   Ú_check_can_readÚBaseStream._check_can_read   ó$   € Ø�}‰}�‰Ü×)Ò)Ð*EÓFÐFð r   c                 óZ   • U R                  5       (       d  [        R                  " S5      eg )NzFile not open for writing)Úwritabler   r   r	   s    r   Ú_check_can_writeÚBaseStream._check_can_write   r   r   c                 ó°   • U R                  5       (       d  [        R                  " S5      eU R                  5       (       d  [        R                  " S5      eg )Nz3Seeking is only supported on files open for readingz3The underlying file object does not support seeking)r   r   r   Úseekabler	   s    r   Ú_check_can_seekÚBaseStream._check_can_seek   sS   € Ø�}‰}�‰Ü×)Ò)ð +Fó Gð Gà�}‰}�‰Ü×)Ò)ð +Eó Fð Fð r   © N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r   Ú__static_attributes__r   r   r   r   r   	   s   † Ù)ò=òGòGõFr   r   c                   ó„   ^ • \ rS rSrSrS rSS jrU 4S jrS rS r	SS jr
S	 rS
 r\R                  4S jrS rSrU =r$ )ÚDecompressReaderé!   z5Adapts the decompressor API to a RawIOBase reader APIc                 ó   • g)NTr   r	   s    r   r   ÚDecompressReader.readable$   s   € Ør   c                 ó    • Xl         SU l        SU l        SU l        X l        X@l        U R                  " S0 U R
                  D6U l        X0l        g )NFr   éÿÿÿÿr   )Ú_fpÚ_eofÚ_posÚ_sizeÚ_decomp_factoryÚ_decomp_argsÚ_decompressorÚ_trailing_error)r
   ÚfpÚdecomp_factoryÚtrailing_errorÚdecomp_argss        r   Ú__init__ÚDecompressReader.__init__'   sP   € ØŒØˆŒ	ØˆŒ	ð ˆŒ
ð  .ÔØ'ÔØ!×1Ò1ÑF°D×4EÑ4EÑFˆÔð  .Õr   c                 ó.   >• S U l         [        TU ]	  5       $ ©N)r2   ÚsuperÚclose)r
   Ú	__class__s    €r   r=   ÚDecompressReader.close;   s   ø€ Ø!ˆÔÜ‰w‰}‹Ðr   c                 ó6   • U R                   R                  5       $ r;   )r,   r   r	   s    r   r   ÚDecompressReader.seekable?   s   € Ø�x‰x× Ñ Ó"Ð"r   c                 ó  • [        U5       o"R                  S5       nU R                  [        U5      5      nXCS [        U5      & S S S 5        S S S 5        [        W5      $ ! , (       d  f       N!= f! , (       d  f       N*= f)NÚB)Ú
memoryviewÚcastÚreadÚlen)r
   ÚbÚviewÚ	byte_viewÚdatas        r   ÚreadintoÚDecompressReader.readintoB   sU   € Ü˜Œ]˜d§I¡I¨c¤N°iØ—9‘9œS ›^Ó,ˆDØ$(�j”s˜4“yÐ!÷ %3�]ô �4‹yÐ÷ %3¥Nú�]�]ús"   ŒA1�(A ÁA1Á 
A.	Á*A1Á1
A?c                 ó8  • US:  a  U R                  5       $ U(       a  U R                  (       a  gS n U R                  R                  (       a‚  U R                  R                  =(       d    U R
                  R                  [        5      nU(       d  O³U R                  " S0 U R                  D6U l         U R                  R                  X15      nOjU R                  R                  (       a2  U R
                  R                  [        5      nU(       d  [        S5      eOSnU R                  R                  X15      nU(       a  OGM  U(       d  SU l        U R                  U l        gU =R                  [!        U5      -  sl        U$ ! U R                   a     MS  f = f)Nr   r   TzACompressed file ended before the end-of-stream marker was reachedr   )Úreadallr-   r2   ÚeofÚunused_datar,   rF   ÚBUFFER_SIZEr0   r1   Ú
decompressr3   Úneeds_inputÚEOFErrorr.   r/   rG   )r
   ÚsizerK   Úrawblocks       r   rF   ÚDecompressReader.readH   sX  € Ø�!‹8Ø—<‘<“>Ð!æ�t—y—yØØˆð Ø×!Ñ!×%×%Ø ×.Ñ.×:Ñ:÷ 7Ø ŸH™HŸM™M¬+Ó6ð æØà%)×%9Ò%9ñ &)Ø×'Ñ'ñ&)�Ô"ðØ×-Ñ-×8Ñ8¸ÓH‘Dð
 ×%Ñ%×1×1Ø#Ÿx™xŸ}™}¬[Ó9�HÞ#Ü&ð (Jó Kð Kð $ð  #�HØ×)Ñ)×4Ñ4°XÓD�ÞØò1 ö2 ØˆDŒIØŸ™ˆDŒJØØ�	Š	”S˜“YÑ�	Øˆøð' ×+Ñ+ó âðús   Â4F ÆFÆFc                 óæ   • / nU R                  [        R                  5      =n(       a9  UR                  U5        U R                  [        R                  5      =n(       a  M9  SR	                  U5      $ )Nr   )rF   ÚsysÚmaxsizeÚappendÚjoin)r
   ÚchunksrK   s      r   rO   ÚDecompressReader.readallq   sX   € Øˆð —i‘i¤§¡Ó,Ð,ˆdÕ,Ø�M‰M˜$Ôð —i‘i¤§¡Ó,Ð,ˆd×,ð �x‰x˜ÓÐr   c                 ó˜   • U R                   R                  S5        SU l        SU l        U R                  " S0 U R
                  D6U l        g )Nr   Fr   )r,   Úseekr-   r.   r0   r1   r2   r	   s    r   Ú_rewindÚDecompressReader._rewind|   s<   € Ø�‰�‰�aÔØˆŒ	ØˆŒ	Ø!×1Ò1ÑF°D×4EÑ4EÑFˆÕr   c                 óÌ  • U[         R                  :X  a  O½U[         R                  :X  a  U R                  U-   nO™U[         R                  :X  ak  U R
                  S:  aK  U R                  [         R                  5      (       a'   U R                  [         R                  5      (       a  M'  U R
                  U-   nO[        SR                  U5      5      eXR                  :  a  U R                  5         OXR                  -  nUS:”  aS  U R                  [        [         R                  U5      5      nU(       d   U R                  $ U[        U5      -  nUS:”  a  MS  U R                  $ )Nr   zInvalid value for whence: {})r   ÚSEEK_SETÚSEEK_CURr.   ÚSEEK_ENDr/   rF   ÚDEFAULT_BUFFER_SIZEr   Úformatrb   ÚminrG   )r
   ÚoffsetÚwhencerK   s       r   ra   ÚDecompressReader.seek‚   s  € à”R—[‘[Ó ØØ”r—{‘{Ó"Ø—Y‘Y Ñ'‰FØ”r—{‘{Ó"à�z‰z˜A‹~Ø—i‘i¤× 6Ñ 6×7Ñ7Øð —i‘i¤× 6Ñ 6×7Ó7à—Z‘Z &Ñ(‰FäÐ;×BÑBÀ6ÓJÓKÐKð —I‘IÓØ�L‰L�Nà—i‘iÑˆFð �q‹jØ—9‘9œS¤×!7Ñ!7¸Ó@ÓAˆDÞØð �y‰yÐð ”c˜$“iÑˆFð	 �q�jð �y‰yÐr   c                 ó   • U R                   $ )z!Return the current file position.)r.   r	   s    r   ÚtellÚDecompressReader.tell    s   € à�y‰yÐr   )r1   r0   r2   r-   r,   r.   r/   r3   )r   )r+   )r   r    r!   r"   r#   r   r8   r=   r   rL   rF   rO   rb   r   re   ra   ro   r$   Ú__classcell__)r>   s   @r   r&   r&   !   sH   ø† Ù?òô.õ(ò#òô'òR òGð #%§+¡+ô ÷<ð r   r&   )	r#   r   rZ   rh   rR   ÚBufferedIOBaser   Ú	RawIOBaser&   r   r   r   Ú<module>rt      s?   ðÙ =ã 	Û 
à×$Ñ$€ôF�×"Ñ"ô Fô0A�r—|‘|õ Ar   