§
    Å‡tj”!  ã                  ó¦  — d dl mZ d dlZd dlmZ ddlmZmZ ddlm	Z
 ddlmZ ddlmZ dd„Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Zdd„Z G d„ dej        ¦  «        Z ej        ej        ee¦  «          ej        de¦  «          ej        ej        d¦  «          ej        ej        e¦  «          ej        de¦  «         dS ) é    )ÚannotationsN)ÚIOé   )ÚImageÚ	ImageFile)Úi32be)Úo8)Úo32beÚprefixÚbytesÚreturnÚboolc                ó,   — |                       d¦  «        S )Nó   qoif)Ú
startswith)r   s    úP/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/PIL/QoiImagePlugin.pyÚ_acceptr      s   € Ø×Ò˜WÑ%Ô%Ð%ó    c                  ó   — e Zd ZdZdZdd„ZdS )ÚQoiImageFileÚQOIzQuite OK Imager   ÚNonec                óL  — | j         €J ‚t          | j                              d¦  «        ¦  «        sd}t          |¦  «        ‚t	          | j                              d¦  «        ¦  «        t	          | j                              d¦  «        ¦  «        f| _        | j                              d¦  «        d         }|dk    rdnd| _        | j                              dt          j	        ¦  «         t          j        dd	| j        z   | j                              ¦   «         ¦  «        g| _        d S )
Né   znot a QOI filer   r   é   ÚRGBÚRGBAÚqoi©r   r   )Úfpr   ÚreadÚSyntaxErrorÚi32Ú_sizeÚ_modeÚseekÚosÚSEEK_CURr   Ú_TileÚtellÚtile)ÚselfÚmsgÚchannelss      r   Ú_openzQoiImageFile._open   sá   € ØŒwÐ"Ð"Ð"Ý�t”w—|’| A‘”Ñ'Ô'ð 	#Ø"ˆCÝ˜cÑ"Ô"Ð"å˜œŸš a™œÑ)Ô)­3¨t¬w¯|ª|¸A©¬Ñ+?Ô+?Ð?ˆŒ
à”7—<’< ‘?”? 1Ô%ˆØ&¨!šm˜m�U�U°ˆŒ
àŒ�Š�Q�œÑ$Ô$Ð$Ý”_ U¨F°T´ZÑ,?ÀÄÇÂÁÄÑPÔPÐQˆŒ	ˆ	ˆ	r   N)r   r   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionr/   © r   r   r   r      s9   € € € € € Ø€FØ)ÐðRð Rð Rð Rð Rð Rr   r   c                  ó@   — e Zd ZU dZdZded<   i Zded<   dd„Zdd„ZdS )Ú
QoiDecoderTNzbytes | bytearray | NoneÚ_previous_pixelzdict[int, bytes | bytearray]Ú_previously_seen_pixelsÚvalueúbytes | bytearrayr   r   c                ój   — || _         |\  }}}}|dz  |dz  z   |dz  z   |dz  z   dz  }|| j        |<   d S )Nr   é   é   é   é@   )r8   r9   )r,   r:   ÚrÚgÚbÚaÚ
hash_values          r   Ú_add_to_previous_pixelsz"QoiDecoder._add_to_previous_pixels/   sR   € Ø$ˆÔà‰
ˆˆ1ˆa�Ø˜!‘e˜a !™e‘m a¨!¡eÑ+¨a°"©fÑ4¸Ñ:ˆ
Ø38ˆÔ$ ZÑ0Ð0Ð0r   ÚbufferúImage.DecoderInputútuple[int, int]c           
     ó¬  ‡ ‡— ‰ j         €J ‚i ‰ _        t          d¦  «        ‰ _        t          ¦   «         }t	          j        ‰ j        ¦  «        }‰ j        j        ‰ j        j	        z  |z  }t          |¦  «        |k     �rA‰ j                              d¦  «        d         }|dk    r@‰ j        r9t          ‰ j                              d¦  «        ¦  «        ‰ j        dd …         z   }�n�|dk    r‰ j                              d¦  «        }�n{|dz	  }|dk    r/|d	z  }‰ j                             |t          d
¦  «        ¦  «        }�nA|dk    rq‰ j        rjt          ‰ j        d         |dz  dz	  z   dz
  dz  ‰ j        d         |dz  dz	  z   dz
  dz  ‰ j        d         |dz  z   dz
  dz  ‰ j        d         f¦  «        }nÊ|dk    rŽ‰ j        r‡‰ j                              d¦  «        d         }	|d	z  dz
  Š|	dz  dz	  dz
  }
|	dz  dz
  }t          t          ˆˆ fd„t          |
