Files
intellecton/venv/lib/python3.12/site-packages/PIL/__pycache__/GifImagePlugin.cpython-312.pyc
T

281 lines
45 KiB
Plaintext
Raw Normal View History

Ë
߼j…Ąăóü—ddlmZddlZddlZddlZddlZddlmZddlm Z ddl
m Z m Z m
Z
ddlmZmZmZmZmZmZmZddlmZdd lmZdd
lmZdd lmZd Zerdd
l
mZm Z ddlm!Z!ddl"m#Z#Gd„de«Z$e$jJZ&d/d„Z'Gd„dej"«Z(ddddśZ)d0d„Z*e+e,ze-e.zej(zZ/ d1d„Z0 d2d„Z1 d3d„Z2Gd„de «Z3 d4d„Z4d5d„Z5 d6 d7d „Z6d8d!„Z7 d9d"„Z8d5d#„Z9d Z:d:d$„Z;d;d%„Z<d<d&„Z=d=d'„Z> d>d(„Z?d?d)„Z@ d@d*„ZA dA dBd+„ZB dC dDd,„ZCej�e(jŠe(e'«ejŚe(jŠe6«ejŽe(jŠe5«ej�e(jŠd-«ej’e(jŠd.«y)Eé)Ú annotationsN)ÚIntEnum)Úcached_property)ÚAnyÚ
NamedTupleÚcasté)ÚImageÚ
ImageChopsÚ ImageFileÚ ImageMathÚImageOpsÚ ImagePaletteÚ
ImageSequence)Úi16le)Úo8)Úo16le)Ú
DeferredErrorF)ÚIOÚLiteral)Ú_imaging)ÚBuffercó—eZdZdZdZdZdZy)ÚLoadingStrategyz.. versionadded:: 9.1.0rr éN)Ú__name__Ú
__module__Ú __qualname__Ú__doc__ÚRGB_AFTER_FIRSTÚ RGB_AFTER_DIFFERENT_PALETTE_ONLYÚ
RGB_ALWAYS©óúU/home/antigravity/intellecton/venv/lib/python3.12/site-packages/PIL/GifImagePlugin.pyrr:s„Ů!ŕ€OŘ'(Đ$Ř�Jr$rcó$—|jd«S)N)sGIF87asGIF89a)Ú
startswith)Úprefixs r%Ú_acceptr)Is€Ř × Ń Đ3Ó 4Đ4r$c󎇗eZdZdZdZdZdZdd„Zdd„Zdd„Z e
dd„«Z e dd „«Z
dd
„Zddd „Zd�fd „ Zdd
„Zdd„Z�xZS)Ú GifImageFileÚGIFzCompuserve GIFFNcó —|j€J‚|jjd«}|r#|dr|jj|d«Sy)Nr r)ÚfpÚread)ÚselfÚss r%ÚdatazGifImageFile.dataYsF€ŘŹw‰wĐ"Đ"Đ"Ř ŹG‰GŹL‰L�‹O�Ů ��1’Ř—7‘7—<‘<  !ˇÓ%Đ %Řr$cóŠ—tdt|«d«D]*}|dz||cxk(r||dzcxk(r
||dzk(rŚ'yyy)Nrér rTF)ÚrangeÚlen)r0ÚpÚis r%Ú_is_palette_neededzGifImageFile._is_palette_needed`sX€Ü�qś#�a›& !Ó$ň �AŘ�‘F�a ™dÔ: a¨¨A©ˇhÔ:°!°A¸±E±(Ó:Ůđ;Ůđ đr$cób—|j€J‚|jjd«}t|«s
d}t|«‚|dd|jd<t |d«t |d«f|_|d}|dzdz}|d zre|d
|jd <|jjd |z«}|j|«r$tjd
|«}|x|_
|_ |j|_ |jj«|_d|_|j!d«y)Né
znot a GIF fileéÚversionéé
ér é€é Ú
backgroundr4ÚRGBr)r.r/r)Ú SyntaxErrorÚinfoÚi16Ú_sizer9rÚrawÚglobal_paletteÚpaletteÚ_fpÚtellÚ_GifImageFile__rewindÚ _n_framesÚ_seek)r0r1ÚmsgÚflagsÚbitsr7rKs r%Ú_openzGifImageFile._openfs €ŕŹw‰wĐ"Đ"Đ"Ř ŹG‰GŹL‰L�Ó �Ü�qŚzŘ"�CÜ�cÓ"Đ "ŕ   !�u�Ź ‰ �)ŃÜ��A“Y¤ A qŁ Đ)�Ś
Ř�"‘�Ř�‘ �Q‰�ŕ �3Š;ŕ&'¨ˇe�DŹI‰I�lŃ #ŕ—‘— ‘ �Q $™YÓ'�AŘ×&Ń& qÔ)Ü&×*Ń*¨5°!Ó4�Ř5<Đ<�Ô# d¤lŕ—7‘7�ŚŘź™ź ™ ›�Ś
Ř%)�ŚŘ Ź
‰
�1Ť
r$có—|j€6|j«} |j|j«dzd«Ś$|jS#t$r|j«dz|_YnwxYw|j |«ŚE)Nr F©rOrMrPÚEOFErrorÚseek)r0Úcurrents r%Ún_frameszGifImageFile.n_frames�sw€ŕ Ź>‰>Đ !Ř—i‘i“k�Gđ
1ŘŘ—J‘J�tźy™y›{¨Q™°Ô6đđ
Ź~‰~Đřôň
1Ř!%§ˇŁ¨qˇ�–đ
1úŕ ŹI‰I�gÔ řsž%AÁ!A3Á2A3cóĐ—|j�|jdk7S|j«}|ry |jdd«d}|j |«|S#t$rd}YŚ wxYw)Nr TFrV)r0rYÚ is_animateds r%r\zGifImageFile.is_animatedŤsn€ŕ Ź>‰>Đ %Ř—>‘> QŃ&Đ &ŕ—)‘)“+�Ů Řđ Ř ŹJ‰J�q�%Ô Ř�Kđ
Ź ‰ �'ÔŘĐřô ň ŘŠKđ ús°AÁ A%Á$A%cóT—|j|«sy||jkrd|_|jd«|j} t |jdz|dz«D]}|j|«Śy#t
$r$}|j
|«d}t |«|‚d}~wwxYw)Nrr úno more images in GIF file)Ú _seek_checkÚ_GifImageFile__frameÚ_imrPr5rWrX)r0ÚframeÚ
last_frameÚfÚerQs r%rXzGifImageFile.seekźsš€Ř×Ń Ô&Ř Ř �4—<‘<Ň Ř�DŚHŘ ŹJ‰J�qŚMŕ—\‘\�
đ 'Ü�4ź<™<¨!Ń+¨U°Q©YÓ7ň
�ؗ
‘
�1•
ń
řäň 'Ř ŹI‰I�jÔ !Ř.�CÜ�3“- QĐ &űđ 'úsÁ2A:Á: B'ÂB"Â"B'có؇—t‰jt«r‰jj‚|dk(r]d‰_d‰_d‰_‰jj‰j«d‰_ d‰jvr,‰jd=n‰jr|r‰j«|‰j dzk7rd|›ť}t|«‚‰j‰_‰jrN‰jj‰j«‰j«r ‰j«rŚd‰_‰jj!d«}|r|dk(r
d}t#|«‚d}i}d}d}d} |s‰jj!d«}|r|dk(r�nÓ|dk(�rP‰jj!d«}‰j«}
|dd k(r7|
�5|
d} | dzr|
d
}t%|
d«d z|d <d
| z} | dz } | rÉ| ‰_ nÁ|ddk(r9d}
|
r|
|
z
}
‰j«}
|
rŚd|vr|dxxd|
zz
cc<n|
|d<d}ŚŘ|ddk(rx|dk(rs|
�q|
‰jj'«f|d<|
j)d«rA‰j«}
|
r/t+|
«d
k\r!|
ddk(rt%|
d«‰jd<‰j«�rŤ ‰j«rŚ�ny|dk(�rs‰jj!d«}t%|d«t%|d«}}|t%|d«z|t%|d«z}}|‰j,dkDs|‰j,dkDrX|rVt/|‰j,d«t/|‰j,d«f‰_t3j4‰j0«||||f} |d} | dzdk7}| dzrP| dzdz}‰jj!d
|z«}‰j7|«rt9j:d|«}nd}‰jj!d«d}‰jj'«‰_nd}�Śů|€
d }t#|«‚|‰_|syg‰_ ‰j
r0‰j<j?‰j
‰j@«|�|n ‰jB‰_"|‰_#|dk(r{‰jDr+tHtJjLk(r |�d!nd‰_'nd"‰_'nd#‰_'|r |‰_(�n‰jBrdd$l)m)}|‰jB«‰_(nőd‰_(ní‰jTd"k(rŢtHtJjVk7s|rĹd%‰jvrw‰j<jY‰jd%d«‰j<j[d!t2j\j^«‰_d!‰_'‰jd%=n@d‰_'‰j<j[dt2j\j^«‰_d,�fd&„ }d‰_| ‰_ ‰j@�r–‰jdk\�r† ‰jdk(rljj@\}}}}||z
||z
f}t3j4|«d"}‰jjad%|«}|�‰jTd'vrBd!}||«d(z}n4‰jjad)d«}‰jTd'vr
d}||«}t2jbje|||«‰_n݉jf�,‰ji‰j<‰j@«‰_nw|�u‰j@\}}}}||z
||z
f}t3j4|«d"}|}‰jTd'vr
d!}||«d(z}t2jbje|||«‰_|�od}|�<|dk(r'tHtJjLk7r |‰jd%<n‰jTd'vr|}tmjnd*f‰j||f«g‰_ |jad«r|d‰jd<d+D]5}||vr||‰j|<Ś|‰jvsŚ)‰j|=Ś7y#tj$rYŚÚwxYw)-Nré˙˙˙˙Úcommentr zcannot seek to frame ó;r^ó!éůr4r?Údurationéréţr$ó
é˙Ú extensionó NETSCAPE2.0Úloopó,é ér<r>é@rAr@rDFzimage not found in GIF frameÚRGBAÚPÚL)ÚcopyÚ transparencyc ó•—‰jru|dzdzt‰jj«kDrd}ttt
t
t
ft ‰jj|dz|dzdz««S|||fS)Nr4r)Ú_frame_paletter6rKrÚtupleÚint)Úcolorr0s €r%Ú_rgbz GifImageFile._seek.<locals>._rgbas�ř€Ř×"Ň"Ř�1‘9�q‘=¤3 t×':Ń':×'BŃ'BÓ#CŇCŘ�EÜÜś#śs¤C�-Ń(Ü�$×-Ń-×5Ń5°e¸a±iŔ%Č!Á)ČaÁ-ĐPÓQóđđ
�u eĐ,Đ,r$©rDrx)rrCÚgif)rlrq)r�r€Úreturnztuple[int, int, int])8Ú
isinstancerLrÚexÚ_GifImageFile__offsetÚdisposer`rXrNÚdisposal_methodrFÚtileÚloadÚ
ValueErrorr.r2r/rWrGrMr'r6ÚsizeÚmaxrHr
Ú_decompression_bomb_checkr9rrIÚimÚpasteÚdispose_extentrJr~Ú_frame_transparencyÚLOADING_STRATEGYrr"Ú_moderKr{Úmoder!ÚputpalettealphaÚconvertÚDitherÚFLOYDSTEINBERGÚgetÚcoreÚfillraÚ_cropÚAttributeErrorr Ú_Tile)r0rbÚ update_imagerQr1rKrFÚframe_transparencyÚ interlaceÚframe_dispose_extentÚblockrRÚ dispose_bitsrhÚx0Úy0Úx1Úy1rSr7r{r‚Ú dispose_sizeÚ dispose_moder�r|Úks` r%rPzGifImageFile._seekŻs$ř€Ü �d—h‘h¤
Ô .Ř—(‘(—+‘+Đ Ř �AŠ:ŕ�DŚMŘ8<�DŚLŘ�DŚLŘ ŹH‰HŹM‰M�$ź-™-Ô (Ř#$�DÔ Ř�DźI™IŃ%Ř—I‘I�iŃ(đŹyŠy™\Ř— ‘ ” ŕ �D—L‘L 1Ń$Ň $Ř)¨%¨Đ1�CÜ�S“/Đ !ŕ—(‘(�ŚŘ Ź=Š=ŕ ŹG‰GŹL‰L�ź™Ô 'Ř—)‘)”+Řđ—)‘)•+ŕ�DŚMŕ ŹG‰GŹL‰L�‹O�Ů�A�’IŘ.�CÜ�3“-Đ ŕEI�ŕ!�Ř!ĐŘ� Ř#ĐŘŮŘ—G‘G—L‘L “O�Ů��Tš Ůŕ�d“đ—G‘G—L‘L “O�Řź ™ › �Ř�Q‘4�3’; 5Đ#4đ" !™H�EŘ�q’yŘ-2°1©XĐ*Ü'*¨5°!Ł}°rŃ'9�D�Ń$đ$.°Ń#5�LŘ#/°1Ń#4�LŮ#đ
0<�Ő,Ř�q‘T�S’[đ"�Gń Ř 5Ń(�Ř $§ ˇ Ł �ň đ! DŃ(ŕ�Y›¨5°7©?Ń:śŕ*1��Y™Ř�AŘŘ�q‘T�S’[ U¨a˘Z°EĐ4Eđ).¨tŻw©wŻ|©|«~Đ(=�D�Ń%Ř×'Ń'¨Ô7Ř $§ ˇ Ł �Ů ¤S¨ŁZ°1˘_¸¸qąŔQşÜ03°E¸1ł
�DźI™I fŃ-Ř—i‘i•kŘđ—i‘i—kđ�d“đ—G‘G—L‘L “O�ô�Q ›¤C¨¨1ŁI�B�Řśc ! Q›i™¨¬c°!°Q«i©�B�Ř�ź™ 1™Ň%¨¨dŻi©i¸©lŇ):Á Ü!$ R¨Ż©°1©Ó!6Ľ¸BŔÇ Á Č!Á Ó8MĐ!M�D”JÜ×3Ń3°D·J±JÔ?Ř')¨2¨r°2 ~Đ$Ř�!™�ŕ" R™Z¨AŃ-� ŕ�3’;Ř! A™I¨™?�DŘź™ź ™  Q¨$ˇYÓ/�AŘ×.Ń.¨qÔ1Ü".×"2Ń"2°5¸!Ó"<™ŕ"'�đ—w‘w—|‘| A“ qŃ)�Ř $§ˇ§ ˇ Ł�”
ŘŘ�Ańsđv Đ Ř0�CÜ�3“-Đ ŕ�Ś ŮŘ ŕ�Ś ŕ Ź<Š<Ř ŹG‰GŹM‰M�$ź,™,¨×(;Ń(;Ô <ŕ)0Đ)<™gŔ$×BUŃBU�ÔŘ#5�Ô Ř �AŠ:Ř×"Ň"Ü#¤×'AŃ'AŇAŘ+=Đ+IˇČu�D•Jŕ!$�D•Jŕ �”
áŘ&�– Ř×$Ň$Ý%á# D×$7Ń$7Ó8�• ŕ#�• ŕŹy‰y�CŇä$¬×(XŃ(XŇXŮŕ%¨Ż©Ń2Řź™×/Ń/°· ± ¸.Ń0IČ1ÔMŘ"&§'ˇ'§/ˇ/°&Ľ%ż,ą,×:UŃ:UÓ"V�śŘ%+�ś
Ř źI™I nŃ5ŕ%*�ś
Ř"&§'ˇ'§/ˇ/°%Ľżą×9TŃ9TÓ"U�śő -đ�Ś Ř@T�ÔŘ × Ó  4×#7Ń#7¸1Ó#<đ*
Ř×'Ń'¨1Ň,đ&*×%8Ń%8‘N�B��B Ř$&¨ˇG¨R°"©WĐ#5�Lä×3Ń3°LÔAđ$'�LŘ źI™IźM™M¨.Đ:LÓM�EŘĐ(Řź9™9¨Ń7Ř+1�LŮ$(¨ŁK°$Ń$6™Eŕ $§ ˇ §
ˇ
¨l¸AÓ >�Řź9™9¨Ń7Ř+0�LŮ$(¨ŁK�EÜ#(§:ˇ:§?ˇ?°<ŔČuÓ#U�D•Lđ—x‘xĐ+ŕ'+§zˇz°$·'±'¸4×;NŃ;NÓ'O�ť Ř+Đ7Ř)-×)<Ń)<™��B  BŘ(*¨R©°°b±Đ'9� ä×7Ń7¸ ÔEŘ'*� Ř 2�Řź9™9¨Ń7Ř+1�LŮ$(Đ);Ó$<¸tŃ$C�EÜ',§zˇz§ˇŘ(¨,¸ó(�ś đ Đ Ř�LŘ!Đ-Ř�A’:Ü'¬?×+EŃ+EŇEŘ4F�ź ™  .Ň1Ř—Y‘Y oŃ5Ř#5�Lä—‘ŘŘ��R Đ$Ř—M‘MŘ�9 lĐ3ó đ�DŚIđ Ź8‰8�IÔ Ř#'¨ ˇ?�DŹI‰I�iŃ Ř*ň !�AŘ�D‰yŘ# A™w�— ‘ �!’ Ř�d—i‘i’Ř—I‘I�a‘Lń  !řô-"ň
Ůđ
úsÚ Fcă c)ă(c)có8•—|jrdnd}d|_|jdk(rG|j�átj
j
||j|j«|_n¦|jdvr�|j|_|jrttj
j
d|j|jxsd«|_|jjdg|jj«˘­Žnd|_ |jsŢ|j�Ň|j|jjk7rŻtj
j
|jj|j«}|jr+|jdg|jj«˘­Ž|j|jd|jjz«||_||_d|_t‰|ŤA«y)Nryrzrr�rD©rr)r~Ú_prev_imr`r”r
rťržrŽr‘r—Ú
putpaletteÚgetdatarar’r–ÚsuperÚ load_prepare)r0Ú temp_modeÚ expanded_imÚ __class__s €r%rµzGifImageFile.load_prepare´s�ř€Ř×.Ň.‘C°C� Ř�Ś
Ř Ź<‰<�1Ň Ř×'Ń'Đ3Üź*™*ź/™/Ř�tźy™y¨$×*BŃ*Bó�•đŹY‰Y�/Ń
)Ř źG™G�DŚMŘ×"Ň"Üź*™*ź/™/¨#¨tŻy©y¸$×:RŃ:RŇ:WĐVWÓX�”Ř"�—‘×"Ń" 5ĐI¨4×+>Ń+>×+FŃ+FÓ+HÔIŕ�”ŘŹ}Š} §ˇĐ!5¸$ż)ą)ŔtÇwÁwÇ|Á|Ň:SÜź*™*ź/™/¨$Ż'©'Ż,©,¸ż ą ÓB�KŘ×"Ň"Ř&� ×&Ń& uĐM¨t×/BŃ/B×/JŃ/JÓ/LÓMŘ × Ń �dźg™g v°·±· ± Ń'<Ô =ŕ!�DŚGŘ�Ś
Ř"�Ôä
‰ŃŐr$cóD—|jdk(r«|jdk(r›ttjk(r„|j
�.|j j|j
d«d|_nd|_|j j|jtjj«|_y|jsy|j|jjk7rĺ|j
�+tjj!d|j«}nftjj!d|j«}|j#dd|j j%««|jd«}|j'|jd|jjz«||_
|j€J‚|j
�x|jdk(r'|j j)d|j
«}n]|j j|j
d«|j jd«}n|j jd«}|j*€J‚|j-||j*«}|j|_|j j|_|jdvr(|j j'||j*|«y|j j'||j*«y) NrryrxrDr°rzÚLA)rşrx)r`r—r•rr"r”r‘r�r–r™r
ršr›r±rŽrťržr˛Ú
getpaletter’Úconvert_transparentr“rź)r0r·Úframe_ims r%Úload_endzGifImageFile.load_endĎs:€Ř Ź<‰<�1Ň ŘŹy‰y�CŇÔ$4Ľ×8RŃ8RŇ$RŘ×+Ń+Đ7Ř—G‘G×+Ń+¨D×,DŃ,DŔaÔHŘ!'�D•Jŕ!&�D”JŘź'™'ź/™/¨$Ż)©)´U·\±\×5PŃ5PÓQ�”Ř ŘŹ}Š}Ř Ř Ź9‰9�ź
™
×*Ń*Ň *Ř×'Ń'Đ3Ü#źj™jźo™o¨f°d·i±iÓ@‘ ä#źj™jźo™o¨c°4·9±9Ó=� Ř×&Ń& u¨e°T·W±W×5GŃ5GÓ5IÔJŘ)×1Ń1°%Ó8� Ř × Ń �dźm™m¨V°d·m±m×6HŃ6HŃ-HÔ Iŕ'�DŚMŘ—=‘=Đ,Đ ,Đ,Ř × #Ń #Đ /ŘŹy‰y�CŇŘź7™7×6Ń6°t¸T×=UŃ=UÓV‘ŕ—‘×'Ń'¨×(@Ń(@Ŕ!ÔDŘź7™7ź?™?¨6Ó2‘ŕ—w‘w—‘ uÓ-�Hŕ×"Ń"Đ.Đ.Đ.Ř—:‘:�h¨×(;Ń(;Ó<�ŕ—-‘-�ŚŘ—W‘W—\‘\�Ś
Ř Ź=‰=�NŃ *Ř ŹG‰GŹM‰M�( D×$7Ń$7¸Ő Bŕ ŹG‰GŹM‰M�( D×$7Ń$7Ő 8r$có—|jS©N)r`)r0s r%rMzGifImageFile.tellůs €ŘŹ|‰|Đr$)r…z bytes | None)r7Úbytesr…Úbool)r…ÚNone)r…r€)r…rÂ)rbr€r…rĂ)T)rbr€r˘rÂr…rĂ)rrrÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingrJr2r9rTÚpropertyrZrr\rXrPrµrľrMÚ
__classcell__)r¸s@r%r+r+Rslř„Ř
€FŘ)ĐŘ(-Đ%ŕ€Nóóó đ6ň óđ đňóđó"'ô C!őJó6(9÷Tr$r+rzry)Ú1rzrycóđ—|jtvr|j«|Stj|j«dk(r |j dtj j¬«}|j€J‚|jjdk(rL|jjD]3}|ddk(sŚ |jj||jd<|S|S|j d«S) a 
Takes an image (or frame), returns an image in a mode that is appropriate
for saving in a Gif.
It may return the original image, or it may return an image converted to
palette or 'L' mode.
:param im: Image object
:returns: Image object
rDry©rKrxr4rr|rz) r—ÚRAWMODErŚr
Ú getmodebaser™ÚPaletteÚADAPTIVErKÚcolorsrF)r‘Úrgbas r%Ú_normalize_moderŇsĎ€đ
‡w�w”'ŃŘ
Ź‰Ś Ř� Ü ×Ń�ź™Ó! UŇ*Ř
ŹZ‰Z�¤U§]ˇ]×%;Ń%;�ZÓ
<�ŘŹz‰zĐ%Đ%Đ%Ř
Ź:‰:Ź?‰?�fŇ $Řź
™
×)Ń)ň
�Ř�‘7�a“<Ř.0Żj©j×.?Ń.?ŔŃ.E�B—G‘G�NŃ+ŘŘ� đ 
đ� Ř
Ź:‰:�c‹?Đr$cóH—d}|rXt|tttf«rt|dd«}t|tj«rt|j
«}|j dk(r#|sZ|jd«}|€J‚t|«}n9|std„td«D««}t jd|¬«|_|€J‚|râg}|j
€J‚tdt|«d«D]O}t|||dz«}|j
jj|«}||vrd}|j|«ŚQt|«D],\}}|�Ś tt|««D]
} | |vsŚ| ||<Ś,Ś.g}
|D]}|€J‚|
j|«Ś|j|
«}n@t!||«} | �2|j| |«}d |vr | j#|d «|d <|S|S|j
€J‚||j
_|S#t$$r|d =Y|SwxYw)
at
Normalizes the palette for image.
- Sets the palette to the incoming palette, if provided.
- Ensures that there's a palette for L mode images
- Optimizes the palette if necessary/desired.
:param im: Image object
:param palette: bytes object containing the source palette, or ....
:param info: encoderinfo
:returns: Image object
Niryc3ó&K—|] }|dz–—Ś y­w)r4Nr#)Ú.0r8s r%ú <genexpr>z%_normalize_palette.<locals>.<genexpr>>sčř€Ň&B°! q¨AĄvŃ&Bůs‚rDrËrr4r|)r†rÁÚ bytearrayÚlistrrKr—r»r5r6rrĐrśÚappendÚ enumerateÚ
remap_paletteÚ
_get_optimizeÚindexrŤ) r‘rKrFÚsource_paletteÚ
im_paletteÚused_palette_colorsr8Ú source_colorrÝÚjÚdest_mapÚoptimized_palette_colorss r%Ú_normalize_paletterĺ!s`€đ€NŮä �g¤¤y´$Đ7Ô 8Ü& w¨t° }Ó5�NÜ �gś|×8Ń8Ô 9Ü& w§ˇÓ7�Nŕ ‡w�w�#‚~ŮŘź™ tÓ,�JŘĐ)Đ )Đ)Ü& zÓ2‰NáÜ&Ń&B´u¸SłzÔ&BÓB�NÜ!×.Ń.¨u¸nÔM�Ś
Ř Đ %Đ%Đ %áŘ02ĐŘŹz‰zĐ%Đ%Đ%Ü�qś#�nÓ-¨qÓ1ň .�AÜ  °°A¸±EĐ!:Ó;�LŘ—J‘J×%Ń%×)Ń)¨,Ó7�EŘĐ+Ń+Ř�Ř × &Ń & uŐ -đ  .ô "Đ"5Ó6ň ‰H�A�u؉}ÜśsĐ#6Ó7Ó8ň�AŘĐ 3Ň3Ř12Đ+¨AŃ.Ůńđ đ !�Ř(ň #�EŘĐ$Đ $Đ$Ř ŹO‰O�EŐ "đ #đ×
Ń
�hÓ
'‰ä#0°°TÓ#:Đ Ř #Đ /Ř×!Ń!Đ":¸NÓK�BŘ Ń%đ-Ř+C×+IŃ+IŘ�^Ń,ó,�D�Ń(đ
�I�2�Iŕ
Ź:‰:Đ !Đ!Đ !Ř'€B‡J�JÔŘ
€Iřô
"ň-Ř�^Ń,Ř�Iđ-úsÇHČ H!Č H!c ó\—t|«}|jj«D]2\}}t|t«sŚ|j
j
||«Ś4t|||j
«}t||j
«D]}|j|«Śd}t|«r|dz}t||d|«dt|«f|_ tj||tjdd|j zdt"|j$«g«|jd«y)Nrrwr°r>r„ó)rŇrFÚitemsr†ÚstrÚ encoderinfoÚ
setdefaultrĺÚ_get_global_headerÚwriteÚ
get_interlaceÚ_write_local_headerÚ
encoderconfigr Ú_saverˇrŽrĚr—)r‘r.rKÚim_outr®Úvr1rRs r%Ú_write_single_framerôhs€ô
�RÓ
€FŘ— ‘ ×!Ń!Ó#ň,‰��1Ü �aśŐ Ř ŹN‰N× %Ń % a¨Ő +đ,ô  ¨°·±Ó
@€Fä
 ¨Ż©Ó
