+
    JV-jø#  ã                  óî   € ^ RI Ht ^ RIt^ RIHt ^ RIHt ^RIHtH	t	H
t
Ht Rt]'       d   ^RIHt  ! R R	4      tR
 R ltR R ltR R ltRR R lltRR R lltRR R lltRR R lltR R ltR# )é    )ÚannotationsN)ÚSequence)ÚIO)ÚGimpGradientFileÚGimpPaletteFileÚ
ImageColorÚPaletteFileF)ÚImagec                  óþ   € ] tR t^tRtRR R llt]R R l4       t]P                  R R l4       t]R	 R
 l4       t	]	P                  R R l4       t	R R lt
R R ltR R lt]tRR R lltRR R lltR R ltRtR# )ÚImagePalettea…  
Color palette for palette mapped images

:param mode: The mode to use for the palette. See:
    :ref:`concept-modes`. Defaults to "RGB"
:param palette: An optional palette. If given, it must be a bytearray,
    an array or a list of ints between 0-255. The list must consist of
    all channels for one color followed by the next color (e.g. RGBRGBRGB).
    Defaults to an empty palette.
Nc               ó$   € V ^8„  d   QhRRRRRR/# )é   ÚmodeÚstrÚpalettez(Sequence[int] | bytes | bytearray | NoneÚreturnÚNone© )Úformats   "Úa/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/PIL/ImagePalette.pyÚ__annotate__ÚImagePalette.__annotate__+   s(   € ÷ &ñ &àð&ð :ð&ð 
ñ	&ó    c                	ó`   € Wn         R V n        T;'       g    \        4       V n        R V n        R # ©N)r   ÚrawmodeÚ	bytearrayr   Údirty)Úselfr   r   s   &&&r   Ú__init__ÚImagePalette.__init__+   s(   € ð
 Œ	Ø#'ˆŒØ×-Ð-¤)£+ˆŒØ!%ˆŽ
r   c               ó   € V ^8„  d   QhRR/# )r   r   ú!Sequence[int] | bytes | bytearrayr   )r   s   "r   r   r   6   s   € ÷ ñ Ð:ñ r   c                	ó   € V P                   # r   )Ú_palette©r   s   &r   r   ÚImagePalette.palette5   s   € à�}‰}Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   r   r#   r   r   r   )r   s   "r   r   r   :   s   € ÷  ñ  Ð@ð  ÀTñ  r   c                	ó    € R V n         Wn        R # r   )Ú_colorsr%   )r   r   s   &&r   r   r'   9   s   € à:>ˆŒØŽr   c               ó   € V ^8„  d   QhRR/# )r   r   údict[tuple[int, ...], int]r   )r   s   "r   r   r   ?   s   € ÷ 	ñ 	Ð2ñ 	r   c                	óF  € V P                   f‰   \        V P                  4      p/ V n         \        ^ \        V P                  4      V4       FH  p\        V P                  W"V,            4      pW0P                   9   d   K3  W!,          V P                   V&   KJ  	  V P                   # r   )r*   Úlenr   Úranger   Útuple)r   Úmode_lenÚiÚcolors   &   r   ÚcolorsÚImagePalette.colors>   s|   € à�<‰<ÒÜ˜4Ÿ9™9“~ˆHØˆDŒLÜ˜1œc $§,¡,Ó/°Ö:�Ü˜dŸl™l¨1°8­|Ð<Ó=�ØŸL™LÔ(ÙØ&'¥m�—‘˜UÓ#ñ	 ;ð
 �|‰|Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   r4   r,   r   r   r   )r   s   "r   r   r   K   s   € ÷ ñ Ð7ð ¸Dñ r   c                	ó   € Wn         R # r   )r*   )r   r4   s   &&r   r4   r5   J   s   € àŽr   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   N   s   € ÷ 	ñ 	�lñ 	r   c                	óÌ   € \        4       pV P                  Vn        V P                  Vn        V P                  e   V P                  R,          Vn        V P                  Vn        V# )N:NNN)r   r   r   r   r   )r   Únews   & r   ÚcopyÚImagePalette.copyN   sH   € Ü‹nˆà—9‘9ˆŒØ—l‘lˆŒØ�<‰<Ò#ØŸ,™, q�/ˆCŒKØ—J‘JˆŒ	àˆ
r   c               ó   € V ^8„  d   QhRR/# )r   r   z-tuple[str, Sequence[int] | bytes | bytearray]r   )r   s   "r   r   r   Y   s   € ÷ 	)ñ 	)ÐFñ 	)r   c                óŽ   € V P                   '       d   V P                   V P                  3# V P                  V P                  4       3# )zƒ
Get palette contents in format suitable for the low-level
``im.putpalette`` primitive.

.. warning:: This method is experimental.
)r   r   r   Útobytesr&   s   &r   ÚgetdataÚImagePalette.getdataY   s5   € ð �<�<ˆ<Ø—<‘< §¡Ð-Ð-Ø�y‰y˜$Ÿ,™,›.Ð(Ð(r   c               ó   € V ^8„  d   QhRR/# )r   r   Úbytesr   )r   s   "r   r   r   d   s   € ÷ ñ ˜ñ r   c                óú   € V P                   '       d   Rp\        V4      h\        V P                  \        4      '       d   V P                  # \
        P
                  ! RV P                  4      pVP                  4       # )zEConvert palette to bytes.

.. warning:: This method is experimental.
ú!palette contains raw palette dataÚB)r   Ú
ValueErrorÚ
isinstancer   rC   Úarrayr?   )r   ÚmsgÚarrs   &  r   r?   ÚImagePalette.tobytesd   sW   € ð
 �<�<ˆ<Ø5ˆCÜ˜S“/Ð!Ü�d—l‘l¤E×*Ò*Ø—<‘<ÐÜ�kŠk˜#˜tŸ|™|Ó,ˆØ�{‰{‹}Ðr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚimageúImage.Image | NoneÚezException | Noner   Úintr   )r   s   "r   r   r   t   s$   € ÷ ñ Ø'ðØ3Cðà	ñr   c                	óP  € \        V P                  \        4      '       g   \        V P                  4      V n        \	        V P                  4      \	        V P
                  4      ,          pRpV'       dH   VP                  P                  R 4      VP                  P                  R4      3pW49   d   V^,          pK  VR8¼  de   V'       dH   \        \        \        VP                  4       4      4      4       F  w  rVV^ 8X  g   K  WT9  g   K  Tp M	  VR8¼  d   Rp\        V4      VhV# )Ú
backgroundÚtransparencyé   z$cannot allocate more than 256 colorsr   )rH   r   r   r%   r.   r   ÚinfoÚgetÚreversedÚlistÚ	enumerateÚ	histogramrG   )r   rN   rP   ÚindexÚspecial_colorsr2   ÚcountrJ   s   &&&     r   Ú_new_color_indexÚImagePalette._new_color_indext   sà   € ô ˜$Ÿ,™,¬	×2Ò2Ü% d§l¡lÓ3ˆDŒMÜ�D—L‘LÓ!¤S¨¯©£^Õ3ˆØCEˆßà—
‘
—‘˜|Ó,Ø—
‘
—‘˜~Ó.ðˆNð Ô)Ø˜•
’Ø�CŒ<ßä (¬¬i¸¿¹Ó8IÓ.JÓ)KÖ L‘H�AØ –z aÖ&=Ø !˜Ùñ !Mð ˜Œ|Ø<�Ü  “o¨1Ð,Øˆr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r3   ztuple[int, ...]rN   rO   r   rQ   r   )r   s   "r   r   r   Ž   s(   € ÷ *"ñ *"àð*"ð "ð*"ð 
ñ	*"r   c                ó°  € V P                   '       d   Rp\        V4      h\        V\        4      '       d…   V P                  R8X  d6   \        V4      ^8X  d%   V^,          ^ÿ8w  d   Rp\        V4      hVR,          pM*V P                  R8X  d   \        V4      ^8X  d
   VR,          p V P                  V,          # R\        V4       2p\        V4      h  \         dø   pT P                  Y$4      p\        T P                  \        4      '       g   Q hYPP                  T&   \        T P                  4      pYV,          \        T P                  4      8  dM   T P                  RYV,           \        T4      ,           T P                  YV,          T,           R ,           T n	        M"T ;P                  \        T4      ,          un	        ^T n        Tu Rp?# Rp?ii ; i)	zWGiven an rgb tuple, allocate palette entry.

.. warning:: This method is experimental.
rE   ÚRGBz/cannot add non-opaque RGBA color to RGB palette:Né   NÚRGBANzunknown color specifier: )éÿ   )r   rG   rH   r0   r   r.   r4   ÚKeyErrorr_   r%   r   r   rC   r   Úrepr)r   r3   rN   rJ   rP   r\   r1   s   &&&    r   ÚgetcolorÚImagePalette.getcolorŽ   s|  € ð �<�<ˆ<Ø5ˆCÜ˜S“/Ð!Ü�eœU×#Ò#Ø�y‰y˜EÔ!Ü�u“: ”?Ø˜Q•x 3”ØO˜Ü(¨›oÐ-Ø! "�I�EøØ—‘˜fÔ$Ü�u“: ”?Ø˜V•O�EðØ—{‘{ 5Õ)Ð)ð$ .¬d°5«k¨]Ð;ˆCÜ˜S“/Ð!øô% ô à×-Ñ-¨eÓ7�Ü! $§-¡-´×;Ò;Ð;Ð;Ø%*—‘˜EÑ"Ü˜tŸy™y›>�ØÕ#¤c¨$¯,©,Ó&7Ô7àŸ™Ð&8¨Õ(8Ð9Ü ›,õ'àŸ-™-¨Õ(8¸8Õ(CÐ(EÐFõGð •Mð —M’M¤U¨5£\Õ1•MØ�”
Ø•ûðús   Â'C ÃGÃC,GÇ
GÇGc               ó    € V ^8„  d   QhRRRR/# )r   Úfpzstr | IO[str]r   r   r   )r   s   "r   r   r   º   s   € ÷ ñ �}ð ¨ñ r   c                óì  € V P                   '       d   Rp\        V4      hRp\        V\        4      '       d   \	        VR4      pRp VP                  R4       VP                  RV P                   R24       \        V P                  4      p\        R4       F¡  pVP                  V 4       \        V\        V P                  4      ,          V^,           \        V P                  4      ,          4       F0  pTP                  R	Wd8  d   V P                  V,          M^  24       K2  	  VP                  R4       K£  	  V'       d   VP                  4        R
# R
#   T'       d   TP                  4        i i ; i)zFSave palette to text file.

.. warning:: This method is experimental.
rE   FÚwTz
# Palette
z# Mode: Ú
rU   Ú N)r   rG   rH   r   ÚopenÚwriter   r.   r   r/   Úclose)r   rl   rJ   Úopen_fpÚpalette_lenr2   Újs   &&     r   ÚsaveÚImagePalette.saveº   s  € ð
 �<�<ˆ<Ø5ˆCÜ˜S“/Ð!ØˆÜ�bœ#×ÒÜ�b˜#“ˆBØˆGð	Ø�H‰H�]Ô#Ø�H‰H�x §	¡	˜{¨"Ð-Ô.Ü˜dŸl™lÓ+ˆKÜ˜3–Z�Ø—‘˜A˜3Ô Ü˜q¤3 t§y¡y£>Õ1°A¸µE¼SÀÇÁ»^Õ3KÖL�AØ—H‘H˜q°A´O §¡¨a¦ÈÐ KÐLÖMñ Mà—‘˜–ñ	  ÷ Ø—‘–
ñ ø�wØ—‘•
ð ús   ÁC5E ÅE3)r*   r%   r   r   r   r   )rc   N)NNr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r    Úpropertyr   Úsetterr4   r;   r@   r?   Útostringr_   ri   rw   Ú__static_attributes__r   r   r   r   r      s�   † ñ	÷&ð ôó ðð ‡^�^ô ó ð ð ô	ó ð	ð ‡]�]ôó ðõ	õ	)õð €H÷÷4*"÷Xñ r   r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   Údatar#   r   r   r   )r   s   "r   r   r   Ø   s"   € ÷ ñ �ð Ð=ð À,ñ r   c                ó@   € \        4       pWn        Wn        ^Vn        V# )é   )r   r   r   r   )r   rƒ   r   s   && r   Úrawr†   Ø   s   € Ü‹n€GØ„OØ„OØ€G„MØ€Nr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚblackrQ   ÚwhiteÚfloatr   ú	list[int]r   )r   s   "r   r   r   ä   s!   € ÷ #ñ #˜3ð # uð #°ñ #r   c                ó–   € V ^ 8X  d2   \        R4       Uu. uF  p\        W,          ^ÿ,          4      NK  	  up# Rp\        V4      hu upi )r   rU   z"unavailable when black is non-zero)r/   rQ   ÚNotImplementedError)rˆ   r‰   r2   rJ   s   &&  r   Úmake_linear_lutrŽ   ä   sC   € Ø�„zÜ/4°S¬zÓ:©z¨!”�E•I Õ$Ö%©zÑ:Ð:à
.€CÜ
˜cÓ
"Ð"ùò ;s   •!Ac               ó    € V ^8„  d   QhRRRR/# )r   ÚexprŠ   r   r‹   r   )r   s   "r   r   r   ì   s   € ÷ Iñ I˜ð I )ñ Ir   c                óŒ   € \        R 4       Uu. uF*  p\        VR,          V ,          R,          R,           4      NK,  	  up# u upi )rU   g     ào@g      à?)r/   rQ   )r�   r2   s   & r   Úmake_gamma_lutr’   ì   s6   € Ü=BÀ3¼ZÓH¹Z¸ŒC�!�e•) Õ# uÕ,¨sÕ2Ö3¹ZÑHÐHùÒHs   Ž0Ac               ó    € V ^8„  d   QhRRRR/# ©r   r   r   r   r   r   )r   s   "r   r   r   ð   s   € ÷ Añ A�3ð A <ñ Ar   c           
     óÈ   € \        \        R \        V 4      ,          4      4      pVP                  4        \	        Y Uu. uF  q"\        V 4      ,          NK  	  up4      # u upi ©rU   )rY   r/   r.   Úreverser   ©r   r   r2   s   &  r   Únegativer™   ð   sJ   € Ü”5˜œs 4›y�Ó)Ó*€GØ‡O�OÔÜ˜°wÓ?±w°!¤C¨£IŸ~˜~±wÑ?Ó@Ð@ùÒ?s   ¾A
c               ó    € V ^8„  d   QhRRRR/# r”   r   )r   s   "r   r   r   ö   s   € ÷ 'ñ '�ð ' ñ 'r   c                óŽ   € ^ RI Hp \        R\        V 4      ,          4       Uu. uF  q!! ^ ^ÿ4      NK  	  pp\	        W4      # u upi )r   )ÚrandintrU   )Úrandomrœ   r/   r.   r   )r   rœ   Ú_r   s   &   r   r�   r�   ö   s?   € Ýä(-¨c´C¸³I­oÔ(>Ó?Ñ(> 1ˆw�q˜#ŽÑ(>€GÐ?Ü˜Ó&Ð&ùò @s   ¤Ac               ó    € V ^8„  d   QhRRRR/# )r   r‰   r   r   r   r   )r   s   "r   r   r   ý   s   € ÷ Oñ O�ð O \ñ Or   c           	     óô   € \         P                  ! V 4       Uu. uF  p\        ^ V4      NK  	  pp\        R\	        R4       Uu. uF   q2V^,          ,          V^,          ,          NK"  	  up4      # u upi u upi )r   rc   i   )r   ÚgetrgbrŽ   r   r/   )r‰   ÚbandÚbandsr2   s   &   r   Úsepiar¤   ý   se   € Ü2<×2CÒ2CÀEÔ2JÓKÑ2J¨$Œ_˜Q Ö%Ñ2J€EÐKÜ˜¼eÀG¼nÓM¹n¸ a¨!¥e¥¨Q°!­V× 4Ð 4¹nÑMÓNÐNùò LùÚMs   ™A0Á&A5
c               ó    € V ^8„  d   QhRRRR/# r”   r   )r   s   "r   r   r     s   € ÷ Añ A�ð A ñ Ar   c           
     ó¨   € \        \        R \        V 4      ,          4      4      p\        Y Uu. uF  q"\        V 4      ,          NK  	  up4      # u upi r–   )rY   r/   r.   r   r˜   s   &  r   Úwedger§     s@   € Ü”5˜œs 4›y�Ó)Ó*€GÜ˜°wÓ?±w°!¤C¨£IŸ~˜~±wÑ?Ó@Ð@ùÒ?s   ®A
c               ó    € V ^8„  d   QhRRRR/# )r   Úfilenamer   r   ztuple[bytes, str]r   )r   s   "r   r   r     s   € ÷ ñ �3ð Ð,ñ r   c                óˆ  € \        V R 4      ;_uu_ 4       p\        P                  \        P                  \        P                  .pV F5  p VP	                  ^ 4       V! V4      P                  4       pV'       d    MK7  	  Rp\        V4      h RRR4       V#   \        \        3 d     Ke  i ; i  + '       g   i     X# ; i)Úrbzcannot load paletteN)	rq   r   r   r	   ÚseekÚ
getpaletteÚSyntaxErrorrG   ÚOSError)r©   rl   ÚpaletteHandlersÚpaletteHandlerÚlutrJ   s   &     r   Úloadr³     s¿   € ô 
ˆh˜×	Ô	 ô ×+Ñ+Ü×-Ñ-Ü×#Ñ#ð
ð 	ó .ˆNðØ—‘˜”
Ù$ RÓ(×3Ñ3Ó5�ßÙñ ñ	 .ð (ˆCÜ˜#“,Ðð ÷# 
ð0 €Jøô  ¤Ð,ô Úðú÷% 
Ö	ð0 €Jús/   •5B0Á/BÁ:B0ÂB-	Â)B0Â,B-	Â-B0Â0C	)rc   )z#fff0c0)Ú
__future__r   rI   Úcollections.abcr   Útypingr   Ú r   r   r   r	   ÚTYPE_CHECKINGr
   r   r†   rŽ   r’   r™   r�   r¤   r§   r³   r   r   r   Ú<module>r¹      s]   ðõ$ #ã Ý $Ý ç HÓ Hà€ßÝ÷rñ rõrõ#õI÷A÷'÷O÷
A÷
r   