+
     iM  c                  sJ   ^ RI Ht ^ RIt^ RIHtHt ^RIHtHtH	t	 ^RI
Ht ^RI
Ht ^RI
Ht ^RI
Ht ^R	I
Ht ^R"^R#^R$^R%^R&^ R'/tRtR R ltR R lt ! R R]P                  4      t ! R R]P2                  4      t ! R R]4      tRR(RR)R
R*RR+RR,/tR R ltR-R R llt]P>                  ! ]P@                  ]]4       ]PB                  ! ]P@                  ]4       ]PD                  ! ]P@                  R4       ]PF                  ! ]P@                  R4       ]PH                  ! R ]4       ]P>                  ! ]P@                  ]]4       ]PB                  ! ]P@                  ]4       ]PD                  ! ]P@                  R!4       ]PF                  ! ]P@                  R4       R# ).    )annotationsN)IOAny)Image	ImageFileImagePalette)i16le)i32leo8)o16le)o32lePRGBFc                    V ^8  d   QhRRRR/#    prefixbytesreturnbool format   "9/usr/lib64/python3.14/site-packages/PIL/BmpImagePlugin.py__annotate__r   6   s     $ $E $d $    c                s$    V P                  R 4      # )   BM)Z
startswithr      &r   _acceptr    6   s    U##r   c               r   r   r   r   r   r   r   r   :   s     9 9 9$ 9r   c                s    \        V 4      R9   # )   )r!   (   4   8   @   l   |   )i32r   r   r   _dib_acceptr)   :   s    v;888r   c                  s    ] tR t^AtRtRtRtR^ R^R^R^R^R	^/t]P                  4        F  w  t	t
]
]! 4       ]	&   K  	  RR
 R lltR R ltRtR# )BmpImageFilez0Image plugin for the Windows Bitmap format (BMP)Windows BitmapZBMPRAWRLE8RLE4	BITFIELDSZJPEGZPNGc               s$    V ^8  d   QhRRRRRR/# )r   headerintoffsetr   Noner   r   r   r   r   BmpImageFile.__annotate__M   s&     h
 h
c h
s h
4 h
r   c                sp   V P                   P                  V P                   P                  rCV'       d	   V! V4       R\        V! ^4      4      RR3/p\        P
                  ! V P                   VR,          ^,
          4      pVR,          ^8X  dZ   \        V^ 4      VR&   \        V^4      VR&   \        V^4      VR&   \        V^4      VR&   V P                  R,          VR&   ^VR	&   EM-VR,          R49   Ed   V^,          ^8H  VR
&   VR
,          '       d   ^MR3VR&   \        V^ 4      VR&   VR
,          '       g   \        V^4      MR5\        V^4      ,
          VR&   \        V^4      VR&   \        V^
4      VR&   \        V^4      VR&   \        V^4      VR&   \        V^4      \        V^4      3VR&   \        V^4      VR&   ^VR	&   \        ;QJ d    . R VR,           4       F  NK  	  5M! R VR,           4       4      V P                  R&   VR,          V P                  R,          8X  d   . R6Op\        V4      ^08  dY   \        V4      ^48  d   VP                  R4       M^ VR&   \        V4       F!  w  r\        V^$V^,          ,           4      WY&   K#  	  M!^ VR&   V F  p	\        V! ^4      4      WY&   K  	  VR,          VR,          VR,          3VR&   VR,          VR,          VR,          VR,          3VR&   MRVR,           R2p
\        V
4      hVR,          VR,          3V n        VP                  R^ 4      '       d
   VR,          M^VR,          ,          VR&   V^VR,          ,           8X  d&   VR,          ^8:  d   V^VR,          ,          ,          p\         P                  VR,          R74      w  V n        pV P$                  '       g   RVR,           R2p
\        V
4      hRpVR,          V P                  R,          8X  d   ^ . R8O^R9.^R:R;./pR<RR=RR>RR?RR@RRAR RBR!RCR RDR"RER#RFR$/pVR,          V9   d   VR,          ^ 8X  dO   VR,          WR,          ,          9   d4   WR,          VR,          3,          pR%V9   d   RMV P$                  V n        MVR,          RG9   d5   VR,          WR,          ,          9   d   WR,          VR,          3,          pMR&p
\        V
4      hR&p
\        V
4      hVR,          V P                  R,          8X  d,   VR,          ^ 8X  d   V^8X  g   \&        '       d
   R Ruqn        MMVR,          V P                  R',          V P                  R(,          39   d   R)pMR*VR,           R2p
