Ë
    D·j[*  ã                  óü  — U d dl mZ d dlZd dlZd dlmZ ddlmZ ded<   	 d dl	m
Z
 d	Z e
«       Zej                  e«        ej&                  e«      ZerddlmZ  G d„ d«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z  G d„ de«      Z! G d „ d!e«      Z"i d"e“d#e“d$e“d%e“d&e“d'e“d(e“d)e“d*e“d+e“d,e“d-e“d.e“d/e“d0e“d1e"“d2e “Z#ejH                  d3k(  ree#d4<   ee#d5<   ee#d6<   e e#d7<   e!e#d8<   nee#d4<   ee#d5<   ee#d6<   e!e#d7<   e e#d8<   d:d;d9„Zy# e$ r%Zdd
lmZ  ej$                  e«      xZ
ZY dZ[�Œ4dZ[ww xY w)<é    )ÚannotationsN)ÚTYPE_CHECKINGé   )Ú	deprecateÚtypeÚFFI)r   z|
    struct Pixel_RGBA {
        unsigned char r,g,b,a;
    };
    struct Pixel_I16 {
        unsigned char l,r;
    };
    )ÚDeferredError)ÚImagec                  ój   — e Zd Zd	d
d„Zdd„Z	 	 	 	 	 	 dd„Zdd„ZeZeZdd„Z	dd„Z
	 	 	 	 	 	 	 	 dd„Zy)ÚPyAccessc                ó  — t        dd«       t        |j                  j                  «      }|| _        t
        j                  d|d   «      | _        t
        j                  d|d   «      | _        t
        j                  d|d   «      | _	        |j                  j                  \  | _        | _        || _        |j                  | _        | j                  j                  dv r|j                   | _        | j%                  «        y )	Nr   é   zunsigned char **Úimage8zint **Úimage32Úimage©ÚPÚPA)r   ÚdictÚimÚunsafe_ptrsÚreadonlyÚffiÚcastr   r   r   ÚsizeÚxsizeÚysizeÚ_imgÚ_imÚmodeÚpaletteÚ_paletteÚ
_post_init)ÚselfÚimgr   Úvalss       úZ/var/www/html/ai-video-generator/backend/venv/lib/python3.12/site-packages/PIL/PyAccess.pyÚ__init__zPyAccess.__init__9   s¼   € Ü�*˜bÔ!Ü�C—F‘F×&Ñ&Ó'ˆØ ˆŒÜ—h‘hÐ1°4¸±>ÓBˆŒÜ—x‘x ¨$¨y©/Ó:ˆŒÜ—X‘XÐ0°$°w±-Ó@ˆŒ
Ø!$§¡§¡ÑˆŒ
�D”JØˆŒ	ð —6‘6ˆŒØ�8‰8�=‰=˜KÑ'ØŸK™KˆDŒMð
 	�‰Õó    c                 ó   — y ©N© )r$   s    r'   r#   zPyAccess._post_initM   s   € Ør)   c                óF  — | j                   rd}t        |«      ‚|\  }}|dk  r| j                  |z   }|dk  r| j                  |z   }| j	                  ||f«      \  }}| j
                  j                  dv r›t        |t        t        f«      r…t        |«      dv rx| j
                  j                  dk(  rt        |«      dk(  r|d   nd}|d	d }| j                  j                  || j                  «      }| j
                  j                  dk(  r|fn|}| j                  |||«      S )
a„  
        Modifies the pixel at x,y. The color is given as a single
        numerical value for single band images, and a tuple for
        multi-band images. In addition to this, RGB and RGBA tuples
        are accepted for P and PA images.

        :param xy: The pixel coordinate, given as (x, y). See
           :ref:`coordinate-system`.
        :param color: The pixel value.
        z%Attempt to putpixel a read only imager   r   )é   é   r   r/   r.   éÿ   N)r   Ú
