ó
    EñiW(  ã                  óf  • S SK Jr  S SKrS SKrS SKrS SKJrJrJr  SSK	J
r
Jr  SSKJr  SrSS jr/ S	QrS S
 jrS!S jr " S S\R                  5      rS"S#S jjrS$S jrS%S jrS%S jr\
R0                  " \R2                  \5        \
R4                  " \R2                  \5        \S:X  Gau  \" \R:                  5      S:  a  \" S5        \R>                  " 5         \R:                  S   r \" \ 5      (       d  \" S5        \R>                  " 5         \
RB                  " \ 5       r"\" S\" 35        \" S\"R2                   35        \" S\"RF                   35        \" S\"RH                   35        \" SSS9  \" \"RK                  5       5        \" \R:                  5      S:”  ax  \R:                  S   r&\"RO                  \
RP                  RR                  5      r*\" S\RV                  RY                  \ 5       S\& S35        \*R[                  \&\R2                  5        SSS5        gg! , (       d  f       g= f)&é    )ÚannotationsN)ÚIOÚAnyÚcasté   )ÚImageÚ	ImageFile)ÚDeferredErrorFc                óZ   •  [        U 5      nX-
  S:X  a  gg! [        [        4 a     gf = f)Nr   r   )ÚintÚ
ValueErrorÚOverflowError)ÚfÚis     ÚR/home/mande/repo/quber/.venv/lib/python3.13/site-packages/PIL/SpiderImagePlugin.pyÚisIntr   0   s6   € ðÜ�‹FˆØ‰5�A‹:ØàøÜœÐ&ó Ùðús   ‚ —*©*)r   é   iõÿÿÿiôÿÿÿiëÿÿÿiêÿÿÿc                óâ   • SU -   nS H  n[        X   5      (       a  M    g   [        US   5      nU[        ;  a  g[        US   5      n[        US   5      n[        US   5      nXTU-  :w  a  gU$ )N©éc   )r   é   é   é   é   é   é   r   r   r   r   r   )r   r   Úiforms)ÚtÚhr   ÚiformÚlabrecÚlabbytÚlenbyts          r   ÚisSpiderHeaderr$   D   sv   € Ø�‰	€Aã&ˆÜ�Q‘T�{‹{Ùñ 'ô ��!‘‹I€EØ”FÓØä��2‘‹Z€FÜ��2‘‹Z€FÜ��2‘‹Z€FØ˜6‘/Ó"Øà€Mó    c                ó  • [        U S5       nUR                  S5      nS S S 5        [        R                  " SW5      n[	        U5      nUS:X  a"  [        R                  " SU5      n[	        U5      nU$ ! , (       d  f       NZ= f)NÚrbé\   z>23fr   z<23f)ÚopenÚreadÚstructÚunpackr$   )ÚfilenameÚfpr   r   Úhdrlens        r   ÚisSpiderImager0   X   si   € Ü	ˆh˜Ô	 Ø�G‰G�B‹Kˆ÷ 
ä�Š�f˜aÓ €AÜ˜AÓ€FØ�ƒ{Ü�MŠM˜& !Ó$ˆÜ Ó"ˆØ€M÷ 
Õ	ús   �A3Á3
Bc                  ó˜   • \ rS rSrSrSrSrSS jr\SS j5       r	\SS j5       r
SS jrSS	 jrSSS
 jjr\(       a  SSKJr  SS jrSrg)ÚSpiderImageFiler   ÚSPIDERzSpider 2D imageFc                óî  • SnU R                   c   eU R                   R                  U5      n SU l        [        R                  " SU5      n[        U5      nUS:X  a)  SU l        [        R                  " SU5      n[        U5      nUS:X  a  Sn[        U5      e SU-   n[        US   5      nUS:w  a  S	n[        U5      e[        US
   5      [        US   5      4U l	        [        US   5      U l
        [        US   5      U l        U R                  S:X  a  U R                  S:X  a
  Un	SU l        O®U R                  S:”  a[  U R                  S:X  aK  [        US
   5      [        US   5      -  S-  U l        X@l        [        US   5      U l        US-  n	SU l        OCU R                  S:X  a&  U R                  S:”  a  X@R                  -   n	SU l
        OSn[        U5      eU R                  (       a  SU l        OSU l        SU l        [$        R&                  " SSU R(                  -   X�R                   5      /U l        U R                   U l        g ! [        R                   a  nSn[        U5      UeS nAff = f)Nél   r   z>27fr   z<27fznot a valid Spider filer   r   znot a Spider 2D imager   r   é   é   é   é   z inconsistent stack header valueszF;32BFzF;32FÚFÚraw©r   r   )r.   r*   Ú	bigendianr+   r,   r$   ÚSyntaxErrorÚerrorr   Ú_sizeÚistackÚ	imgnumberÚ_nimagesÚimgbytesr/   Ú	stkoffsetÚrawmodeÚ_moder	   Ú_TileÚsizeÚtileÚ_fp)
ÚselfÚnr   r   r/   ÚmsgÚer   r    Úoffsets
             r   Ú_openÚSpiderImageFile._openh   s'  € àˆØ�w‰wÑ"Ð"Ð"Ø�G‰G�L‰L˜‹Oˆð	*ØˆDŒNÜ—’˜f aÓ(ˆAÜ# AÓ&ˆFØ˜‹{Ø!"�”Ü—M’M &¨!Ó,�Ü'¨Ó*�Ø˜‹{Ø/�Ü! #Ó&Ð&ð ð �A‰IˆÜ�A�a‘D“	ˆØ�A‹:Ø)ˆCÜ˜cÓ"Ð"ä˜˜2™“Z¤ Q q¡T£Ð*ˆŒ
Ü˜!˜B™%“jˆŒÜ˜Q˜r™U›ˆŒà�;‰;˜!Ó §¡°!Ó 3àˆFØˆD�MØ�[‰[˜1‹_ §¡°1Ó!4ä  "¡›J¬¨Q¨q©T«Ñ2°QÑ6ˆDŒMØ ŒKÜ  "¡›JˆDŒMà˜a‘ZˆFØˆD�NØ�[‰[˜AÓ $§.¡.°1Ó"4àŸn™nÑ,ˆFØˆD�Kà4ˆCÜ˜cÓ"Ð"à�>�>Ø#ˆD�Là"ˆDŒLØˆŒ
ä—_’_ U¨F°T·Y±YÑ,>ÀÏÉÓUÐVˆŒ	Ø—7‘7ˆ�øôS �|‰|ó 	*Ø+ˆCÜ˜cÓ"¨Ð)ûð	*ús   ®A+I ÉI4É!I/É/I4c                ó   • U R                   $ ©N©rC   ©rL   s    r   Ún_framesÚSpiderImageFile.n_frames¤   s   € à�}‰}Ðr%   c                ó    • U R                   S:„  $ ©Nr   rU   rV   s    r   Úis_animatedÚSpiderImageFile.is_animated¨   s   € à�}‰}˜qÑ Ð r%   c                óB   • U R                   S:  a  gU R                   S-
  $ )Nr   r   )rB   rV   s    r   ÚtellÚSpiderImageFile.tell­   s    € Ø�>‰>˜AÓØà—>‘> AÑ%Ð%r%   c                ó¼  • U R                   S:X  a  Sn[        U5      eU R                  U5      (       d  g [        U R                  [
        5      (       a  U R                  R                  eU R                  XR                  U R                  -   -  -   U l	        U R                  U l
        U R                  R                  U R                  5        U R                  5         g )Nr   z#attempt to seek in a non-stack file)rA   ÚEOFErrorÚ_seek_checkÚ
isinstancerK   r
   Úexr/   rD   rE   r.   ÚseekrQ   )rL   ÚframerN   s      r   re   ÚSpiderImageFile.seek³   s˜   € Ø�;‰;˜!ÓØ7ˆCÜ˜3“-ÐØ×Ñ ×&Ñ&ØÜ�d—h‘h¤×.Ñ.Ø—(‘(—+‘+ÐØŸ™ u·±¸d¿m¹mÑ0KÑ'LÑLˆŒØ—(‘(ˆŒØ�‰�‰�T—^‘^Ô$Ø�
‰
�r%   c                ó
  ^^• U R                  5       n[        US   [        5      (       d   e[        [        [        [        4   U5      u  p4SmXC:w  a  XU-
  -  mT* U-  mU R                  UU4S j5      R                  S5      $ )Nr   r   c                ó   >• U T-  T-   $ rT   © )r   ÚbÚms    €€r   Ú<lambda>Ú.SpiderImageFile.convert2byte.<locals>.<lambda>É   s   ø€  A¨¡E¨A¢Ir%   ÚL)Ú
getextremarc   Úfloatr   ÚtupleÚpointÚconvert)rL   ÚdepthÚextremaÚminimumÚmaximumrk   rl   s        @@r   Úconvert2byteÚSpiderImageFile.convert2byteÁ   s|   ù€ Ø—/‘/Ó#ˆÜ˜' !™*¤e×,Ñ,Ð,Ð,Ü¤¤e¬U lÑ 3°WÓ=ÑˆØˆØÓØ 7Ñ*Ñ+ˆAØˆB�‰LˆØ�z‰zÕ-Ó.×6Ñ6°sÓ;Ð;r%   r   ©ÚImageTkc                óJ   • SSK Jn  UR                  U R                  5       SS9$ )Nr   r{   é   )Úpalette)Ú r|   Ú
PhotoImagery   )rL   r|   s     r   ÚtkPhotoImageÚSpiderImageFile.tkPhotoImageÏ   s$   € Ýà×!Ñ! $×"3Ñ"3Ó"5¸sÐ!ÐCÐCr%   )rK   rG   rC   r@   r=   r.   r/   rD   rB   rA   rF   rE   rJ   N)ÚreturnÚNone)r„   r   )r„   Úbool)rf   r   r„   r…   )éÿ   )ru   r   r„   úImage.Image)r„   zImageTk.PhotoImage)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingrQ   ÚpropertyrW   r[   r^   re   ry   ÚTYPE_CHECKINGr€   r|   r‚   Ú__static_attributes__rj   r%   r   r2   r2   c   s^   † Ø€FØ*ÐØ(-Ð%ô:ðx óó ðð ó!ó ð!ô&ôö<ö Ý÷Dr%   r2   c                óø  • U b  [        U 5      S:  a  g/ nU  Hž  n[        R                  R                  U5      (       d  [	        SU 35        M7   [
        R                  " U5       n[        U[        5      (       d   eUR                  5       nSSS5        UWR                  S'   UR                  U5        M      U$ ! , (       d  f       N4= f! [         a"    [        U5      (       d  [	        U S35         Mà  f = f)zJcreate a list of :py:class:`~PIL.Image.Image` objects for use in a montageNr   zunable to find z is not a Spider image filer-   )ÚlenÚosÚpathÚexistsÚprintr   r)   rc   r2   ry   Ú	Exceptionr0   ÚinfoÚappend)ÚfilelistÚ	byte_imgsÚimgÚimÚbyte_ims        r   ÚloadImageSeriesr¡   Ú   sÜ   € àÑœ3˜x›=¨1Ó,Øà€IÛˆÜ�w‰w�~‰~˜c×"Ñ"Ü�O C 5Ð)Ô*Ùð	Ü—’˜C” BÜ! "¤o×6Ñ6Ð6Ð6ØŸ/™/Ó+�÷ !ð $'ˆ�‰�ZÑ Ø×Ñ˜Ö!ñ ð Ð÷ !•ûô ó 	Ü  ×%Ñ%Ü˜˜Ð8Ð9Ô:Úð	ús0   ÁCÁ&(B<ÂCÂ<
C
	ÃCÃ
CÃ(C9Ã8C9c                óö  • U R                   u  p[        SU5      S-  n[        SU-  5      nSU-  S:w  a  US-  nXC-  n[        US-  5      nUS:  a  / $ S/U-  nSUS'   [        U5      US'   [        U5      US	'   SUS
'   [        U5      US'   [        U5      US'   [        U5      US'   [        U5      US'   USS  nUR	                  S5        U Vs/ s H  n[
        R                  " SU5      PM     sn$ s  snf )Nr   r8   i   r   r   g        g      ð?r   r   r   r   r   r   r   )rI   Úmaxr   rq   r›   r+   Úpack)	rŸ   ÚnsamÚnrowr#   r!   r"   ÚnvaluesÚhdrÚvs	            r   ÚmakeSpiderHeaderrª   õ   s  € Ø—‘�J€DÜ��D‹\˜AÑ€FÜ�˜‘Ó€FØˆf�}˜ÓØ�!‰ˆØ‰_€FÜ�&˜1‘*‹o€GØ�ƒ|Øˆ	àˆ%�'‰/€Cð €Cˆ�FÜ�4‹[€Cˆ�FÜ�4‹[€Cˆ�FØ€Cˆ�FÜ�D‹k€Cˆ�GÜ�F‹m€Cˆ�GÜ�F‹m€Cˆ�GÜ�F‹m€Cˆ�Gð ˆaˆbˆ'€CØ‡J�Jˆs„Oá),Ó-ª AŒF�KŠK˜˜QÖ©Ñ-Ð-ùÒ-s   Ã!C6c           
     ó2  • U R                   S:w  a  U R                  S5      n [        U 5      n[        U5      S:  a  Sn[	        U5      eUR                  U5        Sn[        R                  " X[        R                  " SSU R                  -   SU5      /5        g )Nr:   r~   zError creating Spider headerzF;32NFr;   r<   r   )
Úmodert   rª   r”   ÚOSErrorÚ
writelinesr	   Ú_saverH   rI   )rŸ   r.   r-   r¨   rN   rF   s         r   r¯   r¯     sz   € Ø	‡w�w�#ƒ~Ø�Z‰Z˜‹_ˆä
˜2Ó
€CÜ
ˆ3ƒx�#ƒ~Ø,ˆÜ�c‹lÐð ‡M�M�#Ôà€GÜ‡O‚O�BœYŸ_š_¨U°F¸R¿W¹WÑ4DÀaÈÓQÐRÕSr%   c                ó  • [         R                  R                  U5      S   =n(       aL  [        U[        5      (       a  UR                  5       OUn[        R                  " [        R                  U5        [        XU5        g rZ   )r•   r–   Úsplitextrc   ÚbytesÚdecoder   Úregister_extensionr2   r�   r¯   )rŸ   r.   r-   Úfilename_extÚexts        r   Ú_save_spiderr·   #  s]   € ä—w‘w×'Ñ'¨Ó1°!Ñ4Ð4€|Õ4Ü'1°,Ä×'FÑ'Fˆl×!Ñ!Ô#ÈLˆÜ× Ò ¤×!7Ñ!7¸Ô=Ü	ˆ"�(Õr%   Ú__main__r   z7Syntax: python3 SpiderImagePlugin.py [infile] [outfile]z$input image must be in Spider formatzimage: zformat: zsize: zmode: z
max, min: Ú )Úendzsaving a flipped version of z as )r   r   r„   r   )r   ztuple[float, ...]r„   r   )r-   Ústrr„   r   rT   )rœ   zlist[str] | Noner„   zlist[Image.Image] | None)rŸ   rˆ   r„   zlist[bytes])rŸ   rˆ   r.   z	IO[bytes]r-   zstr | bytesr„   r…   ).Ú
__future__r   r•   r+   ÚsysÚtypingr   r   r   r€   r   r	   Ú_utilr
   r‘   r   r   r$   r0   r2   r¡   rª   r¯   r·   Úregister_openr�   Úregister_saver‰   r”   Úargvr˜   Úexitr-   r)   rŸ   rI   r¬   rp   ÚoutfileÚ	transposeÚ	TransposeÚFLIP_LEFT_RIGHTÚtransposed_imr–   ÚbasenameÚsaverj   r%   r   Ú<module>rË      sì  ðõF #ã 	Û Û 
ß  Ñ  ç Ý  à€ôò 
$€ôô(ôoD�i×)Ñ)ô oDönô6.ô<Tô ð × Ò �O×*Ñ*¨OÔ <Ø × Ò �O×*Ñ*¨LÔ 9àˆzÔÙ
ˆ3�8‰8ƒ}�qÓÙÐGÔHØ�ŠŒ
à�x‰x˜‰{€HÙ˜×"Ñ"ÙÐ4Ô5Ø�ŠŒ
à	�Š�HÔ	 Ù�˜�tˆnÔÙ�˜Ÿ™˜Ð$Ô%Ù��r—w‘w�iÐ Ô!Ù��r—w‘w�iÐ Ô!Ùˆl Ò$Ùˆb�m‰m‹oÔáˆs�x‰x‹=˜1ÓØ—h‘h˜q‘kˆGð ŸL™L¨¯©×)HÑ)HÓIˆMÙØ.¨r¯w©w×/?Ñ/?ÀÓ/IÐ.Jð KØ�Y˜að!ôð ×Ñ˜w¨×(>Ñ(>Ô?÷# 
Ð	ð ÷ 
Õ	ús   Ä"C6H"È"
H0