§
    þÜÒj«a ã                  óì  — U d dl mZ h d£Zd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZmZ d dlmZ d dlmZmZ d dlmZmZmZ dd	lmZmZmZmZmZmZ dd
lmZ ddlm Z! ddl"m#Z#m$Z$ ddlm%Z% dZ&e&rd dl
m'Z' d dlm(Z(m)Z) ddl*m+Z+m,Z,m-Z-  ej.        e/¦  «        Z0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@d ZAd!ZBd"ZCd#ZDd$ZEd%ZFd&ZGd'ZHd(ZId)ZJd*ZKd+ZLd,ZMd-ZNd.ZOd/ZPd0ZQd1ZRd2ZSd3ZTd4ZUd5ZVd6ZWd7ZXd8ZYd9ZZd:Z[d;Z\d<Z]d=Z^i dd>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“dKdL“dMdN“dOdP“dQdR“dSdT“dUdV“dWdX“dYdZ“d[d\“d]d^“Z_d_„ e_ `                    ¦   «         D ¦   «         Zai e4d d`dd`dafdb“e5d d`dd`dafdb“e4d d`d?d`dafdc“e5d d`d?d`dafdc“e4dd`dd`dafdd“e5dd`dd`dafdd“e4dd`d?d`dafde“e5dd`d?d`dafde“e4d d`ddfdafdg“e5d d`ddfdafdg“e4d d`d?dfdafdh“e5d d`d?dfdafdh“e4dd`ddfdafdi“e5dd`ddfdafdi“e4dd`d?dfdafdj“e5dd`d?dfdafdj“e4d d`ddkdafdl“i e5d d`ddkdafdl“e4d d`d?dkdafdm“e5d d`d?dkdafdm“e4dd`ddkdafdn“e5dd`ddkdafdn“e4dd`d?dkdafdo“e5dd`d?dkdafdo“e4d d`ddpdafdq“e5d d`ddpdafdq“e4d d`d?dpdafdr“e5d d`d?dpdafdr“e4dd`ddpdafds“e5dd`ddpdafds“e4ddfddpdafds“e5ddfddpdafds“e4dd`d?dpdafdt“e5dd`d?dpdafdt“¥i e4dd`ddudafdv“e4d d`ddwdafdx“e4dd`ddwdafdx“e5dd`ddwdafdy“e4dd`d?dwdafdz“e4ddfddwdafd{“e5ddfddwdafd|“e4d d}dd~dafd“e5d d}dd~dafd€“e4dd`dd~dafd�“e4ddfdd~dafd‚“e5ddfdd~dafdƒ“e4dd}dd~dafd“e5dd}dd~dafd€“e4dd`dd„d…fd†“e5dd`dd„d…fd†“e4dd`dd„d`fd‡“¥i e5dd`dd„d`fd‡“e4dd`dd„dffdˆ“e5dd`dd„dffdˆ“e4d?d`dd‰dafdŠ“e5d?d`dd‰dafdŠ“e4d?d`d?d‰dafd‹“e5d?d`d?d‰dafd‹“e4d?d`ddŒdafd�“e5d?d`ddŒdafd�“e4d?d`ddŒd…fdŽ“e5d?d`ddŒd…fdŽ“e4d?d`dd�d�fd‘“e5d?d`dd�d�fd‘“e4d?d`dd’d“fd”“e5d?d`dd’d“fd”“e4d?d`ddŒd`fd•“e5d?d`ddŒd`fd•“¥i e4d?d`dd�d–fd—“e5d?d`dd�d–fd—“e4d?d`dd’d˜fd™“e5d?d`dd’d˜fd™“e4d?d`ddŒdffd�“e5d?d`ddŒdffd�“e4d?d`dd�dšfd›“e5d?d`dd�dšfd›“e4d?d`dd’dœfd�“e5d?d`dd’dœfd�“e4d?d`ddŒdžfd�“e5d?d`ddŒdžfd�“e4d?d`ddŸdafd “e5d?d`ddŸdafd¡“e4d?d`dd¢dafd£“e5d?d`dd¢dafd¤“e4d?d`dd¢d…fd¥“¥i e5d?d`dd¢d…fd¦“e4d?d`dd¢d`fd§“e5d?d`dd¢d`fd¨“e4d?d`dd¢dffd£“e5d?d`dd¢dffd¤“e4dAd`dd`dafd©“e5dAd`dd`dafd©“e4dAd`d?d`dafdª“e5dAd`d?d`dafdª“e4dAd`ddfdafd«“e5dAd`ddfdafd«“e4dAd`d?dfdafd¬“e5dAd`d?dfdafd¬“e4dAd`ddkdafd­“e5dAd`ddkdafd­“e4dAd`d?dkdafd®“e5dAd`d?dkdafd®“¥i e4dAd`ddpdafd¯“e5dAd`ddpdafd¯“e4dAd`dd„d…fd°“e5dAd`dd„d…fd°“e4dAd`dd„dffd±“e5dAd`dd„dffd±“e4dAd`d?dpdafd²“e5dAd`d?dpdafd²“e4dEd`ddŒdafd³“e5dEd`ddŒdafd³“e4dEd`dd�d…fd´“e5dEd`dd�d…fd´“e4dEd`dd’d�fdµ“e5dEd`dd’d�fdµ“e4dEd`dd¢dafd¶“e5dEd`dd¢dafd·“e4dGd`ddpdafds“¥e5dGd`ddpdafdse4dGd`dd‰dafd¸e5dGd`dd‰dafd¸e4dKd`dd‰dafd¹e5dKd`dd‰dafd¹i¥Zb ecdº„ ebD ¦   «         ¦  «        Zdg d»¢Ze�d	dÀ„Zf�d
dÆ„Zg�ddÉ„Zhi ZidÊejdË<   i ZkdÌejdÍ<   �ddÑ„Zl G dÒ„ dÇe¦  «        ZmedÓeneogef         Zp�dd×„Zq�ddÙ„Zr�ddÝ„Zse&reetef         ZuneZu G dÞ„ dÓeu¦  «        Zveiev_i        ekev_k         e%j`        ¦   «         D ]M\  ZwZxex y                    dßdà¦  «        Zx ezevdáex› �eiew         d         ¦  «          ezevdâex› �ekew         ¦  «         ŒN[i[k[w[x G dã„ däev¦  «        Z{e{Z| G då„ dæej        ¦  «        Z}i dçdçe4ddd`df“dèdèe4dddpdf“dédée4ddd„d?f“dêdêe4dAddpdf“dëdëe4dAdd„d?f“dìdíe4dd?d~df“dîdîe4dddwdf“dïdïe4dddwdf“dðdñe4ddAd~df“dòdòe4d?dd‰df“dódóe4d?ddŒd f“dôdôe4d?ddŒd?f“dõdõe4dEddŒdf“dödöe4dGdd‰df“d÷d÷e4dKdd‰df“dødøe5dddwdf“Z~�ddû„Z�d�d„Z€ G �d„ �dej�        ¦  «        Z‚�d�d„Zƒ ej„        e}j…        e}ef¦  «          ej†        e}j…        e€¦  «          ej‡        e}j…        eƒ¦  «          ejˆ        e}j…        �d�dg¦  «          ej‰        e}j…        �d¦  «         dS (  é    )Úannotations>   ú	PIL._utilúPIL._binaryÚmathÚstructÚwarningsÚ	fractionsÚ	itertoolsN)ÚCallableÚMutableMapping)ÚFraction)ÚNumberÚRational)ÚIOÚAnyÚcasté   )ÚExifTagsÚImageÚ	ImageFileÚImageOpsÚImagePaletteÚTiffTags)Úi16be)Úi32be)ÚDeferredErrorÚis_path©ÚTYPESF)ÚIterator)ÚNoReturnÚSelf)ÚBufferÚIntegralLikeÚStrOrBytesPathé   s   IIs   MMéÿ   é   i  i  i  i  i
  i  é  i  i  i  i  i  i  i(  i-  i1  i2  i;  i=  i@  iB  iC  éD  iE  iJ  iR  iS  i[  i  i  i˜‚  i»ƒ  iI†  is‡  ii‡  i¼  i  i–Æ  i—Æ  Úrawé   Ú
tiff_ccitté   Úgroup3é   Úgroup4é   Útiff_lzwé   Ú	tiff_jpegé   Újpegé   Útiff_adobe_deflatei€  Útiff_raw_16i€  Úpackbitsi)€  Útiff_thunderscani²€  Útiff_deflateit‡  Útiff_sgilogiu‡  Útiff_sgilog24imˆ  ÚlzmaiPÃ  ÚzstdiQÃ  Úwebpc                ó   — i | ]\  }}||“Œ	S © rD   )Ú.0ÚkÚvs      ú_C:\Users\johnn\AppData\Local\Programs\Python\Python311\Lib\site-packages\PIL/TiffImagePlugin.pyú
<dictcomp>rI   ž   s   € ÐBÐBÐB¡  A˜˜1ÐBÐBÐBó    ©r   rD   )Ú1z1;I)rL   z1;IR)rL   rL   )rL   z1;R)r,   )ÚLzL;2I)rM   zL;2IR)rM   zL;2)rM   zL;2R)r0   )rM   zL;4I)rM   zL;4IR)rM   zL;4)rM   zL;4R)r8   )rM   zL;I)rM   zL;IR)rM   rM   )rM   zL;R)é   )úI;16zI;12)é   )rO   rO   )úI;16BrQ   )rO   zI;16R)ÚIzI;16S)rR   zI;16BS)r.   )é    )ÚFúF;32F)rT   zF;32BF)rR   zI;32N)rR   úI;32S)rR   zI;32BS)r8   r8   ©r   )rM   ÚLX)ÚLarY   )ÚLArZ   )r8   r8   r8   )ÚRGBr[   )r[   zRGB;R)r8   r8   r8   r8   )ÚRGBAr\   )r[   ÚRGBX)r8   r8   r8   r8   r8   )r   r   )r[   ÚRGBXX)r8   r8   r8   r8   r8   r8   )r   r   r   )r[   ÚRGBXXX)r\   ÚRGBa)r   r   )r\   ÚRGBaX)r   r   r   )r\   ÚRGBaXX)r,   r   )r\   ÚRGBAX)r,   r   r   )r\   ÚRGBAXX)iç  )rP   rP   rP   )r[   zRGB;16L)r[   zRGB;16B)rP   rP   rP   rP   )r\   zRGBA;16L)r\   zRGBA;16B)r[   zRGBX;16L)r[   zRGBX;16B)r\   zRGBa;16L)r\   zRGBa;16B)ÚPzP;1)re   zP;1R)re   zP;2)re   zP;2R)re   zP;4)re   zP;4R)re   re   )re   ÚPX)ÚPArg   )re   zP;R)ÚCMYKrh   )rh   ÚCMYKX)rh   ÚCMYKXX)rh   zCMYK;16L)rh   zCMYK;16B)ÚYCbCrrk   )ÚLABrl   c              #  ó@   K  — | ]}t          |d          ¦  «        V — ŒdS )r0   N)Úlen)rE   Úkey_tps     rH   ú	<genexpr>rp   !  s,   è è € ÐAÐA¨V�#˜f Qœi™.œ.ÐAÐAÐAÐAÐAÐArJ   )s   MM *s   II* s   MM* s   II *s   MM +s   II+ ÚprefixÚbytesÚreturnÚboolc                óP   — |                       t          t          ¦  «        ¦  «        S ©N)Ú
startswithÚtupleÚPREFIXES©rq   s    rH   Ú_acceptr{   -  s   € Ø×Ò�U¥8™_œ_Ñ-Ô-Ð-rJ   Úvalúfloat | Fraction | IFDRationalÚmax_valÚintú!tuple[IntegralLike, IntegralLike]c                ó˜   — t          | ¦  «        dk    }t          |rd| z  n| ¦  «                             |¦  «        }|r|d d d…         n|S )Nr   éÿÿÿÿ)ÚabsÚIFDRationalÚlimit_rational)r|   r~   ÚinvÚn_ds       rH   Ú_limit_rationalrˆ   1  sT   € õ ˆc‰(Œ(�QŠ,€CÝ
 Ð-�a˜#‘g�g¨#Ñ
.Ô
.×
=Ò
=¸gÑ
FÔ
F€CØÐ$ˆ3ˆtˆt�ˆtŒ9ˆ9 Ð$rJ   r„   Úmin_valc                óJ  — t          | ¦  «        }|j        |j        f}t          d„ |D ¦   «         ¦  «        |k     rt	          | t          |¦  «        ¦  «        }t          d„ |D ¦   «         ¦  «        }t          |¦  «        |k    rt	          |d         |d         z  |¦  «        }|S )Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S rv   ©Úfloat©rE   Úis     rH   rp   z)_limit_signed_rational.<locals>.<genexpr>?  s(   è è € Ð
!Ð
!˜�5�‰8Œ8Ð
!Ð
!Ð
!Ð
!Ð
!Ð
!rJ   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rv   rŒ   rŽ   s     rH   rp   z)_limit_signed_rational.<locals>.<genexpr>B  s(   è è € Ð,Ð, 1•e˜A‘h”hÐ,Ð,Ð,Ð,Ð,Ð,rJ   r   r   )r   Ú	numeratorÚdenominatorÚminrˆ   rƒ   rx   Úmax)r|   r~   r‰   Úfracr‡   Ú	n_d_floats         rH   Ú_limit_signed_rationalr—   9  s£   € õ �C‰=Œ=€DØ-1¬^¸TÔ=MÐ-M€Cå
Ð
!Ð
!˜SÐ
!Ñ
!Ô
!Ñ!Ô! GÒ+Ð+Ý˜c¥3 w¡<¤<Ñ0Ô0ˆåÐ,Ð,¨Ð,Ñ,Ô,Ñ,Ô,€IÝ
ˆ9�~„~˜ÒÐÝ˜i¨œl¨Y°q¬\Ñ9¸7ÑCÔCˆà€JrJ   ú"dict[int, tuple[int, _LoaderFunc]]Ú_load_dispatchúdict[int, Callable[..., Any]]Ú_write_dispatchÚopÚstrr   c                ó   ‡ — dˆ fd„}|S )	NÚselfr„   Úargsútuple[float, ...]rs   úbool | float | Fractionc                ó4   •—  t          | j        ‰¦  «        |Ž S rv   )ÚgetattrÚ_val)rŸ   r    rœ   s     €rH   Údelegatez_delegate.<locals>.delegateQ  s   ø€ ð &�w�t”y "Ñ%Ô% tÐ,Ð,rJ   )rŸ   r„   r    r¡   rs   r¢   rD   )rœ   r¦   s   ` rH   Ú	_delegater§   P  s(   ø€ ð-ð -ð -ð -ð -ð -ð
 €OrJ   c                  óî  — e Zd ZdZ	 dZ	 d9d:d
„Zed;d„¦   «         Zed<d„¦   «         Zd=d„Z	d>d„Z
d<d„Zd?d„Zd@d„ZdAd„Z	  ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed ¦  «        Z ed!¦  «        Z ed"¦  «        Z ed#¦  «        Z ed$¦  «        Z ed%¦  «        Z ed&¦  «        Z ed'¦  «        Z ed(¦  «        Z ed)¦  «        Z ed*¦  «        Z ed+¦  «        Z ed,¦  «        Z  ed-¦  «        Z! ed.¦  «        Z" ed/¦  «        Z# ed0¦  «        Z$ ed1¦  «        Z% ed2¦  «        Z& ed3¦  «        Z' ed4¦  «        Z( ed5¦  «        Z) ed6¦  «        Z* ed7¦  «        Z+d8S )Br„   zÀImplements a rational class where 0/0 is a legal value to match
    the in the wild use of exif rationals.

    e.g., DigitalZoomRatio - 0.00/0.00  indicates that no digital zoom was used
    )Ú
_numeratorÚ_denominatorr¥   r   Úvaluer}   r’   r   rs   ÚNonec                ó>  — |  t          |t          ¦  «        r&|j        | _        |j        | _        |j        | _        dS t          |t          ¦  «        r|j        | _        |j        | _        n+t          rt          d|¦  «        | _        n|| _        || _        |dk    rt          d¦  «        | _        dS |dk    rt          |¦  «        | _        dS t          |¦  «        |k    r$t          t          |¦  «        |¦  «        | _        dS t          ||z  ¦  «        | _        dS )z®
        :param value: either an integer numerator, a
        float/rational/other number, or an IFDRational
        :param denominator: Optional integer denominator
        Nr$   r   Únanr   )Ú
isinstancer„   r‘   r©   r’   rª   r¥   r   ÚTYPE_CHECKINGr   r�   r   )rŸ   r«   r’   s      rH   Ú__init__zIFDRational.__init__g  s  € ð 	Ð#Ý�e�[Ñ)Ô)ð 	Ø#œoˆDŒOØ %Ô 1ˆDÔØœ
ˆDŒIØˆFå�e�XÑ&Ô&ð 	,Ø#œoˆDŒOØ %Ô 1ˆDÔÐåð (Ý"& ~°uÑ"=Ô"=�”�à"'�”Ø +ˆDÔà˜!ÒÐÝ˜e™œˆDŒIˆIˆIØ˜AÒÐÝ  ™œˆDŒIˆIˆIÝ�‰ZŒZ˜5Ò Ð Ý ¥ U¡¤¨[Ñ9Ô9ˆDŒIˆIˆIå  ¨Ñ!4Ñ5Ô5ˆDŒIˆIˆIrJ   r$   c                ó   — | j         S rv   )r©   ©rŸ   s    rH   r‘   zIFDRational.numerator‰  s
   € àŒÐrJ   c                ó   — | j         S rv   )rª   r³   s    rH   r’   zIFDRational.denominator�  s   € àÔ Ð rJ   Úmax_denominatorútuple[IntegralLike, int]c                ó¼   — | j         dk    r| j        | j         fS t          | j        t          ¦  «        sJ ‚| j                             |¦  «        }|j        |j         fS )z…

        :param max_denominator: Integer, the maximum denominator value
        :returns: Tuple of (numerator, denominator)
        r   )r’   r‘   r¯   r¥   r   Úlimit_denominator)rŸ   rµ   Úfs      rH   r…   zIFDRational.limit_rational‘  s^   € ð Ô˜qÒ Ð Ø”> 4Ô#3Ð3Ð3å˜$œ)¥XÑ.Ô.Ð.Ð.Ð.ØŒI×'Ò'¨Ñ8Ô8ˆØŒ{˜AœMÐ)Ð)rJ   r�   c                óD   — t          t          | j        ¦  «        ¦  «        S rv   )r�   r�   r¥   r³   s    rH   Ú__repr__zIFDRational.__repr__Ÿ  s   € Ý•5˜œÑ#Ô#Ñ$Ô$Ð$rJ   c                ó4   — | j                              ¦   «         S rv   )r¥   Ú__hash__r³   s    rH   r½   zIFDRational.__hash__¢  s   € ØŒy×!Ò!Ñ#Ô#Ð#rJ   ÚotherÚobjectrt   c                óœ   — | j         }t          |t          ¦  «        r|j         }t          |t          ¦  «        rt          |¦  «        }||k    S rv   )r¥   r¯   r„   r�   )rŸ   r¾   r|   s      rH   Ú__eq__zIFDRational.__eq__¥  sI   € ØŒiˆÝ�e�[Ñ)Ô)ð 	Ø”JˆEÝ�e�UÑ#Ô#ð 	Ý˜‘*”*ˆCØ�eŠ|ÐrJ   ú%list[float | Fraction | IntegralLike]c                ó*   — | j         | j        | j        gS rv   )r¥   r©   rª   r³   s    rH   Ú__getstate__zIFDRational.__getstate__­  s   € Ø”	˜4œ?¨DÔ,=Ð>Ð>rJ   Ústatec                ó  — t                                | d¦  «         |\  }}}t          |t          t          f¦  «        sJ ‚|| _        t          rt          d|¦  «        | _        n|| _        t          |t          ¦  «        sJ ‚|| _
        d S )Nr   r$   )r„   r±   r¯   r�   r   r¥   r°   r   r©   r   rª   )rŸ   rÅ   r¥   r©   rª   s        rH   Ú__setstate__zIFDRational.__setstate__°  sŒ   € Ý×Ò˜T 1Ñ%Ô%Ð%Ø).Ñ&ˆˆj˜,Ý˜$¥­Ð 1Ñ2Ô2Ð2Ð2Ð2ØˆŒ	Ýð 	)Ý" >°:Ñ>Ô>ˆDŒOˆOà(ˆDŒOÝ˜,­Ñ,Ô,Ð,Ð,Ð,Ø(ˆÔÐÐrJ   Ú__add__Ú__radd__Ú__sub__Ú__rsub__Ú__mul__Ú__rmul__Ú__truediv__Ú__rtruediv__Ú__floordiv__Ú__rfloordiv__Ú__mod__Ú__rmod__Ú__pow__Ú__rpow__Ú__pos__Ú__neg__Ú__abs__Ú	__trunc__Ú__lt__Ú__gt__Ú__le__Ú__ge__Ú__bool__Ú__ceil__Ú	__floor__Ú	__round__Ú	__float__Ú__int__NrK   )r«   r}   r’   r   rs   r¬   )rs   r$   ©rs   r   )rµ   r   rs   r¶   ©rs   r�   )r¾   r¿   rs   rt   )rs   rÂ   )rÅ   rÂ   rs   r¬   ),Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r±   Úpropertyr‘   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Û   rÜ   rÝ   rÞ   rß   rà   rá   râ   rã   rD   rJ   rH   r„   r„   Y  s¨  € € € € € ðð ðð
 7€Ið IJð 6ð  6ð  6ð  6ð  6ðD ðð ð ñ „Xðð ð!ð !ð !ñ „Xð!ð*ð *ð *ð *ð%ð %ð %ð %ð$ð $ð $ð $ðð ð ð ð?ð ?ð ?ð ?ð
)ð 
)ð 
)ð 
)ðð ˆi˜	Ñ"Ô"€GØˆy˜Ñ$Ô$€HØˆi˜	Ñ"Ô"€GØˆy˜Ñ$Ô$€HØˆi˜	Ñ"Ô"€GØˆy˜Ñ$Ô$€HØ�)˜MÑ*Ô*€KØ�9˜^Ñ,Ô,€LØ�9˜^Ñ,Ô,€LØ�I˜oÑ.Ô.€MØˆi˜	Ñ"Ô"€GØˆy˜Ñ$Ô$€HØˆi˜	Ñ"Ô"€GØˆy˜Ñ$Ô$€HØˆi˜	Ñ"Ô"€GØˆi˜	Ñ"Ô"€GØˆi˜	Ñ"Ô"€GØ�	˜+Ñ&Ô&€IØˆY�xÑ Ô €FØˆY�xÑ Ô €FØˆY�xÑ Ô €FØˆY�xÑ Ô €FØˆy˜Ñ$Ô$€HØˆy˜Ñ$Ô$€HØ�	˜+Ñ&Ô&€IØ�	˜+Ñ&Ô&€IØ�	˜+Ñ&Ô&€IØˆi˜	Ñ"Ô"€G€G€GrJ   ÚImageFileDirectory_v2ÚidxÚsizeú$Callable[[_LoaderFunc], _LoaderFunc]c                ó   ‡ ‡— dˆ ˆfd„}|S )NÚfuncÚ_LoaderFuncrs   c                ó¬   •— ddl m} | j                             d¦  «        r&| j        dd …                              dd¦  «        |‰<   ‰| ft
          ‰<   | S )Nr   r   Úload_r2   Ú_ú )r   r   ræ   rw   Úreplacer™   )rñ   r   rí   rî   s     €€rH   Ú	decoratorz#_register_loader.<locals>.decoratoræ  sd   ø€ Ø#Ð#Ð#Ð#Ð#Ð#àŒ=×#Ò# GÑ,Ô,ð 	=Øœ q r rÔ*×2Ò2°3¸Ñ<Ô<ˆE�#‰JØ" D˜j��sÑØˆrJ   )rñ   rò   rs   rò   rD   )rí   rî   rø   s   `` rH   Ú_register_loaderrù   å  s/   øø€ ðð ð ð ð ð ð ð ÐrJ   ú2Callable[[Callable[..., Any]], Callable[..., Any]]c                ó   ‡ — dˆ fd„}|S )Nrñ   úCallable[..., Any]rs   c                ó   •— | t           ‰<   | S rv   )r›   )rñ   rí   s    €rH   rø   z#_register_writer.<locals>.decoratorò  s   ø€ Ø#�˜ÑØˆrJ   )rñ   rü   rs   rü   rD   )rí   rø   s   ` rH   Ú_register_writerrþ   ñ  s)   ø€ ðð ð ð ð ð ð ÐrJ   Úidx_fmt_nameútuple[int, str, str]r¬   c                óž   ‡‡— ddl m} | \  }Š}|||<   t          j        d‰› �¦  «        Š	 ddˆˆfd„}‰|ft          |<   ˆfd„t
          |<   d S )Nr   r   ú=TrŸ   rì   Údatarr   Ú
