§
    Å‡tj80  ã                  óö  — 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	Zd
ddd
ddddddddœZd)d„Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Zd*d$„Z ej        ej        ee¦  «          ej        ej        e¦  «          ej        d%e¦  «          ej        d&e¦  «          ej        ej        g d'¢¦  «          ej        ej        d(¦  «         dS )+é    )ÚannotationsN)ÚIOé   )ÚImageÚ	ImageFile)Úi16be)Úo8)Úo32les    	
Ú1ÚLÚRGBÚCMYKÚFÚPÚRGBA)ó   P1ó   P2ó   P3ó   P4ó   P5ó   P6s   P0CMYKó   Pfs   PyPs   PyRGBAs   PyCMYKÚprefixÚbytesÚreturnÚboolc                óf   — t          | ¦  «        dk    o|                      d¦  «        o	| d         dv S )Né   ó   Pr   s	   0123456fy)ÚlenÚ
startswith)r   s    úP/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/PIL/PpmImagePlugin.pyÚ_acceptr#   1   s4   € Ýˆv‰;Œ;˜!ÒÐU × 1Ò 1°$Ñ 7Ô 7ÐU¸FÀ1¼IÈÐ<UÐUó    c                  ó.   — e Zd ZdZdZd
d„Zd
d„Zdd„Zd	S )ÚPpmImageFileÚPPMzPbmplus imager   r   c                ó˜   — | j         €J ‚d}t          d¦  «        D ].}| j                              d¦  «        }|r	|t          v r n||z  }Œ/|S )Nr$   é   r   )ÚfpÚrangeÚreadÚb_whitespace)ÚselfÚmagicÚ_Úcs       r"   Ú_read_magiczPpmImageFile._read_magic=   sb   € ØŒwÐ"Ð"Ð"àˆå�q‘”ð 	ð 	ˆAØ”—’˜Q‘”ˆAØð ˜�\Ð)Ð)Ø�Ø�Q‰JˆEˆEØˆr$   c                óº  — | j         €J ‚d}t          |¦  «        dk    r‚| j                              d¦  «        }|sne|t          v r|sŒ<nX|dk    r:| j                              d¦  «        dvr	 | j                              d¦  «        dv°Œ}||z  }t          |¦  «        dk    °‚|sd}t	          |¦  «        ‚t          |¦  «        dk    rd|z  }t	          |¦  «        ‚|S )Nr$   é
   r   ó   #s   