\        V
4      hV P$                  R+8X  Ed   ^ VR,          u;8  d   R,8:  g   M R-VR,           R2p
\        V
4      hVR	,          pV! WR,          ,          4      pR.pVR,          ^8X  d   RHM\)        \+        VR,          4      4      p\        V4       F;  w  ppVVV,          VV,          ^,            pV\-        V4      ^,          8w  g   K9  R/pK=  	  V'       d%   VR,          ^8X  d   R0MR1V n        V P$                  pM,R+V n        \.        P0                  ! V^8X  d   RMR"V4      V n        VR,          V P                  R&   V.pVR)8X  d.   VP                  VR,          V P                  R(,          8H  4       M;VP                  VR,          VR,          ,          ^,           ^,	          RI,          4       VP                  VR,          4       \        P4                  ! T^ ^ VR,          VR,          3T;'       g    V P                   P7                  4       \        V4      4      .V n        R2# )Jz Read relevant info about the BMPZheader_sizeZ	directionZwidthZheightZplanesbitsr,   ZcompressionZpalette_paddingZy_flipZ	data_sizeZpixels_per_metercolorsc              3  s2   "   T F  qR ,          x  K  	  R# 5i)o_C@Nr   .0x   & r   	<genexpr>Z'BmpImageFile._bitmap.<locals>.<genexpr>   s     $X:WQ[[:Ws   dpir/   r_maskg_maskb_maskZa_maskZrgb_maskZ	rgba_maskzUnsupported BMP header type (Z)zUnsupported BMP pixel depth (rawBGRXZXBGRZBGXRZABGRRGBABGRAZBGARBGRzBGR;16BGR;15ZAz Unsupported BMP bitfields layoutr-   r.   bmp_rlezUnsupported BMP compression (r   i   zUnsupported BMP Palette size (TF1LN)r"   r#   r$   r%   r&   r'   l        )r>   r?   r@   ) rK   )         r          ~ rM   rN   r    rQ   rN   rO   r    rQ   rM   rN   rO   rO   rN   rM   rQ   rM   rN   rO   rQ   rQ   rN   rO   rM   r    r    r    r    rM   rN   rO   i   i     i |  i  rZ   )    rL   )r\   rP   )r\   rR   )r\   rS   )r\   rT   )r\   rU   )r\   rV   )r\   rW   )   rX   )   rY   )r^   r[   )r]   r^   r    rO   )fpreadseekr(   r   Z
_safe_readi16COMPRESSIONStupleinfolenZappendZ	enumerateOSError_sizegetBIT2MODE_modemodeUSE_RAW_ALPHAZlistranger
   r   rA   palette_Tiletelltile)selfr0   r2   rb   rc   Z	file_infoZheader_dataZmasksZidxZmaskmsgZraw_modeZdecoder_nameZ	SUPPORTEDZ
MASK_MODESZpaddingrq   Z	grayscaleZindicesZindZvalZrgbargss   &&&                    r   _bitmapZBmpImageFile._bitmapM   s   WW\\477<<dL 3tAw<>
	  **477Im4Lq4PQ
 ]#r)!$[!!4Ig"%k1"5Ih"%k1"5Ih #K 3If'+'8'8'?Im$+,I'( }%)CC"-a.D"8Ih*3H*=*=Q2Ik"!$[!!4Ig !** K#Sa00 h
 #&k1"5Ih #K 4If'*;';Im$%(b%9Ik"K$K$-I() #&k2"6Ih+,I'($u$X)DV:W$Xuu$X)DV:W$XXDIIe'4+<+<[+II6{#r);'2-X..1	(+%.u%5	*-k2a<*H	 &6 +.Ih' %*-d1g,	 !& h'h'h')	*% h'h'h'h'	*	+& 2)M2J1K1MC#, w'8)<<
 }}Xq)) hy(( 	( R)M222y7HA7Ma)H---F  (||If,=xH
Hyyy1)F2C1DAFC#, ]#t'8'8'EE 	 -.*,AB;I 4V965v:F:F:F:F*F.+X+XJ  I-f%+!+.)f<M2NN  *V+<i>T*UVH+.(?		DJf%1!*-V;L1MM  *V+<i
>S*TUH<C!#,&8cl"}%):):5)AA B&"'-v$*}%f%f%*
 
 %L1)M2J1K1MC#, 99	(+4u46y7J6K1Mcl" $$56w8)<<= 	 !*a/ eIh$789  !*' 2HC!#-#-!2CDCbgk)$)	 !3 (1((;q(@cDJ#yyH!$DJ#/#3#3")Q,E7$DL
 $-]#;		- #*9$KK	-0D4E4Ef4MMN KK)G,y/@@2E!KPRSTIk*+OOAy)9X+>?(($'',,.d	
	r   c                   V ^8  d   QhRR/# r   r   r3   r   r   r   r   r   r4   7  s     $ $t $r   c                s    V P                   P                  ^4      p\        V4      '       g   Rp\        V4      h\	        V^