legacy_apirt   rs   útuple[Any, ...]c                óX   •— |                       t          |¦  «        ‰z  › ‰› �|¦  «        S rv   )Ú_unpackrn   )rŸ   r  r  Úfmtrî   s      €€rH   Úbasic_handlerz&_register_basic.<locals>.basic_handler   s/   ø€ ð �|Š|�s 4™yœy¨DÑ0Ð7°#Ð7Ð7¸Ñ>Ô>Ð>rJ   c                óJ   •‡ — d                      ˆˆ fd„|D ¦   «         ¦  «        S )NrJ   c              3  óD   •K  — | ]}‰                      ‰|¦  «        V — Œd S rv   )Ú_pack)rE   r«   r  rŸ   s     €€rH   rp   z4_register_basic.<locals>.<lambda>.<locals>.<genexpr>  s1   øè è € Ð<Ð<¨E�—’˜C Ñ'Ô'Ð<Ð<Ð<Ð<Ð<Ð<rJ   ©Újoin)rŸ   Úvaluesr  s   ` €rH   ú<lambda>z!_register_basic.<locals>.<lambda>  s0   øø€ Ø�ŠÐ<Ð<Ð<Ð<Ð<°VÐ<Ñ<Ô<Ñ<Ô<ð rJ   ©T)rŸ   rì   r  rr   r  rt   rs   r  )r   r   r   Úcalcsizer™   r›   )rÿ   r   rí   Únamer	  r  rî   s        @@rH   Ú_register_basicr  ù  s    øø€ ØÐÐÐÐÐà!�N€CˆˆdØ€Eˆ#�JÝŒ?˜9˜s˜9˜9Ñ%Ô%€Dð FJð?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð
  Ð-…N�3Ñðð ð ð …O�CÑÐÐrJ   c                  ó¼  — e Zd ZU dZi Zded<   i Zded<   	 	 	 d_d`d„Z ed„ ¦  «        Z	 ed„ ¦  «        Z
edad„¦   «         Zej        dbd„¦   «         Zdcd„Zddd„Zded„Zdfd„Zdgd!„Zdhd#„Zdid$„Zdjd&„Zdkd'„Zdld)„Zdmd-„Zdnd/„Z e eeej        d0d1fej        d2d3fej        d4d5fej         d6d7fej!        d8d9fej"        d:d;fej#        d<d=fej$        d2d3fej%        d>d?fg	¦  «        ¦  «          e&d@d@¦  «        dodpdB„¦   «         Z' e(d@¦  «        dqdD„¦   «         Z) e&dEd@¦  «        dodrdF„¦   «         Z* e(dE¦  «        dsdH„¦   «         Z+ e&dIdJ¦  «        	 dodtdL„¦   «         Z, e(dI¦  «        dudN„¦   «         Z- e&dOd@¦  «        dodpdP„¦   «         Z. e(dO¦  «        dvdQ„¦   «         Z/ e&dRdJ¦  «        	 dodtdS„¦   «         Z0 e(dR¦  «        dudT„¦   «         Z1dwdX„Z2dxdY„Z3dydZ„Z4dzd{d]„Z5d|d^„Z6dS )}rì   a  This class represents a TIFF tag directory.  To speed things up, we
    don't decode tags unless they're asked for.

    Exposes a dictionary interface of the tags in the directory::

        ifd = ImageFileDirectory_v2()
        ifd[key] = 'Some Data'
        ifd.tagtype[key] = TiffTags.ASCII
        print(ifd[key])
        'Some Data'

    Individual values are returned as the strings or numbers, sequences are
    returned as tuples of the values.

    The tiff metadata type of each item is stored in a dictionary of
    tag types in
    :attr:`~PIL.TiffImagePlugin.ImageFileDirectory_v2.tagtype`. The types
    are read from a tiff file, guessed from the type added, or added
    manually.

    Data Structures:

        * ``self.tagtype = {}``

          * Key: numerical TIFF tag number
          * Value: integer corresponding to the data type from
            :py:data:`.TiffTags.TYPES`

          .. versionadded:: 3.0.0

    'Internal' data structures:

        * ``self._tags_v2 = {}``

          * Key: numerical TIFF tag number
          * Value: decoded data, as tuple for multiple values

        * ``self._tagdata = {}``

          * Key: numerical TIFF tag number
          * Value: undecoded byte string from file

        * ``self._tags_v1 = {}``

          * Key: numerical TIFF tag number
          * Value: decoded data in the v1 format

    Tags will be found in the private attributes ``self._tagdata``, and in
    ``self._tags_v2`` once decoded.

    ``self.legacy_api`` is a value for internal use, and shouldn't be changed
    from outside code. In cooperation with
    :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`, if ``legacy_api``
    is true, then decoded tags will be populated into both ``_tags_v1`` and
    ``_tags_v2``. ``_tags_v2`` will be used if this IFD is used in the TIFF
    save routine. Tags should be read from ``_tags_v1`` if
    ``legacy_api == true``.

    r˜   r™   rš   r›   ó   II*     NÚifhrr   rq   úbytes | NoneÚgroupú
int | Noners   r¬   c                ó<  — t          |¦  «        s"dt          |¦  «        › d�}t          |¦  «        ‚|�|n	|dd…         | _        | j        t          k    rd| _        n)| j        t          k    rd| _        nd}t          |¦  «        ‚|d         dk    | _        || _        i | _	        	 |  
                    ¦   «          d| _        | j        r$|                      d	|d
d…         ¦  «        d         n#|                      d|dd…         ¦  «        d         | _        d| _        dS )a—  Initialize an ImageFileDirectory.

        To construct an ImageFileDirectory from a real file, pass the 8-byte
        magic header to the constructor.  To only set the endianness, pass it
        as the 'prefix' keyword argument.

        :param ifh: One of the accepted magic headers (cf. PREFIXES); also sets
              endianness.
        :param prefix: Override the endianness of the file.
        znot a TIFF file (header z not valid)Nr,   ú>ú<znot a TIFF IFDé+   ÚQr8   r   rM   r0   F)r{   ÚreprÚSyntaxErrorÚ_prefixÚMMÚ_endianÚIIÚ_bigtiffr  ÚtagtypeÚresetÚ_tag_data_limitr  ÚnextÚ_legacy_api)rŸ   r  rq   r  Úmsgs        rH   r±   zImageFileDirectory_v2.__init__Q  s%  € õ  �s‰|Œ|ð 	#ØC­T°#©Y¬YÐCÐCÐCˆCÝ˜cÑ"Ô"Ð"Ø!'Ð!3�v�v¸¸R¸a¸R¼ˆŒØŒ<�2ÒÐØˆDŒLˆLØŒ\�RÒÐØˆDŒLˆLà"ˆCÝ˜cÑ"Ô"Ð"Ø˜Aœ "šˆŒØˆŒ
Ø')ˆŒØ'Ø�
Š
‰Œˆð ,0ˆÔð Œ}ð/ˆD�LŠL˜˜c ! " "œgÑ&Ô& qÔ)Ð)à—’˜c 3 q r r¤7Ñ+Ô+¨AÔ.ð 	Œ	ð
 !ˆÔÐÐrJ   c                ó   — | j         S rv   )r"  r³   s    rH   r  zImageFileDirectory_v2.<lambda>|  ó   €  4¤<€ rJ   c                ó   — | j         S rv   )Ú_offsetr³   s    rH   r  zImageFileDirectory_v2.<lambda>}  r.  rJ   rt   c                ó   — | j         S rv   )r+  r³   s    rH   r  z ImageFileDirectory_v2.legacy_api  s   € àÔÐrJ   r«   r!   c                ó$   — d}t          |¦  «        ‚)Nz"Not allowing setting of legacy api)Ú	Exception)rŸ   r«   r,  s      rH   r  z ImageFileDirectory_v2.legacy_apiƒ  s   € à2ˆÝ˜‰nŒnÐrJ   c                óZ   — i | _         i | _        i | _        i | _        d | _        d | _        d S rv   )Ú_tags_v1Ú_tags_v2Ú_tagdatar'  Ú_nextr0  r³   s    rH   r(  zImageFileDirectory_v2.resetˆ  s0   € Ø(*ˆŒØ(*ˆŒØ*,ˆŒØˆŒØˆŒ
Ø#'ˆŒˆˆrJ   r�   c                ó:   — t          t          | ¦  «        ¦  «        S rv   )r�   Údictr³   s    rH   Ú__str__zImageFileDirectory_v2.__str__�  s   € Ý•4˜‘:”:‰ŒÐrJ   údict[str, Any]c                óD   ‡ — ˆ fd„‰                       ¦   «         D ¦   «         S )z�
        :returns: dict of name|key: value

        Returns the complete tag dictionary, with named tags where possible.
        c                óV   •— i | ]%\  }}t          j        |‰j        ¦  «        j        |“Œ&S rD   )r   Úlookupr  r  )rE   Úcoder«   rŸ   s      €rH   rI   z/ImageFileDirectory_v2.named.<locals>.<dictcomp>™  s@   ø€ ð 