z Reached EOF while reading headers!   Token too long in file header: %s)r*   r    r,   r-   Ú
ValueError)r.   Útokenr1   ÚmsgÚmsg_too_longs        r"   Ú_read_tokenzPpmImageFile._read_tokenI   sý   € ØŒwÐ"Ð"Ð"àˆÝ�%‰jŒj˜BÒÐØ”—’˜Q‘”ˆAØð ØØ•lÐ"Ð"Øð àØØ�d’�à”g—l’l 1‘o”o¨WÐ4Ð4Øð ”g—l’l 1‘o”o¨WÐ4Ð4àØ�Q‰JˆEõ �%‰jŒj˜BÒÐð ð 	+à4ˆCÝ˜S‘/”/Ð!Ý�‰ZŒZ˜"Š_ˆ_Ø?À%ÑGˆLÝ˜\Ñ*Ô*Ð*Øˆr$   ÚNonec                ó  — | j         €J ‚|                      ¦   «         }	 t          |         }n# t          $ r d}t	          |¦  «        ‚w xY w|| _        |dv rd| _        n|dv rd| _        n|dv rd| _        t          |                      ¦   «         ¦  «        t          |                      ¦   «         ¦  «        f| _	        d}|d	v rd
}|dk    rd}nø|dk    rst          |                      ¦   «         ¦  «        }|dk    st          j        |¦  «        sd}t          |¦  «        ‚t          |¦  «        | j        d<   |dk     rdnd}|ddf}nt          |                      ¦   «         ¦  «        }d|cxk     rdk     sn d}t          |¦  «        ‚|dk    r|dk    rd| _        |}|d
k    r|dk    r	|dk    rd}n|dk    rd}|dk    r|n||f}t!          j        |d| j        z   | j                              ¦   «         |¦  «        g| _        d S )Nznot a PPM file)r   r   zimage/x-portable-bitmap)r   r   zimage/x-portable-graymap)r   r   zimage/x-portable-pixmapÚraw)r   r   r   Ú	ppm_plainr   ú1;Ir   g        z!scale must be finite and non-zeroÚscaler   úF;32FzF;32BFéÿÿÿÿi   z1maxval must be greater than 0 and less than 65536éÿ   r   ÚIéÿÿ  úI;16BÚppm©r   r   )r*   r2   ÚMODESÚKeyErrorÚSyntaxErrorÚ_modeÚcustom_mimetypeÚintr:   Ú_sizeÚfloatÚmathÚisfiniter6   ÚabsÚinfor   Ú_TileÚsizeÚtellÚtile)	r.   Úmagic_numberÚmoder8   Údecoder_nameÚargsr@   ÚrawmodeÚmaxvals	            r"   Ú_openzPpmImageFile._opene   s_  € ØŒwÐ"Ð"Ð"à×'Ò'Ñ)Ô)ˆð	#Ý˜Ô&ˆDˆDøÝð 	#ð 	#ð 	#Ø"ˆCÝ˜cÑ"Ô"Ð"ð	#øøøð ˆŒ
à˜>Ð)Ð)Ø#<ˆDÔ Ð Ø˜^Ð+Ð+Ø#=ˆDÔ Ð Ø˜^Ð+Ð+Ø#<ˆDÔ å˜×)Ò)Ñ+Ô+Ñ,Ô,­c°$×2BÒ2BÑ2DÔ2DÑ.EÔ.EÐEˆŒ
àˆØÐ0Ð0Ð0Ø&ˆLð �3Š;ˆ;ØˆDˆDØ�SŠ[ˆ[Ý˜$×*Ò*Ñ,Ô,Ñ-Ô-ˆEØ˜Š|ˆ|¥4¤=°Ñ#7Ô#7ˆ|Ø9�Ý  ‘o”oÐ%Ý!$ U¡¤ˆDŒI�gÑà!&¨¢ �g�g°ˆGØ˜Q Ð#ˆDˆDå˜×)Ò)Ñ+Ô+Ñ,Ô,ˆFØ�vÐ%Ð%Ò%Ð% Ò%Ð%Ð%Ð%ØI�Ý  ‘o”oÐ%Ø˜Š|ˆ| ¨¢ Ø �”
àˆGØ˜{Ò*Ð*à˜U’?�? t¨s¢{ {Ø%�G�GØ˜s’]�]Ø#(�Là*¨eÒ3Ð3�7�7¸'À6Ð9JˆDåŒO˜L¨&°4´9Ñ*<¸d¼g¿lºl¹n¼nÈdÑSÔSð
ˆŒ	ˆ	ˆ	s	   Ÿ- ­A	N©r   r   )r   r;   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionr2   r:   r_   © r$   r"   r&   r&   9   s[   € € € € € Ø€FØ(Ðð
ð 
ð 
ð 
ðð ð ð ð87
ð 7
ð 7
ð 7
ð 7
ð 7
r$   r&   c                  óP   — e Zd ZU dZded<   dd„Zddd„Zdd„Zdd„Zdd„Z	dd„Z
dS )ÚPpmPlainDecoderTr   Ú_comment_spansr   r   c                ó\   — | j         €J ‚| j                              t          j        ¦  «        S )N)Úfdr,   r   Ú	SAFEBLOCK)r.   s    r"   Ú_read_blockzPpmPlainDecoder._read_block§   s'   € ØŒwÐ"Ð"Ð"àŒw�|Š|�IÔ/Ñ0Ô0Ð0r$   r   ÚblockÚstartrN   c                ó¬   — |                      d|¦  «        }|                      d|¦  «        }||z  dk    rt          ||¦  «        nt          ||¦  «        S )Nó   
ó   r   )ÚfindÚminÚmax)r.   rn   ro   ÚaÚbs        r"   Ú_find_comment_endz!PpmPlainDecoder._find_comment_end¬   sN   € Ø�JŠJ�u˜eÑ$Ô$ˆØ�JŠJ�u˜eÑ$Ô$ˆØ ™E AšI˜I�s�1�a‰yŒyˆy­3¨q°!©9¬9Ð4r$   c                ón  — | j         rA|r?|                      |¦  «        }|dk    r||dz   d …         }n|                      ¦   «         }|°?d| _         	 |                     d¦  «        }|dk    rnH|                      ||¦  «        }|dk    r|d |…         ||dz   d …         z   }n|d |…         }d| _         nŒd|S )NrB   r   FTr5   )ri   rx   rm   rs   )r.   rn   Úcomment_endÚcomment_starts       r"   Ú_ignore_commentsz PpmPlainDecoder._ignore_comments±   s  € ØÔð 	/àð 
/Ø"×4Ò4°UÑ;Ô;�Ø "Ò$Ð$ð " +°¡/Ð"3Ð"3Ô4�EØð !×,Ò,Ñ.Ô.�Eð ð 
/ð $ˆÔð	Ø!ŸJšJ tÑ,Ô,ˆMØ Ò"Ð"àØ×0Ò0°¸ÑFÔFˆKØ˜bÒ Ð ð ˜n˜}˜nÔ-°°kÀA±oÐ6GÐ6GÔ0HÑH��ð ˜n˜}˜nÔ-�Ø&*�Ô#Øð	ð ˆr$   Ú	bytearrayc                ó  — t          ¦   «         }| j        j        | j        j        z  }t	          |¦  «        |k    rž|                      ¦   «         }|sn‡|                      |¦  «        }d                     |                     ¦   «         ¦  «        }|D ](}|dvr"dt          |g¦  «        z  }t          |¦  «        ‚Œ)||z   d|…         }t	          |¦  «        |k    °žt                               dd¦  «        }|                     |¦  «        S )z¥
        This is a separate method because in the plain PBM format, all data tokens are
        exactly one byte, so the inter-token whitespace is optional.
        r$   )é0   é1   s   Invalid token for this mode: %sNs   01s   ÿ )r}   ÚstateÚxsizeÚysizer    rm   r|   ÚjoinÚsplitr   r6   Ú	maketransÚ	translate)r.   ÚdataÚtotal_bytesrn   Útokensr7   r8   Úinverts           r"   Ú_decode_bitonalzPpmPlainDecoder._decode_bitonalÓ   s  € õ
 ‰{Œ{ˆØ”jÔ&¨¬Ô)9Ñ9ˆå�$‰iŒi˜;Ò&Ð&Ø×$Ò$Ñ&Ô&ˆEØð àà×)Ò)¨%Ñ0Ô0ˆEà—X’X˜eŸkšk™mœmÑ,Ô,ˆFØð *ð *�Ø Ð(Ð(Ø<½uÀeÀW¹~¼~ÑM�CÝ$ S™/œ/Ð)ð )ð ˜6‘M < K <Ô0ˆDõ �$‰iŒi˜;Ò&Ð&õ —’ ¨Ñ4Ô4ˆØ�~Š~˜fÑ%Ô%Ð%r$   r^   c                ó,  — t          ¦   «         }d}| j        dk    rdnd}| j        dk    rdnd}t          j        | j        ¦  «        }| j        j        | j        j        z  |z  |z  }d}t          |¦  «        |k    �r—|                      ¦   «         }	|	s|rd}	n�nz|  	                    |	¦  «        }	|r||	z   }	d}|	 
                    ¦   «         }