7ň�Ř
ʉ�Ť đđ
€EÜ�RÔŘ�‘
�Ü��B ¨Ô.ŕś}¨RÓ0Đ1€FÔÜ
‡O�OŘ�”Y—_‘_ U¨F°R·W±WŃ,<¸aÄČĎÉŃAUÓVĐWôđ‡H�H�U…Or$có2—||fDŹcgc]/}|jrt|jj«nd‘Ś1}}|d|dk7r"|jd«}|jd«}tj||«}||j d¬«fScc}w)Nr$rr rxF)Ú
alpha_only)rKrÁr™r Úsubtract_moduloÚgetbbox)Úbase_imÚim_framer‘Ú
palette_bytesÚdeltas r%Ú_getbboxrý„sž€đELČXĐCVöŘ=? R§Z˘ZŚ�bŹj‰j× Ń Ô!°SŃ8đ€Mđđ�QŃ�=¨Ń+Ň+Ř×#Ń# FÓ+�Ř—/‘/ &Ó)�Ü × &Ń & x°Ó 9€EŘ �%—-‘-¨5�-Ó1Đ 1Đ1ůňs‡4Bcó,—eZdZUded<ded<ded<y)Ú_Frameú Image.Imager‘z tuple[int, int, int, int] | NoneÚbboxúdict[str, Any]ręN)rrrÚ__annotations__r#r$r%r˙r˙‘s…Ř�OŘ
*Ó*ŘÔr$r˙c ó —|jjd«}|jjd|jjd««}g}d}d}d}tj|g|jjdg««D�]ô} t j | «D�]Ř}
t|
j««}
|dk(rU|
jj«D]8\} } | dk(rŚ t| t«sŚ|jj| | «Ś:|jj«}
d|
jvr|
jd|
jd«t|
||
«}
t|ttf«r |||
d<n"|€ d|
jvr|
jd|
d<t|ttf«r|||
d<|dz
}d}|�r�|�r~t!||
«\}}|s0|
jd«r|djdxx|
dz
cc<�Śx|djjd«dk(rÁ|jjd|jjd««}|�y|€ft#|
|«}t%j&d |
j(|«}|dj*j,}|€J‚|j/||j0«t!||
«d}�nnd
|
j(z}�n]|
jd «�rK|
j0d k7�r;d|
vr-|
j,€J‚ |
j,j3|
«|
d<d|
v�r|
j«}t%j&d |j(|
d«}|j0d
k(r1|j7«\}}}}t9j:d„||||¬«}nh|j0d k(rAt%j&d|j(«}|j=|j?««|}t9j:d„|¬«}|jA|tCjD|«¬«nd}|
}|jGtI|xs|
||
««�ŚŰ�Ś÷tK|«dk(r.d|jvr|djd|jd<y|D]¸}|j*}
|jLs/tO|
|j«D]}|jQ|«Śd
}nW|sd|jd<|jLd
|
j(zk7r|
jS|jL«}
|jLdd}tU||
||j«Śşy#t4$rY�Ś8wxYw)NrlÚdisposalrÚ
append_imagesr|r rgrryr°ÚoptimizerÉrxc ót—|d|d|d|d|d|d«|d«|d«dzd«S) Nr™rŹÚrÚgÚbÚarprÉr#©Úargss r%ú<lambda>z(_write_multiple_frames.<locals>.<lambda>ásd€¨_¨T°)©_Ř$/ D¨ˇKŘ(3¨¨U© Ř,7¨D°©K¸¸Są Ŕ4ČÁ9Ó,MČtĐTWÉyó)*đ)-¨S© ó %&đ '*ń
%*đ%(ó ."€r$)r r
r r rzcó&—|d|ddzd«S)Nr™r‘rprÉr#r
s r%rz(_write_multiple_frames.<locals>.<lambda>÷s€¨_¨T°)©_¸TŔ$ąZČ#Ń=MČsÓ-S€r$)r‘)ÚmaskFTÚinclude_color_table)+ręrśrFÚ itertoolsÚchainrÚIteratorrŇr{rčr†rérërĺrŘrrýÚ_get_backgroundr
ÚnewrŽr‘rKr˛r—Ú_new_color_indexrŤÚsplitr
Ú lambda_evalÚputdataÚget_flattened_datar’rÚinvertrŮr˙r6rrěríÚcropÚ_write_frame_data)r‘r.rKrlrÚ im_framesÚ previous_imÚ frame_countÚ
background_imÚ
imSequencerúr®róręÚ
diff_framerürr�rCÚ
first_paletteržr r
r r rÚdelta_lÚ
frame_datar1Úoffsets r%Ú_write_multiple_framesr*—s#€đŹ~‰~×!Ń! *Ó-€HŘŹ~‰~×!Ń! *¨bŻg©gŻk©k¸*Ó.EÓF€Hŕ €IŘ&*€KŘ€KŘ€MÜ—o‘o r d¨BŻN©N×,>Ń,>¸ĐPRÓ,SÓTó]P�
Ü%×.Ń.¨zÓ:ó\ P�Hä& x§}ˇ}ŁÓ7�HŘ�aŇŘ$źM™M×/Ń/Ó1ň8‘D�A�qŘ�NŇ*Ř Ü! !¤SŐ)Řź™×1Ń1°!°QŐ7đ 8đ ź.™.×-Ń-Ó/�KŘ §ˇŃ.Ř×&Ń& ~°x·}±}Ŕ^Ń7TÔUÜ)¨(°G¸[ÓI�HÜ�(¤T¬5 MÔ2Ř*2°;Ń*?� �JŇ'ŘĐ! j°H·M±MŃ&AŘ*2Ż-©-¸
Ń*C� �JŃ'Ü�(¤T¬5 MÔ2Ř*2°;Ń*?� �JŃ'Ř �1Ń �Kŕ�JÚš[ä& {°HÓ=‘ ��tŮŕ"—‘ zÔ2Ř! "™
×1Ń1°*Ó=ŔČZŃAXŃXÓ=ŮŘ�R‘=×,Ń,×0Ń0°Ó<ŔŇAđźN™N×.Ń.Ř&¨Ż©Ż © °NÓ(Có�EđĐ(Ř(Đ0Ü)8¸Ŕ5Ó)I�JÜ,1ŻI©I°c¸8ż=ą=Č*Ó,U�MŘ,5°a©LŻO©O×,CŃ,C�MŘ#0Đ#<Đ<Đ#<Ř)×4Ń4°]ŔM×DVŃDVÔWÜ'¨
°xÓ@ŔŃCšŕ%¨Ż
©
Ń5šŘ —_‘_ ZŐ0°X·]±]ŔcÓ5IŘ%¨[Ń8Ř'×/Ń/Đ;Đ;Đ;đ!ŕ (× 0Ń 0× AŃ AŔ(Ó Kđ(¨Ń7đ
&¨Ň4ŕ%-§]ˇ]Ł_�
Ü$źy™y¨¨eŻj©j¸+ŔnŃ:UÓV�Ř ź:™:¨Ň/Ř).Ż©«™J�A�q ! QÜ#,×#8Ń#8ń !"đ#$Ř"#Ř"#Ř"#ô$™Dđ" %źz™z¨SŇ0ä*/Ż)©)°C¸żąÓ*D Ř '§ˇ°×0HŃ0HÓ0JÔ KŘ(/ Ü#,×#8Ń#8Ů SŘ#(ô$�Dđ#×(Ń(¨´H·O±OŔDÓ4IĐ(ŐJŕ�Ř"�KŘ × Ń śV JŇ$:°(¸DŔ+ÓNÖ Oňy\ Pđ]Pô~ �9�~�ŇŘ �ź™Ń 'ŕ)2°1©×)AŃ)AŔ*Ń)M�BŹN‰N�:Ń &ŘŕňH�
Ř—=‘=�ŘŹŠä'¨°*×2HŃ2HÓIň
�Ř—‘�• đ
ŕ‰FńŘ@D�
×&Ń&Đ'<Ń=ŕŹ‰ &¨8Ż=©=Ń"8Ň8Ř#ź=™=¨Ż©Ó9�Ř—_‘_ R aĐ(�FÜ�"�h¨°
×0FŃ0FŐGđHđ řô} *ň!Ú đ!úsĚ2U<Ő< V ÖV có"—t|||d¬«y)NT)Úsave_all)rń)r‘r.Úfilenames r%Ú _save_allr.s€Ü �"�b�( TÖ*r$cóx—d|jvsd|jvr6|jjd|jjd««}nd}|jjdd«|r
t |||«s
t |||«|j
d«t|d«r|j«yy)NrKrTriÚflush) ręrFrśrër*rôríÚhasattrr0)r‘r.r-r,rKs r%rńrńs•€đ�B—N‘NŃ" i°2·7±7Ń&:Ř—.‘.×$Ń$ Y°·±· ± ¸IÓ0FÓG‰ŕ�Ř
ʉ×!Ń! *¨dÔ3á Ô1°"°b¸'ÔBÜ�B  GÔ,ŕ‡H�H�T„Nä�r�7ÔŘ
ʉŤ
đr$cór—|jjdd«}t|j«dkrd}|S)Nr¤r ér)ręrśÚminrŽ)r‘r¤s r%rîrî0s5€Ř—‘×"Ń" ;°Ó2€Iô �2Ź7‰7�|�bŇŘ� ŕ Đr$cóš— |jd}d|jvrt|jddz «}nd}t|jjdd««}|€|dk7s|rk|�dnd}||dzz}|j dt d «zt d
«zt |«zt
|«zt |xsd«zt d«z«|jjd «}|r"t|«} t| «}