ð 
ð 
á��eõ ŒO˜D $¤*Ñ-Ô-Ô2°Eð
ð 
ð 
rJ   )Úitemsr³   s   `rH   ÚnamedzImageFileDirectory_v2.named“  s6   ø€ ð
ð 
ð 
ð 
à#Ÿzšz™|œ|ð
ñ 
ô 
ð 	
rJ   r   c                ón   — t          t          | j        ¦  «        t          | j        ¦  «        z  ¦  «        S rv   )rn   Úsetr7  r6  r³   s    rH   Ú__len__zImageFileDirectory_v2.__len__ž  ó)   € Ý•3�t”}Ñ%Ô%­¨D¬MÑ(:Ô(:Ñ:Ñ;Ô;Ð;rJ   Útagr   c                óü   — || j         vr?| j        |         }| j        |         }| j        |         \  }} || || j        ¦  «        | |<   | j         |         }| j        rt          |t          t          f¦  «        s|f}|S rv   )r6  r7  r'  r™   r  r¯   rx   rr   )rŸ   rG  r  Útyprî   Úhandlerr|   s          rH   Ú__getitem__z!ImageFileDirectory_v2.__getitem__¡  sˆ   € Ø�d”mÐ#Ð#Ø”= Ô%ˆDØ”,˜sÔ#ˆCØ Ô/°Ô4‰MˆD�'Ø˜  d¨D¬OÑ<Ô<ˆD�‰IØŒm˜CÔ ˆØŒ?ð 	¥:¨cµE½5°>Ñ#BÔ#Bð 	Ø�&ˆCØˆ
rJ   r¿   c                ó&   — || j         v p|| j        v S rv   )r6  r7  ©rŸ   rG  s     rH   Ú__contains__z"ImageFileDirectory_v2.__contains__¬  ó   € Ø�d”mÐ#Ð; s¨d¬mÐ';Ð;rJ   c                ó>   — |                       ||| j        ¦  «         d S rv   )Ú_setitemr  )rŸ   rG  r«   s      rH   Ú__setitem__z!ImageFileDirectory_v2.__setitem__¯  s    € Ø�Š�c˜5 $¤/Ñ2Ô2Ð2Ð2Ð2rJ   r  c           	     óF  ‡— t           t          t          f}t          j        || j        ¦  «        Št          ||¦  «        r|gn|}|| j        v�r×‰j        r‰j        | j        |<   �n¿t          j	        | j        |<   t          d„ |D ¦   «         ¦  «        rD|D ]+}|t          d¦  «        k     rt          j        | j        |<    nŒ,t          j        | j        |<   �nNt          d„ |D ¦   «         ¦  «        r¬d}d}d}	|D ]I}t          |t          ¦  «        sJ ‚|rd|cxk    rdk     sn d}|rd|cxk     rdk     sn d}|	r|dk     rd}	ŒJ|rt          j        | j        |<   nÌ|rt          j        | j        |<   nµ|	rt          j        | j        |<   nžt          j        | j        |<   n‰t          d	„ |D ¦   «         ¦  «        rt          j        | j        |<   n[t          d
„ |D ¦   «         ¦  «        rt          j        | j        |<   n-t          d„ |D ¦   «         ¦  «        rt          j        | j        |<   | j        |         t          j	        k    rd„ |D ¦   «         }n'| j        |         t          j        k    rd„ |D ¦   «         }| j        |         t          j        k    ot          |t,          ¦  «        }
|
st/          ˆfd„|D ¦   «         ¦  «        }|r| j        n| j        }|
sÈ‰j        dk    s7| j        |         t          j        k    s‰j        €›t7          |¦  «        dk    rˆ|s†|r(| j        |         t          j        t          j        fv r|f}	 |\  ||<   d S # t8          $ rE |t:          k    r6t=          j        d|› dt7          |¦  «        › d�¦  «         |d         ||<   Y d S Y d S w xY w|||<   d S )Nc              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rv   )r¯   r„   ©rE   rG   s     rH   rp   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>½  s,   è è € ÐBÐB°a•z !¥[Ñ1Ô1ÐBÐBÐBÐBÐBÐBrJ   r   c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rv   )r¯   r   rU  s     rH   rp   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Ä  ó,   è è € Ð<Ð<°� A¥sÑ+Ô+Ð<Ð<Ð<Ð<Ð<Ð<rJ   Tr&   Fi €ÿÿi €  c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rv   )r¯   r�   rU  s     rH   rp   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Ø  ó,   è è € Ð>Ð>°!� A¥uÑ-Ô-Ð>Ð>Ð>Ð>Ð>Ð>rJ   c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rv   )r¯   r�   rU  s     rH   rp   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Ú  rW  rJ   c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rv   )r¯   rr   rU  s     rH   rp   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Ü  rY  rJ   c                óh   — g | ]/}t          |t          ¦  «        r|                     d d¦  «        n|‘Œ0S )Úasciir÷   )r¯   r�   ÚencoderU  s     rH   ú
<listcomp>z2ImageFileDirectory_v2._setitem.<locals>.<listcomp>à  sJ   € ð ð ð àõ 1;¸1½cÑ0BÔ0BÐI�—’˜ )Ñ,Ô,Ð,Èðð ð rJ   c                óZ   — g | ](}t          |t          ¦  «        rt          |¦  «        n|‘Œ)S rD   )r¯   r   r�   rU  s     rH   r_  z2ImageFileDirectory_v2._setitem.<locals>.<listcomp>å  s1   € ÐLÐLÐLÀ¥*¨QµÑ"4Ô"4Ð;•e˜A‘h”h�h¸!ÐLÐLÐLrJ   c              3  óp   •K  — | ]0}t          |t          ¦  «        r‰                     |¦  «        n|V — Œ1d S rv   )r¯   r�   Úcvt_enum)rE   r«   Úinfos     €rH   rp   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>é  sW   øè è € ð ð àõ )3°5½#Ñ(>Ô(>ÐI�—’˜eÑ$Ô$Ð$ÀEðð ð ð ð ð rJ   r   zMetadata Warning, tag z had too many entries: z, expected 1) r   rr   r�   r   r?  r  r¯   r'  ÚtypeÚ	UNDEFINEDÚallr„   ÚSIGNED_RATIONALÚRATIONALr   ÚSHORTÚSIGNED_SHORTÚLONGÚSIGNED_LONGÚDOUBLEÚASCIIÚBYTEr:  rx   r5  r6  Úlengthrn   Ú
ValueErrorÚPHOTOMETRIC_INTERPRETATIONr   Úwarn)rŸ   rG  r«   r  Ú	basetypesr  rG   ÚshortÚsigned_shortÚlongÚis_ifdÚdestrc  s               @rH   rQ  zImageFileDirectory_v2._setitem²  sz  ø€ Ý�U¥CÐ(ˆ	åŒ˜s D¤JÑ/Ô/ˆÝ& u¨iÑ8Ô8ÐC�%��¸eˆà�d”lÐ"Ñ"ØŒyð $6Ø$(¤I�”˜SÑ!Ñ!å$,Ô$6�”˜SÑ!ÝÐBÐB¸6ÐBÑBÔBÑBÔBð  6Ø#ð >ð >˜Ø�{¨1™~œ~Ò-Ð-Ý08Ô0H˜DœL¨Ñ-Ø!˜Eð .õ -5Ô,=˜œ SÑ)ùÝÐ<Ð<°VÐ<Ñ<Ô<Ñ<Ô<ð 6Ø �EØ#'�LØ�DØ#ð )ð )˜Ý)¨!­SÑ1Ô1Ð1Ð1Ð1Ø ð *¨!¨q¨.¨.ª.¨.°5ª.¨.¨.¨.Ø$)˜EØ'ð 1°¸AÐ1EÐ1EÒ1EÐ1EÀÒ1EÐ1EÐ1EÐ1EØ+0˜LØð ) A¨¢E EØ#(˜DøØð AÝ,4¬N˜œ SÑ)Ð)Ø%ð AÝ,4Ô,A˜œ SÑ)Ð)Øð AÝ,4¬M˜œ SÑ)Ð)å,4Ô,@˜œ SÑ)Ð)ÝÐ>Ð>°vÐ>Ñ>Ô>Ñ>Ô>ð 6Ý(0¬�D”L Ñ%Ð%ÝÐ<Ð<°VÐ<Ñ<Ô<Ñ<Ô<ð 6Ý(0¬�D”L Ñ%Ð%ÝÐ>Ð>°vÐ>Ñ>Ô>Ñ>Ô>ð 6Ý(0¬�D”L Ñ%àŒ<˜Ô¥Ô 2Ò2Ð2ðð àðñ ô ˆFˆFð Œ\˜#Ô¥(Ô"3Ò3Ð3ØLÐLÀVÐLÑLÔLˆFà”˜cÔ"¥h¤mÒ3ÐP½
À6Í4Ñ8PÔ8PˆØð 	Ýð ð ð ð à#ðñ ô ñ ô ˆFð
 !+Ð=ˆtŒ}ˆ}°´ˆð ð 	ØŒ[˜AÒÐØŒ|˜CÔ ¥H¤MÒ1Ð1Ø”Ð#­¨F©¬°qÒ(8Ð(8ÀÐ(8ð ð #˜dœl¨3Ô/ÝÔ!ÝÔ(ð4ð ð ð !˜�ð	*Ø%‘��c‘��øÝð *ð *ð *àÕ4Ò4Ð4Ý”Mð5°ð 5ð 5Ý˜v™;œ;ð5ð 5ð 5ñô ð ð !' q¤	�D˜‘I�I�I�Ið 5Ð4Ð4ð*øøøð ˆD�‰IˆIˆIs   ÍM
 Í
ANÎNc                ó¨   — | j                              |d ¦  «         | j                             |d ¦  «         | j                             |d ¦  «         d S rv   )r6  Úpopr5  r7  rM  s     rH   Ú__delitem__z!ImageFileDirectory_v2.__delitem__  sP   € ØŒ×Ò˜#˜tÑ$Ô$Ð$ØŒ×Ò˜#˜tÑ$Ô$Ð$ØŒ×Ò˜#˜tÑ$Ô$Ð$Ð$Ð$rJ   úIterator[int]c                ón   — t          t          | j        ¦  «        t          | j        ¦  «        z  ¦  «        S rv   )ÚiterrD  r7  r6  r³   s    rH   Ú__iter__zImageFileDirectory_v2.__iter__  ó)   € Ý•C˜œÑ&Ô&­¨T¬]Ñ);Ô);Ñ;Ñ<Ô<Ð<rJ   r  r  r  c                ó<   — t          j        | j        |z   |¦  «        S rv   )r   Úunpackr$  )rŸ   r  r  s      rH   r  zImageFileDirectory_v2._unpack  s   € ÝŒ}˜Tœ\¨CÑ/°Ñ6Ô6Ð6rJ   r  c                ó6   — t          j        | j        |z   g|¢R Ž S rv   )r   Úpackr$  )rŸ   r  r  s      rH   r  zImageFileDirectory_v2._pack  s!   € ÝŒ{˜4œ<¨#Ñ-Ð7°Ð7Ð7Ð7Ð7rJ   ÚHru  rM   rw  Úbzsigned byteÚhzsigned shortÚlzsigned longr¹   r�   ÚdÚdoubler  Úlong8r   Tc                ó   — |S rv   rD   ©rŸ   r  r  s      rH   Ú	load_bytezImageFileDirectory_v2.load_byte/  ó   € àˆrJ   úbytes | int | IFDRationalc                ó˜   — t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        rt          |f¦  «        }|S rv   )r¯   r„   r   rr   ©rŸ   r  s     rH   Ú
write_bytez ImageFileDirectory_v2.write_byte3  sC   € å�d�KÑ(Ô(ð 	Ý�t‘9”9ˆDÝ�d�CÑ Ô ð 	"Ý˜$˜‘>”>ˆDØˆrJ   r,   c                ól   — |                      d¦  «        r
|d d…         }|                     dd¦  «        S )Nó    r‚   zlatin-1r÷   )ÚendswithÚdecoderŽ  s      rH   Úload_stringz!ImageFileDirectory_v2.load_string;  s7   € à�=Š=˜ÑÔð 	Ø˜˜˜”9ˆDØ�{Š{˜9 iÑ0Ô0Ð0rJ   ústr | bytes | intc                óª   — t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        s|                     dd¦  «        }|dz   S )Nr]  r÷   r–  )r¯   r   r�   rr   r^  ©rŸ   r«   s     rH   Úwrite_stringz"ImageFileDirectory_v2.write_stringA  sP   € õ �e�SÑ!Ô!ð 	Ý˜‘J”JˆEÝ˜%¥Ñ'Ô'ð 	5Ø—L’L ¨)Ñ4Ô4ˆEØ�u‰}ÐrJ   r2   r8   ú)tuple[tuple[int, int] | IFDRational, ...]c           
     óÚ   ‡‡— |                       t          |¦  «        dz  › d�|¦  «        }dˆfd„Št          ˆfd	„t          |d d d
…         |dd d
…         ¦  «        D ¦   «         ¦  «        S )Nr0   rM   Úar   r‡  rs   útuple[int, int] | IFDRationalc                ó0   •— ‰r| |fnt          | |¦  «        S rv   ©r„   ©r   r‡  r  s     €rH   Úcombinez4ImageFileDirectory_v2.load_rational.<locals>.combineP  ó    ø€ Ø'Ð>�A�q�6�6­[¸¸AÑ->Ô->Ð>rJ   c              3  ó6   •K  — | ]\  }} ‰||¦  «        V — Œd S rv   rD   ©rE   ÚnumÚdenomr¥  s      €rH   rp   z6ImageFileDirectory_v2.load_rational.<locals>.<genexpr>S  ó3   øè è € ÐVÐV©Z¨S°%�W�W˜S %Ñ(Ô(ÐVÐVÐVÐVÐVÐVrJ   r,   r   ©r   r   r‡  r   rs   r¡  ©r  rn   rx   Úzip©rŸ   r  r  Úvalsr¥  s     ` @rH   Úload_rationalz#ImageFileDirectory_v2.load_rationalJ  óŽ   øø€ ð �|Š|�s 4™yœy¨A™~Ð0Ð0Ð0°$Ñ7Ô7ˆð	?ð 	?ð 	?ð 	?ð 	?ð 	?õ ÐVÐVÐVÐV½3¸tÀCÀCÀaÀC¼yÈ$ÈqÈtÐRSÈtÌ*Ñ;UÔ;UÐVÑVÔVÑVÔVÐVrJ   r„   c                óF   ‡ — d                      ˆ fd„|D ¦   «         ¦  «        S )NrJ   c              3  óP   •K  — | ] } ‰j         d gt          |d¦  «        ¢R Ž V — Œ!dS )Ú2Ll   ÿÿ N)r  rˆ   ©rE   r•   rŸ   s     €rH   rp   z7ImageFileDirectory_v2.write_rational.<locals>.<genexpr>W  sR   øè è € ð 
ð 
ØDHˆJˆDŒJ�tÐ?�o¨d°IÑ>Ô>Ð?Ð?Ð?ð
ð 
ð 
ð 
ð 
ð 
rJ   r  ©rŸ   r  s   ` rH   Úwrite_rationalz$ImageFileDirectory_v2.write_rationalU  s?   ø€ à�xŠxð 
ð 
ð 
ð 
ØLRð
ñ 
ô 
ñ 
ô 
ð 	
rJ   r6   c                ó   — |S rv   rD   rŽ  s      rH   Úload_undefinedz$ImageFileDirectory_v2.load_undefined[  r�  rJ   c                ó¾   — t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        r#t          |¦  «                             dd¦  «        }|S )Nr]  r÷   )r¯   r„   r   r�   r^  rœ  s     rH   Úwrite_undefinedz%ImageFileDirectory_v2.write_undefined_  sQ   € å�e�[Ñ)Ô)ð 	Ý˜‘J”JˆEÝ�e�SÑ!Ô!ð 	:Ý˜‘J”J×%Ò% g¨yÑ9Ô9ˆEØˆrJ   é
   c           
     óÚ   ‡‡— |                       t          |¦  «        dz  › d�|¦  «        }dˆfd„Št          ˆfd	„t          |d d d
…         |dd d
…         ¦  «        D ¦   «         ¦  «        S )Nr0   r‰  r   r   r‡  rs   r¡  c                ó0   •— ‰r| |fnt          | |¦  «        S rv   r£  r¤  s     €rH   r¥  z;ImageFileDirectory_v2.load_signed_rational.<locals>.combinem  r¦  rJ   c              3  ó6   •K  — | ]\  }} ‰||¦  «        V — Œd S rv   rD   r¨  s      €rH   rp   z=ImageFileDirectory_v2.load_signed_rational.<locals>.<genexpr>p  r«  rJ   r,   r   r¬  r­  r¯  s     ` @rH   Úload_signed_rationalz*ImageFileDirectory_v2.load_signed_rationalg  r²  rJ   c                óF   ‡ — d                      ˆ fd„|D ¦   «         ¦  «        S )NrJ   c           	   3  óR   •K  — | ]!} ‰j         d gt          |dd¦  «        ¢R Ž V — Œ"dS )Ú2liÿÿÿi   €N)r  r—   r¶  s     €rH   rp   z>ImageFileDirectory_v2.write_signed_rational.<locals>.<genexpr>t  sX   øè è € ð 
ð 
àð ˆDŒJ�tÐPÕ4°T¸9ÀhÑOÔOÐPÐPÐPð
ð 
ð 
ð 
ð 
ð 
rJ   r  r·  s   ` rH   Úwrite_signed_rationalz+ImageFileDirectory_v2.write_signed_rationalr  s?   ø€ à�xŠxð 
ð 
ð 
ð 
àð
ñ 
ô 
ñ 
ô 
ð 	
rJ   Úfpú	IO[bytes]rî   c                ó    — |                      |¦  «        }t          |¦  «        |k    r%d|› dt          |¦  «        › d�}t          |¦  «        ‚|S )Nz&Corrupt EXIF data.  Expecting to read ú bytes but only got z. )Úreadrn   ÚOSError)rŸ   rÆ  rî   Úretr,  s        rH   Ú_ensure_readz"ImageFileDirectory_v2._ensure_ready  sj   € Ø�gŠg�d‰mŒmˆÝˆs‰8Œ8�tÒÐðLØ%)ðLð LÝ?BÀ3¹x¼xðLð Lð Lð õ ˜#‘,”,ÐØˆ
rJ   c           
     óª  — |                       ¦   «          |                     ¦   «         | _        |                     dt          j        ¦  «         |                     ¦   «         }|                     | j        ¦  «         | j        �t          || j        ¦  «        }d| _        	 | j	        r*|  
                    d|                      |d¦  «        ¦  «        n)|  
                    d|                      |d¦  «        ¦  «        d         }d}t          |¦  «        D �]¤}| j	        r*|  
                    d|                      |d¦  «        ¦  «        n)|  
                    d|                      |d	¦  «        ¦  «        \  }}}}	|| j        v rŒmt          j        || j        ¦  «        j        }
t%          j        |d
¦  «        }d|
› d|› d|› d|› d�	}	 | j        |         \  }}n,# t*          $ r t,                               d||¦  «         Y Œêw xY w||z  }|| j	        rdndk    rÐ|                     ¦   «         }|  
                    | j	        rdnd|	¦  «        \  }|d|› d|› �z  }|dk    rt1          j        d¦  «         �Œ^||z  }||k    rt1          j        d|› �¦  «         �Œ‚| xj        |z  c_        |                     |¦  «         t5          j        ||¦  «        }	|                     |¦  «         n
|	d |…         }	t9          |	¦  «        |k    rFt1          j        d|› dt9          |	¦  «        › d|› �¦  «         t,                               |¦  «         �Œ5|	st,                               |¦  «         �ŒS|	| j        |<   || j        |<   |dz  }||dk    rd|› d�nt=          |	¦  «        z  }t,                               |¦  «         �Œ¦| j	        r*|  
                    d|                      |d¦  «        ¦  «        n)|  
                    d|                      |d¦  «        ¦  «        \  | _        d S # t@          $ r,}t1          j        tC          |¦  «        ¦  «         Y d }~d S d }~ww xY w)Nr   r  r8   r†  r,   ÚHHQ8sé   ÚHHL4srN   Úunknownztag: ú (ú
) - type: ú)z%s - unsupported type %sr0   rM   z Tag Location: z - Data Location: ì            zTag offset too largez(Tag data larger than file. Skipping tag z/Possibly corrupt EXIF data.  Expecting to read rÉ  z. Skipping tag z
 - value: rS   ú<table: ú bytes>)"r(  Útellr0  ÚseekÚioÚSEEK_ENDr)  r“   Ú_tag_data_sizer&  r  rÍ  Úranger7  r   r?  r  r  r   Úgetr™   ÚKeyErrorÚloggerÚdebugr   rs  r   Ú
_safe_readrn   r'  r   r*  rË  r�   )rŸ   rÆ  ÚlimitÚ	tag_countÚ
total_sizer�   rG  rI  Úcountr  ÚtagnameÚtypnamer,  Ú	unit_sizerJ  rî   ÚhereÚoffsets                     rH   ÚloadzImageFileDirectory_v2.loadƒ  s¡  € Ø�
Š
‰ŒˆØ—w’w‘y”yˆŒØ
�Š�•2”;ÑÔÐØ—’‘	”	ˆØ
�Š�”ÑÔÐØÔÐ+Ý˜˜tÔ3Ñ4Ô4ˆEØˆÔðJ	ð ”=ðA�—’˜S $×"3Ò"3°B¸Ñ":Ô":Ñ;Ô;Ð;à—\’\ # t×'8Ò'8¸¸QÑ'?Ô'?Ñ@Ô@Øô	ˆIð
 ˆJÝ˜9Ñ%Ô%ð :"ñ :"�ð ”}ðJ�D—L’L ¨$×*;Ò*;¸BÀÑ*CÔ*CÑDÔDÐDàŸš g¨t×/@Ò/@ÀÀRÑ/HÔ/HÑIÔIñ &��S˜% ð
 ˜$œ-Ð'Ð'Øå"œ/¨#¨t¬zÑ:Ô:Ô?�Ýœ) C¨Ñ3Ô3�ØI˜gÐIÐI¨ÐIÐI¸ÐIÐIÀ3ÐIÐIÐI�ðØ)-Ô)<¸SÔ)AÑ&�I˜w˜wøÝð ð ð Ý—L’LÐ!;¸SÀ#ÑFÔFÐFØ�Hðøøøð ˜yÑ(�Ø ¤Ð4˜1˜1°1Ò5Ð5ØŸ7š7™9œ9�DØ $§¢°D´MÐ-J¨S¨SÀsÈDÑ QÔ Q‘I�VØÐM¨TÐMÐMÀVÐMÐMÑM�CØ ’�Ý œÐ&<Ñ=Ô=Ð=Ù ð  $Ñ&�JØ! EÒ)Ð)Ý œÐ&VÐQTÐ&VÐ&VÑWÔWÐWÙ ØÐ'Ô'¨4Ñ/Ð'Ô'Ø—G’G˜F‘O”O�OÝ$Ô/°°DÑ9Ô9�DØ—G’G˜D‘M”M�M�Mà   œ;�Då�t‘9”9 Ò$Ð$Ý”Mð/Ø-1ð/ð /ÝGJÈ4ÁyÄyð/ð /à),ð/ð /ñô ð õ
 —L’L Ñ%Ô%Ð%Ùàð Ý—L’L Ñ%Ô%Ð%Ùà%)�”˜cÑ"Ø$'�”˜SÑ!à�|Ñ#�Ø°4¸"²9°9Ð/ $Ð/Ð/Ð/Ð/Å$ÀtÁ*Ä*ÑL�å—’˜SÑ!Ô!Ð!Ñ!ð ”=ðA�—’˜S $×"3Ò"3°B¸Ñ":Ô":Ñ;Ô;Ð;à—\’\ # t×'8Ò'8¸¸QÑ'?Ô'?Ñ@Ô@ñ ˆTŒYˆYˆYøõ
 ð 	ð 	ð 	ÝŒM�#˜c™(œ(Ñ#Ô#Ð#ØˆFˆFˆFˆFˆFøøøøð	øøøs>   Â D"P ÇGÇP Ç&G=Ç:P Ç<G=Ç=HP Ð
QÐ&!QÑQc                ó  — | j         |                      d| j        rdnd¦  «        z   }| j        r||                      ddd¦  «        z  }|| j        r|                      dd¦  «        n|                      d	d¦  «        z  }|S )
Nr†  r  é*   ÚHHr8   r   r  rP   rM   )r"  r  r&  ©rŸ   r  s     rH   Ú_get_ifhzImageFileDirectory_v2._get_ifhÙ  s‚   € ØŒl˜TŸZšZ¨°4´=Ð-H¨R¨RÀbÑIÔIÑIˆØŒ=ð 	*Ø�4—:’:˜d A qÑ)Ô)Ñ)ˆCØ d¤mÐKˆt�zŠz˜#˜rÑ"Ô"Ð"¸¿ºÀCÈÑ9KÔ9KÑKˆàˆ
rJ   r   rì  c                óÎ  ‡— |                       | j        rdndt          | j        ¦  «        ¦  «        }g }| j        rdnd}| j        rdnd}‰t          |¦  «        t          | j        ¦  «        | j        rdndz  z   |z   z  Šd }t	          | j                             ¦   «         ¦  «        D �]\  }}|t          k    rt          |¦  «        }| j        |         }	t           	                    d||	t          |¦  «        ¦  «         |	t          j        k    ot          |t          ¦  «        }
|
ret          |                      ¦   «         |¬	¦  «        }| j        |         }|                     ¦   «         D ]
\  }}|||<   Œ|                     ‰¦  «        }n.t          |t$          ¦  «        r|n|f} | j        |	         | g|¢R Ž }t          j        || j        ¦  «        j        }|
rd
nt/          j        |	d¦  «        }d|› d|› d|› d|	› d�	}|t          |¦  «        dk    rdt          |¦  «        › d�nt3          |¦  «        z  }t           	                    |¦  «         |
rd}nD|	t          j        t          j        t          j        fv rt          |¦  «        }nt          |¦  «        }t          |¦  «        |k    r0|                     ||	||                     |d¦  «        df¦  «         �Œ6|                     ||	||                       |‰¦  «        |f¦  «         ‰t          |¦  «        dz   dz  dz  z  Š�Œ�|��||         \  }}	}}}|rC| j        |	         \  }}ˆfd„ || || j         ¦  «        D ¦   «         } | j        |	         | g|¢R Ž }n3|                       ||  !                    ||¦  «        d         ‰z   ¦  «        }||	|||f||<   |D ]f\  }}	}}}t           	                    d||	|t          |¦  «        t          |¦  «        ¦  «         ||                       | j        rdnd||	||¦  «        z  }Œg||                       |d¦  «        z  }|D ]$\  }}	}}}||z  }t          |¦  «        dz  r|dz  }Œ%|S )Nr  r†  rM   r8   r0   rÐ  rN   zTag %s, Type: %s, Value: %s)r  ÚifdrÒ  zsave: rÓ  rÔ  z) - value: rP   r×  rØ  r   r–  rJ   r,   c                ó   •— g | ]}|‰z   ‘ŒS rD   rD   )rE   r|   rì  s     €rH   r_  z1ImageFileDirectory_v2.tobytes.<locals>.<listcomp>  s   ø€ ÐWÐWÐW¨3˜# ™,ÐWÐWÐWrJ   r   z%s %s %s %s %srÏ  rÑ  )"r  r&  rn   r6  ÚsortedrA  ÚSTRIPOFFSETSr'  rá  râ  r   r   rk  r¯   r:  rì   rò  Útobytesrx   r›   r?  r  r  r   rß  r�   ro  rn  re  ÚappendÚljustr™   r  r  )rŸ   rì  ÚresultÚentriesr  Úfmt_sizeÚstripoffsetsrG  r«   rI  rx  rô  r  Úifd_tagÚ	ifd_valuer  rè  ré  r,  rç  rî   rJ  s    `                    rH   rø  zImageFileDirectory_v2.tobytesá  sº  ø€ à—’ 4¤=Ð9˜C˜C°c½3¸t¼}Ñ;MÔ;MÑNÔNˆà<>ˆà”]Ð+ˆcˆc¨ˆØœÐ,�1�1¨1ˆØÝ�‰KŒK�#˜dœmÑ,Ô,°d´mÐ0K°°ÈÑLÑLÈxÑWñ	
ˆð ˆõ ! ¤×!4Ò!4Ñ!6Ô!6Ñ7Ô7ð "	3ñ "	3‰JˆC�Ø•lÒ"Ð"Ý" 7™|œ|�Ø”,˜sÔ#ˆCÝ�LŠLÐ6¸¸SÅ$ÀuÁ+Ä+ÑNÔNÐNØ�HœMÒ)ÐE­j¸ÅÑ.EÔ.EˆFØð @Ý+¨D¯MªM©O¬OÀ3ÐGÑGÔG�Øœ sÔ+�Ø*0¯,ª,©.¬.ð -ð -Ñ&�G˜YØ#,�C˜‘L�LØ—{’{ 6Ñ*Ô*��å",¨UµEÑ":Ô":ÐH˜˜ÀÀ�Ø0�tÔ+¨CÔ0°Ð?¸Ð?Ð?Ð?�å”o c¨4¬:Ñ6Ô6Ô;ˆGØ%ÐD�e�e­5¬9°S¸)Ñ+DÔ+DˆGØP˜7ÐPÐP cÐPÐP°WÐPÐPÀÐPÐPÐPˆCØµC¸±I´IÀ²O°OÐ0�c $™iœiÐ0Ð0Ð0Ð0ÍÈVÉÌÑTˆCÝ�LŠL˜ÑÔÐð ð $Ø��Ø�œ­¬½Ô8JÐKÐKÐKÝ˜D™	œ	��å˜F™œ�å�4‰yŒy˜HÒ$Ð$Ø—’  S¨%°·²¸HÀeÑ1LÔ1LÈcÐRÑSÔSÐSÑSà—’  S¨%°·²¸CÀÑ1HÔ1HÈ$ÐOÑPÔPÐPØ�3˜t™9œ9 q™=¨QÑ.°Ñ2Ñ2�‘ð Ð#Ø+2°<Ô+@Ñ(ˆC��e˜U DØð NØ $Ô 3°CÔ 8‘��gØWÐWÐWÐW°'°'¸$ÀÀdÄoÑ2VÔ2VÐWÑWÔW�Ø0�tÔ+¨CÔ0°Ð?¸Ð?Ð?Ð?��àŸ
š
 3¨¯ª°S¸%Ñ(@Ô(@ÀÔ(CÀfÑ(LÑMÔM�Ø$'¨¨e°U¸DÐ$@ˆG�LÑ!ð -4ð 	ð 	Ñ(ˆC��e˜U DÝ�LŠLÐ)¨3°°U½DÀ¹K¼KÍÈdÉÌÑTÔTÐTØ�d—j’jØœ=Ð5��¨g°s¸CÀÈñô ñ ˆFˆFð
 	�$—*’*˜S !Ñ$Ô$Ñ$ˆð -4ð 	 ð 	 Ñ(ˆC��e˜U DØ�d‰NˆFÝ�4‰yŒy˜1‰}ð  Ø˜%‘�øàˆrJ   c                ó   — |                      ¦   «         dk    r'|                     |                      ¦   «         ¦  «         |                      ¦   «         }|                      |¦  «        }|                     |¦  «         |t	          |¦  «        z   S )Nr   )rÙ  Úwriterò  rø  rn   )rŸ   rÆ  rì  rû  s       rH   ÚsavezImageFileDirectory_v2.save1  sn   € Ø�7Š7‰9Œ9˜Š>ˆ>Ø�HŠH�T—]’]‘_”_Ñ%Ô%Ð%à—’‘”ˆØ—’˜fÑ%Ô%ˆØ
�Š�ÑÔÐØ�˜F™œÑ#Ð#rJ   )r  NN)r  rr   rq   r  r  r  rs   r¬   )rs   rt   )r«   rt   rs   r!   ©rs   r¬   rå   )rs   r<  rä   ©rG  r   rs   r   ©rG  r¿   rs   rt   ©rG  r   r«   r   rs   r¬   )rG  r   r«   r   r  rt   rs   r¬   )rG  r   rs   r¬   ©rs   r}  )r  r�   r  rr   rs   r  )r  r�   r  r   rs   rr   r  )r  rr   r  rt   rs   rr   )r  r‘  rs   rr   )r  rr   r  rt   rs   r�   )r«   rš  rs   rr   )r  rr   r  rt   rs   rž  )r  r„   rs   rr   )r«   r‘  rs   rr   )rÆ  rÇ  rî   r   rs   rr   )rÆ  rÇ  rs   r¬   )rs   rr   rW   )rì  r   rs   rr   )rÆ  rÇ  rs   r   )7ræ   rç   rè   ré   r™   Ú__annotations__r›   r±   rë   rq   rì  r  Úsetterr(  r;  rB  rE  rK  rN  rR  rQ  r|  r€  r  r  ÚlistÚmapr  r   ri  rk  ÚSIGNED_BYTErj  rl  ÚFLOATrm  ÚIFDÚLONG8rù   r�  rþ   r”  r™  r�  r±  r¸  rº  r¼  rÁ  rÅ  rÍ  rí  rò  rø  r  rD   rJ   rH   rì   rì     sÄ  € € € € € € ð:ð :ðx :<€NÐ;Ð;Ð;Ñ;Ø57€OÐ7Ð7Ð7Ñ7ð 3Ø#Ø ð	)!ð )!ð )!ð )!ð )!ðV ˆXÐ/Ð/Ñ0Ô0€FØˆXÐ/Ð/Ñ0Ô0€Fàð ð  ð  ñ „Xð ð Ôðð ð ñ Ôðð(ð (ð (ð (ðð ð ð ð	
ð 	
ð 	
ð 	
ð<ð <ð <ð <ð	ð 	ð 	ð 	ð<ð <ð <ð <ð3ð 3ð 3ð 3ð\ð \ð \ð \ð|%ð %ð %ð %ð
=ð =ð =ð =ð7ð 7ð 7ð 7ð8ð 8ð 8ð 8ð 	€DØˆØà”  gÐ.Ø”  VÐ,ØÔ% s¨MÐ:ØÔ&¨¨^Ð<ØÔ% s¨MÐ:Ø”  gÐ.Ø” # xÐ0Ø”˜s FÐ+Ø”  gÐ.ð
ñ	
ô 	
ñô ð ð" Ð�a˜ÑÔðð ð ð ñ Ôðð Ð�aÑÔðð ð ñ Ôðð Ð�a˜ÑÔð1ð 1ð 1ð 1ñ Ôð1ð
 Ð�aÑÔðð ð ñ Ôðð Ð�a˜ÑÔà.2ðWð Wð Wð Wñ ÔðWð Ð�aÑÔð
ð 
ð 
ñ Ôð
ð
 Ð�a˜ÑÔðð ð ð ñ Ôðð Ð�aÑÔðð ð ñ Ôðð Ð�b˜!ÑÔà.2ðWð Wð Wð Wñ ÔðWð Ð�bÑÔð
ð 
ð 
ñ Ôð
ðð ð ð ðTð Tð Tð Tðlð ð ð ðNð Nð Nð Nð Nð`$ð $ð $ð $ð $ð $rJ   rö   rõ   rô   Úwrite_c                  óª   ‡ — e Zd ZU dZdˆ fd„Z ed„ ¦  «        Z ed	„ ¦  «        Zd
ed<   	 e	dd„¦   «         Z
dd„Zdd„Zdd„Zd d„Zd!d„Zd"d„Zˆ xZS )#ÚImageFileDirectory_v1aþ  This class represents the **legacy** interface to a TIFF tag directory.

    Exposes a dictionary interface of the tags in the directory::

        ifd = ImageFileDirectory_v1()
        ifd[key] = 'Some Data'
        ifd.tagtype[key] = TiffTags.ASCII
        print(ifd[key])
        ('Some Data',)

    Also contains a dictionary of tag types as read from the tiff image file,
    :attr:`~PIL.TiffImagePlugin.ImageFileDirectory_v1.tagtype`.

    Values are returned as a tuple.

    ..  deprecated:: 3.0.0
    r    r   Úkwargsrs   r¬   c                óH   •—  t          ¦   «         j        |i |¤Ž d| _        d S )NT)Úsuperr±   r+  )rŸ   r    r  Ú	__class__s      €rH   r±   zImageFileDirectory_v1.__init__X  s-   ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)ØˆÔÐÐrJ   c                ó   — | j         S rv   )r5  r³   s    rH   r  zImageFileDirectory_v1.<lambda>\  s   €  ¤€ rJ   c                ó   — | j         S rv   )r7  r³   s    rH   r  zImageFileDirectory_v1.<lambda>]  s   €  D¤M€ rJ   zdict[int, int]r'  Úoriginalrì   c                óp   —  | |j         ¬¦  «        }|j        |_        |j        |_        |j        |_        |S )a2  Returns an
        :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`
        instance with the same data as is contained in the original
        :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`
        instance.

        :returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`

        rz   )rq   r7  r'  r*  )Úclsr  rô  s      rH   Úfrom_v2zImageFileDirectory_v1.from_v2c  s:   € ð ˆc˜œÐ)Ñ)Ô)ˆØÔ(ˆŒØÔ&ˆŒØ”=ˆŒØˆ
rJ   c                óÆ   — t          | j        ¬¦  «        }t          | j        ¦  «        |_        t          | j        ¦  «        |_        t          | j        ¦  «        |_        |S )a2  Returns an
        :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`
        instance with the same data as is contained in the original
        :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`
        instance.

        :returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`

        rz   )rì   rq   r:  r7  r'  r6  )rŸ   rô  s     rH   Úto_v2zImageFileDirectory_v1.to_v2u  sN   € õ $¨4¬;Ð7Ñ7Ô7ˆÝ˜DœMÑ*Ô*ˆŒÝ˜4œ<Ñ(Ô(ˆŒÝ˜DœMÑ*Ô*ˆŒØˆ
rJ   rG  r¿   rt   c                ó&   — || j         v p|| j        v S rv   )r5  r7  rM  s     rH   rN  z"ImageFileDirectory_v1.__contains__†  rO  rJ   r   c                ón   — t          t          | j        ¦  «        t          | j        ¦  «        z  ¦  «        S rv   )rn   rD  r7  r5  r³   s    rH   rE  zImageFileDirectory_v1.__len__‰  rF  rJ   r}  c                ón   — t          t          | j        ¦  «        t          | j        ¦  «        z  ¦  «        S rv   )r  rD  r7  r5  r³   s    rH   r€  zImageFileDirectory_v1.__iter__Œ  r�  rJ   r«   c                ó>   — dD ]}|                       |||¦  «         Œd S ©N)FT)rQ  )rŸ   rG  r«   r  s       rH   rR  z!ImageFileDirectory_v1.__setitem__�  s4   € Ø'ð 	2ð 	2ˆJØ�MŠM˜#˜u jÑ1Ô1Ð1Ð1ð	2ð 	2rJ   c           	     ó  — || j         vrQ| j        |         }| j        |         }| j        |         \  }}dD ]$}|                      | || ||¦  «        |¦  «         Œ%| j         |         }t          |t          t          f¦  «        s|f}|S r$  )r5  r7  r'  r™   rQ  r¯   rx   rr   )rŸ   rG  r  rI  rî   rJ  Úlegacyr|   s           rH   rK  z!ImageFileDirectory_v1.__getitem__“  sž   € Ø�d”mÐ#Ð#Ø”= Ô%ˆDØ”,˜sÔ#ˆCØ Ô/°Ô4‰MˆD�'Ø'ð Hð H�Ø—’˜c 7 7¨4°°vÑ#>Ô#>ÀÑGÔGÐGÐGØŒm˜CÔ ˆÝ˜#¥¥u˜~Ñ.Ô.ð 	Ø�&ˆCØˆ
rJ   )r    r   r  r   rs   r¬   )r  rì   rs   r  )rs   rì   r  rä   r  r  r  )ræ   rç   rè   ré   r±   rë   ÚtagsÚtagdatar	  Úclassmethodr  r  rN  rE  r€  rR  rK  Ú__classcell__©r  s   @rH   r  r  E  s  ø€ € € € € € ðð ð$ ð  ð  ð  ð  ð  ð ˆ8Ð.Ð.Ñ/Ô/€DØˆhÐ1Ð1Ñ2Ô2€Gð ÐÐÑØ!àðð ð ñ „[ðð"ð ð ð ð"<ð <ð <ð <ð<ð <ð <ð <ð=ð =ð =ð =ð2ð 2ð 2ð 2ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
rJ   r  c                  óœ   ‡ — e Zd ZdZdZdZ	 ddˆ fd„Zdd„Zedd„¦   «         Z	dd„Z
dd„Zdd„Zd d„Zd!ˆ fd„Zdd„Zdd„Zd!d„Zdd„Zˆ xZS )"ÚTiffImageFileÚTIFFz
Adobe TIFFFNrÆ  úStrOrBytesPath | IO[bytes]Úfilenameústr | bytes | Noners   r¬   c                óf   •— |  	 |  	 d | _         t          ¦   «                              ||¦  «         d S rv   )Ú	_n_framesr  r±   )rŸ   rÆ  r0  r  s      €rH   r±   zTiffImageFile.__init__­  s>   ø€ ð
 	Ð*Ø5àÐ'Ø"à%)ˆŒÝ‰Œ×Ò˜˜XÑ&Ô&Ð&Ð&Ð&rJ   c                ó¬  — | j         €J ‚| j                              d¦  «        }|d         dk    r|| j                              d¦  «        z  }t          |¦  «        | _        | j        j        x| _        | _        d| _        | j         | _        g | _	        | j          
                    dt          j        ¦  «         | j                              ¦   «         | _        g | _        t                                d¦  «         t                                d| j        ¦  «         t                                d	t%          |¦  «        ¦  «         |                      d¦  «         dS )
z#Open the first image in a TIFF fileNr8   r,   r  r‚   r   z*** TiffImageFile._open ***z- __first: %sz	- ifh: %s)rÆ  rÊ  rì   Útag_v2r*  Ú_TiffImageFile__firstÚ_TiffImageFile__nextÚ_TiffImageFile__frameÚ_fpÚ
_frame_posrÚ  rÛ  rÜ  rÙ  Ú_tag_data_remainingÚ_tag_data_limitsrá  râ  r   Ú_seekrñ  s     rH   Ú_openzTiffImageFile._open»  s  € ð ŒwÐ"Ð"Ð"ØŒg�lŠl˜1‰oŒoˆØˆqŒ6�RŠ<ˆ<Ø�4”7—<’< ‘?”?Ñ"ˆCå+¨CÑ0Ô0ˆŒð &*¤[Ô%5Ð5ˆŒ�t”{ØˆŒØ”7ˆŒØ%'ˆŒð
 	Œ�Š�Q�œÑ$Ô$Ð$Ø#'¤7§<¢<¡>¤>ˆÔ Ø+-ˆÔå�ŠÐ2Ñ3Ô3Ð3Ý�Š�_ d¤lÑ3Ô3Ð3Ý�Š�[¥$ s¡)¤)Ñ,Ô,Ð,ð 	�
Š
�1‰ŒˆˆˆrJ   r   c                óD  — | j         }|€ˆ|                      ¦   «         }|                      t          | j        ¦  «        ¦  «         | j         €1|                      |                      ¦   «         dz   ¦  «         | j         ®1|                      |¦  «         | j         €J ‚| j         S )Nr   )r3  rÙ  r=  rn   r:  rÚ  )rŸ   Úcurrent_n_framesÚcurrents      rH   Ún_frameszTiffImageFile.n_framesÚ  s‘   € àœ>ÐØÐ#Ø—i’i‘k”kˆGØ�JŠJ•s˜4œ?Ñ+Ô+Ñ,Ô,Ð,Ø”.Ð(Ø—
’
˜4Ÿ9š9™;œ;¨™?Ñ+Ô+Ð+ð ”.Ð(à�IŠI�gÑÔÐØŒ~Ð)Ð)Ð)ØŒ~ÐrJ   Úframec                óä   — |                       |¦  «        sdS |                      |¦  «         | j        �:| j        j        | j        k    s| j        j        | j        k    s| j        rd| _        dS dS dS )z%Select a given frame as current imageN)Ú_seek_checkr=  Ú_imÚimrî   Ú
_tile_sizeÚmodeÚreadonly)rŸ   rC  s     rH   rÚ  zTiffImageFile.seekæ  s~   € à×Ò Ñ&Ô&ð 	ØˆFØ�
Š
�5ÑÔÐØŒ8ÐØŒGŒL˜DœOÒ+Ð+ØŒwŒ|˜tœyÒ(Ð(ØŒ}ð )ð ˆDŒHˆHˆHð  Ðà(Ð(rJ   c                ó˜  — t          | j        t          ¦  «        r| j        j        ‚| j        | _        t          | j        ¦  «        |k    �rÝ| j        sd}t          |¦  «        ‚t           
                    d|| j        | j        | j                             ¦   «         ¦  «         | j        dk    rd}t          |¦  «        ‚| j                             | j        ¦  «         | j                             | j        ¦  «         | j                             | j        ¦  «         t           
                    d| j                             ¦   «         ¦  «         | j        | j        _        | j                             | j        ¦  «         | xj        | j        j        z  c_        | j        j        | j        v rd| _        n| j        j        | _        | j        dk    r| j        €
|dz   | _        t1          | d¦  «        s| j        dk    | _        | xj        dz  c_        t          | j        ¦  «        |k    �°Ý| j                             | j        |         ¦  «         | j        |         | j        _        | j                             | j        ¦  «         t4          | j        v rM| j        t4                   }t          |t6          ¦  «        rt          |¦  «        dk    r|d         }|| j        d	<   nd	| j        v r| j        d	= |                      ¦   «          t<                               | j        ¦  «        x| _         | _!        || _        |  "                    ¦   «          d S )
Nzno more images in TIFF filez9Seeking to frame %s, on frame %s, __next %s, location: %srÖ  zUnable to seek to framezLoading tags, location: %sr   r   Úis_animatedÚxmp)#r¯   r9  r   ÚexrÆ  rn   r:  r7  ÚEOFErrorrá  râ  r8  rÙ  rq  rÚ  rù  r<  r;  r5  r)  rí  rÝ  r*  r3  ÚhasattrrL  ÚXMPrx   rc  Ú_reload_exifr  r  rG  rô  Ú_setup)rŸ   rC  r,  rM  s       rH   r=  zTiffImageFile._seekò  sÙ  € Ý�d”h¥Ñ.Ô.ð 	Ø”(”+ÐØ”(ˆŒå�$”/Ñ"Ô" eÒ+Ñ+Ø”;ð $Ø3�Ý˜s‘m”mÐ#Ý�LŠLØKØØ”Ø”Ø”—’‘”ñô ð ð Œ{˜eÒ#Ð#Ø/�Ý  ‘o”oÐ%ØŒG�LŠL˜œÑ%Ô%Ð%ØŒO×"Ò" 4¤;Ñ/Ô/Ð/ØÔ!×(Ò(¨Ô)AÑBÔBÐBÝ�LŠLÐ5°t´w·|²|±~´~ÑFÔFÐFØ*.Ô*BˆDŒKÔ'ØŒK×Ò˜TœWÑ%Ô%Ð%ØÐ$Ô$¨¬Ô(BÑBÐ$Ô$ØŒ{Ô 4¤?Ð2Ð2ð  �”�à"œkÔ.�”ØŒ{˜aÒÐ D¤NÐ$:Ø!&¨¡�”Ý˜4 Ñ/Ô/ð 4Ø#'¤;°!Ò#3�Ô ØˆLŒL˜AÑˆLŒLõ? �$”/Ñ"Ô" eÒ+Ñ+ð@ 	Œ�Š�T”_ UÔ+Ñ,Ô,Ð,Ø&*Ô&;¸EÔ&BˆŒÔ#ØŒ×Ò˜œÑ!Ô!Ð!Ý�$”+ÐÐØ”+�cÔ"ˆCÝ˜#�uÑ%Ô%ð ­#¨c©(¬(°aª-¨-Ø˜!”f�Ø"ˆDŒI�eÑÐØ�d”iÐÐØ”	˜%Ð Ø×ÒÑÔÐå3×;Ò;¸D¼KÑHÔHÐHˆŒ�4”8ØˆŒØ�Š‰ŒˆˆˆrJ   c                ó   — | j         S )zReturn the current frame number)r8  r³   s    rH   rÙ  zTiffImageFile.tell'  s
   € àŒ|ÐrJ   údict[int, dict[str, bytes]]c                ób  — i }| j                              t          j        j        ¦  «        }|�r |                     d¦  «        rët          |¦  «        dk    rØt          |dd…         ¦  «        }t          j	        |d         dz   dz  ¦  «        dz  }	 t          |d|z   d|z   …         ¦  «        }n# t          j        $ r Y nnw xY w|d|z   d|z   |z   …         }d|i||<   |t          j	        d|z   |z   dz  ¦  «        dz  d	…         }|                     d¦  «        rt          |¦  «        dk    °Ø|S )
a5  
        Returns a dictionary of Photoshop "Image Resource Blocks".
        The keys are the image resource ID. For more information, see
        https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577409_pgfId-1037727

        :returns: Photoshop "Image Resource Blocks" in a dictionary.
        s   8BIMrN   r0   r4   r   r,   r½  r  N)r5  rß  r   ÚBaseÚImageResourcesrw   rn   Úi16r   ÚceilÚi32r   Úerror)rŸ   Úblocksr|   ÚidÚnrî   r  s          rH   Úget_photoshop_blocksz"TiffImageFile.get_photoshop_blocks+  sH  € ð ˆØŒk�oŠo�hœmÔ:Ñ;Ô;ˆØñ 	@Ø—.’. Ñ)Ô)ð 
@­c°#©h¬h¸"ªn¨nÝ˜˜Q˜q˜Sœ‘]”]�Ý”I˜s 1œv¨™z¨QÑ.Ñ/Ô/°!Ñ3�ðÝ˜s 1 q¡5¨2°©6 >Ô2Ñ3Ô3�D�DøÝ”|ð ð ð Ø�Eðøøøà˜2 ™6 B¨¡F¨T¡MÐ1Ô2�Ø$ d˜^��r‘
à�$œ) R¨!¡V¨d¡]°aÑ$7Ñ8Ô8¸1Ñ<Ð>Ð>Ô?�ð —.’. Ñ)Ô)ð 
@­c°#©h¬h¸"ªn¨nð ˆs   ÂB0 Â0CÃCúImage.core.PixelAccess | Nonec                óˆ   •— | j         r| j        r|                      ¦   «         S t          ¦   «                              ¦   «         S rv   )ÚtileÚuse_load_libtiffÚ_load_libtiffr  rí  )rŸ   r  s    €rH   rí  zTiffImageFile.loadC  s;   ø€ ØŒ9ð 	(˜Ô.ð 	(Ø×%Ò%Ñ'Ô'Ð'Ý‰wŒw�|Š|‰~Œ~ÐrJ   c                óâ   — | j         €Ht          j        | j        ¦  «         t          j                             | j        | j        ¦  «        | _        t          j         	                    | ¦  «         d S rv   )
rF  r   Ú_decompression_bomb_checkrH  ÚcoreÚnewrI  rG  r   Úload_preparer³   s    rH   rj  zTiffImageFile.load_prepareH  sU   € ØŒ8ÐÝÔ+¨D¬OÑ<Ô<Ð<Ý”j—n’n T¤Y°´Ñ@Ô@ˆDŒGÝÔ×(Ò(¨Ñ.Ô.Ð.Ð.Ð.rJ   c                ó*  — | j         sDd| _        |                      ¦   «         }t          j        D ]}||vrŒ|                     |¦  «         Œt          j        | d¬¦  «         t          j	        j
        | j        v r| j        t          j	        j
        = d S d S )NT)Úin_place)rL  Ú!_close_exclusive_fp_after_loadingÚgetexifr   ÚTAGS_V2_GROUPSÚget_ifdr   Úexif_transposer   rW  ÚOrientationr5  )rŸ   ÚexifÚkeys      rH   Úload_endzTiffImageFile.load_endN  sž   € ð Ôð 	"Ø59ˆDÔ2ð —<’<‘>”>ˆDÝÔ.ð "ð "�Ø˜d�?�?ØØ—’˜SÑ!Ô!Ð!Ð!åÔ ¨tÐ4Ñ4Ô4Ð4ÝŒ=Ô$¨¬Ð3Ð3Ø”�HœMÔ5Ð6Ð6Ð6ð 4Ð3rJ   c                óî  — t           j                              | ¦  «         |                      ¦   «          t          | j        ¦  «        dk    sd}t          |¦  «        ‚| j        d         j        }| j        d         j        }| j        €J ‚	 t          | j        d¦  «        o| j         
                    ¦   «         }t          | j        d¦  «        r| j                             ¦   «          n# t
          $ r d}Y nw xY w|r:t          |t          ¦  «        sJ ‚t          |¦  «        }||d<   t          |¦  «        }t          j        | j        d|| j        ¦  «        }	 |                     | j        |¦  «         n$# t(          $ r}d	}t          |¦  «        |‚d}~ww xY w| j        o| j         }t          | j        d
¦  «        rJt.                               d¦  «         |                     | j                             ¦   «         ¦  «        \  }	}
nô|r�t.                               d¦  «         |s| j                             d¦  «         t9          j        |dt8          j        ¦  «        }|                     d¦  «        \  }	}
t9          j        ||t8          j        ¦  «         nct.                               d¦  «         | j                             d¦  «         |                     | j                              ¦   «         ¦  «        \  }	}
g | _        d| _!        |  "                    ¦   «          |r | j         #                    ¦   «          d| _        |
dk     rd|
› �}t          |¦  «        ‚t           j                              | ¦  «        S )zWOverload method triggered when we detect a compressed tiff
        Calls out to libtiffr   zNot exactly one tiler   NÚfilenoÚflushFÚlibtiffzCouldn't set the imageÚgetvaluez5have getvalue. just sending in a string from getvaluez3have fileno, calling fileno version of the decoder.s   fpfpz+don't have fileno or getvalue. just readingzdecoder error )$r   rí  rj  rn   rc  rË  Úextentsr    rÆ  rP  rw  rx  r¯   rx   r  Ú_getdecoderrI  ÚdecoderconfigÚsetimagerG  rq  Ú_exclusive_fprL  rá  râ  r˜  rz  rÚ  ÚosÚlseekÚSEEK_CURÚSEEK_SETrÊ  rJ  ru  Úclose)rŸ   r,  r{  r    rÆ  Ú	args_listÚdecoderÚeÚclose_self_fpr_  ÚerrÚposs               rH   re  zTiffImageFile._load_libtiff_  s/  € õ 	Œ×Ò˜ÑÔÐà×ÒÑÔÐå�4”9‰~Œ~ Ò"Ð"Ø(ˆCÝ˜#‘,”,Ðà”)˜A”,Ô&ˆØŒy˜Œ|Ô ˆð
 ŒwÐ"Ð"Ð"ð
	Ý˜œ (Ñ+Ô+Ð@°´·²Ñ0@Ô0@ˆBõ �t”w Ñ(Ô(ð  Ø”—’‘”�øøÝð 	ð 	ð 	ð ˆBˆBˆBð	øøøð
 ð 	$Ý˜d¥EÑ*Ô*Ð*Ð*Ð*Ý˜T™
œ
ˆIØˆI�a‰LÝ˜Ñ#Ô#ˆDåÔ# D¤I¨y¸$ÀÔ@RÑSÔSˆð	&Ø×Ò˜TœW gÑ.Ô.Ð.Ð.øÝð 	&ð 	&ð 	&Ø*ˆCÝ˜#‘,”, AÐ%øøøøð	&øøøð Ô*ÐC°4Ô3CÐ/CˆÝ�4”7˜JÑ'Ô'ð !	4õ �LŠLÐPÑQÔQÐQØ—^’^ D¤G×$4Ò$4Ñ$6Ô$6Ñ7Ô7‰FˆAˆsˆsØð 	4å�LŠLÐNÑOÔOÐOØ ð  Ø”—’˜Q‘”�õ ”(˜2˜q¥"¤+Ñ.Ô.ˆCà—^’^ GÑ,Ô,‰FˆAˆsÝŒH�R˜�bœkÑ*Ô*Ð*Ð*õ �LŠLÐFÑGÔGÐGØŒG�LŠL˜‰OŒOˆOà—^’^ D¤G§L¢L¡N¤NÑ3Ô3‰FˆAˆsàˆŒ	ØˆŒà�Š‰Œˆàð 	ØŒG�MŠM‰OŒOˆOØˆDŒGà�Š7ˆ7Ø( 3Ð(Ð(ˆCÝ˜#‘,”,ÐåŒ{×Ò Ñ%Ô%Ð%s+   ÂAC( Ã(C7Ã6C7ÅE4 Å4
FÅ>FÆFc                ó¢  — d| j         v rd}t          |¦  «        ‚t          | j                              t          d¦  «                 | _        | j                              t          d¦  «        | _        | j                              t          d¦  «        }| j        dk    rd}| j                              t          d¦  «        }t                               d¦  «         t                               d| j        ¦  «         t                               d	|¦  «         t                               d
| j        ¦  «         t                               d|¦  «         t                               d| j                              t          ¦  «        ¦  «         	 | j         t                   }| j         t                   }n$# t          $ r}d}t!          |¦  «        |‚d}~ww xY wt#          |t$          ¦  «        rt#          |t$          ¦  «        sd}t'          |¦  «        ‚||f| _        | j                              t*          j        j        ¦  «        }|dv r
||f| _        n	||f| _        t                               d| j        ¦  «         | j                              t4          d¦  «        }t7          |¦  «        dk    r)t9          |¦  «        t;          |¦  «        k    r	|d         f}| j                              t<          d¦  «        }	| j                              t>          d¦  «        }
| j                              t@          | j        dk    r|dv rdnd¦  «        }|dv rd}n|dk    rd}nd}| j        dk    rA|
r?t9          |
¦  «        dk    r,|	dt7          |
¦  «         …         }	|t7          |
¦  «        z  }d}
|t7          |
¦  «        z  }t7          |	¦  «        }|tB          k    r,t           "                    d|¦  «         d}tG          |¦  «        ‚||k     r|	d|…         }	n||k    r|dk    r|	|z  }	t7          |	¦  «        |k    rd}tG          |¦  «        ‚| j         j$        ||||	|
f}t                               d|¦  «         	 tJ          |         \  | _&        }n># t          $ r1}t                               d¦  «         d}tG          |¦  «        |‚d}~ww xY wt                               d |¦  «         t                               d!| j'        ¦  «         | j        | j(        d"<   | j                              tR          d¦  «        }| j                              tT          d¦  «        }|rt|rr| j                              tV          ¦  «        }|dk    r||f| j(        d#<   n@|dk    r|d$z  |d$z  f| j(        d#<   n'|€||f| j(        d#<   ||f| j(        d%<   n||f| j(        d%<   dx}x}}g | _,        tZ          p
| j        d&k    | _.        | j.        rä|dk    rH|dd…         dz   |dd…         z   }t                               d|¦  «         tJ          |         \  | _&        }|dk    r!d'| _&        | j        d(v r| j        dk    rd'}n.d)}n+|d*k    rd+}n"| /                    d,¦  «        r|dd-…         d.z   }|d/| j         j0        f}| j,         1                    te          j3        d0dd||fd|¦  «        ¦  «         �nth          | j         v stj          | j         v �r½th          | j         v r5| j         th                   }| j                              tl          |¦  «        }|}n�| j         tj                   }| j                              tn          ¦  «        }| j                              tp          ¦  «        }t#          |t$          ¦  «        rt#          |t$          ¦  «        sd1}t'          |¦  «        ‚|}||k    r||k    r| j        dk    r
|d-d…         }|D ]È}||z   |k    r|ts          |	¦  «        z  d2z  }nd}|}| j        dk    r||         }||z  }|t%          |¦  «        df}| j,         1                    te          j3        | j        ||t;          ||z   |¦  «        t;          ||z   |¦  «        f||¦  «        ¦  «         ||z  }||k    rd||z   }}||k    rd}|dz  }ŒÉn+t                               d3¦  «         d}tG          |¦  «        ‚tt          | j         v r| j         tt                   | j(        d4<   | j'        d5v rEtw          d6„ | j         tx                   D ¦   «         ¦  «        }t{          j>        d7|¦  «        | _?        dS d| _?        dS )8z-Setup this image object based on current tagsi¼  z+Windows Media Photo files not yet supportedr   r   r5   r4   z*** Summary ***z- compression: %sz - photometric_interpretation: %sz- planar_configuration: %sz- fill_order: %sz- YCbCr subsampling: %szMissing dimensionsNzInvalid dimensions)r2   r4   r6   r8   z
- size: %srK   rD   )r,   r4   r.   )r,   r4   r8   r2   r0   r,   z.More samples per pixel than can be decoded: %sz#Invalid value for samples per pixelzunknown data organizationzformat key: %sz- unsupported formatzunknown pixel modez- raw mode: %sz- pil mode: %sÚcompressionÚdpigR¸…ëQ@Ú
resolutionr+   r[   r7   r]   rO   úI;16N)z;16Bz;16Lr‚   ÚNFry  zInvalid tile dimensionsr8   z- unsupported data organizationÚicc_profile©re   rg   c              3  ó    K  — | ]	}|d z  V — Œ
dS )r(   NrD   )rE   r‡  s     rH   rp   z'TiffImageFile._setup.<locals>.<genexpr>²  s&   è è € ÐDÐD¨˜A ™HÐDÐDÐDÐDÐDÐDrJ   úRGB;L)@r5  rË  ÚCOMPRESSION_INFOrß  ÚCOMPRESSIONÚ_compressionÚPLANAR_CONFIGURATIONÚ_planar_configurationrr  Ú	FILLORDERrá  râ  ÚYCBCRSUBSAMPLINGÚ
IMAGEWIDTHÚIMAGELENGTHrà  Ú	TypeErrorr¯   r   rq  rH  r   rW  rr  Ú_sizerî   ÚSAMPLEFORMATrn   r”   r“   ÚBITSPERSAMPLEÚEXTRASAMPLESÚSAMPLESPERPIXELÚMAX_SAMPLESPERPIXELr\  r!  rq   Ú	OPEN_INFOÚ_moderI  rc  ÚX_RESOLUTIONÚY_RESOLUTIONÚRESOLUTION_UNITrc  ÚREAD_LIBTIFFrd  r—  rì  rù  r   Ú_Tiler÷  ÚTILEOFFSETSÚROWSPERSTRIPÚ	TILEWIDTHÚ
TILELENGTHÚsumÚ
ICCPROFILErx   ÚCOLORMAPr   r+   Úpalette) rŸ   r,  ÚphotoÚ	fillorderÚxsizeÚysizer‡  ÚorientationÚsample_formatÚ	bps_tupleÚextra_tupleÚsamples_per_pixelÚ	bps_countÚbps_actual_countrt  ÚrawmodeÚxresÚyresÚresunitÚxÚyÚlayerr   Úoffsetsrˆ  ÚwÚ	tilewidthrì  ÚstrideÚtile_rawmoder    r³  s                                    rH   rS  zTiffImageFile._setup¾  sz	  € ð �T”[Ð Ð Ø?ˆCÝ˜#‘,”,Ðõ -¨T¬[¯_ª_½[È!Ñ-LÔ-LÔMˆÔØ%)¤[§_¢_Õ5IÈ1Ñ%MÔ%MˆÔ"ð ”—’Õ :¸AÑ>Ô>ˆð Ô Ò+Ð+ØˆEà”K—O’O¥I¨qÑ1Ô1ˆ	å�ŠÐ&Ñ'Ô'Ð'Ý�ŠÐ(¨$Ô*;Ñ<Ô<Ð<Ý�ŠÐ7¸Ñ?Ô?Ð?Ý�ŠÐ1°4Ô3MÑNÔNÐNÝ�ŠÐ'¨Ñ3Ô3Ð3Ý�ŠÐ.°´·²Õ@PÑ0QÔ0QÑRÔRÐRð	(Ø”K¥
Ô+ˆEØ”K¥Ô,ˆEˆEøÝð 	(ð 	(ð 	(Ø&ˆCÝ˜C‘.”. aÐ'øøøøð	(øøøõ ˜%¥Ñ%Ô%ð 	"­Z¸½sÑ-CÔ-Cð 	"Ø&ˆCÝ˜S‘/”/Ð!Ø ˜,ˆŒØ”k—o’o¥h¤mÔ&?Ñ@Ô@ˆØ˜,Ð&Ð&Ø ˜ˆDŒJˆJà ˜ˆDŒJå�Š�\ 4¤9Ñ-Ô-Ð-àœŸš­°dÑ;Ô;ˆÝˆ}ÑÔ Ò!Ð!¥c¨-Ñ&8Ô&8½CÀÑ<NÔ<NÒ&NÐ&Nð +¨1Ô-Ð/ˆMà”K—O’O¥M°4Ñ8Ô8ˆ	Ø”k—o’o¥l°BÑ7Ô7ˆØ œKŸOšOÝØÔ" kÒ1Ð1°e¸v°o°oˆAˆAÈ1ñ
ô 
Ðð �IÐÐØˆIˆIØ�aŠZˆZØˆIˆIàˆIØÔ%¨Ò*Ð*¨{Ð*½sÀ;Ñ?OÔ?OÐSTÒ?TÐ?Tð "Ð"5¥S¨Ñ%5Ô%5Ð$5Ð"5Ô6ˆIØ¥ [Ñ!1Ô!1Ñ1ÐØˆKØ•S˜Ñ%Ô%Ñ%ˆ	Ý˜y™>œ>ÐàÕ2Ò2Ð2å�LŠLØ@ÐBSñô ð ð 8ˆCÝ˜cÑ"Ô"Ð"àÐ/Ò/Ð/ð "Ð"4Ð#4Ð"4Ô5ˆIˆIØÐ!1Ò1Ð1Ð6FÈ!Ò6KÐ6Kð "Ð$5Ñ5ˆIåˆy‰>Œ>Ð.Ò.Ð.Ø-ˆCÝ˜cÑ"Ô"Ð"ð ŒKÔØØØØØð
ˆõ 	�ŠÐ% sÑ+Ô+Ð+ð	*Ý"+¨C¤.ÑˆDŒJ˜˜øÝð 	*ð 	*ð 	*Ý�LŠLÐ/Ñ0Ô0Ð0Ø&ˆCÝ˜cÑ"Ô"¨Ð)øøøøð	*øøøõ
 	�ŠÐ% wÑ/Ô/Ð/Ý�ŠÐ% t¤yÑ1Ô1Ð1à#'Ô#4ˆŒ	�-Ñ àŒ{�Š�|¨QÑ/Ô/ˆØŒ{�Š�|¨QÑ/Ô/ˆàð 	5�Dð 	5Ø”k—o’o¥oÑ6Ô6ˆGØ˜!Š|ˆ|Ø$(¨$ <�”	˜%Ñ Ð Ø˜A’�Ø$(¨4¡K°¸±Ð#=�”	˜%Ñ Ð Ø�Ø$(¨$ <�”	˜%Ñ ð +/°¨*�”	˜,Ñ'Ð'à*.°¨*�”	˜,Ñ'ð ÐˆÐˆA�ØˆŒ	Ý ,Ð J°Ô0AÀUÒ0JˆÔØÔ ð ^	#ð ˜AŠ~ˆ~à˜"˜1˜"”g ‘n s¨1¨2¨2¤wÑ.�Ý—’Ð-¨sÑ3Ô3Ð3õ '0°¤nÑ#�”
˜GØ˜ŠzˆzØ"�”
ØÔ$¨Ð.Ð.°4Ô3MÐQRÒ3RÐ3Rð $�G�Gà$�G�Gð
 ˜FÒ"Ð"Ø!��Ø×!Ò!Ð"2Ñ3Ô3ð -Ø! # 2 #œ,¨Ñ,�ð ˜% ¤Ô!3Ð4ˆAØŒI×Ò�Yœ_¨Y¸¸A¸uÀeÐ8LÈaÐQRÑSÔSÑTÔTÐTÑTå˜Tœ[Ð(Ð(­K¸4¼;Ð,FÑ,Få˜tœ{Ð*Ð*Øœ+¥lÔ3�Ø”K—O’O¥L°%Ñ8Ô8�Ø��ð œ+¥kÔ2�Ø œKŸOšO­IÑ6Ô6�	Ø”K—O’O¥JÑ/Ô/�Ý! )­SÑ1Ô1ð *½ÀAÅsÑ9KÔ9Kð *Ø3�CÝ$ S™/œ/Ð)Ø�à�EŠzˆz˜a 5šj˜j¨TÔ-GÈ1Ò-LÐ-Là! " # #œ,�à!ð #ð #�Ø�q‘5˜5’=�=Ø¥ Y¡¤Ñ/°!Ñ3�F�Fà�Fà&�ØÔ-°Ò2Ð2à#*¨5¤>�Là˜iÑ'�Fà$¥c¨&¡k¤k°1Ð5�Ø”	× Ò Ý”OØÔ)Ø˜A�s 1 q¡5¨%Ñ0Ô0µ#°a¸!±e¸UÑ2CÔ2CÐDØØñ	ô ñô ð ð �Q‘�Ø˜’:�:Ø˜a !™e�q�AØ˜E’z�zØ˜Ø ™
˜øð7#õ: �LŠLÐ:Ñ;Ô;Ð;Ø-ˆCÝ˜cÑ"Ô"Ð"õ ˜œÐ$Ð$Ø'+¤{µ:Ô'>ˆDŒI�mÑ$ð Œ9˜Ð#Ð#ÝÐDÐD¨d¬k½(Ô.CÐDÑDÔDÑDÔDˆGÝ'Ô+¨G°WÑ=Ô=ˆDŒLˆLˆLàˆDŒLˆLˆLs0   Æ$F+ Æ+
GÆ5GÇGÑ*R  Ò 
R;Ò
,R6Ò6R;rv   )rÆ  r/  r0  r1  rs   r¬   r  rä   )rC  r   rs   r¬   )rs   rU  )rs   ra  )ræ   rç   rè   ÚformatÚformat_descriptionrm  r±   r>  rë   rB  rÚ  r=  rÙ  r`  rí  rj  ru  re  rS  r*  r+  s   @rH   r-  r-  ¨  sX  ø€ € € € € Ø€FØ%ÐØ(-Ð%ð
 (,ð'ð 'ð 'ð 'ð 'ð 'ð 'ðð ð ð ð> ð	ð 	ð 	ñ „Xð	ð
ð 
ð 
ð 
ð3ð 3ð 3ð 3ðjð ð ð ðð ð ð ð0ð ð ð ð ð ð
/ð /ð /ð /ð7ð 7ð 7ð 7ð"]&ð ]&ð ]&ð ]&ð~w ð w ð w ð w ð w ð w ð w ð w rJ   r-  rL   rM   rZ   re   rg   rR   rV   rO   úI;16LrT   rU   r[   r]   r\   rh   rk   rl   rQ   r'  údict[int, Any]c                ó  — t           | v rs|                      t          d¦  «        }t          |t          ¦  «        r|d         }d|z  dz  }t          | t                    ¦  «        |k    rd|› d�}t          |¦  «        ‚d S d S )Nr   r   r.   z
Requiring z items for Colormap)r²  rß  r¡  r¯   rx   rn   rq  )r'  ÚbpsÚexpectedr,  s       rH   Ú_validate_tagsrÒ  Õ  s‹   € Ý�4ÐÐØ�hŠh•} aÑ(Ô(ˆÝ�c�5Ñ!Ô!ð 	Ø�a”&ˆCØ˜‘H ‘>ˆÝˆt•HŒ~ÑÔ (Ò*Ð*Ø<˜xÐ<Ð<Ð<ˆCÝ˜S‘/”/Ð!ð Ðð
 +Ð*rJ   rG  úImage.ImagerÆ  rÇ  r0  ústr | bytesc                óœ  — 	 t           | j                 \  }}}}}}n-# t          $ r }	d| j        › d�}
