§
    œ"²c�.  ã                   ó˜  — d dl Z d dlZd dlZd dlZd dlmZmZmZmZ  ej	        d¦  «        Z
e
rd dlmZ dZdZd„ Zd„ Zd	„ Zd
„ Zd„ Z G d„ d¦  «        Z G d„ dej        ¦  «        Zd„ Zd„ Z ej        ej        ee¦  «          ej        ej        d¦  «          ej        ej        e¦  «          ej        ej        d¦  «         edk    rý eej        ¦  «        dk     r ed¦  «          ej         ¦   «           e!ej        d         d¦  «        5 Z" ee"¦  «        Z#e#j$        d         D ]!Z%e%e#_%        e# &                    de%z  ¦  «         Œ" ej!        ej        d         ¦  «        5 Z'e' &                    d¦  «         ddd¦  «         n# 1 swxY w Y   ej(        dk    r ej)        d¦  «         ddd¦  «         dS # 1 swxY w Y   dS dS )é    N)ÚImageÚ	ImageFileÚPngImagePluginÚfeaturesÚjpg_2000)ÚJpeg2KImagePlugins   icnsé   c                 ó\   — t          j        d|                      t          ¦  «        ¦  «        S )Nz>4sI)ÚstructÚunpackÚreadÚ
HEADERSIZE)Úfobjs    ú5/usr/lib/python3/dist-packages/PIL/IcnsImagePlugin.pyÚ
nextheaderr   #   s    € ÝŒ=˜ §¢­:Ñ!6Ô!6Ñ7Ô7Ð7ó    c                 óÀ   — |\  }}|                       |¦  «         |                      d¦  «        }|dk    rd}t          |¦  «        ‚t          | |dz   |dz
  f|¦  «        S )Né   s       z'Unknown signature, expecting 0x00000000)Úseekr   ÚSyntaxErrorÚread_32)r   Ústart_lengthÚsizeÚstartÚlengthÚsigÚmsgs          r   Úread_32tr   '   sj   € à"�O€UˆFØ‡I‚IˆeÑÔÐØ
�)Š)�A‰,Œ,€CØ
Ð!Ò!Ð!Ø7ˆÝ˜#ÑÔÐÝ�4˜% !™) V¨a¡ZÐ0°$Ñ7Ô7Ð7r   c           
      ó¶  — |\  }}|                       |¦  «         |d         |d         z  |d         |d         z  f}|d         |d         z  }||dz  k    r1|                      |¦  «        }t          j        d||dddd¦  «        }�nOt          j        d|d¦  «        }t          d¦  «        D �](}	g }
|}|dk    r¦|                      d¦  «        }|snŽ|d         }|dz  rB|d	z
  }|                      d¦  «        }t          |¦  «        D ]}|
                     |¦  «         Œn-|dz   }|
                     |                      |¦  «        ¦  «         ||z  }|dk    rn|dk    °¦|dk    r"d
t          |¦  «        › d�}t          |¦  «        ‚t          j        d|d 	                    |
¦  «        dddd¦  «        }|j
                             |j
        |	¦  «         �Œ*d|iS )zn
    Read a 32bit RGB icon resource.  Seems to be either uncompressed or
    an RLE packbits-like scheme.
    r   é   é   é   ÚRGBÚrawNé€   é}   zError reading channel [z left]ÚLr   )r   r   r   Ú
frombufferÚnewÚrangeÚappendÚreprr   ÚjoinÚimÚputband)r   r   r   r   r   Ú
pixel_sizeÚsizesqÚindatar.   Úband_ixÚdataÚ	bytesleftÚbyteÚ	blocksizeÚir   Úbands                    r   r   r   2   s  € ð
 #�O€UˆFØ‡I‚IˆeÑÔÐØ�q”'˜D œGÑ# T¨!¤W¨t°A¬wÑ%6Ð7€JØ˜Œ]˜Z¨œ]Ñ*€FØ�˜!‘ÒÐà—’˜6Ñ"Ô"ˆÝÔ˜e Z°¸ÀÀqÈ!ÑLÔLˆ‰õ ŒY�u˜j¨$Ñ/Ô/ˆÝ˜Q‘x”xð 	,ñ 	,ˆGØˆDØˆIØ˜a’-�-Ø—y’y ‘|”|�Øð ØØ˜A”w�Ø˜$‘;ð 6Ø $ s¡
