Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
PngImagePlugin.cpython-313.pyc262 linesDownload Raw Back to __pycache__
1�

2v�j)�����SSKJr SSKrSSKrSSKrSSKrSSKrSSKrSSKJ	r	 SSK3Jr SSKJ
r
JrJr SSKJrJrJrJrJr SSKJr SS	KJr SS4KJr SSKJr SSKJr SS
K J!r! SSK"J#r# Sr$\$(aSSK%J&r& SSKJ'r'J(r( SSKJ)r) \RT"\+5r,\RZ"S5R\r/Sr0SSSSSSSSSSSS S!S"S#S$.r1\RZ"S%5r2\Rfr4S&\4-r5"S'S(\	5r6"S)S*\	5r7SWS+jr8SXSYS,jjr9"S-S.5r:"S/S0\;5r<"S1S25r="S3S4\5r>"S5S6\:5r?SZS7jr@"S8S9\R&5rAS:S;S<S=S>S?S@S@S@SASBSCSDSESFSG.rBS[SHjrC"SISJ5rD"SKSL5rES\SMjrF"SNSO\5rGS]SPjrHS^SQjrI\CS4S_SRjjrJS`SSjrK\R�"\AR�\A\@5 \R�"\AR�\J5 \R�"\AR�\I5 \R�"\AR�STSU/5 \R�"\AR�SV5 g)a�)�annotationsN)�IntEnum)�Fraction)�IO�5NamedTuple�cast�)�Image�6ImageChops�	ImageFile�ImagePalette�
ImageSequence)�i16be)�i32be)�o8)�o16be)�o32be)�	deprecate)�
DeferredErrorF)�Callable)�Any�NoReturn)�_imagings\w\w\w\ws�PNG
78)�1r)�L�L;2)r�L;4)rr)�I;16�I;16B)�RGBr )r zRGB;16B)�P�P;1)r!�P;2)r!�P;4)r!r!)�LAr%)�RGBAzLA;16B)r&r&)r&zRGBA;16B))r	r)�r)�r)�r)�r)r)r')r*r')r	�)r'r+)r(r+)r)r+)r)r()r*r()r)�)r*r,s^�*�*$�@c�$�\rSrSrSrSrSrSrg)�Disposal�nrr	r'�N)�__name__�9__module__�__qualname__�__firstlineno__�OP_NONE�
OP_BACKGROUND�OP_PREVIOUS�__static_attributes__r1��XD:\code\apps\devtools\python\user_packages\Python313\site-packages\PIL/PngImagePlugin.pyr/r/ns$���G���M��10�K�r:r/c��\rSrSrSrSrSrg)�Blend�rr	r1N)r2r3r4r5�	OP_SOURCE�OP_OVERr9r1r:r;r=r=�s���I��11�G�r:r=c��[R"5nURU[5nUR(a
Sn[U5eU$)Nz=Decompressed data too large for PngImagePlugin.MAX_TEXT_CHUNK)�zlib�
decompressobj�12decompress�MAX_TEXT_CHUNK�unconsumed_tail�13ValueError)�s�dobj�	plaintext�msgs    r;�_safe_zlib_decompressrL�s>������D�����>�2�I����M����o���r:c�4�[R"X5S-$)Nl��)rB�crc32)�data�seeds  r;�_crc32rQ�s���:�:�d�!�J�.�.r:c�|�\rSrSrSSjrSSjrSSjrSSjrSSjrSSjr	SSjr14SS	jrSS15jrSSSjjr
Srg
)�ChunkStream�c��Xl/Ulg�N��fp�queue)�selfrXs  r;�__init__�ChunkStream.__init__�s��$&��:<��16r:c���SnURceUR(a9URR5upnURRU5 OEURR	S5nUSSnURR5n[
U5n[U5(d/[R(dS[U5S3n[U5eXU4$)z.Fetch a new chunk. Returns header information.Nr)r(zbroken PNG file (chunk �))rXrY�pop�seek�read�tell�i32�is_cidr�LOAD_TRUNCATED_IMAGES�repr�SyntaxError)rZ�cid�pos�lengthrHrKs      r;ra�ChunkStream.read�s������w�w�"�"�"��:�:�#�z�z�~�~�/��C�f��G�G�L�L��������Q��A��A�B�%�C��'�'�,�,�.�C���V�F��c�{�{��2�2�/��S�	�{�!�<��!�#�&�&����r:c��U$rVr1�rZs r;�	__enter__�ChunkStream.__enter__�s���r:c�$�UR5 grV)�close)rZ�argss  r;�__exit__�ChunkStream.__exit__�s���17�18�r:c� �S=UlUlgrV)rYrXrms r;rq�ChunkStream.close�s��#�#��19�T�Wr:c�\�URceURRXU45 grV)rY�append�rZrhrirjs    r;�push�ChunkStream.push�s)���z�z�%�%�%��20�21���3�V�,�-r:c�x�[RSXU5 [USURS535"X#5$)z"Call the appropriate chunk handlerzSTREAM %r %s %s�chunk_�ascii)�logger�debug�getattr�decoderys    r;�call�ChunkStream.call�s8��	���&��&�9��t�v�c�j�j��&9�%:�;�<�S�I�Ir:c��[R(a"USS-	S-(aURX5 gURce[	U[	U55n[URR
S55nX4:waS[U5S3n[U5eg![Ra nS[U5S3n[U5UeSnAff=f)	zRead and verify checksumr�r	Nr(z(broken PNG file (bad header checksum in r^z(broken PNG file (incomplete checksum in )rre�crc_skiprXrQrcrarfrg�struct�error)rZrhrO�crc1�crc2rK�es       r;�crc�ChunkStream.crc�s����*�*��A��!��a���M�M�#�$���w�w�"�"�"�	*��$��s��,�D��t�w�w�|�|�A��'�D��|�@��c���1�M��!�#�&�&����|�|�	*�<�T�#�Y�K�q�I�C��c�"��)��	*�s�AB!�!C�5C�Cc�X�URceURRS5 g)z
Read checksumNr()rXra)rZrhrOs   r;r��ChunkStream.crc_skip�s#���w�w�"�"�"������Q�r:c�:�/nURceUR5up4nX1:XaU$URU[R"URU55 URU5 M`![RanSn[	U5UeSnAff=f)Nztruncated PNG file)	rXrar�r��OSErrorr�r�22_safe_readrx)rZ�endchunk�cidsrhrirjr�rKs        r;�verify�ChunkStream.verify�s������w�w�"�"�"��
*�#'�9�9�;� ��&�23�����
�H�H�S�)�.�.�t�w�w��?�@��K�K������<�<�
*�*���c�l��)��
*�s�A3�3B�B�BrWN�rX�	IO[bytes]�return�None)r�ztuple[bytes, int, int])r�rS)rr�objectr�r��r�r�)rh�bytesri�intrjr�r�r�)rhr�rir�rjr�r�r�)rhr�rOr�r�r�)�IEND)r�r�r�zlist[bytes])r2r3r4r5r[rarnrsrqrzr�r�r�r�r9r1r:r;rSrS�s:��=� �*��$�.�J�*�*��r:rSc�V�\rSrSr%SrS\S'S\S'\S	S24Sjj5rSrg)�iTXt�ze25Subclass of string to allow iTXt chunks to look like strings while26keeping their extra information27 28zstr | bytes | None�lang�tkeyNc�H�[RX5nX$lX4lU$)z�29:param cls: the class to use when creating the instance30:param text: value for this key31:param lang: language code32:param tkey: UTF-8 version of the key name33)�str�__new__r�r�)�cls�textr�r�rZs     r;r��iTXt.__new__34s!���{�{�3�%���	��	��r:)r�r�)NN)r�r�r��35str | Noner�r�r�r�)	r2r3r4r5�__doc__�__annotations__�staticmethodr�r9r1r:r;r�r�sJ�����36���DH�
��
�(�
�7A�
�	
�
��
r:r�c�x�\rSrSrSrS	SjrS37SSjjrSS
SjjrS38SSjjrSr	g)�PngInfoiz439PNG chunk container (for use with save(pnginfo=))40 41c��/UlgrV��chunksrms r;r[�PngInfo.__init__!s	��79��r:c�>�URRXU45 g)z�Appends an arbitrary chunk. Use with caution.42 43:param cid: a byte string, 4 bytes long.44:param data: a byte string of the encoded data45:param after_idat: for use with private chunks. Whether the chunk46                   should be written after IDAT47 48N)r�rx)rZrhrO�49after_idats    r;�add�PngInfo.add$s��	
�����C�z�2�3r:c��[U[5(dURSS5n[U[5(dURSS5n[U[5(dURSS5n[U[5(dURSS5nU(a9URSUS-U-S-U-S-[R50"U5-5 gURSUS-U-S-U-S-U-5 g)	z�Appends an iTXt chunk.51 52:param key: latin-1 encodable text key name53:param value: value for this key54:param lang: language code55:param tkey: UTF-8 version of the key name56:param zip: compression flag57 58�latin-1�strict�utf-8�iTXts�sN)�59isinstancer��encoder�rB�compress)rZ�key�valuer�r��zips      r;�add_itxt�PngInfo.add_itxt0s���$�#�u�%�%��*�*�Y��1�C��%��'�'��L�L��(�3�E��$��&�&��;�;�w��1�D��$��&�&��;�;�w��1�D���H�H���k�!�D�(�5�0�4�7�%�?�$�-�-�PU�BV�V�
�60
�H�H�W�c�I�o��4�u�<�t�C�e�K�e�S�Tr:c�4�[U[5(aHURUUURbUROSURbURUS9$SUS9$[U[615(dUR
SS5n[U[625(dUR
SS5nU(a-URSUS-[R"U5-5 gURSUS	-U-5 g![a URXUS9s$f=f)63z�Appends a text chunk.64 65:param key: latin-1 encodable text key name66:param value: value for this key, text or an67   :py:class:`PIL.PngImagePlugin.iTXt` instance68:param zip: compression flag69 70Nr:)r�r�r��zTXt��tEXtr�)r�r�r�r�r�r�r��UnicodeErrorr�rBr�)rZr�r�r�s    r;�add_text�PngInfo.add_textSs71���e�T�"�"��=�=���#�j�j�4��72�73�#�#�j�j�4��74�75��!��
�;>��!��
��%��'�'�
:����Y��9���#�u�%�%��*�*�Y��1�C���H�H�W�c�G�m�d�m�m�E�.B�B�C��H�H�W�c�E�k�E�1�2�� �
:��}�}�S�S�}�9�9�
:�s�4C:�:D�Dr�Nr��F)rhr�rOr�r��boolr�r�)�r�F)r��str | bytesr�r�r�r�r�r�r�r�r�r�)r�r�r�zstr | bytes | iTXtr�r�r�r�)76r2r3r4r5r�r[r�r�r�r9r1r:r;r�r�s����77:�784� ���
!U�
�!U��!U��	!U�79�!U��
!U�80�!U�HHM�!3��!3�'9�!3�@D�!3�	
�!3�!3r:r�c�4�\rSrSr%S\S'S\S'S\S'Srg	)81�_RewindStatei{z dict[str | tuple[int, int], Any]�infozlist[ImageFile._Tile]�tilez82int | None�seq_numr1N�r2r3r4r5r�r9r1r:r;r�r�{s��83*�*�84��
�r:r�c��^�\rSrSrSU4SjjrSSjrSSjrSSjrSSjrSSjr	SSjr85SS	jrSS86jrSSjr
SSjrSS
jrSSjrSSjrSSjrSSjrSSjrSSjrSSjrSSjrSSjrSrU=r$)�	PngStreami�c��>�[TU]U5 0Ul0UlSUlSUl/UlSUlSUlSUl	SUl87[0/S5UlSUl
g)N�rrr�r)�superr[�im_info�im_text�im_size�im_mode�im_tile�88im_palette�im_custom_mimetype�im_n_frames�_seq_numr��rewind_state�text_memory)rZrX�	__class__s  �r;r[�PngStream.__init__�sl���
�����:<���.0���������.0���48���.2���'+���$(��
�(��R��6�����r:c��U=RU-
slUR[:�aSURS3n[U5eg)Nz%Too much memory used in text chunks: z>MAX_TEXT_MEMORY)r��MAX_TEXT_MEMORYrG)rZ�chunklenrKs   r;�check_text_memory�PngStream.check_text_memory�sN�����H�$�����o�-�7��#�#�$�$4�6�
��S�/�!�.r:c��[URR5URUR5UlgrV)r�r��copyr�r�r�rms r;�save_rewind�PngStream.save_rewind�s-��(��L�L�����L�L��M�M�89��r:c���URRR5UlURRUlURRUlgrV)r�r�r�r�r�r�r�r�rms r;�rewind�PngStream.rewind�sD���(�(�-�-�2�2�4����(�(�-�-����)�)�1�1��
r:c���URce[R"URU5nURS5n[RSUSU5 X4S-n[RSU5 US:waSUS3n[
U5e[X4S-S5nXpRS	'U$![a [R(aSnN3e[Ra SnNKf=f)90Nr�ziCCP profile name %rr	zCompression method %sr�Unknown compression method z in iCCP chunkr'�icc_profile)
rXrr��findrr�rgrLrGrerBr�r�)rZrirjrH�i�comp_methodrKr�s        r;�91chunk_iCCP�PngStream.chunk_iCCP�s����w�w�"�"�"�� � ����&�1��
�F�F�5�M�����+�Q�r��U�3��A��h�����,�k�:��!��/��}�N�K�C��c�"�"�	�/��a�%�'�92�;�K�'2���]�#�����	��.�.�"����z�z�	��K�	�s�B0�0!C,�C,�+C,c��URce[R"URU5nUS:a$[R(aU$Sn[	U5e[US5[US54Ul[USUS4uUlUl	US(aSURS	'US93(a
Sn[U5eU$![a N>f=f)N�
zTruncated IHDR chunkrr(r)�	�r	�	interlace�zunknown filter category)
rXrr�rerGrcr��_MODESr��94im_rawmode�	Exceptionr�rg�rZrirjrHrKs     r;�95chunk_IHDR�PngStream.chunk_IHDR�s����w�w�"�"�"�� � ����&�1���B�;��.�.���(�C��S�/�!��1�a�y�#�a��)�+���	�,2�A�a�D�!�A�$�<�,@�)�D�L�$�/�
�R�5�()�D�L�L��%��R�5�+�C��c�"�"�����	��	�s�9C	�	96C�Cc�N�SUR;a1[R"SURSXR5/nOLURbSURS'[R"SSUR97-XR5/nX0lX lSn[U5e)N�bboxr�T�
default_imager�zimage data found)	r�r�_Tilerr�r�r��im_idat�EOFError)rZrirjr�rKs     r;�98chunk_IDAT�PngStream.chunk_IDAT�s����T�\�\�!��O�O�E�4�<�<��+?��o�o�V�W�D����+�04����_�-��O�O�E�6�D�L�L�+@�#���W�X�D����� ���s�m�r:c��Sn[U5e)Nzend of PNG image)r)rZrirjrKs    r;�99chunk_IEND�PngStream.chunk_IEND�s�� ���s�m�r:c��URce[R"URU5nURS:Xa	SU4UlU$)Nr!r )rXrr�r�r��rZrirjrHs    r;�100chunk_PLTE�PngStream.chunk_PLTE�sD���w�w�"�"�"�� � ����&�1���<�<�3��#�Q�h�D�O��r:c�b�URce[R"URU5nURS:XaR[RU5(a'UR
S5nUS:�aX@RS'U$X0RS'U$URS:Xa#[U5(aSOSURS'U$URS;a[U5URS'U$URS:Xa/[U5[US	5[US10154URS'U$)Nr!r�r�transparencyr��)rrr r'r()	rXrr�r��_simple_palette�matchr�r��i16)rZrirjrHr�s     r;�102chunk_tRNS�PngStream.chunk_tRNS�s���w�w�"�"�"�� � ����&�1���<�<�3���$�$�Q�'�'��F�F�5�M����6�34�L�L��0���01���^�,���
�\�\�S�
 �25�a�&�&�3�a�D�L�L��(�103��	�\�\�]�
*�+.�q�6�D�L�L��(����\�\�U�
"�+.�q�6�3�q�!�9�c�!�Q�i�+G�D�L�L��(��r:c��URce[R"URU5n[U5S-URS'U$)N�j�@�gamma)rXrr�rcr�rs    r;�104chunk_gAMA�PngStream.chunk_gAMA	sD���w�w�"�"�"�� � ����&�1�� #�A��� 1����W���r:c���URce[R"URU5n[R"S[U5S-S3U5n[
SU55URS'U$)N�>r(�Ic3�*# �UH	oS-v� M g7f)r#Nr1)�.0�elts  r;�	<genexpr>�'PngStream.chunk_cHRM.<locals>.<genexpr>s���,P�x��8�^�x�s��chromaticity)rXrr�r��unpack�len�tupler�)rZrirjrH�raw_valss     r;�105chunk_cHRM�PngStream.chunk_cHRMsi���w�w�"�"�"�� � ����&�1���=�=�1�S��V�q�[�M��!3�Q�7��',�,P�x�,P�'P����^�$��r:c���URce[R"URU5nUS:a$[R(aU$Sn[	U5eUSUR106S'U$)Nr	zTruncated sRGB chunkr�srgb)rXrr�rerGr�rs     r;�107chunk_sRGB�PngStream.chunk_sRGBse���w�w�"�"�"�� � ����&�1���A�:��.�.���(�C��S�/�!� ��t����V���r:c�^�URce[R"URU5nUS:a$[R(aU$Sn[	U5e[US5[US5peUSnUS:XaUS-US-4nX�RS'U$US:XaXV4URS	'U$)108NrzTruncated pHYs chunkrr(r)r	�109F%u�?�dpi�aspect)rXrr�rerGrcr�)	rZrirjrHrK�px�py�unitr<s	         r;�110chunk_pHYs�PngStream.chunk_pHYs+s����w�w�"�"�"�� � ����&�1���A�:��.�.���(�C��S�/�!��Q���C��1�I�B���t���1�9��v�+�r�F�{�*�C�"%�L�L������Q�Y�%'�V�D�L�L��"��r:c��URce[R"URU5nURSS5upEU(acURSS5nURSS5nUS:XaUOUURU'XpRU'UR[U55 U$![a UnSnN|f=f)Nr�r	r:r�r��replacesexif)111rXrr��splitrGr�r�r�r�r1)rZrirjrH�k�v�k_str�v_strs        r;�112chunk_tEXt�PngStream.chunk_tEXt=s����w�w�"�"�"�� � ����&�1��	��7�7�5�!�$�D�A�113
��H�H�Y��1�E��H�H�Y�	�2�E�'(�G�|�!��D�L�L���"'�L�L����"�"�3�u�:�.�����	��A��A�	�s�B2�2C�Cc�f�URce[R"URU5nURSS5upEU(aUSnOSnUS:waSUS3n[U5e[
USS5nU(a\URSS5nURSS	5n	U	=URU'URU'UR[U	55 U$![a UnSnN�f=f![a [R(aSnN�e[Ra SnN�f=f)114Nr�r	r:rr�z in zTXt chunkr�r�rD)rXrr�rErGrgrLrerBr�r�r�r�r�r1)115rZrirjrHrFrGr�rKrHrIs116          r;�117chunk_zTXt�PngStream.chunk_zTXtQs-���w�w�"�"�"�� � ����&�1��	��7�7�5�!�$�D�A�
��A�$�K��K��!��/��}�N�K�C��c�"�"�	�%�a���e�,�A�
��H�H�Y��1�E��H�H�Y�	�2�E�8=�=�D�L�L���$�,�,�u�"5��"�"�3�u�:�.����7�	��A��A�	���	��.�.�����z�z�	��A�	�s)�C �-C4� C1�0C1�4!D0�D0�/D0c�Z�URce[R"URU5=p4URSS5upS[U5S:aU$USUSUSSp7nURSS5up�n118US:waUS:Xa
[
U1195n120OU$US:XaX�RS'URSS5nURS	S5nU	RS	S5n
U121RS	S5n[X�U
5=URU'URU'UR[U55 U$![a Us$f=f![a Us$f=f![a [R(aUs$e[Ra Us$f=f![a Us$f=f)122Nr�r	r'rsXML:com.adobe.xmp�xmpr�r�r�)rXrr�rErGr1rLrerBr�r�r�r�r�r�r�)rZrirj�rrHrF�cf�cmr��tkrGrH�lang_str�tk_strrIs               r;�123chunk_iTXt�PngStream.chunk_iTXtts����w�w�"�"�"��$�$�T�W�W�f�5�5��	��7�7�5�!�$�D�A��q�6�A�:��H��a�D�!�A�$��!�"����	��'�'�%��+�K�D�a���7��Q�w��-�a�0�A����$�$�"#�L�L���	��H�H�Y��1�E��{�{�7�H�5�H��Y�Y�w��1�F��H�H�W�h�/�E�59��&�4Q�Q����U��d�l�l�5�1����s�5�z�*����G�	��H�	���	��H�	��"�� �6�6� ����z�z���H����	��H�	�sN�D8�'E124�	E�,AF�8E�E�125E�E�!F�?F�F�F*�)F*c��URce[R"URU5nSU-URS'U$)N�Exif�exif)rXrr�r�rs    r;�126chunk_eXIf�PngStream.chunk_eXIf�s@���w�w�"�"�"�� � ����&�1��.��2����V���r:c��URce[R"URU5nUS:a$[R(aU$Sn[	U5eUR127bSUl[R"S5 U$[U5nUS:XdUS:�a[R"S5 U$XPl[US5URS'SUl128U$)	Nr)z"APNG contains truncated acTL chunkz4Invalid APNG, will use default PNG image if possiblerlr(�loopz129image/apng)rXrr�rerGr��warnings�warnrcr�r�)rZrirjrHrK�n_framess      r;�130chunk_acTL�PngStream.chunk_acTL�s����w�w�"�"�"�� � ����&�1���A�:��.�.���6�C��S�/�!����'�#�D���M�M�P�Q��H��q�6���q�=�H�z�1��M�M�P�Q��H�#��"�1�a�y����V��".����r:c��URce[R"URU5nUS:a$[R(aU$Sn[	U5e[U5nURcUS:wd URb URUS-131:wa
Sn[U5eXPl[US5[US5pv[US5[US	5p�URup�X�-U132:�dX�-U:�a
S133n[U5eX�X�-X�-4URS'[US5[US
5p�U
S:XaSn
[U5[U
5-S-URS'USURS'USURS'U$)N�z"APNG contains truncated fcTL chunkrr	�#APNG contains frame sequence errorsr(r)rr*zAPNG contains invalid framesr���d���duration��disposal��blend)rXrr�rerGrcr�rgr�r�r�float)rZrirjrHrK�seq�width�heightr>r?�im_w�im_h�	delay_num�	delay_dens              r;�134chunk_fcTL�PngStream.chunk_fcTL�sj���w�w�"�"�"�� � ����&�1���B�;��.�.���6�C��S�/�!��!�f���M�M�!�c�Q�h��M�M�%�$�-�-�3��7�*B�7�C��c�"�"��
��A�q�	�3�q�!�9�v��Q���S��B�Z�B��\�\�135��
�:�����d� 2�0�C��c�"�"� "��136�B�K�@����V��"�1�b�z�3�q�"�:�9���>��I�#(��#3�e�I�6F�#F��#M����Z� �#$�R�5����Z� � !�"�����W���r:c��URceUS:aE[R(a#[R"URU5nU$Sn[	U5e[R"URS5n[U5nURUS-137:wa
Sn[U5eXPlURUS-US-1385$)Nr(z"APNG contains truncated fDAT chunkr	rg)	rXrrer�rGrcr�rgr)rZrirjrHrKrrs      r;�139chunk_fdAT�PngStream.chunk_fdAT�s����w�w�"�"�"��A�:��.�.��(�(����&�9����6�C��S�/�!�� � ����!�,���!�f���=�=�C�!�G�#�7�C��c�"�"��
����s�Q�w���140�3�3r:)
r�r�rr�r�r�r�rr�r�r�r�r�r�)r�r�r�r�r�)rir�rjr�r�r�)rir�rjr�r�r)r2r3r4r5r[r�r�r�r�r	rrrr r%r4r8rArJrMrWr\rcryr|r9�
__classcell__�r�s@r;r�r��ss����""�141�2�142�8�*����.���"�$�(!�F)�V��*�<4�4r:r�c�,�UR[5$rV)�143startswith�_MAGIC)�prefixs r;�_acceptr��s�����V�$�$r:c�^�\rSrSrSrSrSSjr\SSj5rSU4Sjjr	SSjr144SSSjjrSS	jrSS145jr
SSjrSSjrSS
jrSU4SjjrSrU=r$)�PngImageFilei��PNGzPortable network graphicsc��URce[URRS55(d
Sn[U5eURUlSUl/Ul[UR5UlURR5up#nURRX#U5nURR%X%5 MW![a O{[ao [RSX#U5 [R"URU5nUSSR!5(aURR#X%45 N�f=fURR&UlURR*UlURR.UlSUlURR4UlURR8UlURR<=(d SUlUR0RASS5Ul!URRD(a3URRDupg[FRH"Xg5Ul%US	:XaUS146-147Ul&OX@l&URR<b�SUl'URRQ5 URLUl)URRU5Ul+URB(aU=R>S-
slURYS5 UR>S:�Ul-g)Nr)znot a PNG filer�%r %s %s (unknown)r	r'r
F�fdATr().rXr�rarg�_fp�_PngImageFile__frame�private_chunksr��pngr�r�AttributeErrorrr�rr��islowerrxr�r��_moder��_sizer�r��_textr�r�r��custom_mimetyper�rb�getr
r�r
�raw�palette�_PngImageFile__prepare_idat�!_close_exclusive_fp_after_loadingr��_PngImageFile__rewind_idatrb�_PngImageFile__rewind�_seek�is_animated)rZrKrhrirjrH�rawmoderOs        r;�_open�PngImageFile._open�sn���w�w�"�"�"��t�w�w�|�|�A��'�'�"�C��c�"�"��7�7������148VX���%.�t�w�w�%7���� $�x�x�}�}���C�f�
9��H�H�M�M�#�F�3��
�H�H�L�L�� �!���
��!�
9����1�3�V�D��(�(����&�9���q��8�#�#�%�%��'�'�.�.��x�8��	
9���X�X�%�%��149��X�X�%�%��150��H�H�$�$��	�37��151��H�H�$�$��	�#�x�x�:�:������,�,�1���
�!�Y�Y�]�]�?�E�B����8�8��� �H�H�/�/�M�G�'�+�+�G�:�D�L��'�>�"(�1�*�D��"(���8�8���+�5:�D�2��H�H� � �"�!%�!4�!4�D�� �H�H�M�M�O�D�M��!�!��
�
��"�
��J�J�q�M��=�=�1�,��s�C�152E�#A5E�Ec�,�URcmUR(a*URnURURS-1535 UR5 UR(aURW5 URceUR$)Nr	)r�r�r�r`rb�load)rZ�frames  r;r��PngImageFile.text>so���:�:����������	�	�$�-�-�!�+�,��I�I�K�����	�	�%� ��z�z�%�%�%��z�z�r:c�8>�URc
Sn[U5eURRURSSS-1545 URceURR5 URR
5 [TU]5 g)zVerify PNG fileNz)verify must be called directly after openrr'r))rX�RuntimeErrorr`r�r�r�rqr�)rZrKr�s  �r;r��PngImageFile.verifyNsw����7�7�?�=�C��s�#�#�	
�����T�Y�Y�q�\�!�_�q�(�)��x�x�#�#�#�������������
���r:c�X�URU5(dgXR:aURSS5 URn[URS-US-5HnURU5 M g![a$nURU5 Sn[	U5UeSnAff=f)NrTr	zno more images in APNG file)�_seek_checkr�r��rangerr`)rZr��155last_frame�fr�rKs      r;r`�PngImageFile.seek^s�������&�&���<�<���J�J�q�$���\�\�156�	'��4�<�<�!�+�U�Q�Y�7���157�158�1�
�8���	'��I�I�j�!�/�C��3�-�Q�&��	'�s�4A;�;159B)�B$�$B)c�F�URce[UR[5(aURReU SnUS:XGa8U(a�URRUR5 URR5 URUl	SUl160URRUlURRUlURUlSUlSUlURR%SS5UlURR%S5UlURR%S5UlURR%S5nSUlGOpXR,S-:waSU3n[/U5eUR15 UR"(a0UR2R5UR"UR65 UR2R95UlURUlUR(a2[:R<"URUR5 SUl	SnURR?S1615 URR?5upgnUS:Xa
Sn[GU5eUS
:XaU(a
Sn[EU5eS	nURRIXgU5 M�U(aX0lUR c3UR([RRT:Xa[RRVUlSUlUR([RRT:Xa]UR (aKUR R95UlURYUR"UR65UlggUR([RRV:Xae[ZR\R_UR`URb5UlURYUR"UR65Ulgg![@RB[D4a O�f=f![Ja O�[Fa? US:XaUS162-nU(aX�l	Ol[:R<"URU5 GN�[La< [NRQSXgU5 [:R<"URU5 GNf=fXlURRUlURR%S5UlURR%S5UlURR%S5nUR(aGM�Sn[GU5e)Nrr
Frnrprr	zcannot seek to frame Tr(r�zNo more images in APNG file�fcTLzAPNG missing frame datar�r�zimage not found in APNG frame)2r�r�r�r�exr`r�r�r�r��_imr�r�r�r�rX�_prev_im�disposer�r
�163dispose_op�blend_opr�rGr��im�paste�dispose_extentr�rr�rar�r�rgrr��UnicodeDecodeErrorr�rr�r/r8r7�_cropr164�core�fill�mode�size)	rZr�r�r�rK�frame_startrhrirjs	         r;r��PngImageFile._seekms165���x�x�#�#�#��d�h�h�
�.�.��(�(�+�+������A�:�����
�
�d�m�m�,������!�&*�&8�&8��#���� �H�H�,�,��	� �H�H�,�,��	��(�(��� �D�M��D�L�!%�������!F�D��"�i�i�m�m�J�7�D�O� �I�I�M�M�'�2�D�M�!�Y�Y�]�]�6�2�N��D�L����q�(�(�-�e�W�5�� ��o�%�
�I�I�K��|�|����
�
�d�l�l�D�,?�,?�@� �G�G�L�L�N�D�M��h�h�D�G��"�"��$�$�T�W�W�d�.A�.A�B�&'��#��K�������Q���'+�x�x�}�}��$�C�f��'�>�7�C�"�3�-�'��'�>�"�7��)�#�.�.�"&�K�
:��H�H�M�M�#�F�3�'�T�ES���=�=� �T�_�_��8L�8L�%L�&�4�4�D�O�����?�?�h�2�2�2��}�}�#�}�}�1�1�3���#�z�z�$�,�,��8K�8K�L�����_�_�� 6� 6�
6� �:�:�?�?�4�9�9�d�i�i�@�D�L��:�:�d�l�l�D�4G�4G�H�D�L�7��c���k�2�����*����:��g�~��!���&�28�/�!��(�(����&�9�%�:��L�L�!5�s��H��(�(����&�9�:��!�L����(�(�D�I�"�i�i�m�m�J�7�D�O� �I�I�M�M�'�2�D�M�!�Y�Y�]�]�6�2�N��9�9�9�5���s�m�#s7�
Q�Q+�Q(�'Q(�+166T�7!T�!T�>AT�Tc��UR$rV)r�rms r;rb�PngImageFile.tell�s���|�|�r:c���URRS5(aURS-UlURUl[167R168R
U5 g)z"internal: prepare to read PNG filer)r	N)r�r��
decoderconfigr��_PngImageFile__idatr�load_preparerms r;r��PngImageFile.load_prepare�sK���9�9�=�=��%�%�!%�!3�!3�d�!:�D���)�)������(�(��.r:c�n�URceURceURS:Xa�URRS5 URR5up#nUS;aURR	X#U5 gUS:Xa(URRX#U5 US-169UlOX@lURS:XaM�US::a
URnO[XR5nURU-170UlURRU5$![a N�f=f)zinternal: read more image datarr()�IDATsDDATr�r:r�)r�rXr�rarzr�r�min)rZ�171read_bytesrhrirjs     r;�	load_read�PngImageFile.load_read�s���x�x�#�#�#��w�w�"�"�"��k�k�Q��
�G�G�L�L��O�#�x�x�}�}���C�f��5�5����
�
�c��/���g�~���H�H�M�M�#�F�3�%�q�j���$��%�k�k�Q��*��?����J��Z���5�J��k�k�J�.����w�w�|�|�J�'�'�� ����s�D'�'172D4�3D4c��URceURceURS:wa%URRUR5 URRS5 URR5upnUS:XaOZUS:Xa5UR(a$SUlURRXU5 OURRXU5 M�URR.UlUR(d"URR35 SUlgUR4(Ga_UR6[8R::XGa?UR=UR>UR@5nUR>RBS:Xa0SURD;a URGS
URDS5nO�UR>RBS:XalSURD;a\URDSn[IU[J5(aURMU5 O&[IU[N5(aURQU5 URSS
5nUR4RUX`R@U5 UR4Ulggg![R173[4a GM�f=f![a GM�[ab US:XaUS-n[R"URU5 GN+![a$n[R (aSnAGMPUeSnAff=f["aq [$R'SXU5 [R"URU5nUS	S174R)5(aUR*R-XS45 GN�f=f)z%internal: finished reading image dataNrTr(r�r�r�r�r	r'r rr&r!)+r�rXr�rar�r�rgr�r�rzr�r�rrr�r�rer�rr�r�r�rxr�r�rqr�r�r=r@r�r�r�r�r��convert_transparentr�r��putpalettealphasr��putpalettealpha�convertr�)	rZrhrirjr�rH�updated�mask�ts	         r;�load_end�PngImageFile.load_ends����x�x�#�#�#��w�w�"�"�"��;�;�!���G�G�L�L����%���G�G�L�L��O�
�#'�8�8�=�=�?� ��&��g�~�����D�$4�$4�&'��#����
�
�c��/��
?����
�
�c��/�#�F�X�X�%�%��175�����H�H�N�N���D�H��}�}�}����%�-�-�!?��*�*�T�W�W�d�.A�.A�B���7�7�<�<�5�(�^�t�y�y�-H�"�6�6���	�	�.� 9��D��w�w�|�|�s�*�~����/J� �I�I�n�5��%�a��/�/�#�4�4�Q�7�'��3�/�/�#�3�3�A�6�"�?�?�6�2�D��
�
�#�#�G�-@�-@�$�G��-�-���"@�}��G�L�L�+�.�
��
��&�
���	
 ��'�>��a�K�F� ��(�(����&�9��� � �6�6�����	 ��176"�
?����1�3�V�D��(�(����&�9���q��8�#�#�%�%��'�'�.�.���~�>��	
?�sU�1J/�K�/K�
K�177O�O�4!L�178M�"M�7O�?M�M�A9O�Oc���SUR;aUR5 SUR;aSUR;agUR5R5$)Nr[zRaw profile type exif)r�r��getexif�_get_merged_dictrms r;�_getexif�PngImageFile._getexif?sG������"��I�I�K�����"�'>�d�i�i�'O���|�|�~�.�.�0�0r:c�`>�SUR;aUR5 [TU]
5$)Nr[)r�r�r�r�)rZr�s �r;r��PngImageFile.getexifFs%�������"��I�I�K��w�� � r:)�__frame�__idat�__prepare_idat�__rewind�
__rewind_idatr�r�r�r�r�r�r�r�r�r�r
r�r�r�rXr�r�r�rbr�r�r�r�r�)r�zdict[str, str | iTXt])r�r�r�r�r�)r�r�r�r�r�r�)r�r�)r�r�r�r�)r�zdict[int, Any] | None)r�z179Image.Exif)r2r3r4r5�format�format_descriptionr��propertyr�r�r`r�rbr�r�r�r�r�r9r~rs@r;r�r��s`���
�F�4��B-�H�
��
�� 
'�bI�H�/�!(�F=(�~1�!�!r:r�)r�r�)�L;1r�r�)r�r�)r�r�)r�r�)r%r�r�)r�r�)r"r��)r#r�r�)r$r�r�)r!r�r�)r r�r�)r&r��)rr�rrrr%r)rrr"r#r$r!r r&c���SRU5nUR[[U55U-5 URU5 [	U[	U55nUR[U55 g)z'Write a PNG chunk (including CRC field)r:N)�join�write�o32r1rQ)rXrhrO�	byte_datar�s     r;�putchunkr�dsW�������I��H�H�S��Y��
 �3�
&�'��H�H�Y��180��F�3�K�181(�C��H�H�S��X�r:c�(�\rSrSrSSjrSSjrSrg)�_idatioc��XlX lgrV)rX�chunk)rZrXr�s   r;r[�_idat.__init__rs�����182r:c�>�URURSU5 g)Nr��r�rX�rZrOs  r;r��_idat.writevs���183�184�4�7�7�G�T�*r:r�N)rXr�r��Callable[..., None]r�r��rOr�r�r��r2r3r4r5r[r�r9r1r:r;r�r�os���+r:r�c�(�\rSrSrSSjrSSjrSrg)�_fdatizc�(�XlX lX0lgrV)rXr�r�)rZrXr�r�s    r;r[�_fdat.__init__}s�����185��r:c��URURS[UR5U5 U=RS-
slg)Nr�r	)r�rXr�r�r�s  r;r��_fdat.write�s/���186�187�4�7�7�G�S����%6��=������r:)r�rXr�N)rXr�r�r�r�r�r�r�r�rr1r:r;rrzs���188r:rc��URSS5URSS5URSS5URSS54Ulg)N�optimizeF�compress_level������
compress_type�189dictionaryr:)r��
encoderconfig)r��encoderinfos  r;�_apply_encoderinfor�sE�����190�E�*����(�"�-������,�����c�*�	�B�r:c�4�\rSrSr%S\S'S\S'S\S'Srg	)191�_Framei��Image.Imager�z tuple[int, int, int, int] | Noner�dict[str, Any]rr1Nr�r1r:r;rr�s���O�192*�*��r:rc��URRS5nURRSURRSS55nURRSURRS[R55n	URRSURRS[193R55n194U(a[R"U5nO[R"U/U5n/nSn
UGH�n[R"U5GH�nURU:XaUR5nOURU5nURR5n[U[[ 45(aX}US'O%Uc"SUR;aURSUS'[U	[[ 45(aX�US'[U195[[ 45(aX�US'U
S-
n
U(Ga�USnURRS5nURRS5nU[R":Xa[%U5S:a[R&nU[R&:Xa�UR(R5n[*R,R/S	UR0S1965nUR2nU(aUR5U5nOSUR0-nUR7UU5 O0U[R":XaUSR(nOUR(n[8R:"URS	5URS	55nUR=S
S9nU(dMUURS5:Xa8UURS5:Xa#SU;aURS==US-
ss'GM�OSnUR?[AUUU55 GM� GM [%U5S:XaU(dUSR($U"US[C[%U55[CU55 U(a�URU:XaUOURU5n[EUUR5 [FRH"U[K[L[N[QX55[FRR"SSUR0-SU5/5 Sn[UU5GHKunnUR(nUR2(dSUR0-nOUR2nUR5U5nUR0nURnURSS5n[WUS-5RYS5nURZS:�a
Sn[]U5eURSU	5n URSU1975n!U"US[CU5[CUS5[CUS5[CUS5[CUS5[_URZ5[_UR`5[cU 5[cU!55 US-
n[EX�R5 US:XaeU(d^[FRH"U[K[L[N[QX55[FRR"SSUR0-SU5/5 GM�[eXU5n"[FRH"U[K[L[NU"5[FRR"SSUR0-SU5/5 U"RfnGMN g)Nrlr_rrnrpr	r198r'r&)rrrrr������F)�199alpha_onlysacTLr�rk���zcannot write durationr�)4rr�r�r/r6r=r?�	itertools�chainr�Iteratorr�r�r�r��listr2r8r1r7r�r200r�r�r�r�cropr�r�subtract_modulo�getbboxrxrr�rr�_saverrr�r�r�	enumerater�limit_denominator�	numeratorrG�o16�denominatorrrr�)#r�rXr�r�r�r
�
append_imagesrlr_rnrpr�	im_frames�frame_count�im_seq�im_framer�previous�
prev_disposal�201prev_blend�base_imr�r�delta�202default_imr�r��203frame_datar��frame_duration�delayrK�frame_disposal�frame_blend�fdat_chunkss#                                   r;�_write_multiple_framesr6�s����~�~�!�!�*�-�H�
�>�>���f�b�g�g�k�k�&�!�&<�=�D��~�~�!�!�*�b�g�g�k�k�*�h�FV�FV�.W�X�H��N�N���w������G�U�_�_�(M�N�E�����
�.�������m�4�� �I��K���%�.�.�v�6�H��}�}��$�#�=�=�?��#�+�+�D�1���.�.�-�-�/�K��(�T�5�M�2�2�*2�*?��J�'��!�j�H�M�M�&A�*2�-�-�204�*C��J�'��(�T�5�M�2�2�*2�*?��J�'��%�$���/�/�',�'9��G�$��1��K��$�R�=�� (� 4� 4� 8� 8�� D�
�%�1�1�5�5�g�>�205� �H�$8�$8�8�S��^�a�=O�$,�$:�$:�M� �H�$:�$:�:�&�k�k�.�.�0�G�#�j�j�o�o�f�b�g�g�|�L�G�#�=�=�D��")�,�,�t�"4��%����/���M�M�'�4�0�"�h�&:�&:�:�'��m�.�.�G�&�k�k�G�"�2�2��$�$�V�,�g�o�o�f�.E����}�}��}�6���%�����)D�D�"�k�o�o�g�&>�>�"�k�1��(�(��4��J�8O�O�4��������V�H�d�K�@�A�e7��j�9�~���=���|����206�207���C�	�N���D�	�	���7�7�d�?�R��208�209�4�0@�210��:�r�~�~�6�������E��E�"�,�-�
�_�_�U�F�R�W�W�$4�a��
A�B�	211��G�&�y�1���z��=�=������H�M�M�)�D��?�?�D��}�}�T�*�H��}�}�� �,�,��$����Q�7����$�.�/�A�A�%�H���?�?�U�"�)�C��S�/�!�$����X�>��!�o�o�g�u�5��
�����L���Q��L���Q��L���Q��L���Q��L����� ���!�!�"��~���{�O�	212�	�1����8�^�^�4��A�:�m��O�O���R��Y��b� 0�1���������(>��7�K�L�
� ��7�3�K��O�O���R��Y��,���������(>��7�K�L�
�213"�)�)�G�_2�`r:c��[XUSS9 g)NT)�save_all)r)r�rX�filenames   r;�	_save_allr:)s��	�"�(�T�*r:c�^)�U(GaURRSURRS55n[5n[5m)URRS/5n[R214"U/U5HVn[R"U5H9n	URU	R5 T)RU	R5 M; MX SH215n216X�;dM217 O UR5n218[U)4Sj[S555nOURnURn219U220n/n
UR(aUR5=(d /n
U221S:Xa�SUR;a[!SURS-S	5nO6UR(a#[#[![%U
5S222-S	5S5nOS	nUS::aUS::aSnOUS::aSnOSnUS
U3-
n[&UunnnUS:Xa[-SSSS9 UR/[05 U"US[3US5[3US5UUSSS5	 /SQnURRSURRS55=n(a9SnUS-[4R6"U5-nU"USU5 UR9S5 URRS5=n(a�/SQnUR:H�nUSSunnUU;aUR9U5 U"UUU5 M.UU;aU"UUU5 M@USSR=5(dMZ[%U5S223:H=(a USnU(aM}U"UUU5 M� URS:XaBWS224-n[?U
SU5n[%U5U:aUS-
n[%U5U:aMU"USU5 URRS URRS S55n U (dU S:Xa�URS:XaRWn![AU [>5(aU"US!U SU!5 GO[#S[!S"U 55n S#U -S-n"U"US!U"SU!5 O�URS$;a*[#S[!S%U 55n U"US![CU 55 O�URS&:Xa2U un#n$n%U"US![CU#5[CU$5-[CU%5-5 OwS UR;a
S'n[+U5eOYURS:XaIURDRG5S(:Xa+URDRS(S)5n"Wn!U"US!U"SU!5 URRS*5=n&(aBU"US+[3[IU&SS,-S--55[3[IU&SS,-S--55S.5 U(aBS/S0/nUR:H.nUSSunnUU;dMUR9U5 U"UUU5 M0 URRS15=n'(aU[AU'[JRL5(aU'ROS25n'U'RQS35(aU'S4Sn'U"US5U'5 Un(U(a[SXX:UWW5n(U((aq[UU(UR5 [VRX"U([[[\[>[_X55[VR`"S6S7U(R-SU5/5 U(abUR:HRnUSSunnUSSR=5(dM%[%U5S225:H=(a USnU(dMHU"UUU5 MT U"US8S95 [cUS:5(aURe5 gg![(anSU226S3n[+U5UeSnAff=f);Nr
r%)r&r r!c3�P>^# �UHm[U4SjT55v� M g7f)c3�,># �UH	oTv� M g7frVr1)r+�227frame_sizer�s  �r;r-�"_save.<locals>.<genexpr>.<genexpr>Fs����?��:�A���s�N)�max)r+r��sizess @�r;r-�_save.<locals>.<genexpr>Fs����R��A�S�?��?�?�?��s�"&r'r!�bitsr	r�r+r*r(�;zcannot write mode z as PNGr)zSaving I mode images as PNGr)�228stacklevelsIHDRrr�)scHRMscICPsgAMAssBIT�sRGBstIMEr�sICC Profiler�siCCPrF�pnginfo)ssPLTr�r�r�sPLTErstRNSr��)rrr)rrr z%cannot use transparency for this moder&�Ar<spHYsr;g�?r�sbKGDshISTr[r)rZr,seXIfr�r�r�r:�flush)3rr�r��setrrrrr�r�r�r_r2r�r��229getpaletter�r@r1�	_OUTMODES�KeyErrorr�rr�r�r�rBr��remover�r�r�r�r#r��getpalettemoder�r230�Exif�tobytesr�r6rrrrrr�r�hasattrrJ)*r�rXr9r�r8r
�modesr%r(r)r�r��outmoder��colorsrCr��	bit_depth�231color_typer�rKr��icc�namerOr��chunks_multiple_allowed�232info_chunkrhr��palette_byte_number�
palette_bytesr�alpha_bytes�alpha�red�green�bluer<r[�	single_imrAs*                                         @r;rr-s�������*�*��R�W�W�[�[��9�233�
����������*�*�?�B�?�
��o�o�r�d�M�:�F�)�2�2�6�:���	�	�(�-�-�(��	�	�(�-�-�(�;�;�)�D��}��)��9�9�;�D��R��q��R�R���w�w���w�w���G��G�	�z�z��-�-�/�'�R���s�{��R�^�^�#���b�n�n�V�4�4�c�:�F��z�z��S��W���!2�C�8�!�<�����R�<���{����1��������4�&�z�!�G�"�)2�7�);�&���J��#�~��/���B�234�H�H�V��	�235���D��G���D��G����
�
�
�236�D�F��n�n� � �������M�0J�K�K�s�K����g�~��
�
�c� 2�2��
�b�'�4� �	�
�
�g���~�~�!�!�)�,�,�t�,�"F���+�+�J�"�2�A��I�C���f�}��
�
�c�"��b�#�t�$��/�/��b�#�t�$��Q�q��!�!�#�#� ��_��1�C�j��m�237�!�z��"�c�4�(�&�238�w�w�#�~�$�q�j���g�&:�':�;�<�
��-� �#6�6��U�"�M��-� �#6�6�
�b�'�=�)��>�>�%�%�n�b�g�g�k�k�.�RV�6W�X�L��|�q�(�
�7�7�c�>� �K��,��.�.��b�'�<���#=�>�"�1�c�#�|�&<�=���,�.��6���b�'�5��+�#6�7�
�W�W�/�
/��q�#�e�\�":�;�L��"�g�s�<�0�1�
�W�W��
�+��C����"�g�s�3�x�#�e�*�4�s�4�y�@�A�����/�>���c�l�"�	0��7�7�c�>�b�e�e�2�2�4��>��E�E�$�$�V�S�1�E� �K��"�g�u�\�k�2�3��n�n� � ��'�'�s�'�
�����C��F�V�O�c�)�*�+���C��F�V�O�c�)�*�+��	239���7�#���+�+�J�"�2�A��I�C���f�}��
�
�c�"��b�#�t�$�	&��~�~�!�!�&�)�)�t�)��d�E�J�J�'�'��<�<��?�D��?�?�?�+�+����8�D�
�b�'�4� �$&�I��*��E��-��240�	���9�b�n�n�5�������E��E�"�,�-�
�_�_�U�F�Y�^�^�$;�Q��
H�I�	241���+�+�J�"�2�A��I�C���1�Q�x���!�!� ��_��1�C�j��m�242��:��"�c�4�(�
&�243�"�g�s���r�7���244���245���Y�"�"�4�&��0���c�l��!��"�s�2
^7�7246_�_�_c�p^�SSKJn /mSU4SjjnU"5nXl[XSU5 U?T$!U?f=f)z4Return a list of PNG chunks representing this image.r)�BytesIOc�>�SRU5n[[U[U555nTRXU45 g)Nr:)r�r�rQrx)rXrhrOr�r�r�s     �r;rx�getchunks.<locals>.appends6����H�H�T�N�	��&��F�3�K�0�1���
�
�s�s�+�,r:r��rXr�rhr�rOr�r�r�)�iorfrr)r��paramsrfrxrXr�s     @r;�	getchunksrl�sB����
�F�-�247248��B����
�b�b�&�!��N��M��
�N�s�1�5z.pngz.apngz	image/png)rHr�r�r�)r)rOr�rPr�r�r�)r�r�r�r�ri)r�rrrr�r�)r�rrXr�r�r�r�r�r�r�r
�Image.Image | Noner%zlist[Image.Image]r�rm)r�rrXr�r9r�r�r�)r�rrXr�r9r�r�r�r8r�r�r�)r�rrkrr�z list[tuple[bytes, bytes, bytes]])R�249__future__rr�logging�rer�r`rB�enumr�	fractionsr�typingrrrr�r250rrr
r�_binaryrrrrcrrr#rr��251_deprecater�_utilr�
TYPE_CHECKING�collections.abcrrrr�	getLoggerr2r�compilerrdr�rr�	SAFEBLOCKrEr�r/r=rLrQrSr�r�r�r�r�r�r�rMr�r�rrrr6r:rrl�
register_openr��
register_save�register_save_all�register_extensions�
register_mimer1r:r;�<module>r�s���B#���	�
�����'�'�G�G�!�!��!�!�!� ��
��(�$��	�	�	�8�	$��	���L�	!�	'�	'��252��
����
��
������
��
!�+253��2�*�*�0�1���$�$���254�~�%����w��*�G���/�[�[�|�3��6Y3�Y3�@�:��f4��f4�Z%�T!�9�&�&�T!�x255256!�$�$�$�	 �257"�	$�'�
(�$�$�$�	 �$�&�!
�	�(�+�+�258�259�� �Z� �P��P��P��P��	P�260�P�&�
P�%�P��P�f+�"*��H��H��H��H��	H�261�H�262�
H�^�2���L�'�'��w�?����L�'�'��/�����+�+�Y�7����,�-�-���/@�A����L�'�'��5r:
codekingpro/portable-devtools · Team Ai