4      pV P                  VR7       R# )z-Open file, check magic number and read headerzNot a BMP file)r2   N)ra   rb   r    ZSyntaxErrorr(   rx   )ru   Z	head_datarv   r2   s   &   r   _openZBmpImageFile._open7  sK     GGLL$	y!!"Cc""Y#F#r   )rm   rj   rq   rt   Nr    r    )__name__
__module____qualname____firstlineno__Z__doc__format_descriptionr   re   ZitemsZkZvZvarsrx   r{   __static_attributes__r   r   r   r*   r*   A   sf    : *F 1faKFAuVWXL""$1q	 %h
T$ $r   r*   c                  s&    ] tR tRtRtR R ltRtR# )BmpRleDecoderiE  Tc               r   )r   bufferz$bytes | Image.SupportsArrayInterfacer   ztuple[int, int]r   r   r   r   r   ZBmpRleDecoder.__annotate__H  s     C CA Co Cr   c                	s   V P                   ^,          p\        4       p^ pV P                  P                  V P                  P                  ,          p\        V4      V8  EdE   V P                  P                  ^4      pV P                  P                  ^4      pV'       d	   V'       g   EMV^ ,          pV'       d   WH,           V P                  P                  8  d(   \        ^ V P                  P                  V,
          4      pV'       df   \        V^ ,          ^,	          4      p	\        V^ ,          ^,          4      p
\        V4       F#  pV^,          ^ 8X  d   W9,          pK  W:,          pK%  	  MW7V,          ,          pWH,          pEK9  V^ ,          ^ 8X  d<   \        V4      V P                  P                  ,          ^ 8w  d   VR,          pK6  ^ pEK  V^ ,          ^8X  d   EMV^ ,          ^8X  d   V P                  P                  ^4      p\        V4      ^8  d   EMV P                  P                  ^4      w  rVRWV P                  P                  ,          ,           ,          ,          p\        V4      V P                  P                  ,          pEKD  V'       dh   V^ ,          ^,          pV P                  P                  V4      pV F5  pV\        V^,	          4      ,          pV\        V^,          4      ,          pK7  	  M,V^ ,          pV P                  P                  V4      pW<,          p\        V4      V8  d   MeWG^ ,          ,          pV P                  P                  4       ^,          ^ 8w  g   EK(  V P                  P                  ^\        P                  4       EKU  V P                  R8X  d   RMRpV P!                  \#        V4      V^ V P                   R,          34       R# )       rI   r   rJ   )rJ   r    )rw   Z	bytearrayZstateZxsizeZysizerh   Zfdrb   Zmaxr
   rp   rs   rc   osZSEEK_CURrn   Z
set_as_rawr   )ru   r   Zrle4Zdatar:   Zdest_lengthZpixelsZbyteZ
num_pixelsZfirst_pixelZsecond_pixelZindexZ
bytes_readZrightZupZ
byte_countZ	byte_readrawmodes   &&                r   decodeZBmpRleDecoder.decodeH  s   yy|{jj&&)9)99$i+%WW\\!_F77<<?DJ>DJJ$4$44!$Q

(8(81(<!=J"$T!W\"2K#%d1gn#5L!&z!2 19> /D 0D	 "3 :--D7a<d)djj&6&66!;A!W\!W\!%aJ:* $QIEGuDJJ4D4D/D'DEEDD	DJJ$4$44A %)!W\
%)WW\\*%=
)3I ByA~$66D By4'7$88D *4 &*!W
%)WW\\*%=
*:3aLA ww||~)Q.Q4c)#sdWq$))B-.@Ar   r   N)r}   r~   r   r   Z	_pulls_fdr   r   r   r   r   r   r   E  s    IC Cr   r   c                  s*    ] tR tRtRtRtR R ltRtR# )DibImageFilei  ZDIBr+   c               ry   rz   r   r   r   r   r   ZDibImageFile.__annotate__  s      t r   c                	s&    V P                  4        R # )N)rx   )ru   r   r   r{   ZDibImageFile._open  s    r   r   N)r}   r~   r   r   r   r   r{   r   r   r   r   r   r     s    F) r   r   rH   rI   rC   c               s(    V ^8  d   QhRRRRRRRR/# )	r   imImage.Imagera   	IO[bytes]filenamestr | bytesr   r3   r   r   r   r   r   r     s(     # #+ #9 # # #r   c                s     \        WVR 4       R# )FN)_save)r   ra   r   s   &&&r   	_dib_saver     s    	"(E"r   c          
     s,    V ^8  d   QhRRRRRRRRR	R