t          |
¦  «        |	‚d }	~	ww xY w| j        }| j        }t          |¬¦  «        }|                     d¦  «        rd|_        	 |d         }nA# t          $ r4 | j	                             d¦  «        }t          |t          ¦  «        rd }Y nw xY w|€d}n|dk    rd	}n|d
k    rd}t          p|dk    }d|t          <   | j        d         |t          <   | j        d         |t           <   d|v r	|d         }nNd|v rH|d         }t          |t"          ¦  «        r*t%          j        ¦   «         }|                     |¦  «         |}ni }t*                               dt/          |¦  «        ¦  «         t          |t0          ¦  «        r|                     ¦   «         }|D ]�}t          |t$          j        ¦  «        r'|t4          j        v r|                     |¦  «        ||<   n|                     |¦  «        ||<   	 |j        |         |j        |<   Œr# t<          $ r Y Œ~w xY wi }t?          | d¦  «        r| j                              ¦   «         }i |¥tC          | di ¦  «        ¥}|                     t          ¦  «        dk    rGtD          |v r>tF          |v r-|tF          xx         tI          |tD                   ¦  «        z  cc<   |tD          = tJ          tL          fD ]	}||v r||= Œ
t?          | d¦  «        r•tN          tP          tR          tT          tV          tX          fD ]n}|| j-        v rc|tT          k    r.| j-        j        |         t4          j.        t4          j/        fvr||= ŒD| j-        |         ||<   | j-        j        |         |j        |<   Œo|                     d| j	                             d¦  «        ¦  «        }|r
||t`          <   tb          dftP          dftR          dftP          dftR          dftN          dftd          dftf          dfth          dftj          dff
D ]\  }}||v r||         ||<   Œ|                     d¦  «        }|r*d|tN          <   |d         |tP          <   |d         |tR          <   |dk    r4||tl          <   tI          |¦  «        dk    rtI          |¦  «        |tF          <   |�
||tD          <   |dk    r
||tL          <   tn          |vr||tn          <   n«| j        d v r¢|tn                   dk    r‘| j        d!k    rr|  8                    ¦   «         }|                     ¦   «         }|�Gts          |j:        ¦  «        D ]0}ts          |j;        ¦  «        D ]}|||f         d"k    rdnd"|||f<   ŒŒ1|} nty          j=        | ¦  «        } | j        d#v rw| j>         ?                    d$d%¦  «        }g }tI          |¦  «        d&z  }ts          d&¦  «        D ].} |d'„ ||| z  || dz   z  …         D ¦   «         z  }|dgd(|z
  z  z  }Œ/||t€          <   |t                   |t                    }"}!tI          |¦  «        |!|d         z  d)z   d*z  z  }#t‚          |vrl|rV|                     d+t„          ¦  «        }$|#dk    rdnt‡          |$|#z  |"¦  «        }%|d	k    rt‡          |%d)z   d*z  d*z  |"¦  «        }%n|"}%|%dk    rd}%|%|t‚          <   |#dk    rdn|#|t‚                   z  }&|"|t‚                   z   dz
  |t‚                   z  }'|&d,k    rt4          jD        |j        tŠ          <   |&f|'dz
  z  |#|"z  |&|'dz
  z  z
  fz   |tŠ          <   t�          ts          d|&|'z  |&¦  «        ¦  «        |tŽ          <   t�                               |d¦  «        |t’          <   | j        d-k    r>t”          d.t–          d/i L                    ¦   «         D ]\  }}(| M                    ||(¦  «         Œtœ          tž          t           t¢          g})|�rBd0|v r[|d0         }*t          |*t          ¦  «        r|*dk     s|*d1k    rd2}
t¥          |
¦  «        ‚|d	k    rd3}
t¥          |
¦  «        ‚|*|t¦          <   t*                               d4¦  «         t*                               d5t©          | L                    ¦   «         ¦  «        ¦  «         d}+t?          |d6¦  «        r@	 | U                    d¦  «         | V                    ¦   «         }+n# t®          jX        $ r Y nw xY wi },|)t²          tŠ          tŽ          t´          t¶          gz  })tl          |d         i}-t¹          j]        | L                    ¦   «         | L                    ¦   «         ¦  «        D �]*\  }}.|t4          j^        vr®|t4          j        v rt4          j_        |,|<   n�||j        v r|j        |         |,|<   nvt          |.t          tÀ          tÂ          t"          f¦  «        s.t          |.tŒ          ¦  «        r9tÅ          d7„ |.D ¦   «         ¦  «        r t5          jc        |¦  «        jd        }/|/r|/|,|<   ||-vrd||)vr`t          |.tÂ          ¦  «        r|. e                    d8d9¦  «        d:z   |-|<   Œüt          |.tÌ          ¦  «        rtÁ          |.¦  «        |-|<   �Œ%|.|-|<   �Œ,tL          |-v r9tI          |-tL                   ¦  «        dk    r|-tL                   d         |-tL          <   tÏ          |-¦  «         t*                               d;t©          |- L                    ¦   «         ¦  «        ¦  «         | j        d<v rd=}t/          |- L                    ¦   «         ¦  «        }0|0 h                    ¦   «          ||+||0|,f}1t%          ji        | j        d>|1|¦  «        }2	 |2 j                    | j>        ddg| j        ¢R ¦  «         	 |2 e                    tÖ          jl        ¦  «        dd …         \  }3}4|+s| m                    |4¦  «         |3rnŒE|3dk     rd?|3› d@�}
t          |
¦  «        ‚	 |2 n                    ¦   «          nƒ# |2 n                    ¦   «          w xY w|)D ]}||= ŒtÏ          |jo        ¦  «         | p                    |¦  «        }5t×          jq        | |t×          jr        dddg| j        ¢R |5||#df¦  «        g¦  «         dA|v rtç          | dA|¦  «         d S d S )BNzcannot write mode z as TIFFrz   Úbig_tiffTrŒ  r+   r5   r7   r=   r9   r   r   Útiffinfors  zTiffinfo Keys: %srG  r5  r,   r‘  ÚdescriptionrŽ  Úx_resolutionÚy_resolutionÚresolution_unitÚsoftwareÚ	date_timeÚartistÚ	copyrightr�  rK   )rL   rM   rL   r'   r’  r[   r”  r.   c                ó   — g | ]}|d z  ‘ŒS )r(   rD   rU  s     rH   r_  z_save.<locals>.<listcomp>~  s   € ÐMÐMÐM Q˜˜S™ÐMÐMÐMrJ   r(   r6   r8   Ú
strip_sizer&   rk   )r   r   )r   r'   é€   r'   râ  r'   Úqualityéd   zInvalid quality settingz5quality setting only supported for 'jpeg' compressionzSaving using libtiff encoderz	Items: %srw  c              3  óZ   K  — | ]&}t          |t          t          t          f¦  «        V — Œ'd S rv   )r¯   r   r�   r„   rU  s     rH   rp   z_save.<locals>.<genexpr>Û  s3   è è € ÐTÐTÈ�J q­3µµ{Ð*CÑDÔDÐTÐTÐTÐTÐTÐTrJ   r]  r÷   r–  zConverted items: %s)rO   rQ   rÍ  r�  ry  zencoder error z when writing image fileÚ_debug_multipage)tÚ	SAVE_INFOrI  rà  rË  ÚencoderinfoÚencoderconfigrì   rß  r&  rc  r¯   r   ÚWRITE_LIBTIFFr˜  rî   rœ  r�  rr   r   ÚExifrí  rá  râ  r  r  r  r   ro  rp  r'  r3  rP  rG  r¤   r¢  r£  rn   ÚEXIFIFDr   r©  r§  r¨  ÚIPTC_NAA_CHUNKÚPHOTOSHOP_CHUNKrQ  r5  ro  re  r±  ÚIMAGEDESCRIPTIONÚSOFTWAREÚ	DATE_TIMEÚARTISTÚ	COPYRIGHTr¡  rr  ÚcopyrÞ  ÚheightÚwidthr   ÚinvertrG  Ú
getpaletter²  r­  Ú
STRIP_SIZEr“   rk  ÚSTRIPBYTECOUNTSrx   r÷  ÚCOMPRESSION_INFO_REVr–  r›  ÚREFERENCEBLACKWHITErA  Ú
setdefaultr®  r¯  r¬  ÚTILEBYTECOUNTSrq  ÚJPEGQUALITYrö  rÚ  rw  rÛ  ÚUnsupportedOperationÚOSUBFILETYPEÚTRANSFERFUNCTIONÚSUBIFDr
   ÚchainÚLIBTIFF_COREr  r�   r�   rf  r?  rd  r^  r„   rÒ  ÚsortÚ_getencoderr~  r   ÚMAXBLOCKr  Úcleanupr6  r  Ú_saver«  Úsetattr)6rG  rÆ  r0  r¿  rq   r´  rË  ÚbitsÚextrar‡  r,  rè  ré  rô  rŒ  ry  rc  rs  rt  Ú