|	rb|	d	d …                              ¦   «         sF|
                     ¦   «         }t          |¦  «        |k    rd
|d |dz   …         z  }t          |¦  «        ‚|
D ]Í}t          |¦  «        |k    rd
|d |dz   …         z  }t          |¦  «        ‚t          |¦  «        }|dk     rd|› �}t          |¦  «        ‚||k    rd|› �}t          |¦  «        ‚t          ||z  |z  ¦  «        }|| j        dk    rt!          |¦  «        nt#          |¦  «        z  }t          |¦  «        |k    r nŒÎt          |¦  «        |k    �°—|S )Nr4   rD   é   r   rE   rC   r$   ó    rB   s    Token too long found in data: %sr   zChannel value is negative: z'Channel value too large for this mode: )r}   rZ   r   Úgetmodebandsr�   r‚   rƒ   r    rm   r|   r…   ÚisspaceÚpopr6   rN   ÚroundÚo32r	   )r.   r^   rˆ   Úmax_lenÚout_byte_countÚout_maxÚbandsr‰   Ú
half_tokenrn   rŠ   r8   r7   ÚvalueÚmsg_strs                  r"   Ú_decode_blockszPpmPlainDecoder._decode_blocksì   sX  € Ý‰{Œ{ˆØˆØ"œi¨3Ò.Ð.˜˜°AˆØœ9¨Ò+Ð+�%�%°ˆÝÔ" 4¤9Ñ-Ô-ˆØ”jÔ&¨¬Ô)9Ñ9¸EÑAÀNÑRˆàˆ
Ý�$‰iŒi˜;Ò&Ñ&Ø×$Ò$Ñ&Ô&ˆEØð Øð Ø �E�Eñ à×)Ò)¨%Ñ0Ô0ˆEàð !Ø" UÑ*�Ø �
à—[’[‘]”]ˆFàð *˜U 2 3 3œZ×/Ò/Ñ1Ô1ð *Ø#ŸZšZ™\œ\�
Ý�z‘?”? WÒ,Ð,à;¸jÈÈ7ÐUVÉ;ÈÔ>WÑWð õ % S™/œ/Ð)àð ð �Ý�u‘:”: Ò'Ð'Ø=ÀÀmÈÐRSÉÀmÔ@TÑT�CÝ$ S™/œ/Ð)Ý˜E™
œ
�Ø˜1’9�9ØC¸EÐCÐC�GÝ$ WÑ-Ô-Ð-Ø˜6’>�>ØOÈÐOÐO�GÝ$ WÑ-Ô-Ð-Ý˜e f™n¨wÑ6Ñ7Ô7�Ø d¤i°3Ò&6Ð&6�˜E™
œ
˜
½B¸u¹I¼IÑE�Ý�t‘9”9 Ò+Ð+Ø�Eð ,õM �$‰iŒi˜;Ò&Ñ&ðP ˆr$   ÚbufferúImage.DecoderInputútuple[int, int]c                ó
  — d| _         | j        dk    r|                      ¦   «         }d}n6| j        d         }|                      |¦  «        }| j        dk    rdn| j        }|                      t          |¦  «        |¦  «         dS )NFr   z1;8rB   rD   úI;32©rB   r   )ri   rZ   rŒ   r\   rœ   Ú