d|f¦  «        D ¦   «         ¦  «        ¦  «        }|‰ j        dd …         z  }n6|dk    r0‰ j        r)|d	z  dz   }‰ j        }|dk    r
|d d…         }|||z  z  }�Œ‰                      |¦  «         |dk    r
|d d…         }||z  }t          |¦  «        |k     �°A‰                      |¦  «         dS )N©r   r   r   éÿ   r   r   éþ   r   rL   r   é   é?   ©r   r   r   r   é0   é   é   é   é    éð   é   é   c              3  óJ   •K  — | ]\  }}‰j         |         ‰z   |z   d z  V — ŒdS )rS   N)r8   )Ú.0ÚiÚdiffÚ
diff_greenr,   s      €€r   ú	<genexpr>z$QoiDecoder.decode.<locals>.<genexpr>_   sR   øè è € ð ð á '  4ð "Ô1°!Ô4°zÑAÀDÑHÈCÑOðð ð ð ð ð r   )éÿÿÿÿr   )Úfdr9   Ú	bytearrayr8   r   ÚgetmodebandsÚmodeÚstateÚxsizeÚysizeÚlenr!   ÚgetÚtupleÚ	enumeraterF   Ú
set_as_raw)r,   rG   ÚdataÚbandsÚdest_lengthÚbyter:   ÚopÚop_indexÚsecond_byteÚdiff_redÚ	diff_blueÚ
run_lengthr]   s   `            @r   ÚdecodezQoiDecoder.decode6   sB  øø€ ØŒwÐ"Ð"Ð"à')ˆÔ$Ý(¨Ñ8Ô8ˆÔå‰{Œ{ˆÝÔ" 4¤9Ñ-Ô-ˆØ”jÔ&¨¬Ô)9Ñ9¸EÑAˆÝ�$‰iŒi˜+Ò%Ñ%Ø”7—<’< ‘?”? 1Ô%ˆDà�zÒ!Ð! dÔ&:Ð!Ý! $¤'§,¢,¨q¡/¤/Ñ2Ô2°TÔ5IÈ!È"È"Ô5MÑM�‘Ø˜Ò#Ð#ØœŸš Q™œ�‘à˜Q‘Y�Ø˜’7�7Ø# jÑ0�HØ Ô8×<Ò<Ø ¥)¨LÑ"9Ô"9ñô �E‘Eð ˜1’W�W Ô!5�WÝ%à!Ô1°!Ô4¸À
Ñ9JÈqÑ8PÑQÐTUÑUØ!ñ"à!Ô1°!Ô4¸À
Ñ9JÈqÑ8PÑQÐTUÑUØ!ñ"à!Ô1°!Ô4¸¸zÑ8IÑJÈQÑNÐRUÑUØ Ô0°Ô3ðñ	ô 	�E�Eð ˜1’W�W Ô!5�WØ"&¤'§,¢,¨q¡/¤/°!Ô"4�KØ"&¨Ñ"3°rÑ!9�JØ!,¨zÑ!9¸aÑ ?À1ÑD�HØ!,¨zÑ!9¸QÑ >�Iå%Ýð ð ð ð ð å+4°hÀÀ9Ð5MÑ+NÔ+Nðñ ô ñ ô ñô �Eð ˜TÔ1°!°"°"Ô5Ñ5�E�EØ˜1’W�W Ô!5�WØ"&¨Ñ"3°qÑ!8�JØ Ô0�EØ ’z�zØ % b q b¤	˜Ø˜E JÑ.Ñ.�DÙØ×(Ò(¨Ñ/Ô/Ð/à˜ŠzˆzØ˜b˜q˜bœ	�Ø�E‰MˆDõc �$‰iŒi˜+Ò%Ñ%ðd 	�Š˜ÑÔÐØˆur   )r:   r;   r   r   )rG   rH   r   rI   )	r0   r1   r2   Ú	_pulls_fdr8   Ú__annotations__r9   rF   rv   r5   r   r   r7   r7   *   sf   € € € € € € Ø€IØ04€OÐ4Ð4Ð4Ñ4Ø<>ÐÐ>Ð>Ð>Ñ>ð9ð 9ð 9ð 9ð<ð <ð <ð <ð <ð <r   r7   ÚimúImage.Imager    ú	IO[bytes]Úfilenameústr | bytesr   c           	     ón  — | j         dk    rd}n| j         dk    rd}nd}t          |¦  «        ‚| j                             d¦  «        dk    rdnd	}|                     d
¦  «         |                     t          | j        d         ¦  «        ¦  «         |                     t          | j        d	         ¦  «        ¦  «         |                     t          |¦  «        ¦  «         |                     t          |¦  «        ¦  «         t          j	        | |t          j
        dd| j        z   ¦  «        g¦  «         d S )Nr   r   r   r   zUnsupported QOI image modeÚ
colorspaceÚsRGBr   r   r   r   r   )rc   Ú
ValueErrorÚencoderinforh   ÚwriteÚo32Úsizer	   r   Ú_saver)   )ry   r    r|   r.   r-   r   s         r   r†   r†   u   s  € Ø	„w�%ÒÐØˆˆØ	Œ�FÒ	Ð	Øˆˆà*ˆÝ˜‰oŒoÐà”n×(Ò(¨Ñ6Ô6¸&Ò@Ð@��Àa€Jà‡H‚HˆWÑÔÐØ‡H‚H�S�”˜”‰_Œ_ÑÔÐØ‡H‚H�S�”˜”‰_Œ_ÑÔÐØ‡H‚H�R�‰\Œ\ÑÔÐØ‡H‚H�R�
‰^Œ^ÑÔÐå„O�B˜�Yœ_¨U°F¸R¼WÑ4DÑEÔEÐFÑGÔGÐGÐGÐGr   c                  óL   — e Zd ZU dZdZded<   i Zded<   dZdd
„Zdd„Z	dd„Z
dS )Ú
QoiEncoderTNz tuple[int, int, int, int] | Noner8   z$dict[int, tuple[int, int, int, int]]r9   r   r   r   c                óH   — t          d| j        dz
  z  ¦  «        }d| _        |S )NéÀ   r   r   )r	   Ú_run)r,   rl   s     r   Ú
_write_runzQoiEncoder._write_run�   s&   € Ý�* ¤	¨A¡Ñ.Ñ/Ô/ˆØˆŒ	Øˆr   ÚleftÚintÚrightc                ó,   — ||z
  dz  }|dk    r|dz  }|S )NrL   é€   rS   r5   )r,   r�   r�   Úresults       r   Ú_deltazQoiEncoder._delta”   s'   € Ø˜‘, #Ñ%ˆØ�SŠ=ˆ=Ø�c‰MˆFØˆr   Úbufsizeútuple[int, int, bytes]c                óš  — | j         €J ‚ddi| _        d| _        t          ¦   «         }| j         j        \  }}t          j        | j        ¦  «        }t          |¦  «        D �]�}t          |¦  «        D �]‰}| j          	                    ||f¦  «        }|dk    rg |¢d‘R }|| j        k    r4| xj
        dz  c_
        | j
        dk    r||                      ¦   «         z  }�n| j
        r||                      ¦   «         z  }|\  }	}
}}|	dz  |
dz  z   |d	z  z   |d
z  z   dz  }| j                             |¦  «        |k    r|t          |¦  «        z  }�n¦| j        �rž|| j        |<   | j        \  }}}}||k    �r]|                      |	|¦  «        }|                      |
|¦  «        }|                      ||¦  «        }d|cxk    rdk     rNn nKd|cxk    rdk     r>n n;d|cxk    rdk     r.n n+|t          d|dz   dz  z  |dz   dz  z  |dz   z  ¦  «        z  }nä|                      ||¦  «        }|                      ||¦  «        }d|cxk    rdk     rZn nWd|cxk    rdk     rJn nGd|cxk    rdk     r:n n7|t          d|dz   z  ¦  «        z  }|t          |dz   dz  |dz   z  ¦  «        z  }nQ|t          d¦  «        z  }|t          |d d…         ¦  «        z  }n$|t          d¦  «        z  }|t          |¦  «        z  }|| _        �Œ‹�ŒŸ| j
        r||                      ¦   «         z  }|t          d¦  «        z  }t!          |¦  «        dt          |¦  «        fS )Nr   rP   rK   r   rL   r   é>   r=   r>   r?   r@   éþÿÿÿrR   r   iøÿÿÿrW   iàÿÿÿrU   r‘   rM   )r   r   r   r   r   r   r   r   )ry   r9   r8   ra   r…   r   rb   rc   ÚrangeÚgetpixelr‹   rŒ   rh   r	   r“   r   rg   )r,   r”   rl   ÚwÚhrm   ÚyÚxÚpixelrA   rB   rC   rD   rE   Úprev_rÚprev_gÚprev_bÚprev_aÚdelta_rÚdelta_gÚdelta_bÚdelta_grÚdelta_gbs                          r   ÚencodezQoiEncoder.encodeš   s  € ØŒwÐ"Ð"Ð"à()¨<Ð'8ˆÔ$Ø-ˆÔå‰{Œ{ˆØŒwŒ|‰ˆˆ1ÝÔ" 4¤9Ñ-Ô-ˆå�q‘”ð 9	-ñ 9	-ˆAÝ˜1‘X”Xð 8-ñ 8-�Øœ×(Ò(¨!¨Q¨Ñ0Ô0�Ø˜A’:�:Ø)˜e˜M S˜M˜M�Eà˜DÔ0Ò0Ð0Ø�I”I ‘N�I”IØ”y B’�Ø §¢Ñ 1Ô 1Ñ1˜ùà”yð 2Ø §¢Ñ 1Ô 1Ñ1˜à!&‘J�A�q˜!˜QØ"# a¡%¨!¨a©%¡-°!°a±%Ñ"7¸!¸b¹&Ñ"@ÀBÑ!F�JØÔ3×7Ò7¸
ÑCÔCÀuÒLÐLØ¥ :¡¤Ñ.˜™ØÔ-ñ %1ØCH˜Ô4°ZÑ@à9=Ô9MÑ6˜ ¨°Ø! Qš;™;Ø&*§k¢k°!°VÑ&<Ô&<˜GØ&*§k¢k°!°VÑ&<Ô&<˜GØ&*§k¢k°!°VÑ&<Ô&<˜Gð !# gÐ 1Ð 1Ò 1Ð 1°Ò 1Ð 1Ð 1Ð 1Ð 1Ø$&¨'Ð$5Ð$5Ò$5Ð$5°AÒ$5Ð$5Ð$5Ð$5Ð$5Ø$&¨'Ð$5Ð$5Ò$5Ð$5°AÒ$5Ð$5Ð$5Ð$5Ð$5à $­Ø$.Ø'.°¡{°qÑ&8ñ%9à'.°¡{°qÑ&8ñ%9ð (/°¡{ñ%4ñ)"ô )"ñ !"  ð ,0¯;ª;°wÀÑ+HÔ+H Ø+/¯;ª;°wÀÑ+HÔ+H à$&¨(Ð$6Ð$6Ò$6Ð$6°QÒ$6Ð$6Ð$6Ð$6Ð$6Ø(+¨wÐ(;Ð(;Ò(;Ð(;¸Ò(;Ð(;Ð(;Ð(;Ð(;Ø(*¨hÐ(:Ð(:Ò(:Ð(:¸Ò(:Ð(:Ð(:Ð(:Ð(:à$(­BØ(2°gÀ±lÑ(Cñ-&ô -&ñ %& Dð %)­B°¸1±ÀÑ/BÀhÐQRÁlÑ/SÑ,TÔ,TÑ$T D Dà$(­B¨z©N¬NÑ$: DØ$(­E°%¸¸¸´)Ñ,<Ô,<Ñ$< D Dà ¥B z¡N¤NÑ2˜DØ ¥E¨%¡L¤LÑ0˜Dà',�Ô$Ñ$ñq8-ðt Œ9ð 	&Ø�D—O’OÑ%Ô%Ñ%ˆDØ•Ð.Ñ/Ô/Ñ/ˆå�4‰yŒy˜!�U 4™[œ[Ð(Ð(r   )r   r   )r�   rŽ   r�   rŽ   r   rŽ   )r”   rŽ   r   r•   )r0   r1   r2   Ú
_pushes_fdr8   rx   r9   r‹   rŒ   r“   r©   r5   r   r   rˆ   rˆ   ‰   s…   € € € € € € Ø€JØ8<€OÐ<Ð<Ð<Ñ<ØDFÐÐFÐFÐFÑFØ€Dðð ð ð ð
ð ð ð ðI)ð I)ð I)ð I)ð I)ð I)r   rˆ   r   z.qoi)r   r   r   r   )ry   rz   r    r{   r|   r}   r   r   )Ú
__future__r   r'   Útypingr   Ú r   r   Ú_binaryr   r#   r	   r
   r„   r   r   Ú	PyDecoderr7   r†   Ú	PyEncoderrˆ   Úregister_openr3   Úregister_decoderÚregister_extensionÚregister_saveÚregister_encoderr5   r   r   ú<module>r¶      sË  ðð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !ð&ð &ð &ð &ðRð Rð Rð Rð R�9Ô&ñ Rô Rð Rð&Hð Hð Hð Hð H�Ô$ñ Hô Hð HðVHð Hð Hð Hð(Z)ð Z)ð Z)ð Z)ð Z)�Ô$ñ Z)ô Z)ð Z)ðz €Ô �LÔ'¨°wÑ ?Ô ?Ð ?Ø €Ô �u˜jÑ )Ô )Ð )Ø €Ô ˜Ô,¨fÑ 5Ô 5Ð 5à €Ô �LÔ'¨Ñ /Ô /Ð /Ø €Ô �u˜jÑ )Ô )Ð )Ð )Ð )r   