legacy_ifdÚsupplied_tagsrG  Úiccr  r�  Úinverted_imÚpxrÄ  rÃ  ÚlutÚcolormapÚcolorsr�   rÇ  rˆ  rÉ  Úim_strip_sizeÚrows_per_stripÚstrip_byte_countsÚstrips_per_imageÚdefault_valueÚ	blocklistrã  r9  ÚtypesÚattsr«   rd  r'  r   ÚencoderÚerrcoder  rì  s6                                                         rH   r
  r
  à  s¿  € ð"Ý6?ÀÄÔ6HÑ3ˆ�˜ ¨¨e¨eøÝð "ð "ð "Ø4 2¤7Ð4Ð4Ð4ˆÝ�c‰lŒl Ð!øøøøð"øøøð ”.€KØÔ$€Må
 vÐ
.Ñ
.Ô
.€CØ‡‚�zÑ"Ô"ð ØˆŒðØ! -Ô0ˆˆøÝð ð ð Ø”g—k’k -Ñ0Ô0ˆÝ�k¥3Ñ'Ô'ð 	àˆKøøð	øøøð
 ÐØˆˆØ	˜Ò	#Ð	#àˆˆØ	˜Ò	&Ð	&Ø*ˆåÐ3˜{¨eÒ3€Gð !"€CÕÑà”g˜a”j€C�
�OØ”w˜q”z€C�Ñð �[Ð Ð Ø˜:Ô&ˆˆØ	�;Ð	Ð	Ø˜6Ô"ˆÝ�d�EÑ"Ô"ð 	Ý”:‘<”<ˆDØ�IŠI�d‰OŒOˆOØˆDøàˆÝ
‡L‚LÐ$¥d¨4¡j¤jÑ1Ô1Ð1Ý�$Õ-Ñ.Ô.ð Ø�zŠz‰|Œ|ˆØð ð ˆÝ�d�EœJÑ'Ô'ð 	%¨Cµ8Ô3JÐ,JÐ,JØ—|’| CÑ(Ô(ˆC�‰HˆHà—x’x ‘}”}ˆC�‰Hð	Ø#œ|¨CÔ0ˆCŒK˜ÑÐøÝð 	ð 	ð 	ØˆDð	øøøð €JÝˆr�5ÑÔð $Ø”V—\’\‘^”^ˆ
à?�zÐ?¥W¨R°¸2Ñ%>Ô%>Ð?€MØ×ÒÕ-Ñ.Ô.°!Ò3Ð3½ÈÐ8UÐ8Uõ ˜mÐ+Ð+Ø�/Ð*Ð*Ô*­c°-ÅÔ2MÑ.NÔ.NÑNÐ*Ð*Ñ*Ø�,Ð'õ 	åð	ð #ð #ˆð �-ÐÐØ˜cÐ"øõ ˆr�8ÑÔð >õ ÝÝÝÝÝð
ð 	>ð 	>ˆCð �b”iÐÐØ�.Ò(Ð(¨R¬YÔ->¸sÔ-CÝ”MÝÔ&ðLð .ð .ð & cÐ*Ð*à!œy¨œ~�C˜‘HØ')¤yÔ'8¸Ô'=�C”K Ñ$øð �/Š/˜-¨¬¯ª°]Ñ)CÔ)CÑ
DÔ
D€CØ
ð Øˆ�J‰õ 
˜=Ð)Ý	�|Ð$Ý	�|Ð$Ý	�~Ð&Ý	�~Ð&Ý	Ð+Ð,Ý	�:ÐÝ	�KÐ Ý	�ÐÝ	�KÐ ðð )ð )‰	ˆˆTð �;ÐÐØ" 4Ô(ˆC�‰Høà
�/Š/˜%Ñ
 Ô
 €CØ