ValueErrorr   r   Úcheck_xyr   r    Ú
isinstanceÚlistÚtupleÚlenr"   Úgetcolorr   Ú	set_pixel)r$   ÚxyÚcolorÚmsgÚxÚyÚalphaÚpalette_indexs           r'   Ú__setitem__zPyAccess.__setitem__P   s  € ð �=Š=Ø9ˆCÜ˜S“/Ð!Ø‰ˆˆAØˆqŠ5Ø—
‘
˜Q‘ˆAØˆqŠ5Ø—
‘
˜Q‘ˆAØ—‘  1˜vÓ&‰ˆˆAð �H‰H�M‰M˜[Ñ(Ü˜5¤4¬ -Ô0Ü�E“
˜fÑ$ð �x‰x�}‰} Ò$Ü$'¨£J°!¢O˜˜aš¸�Ø˜b˜q˜	�Ø ŸM™M×2Ñ2°5¸$¿)¹)ÓDˆMØ.2¯h©h¯m©m¸tÒ.C�] EÑ*ÈˆEà�~‰~˜a  EÓ*Ð*r)   c                ó¬   — |\  }}|dk  r| j                   |z   }|dk  r| j                  |z   }| j                  ||f«      \  }}| j                  ||«      S )aq  
        Returns the pixel at x,y. The pixel is returned as a single
        value for single band images or a tuple for multiple band
        images

        :param xy: The pixel coordinate, given as (x, y). See
          :ref:`coordinate-system`.
        :returns: a pixel value for single band images, a tuple of
          pixel values for multiband images.
        r   )r   r   r2   Ú	get_pixel)r$   r9   r<   r=   s       r'   Ú__getitem__zPyAccess.__getitem__w   s\   € ð ‰ˆˆAØˆqŠ5Ø—