set_as_rawr   )r.   r�   rˆ   r]   r^   s        r"   ÚdecodezPpmPlainDecoder.decode  sƒ   € Ø#ˆÔØŒ9˜ÒÐØ×'Ò'Ñ)Ô)ˆDØˆGˆGà”Y˜r”]ˆFØ×&Ò& vÑ.Ô.ˆDØ $¤	¨SÒ 0Ð 0�f�f°d´iˆGØ�Š�˜d™œ WÑ-Ô-Ð-Øˆur$   Nr`   )r   )rn   r   ro   rN   r   rN   )rn   r   r   r   )r   r}   )r^   rN   r   r}   ©r�   rž   r   rŸ   )ra   rb   rc   Ú	_pulls_fdÚ__annotations__rm   rx   r|   rŒ   rœ   r¤   rf   r$   r"   rh   rh   £   s¦   € € € € € € Ø€IØÐÐÑð1ð 1ð 1ð 1ð
5ð 5ð 5ð 5ð 5ð
 ð  ð  ð  ðD&ð &ð &ð &ð21ð 1ð 1ð 1ðf
ð 
ð 
ð 
ð 
ð 
r$   rh   c                  ó   — e Zd ZdZdd„ZdS )	Ú
PpmDecoderTr�   rž   r   rŸ   c                ó4  — | j         €J ‚t          ¦   «         }| j        d         }|dk     rdnd}| j        dk    rdnd}| j        dk    rdnd}t	          j        | j        ¦  «        }| j        j        | j        j        z  |z  |z  }t          |¦  «        |k     rÉ| j          
                    ||z  ¦  «        }	t          |	¦  «        ||z  k     rn•t          |¦  «        D ]r}
|dk    r|	|
         nt          |	|