ð #Ø ˆ�OÑØ œFˆ�LÑØ œFˆ�LÑàˆt‚|€|Ø!ˆ�MÑÝˆt‰9Œ9˜Š>ˆ>Ý#& t¡9¤9ˆC•Ñ ØÐØ!ˆ�LÑØ�‚{€{Ø"ˆ�LÑå!¨Ð,Ð,Ø*/ˆÕ&Ñ'Ð'Ø	Œ�JÐ	Ð	 3Õ'AÔ#BÀaÒ#GÐ#GØŒ7�cŠ>ˆ>ØŸ'š'™)œ)ˆKØ×!Ò!Ñ#Ô#ˆBØˆ~Ý˜{Ô1Ñ2Ô2ð Að A�AÝ" ;Ô#4Ñ5Ô5ð Að A˜Ø(*¨1¨a¨4¬°Cª¨ 1 1¸S˜˜1˜a˜4™˜ðAà �øå” Ñ$Ô$ˆBà	„w�+ÐÐØŒe×Ò˜u gÑ.Ô.ˆØˆÝ�S‘”˜Q‘ˆÝ�q‘”ð 	-ð 	-ˆAØÐMÐM¨#¨f°q©j¸6ÀQÈÁUÑ;KÐ.KÔ*LÐMÑMÔMÑMˆHØ˜˜˜s V™|Ñ,Ñ,ˆHˆHØ ˆ�H‰à�zŒ?˜C¥Ô,€q€AÝ�‰YŒY˜1˜t Aœw™;¨™?¨qÑ0Ñ1€FÝ˜3ÐÐàð 	Ø'ŸOšO¨L½*ÑEÔEˆMØ"(¨A¢+ +˜Q˜Qµ3°}ÈÑ7NÐPQÑ3RÔ3RˆNà˜fÒ$Ð$Ý!$ ~¸Ñ'9¸aÑ&?À1Ñ%DÀaÑ!HÔ!H�øàˆNØ˜QÒÐØˆNØ*ˆ�LÑØ# qš[˜[˜˜¨f°s½<Ô7HÑ.HÐØ˜C¥Ô-Ñ-°Ñ1°c½,Ô6GÑGÐØ˜EÒ!Ð!Ý'/¤}ˆŒ•OÑ$Ø-Ð/Ð3CÀaÑ3GÑHØ�‰
Ð&Ð*:¸QÑ*>Ñ?Ñ?ðLñ €C�Ñõ ÝˆaÐ"Ð%5Ñ5Ð7HÑIÔIñô €C�Ñõ ,×/Ò/°¸QÑ?Ô?€C�Ñà	„w�'ÒÐå˜fÝÐ!=ð#
÷ Š%‰'Œ'ð	/ð 	/ÑˆC�ð �NŠN˜3 Ñ.Ô.Ð.Ð.å�J­µ^ÐD€IØñ n
Ø˜Ð#Ð#Ø! )Ô,ˆGÝ˜g¥sÑ+Ô+ð &¨w¸ª{¨{¸gÈºm¸mØ/�Ý  ‘o”oÐ%Ø˜fÒ$Ð$ØM�Ý  ‘o”oÐ%Ø&ˆC•Ñå�ŠÐ3Ñ4Ô4Ð4Ý�Š�[¥&¨¯ª©¬Ñ"5Ô"5Ñ6Ô6Ð6ØˆÝ�2�xÑ Ô ð 	ðØ—’˜‘
”
�
Ø—i’i‘k”k��øÝÔ*ð ð ð Ø�ðøøøð ˆð 	ÝÝÝÝÝð
ñ 	
ˆ	õ !.¨t°A¬wÐ7ˆõ $œ/¨#¯)ª)©+¬+°}×7JÒ7JÑ7LÔ7LÑMÔMð 	&ñ 	&‰JˆC�ð
 �(Ô/Ð/Ð/Ø�(Ô1Ð1Ð1Ý!)¤�E˜#‘J�JØ˜CœKÐ'Ð'Ø!$¤¨SÔ!1�E˜#‘J�JÝ ­­UµC½Ð'?Ñ@Ô@ð *Ý˜u¥eÑ,Ô,ð*åÐTÐTÈeÐTÑTÔTÑTÔTð*õ $œ?¨3Ñ/Ô/Ô4�DØð *Ø%)˜˜c™
Ø˜$ˆˆ 3¨iÐ#7Ð#7Ý˜e¥SÑ)Ô)ð &Ø %§¢¨W°iÑ @Ô @À5Ñ H�D˜‘I�IÝ ¥{Ñ3Ô3ð &Ý % e¡¤�D˜‘I‘Ià %�D˜‘Iùå˜4ÐÐ¥C¨­\Ô(:Ñ$;Ô$;¸qÒ$@Ð$@Ø!%¥lÔ!3°AÔ!6ˆD•ÑÝ�tÑÔÐå�ŠÐ*­F°4·:²:±<´<Ñ,@Ô,@ÑAÔAÐAð Œ7Ð0Ð0Ð0ØˆGõ
 �D—J’J‘L”LÑ!Ô!ˆØ�	Š	‰ŒˆØ�c˜8 T¨5Ð1ˆÝÔ# B¤G¨Y¸¸=ÑIÔIˆð	Ø×Ò˜RœU Q¨Ð$4¨B¬GÐ$4Ð$4Ñ5Ô5Ð5ðØ '§¢­yÔ/AÑ BÔ BÀ1À2À2Ô F‘�˜Øð #Ø—H’H˜T‘N”N�NØð Øðð ˜Š{ˆ{ØH wÐHÐHÐH�Ý˜c‘l”lÐ"ð ð �OŠOÑÔÐÐøˆG�OŠOÑÔÐÐøøøð ð 	ð 	ˆCØ�C��Ý�s”|Ñ$Ô$Ð$Ø—’˜"‘”ˆåŒØØÝŒ_˜U Q¨Ð$4¨B¬GÐ$4Ð$4°f¸wÈÐPQÐ>RÑSÔSÐTñ	
ô 	
ð 	
ð ˜[Ð(Ð(å�Ð&¨Ñ,Ô,Ð,Ð,Ð,ð )Ð(sW   ‚ œ
A¦AÁAÂB Â;CÃ
CÈ/IÉ
IÉIã)c9 ã9dä
dîBp2 ð2qc                  ó&  — e Zd Zg d¢Zh d£Zd;d<d
„Zd=d„Zd=d„Zd=d„Zd>d„Z	d?d„Z
d@d„Zej        fdAd„Zd=d„ZdBd„Zd=d„ZdCd„ZdDd!„ZdEd"„Zd@d#„Zd@d$„ZedFd(„¦   «         Z	 dGdHd,„ZdId-„ZdId.„ZdId/„ZdJd0„ZdId1„ZdId2„Zd=d3„Z d=d4„Z!dKd6„Z"	 dLdMd9„Z#d:S )NÚAppendingTiffWriter)r   r   r   r,   r0   r8   r   r   r,   r0   r8   r0   r8   r0   r,   r0   r8   >   é  é  é	  é   r)   r*   FÚfnr/  ri  rt   rs   r¬   c                ó`  — |  t          |¦  «        rN|| _        d| _        	 t          ||rdnd¦  «        | _        nA# t
          $ r t          |d¦  «        | _        Y n w xY wt          d|¦  «        | _        d| _        | j                             ¦   «         | _        |  	                    ¦   «          d S )NTzw+bzr+brÇ  F)
r   r  Úclose_fpÚopenr¹   rË  r   rÙ  Ú	beginningÚsetup)rŸ   r&  ri  s      rH   r±   zAppendingTiffWriter.__init__:  s¯   € ØÐÝ�2‰;Œ;ð 		"ØˆDŒIØ ˆDŒMð)Ý˜b¨3Ð"9 % %°EÑ:Ô:�”�øÝð )ð )ð )Ý˜b %™œ�”��ð)øøøõ ˜+ rÑ*Ô*ˆDŒFØ!ˆDŒMØœŸš™œˆŒØ�
Š
‰Œˆˆˆs   ¡; »AÁAc                ó,  — | j                              | j        t          j        ¦  «         d | _        d| _        | j                              d¦  «        x| _        }d|v | _	        |s	d| _
        d S d| _
        |t          vrd}t          |¦  «        ‚|                      |                     t          ¦  «        rdnd¦  «         | j	        r%| j                              dt          j        ¦  «         |                      ¦   «          |                      ¦   «          d S )	Nr   r0   ó   +TFzInvalid TIFF file headerr  r  )r¹   rÚ  r*  r€  rƒ  ÚwhereToWriteNewIFDOffsetÚoffsetOfNewPagerÊ  ÚIIMMr&  ÚisFirstry   ÚRuntimeErrorÚ	setEndianrw   r%  r‚  ÚskipIFDsÚgoToEnd)rŸ   Úiimmr,  s      rH   r+  zAppendingTiffWriter.setupI  sï   € àŒ�Š�D”N¥B¤KÑ0Ô0Ð0à48ˆÔ%Ø ˆÔàœ6Ÿ;š; q™>œ>Ð)ˆŒ	�DØ 4˜ˆŒØð 	àˆDŒLØˆFàˆŒØ•xÐÐØ,ˆCÝ˜sÑ#Ô#Ð#à�Š˜dŸošo­bÑ1Ô1Ð:�s�s°sÑ;Ô;Ð;àŒ=ð 	(ØŒF�KŠK˜�2œ;Ñ'Ô'Ð'Ø�Š‰ŒˆØ�Š‰ŒˆˆˆrJ   c                ó\  — | j         rd S | j                             | j        ¦  «         | j                             d¦  «        }|sd S || j        k    rd}t          |¦  «        ‚| j        r%| j                             dt          j	        ¦  «         |  
                    | j        rdnd¦  «        }|| j        z  }| j        €J ‚| j                             | j        ¦  «         |                      || j        rdnd¦  «         | j                             |¦  «         |                      ¦   «          d S )Nr0   z1IIMM of new page doesn't match IIMM of first pager8   )r1  r¹   rÚ  r/  rÊ  r0  r2  r&  r€  r‚  Ú_readr.  Ú_writeÚfixIFD)rŸ   r6  r,  Ú
ifd_offsets       rH   ÚfinalizezAppendingTiffWriter.finalizec  s  € ØŒ<ð 	ØˆFð 	Œ�Š�DÔ(Ñ)Ô)Ð)àŒv�{Š{˜1‰~Œ~ˆØð 	àˆFà�4”9ÒÐØEˆCÝ˜sÑ#Ô#Ð#àŒ=ð 	(ØŒF�KŠK˜�2œ;Ñ'Ô'Ð'Ø—Z’Z T¤]Ð 9  ¸Ñ:Ô:ˆ
Ø�dÔ*Ñ*ˆ
ØÔ,Ð8Ð8Ð8ØŒ�Š�DÔ1Ñ2Ô2Ð2Ø�Š�J T¤]Ð 9  ¸Ñ:Ô:Ð:ØŒ�Š�JÑÔÐØ�Š‰ŒˆˆˆrJ   c                óV   — |                       ¦   «          |                      ¦   «          d S rv   )r<  r+  r³   s    rH   ÚnewFramezAppendingTiffWriter.newFrame}  s    € à�Š‰ŒˆØ�
Š
‰ŒˆˆˆrJ   r"   c                ó   — | S rv   rD   r³   s    rH   Ú	__enter__zAppendingTiffWriter.__enter__‚  s   € ØˆrJ   r    r¿   c                ó@   — | j         r|                      ¦   «          d S d S rv   )r(  r„  )rŸ   r    s     rH   Ú__exit__zAppendingTiffWriter.__exit__…  s'   € ØŒ=ð 	Ø�JŠJ‰LŒLˆLˆLˆLð	ð 	rJ   r   c                óD   — | j                              ¦   «         | j        z
  S rv   )r¹   rÙ  r/  r³   s    rH   rÙ  zAppendingTiffWriter.tell‰  s   € ØŒv�{Š{‰}Œ}˜tÔ3Ñ3Ð3rJ   rì  Úwhencec                ó”   — |t           j        k    r
|| j        z  }| j                             ||¦  «         |                      ¦   «         S )zé
        :param offset: Distance to seek.
        :param whence: Whether the distance is relative to the start,
                       end or current position.
        :returns: The resulting position, relative to the start.
        )r€  rƒ  r/  r¹   rÚ  rÙ  )rŸ   rì  rD  s      rH   rÚ  zAppendingTiffWriter.seekŒ  sB   € ð •R”[Ò Ð Ø�dÔ*Ñ*ˆFàŒ�Š�F˜FÑ#Ô#Ð#Ø�yŠy‰{Œ{ÐrJ   c                ó<  — | j                              dt          j        ¦  «         | j                              ¦   «         }d|dz  z
  }d|cxk     rdk     r*n n'| j                              t          |¦  «        ¦  «         | j                              ¦   «         | _        d S )Nr   rP   )r¹   rÚ  r€  rÜ  rÙ  r  rr   r/  )rŸ   rŠ  Ú	pad_bytess      rH   r5  zAppendingTiffWriter.goToEnd™  sŽ   € ØŒ�Š�A•r”{Ñ#Ô#Ð#ØŒf�kŠk‰mŒmˆð ˜˜r™‘Mˆ	ØˆyÐÐÒÐ˜2ÒÐÐÐÐØŒF�LŠL�˜yÑ)Ô)Ñ*Ô*Ð*Ø#œvŸ{š{™}œ}ˆÔÐÐrJ   Úendianr�   c                ó†   — || _         | j         › d�| _        | j         › d�| _        | j         › d�| j        rdndz   | _        d S )NrM   r†  rð  r  )rH  ÚlongFmtÚshortFmtr&  Ú	tagFormat)rŸ   rH  s     rH   r3  zAppendingTiffWriter.setEndian£  sS   € ØˆŒØœ+Ð(Ð(Ð(ˆŒØœ;Ð)Ð)Ð)ˆŒØ œKÐ+Ð+Ð+°d´mÐ/L¨s¨sÈÑMˆŒˆˆrJ   c                óx  — 	 |                       | j        rdnd¦  «        }|dk    r,| j                             ¦   «         | j        rdndz
  | _        d S | j                             |¦  «         |                       | j        rdnd¦  «        }| j                             || j        rdndz  t          j        ¦  «         Œº)NTr8   r0   r   r,   rÐ  rN   )r8  r&  r¹   rÙ  r.  rÚ  r€  r‚  )rŸ   r;  Únum_tagss      rH   r4  zAppendingTiffWriter.skipIFDs©  s·   € ð
	OØŸš¨¬Ð$= A A¸AÑ>Ô>ˆJØ˜QŠˆØ04´·²±´ØœÐ-�A�A¨Añ1�Ô-ð �àŒF�KŠK˜
Ñ#Ô#Ð#Ø—z’z t¤}Ð"; ! !¸!Ñ<Ô<ˆHØŒF�KŠK˜¨$¬-Ð$? B B¸RÑ@Å"Ä+ÑNÔNÐNð
	OrJ   r  r#   c               ó6   — | j                              |¦  «        S rv   )r¹   r  r“  s     rH   r  zAppendingTiffWriter.write¶  s   € ØŒv�|Š|˜DÑ!Ô!Ð!rJ   Ú
field_sizec                óZ   — 	 ddddœ|         S # t           $ r d}t          |¦  «        ‚w xY w)Nr†  rM   r  )r,   r0   r8   zoffset is not supported)rà  r2  )rŸ   rP  r,  s      rH   Ú_fmtzAppendingTiffWriter._fmt¹  sJ   € ð	$Ø˜s sÐ+Ð+¨JÔ7Ð7øÝð 	$ð 	$ð 	$Ø+ˆCÝ˜sÑ#Ô#Ð#ð	$øøøs   ‚ Ž*c                óš   — t          j        | j        |                      |¦  «        z   | j                             |¦  «        ¦  «        \  }|S rv   )r   rƒ  rH  rR  r¹   rÊ  )rŸ   rP  r«   s      rH   r8  zAppendingTiffWriter._readÀ  sB   € Ý”=ØŒK˜$Ÿ)š) JÑ/Ô/Ñ/°´·²¸ZÑ1HÔ1Hñ
ô 
‰ˆð ˆrJ   c                ó,   — |                       d¦  «        S ©Nr,   ©r8  r³   s    rH   Ú	readShortzAppendingTiffWriter.readShortÆ  ó   € Ø�zŠz˜!‰}Œ}ÐrJ   c                ó,   — |                       d¦  «        S ©Nr0   rV  r³   s    rH   ÚreadLongzAppendingTiffWriter.readLongÉ  rX  rJ   Úbytes_writtenr  rÑ  c                óH   — | �| |k    rd| › d|› �}t          |¦  «        ‚d S d S )Nzwrote only z bytes but wanted )r2  )r\  rÑ  r,  s      rH   Ú_verify_bytes_writtenz)AppendingTiffWriter._verify_bytes_writtenÌ  sC   € àÐ$¨¸(Ò)BÐ)BØK ÐKÐKÀÐKÐKˆCÝ˜sÑ#Ô#Ð#ð %Ð$Ð)BÐ)BrJ   r   r«   Únew_field_sizec                ó  — | j                              | t          j        ¦  «         |s|}| j                              t          j        | j        |                      |¦  «        z   |¦  «        ¦  «        }|  	                    ||¦  «         d S rv   )
r¹   rÚ  r€  r‚  r  r   r…  rH  rR  r^  )rŸ   r«   rP  r_  r\  s        rH   Ú_rewriteLastz AppendingTiffWriter._rewriteLastÒ  s€   € ð 	Œ�Š�Z�K¥¤Ñ-Ô-Ð-Øð 	(Ø'ˆNØœŸšÝŒK˜œ d§i¢i°Ñ&?Ô&?Ñ?ÀÑGÔGñ
ô 
ˆð 	×"Ò" =°.ÑAÔAÐAÐAÐArJ   c                ó4   — |                       |dd¦  «         d S )Nr,   r0   ©ra  rœ  s     rH   ÚrewriteLastShortToLongz*AppendingTiffWriter.rewriteLastShortToLongÝ  s    € Ø×Ò˜%  AÑ&Ô&Ð&Ð&Ð&rJ   c                ó.   — |                       |d¦  «        S rU  rc  rœ  s     rH   ÚrewriteLastShortz$AppendingTiffWriter.rewriteLastShortà  ó   € Ø× Ò  ¨Ñ*Ô*Ð*rJ   c                ó.   — |                       |d¦  «        S rZ  rc  rœ  s     rH   ÚrewriteLastLongz#AppendingTiffWriter.rewriteLastLongã  rg  rJ   c                óÂ   — | j                              t          j        | j        |                      |¦  «        z   |¦  «        ¦  «        }|                      ||¦  «         d S rv   )r¹   r  r   r…  rH  rR  r^  )rŸ   r«   rP  r\  s       rH   r9  zAppendingTiffWriter._writeæ  sW   € ØœŸšÝŒK˜œ d§i¢i°
Ñ&;Ô&;Ñ;¸UÑCÔCñ
ô 
ˆð 	×"Ò" =°*Ñ=Ô=Ð=Ð=Ð=rJ   c                ó2   — |                       |d¦  «         d S rU  ©r9  rœ  s     rH   Ú
writeShortzAppendingTiffWriter.writeShortì  ó   € Ø�Š�E˜1ÑÔÐÐÐrJ   c                ó2   — |                       |d¦  «         d S rZ  rl  rœ  s     rH   Ú	writeLongzAppendingTiffWriter.writeLongï  rn  rJ   c                ór   — |                       ¦   «          | j        r| j                             ¦   «          d S d S rv   )r<  r(  r¹   r„  r³   s    rH   r„  zAppendingTiffWriter.closeò  s6   € Ø�Š‰ŒˆØŒ=ð 	ØŒF�LŠL‰NŒNˆNˆNˆNð	ð 	rJ   c           
     óÄ  — |                       | j        rdnd¦  «        }t          |¦  «        D �]°}t          j        | j        | j                             | j        rdnd¦  «        ¦  «        \  }}}| j        |         }||z  }| j        rdnd}||k    }	|	s3|                       |¦  «        | j	        z   }
|  
                    |