�IØŸ9š9 Q™<œ<�DÝ" 9Ñ-Ô-ð *ð *˜ØŸš DÑ)Ô)Ð)Ð)ð*ð !% q¡�IØ—K’K §	¢	¨)Ñ 4Ô 4Ñ5Ô5Ð5Ø˜YÑ&�	Ø ’>�>Øð ˜a’-�-ð  ˜AŠ~ˆ~ØGµ°Y±´ÐGÐGÐG�Ý! #Ñ&Ô&Ð&ÝÔ# C¨°S·X²X¸d±^´^ÀUÈCÐQRÐTUÑVÔVˆDØŒE�MŠM˜$œ' 7Ñ+Ô+Ð+Ñ+Ø�2ˆ;Ðr   c           	      ó  — |d         }|                       |¦  «         |d         |d         z  |d         |d         z  f}|d         |d         z  }t          j        d||                      |¦  «        dddd¦  «        }d|iS )Nr   r    r!   r'   r$   ÚA)r   r   r(   r   )r   r   r   r   r0   r1   r9   s          r   Úread_mkr<   ]   s…   € à˜ŒO€EØ‡I‚IˆeÑÔÐØ�q”'˜D œGÑ# T¨!¤W¨t°A¬wÑ%6Ð7€JØ˜Œ]˜Z¨œ]Ñ*€FÝÔ˜C ¨T¯YªY°vÑ->Ô->ÀÀsÈAÈqÑQÔQ€DØ�ˆ;Ðr   c                 ó¼  — |\  }}|                       |¦  «         |                      d¦  «        }|d d…         dk    rF|                       |¦  «         t          j        | ¦  «        }t	          j        |j        ¦  «         d|iS |d d…         dk    s|d d…         dk    s|dk    r§t          sd	}t          |¦  «        ‚|                       |¦  «         |                      |¦  «        }t          j
        |¦  «        }	t          j        |	¦  «        }t	          j        |j        ¦  «         |j        dk    r|                     d¦  «        }d|iS d
}t          |¦  «        ‚)Né   r	   s   ‰PNG

ÚRGBAr   s   ÿOÿQs   
‡
s      jP  
‡
zQUnsupported icon subimage format (rebuild PIL with JPEG 2000 support to fix this)z Unsupported icon subimage format)r   r   r   ÚPngImageFiler   Ú_decompression_bomb_checkr   Úenable_jpeg2kÚ
ValueErrorÚioÚBytesIOr   ÚJpeg2KImageFileÚmodeÚconvert)
r   r   r   r   r   r   r.   r   Ú
jp2kstreamÚfs
             r   Úread_png_or_jpeg2000rK   g   sa  € Ø"�O€UˆFØ‡I‚IˆeÑÔÐØ