/# )r   r   r   ra   r   r   r   bitmap_headerr   r   r3   r   r   r   r   r   r     s;     B BB"B.9BJNB	Br   c                s    \         V P                  ,          w  rEpT P                  p	T	P                  RR4      p
\        ;QJ d    . R T
 4       F  NK  	  5M! R T
 4       4      pT P                  ^ ,          T,          ^,           ^,          ^,           R,          p^(pYP                  ^,          ,          pT P                  R8X  d   RP                  R R 4       4      pMuT P                  R8X  d#   RP                  R	 \        R
4       4       4      pMBT P                  R8X  d0   T P                  P                  RR4      p\        T4      ^,          pMRpT'       dv   ^T,           T^,          ,           pTT,           pTR8  d   Rp\        T4      hTP                  R\        T4      ,           \        ^ 4      ,           \        T4      ,           4       TP                  \        T4      \        T P                  ^ ,          4      ,           \        T P                  ^,          4      ,           \!        ^4      ,           \!        T4      ,           \        ^ 4      ,           \        T4      ,           \        T^ ,          4      ,           \        T^,          4      ,           \        T4      ,           \        T4      ,           4       TP                  RT^(,
          ,          4       T'       d   TP                  T4       \"        P$                  ! Y\"        P&                  ! RRT P                  ,           ^ YLR34      .4       R#   \         d"   pR T P                   R2p\        T4      ThRp?ii ; i)zcannot write mode z as BMPNr=   c              3  sT   "   T F  p\        VR ,          R,           4      x  K   	  R# 5i)r7   g      ?N)r1   r8   r;   r   r<   _save.<locals>.<genexpr>  s!     41AK#%&&   &(rH   r   c              3  T   "   T F  p\        V4      ^,          R,           x  K   	  R# 5ii   r   Nr	   r9   Zir;   r   r<   r     s      A12a519w..r   rI   c              3  r   r   r	   r   r;   r   r<   r     s      C
12a519w..
r      r   r   rB   z)File size is too large for the BMP formatr   r   rA   )`   r   r`   r_   l    r|   rJ   )SAVErn   ZKeyErrorri   Zencoderinfork   rf   ZsizeZjoinrp   r   Z
getpaletterh   Z
ValueErrorZwriteo32o16r   r   rr   )r   ra   r   r   r   r5   r6   Zerv   rg   r=   ZppmZstrider0   Zimagerq   r2   Z	file_sizes   &&&&              r   r   r     s   " $RWWv
 >>D
((5(
#C %44%%44
4CwwqzD 1$*Q.26FFWWQZE	ww#~((AAA	C((Cc
CC	C%%""5&1W" fvz)UN	y =CS/!
)n!f &k	
 HHF
bggaj/	
bggaj/	 a&	 d)		
 a&	 e*	 c!f+	 c!f+	 f+		 f+
	 HHUfrk"#
OO
(8!gr=RSTw  ""277)73cl!"s   L9 9M%M  M%z.bmpz	image/bmprG   z.dib)r   zP;1)r   zP;4)r   r   )r   rF   )r   rE   )r   rB   )rH   r   r   )rI      r   )r   r   r   )rE   r]   r    )rD   r\   r    )T)%Z
__future__r   r   Ztypingr   r   rK   r   r   r   Z_binaryr   rd   r   r(   r
   r   r   r   r   rl   ro   r    r)   r*   Z	PyDecoderr   r   r   r   r   Zregister_openr   Zregister_saveZregister_extensionZregister_mimeZregister_decoderr   r   r   <module>r      s  2 # 	  , , ! !  ! ! ||z $9A$9&& A$HFI'' FX<  	>
O#BT   L''w ?   L'' /   ,,f 5   L'' 5   y- 0   L''{ C   L'' 3   ,,f 5   L'' 5r   