|¦  «         || j        v ræ| j                             ¦   «         }t                               dt          j        |¦  «        j        |t%          j        |d¦  «        |||¦  «         |	r5|                      ||¦  «         | j                             ||z   ¦  «         �Œ=| j                             |
¦  «         |                      ||¦  «         | j                             |¦  «         �Œ‰|	r%| j                             |t,          j        ¦  «         �Œ²d S )Nr8   r,   rN   r0   z;fixIFD: %s (%d) - type: %s (%d) - type size: %d - count: %drÒ  )r8  r&  rÞ  r   rƒ  rL  r¹   rÊ  Ú
fieldSizesr/  ra  ÚTagsrÙ  rá  râ  r   r?  r  r   rß  Ú_fixOffsetsrÚ  r€  r‚  )rŸ   rN  r�   rG  Ú
field_typerç  rP  ræ  rý  Úis_localrì  Úcur_poss               rH   r:  zAppendingTiffWriter.fixIFD÷  sÝ  € Ø—:’: 4¤=Ð7˜a˜a°aÑ8Ô8ˆå�x‘”ð $	3ñ $	3ˆAÝ%+¤]Ø” ¤§¢°$´-Ð,F¨B¨BÀQÑ GÔ Gñ&ô &Ñ"ˆC�˜Uð œ¨Ô4ˆJØ# eÑ+ˆJØ œMÐ0�q�q¨qˆHØ! XÒ-ˆHØð 4ØŸš HÑ-Ô-°Ô0DÑD�Ø×!Ò! &¨(Ñ3Ô3Ð3à�d”iÐÐØœ&Ÿ+š+™-œ-�å—’ØQÝ”O CÑ(Ô(Ô-ØÝ”I˜j¨)Ñ4Ô4ØØØñô ð ð ð )Ø×$Ò$ U¨JÑ7Ô7Ð7Ø”F—K’K ¨(Ñ 2Ñ3Ô3Ð3Ñ3à”F—K’K Ñ'Ô'Ð'Ø×$Ò$ U¨JÑ7Ô7Ð7Ø”F—K’K Ñ(Ô(Ð(Ñ(àð 3à”—’˜H¥b¤kÑ2Ô2Ð2ùðI$	3ð $	3rJ   rç  c                ó  — t          |¦  «        D ]÷}|                      |¦  «        }|| j        z  }d}| j        r|dv r	|dk    rd}n|dk    r|dk    rd}|rš|dk    rd	}t	          |¦  «        ‚|                      |||¦  «         | dz
  dz
  }| j                             |t          j	        ¦  «         |  
                    |¦  «         | j                             d|z
  t          j	        ¦  «         Œá|                      ||¦  «         Œød S )
Nr   )r,   r0   l        r8   r,   r&   r0   r   znot implemented)rÞ  r8  r/  r&  r2  ra  r¹   rÚ  r€  r‚  rm  )rŸ   rç  rP  r�   rì  r_  r,  Úrewinds           rH   ru  zAppendingTiffWriter._fixOffsets 	  s.  € Ý�u‘”ð 	6ð 	6ˆAØ—Z’Z 
Ñ+Ô+ˆFØ�dÔ*Ñ*ˆFàˆNØŒ}ð # ¨vÐ!5Ð!5¸&ÀEº/¸/à!"��Ø˜q’� V¨u¢_ _à!"�Øð 6Ø˜A’:�:Ø+�CÝ& sÑ+Ô+Ð+ð ×!Ò! &¨*°nÑEÔEÐEà(˜¨1Ñ,¨qÑ0�Ø”—’˜F¥B¤KÑ0Ô0Ð0Ø—’ Ñ/Ô/Ð/Ø”—’˜A ™J­¬Ñ4Ô4Ð4Ð4à×!Ò! &¨*Ñ5Ô5Ð5Ð5ð3	6ð 	6rJ   ÚisShortÚisLongc                óF   — |rd}n|rd}nd}|                       ||¦  «        S )Nr,   r0   r   )ru  )rŸ   rç  r{  r|  rP  s        rH   Ú
fixOffsetszAppendingTiffWriter.fixOffsets<	  s=   € ð ð 	ØˆJˆJØð 	ØˆJˆJàˆJØ×Ò  zÑ2Ô2Ð2rJ   N)F)r&  r/  ri  rt   rs   r¬   r  )rs   r"   )r    r¿   rs   r¬   rä   )rì  r   rD  r   rs   r   )rH  r�   rs   r¬   )r  r#   rs   r   )rP  r   rs   r�   )rP  r   rs   r   )r\  r  rÑ  r   rs   r¬   rW   )r«   r   rP  r   r_  r   rs   r¬   )r«   r   rs   r¬   )r«   r   rP  r   rs   r¬   )rç  r   rP  r   rs   r¬   )FF)rç  r   r{  rt   r|  rt   rs   r¬   )$ræ   rç   rè   rs  rt  r±   r+  r<  r>  r@  rB  rÙ  rÛ  rƒ  rÚ  r5  r3  r4  r  rR  r8  rW  r[  Ústaticmethodr^  ra  rd  rf  ri  r9  rm  rp  r„  r:  ru  r~  rD   rJ   rH   r!  r!    s©  € € € € € ðð ð €Jð(ð ð €Dðð ð ð ð ðð ð ð ð4ð ð ð ð4ð ð ð ð
ð ð ð ðð ð ð ð4ð 4ð 4ð 4ð /1¬kð ð ð ð ð ð-ð -ð -ð -ðNð Nð Nð NðOð Oð Oð Oð"ð "ð "ð "ð$ð $ð $ð $ðð ð ð ðð ð ð ðð ð ð ð ð$ð $ð $ñ „\ð$ð BCð	Bð 	Bð 	Bð 	Bð 	Bð'ð 'ð 'ð 'ð+ð +ð +ð +ð+ð +ð +ð +ð>ð >ð >ð >ðð ð ð ðð ð ð ðð ð ð ð
'3ð '3ð '3ð '3ðR6ð 6ð 6ð 6ð: AFð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3rJ   r!  c                óÎ  — t          | j                             dg ¦  «        ¦  «        }t          | d¦  «        s|st	          | ||¦  «        S |                      ¦   «         }	 t          |¦  «        5 }| g|z   D ]¦}|                     | ¦  «        }t          |d¦  «        sd|_        t          |dd¦  «        }t          |¦  «        D ]P}	|                     |	¦  «         |                     ¦   «          t	          |||¦  «         |                     ¦   «          ŒQ||_        Œ§	 d d d ¦  «         n# 1 swxY w Y   |                      |¦  «         d S # |                      |¦  «         w xY w)NÚappend_imagesrB  ré  rD   r   )r  rè  rß  rP  r
  rÙ  r!  Ú_attach_default_encoderinforé  r¤   rÞ  rÚ  rí  r>  )
rG  rÆ  r0  r�  Úcur_idxÚtfÚimsrè  Únfrrí   s
             rH   Ú	_save_allr‡  H	  s¤  € Ý˜œ×+Ò+¨O¸RÑ@Ô@ÑAÔA€MÝ�2�zÑ"Ô"ð '¨=ð 'Ý�R˜˜XÑ&Ô&Ð&à�gŠg‰iŒi€GðÝ  Ñ$Ô$ð 	.¨Ø�t˜mÑ+ð .ð .�Ø!×=Ò=¸bÑAÔA�Ý˜s OÑ4Ô4ð +Ø(*�CÔ%Ý˜c :¨qÑ1Ô1�å  ™:œ:ð "ð "�CØ—H’H˜S‘M”M�MØ—H’H‘J”J�JÝ˜#˜r 8Ñ,Ô,Ð,Ø—K’K‘M”M�M�MØ"-�”�ð.ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	�Š�ÑÔÐÐÐøˆ�Š�ÑÔÐÐøøøs1   Á!E Á0B.D+ÄE Ä+D/Ä/E Ä2D/Ä3E ÅE$z.tifz.tiffz
image/tiff)rq   rr   rs   rt   )r|   r}   r~   r   rs   r€   )r|   r„   r~   r   r‰   r   rs   r€   )rœ   r�   rs   r   )rí   r   rî   r   rs   rï   )rí   r   rs   rú   )rÿ   r   rs   r¬   )r'  rÎ  rs   r¬   )rG  rÓ  rÆ  rÇ  r0  rÔ  rs   r¬   )ŠÚ
__future__r   Ú__lazy_modules__rÛ  r
   Úloggingr   r€  r   r   Úcollections.abcr   r   r	   r   Únumbersr   r   Útypingr   r   r   Ú r   r   r   r   r   r   Ú_binaryr   rY  r   r[  Ú_utilr   r   r   r°   r    r!   r"   Ú_typingr#   r$   r%   Ú	getLoggerræ   rá  rª  rê  rù  r%  r#  r  rœ  r�  r¡  r–  rr  rš  rï  r÷  r£  r­  rú  r§  r¨  r˜  r©  r  rð  rñ  rò  Ú	PREDICTORr²  r®  r¯  r¬  rþ  r  r¢  r   Ú
JPEGTABLESr›  rü  ró  rí  rî  r±  rì  rQ  rÿ  ÚIMAGEJ_META_DATA_BYTE_COUNTSÚIMAGEJ_META_DATAr•  rA  rû  r¥  r”   r¤  ry   r{   rˆ   r—   r™   r	  r›   r§   r„   rr   rt   rò   rù   rþ   r  r   Ú
_IFDv2Baserì   rí   r  r÷   r  r  ÚImageFileDirectoryr-  rç  rÒ  r
  ÚBytesIOr!  r‡  Úregister_openrË  Úregister_saveÚregister_save_allÚregister_extensionsÚregister_mimerD   rJ   rH   ú<module>rŸ     s…  ððR #Ð "Ð "Ð "Ð "Ð "Ð "ðð ð Ð ð 
€	€	€	Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð à€Øð >Ø(Ð(Ð(Ð(Ð(Ð(Ø%Ð%Ð%Ð%Ð%Ð%Ð%Ð%à=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=à	ˆÔ	˜8Ñ	$Ô	$€ð €Ø€Ø€
à
€Ø
€ð €Ø€
Ø€Ø€Ø€Ø Ð Ø€	ØÐ Ø€Ø€Ø€Ø€Ø€Ø€ØÐ Ø€ØÐ Ø€Ø€	Ø	€Ø€	Ø€Ø€	Ø€
Ø€Ø€Ø	€Ø€Ø€Ø€
ØÐ ØÐ Ø€	Ø€Ø€Ø€
Ø
€Ø	€Ø€ð  %Ð ØÐ ðà€uðð €|ðð €xð	ð
 €xðð €zðð €{ðð €vðð Ððð 
ˆ=ðð 
ˆ:ðð 
Ððð 
ˆ>ðð 
ˆ=ðð 
ˆ?ðð  
ˆ6ð!ð" 
ˆ6ð#ð$ 
ˆ6ð%Ð ð* CÐBÐ)9×)?Ò)?Ñ)AÔ)AÐBÑBÔBÐ ðð ˆˆD�!�T˜2Ð ðð ˆˆD�!�T˜2Ð ð	ð
 ˆˆD�!�T˜2Ð ðð ˆˆD�!�T˜2Ð ðð ˆˆD�!�T˜2Ð 
ðð ˆˆD�!�T˜2Ð 
ðð ˆˆD�!�T˜2Ð ðð ˆˆD�!�T˜2Ð ðð ˆˆD�!�T˜2Ð ðð ˆˆD�!�T˜2Ð ðð ˆˆD�!�T˜2Ð ðð ˆˆD�!�T˜2Ð ðð ˆˆD�!�T˜2Ð ðð  ˆˆD�!�T˜2Ð ð!ð" ˆˆD�!�T˜2Ð ð#ð$ ˆˆD�!�T˜2Ð ð%ð& ˆˆD�!�T˜2Ð ð'ð ð( ˆˆD�!�T˜2Ð ð)ð* ˆˆD�!�T˜2Ð ð+ð, ˆˆD�!�T˜2Ð ð-ð. ˆˆD�!�T˜2Ð ð/ð0 ˆˆD�!�T˜2Ð ð1ð2 ˆˆD�!�T˜2Ð ð3ð4 ˆˆD�!�T˜2Ð ð5ð6 ˆˆD�!�T˜2Ð ð7ð8 ˆˆD�!�T˜2Ð ð9ð: ˆˆD�!�T˜2Ð ð;ð< ˆˆD�!�T˜2Ð ð=ð> ˆˆD�!�T˜2Ð 
ð?ð@ ˆˆD�!�T˜2Ð 
ðAðB ˆˆD�!�T˜2Ð 
ðCðD ˆˆD�!�T˜2Ð 
ðEðF ˆˆD�!�T˜2Ð ðGðH ˆˆD�!�T˜2Ð ðIð ð ðJ ˆˆD�!�U˜BÐÐ!1ðKðL ˆˆD�!�U˜BÐÐ!1ðMðN ˆˆD�!�U˜BÐÐ!1ðOðP ˆˆD�!�U˜BÐÐ!3ðQðR ˆˆD�!�U˜BÐÐ!2ðSðT ˆˆD�!�U˜BÐ ðUðV ˆˆD�!�U˜BÐ ðWðX ˆˆD�!�U˜BÐ ðYðZ ˆˆD�!�U˜BÐ ð[ð\ ˆˆD�!�U˜BÐ ð]ð^ ˆˆD�!�U˜BÐ ð_ð` ˆˆD�!�U˜BÐ ðaðb ˆˆD�!�U˜BÐ ðcðd ˆˆD�!�U˜BÐ ðeðf ˆˆD�!�V˜TÐ" Kðgðh ˆˆD�!�V˜TÐ" Kðiðj ˆˆD�!�V˜TÐ" Lðkð ð ðl ˆˆD�!�V˜TÐ" Lðmðn ˆˆD�!�V˜TÐ" Lðoðp ˆˆD�!�V˜TÐ" Lðqðr ˆˆD�!�Y Ð# ^ðsðt ˆˆD�!�Y Ð# ^ðuðv ˆˆD�!�Y Ð#Ð%5ðwðx ˆˆD�!�Y Ð#Ð%5ðyðz ˆˆD�!�\ 2Ð&Ð(8ð{ð| ˆˆD�!�\ 2Ð&Ð(8ð}ð~ ˆˆD�!�\ 4Ð(¨/ðð@ ˆˆD�!�\ 4Ð(¨/ðAðB ˆˆD�!�_ fÐ-Ð/?ðCðD ˆˆD�!�_ fÐ-Ð/?ðEðF ˆˆD�!Ð'¨Ð3Ð5FðGðH ˆˆD�!Ð'¨Ð3Ð5FðIðJ ˆˆD�!�\ 4Ð(Ð*:ðKðL ˆˆD�!�\ 4Ð(Ð*:ðMð ð ðN ˆˆD�!�_ fÐ-Ð/@ðOðP ˆˆD�!�_ fÐ-Ð/@ðQðR ˆˆD�!Ð'¨Ð3Ð5GðSðT ˆˆD�!Ð'¨Ð3Ð5GðUðV ˆˆD�!�\ 4Ð(Ð*:ðWðX ˆˆD�!�\ 4Ð(Ð*:ðYðZ ˆˆD�!�_ fÐ-Ð/@ð[ð\ ˆˆD�!�_ fÐ-Ð/@ð]ð^ ˆˆD�!Ð'¨Ð3Ð5Gð_ð` ˆˆD�!Ð'¨Ð3Ð5Gðaðb ˆˆD�!�\ 6Ð*Ð,<ðcðd ˆˆD�!�\ 6Ð*Ð,<ðeðf ˆˆD�!�\ 2Ð&Ð(:ðgðh ˆˆD�!�\ 2Ð&Ð(:ðiðj ˆˆD�!Ð% rÐ*Ð,@ðkðl ˆˆD�!Ð% rÐ*Ð,@ðmðn ˆˆD�!Ð% tÐ,Ð.Aðoð ð ðp ˆˆD�!Ð% tÐ,Ð.Aðqðr ˆˆD�!Ð% tÐ,Ð.Bðsðt ˆˆD�!Ð% tÐ,Ð.Bðuðv ˆˆD�!Ð% tÐ,Ð.Bðwðx ˆˆD�!Ð% tÐ,Ð.Bðyðz ˆˆD�!�T˜2Ð ð{ð| ˆˆD�!�T˜2Ð ð}ð~ ˆˆD�!�T˜2Ð ðð@ ˆˆD�!�T˜2Ð ðAðB ˆˆD�!�T˜2Ð ðCðD ˆˆD�!�T˜2Ð ðEðF ˆˆD�!�T˜2Ð ðGðH ˆˆD�!�T˜2Ð ðIðJ ˆˆD�!�T˜2Ð ðKðL ˆˆD�!�T˜2Ð ðMðN ˆˆD�!�T˜2Ð ðOðP ˆˆD�!�T˜2Ð ðQð ð ðR ˆˆD�!�T˜2Ð 
ðSðT ˆˆD�!�T˜2Ð 
ðUðV ˆˆD�!�V˜TÐ" KðWðX ˆˆD�!�V˜TÐ" KðYðZ ˆˆD�!�V˜TÐ" Lð[ð\ ˆˆD�!�V˜TÐ" Lð]ð^ ˆˆD�!�T˜2Ð ð_ð` ˆˆD�!�T˜2Ð ðaðb ˆˆD�!�\ 2Ð&Ð(8ðcðd ˆˆD�!�\ 2Ð&Ð(8ðeðf ˆˆD�!�_ dÐ+Ð->ðgðh ˆˆD�!�_ dÐ+Ð->ðiðj ˆˆD�!Ð'¨Ð0Ð2Dðkðl ˆˆD�!Ð'¨Ð0Ð2Dðmðn ˆˆD�!Ð% rÐ*Ð,@ðoðp ˆˆD�!Ð% rÐ*Ð,@ðqðr ˆˆD�!�T˜2Ð 
ðsð ðt ˆˆD�!�T˜2Ð 
ØˆˆD�!�Y Ð#Ð%7ØˆˆD�!�Y Ð#Ð%7ØˆˆD�!�Y Ð# ^ØˆˆD�!�Y Ð# ^ð}ð €	ðB �cÐAÐA°yÐAÑAÔAÑAÔAÐ ðð ð €ñ.ð .ð .ð .ñ%ð %ð %ð %ñð ð ð ð& 68€Ð 7Ð 7Ð 7Ñ 7Ø13€Ð 3Ð 3Ð 3Ñ 3ñð ð ð ðF#ð F#ð F#ð F#ð F#�(ñ F#ô F#ð F#ðR Ð/°¸Ð=¸sÐBÔC€ñ	ð 	ð 	ð 	ñð ð ð ñð ð ð ð$ ð  Ø  S Ô)€J€Jà€Jðg$ð g$ð g$ð g$ð g$˜Jñ g$ô g$ð g$ðT (6Ð Ô $Ø(7Ð Ô %Ø�”‘”ð Jð J�I€CˆØ�<Š<˜˜SÑ!Ô!€DØ€GÐ! >¨4 > >°>À#Ô3FÀqÔ3IÑJÔJÐJØ€GÐ! ?¨D ? ?°OÀCÔ4HÑIÔIÐIÐIØ�O S¨$ðXð Xð Xð Xð XÐ1ñ Xô Xð Xðx +Ð ðM ð M ð M ð M ð M �IÔ'ñ M ô M ð M ðnð ˆ#ˆr�1�a˜˜tÐ	$ðð ˆ#ˆr�1�a˜˜tÐ	$ð	ð
 	ˆ4��Q˜˜6 1Ð
%ðð ˆ#ˆr�1�a˜˜tÐ	$ðð 	ˆ4��Q˜˜6 1Ð
%ðð ˆ'�2�q˜!˜U DÐ	)ðð ˆV�R˜˜A˜u dÐ+ðð ˆg�r˜1˜a ¨Ð-ðð ˆ'�2�q˜!˜U DÐ	)ðð 
ˆE�2�q˜!˜Y¨Ð-ðð ˆV�R˜˜A˜|¨QÐ/ðð ˆV�R˜˜A˜|¨QÐ/ðð ˆV�R˜˜A˜|¨TÐ2ðð  ˆg�r˜1˜a ¨DÐ1ð!ð" 
ˆE�2�q˜!˜Y¨Ð-ð#ð$ ˆg�r˜1˜a ¨Ð-ð%€	ñ,"ð "ð "ð "ñy-ñ y-ð y-ð y-ðx	i3ð i3ñ i3ð i3ñ i3˜"œ*ñ i3ô i3ð i3ñX	ñ ð ð ð8 €Ô �MÔ(¨-¸Ñ AÔ AÐ AØ €Ô �MÔ(¨%Ñ 0Ô 0Ð 0Ø €Ô ˜Ô,¨iÑ 8Ô 8Ð 8à €Ô ˜-Ô.±¹Ð0AÑ BÔ BÐ Bà €Ô �MÔ(©,Ñ 7Ô 7Ð 7Ð 7Ð 7rJ   