�)Š)�B‰-Œ-€CØ
ˆ2ˆAˆ2„wÐ,Ò,Ð,Ø�	Š	�%ÑÔÐÝÔ(¨Ñ.Ô.ˆÝÔ'¨¬Ñ0Ô0Ð0Ø˜ˆ|ÐàˆBˆQˆBŒÐ&Ò&Ð&Øˆr�ˆrŒ7Ð)Ò)Ð)ØÐ9Ò9Ð9åð 	"ð6ð õ ˜S‘/”/Ð!à�	Š	�%ÑÔÐØ—Y’Y˜vÑ&Ô&ˆ
ÝŒJ�zÑ"Ô"ˆÝÔ.¨qÑ1Ô1ˆÝÔ'¨¬Ñ0Ô0Ð0ØŒ7�fÒÐØ—’˜FÑ#Ô#ˆBØ˜ˆ|Ðà0ˆÝ˜‰oŒoÐr   c                   ó¾   — e Zd Zdefgdefgdefgdefgdefgdefdefdefgd	efgd
efgdefdefgdefdefdefgdefgdefdefdefgdœZd„ Zd„ Z	d„ Z
d„ Zdd„ZdS )ÚIcnsFileó   ic10ó   ic09ó   ic14ó   ic08ó   ic13ó   ic07s   it32s   t8mks   icp6ó   ic12s   ih32s   h8mks   icp5s   il32s   l8mkó   ic11s   icp4s   is32s   s8mk))é   rV   r    )rV   rV   r!   )é   rW   r    )rW   rW   r!   )r%   r%   r    )r%   r%   r!   )é@   rX   r!   )é    rY   r    )é0   rZ   r!   )rY   rY   r!   )é   r[   r    )r[   r[   r!   c                 ó†  — i x| _         }|| _        t          |¦  «        \  }}t          |¦  «        sd}t	          |¦  «        ‚t
          }||k     rqt          |¦  «        \  }}|dk    rd}t	          |¦  «        ‚|t
          z  }|t
          z  }||f||<   |                     |t          j        ¦  «         ||z  }||k     °odS dS )z@
        fobj is a file-like object as an icns resource
        znot an icns filer   zinvalid block headerN)	Údctr   r   Ú_acceptr   r   r   rD   ÚSEEK_CUR)Úselfr   r]   r   Úfilesizer   r8   r7   s           r   Ú__init__zIcnsFile.__init__¦   sÖ   € ð
 ÐˆŒ�3ØˆŒ	Ý" 4Ñ(Ô(‰ˆˆXÝ�s‰|Œ|ð 	#Ø$ˆCÝ˜cÑ"Ô"Ð"ÝˆØ�(ŠlˆlÝ'¨Ñ-Ô-‰NˆC�Ø˜AŠ~ˆ~Ø,�Ý! #Ñ&Ô&Ð&Ø•‰OˆAØ�Ñ#ˆIØ˜9�~ˆC�‰HØ�IŠI�i¥¤Ñ-Ô-Ð-Ø�‰NˆAð �(Šlˆlˆlˆlˆlˆlr   c                 ó˜   — g }| j                              ¦   «         D ]-\  }}|D ]%\  }}|| j        v r|                     |¦  «          nŒ&Œ.|S ©N)ÚSIZESÚitemsr]   r+   )r`   Úsizesr   ÚfmtsÚfmtÚreaders         r   Ú	itersizeszIcnsFile.itersizes½   sj   € ØˆØœ*×*Ò*Ñ,Ô,ð 	ð 	‰JˆD�$Ø!%ð ð ‘��fØ˜$œ(�?�?Ø—L’L Ñ&Ô&Ð&Ø�Eð #øð ˆr   c                 ón   — |                       ¦   «         }|sd}t          |¦  «        ‚t          |¦  «        S )NzNo 32bit icon resources found)rk   r   Úmax)r`   rg   r   s      r   ÚbestsizezIcnsFile.bestsizeÆ   s8   € Ø—’Ñ Ô ˆØð 	#Ø1ˆCÝ˜cÑ"Ô"Ð"Ý�5‰zŒzÐr   c                 ó²   — i }| j         |         D ]F\  }}| j                             |¦  «        }|�%|                      || j        ||¦  «        ¦  «         ŒG|S )zÂ
        Get an icon resource as {channel: array}.  Note that
        the arrays are bottom-up like windows bitmaps and will likely
        need to be flipped or transposed in some way.
        )re   r]   ÚgetÚupdater   )r`   r   r]   Úcoderj   Údescs         r   ÚdataforsizezIcnsFile.dataforsizeÍ   sd   € ð ˆØ œJ tÔ,ð 	:ð 	:‰LˆD�&Ø”8—<’< Ñ%Ô%ˆDØÐØ—
’
˜6˜6 $¤)¨T°4Ñ8Ô8Ñ9Ô9Ð9øØˆ
r   Nc                 ó€  — |€|                       ¦   «         }t          |¦  «        dk    r|d         |d         df}|                      |¦  «        }|                     dd ¦  «        }|r|S |                     d¦  «                             ¦   «         }	 |                     |d         ¦  «         n# t          $ r Y nw xY w|S )Nr    r   r!   r?   r#   r;   )rn   Úlenrt   rp   ÚcopyÚputalphaÚKeyError)r`   r   Úchannelsr.   s       r   ÚgetimagezIcnsFile.getimageÚ   sÊ   € Øˆ<Ø—=’=‘?”?ˆDÝˆt‰9Œ9˜Š>ˆ>Ø˜”G˜T !œW aÐ(ˆDØ×#Ò# DÑ)Ô)ˆà�\Š\˜& $Ñ'Ô'ˆØð 	ØˆIà�\Š\˜%Ñ Ô ×%Ò%Ñ'Ô'ˆð	Ø�KŠK˜ œÑ&Ô&Ð&Ð&øÝð 	ð 	ð 	ØˆDð	øøøàˆ	s   ÂB. Â.
B;Â:B;rd   )Ú__name__Ú
__module__Ú__qualname__rK   r   r<   r   re   rb   rk   rn   rt   r{   © r   r   rM   rM   ‰   sB  € € € € € ð !Ð"6Ð7Ð8Ø Ð"6Ð7Ð8Ø Ð"6Ð7Ð8Ø Ð"6Ð7Ð8Ø Ð"6Ð7Ð8àÐ*Ð+Ø�hÐØ�gÐð
ð
 Ð 4Ð5Ð6ØÐ 4Ð5Ð6Ø Ð(¨7°GÐ*<Ð=àÐ*Ð+Ø�gÐØ�gÐð
ð
 Ð 4Ð5Ð6àÐ*Ð+Ø�gÐØ�gÐð
ð)ð €Eð6ð ð ð.ð ð ðð ð ðð ð ðð ð ð ð ð r   rM   c                   ó\   — e Zd ZdZdZdZd„ Zed„ ¦   «         Zej	        d„ ¦   «         Zd„ Z
dS )	ÚIcnsImageFilea!  
    PIL image support for Mac OS .icns files.
    Chooses the best resolution, but will possibly load
    a different size image if you mutate the size attribute
    before calling 'load'.

    The info dictionary has a key 'sizes' that is a list
    of sizes that the icns file has.
    ÚICNSzMac OS icns resourcec                 ó:  — t          | j        ¦  «        | _        d| _        | j                             ¦   «         | j        d<   | j                             ¦   «         | _        | j        d         | j        d         z  | j        d         | j        d         z  f| _        d S )Nr?   rg   r   r    r!   )	rM   ÚfpÚicnsrG   rk   Úinforn   Ú	best_sizer   ©r`   s    r   Ú_openzIcnsImageFile._openÿ   s‚   € Ý˜TœWÑ%Ô%ˆŒ	ØˆŒ	Ø!œY×0Ò0Ñ2Ô2ˆŒ	�'ÑØœ×+Ò+Ñ-Ô-ˆŒàŒN˜1Ô ¤¨qÔ 1Ñ1ØŒN˜1Ô ¤¨qÔ 1Ñ1ð
ˆŒ	ˆ	ˆ	r   c                 ó   — | j         S rd   )Ú_sizerˆ   s    r   r   zIcnsImageFile.size	  s
   € àŒzÐr   c                 óœ  — |}|| j         d         vr$t          |¦  «        dk    r|d         |d         df}|| j         d         vr`t          |¦  «        dk    rM|d         dk    rAd„ | j         d         D ¦   «         }||v r&| j         d         |                     |¦  «                 }|| j         d         vrd}t          |¦  «        ‚|| _        d S )Nrg   r    r   r!   r"   c                 óR   — g | ]$}|d          |d         z  |d         |d         z  f‘Œ%S )r   r    r!   r   )Ú.0r   s     r   ú
