ó
    Eñi„  ã                  ó.  • S SK Jr  S SKrS SKrSSKJrJr  SS jr " S S\R                  5      r " S S	\R                  5      r
\R                  " \R                  \\5        \R                  " S
\
5        \R                  " \R                  SS/5        g)é    )ÚannotationsNé   )ÚImageÚ	ImageFilec                ó$   • U R                  S5      $ )Nó   SIMPLE)Ú
startswith)Úprefixs    ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/PIL/FitsImagePlugin.pyÚ_acceptr      s   € Ø×Ñ˜YÓ'Ð'ó    c                  óN   • \ rS rSrSrSrSS jr      S	S jr    S
S jrSr	g)ÚFitsImageFileé   ÚFITSc                ó˜  • U R                   c   e0 nSnSn U R                   R                  S5      nU(       d  Sn[        U5      eUS S R                  5       nUS;   a  SnO�U(       a  U(       d  OúUS:X  al  U R                   R	                  [
        R                  " U R                   R                  5       S	-  5      S	-  5        U(       d  U R                  U5      u  p7nSnMÍ  U(       a  MÖ  USS  R                  S
5      S   R                  5       n	U	R                  S5      (       a  U	SS  R                  5       n	U(       d#  [        U5      (       a  U	S:w  a  Sn[        U5      eX‘U'   GMT  U(       d  Sn[        U5      eWU R                   R                  5       S-
  -  n[        R                  " USU R                   -   UW5      /U l        g )NFÚ TéP   zTruncated FITS fileé   )r   ó   XTENSIONs   ENDi@  ó   /r   ó   =r   ó   TzNot a FITS filezNo image data©r   r   )ÚfpÚreadÚOSErrorÚstripÚseekÚmathÚceilÚtellÚ_parse_headersÚsplitr	   r   ÚSyntaxErrorÚ
ValueErrorr   Ú_TileÚsizeÚtile)
ÚselfÚheadersÚheader_in_progressÚdecoder_nameÚheaderÚmsgÚkeywordÚoffsetÚargsÚvalues
             r   Ú_openÚFitsImageFile._open   s˜  € Ø�w‰wÑ"Ð"Ð"à&(ˆØ"ÐØˆØØ—W‘W—\‘\ "Ó%ˆFÞØ+�Ü˜c“lÐ"Ø˜R˜a�j×&Ñ&Ó(ˆGØÐ2Ó2Ø%)Ñ"ÞÖ!3àØ˜FÓ"à—‘—‘œTŸYšY t§w¡w§|¡|£~¸Ñ'<Ó=ÀÑDÔEÞ#Ø15×1DÑ1DÀWÓ1MÑ.�L¨$à%*Ð"Ùæáà˜1˜2�J×$Ñ$ TÓ*¨1Ñ-×3Ñ3Ó5ˆEØ×Ñ ×%Ñ%Ø˜a˜b˜	Ÿ™Ó)�Þ¤G¨G×$4Ñ$4¸À»Ø'�Ü! #Ó&Ð&Ø$�GÑò= ö@ Ø!ˆCÜ˜S“/Ð!à�$—'‘'—,‘,“. 2Ñ%Ñ%ˆÜ—_’_ \°6¸D¿I¹IÑ3EÀvÈtÓTÐUˆ�	r   c                ó    • [        XS-      5      nUS:X  a  g US:X  a  S[        XS-      5      4$ [        XS-      5      [        XS-      5      4$ )Ns   NAXISr   r   s   NAXIS1s   NAXIS2)Úint)r*   r+   r
   Únaxiss       r   Ú	_get_sizeÚFitsImageFile._get_sizeH   sd   € ô �G XÑ-Ñ.Ó/ˆØ�A‹:Øà�A‹:Ø”c˜'¨9Ñ"4Ñ5Ó6Ð6Ð6ä�w¨	Ñ1Ñ2Ó3´S¸È)ÑASÑ9TÓ5UÐUÐUr   c                óô  • SnSnSnUR                  S5      S:X  a[  UR                  S5      S:X  aF  US   S	:X  a=  U R                  X5      =(       d    S
n[        US   5      nUS   US   -  US-  -  nSnSnU R                  X5      nU(       d  gXpl        [        XS-      5      nUS:X  a  SU l        O)US:X  a  SU l        OUS:X  a  SU l        OUS;   a  SU l        US:X  a  U R
                  SS4nOU4nX4U4$ )Nr   Úrawr   r   s
   'BINTABLE's   ZIMAGEr   s   ZCMPTYPEs
   'GZIP_1  'r   s   BITPIXr   r   ó   ZÚ	fits_gzip)r   r   © ÚLé   zI;16é    ÚI)iàÿÿÿiÀÿÿÿÚFéÿÿÿÿ)Úgetr9   r7   Ú_sizeÚ_modeÚmode)	r*   r+   r
   r-   r1   Úno_prefix_sizeÚnumber_of_bitsr(   r2   s	            r   r#   ÚFitsImageFile._parse_headersT   s!  € ð ˆØˆØˆà�K‰K˜Ó$¨Ó5Ø—‘˜IÓ&¨$Ó.Ø˜Ñ$¨Ó5à!Ÿ^™^¨GÓ<×FÀˆNÜ  ¨Ñ!3Ó4ˆNØ# AÑ&¨¸Ñ):Ñ:¸nÐPQÑ>QÑRˆFàˆFØ&ˆLà�~‰~˜gÓ.ˆÞØàŒ
ä˜W¨iÑ%7Ñ8Ó9ˆØ˜QÓØˆD�JØ˜rÓ!ØˆD�JØ˜rÓ!ØˆD�JØ˜zÓ)ØˆDŒJð ˜5Ó Ø—I‘I˜q "Ð%‰Dà"Ð$ˆDØ TÐ)Ð)r   )rH   rG   r)   N)ÚreturnÚNone)r+   údict[bytes, bytes]r
   ÚbytesrM   ztuple[int, int] | None)r+   rO   rM   z&tuple[str, int, tuple[str | int, ...]])
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚformatÚformat_descriptionr4   r9   r#   Ú__static_attributes__r?   r   r   r   r      sJ   † Ø€FØÐô+VðZ
VØ)ð
VØ38ð
Và	ô
Vð'*Ø)ð'*à	/÷'*r   r   c                  ó"   • \ rS rSrSrSS jrSrg)ÚFitsGzipDecoderé~   Tc           
     óÎ  • U R                   c   e[        R                  " U R                   5       nUR                  U R                  R
                  U R                  R                  -  S-  5      n/ nSn[        U R                  S   S-  S5      n[        U R                  R                  5       HY  n[        5       n[        U R                  R
                  5       H  n	XƒUSU-
  -   US-    -  nUS-  nM     UR                  U5        M[     S S S 5        U R                  [        WS S S2    VV
s/ s H  oˆ  H  oªPM     M     sn
n5      5        g! , (       d  f       NJ= fs  sn
nf )Né   r   r   rE   )rE   r   )ÚfdÚgzipÚopenr   ÚstateÚxsizeÚysizeÚminr2   ÚrangeÚ	bytearrayÚappendÚ
set_as_rawrP   )r*   Úbufferr   r3   Úrowsr1   rK   ÚyÚrowÚxÚpixels              r   ÚdecodeÚFitsGzipDecoder.decode�   s(  € Ø�w‰wÑ"Ð"Ð"Ü�YŠY�t—w‘wÔ 2Ø—G‘G˜DŸJ™J×,Ñ,¨t¯z©z×/?Ñ/?Ñ?À!ÑCÓDˆEàˆDØˆFÜ  §¡¨1¡°Ñ!2°AÓ6ˆNÜ˜4Ÿ:™:×+Ñ+Ö,�Ü“k�Ü˜tŸz™z×/Ñ/Ö0�AØ ¨1¨~Ñ+=Ñ!>ÀÈ!ÁÐLÑL�CØ˜a‘K’Fñ 1ð —‘˜CÖ ñ -÷  ð 	�‰œ°±T°r°T²
ÔL²
¨Ë¸ušuÉ™u±
ÒLÓMÔNØ÷  Õüó Ms   °CEÄ/E!Å
Er?   N)rh   z$bytes | Image.SupportsArrayInterfacerM   ztuple[int, int])rQ   rR   rS   rT   Ú	_pulls_fdrn   rW   r?   r   r   rY   rY   ~   s   † Ø€I÷r   rY   r>   z.fitz.fits)r
   rP   rM   Úbool)Ú
__future__r   r^   r    r   r   r   r   r   Ú	PyDecoderrY   Úregister_openrU   Úregister_decoderÚregister_extensionsr?   r   r   Ú<module>rw      s„   ðõ #ã Û ç ô(ôd*�I×'Ñ'ô d*ôN�i×)Ñ)ô ð0 × Ò �M×(Ñ(¨-¸Ô AØ × Ò �{ OÔ 4à × Ò ˜-×.Ñ.°¸Ð0AÕ Br   