‘
˜Q‘ˆAØˆqŠ5Ø—
‘
˜Q‘ˆAØ—‘  1˜vÓ&‰ˆˆAØ�~‰~˜a Ó#Ð#r)   c                óˆ   — |\  }}d|cxk  r| j                   k  rn nd|cxk  r| j                  k  sn d}t        |«      ‚|S )Nr   zpixel location out of range)r   r   r1   )r$   r9   r<   r=   r;   s        r'   r2   zPyAccess.check_xy�   s@   € Ø‰ˆˆAØ�QÔ#˜Ÿ™Õ#¨¨QÔ(;°·±Ô(;Ø/ˆCÜ˜S“/Ð!Øˆ	r)   c                ó   — t        «       ‚r+   ©ÚNotImplementedError©r$   r<   r=   s      r'   rB   zPyAccess.get_pixel”   s   € Ü!Ó#Ð#r)   c                ó   — t        «       ‚r+   rF   ©r$   r<   r=   r:   s       r'   r8   zPyAccess.set_pixel—   s   € ô "Ó#Ð#r)   N©F)r%   úImage.Imager   ÚboolÚreturnÚNone)rN   rO   )r9   útuple[int, int] | list[int]r:   ú#float | tuple[int, ...] | list[int]rN   rO   )r9   rP   rN   úfloat | tuple[int, ...])r9   útuple[int, int]rN   rS   )r<   Úintr=   rT   rN   rR   )r<   rT   r=   rT   r:   rQ   rN   rO   )Ú__name__Ú
__module__Ú__qualname__r(   r#   r@   rC   ÚputpixelÚgetpixelr2   rB   r8   r,   r)   r'   r   r   8   sn   „ ôó(ð%+à'ð%+ð 3ð%+ð 
ó	%+óN$ð& €HØ€Hóó$ð$Øð$Øð$Ø%Hð$à	ô$r)   r   c                  ó$   — e Zd ZdZd„ Zdd„Zd„ Zy)Ú_PyAccess32_2z7PA, LA, stored in first and last bytes of a 32 bit wordc                óN   — t         j                  d| j                  «      | _        y ©Nzstruct Pixel_RGBA **©r   r   r   Úpixels©r$   ÚargsÚkwargss      r'   r#   z_PyAccess32_2._post_init    ó   € Ü—h‘hÐ5°t·|±|ÓDˆ�r)   c                óV   — | j                   |   |   }|j                  |j                  fS r+   )r_   ÚrÚa©r$   r<   r=   Úpixels       r'   rB   z_PyAccess32_2.get_pixel£   s'   € Ø—‘˜A‘˜qÑ!ˆØ�w‰w˜Ÿ™ÐÐr)   c                óx   — | j                   |   |   }t        |d   d«      |_        t        |d   d«      |_        y )Nr   r0   r   )r_   Úminre   rf   ©r$   r<   r=   r:   rh   s        r'   r8   z_PyAccess32_2.set_pixel§   s8   € Ø—‘˜A‘˜qÑ!ˆä�e˜A‘h Ó$ˆŒÜ�e˜A‘h Ó$ˆ�r)   N)r<   rT   r=   rT   rN   rS   ©rU   rV   rW   Ú__doc__r#   rB   r8   r,   r)   r'   r[   r[   �   s   „ ÙAòEó ó%r)   r[   c                  ó$   — e Zd ZdZd„ Zdd„Zd„ Zy)Ú_PyAccess32_3zARGB and friends, stored in the first three bytes of a 32 bit wordc                óN   — t         j                  d| j                  «      | _        y r]   r^   r`   s      r'   r#   z_PyAccess32_3._post_init±   rc   r)   c                ól   — | j                   |   |   }|j                  |j                  |j                  fS r+   )r_   re   ÚgÚbrg   s       r'   rB   z_PyAccess32_3.get_pixel´   s-   € Ø—‘˜A‘˜qÑ!ˆØ�w‰w˜Ÿ™ §¡Ð(Ð(r)   c                ó®   — | j                   |   |   }t        |d   d«      |_        t        |d   d«      |_        t        |d   d«      |_        d|_        y )Nr   r0   r   é   ©r_   rj   re   rr   rs   rf   rk   s        r'   r8   z_PyAccess32_3.set_pixel¸   sQ   € Ø—‘˜A‘˜qÑ!ˆä�e˜A‘h Ó$ˆŒÜ�e˜A‘h Ó$ˆŒÜ�e˜A‘h Ó$ˆŒØˆ�r)   N)r<   rT   r=   rT   rN   ztuple[int, int, int]rl   r,   r)   r'   ro   ro   ®   s   „ ÙKòEó)ór)   ro   c                  ó$   — e Zd ZdZd„ Zdd„Zd„ Zy)Ú_PyAccess32_4z&RGBA etc, all 4 bytes of a 32 bit wordc                óN   — t         j                  d| j                  «      | _        y r]   r^   r`   s      r'   r#   z_PyAccess32_4._post_initÄ   rc   r)   c                ó‚   — | j                   |   |   }|j                  |j                  |j                  |j                  fS r+   )r_   re   rr   rs   rf   rg   s       r'   rB   z_PyAccess32_4.get_pixelÇ   s3   € Ø—‘˜A‘˜qÑ!ˆØ�w‰w˜Ÿ™ §¡¨%¯'©'Ð1Ð1r)   c                óÈ   — | j                   |   |   }t        |d   d«      |_        t        |d   d«      |_        t        |d   d«      |_        t        |d   d«      |_        y )Nr   r0   r   ru   r.   rv   rk   s        r'   r8   z_PyAccess32_4.set_pixelË   s\   € Ø—‘˜A‘˜qÑ!ˆä�e˜A‘h Ó$ˆŒÜ�e˜A‘h Ó$ˆŒÜ�e˜A‘h Ó$ˆŒÜ�e˜A‘h Ó$ˆ�r)   N)r<   rT   r=   rT   rN   ztuple[int, int, int, int]rl   r,   r)   r'   rx   rx   Á   s   „ Ù0òEó2ó%r)   rx   c                  ó$   — e Zd ZdZd„ Zdd„Zd„ Zy)Ú
_PyAccess8z%1, L, P, 8 bit images stored as uint8c                ó&   — | j                   | _        y r+   )r   r_   r`   s      r'   r#   z_PyAccess8._post_init×   s   € Ø—k‘kˆ�r)   c                ó&   — | j                   |   |   S r+   ©r_   rH   s      r'   rB   z_PyAccess8.get_pixelÚ   ó   € Ø�{‰{˜1‰~˜aÑ Ð r)   c                óš   — 	 t        |d«      | j                  |   |<   y # t        $ r" t        |d   d«      | j                  |   |<   Y y w xY w)Nr0   r   ©rj   r_   Ú	TypeErrorrJ   s       r'   r8   z_PyAccess8.set_pixelÝ   sK   € ð	3ä # E¨3£ˆD�K‰K˜‰N˜1ÒøÜò 	3ä # E¨!¡H¨cÓ 2ˆD�K‰K˜‰N˜1Óð	3úó   ‚ Ÿ(A
Á	A
N©r<   rT   r=   rT   rN   rT   rl   r,   r)   r'   r}   r}   Ô   s   „ Ù/ò"ó!ó3r)   r}   c                  ó$   — e Zd ZdZd„ Zdd„Zd„ Zy)Ú_PyAccessI16_Nz0I;16 access, native bitendian without conversionc                óN   — t         j                  d| j                  «      | _        y )Nzunsigned short **©r   r   r   r_   r`   s      r'   r#   z_PyAccessI16_N._post_inité   s   € Ü—h‘hÐ2°D·J±JÓ?ˆ�r)   c                ó&   — | j                   |   |   S r+   r€   rH   s      r'   rB   z_PyAccessI16_N.get_pixelì   r�   r)   c                óš   — 	 t        |d«      | j                  |   |<   y # t        $ r" t        |d   d«      | j                  |   |<   Y y w xY w)Néÿÿ  r   rƒ   rJ   s       r'   r8   z_PyAccessI16_N.set_pixelï   sL   € ð	5ä # E¨5Ó 1ˆD�K‰K˜‰N˜1ÒøÜò 	5ä # E¨!¡H¨eÓ 4ˆD�K‰K˜‰N˜1Óð	5úr…   Nr†   rl   r,   r)   r'   rˆ   rˆ   æ   s   „ Ù:ò@ó!ó5r)   rˆ   c                  ó$   — e Zd ZdZd„ Zdd„Zd„ Zy)Ú_PyAccessI16_LzI;16L access, with conversionc                óN   — t         j                  d| j                  «      | _        y ©Nzstruct Pixel_I16 **rŠ   r`   s      r'   r#   z_PyAccessI16_L._post_initû   ó   € Ü—h‘hÐ4°d·j±jÓAˆ�r)   c                ó^   — | j                   |   |   }|j                  |j                  dz  z   S ©Né   ©r_   Úlre   rg   s       r'   rB   z_PyAccessI16_L.get_pixelþ   s+   € Ø—‘˜A‘˜qÑ!ˆØ�w‰w˜Ÿ™ 3™Ñ&Ð&r)   c                ó¦   — | j                   |   |   }	 t        |d«      }|dz  |_        |dz	  |_        y # t        $ r t        |d   d«      }Y Œ/w xY w)Nr�   r   r0   é   )r_   rj   r„   r—   re   rk   s        r'   r8   z_PyAccessI16_L.set_pixel  s^   € Ø—‘˜A‘˜qÑ!ˆð	)Ü˜˜uÓ%ˆEð ˜$‘,ˆŒØ˜1‘*ˆ�øô	 ò 	)Ü˜˜a™ %Ó(ŠEð	)úó   ”5 µAÁANr†   rl   r,   r)   r'   r�   r�   ø   s   „ Ù'òBó'ór)   r�   c                  ó$   — e Zd ZdZd„ Zdd„Zd„ Zy)Ú_PyAccessI16_BzI;16B access, with conversionc                óN   — t         j                  d| j                  «      | _        y r‘   rŠ   r`   s      r'   r#   z_PyAccessI16_B._post_init  r’   r)   c                ó^   — | j                   |   |   }|j                  dz  |j                  z   S r”   r–   rg   s       r'   rB   z_PyAccessI16_B.get_pixel  s+   € Ø—‘˜A‘˜qÑ!ˆØ�w‰w˜‰}˜uŸw™wÑ&Ð&r)   c                ó¦   — | j                   |   |   }	 t        |d«      }|dz	  |_        |dz  |_        y # t        $ r t        |d   d«      }Y Œ/w xY w)Nr�   r   r™   r0   )r_   rj   Ú	Exceptionr—   re   rk   s        r'   r8   z_PyAccessI16_B.set_pixel  s^   € Ø—‘˜A‘˜qÑ!ˆð	)Ü˜˜uÓ%ˆEð ˜1‘*ˆŒØ˜$‘,ˆ�øô	 ò 	)Ü˜˜a™ %Ó(ŠEð	)úrš   Nr†   rl   r,   r)   r'   rœ   rœ     s   „ Ù'òBó'ór)   rœ   c                  ó$   — e Zd ZdZd„ Zdd„Zd„ Zy)Ú_PyAccessI32_Nz"Signed Int32 access, native endianc                ó&   — | j                   | _        y r+   ©r   r_   r`   s      r'   r#   z_PyAccessI32_N._post_init%  ó   € Ø—l‘lˆ�r)   c                ó&   — | j                   |   |   S r+   r€   rH   s      r'   rB   z_PyAccessI32_N.get_pixel(  r�   r)   c                ó(   — || j                   |   |<   y r+   r€   rJ   s       r'   r8   z_PyAccessI32_N.set_pixel+  s   € Ø!ˆ�‰�A‰�qÒr)   Nr†   rl   r,   r)   r'   r¢   r¢   "  s   „ Ù,ò#ó!ó"r)   r¢   c                  ó*   — e Zd ZdZd„ Zd„ Zdd„Zd„ Zy)Ú_PyAccessI32_Swapz,I;32L/B access, with byteswapping conversionc                ó&   — | j                   | _        y r+   r¤   r`   s      r'   r#   z_PyAccessI32_Swap._post_init2  r¥   r)   c                óÒ   — t         j                  d|«      }t         j                  d|«      }|d   |d   |d   |d   f\  |d<   |d<   |d<   |d<   t         j                  d|«      d   S )Nzint *zunsigned char *r.   ru   r   r   )r   Únewr   )r$   ÚiÚorigÚcharss       r'   Úreversez_PyAccessI32_Swap.reverse5  sq   € Ü�w‰w�w Ó"ˆÜ—‘Ð*¨DÓ1ˆØ16°q±¸5À¹8ÀUÈ1ÁXÈuÐUVÉxÐ1WÑ.ˆˆa‰�%˜‘(˜E !™H e¨A¡hÜ�x‰x˜ Ó'¨Ñ*Ð*r)   c                óD   — | j                  | j                  |   |   «      S r+   ©r°   r_   rH   s      r'   rB   z_PyAccessI32_Swap.get_pixel;  s   € Ø�|‰|˜DŸK™K¨™N¨1Ñ-Ó.Ð.r)   c                óF   — | j                  |«      | j                  |   |<   y r+   r²   rJ   s       r'   r8   z_PyAccessI32_Swap.set_pixel>  s   € Ø ŸL™L¨Ó/ˆ�‰�A‰�qÒr)   Nr†   )rU   rV   rW   rm   r#   r°   rB   r8   r,   r)   r'   r©   r©   /  s   „ Ù6ò#ò+ó/ó0r)   r©   c                  ó$   — e Zd ZdZd„ Zdd„Zd„ Zy)Ú
_PyAccessFz32 bit float accessc                óN   — t         j                  d| j                  «      | _        y )Nzfloat **r^   r`   s      r'   r#   z_PyAccessF._post_initE  s   € Ü—h‘h˜z¨4¯<©<Ó8ˆ�r)   c                ó&   — | j                   |   |   S r+   r€   rH   s      r'   rB   z_PyAccessF.get_pixelH  r�   r)   c                ór   — 	 || j                   |   |<   y # t        $ r |d   | j                   |   |<   Y y w xY w)Nr   )r_   r„   rJ   s       r'   r8   z_PyAccessF.set_pixelK  s>   € ð	)à %ˆD�K‰K˜‰N˜1ÒøÜò 	)à % a¡ˆD�K‰K˜‰N˜1Óð	)ús   ‚ •6µ6N)r<   rT   r=   rT   rN   Úfloatrl   r,   r)   r'   rµ   rµ   B  s   „ Ùò9ó!ó)r)   rµ   Ú1ÚLr   zI;16NÚLAÚLar   ÚRGBÚLABÚHSVÚYCbCrÚRGBAÚRGBaÚRGBXÚCMYKÚFÚIÚlittlezI;16zI;16LzI;16BzI;32LzI;32Bc                óš   — t         j                  | j                  d «      }|s!t        j	                  d| j                  «       y  || |«      S )NzPyAccess Not Implemented: %s)Úmode_mapÚgetr    ÚloggerÚdebug)r%   r   Úaccess_types      r'   r¬   r¬   x  s<   € Ü—,‘,˜sŸx™x¨Ó.€KÙÜ�‰Ð3°S·X±XÔ>ØÙ�s˜HÓ%Ð%r)   rK   )r%   rL   r   rM   rN   zPyAccess | None)%Ú
__future__r   ÚloggingÚsysÚtypingr   Ú
_deprecater   Ú__annotations__Úcffir   Údefsr   ÚcdefÚImportErrorÚexÚ_utilr	   r¬   Ú	getLoggerrU   rÌ   Ú r
   r   r[   ro   rx   r}   rˆ   r�   rœ   r¢   r©   rµ   rÊ   Ú	byteorderr,   r)   r'   ú<module>rÞ      sR  ðö* #ã Û 
Ý  å !à	ƒ	ð&Ýð€Dñ ‹%€CØ‡H�HˆT„Nð 
ˆ×	Ñ	˜8Ó	$€áÝ÷b$ñ b$ôJ%�Hô %ô"�Hô ô&%�Hô %ô&3�ô 3ô$5�Xô 5ô$�Xô ô*�Xô ô*
"�Xô 
"ô0˜ô 0ô&)�ô )ð$Øˆðàˆðð ˆðð ˆ^ð	ð
 	ˆ-ðð 	ˆ-ðð 	ˆ-ðð 
ˆ=ðð 
ˆ=ðð 
ˆ=ðð ˆ]ðð ˆMðð ˆMðð ˆMðð ˆMðð  ˆð!ð" ˆð#€ð( ‡=�=�HÒØ%€HˆVÑØ&€HˆWÑØ&€HˆWÑà&€HˆWÑØ)€HˆWÒà%€HˆVÑØ&€HˆWÑØ&€HˆWÑà)€HˆWÑØ&€HˆWÑõ&øð[
 ò &õ %à!�×!Ñ! "Ó%Ð%€CŽ#ûð&ús   ¢ E ÅE;ÅE6Å6E;