|z  ¦  «        }t          |t          ||z  |z  ¦  «        ¦  «        }|| j        dk    rt          |¦  «        nt!          |¦  «        z  }Œst          |¦  «        |k     °É| j        dk    rd	n| j        }|                      t%          |¦  «        |¦  «         d
S )NrB   é   r   r   rD   rŽ   rE   rC   r¡   r¢   )rk   r}   r\   rZ   r   r�   r�   r‚   rƒ   r    r,   r+   Úi16rt   r“   r”   r	   r£   r   )r.   r�   rˆ   r^   Úin_byte_countr–   r—   r˜   Údest_lengthÚpixelsrw   rš   r]   s                r"   r¤   zPpmDecoder.decode/  s¦  € ØŒwÐ"Ð"Ð"å‰{Œ{ˆØ”˜2”ˆØ# cš\˜\˜˜¨qˆØ"œi¨3Ò.Ð.˜˜°AˆØœ9¨Ò+Ð+�%�%°ˆÝÔ" 4¤9Ñ-Ô-ˆØ”jÔ&¨¬Ô)9Ñ9¸EÑAÀNÑRˆÝ�$‰iŒi˜+Ò%Ð%Ø”W—\’\ -°%Ñ"7Ñ8Ô8ˆFÝ�6‰{Œ{˜]¨UÑ2Ò2Ð2àÝ˜5‘\”\ð Fð F�à!.°!Ò!3Ð!3�F˜1”I�I½¸VÀQÈÑEVÑ9WÔ9Wð õ ˜G¥U¨5°6©>¸GÑ+CÑ%DÔ%DÑEÔE�Ø d¤i°3Ò&6Ð&6�˜E™
œ
˜
½B¸u¹I¼IÑE��õ �$‰iŒi˜+Ò%Ð%ð !œI¨Ò,Ð,�&�&°$´)ˆØ�Š�˜d™œ WÑ-Ô-Ð-Øˆur$   Nr¥   )ra   rb   rc   r¦   r¤   rf   r$   r"   r©   r©   ,  s-   € € € € € Ø€Iðð ð ð ð ð r$   r©   ÚimúImage.Imager*   ú	IO[bytes]Úfilenameústr | bytesr;   c                ó†  — | j         dk    rd\  }}nZ| j         dk    rd\  }}nI| j         dv rd\  }}n:| j         dv rd\  }}n+| j         d	k    rd
\  }}nd| j         › d�}t          |¦  «        ‚|                     |d| j        z  z   ¦  «         |dk    r|                     d¦  «         nS|dk    r2|dk    r|                     d¦  «         n1|                     d¦  «         n|dk    r|                     d¦  «         | j         d	k    rdnd}t	          j        | |t	          j        dd| j        z   d|d|f¦  «        g¦  «         d S )Nr   )r?   r   r   )r   r   )rD   zI;16)rF   r   )r   r   )r   r   r   )rA   r   zcannot write mode z as PPMs   
%d %d
r   s   255
r   s   65535
r   s   -1.0
rB   r   r=   rH   r   )rZ   ÚOSErrorÚwriterV   r   Ú_saverU   )r°   r*   r³   r]   Úheadr8   Ú	row_orders          r"   r¸   r¸   M  s~  € Ø	„w�#‚~€~Ø$‰ˆ��Ø	Œ�CŠˆØ"‰ˆ��Ø	Œ�MÐ	!Ð	!Ø&‰ˆ��Ø	Œ�OÐ	#Ð	#Ø$‰ˆ��Ø	Œ�CŠˆØ&‰ˆ��à3 2¤7Ð3Ð3Ð3ˆÝ�c‰lŒlÐØ‡H‚HˆT�L 2¤7Ñ*Ñ*Ñ+Ô+Ð+Øˆu‚}€}Ø
�Š�ÑÔÐÐØ	�ŠˆØ�cŠ>ˆ>Ø�HŠH�XÑÔÐÐà�HŠH�ZÑ Ô Ð Ð Ø	�ŠˆØ
�Š�ÑÔÐØ”g ’n�n��¨!€IÝ„OØ
ˆB•” ¨°´Ñ(8¸!¸gÀqÈ)Ð=TÑUÔUÐVñô ð ð ð r$   rG   r>   )z.pbmz.pgmz.ppmz.pnmz.pfmzimage/x-portable-anymap)r   r   r   r   )r°   r±   r*   r²   r³   r´   r   r;   )Ú
__future__r   rQ   Útypingr   Ú r   r   Ú_binaryr   r¬   r	   r
   r”   r-   rI   r#   r&   Ú	PyDecoderrh   r©   r¸   Úregister_openrd   Úregister_saveÚregister_decoderÚregister_extensionsÚregister_mimerf   r$   r"   ú<module>rÅ      s  ðð  #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !ð
 +€ð ØØØØØàØàØØð	ð 	€ð$Vð Vð Vð Vðc
ð c
ð c
ð c
ð c
�9Ô&ñ c
ô c
ð c
ðTFð Fð Fð Fð F�iÔ)ñ Fô Fð FðRð ð ð ð �Ô$ñ ô ð ðBð ð ð ðD €Ô �LÔ'¨°wÑ ?Ô ?Ð ?Ø €Ô �LÔ'¨Ñ /Ô /Ð /à €Ô �u˜jÑ )Ô )Ð )Ø €Ô �{ OÑ 4Ô 4Ð 4à €Ô ˜,Ô-Ð/WÐ/WÐ/WÑ XÔ XÐ Xà €Ô �LÔ'Ð)BÑ CÔ CÐ CÐ CÐ Cr$   