<listcomp>z&IcnsImageFile.size.<locals>.<listcomp>  sD   € ð ð ð Ø;?��a”˜4 œ7Ñ" D¨¤G¨d°1¬gÑ$5Ð6ðð ð r   z2This is not one of the allowed sizes of this image)r†   rv   ÚindexrC   r‹   )r`   ÚvalueÚ	info_sizeÚsimple_sizesr   s        r   r   zIcnsImageFile.size  sî   € àˆ	Ø˜DœI gÔ.Ð.Ð.µ3°y±>´>ÀQÒ3FÐ3FØ" 1œ y°¤|°QÐ7ˆIà˜TœY wÔ/Ð/Ð/Ý�I‘” !Ò#Ð#Ø˜!” Ò!Ð!ðð ØCGÄ9ÈWÔCUðñ ô ˆLð ˜Ð$Ð$Ø œI gÔ.¨|×/AÒ/AÀ%Ñ/HÔ/HÔI�	Ø˜DœI gÔ.Ð.Ð.ØFˆCÝ˜S‘/”/Ð!ØˆŒ
ˆ
ˆ
r   c                 ó  — t          | j        ¦  «        dk    rG| j        | _        | j        d         | j        d         z  | j        d         | j        d         z  f| _        t          j                             | ¦  «        }| j        �| j        j        | j        k    r|S |                      ¦   «          | j                             | j        ¦  «        }|                     ¦   «         }|j        | _        |j	        | _	        |j        | _        |S )Nr"   r   r    r!   )
rv   r   r‡   r   Úloadr.   Úload_preparer…   r{   rG   )r`   Úpxr.   s      r   r•   zIcnsImageFile.load!  sß   € ÝˆtŒy‰>Œ>˜QÒÐØ!œYˆDŒNà”˜qÔ! D¤N°1Ô$5Ñ5Ø”˜qÔ! D¤N°1Ô$5Ñ5ðˆDŒIõ
 Œ[×Ò˜dÑ#Ô#ˆØŒ7Ð 4¤7¤<°4´9Ò#<Ð#<àˆIØ×ÒÑÔÐàŒY×Ò ¤Ñ/Ô/ˆð �WŠW‰YŒYˆà”%ˆŒØ”GˆŒ	Ø”GˆŒ	àˆ	r   N)r|   r}   r~   Ú__doc__ÚformatÚformat_descriptionr‰   Úpropertyr   Úsetterr•   r   r   r   r�   r�   ñ   s�   € € € € € ðð ð €FØ/Ðð
ð 
ð 
ð ðð ñ „Xðð 
„[ðð ñ „[ðð&ð ð ð ð r   r�   c           	      óÖ  — t          |d¦  «        r|                     ¦   «          dddddddddœ}d	„ | j                             d
g ¦  «        D ¦   «         }i }t	          |                     ¦   «         ¦  «        D ]e}||v r||         n|                      ||f¦  «        }t          j        ¦   «         }| 	                    |d¦  «         | 
                    ¦   «         ||<   Œfg }	|                     ¦   «         D ];\  }
}||         }|	                     |
t          t          |¦  «        z   |dœ¦  «         Œ<|                     t           ¦  «         t          }|t          dt          |	¦  «        z  z   z  }|t#          d„ |	D ¦   «         ¦  «        z  }|                     t%          j        d|¦  «        ¦  «         |                     d¦  «         |                     t%          j        dt          t          |	¦  «        t          z  z   ¦  «        ¦  «         |	D ]K}|                     |d         ¦  «         |                     t%          j        d|d         ¦  «        ¦  «         ŒL|	D ]f}|                     |d         ¦  «         |                     t%          j        d|d         ¦  «        ¦  «         |                     |d         ¦  «         Œgt          |d¦  «        r|                     ¦   «          dS dS )za
    Saves the image as a series of PNG files,
    that are then combined into a .icns file.
    Úflushr%   rW   rV   i   rY   rX   )rS   rQ   rO   rN   rU   rT   rR   rP   c                 ó   — i | ]
}|j         |“ŒS r   )Úwidth)rŽ   r.   s     r   ú
<dictcomp>z_save.<locals>.<dictcomp>M  s   € ÐVÐVÐV¨�r”x ÐVÐVÐVr   Úappend_imagesÚpng)Útyper   Ústreamr	   c              3   ó&   K  — | ]}|d          V — ŒdS )r   Nr   )rŽ   Úentrys     r   ú	<genexpr>z_save.<locals>.<genexpr>e  s&   è è € Ð:Ð:¨�u˜V”}Ð:Ð:Ð:Ð:Ð:Ð:r   z>is   TOC r¤   r   r¥   N)Úhasattrrž   Úencoderinforp   ÚsetÚvaluesÚresizerD   rE   ÚsaveÚgetvaluerf   r+   r   rv   ÚwriteÚMAGICÚsumr   Úpack)r.   r„   Úfilenamerg   Úprovided_imagesÚsize_streamsr   ÚimageÚtempÚentriesr¤   r¥   Úfile_lengthr§   s                 r   Ú_saver»   ;  så  € õ
 ˆr�7ÑÔð Ø
�Š‰
Œ
ˆ
ð ØØØØØØØð	ð 	€Eð WÐV¨b¬n×.@Ò.@ÀÐRTÑ.UÔ.UÐVÑVÔV€OØ€LÝ�E—L’L‘N”NÑ#Ô#ð 	-ð 	-ˆð �Ð&Ð&ð ˜DÔ!Ð!à—’˜D $˜<Ñ(Ô(ð 	õ Œz‰|Œ|ˆØ�
Š
�4˜ÑÔÐØ!Ÿ]š]™_œ_ˆ�TÑÐà€GØ—k’k‘m”mð 
ð 
‰
ˆˆdØ˜dÔ#ˆØ�ŠØ¥:µ°F±´Ñ#;ÀvÐNÐNñ	
ô 	
ð 	
ð 	
ð
 ‡H‚H�U�O„O€OÝ€KØ•: ¥C¨¡L¤LÑ 0Ñ0Ñ0€KØ•3Ð:Ð:°'Ð:Ñ:Ô:Ñ:Ô:Ñ:€KØ‡H‚H�VŒ[˜˜{Ñ+Ô+Ñ,Ô,Ð,ð ‡H‚HˆWÑÔÐØ‡H‚H�VŒ[˜�z­C°©L¬L½:Ñ,EÑEÑFÔFÑGÔGÐGØð 3ð 3ˆØ
�Š��v”ÑÔÐØ
�Š•”˜T 5¨¤=Ñ1Ô1Ñ2Ô2Ð2Ð2ð ð "ð "ˆØ
�Š��v”ÑÔÐØ
�Š•”˜T 5¨¤=Ñ1Ô1Ñ2Ô2Ð2Ø
�Š��x”Ñ!Ô!Ð!Ð!åˆr�7ÑÔð Ø
�Š‰
Œ
ˆ
ˆ
ˆ
ðð r   c                 ó(   — | d d…         t           k    S )Nr   )r±   )Úprefixs    r   r^   r^   y  s   € Ø�"�1�"Œ:�ÒÐr   z.icnsz
image/icnsÚ__main__r    z)Syntax: python3 IcnsImagePlugin.py [file]r!   Úrbrg   zout-%s-%s-%s.pngzout.pngÚwindows)*rD   Úosr   ÚsysÚPILr   r   r   r   Úcheck_codecrB   r   r±   r   r   r   r   r<   rK   rM   r�   r»   r^   Úregister_openr™   Úregister_extensionÚregister_saveÚregister_mimer|   rv   ÚargvÚprintÚexitÚopenr„   Úimfr†   r   r®   r.   ÚplatformÚ	startfiler   r   r   ú<module>rÐ      s]  ðð( 
€	€	€	Ø 	€	€	€	Ø €€€Ø 
€
€
€
à :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :à$�Ô$ ZÑ0Ô0€Øð &Ø%Ð%Ð%Ð%Ð%Ð%à€Ø€
ð8ð 8ð 8ð8ð 8ð 8ð(ð (ð (ðVð ð ðð ð ðDað að að að añ aô að aðPGð Gð Gð Gð G�IÔ'ñ Gô Gð GðT;ð ;ð ;ð|ð ð ð €Ô �MÔ(¨-¸Ñ AÔ AÐ AØ €Ô ˜Ô-¨wÑ 7Ô 7Ð 7à €Ô �MÔ(¨%Ñ 0Ô 0Ð 0Ø €Ô �MÔ(¨,Ñ 7Ô 7Ð 7àˆzÒÐØ
€sˆ3Œ8�}„}�qÒÐØˆÐ9Ñ:Ô:Ð:ØˆŒ‰
Œ
ˆ
à	ˆˆcŒh�qŒk˜4Ñ	 Ô	 ð $ BØˆm˜BÑÔˆØ”H˜WÔ%ð 	0ð 	0ˆDØˆCŒHØ�HŠHÐ'¨$Ñ.Ñ/Ô/Ð/Ð/ØˆUŒZ˜œ œÑ$Ô$ð 	¨Ø�GŠG�IÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àŒ<˜9Ò$Ð$ØˆBŒL˜Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $ð Ðs7   ÄAF=Å(F
Å>F=Æ
F	ÆF=ÆF	ÆF=Æ=GÇG