Ë
    ™2Úi”+ ã            #       ó–  — 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 d dl	m
Z
 d dl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 dd
lmZ  ej8                  e«      ZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/d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/ZDd0ZEd1ZFd2ZGd3ZHd4ZId5ZJd6ZKd7ZLi dd8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“dKdL“dMdN“dOdP“dQdR“dSdT“dUdV“dWdX“ZMeMj�                  «       D � �ci c]  \  } }|| “Œ
 c}} ZOi e#d dYddYdZfd[“e$d dYddYdZfd[“e#d dYd9dYdZfd\“e$d dYd9dYdZfd\“e#ddYddYdZfd]“e$ddYddYdZfd]“e#ddYd9dYdZfd^“e$ddYd9dYdZfd^“e#d dYdd_dZfd`“e$d dYdd_dZfd`“e#d dYd9d_dZfda“e$d dYd9d_dZfda“e#ddYdd_dZfdb“e$ddYdd_dZfdb“e#ddYd9d_dZfdc“e$ddYd9d_dZfdc“e#d dYddddZfde“i e$d dYddddZfde“e#d dYd9dddZfdf“e$d dYd9dddZfdf“e#ddYddddZfdg“e$ddYddddZfdg“e#ddYd9dddZfdh“e$ddYd9dddZfdh“e#d dYddidZfdj“e$d dYddidZfdj“e#d dYd9didZfdk“e$d dYd9didZfdk“e#ddYddidZfdl“e$ddYddidZfdl“e#dd_ddidZfdl“e$dd_ddidZfdl“e#ddYd9didZfdm“e$ddYd9didZfdm“¥i e#ddYddndZfdo“e#d dYddpdZfdq“e#ddYddpdZfdq“e$ddYddpdZfdr“e#ddYd9dpdZfds“e#dd_ddpdZfdt“e$dd_ddpdZfdu“e#d dvddwdZfdx“e$d dvddwdZfdy“e#ddYddwdZfdz“e#dd_ddwdZfd{“e$dd_ddwdZfd|“e#ddvddwdZfdx“e$ddvddwdZfdy“e#ddYdd}d_fd~“e$ddYdd}d_fd~“e#d9dYdddZfd€“¥i e$d9dYdddZfd€“e#d9dYd9ddZfd�“e$d9dYd9ddZfd�“e#d9dYdd‚dZfdƒ“e$d9dYdd‚dZfdƒ“e#d9dYdd‚d„fd…“e$d9dYdd‚d„fd…“e#d9dYdd†d‡fdˆ“e$d9dYdd†d‡fdˆ“e#d9dYdd‰dŠfd‹“e$d9dYdd‰dŠfd‹“e#d9dYdd‚dYfdŒ“e$d9dYdd‚dYfdŒ“e#d9dYdd†d�fdŽ“e$d9dYdd†d�fdŽ“e#d9dYdd‰d�fd�“e$d9dYdd‰d�fd�“¥i e#d9dYdd‚d_fdƒ“e$d9dYdd‚d_fdƒ“e#d9dYdd†d‘fd’“e$d9dYdd†d‘fd’“e#d9dYdd‰d“fd”“e$d9dYdd‰d“fd”“e#d9dYdd‚d•fdƒ“e$d9dYdd‚d•fdƒ“e#d9dYdd–dZfd—“e$d9dYdd–dZfd˜“e#d9dYdd™dZfdš“e$d9dYdd™dZfd›“e#d9dYdd™d„fdœ“e$d9dYdd™d„fd�“e#d9dYdd™dYfdž“e$d9dYdd™dYfdŸ“e#d9dYdd™d_fdš“¥i e$d9dYdd™d_fd›“e#d;dYddYdZfd “e$d;dYddYdZfd “e#d;dYd9dYdZfd¡“e$d;dYd9dYdZfd¡“e#d;dYdd_dZfd¢“e$d;dYdd_dZfd¢“e#d;dYd9d_dZfd£“e$d;dYd9d_dZfd£“e#d;dYddddZfd¤“e$d;dYddddZfd¤“e#d;dYd9dddZfd¥“e$d;dYd9dddZfd¥“e#d;dYddidZfd¦“e$d;dYddidZfd¦“e#d;dYdd}d_fd§“e$d;dYdd}d_fd§“¥e#d;dYd9didZfd¨e$d;dYd9didZfd¨e#d?dYdd‚dZfd©e$d?dYdd‚dZfd©e#d?dYdd†d„fdªe$d?dYdd†d„fdªe#d?dYdd‰d‡fd«e$d?dYdd‰d‡fd«e#d?dYdd™dZfd¬e#dAdYddidZfdle$dAdYddidZfdle#dAdYdddZfd­e$dAdYdddZfd­e#dEdYdddZfd®e$dEdYdddZfd®i¥ZP eQd¯„ ePD «       «      ZRg d°¢ZSd±„ ZTd²„ ZUd³„ ZVi ZWi ZX G d´„ dµe«      ZY G d¶„ d·e«      ZZeWeZ_W        eXeZ_X         ejœ                  «       D ]:  \  Z[Z\e\j»                  d¸d¹«      Z\ e^eZdºe\z   eWe[   d   «        e^eZd»e\z   eXe[   «       Œ< [W[X[[[\ G d¼„ d½eZ«      Z_e_Z` G d¾„ d¿ej"                  «      Zai dÀdÀe#dddYdf“dÁdÁe#dddidf“dÂdÂe#ddd}d9f“dÃdÃe#d;ddidf“dÄdÄe#d;dd}d9f“dÅdÆe#dd9dwdf“dÇdÇe#dddpdf“dÈdÈe#dd9dpdf“dÉdÊe#dd;dwdf“dËdËe#d9dddf“dÌdÌe#d9dd‚d f“dÍdÍe#d9dd‚d9f“dÎdÎe#d?dd‚df“dÏdÏe#dAdddf“dÐdÐe#dEdddf“dÑdÑe$dd9dwdf“dÒdÒe$dddpdf“dÓe$dd9dpdfdÔe$dd;dwdfdÕœ¥ZbdÖ„ Zc G d×„ dØ«      ZddÙ„ Ze ejÌ                  eajÎ                  eaeT«        ejÐ                  eajÎ                  ec«        ejÒ                  eajÎ                  ee«        ejÔ                  eajÎ                  dÚdÛg«        ejÖ                  eajÎ                  dÜ«       yc c}} w )Ýé    N)ÚMutableMapping)ÚFraction)ÚNumberÚRationalé   )ÚExifTagsÚImageÚ	ImageFileÚImageOpsÚImagePaletteÚTiffTags)Úi16be)Úi32be)Úo8©ÚTYPESFTé   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Ã  Úwebp©r   © )Ú1z1;I)r1   z1;IR)r1   r1   )r1   z1;R)r   )ÚLzL;2I)r2   zL;2IR)r2   zL;2)r2   zL;2R)r   )r2   zL;4I)r2   zL;4IR)r2   zL;4)r2   zL;4R)r$   )r2   zL;I)r2   zL;IR)r2   r2   )r2   zL;R)é   )úI;16zI;12)é   )r4   r4   )úI;16Br6   )r4   zI;16R)ÚIúI;16S)r7   úI;16BS)r   )é    )ÚFúF;32F)r;   úF;32BF)r7   zI;32N)r7   úI;32S)r7   úI;32BS)r$   r$   )ÚLAr@   )r$   r$   r$   )ÚRGBrA   )rA   zRGB;R)r$   r$   r$   r$   )ÚRGBArB   ©r   )ÚRGBXrD   )r$   r$   r$   r$   r$   ©r   r   )rD   ÚRGBXX)r$   r$   r$   r$   r$   r$   )r   r   r   )rD   ÚRGBXXX)rB   ÚRGBa)r   r   )rB   ÚRGBaX)r   r   r   )rB   ÚRGBaXX)r   r   )rB   ÚRGBAX)r   r   r   )rB   ÚRGBAXX)iç  )r5   r5   r5   )rA   zRGB;16L)rA   zRGB;16B)r5   r5   r5   r5   )rB   zRGBA;16L)rB   zRGBA;16B)rD   zRGBX;16L)rD   zRGBX;16B)rB   zRGBa;16L)rB   zRGBa;16B)ÚPzP;1)rM   zP;1R)rM   zP;2)rM   zP;2R)rM   zP;4)rM   zP;4R)rM   rM   )ÚPArN   )rM   zP;R)ÚCMYKrO   )rO   ÚCMYKX)rO   ÚCMYKXX)rO   zCMYK;16L)rA   rD   )ÚLABrR   c              #   ó8   K  — | ]  }t        |d    «      –— Œ y­w)r   N)Úlen)Ú.0Úkey_tps     úJ/var/www/html/acx/venv/lib/python3.12/site-packages/PIL/TiffImagePlugin.pyú	<genexpr>rX     s   è ø€ ÒA¨Vœ#˜f Q™iŸ.ÑAùs   ‚)ó   MM *ó   II* s   MM* s   II *s   MM +s   II+ c                 ó   — | d d t         v S ©Nr   )ÚPREFIXES©Úprefixs    rW   Ú_acceptr`     s   € Ø�"�1ˆ:œÐ!Ð!ó    c                 óx   — t        | «      dkD  }t        |rd| z  n| «      j                  |«      }|r|d d d…   S |S )Nr   éÿÿÿÿ)ÚabsÚIFDRationalÚlimit_rational)ÚvalÚmax_valÚinvÚn_ds       rW   Ú_limit_rationalrk     sA   € Ü
ˆc‹(�Q‰,€CÜ
¡�a˜#’g¨#Ó
.×
=Ñ
=¸gÓ
F€CÙˆ3‰t�ˆt‰9Ð$ Ð$ra   c                 óÖ   — t        | «      }|j                  |j                  f}t        |«      |k  rt	        | t        |«      «      }t        |«      |kD  rt        |Ž } t	        | |«      }|S ©N)r   Ú	numeratorÚdenominatorÚminrk   rd   Úmax)rg   rh   Úmin_valÚfracrj   s        rW   Ú_limit_signed_rationalrt     sa   € Ü�C‹=€DØ
�.‰.˜$×*Ñ*Ð
*€Cä
ˆ3ƒx�'ÒÜ˜c¤3 w£<Ó0ˆä
ˆ3ƒx�'ÒÜ˜ˆnˆÜ˜c 7Ó+ˆà€Jra   c                   ó.  — e Zd ZdZ	 dZd)d„Zed„ «       Zed„ «       Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Z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d «      Z# ed!«      Z$ ed"«      Z% ed#«      Z& ed$«      Z' ed%«      Z( ed&«      Z) e*e+d'«      r	 ed'«      Z,y(y()*re   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Ú_denominatorÚ_valc                 óˆ  — t        |t        «      r4|j                  | _        |j                  | _        |j                  | _        yt        |t        «      r#|j                  | _        |j                  | _        n|| _        || _        |dk(  rt        d«      | _        y|dk(  rt        |«      | _        yt        ||«      | _        y)z®
        :param value: either an integer numerator, a
        float/rational/other number, or an IFDRational
        :param denominator: Optional integer denominator
        Nr   Únanr   )	Ú
isinstancere   rn   rv   ro   rw   rx   r   Úfloat)ÚselfÚvaluero   s      rW   Ú__init__zIFDRational.__init__A  s›   € ô �eœ[Ô)Ø#Ÿo™oˆDŒOØ %× 1Ñ 1ˆDÔØŸ
™
ˆDŒIØä�eœXÔ&Ø#Ÿo™oˆDŒOØ %× 1Ñ 1ˆDÕà#ˆDŒOØ +ˆDÔà˜!ÒÜ˜e›ˆD�IØ˜AÒÜ  ›ˆD�Iä  ¨Ó4ˆD�Ira   c                 ó   — | j                   S rm   )rv   ©r}   s    rW   rn   zIFDRational.numerator[  s   € à�‰Ðra   c                 ó   — | j                   S rm   )rw   r�   s    rW   ro   zIFDRational.denominator_  s   € à× Ñ Ð ra   c                 ó¶   — | j                   dk(  r| j                  | j                   fS | j                  j                  |«      }|j                  |j                   fS )z…

        :param max_denominator: Integer, the maximum denominator value
        :returns: Tuple of (numerator, denominator)
        r   )ro   rn   rx   Úlimit_denominator)r}   Úmax_denominatorÚfs      rW   rf   zIFDRational.limit_rationalc  sN   € ð ×Ñ˜qÒ Ø—>‘> 4×#3Ñ#3Ð3Ð3à�I‰I×'Ñ'¨Ó8ˆØ�{‰{˜AŸM™MÐ)Ð)ra   c                 ó>   — t        t        | j                  «      «      S rm   )Ústrr|   rx   r�   s    rW   Ú__repr__zIFDRational.__repr__p  s   € Ü”5˜Ÿ™Ó#Ó$Ð$ra   c                 ó6   — | j                   j                  «       S rm   )rx   Ú__hash__r�   s    rW   r‹   zIFDRational.__hash__s  s   € Ø�y‰y×!Ñ!Ó#Ð#ra   c                 ó’   — | j                   }t        |t        «      r|j                   }t        |t        «      rt        |«      }||k(  S rm   )rx   r{   re   r|   )r}   Úotherrg   s      rW   Ú__eq__zIFDRational.__eq__v  s;   € Ø�i‰iˆÜ�eœ[Ô)Ø—J‘JˆEÜ�eœUÔ#Ü˜“*ˆCØ�e‰|Ðra   c                 óH   — | j                   | j                  | j                  gS rm   )rx   rv   rw   r�   s    rW   Ú__getstate__zIFDRational.__getstate__~  s   € Ø—	‘	˜4Ÿ?™?¨D×,=Ñ,=Ð>Ð>ra   c                 óf   — t         j                  | d«       |\  }}}|| _        || _        || _        y )Nr   )re   r   rx   rv   rw   )r}   Ústaterx   rv   rw   s        rW   Ú__setstate__zIFDRational.__setstate__�  s4   € Ü×Ñ˜T 1Ô%Ø).Ñ&ˆˆj˜,ØˆŒ	Ø$ˆŒØ(ˆÕra   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó6   •—  t        | j                  ‰«      |Ž S rm   )Úgetattrrx   )r}   ÚargsÚops     €rW   Údelegatez'IFDRational._delegate.<locals>.delegate‰  s   ø€ Ø)”7˜4Ÿ9™9 bÓ)¨4Ð0Ð0ra   r0   )r˜   r™   s   ` rW   Ú	_delegatezIFDRational._delegateˆ  s   ø€ ô	1ð ˆra   Ú__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__Ú__int__Nr/   )-Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   Úpropertyrn   ro   rf   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´   Úhasattrr   rµ   r0   ra   rW   re   re   3  s‡  „ ñðð
 7€Ió5ð4 ñó ðð ñ!ó ð!ò*ò%ò$òò?ò)òðñ ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜MÓ*€KÙ˜^Ó,€LÙ˜^Ó,€LÙ˜oÓ.€MÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜	Ó"€GÙ˜	Ó"€GÙ˜+Ó&€IÙ�xÓ €FÙ�xÓ €FÙ�xÓ €FÙ�xÓ €FÙ˜Ó$€HÙ˜Ó$€HÙ˜+Ó&€IÙ˜+Ó&€Iáˆx˜Ô#Ù˜IÓ&‰ð $ra   re   c                   ó,  — e Zd ZdZd;d„Z ed„ «      Z ed„ «      Z ed„ «      Zej                  d„ «       Zd„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e eeej8                  ddfej:                  ddfej<                  ddfej>                  ddfej@                  dd fejB                  d!d"fejD                  d#d$fejF                  ddfejH                  d%d&fg	«      «        ed'd'«      d<d(„«       Z% ed'«      d)„ «       Z& ed*d'«      d<d+„«       Z' ed*«      d,„ «       Z( ed-d.«      d<d/„«       Z) ed-«      d0„ «       Z* ed1d'«      d<d2„«       Z+ ed1«      d3„ «       Z, ed4d.«      d<d5„«       Z- ed4«      d6„ «       Z.d7„ Z/d8„ Z0d=d9„Z1d:„ Z2y)>ÚImageFileDirectory_v2a  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``.

    Nc                 óÐ  — 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 | _	        	 | j                  «        | j                  r| j                  d	|d
d «      n| j                  d|dd «      \  | _        d| _        y)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é+   ÚQr$   r2   r   F)r`   ÚreprÚSyntaxErrorÚ_prefixÚMMÚ_endianÚIIÚ_bigtiffÚgroupÚtagtypeÚresetÚ_unpackÚnextÚ_legacy_api)r}   Úifhr_   rË   Úmsgs        rW   r   zImageFileDirectory_v2.__init__ò  sÝ   € ô �sŒ|Ø,¬T°#«Y¨K°{ÐCˆCÜ˜cÓ"Ð"Ø!'Ð!3‘v¸¸R¸a¸ˆŒØ�<‰<œ2ÒØˆD�LØ�\‰\œRÒØˆD�Là"ˆCÜ˜cÓ"Ð"Ø˜A™ "™ˆŒØˆŒ
ØˆŒØ'Ø�
‰
Œà*.¯-ª-ˆD�L‰L˜˜c ! "˜gÔ&¸T¿\¹\È#ÈsÐSTÐSUÈwÓ=Wñ 	ˆŒð !ˆÕra   c                 ó   — | j                   S rm   )rÆ   r�   s    rW   ú<lambda>zImageFileDirectory_v2.<lambda>  ó
   €  4§<¡<€ ra   c                 ó   — | j                   S rm   )Ú_offsetr�   s    rW   rÔ   zImageFileDirectory_v2.<lambda>  rÕ   ra   c                 ó   — | j                   S rm   )rÐ   r�   s    rW   rÔ   zImageFileDirectory_v2.<lambda>  s   €  t×'7Ñ'7€ ra   c                 ó   — d}t        |«      ‚)Nz"Not allowing setting of legacy api)Ú	Exception)r}   r~   rÒ   s      rW   Ú
legacy_apiz ImageFileDirectory_v2.legacy_api  s   € à2ˆÜ˜‹nÐra   c                 óX   — i | _         i | _        i | _        i | _        d | _        d | _        y rm   )Ú_tags_v1Ú_tags_v2Ú_tagdatarÌ   Ú_nextr×   r�   s    rW   rÍ   zImageFileDirectory_v2.reset  s,   € ØˆŒØˆŒØˆŒØˆŒØˆŒ
Øˆ�ra   c                 ó*   — t        t        | «      «      S rm   )rˆ   Údictr�   s    rW   Ú__str__zImageFileDirectory_v2.__str__#  s   € Ü”4˜“:‹Ðra   c                 ó¦   — | j                  «       D ��ci c]0  \  }}t        j                  || j                  «      j                  |“Œ2 c}}S c c}}w )z�
        :returns: dict of name|key: value

        Returns the complete tag dictionary, with named tags where possible.
        )Úitemsr   ÚlookuprË   Úname)r}   Úcoder~   s      rW   ÚnamedzImageFileDirectory_v2.named&  sH   € ð  $Ÿz™z›|÷
á��eô �O‰O˜D $§*¡*Ó-×2Ñ2°EÑ9ó
ð 	
ùó 
s   ”5Ac                 ój   — t        t        | j                  «      t        | j                  «      z  «      S rm   )rT   Úsetrß   rÞ   r�   s    rW   Ú__len__zImageFileDirectory_v2.__len__1  ó$   € Ü”3�t—}‘}Ó%¬¨D¯M©MÓ(:Ñ:Ó;Ð;ra   c                 ó  — || j                   vrG| j                  |   }| j                  |   }| j                  |   \  }} || || j                  «      | |<   | j                   |   }| j                  rt        |t        t        f«      s|f}|S rm   )rÞ   rß   rÌ   Ú_load_dispatchrÛ   r{   ÚtupleÚbytes)r}   ÚtagÚdataÚtypÚsizeÚhandlerrg   s          rW   Ú__getitem__z!ImageFileDirectory_v2.__getitem__4  s‚   € Ø�d—m‘mÑ#Ø—=‘= Ñ%ˆDØ—,‘,˜sÑ#ˆCØ ×/Ñ/°Ñ4‰MˆD�'Ù  d¨D¯O©OÓ<ˆD�‰IØ�m‰m˜CÑ ˆØ�?Š?¤:¨c´E¼5°>Ô#BØ�&ˆCØˆ
ra   c                 ó>   — || j                   v xs || j                  v S rm   )rÞ   rß   ©r}   rò   s     rW   Ú__contains__z"ImageFileDirectory_v2.__contains__?  ó   € Ø�d—m‘mÐ#Ò; s¨d¯m©mÐ';Ð;ra   c                 ó>   — | j                  ||| j                  «       y rm   )Ú_setitemrÛ   )r}   rò   r~   s      rW   Ú__setitem__z!ImageFileDirectory_v2.__setitem__B  s   € Ø�‰�c˜5 $§/¡/Õ2ra   c           	      óþ  ‡	— 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 «       «      rAt        d„ |D «       «      rt        j                  nt        j                  | j                  |<   �nAt        d„ |D «       «      r t        d„ |D «       «      rt        j                  | j                  |<   nÿt        d„ |D «       «      rt        j                  | j                  |<   nÏt        d„ |D «       «      rt        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(  r2|D �cg c]&  }t        |t        «      r|j)                  d
d«      n|‘Œ( }}nJ| j                  |   t        j                  k(  r*|D �cg c]  }t        |t*        «      rt-        |«      n|‘Œ! }}| j                  |   t        j                  k(  xr t        |t.        «      }|st1        ˆ	fd„|D «       «      }|r| j2                  n| j4                  }|sˆ‰	j6                  dk(  s<| j                  |   t        j&                  k(  s‰	j6                  €Mt9        |«      dk(  r?|s=|r2| j                  |   t        j                  t        j                  fv r|f}	 |\  ||<   y |||<   y c c}w c c}w # t:        $ r0 t=        j>                  d|› dt9        |«      › d�«       |d   ||<   Y y w xY w)Nc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrm   )r{   re   ©rU   Úvs     rW   rX   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>P  s   è ø€ ÒB°a”z !¤[×1ÑBùó   ‚c              3   ó&   K  — | ]	  }|d k\  –— Œ y­w©r   Nr0   r  s     rW   rX   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>S  s   è ø€ Ò6¨!˜q A�vÑ6ùó   ‚c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrm   )r{   Úintr  s     rW   rX   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>V  ó   è ø€ Ò<°œ A¤s×+Ñ<ùr  c              3   ó<   K  — | ]  }d |cxk  xr dk  nc –— Œ y­w)r   r   Nr0   r  s     rW   rX   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>W  s   è ø€ Ò:¨a˜1 ž> EŸ>˜>Ñ:ùr  c              3   ó<   K  — | ]  }d |cxk  xr dk  nc –— Œ y­w)i €ÿÿi €  Nr0   r  s     rW   rX   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>Y  s   è ø€ ÒB°a˜X¨Ö1¨E×1Ð1ÑBùr  c              3   ó&   K  — | ]	  }|d k\  –— Œ y­wr  r0   r  s     rW   rX   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>^  s   è ø€ Ò":¨a 1¨¥6Ñ":ùr  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrm   )r{   r|   r  s     rW   rX   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>a  ó   è ø€ Ò>°!œ A¤u×-Ñ>ùr  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrm   )r{   rˆ   r  s     rW   rX   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>c  r	  r  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrm   )r{   rñ   r  s     rW   rX   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>e  r  r  ÚasciiÚreplacec              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrm   )Úcvt_enum)rU   r~   Úinfos     €rW   rX   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>r  s   øè ø€ ÒD°E˜4Ÿ=™=¨×/ÑDùs   ƒr   zMetadata Warning, tag z had too many entries: z, expected 1r   ) r   rñ   rˆ   r   ræ   rË   r{   rÌ   ÚtypeÚ	UNDEFINEDÚallÚRATIONALÚSIGNED_RATIONALÚSHORTÚSIGNED_SHORTÚLONGÚSIGNED_LONGÚDOUBLEÚASCIIÚBYTEÚencoder  r|   râ   rð   rÝ   rÞ   ÚlengthrT   Ú
ValueErrorÚwarningsÚwarn)
r}   rò   r~   rÛ   Ú	basetypesÚvaluesr  Úis_ifdÚdestr  s
            @rW   rý   zImageFileDirectory_v2._setitemE  sE  ø€ ÜœU¤CÐ(ˆ	ä�‰˜s D§J¡JÓ/ˆÜ& u¨iÔ8�%‘¸eˆà�d—l‘lÒ"Ø�yŠyØ$(§I¡I�—‘˜SÓ!ä$,×$6Ñ$6�—‘˜SÑ!ÜÑB¸6ÔBÔBô Ñ6¨vÔ6Ô6ô !×)Ò)ä%×5Ñ5ð —L‘L Ó%ô
 Ñ<°VÔ<Ô<ÜÑ:°6Ô:Ô:Ü,4¯N©N˜Ÿ™ SÒ)ÜÑB¸6ÔBÔBÜ,4×,AÑ,A˜Ÿ™ SÒ)ô  #Ñ":°6Ô":Ô:ô %ŸMšMä!)×!5Ñ!5ð Ÿ™ SÒ)ô
 Ñ>°vÔ>Ô>Ü(0¯©�D—L‘L Ò%ÜÑ<°VÔ<Ô<Ü(0¯©�D—L‘L Ò%ÜÑ>°vÔ>Ô>Ü(0¯©�D—L‘L Ñ%à�<‰<˜Ñ¤× 2Ñ 2Ò2ð  öàô 1;¸1¼cÔ0B�—‘˜ )Ô,ÈÑIðˆFñ ð �\‰\˜#Ñ¤(×"3Ñ"3Ò3ØEKÖLÀ¤*¨Q´Ô"4”e˜A”h¸!Ñ;ÐLˆFÐLà—‘˜cÑ"¤h§m¡mÑ3ÒP¼
À6Ì4Ó8PˆÙÜÓD¸VÔDÓDˆFá *ˆt�}Š}°·±ˆñ Ø�[‰[˜AÒØ�|‰|˜CÑ ¤H§M¡MÒ1Ø—‘Ð#¬¨F«°qÒ(8Áñ ˜dŸl™l¨3Ñ/Ü×!Ñ!Ü×(Ñ(ð4ñ ð !˜�ð&Ø%‘��c’ð ˆD�ŠIùòUùò
 Møô4 ò &ä—‘Ø,¨S¨EÐ1HÜ˜6“{�m <ð1ôð # 1™I��S“	ð&ús   É+N9Ê!$N>Î+O Ï6O<Ï;O<c                 ó¬   — | j                   j                  |d «       | j                  j                  |d «       | j                  j                  |d «       y rm   )rÞ   ÚpoprÝ   rß   rù   s     rW   Ú__delitem__z!ImageFileDirectory_v2.__delitem__•  s>   € Ø�‰×Ñ˜#˜tÔ$Ø�‰×Ñ˜#˜tÔ$Ø�‰×Ñ˜#˜tÕ$ra   c                 ój   — t        t        | j                  «      t        | j                  «      z  «      S rm   )Úiterrë   rß   rÞ   r�   s    rW   Ú__iter__zImageFileDirectory_v2.__iter__š  ó$   € Ü”C˜Ÿ™Ó&¬¨T¯]©]Ó);Ñ;Ó<Ð<ra   c                 óH   — t        j                  | j                  |z   |«      S rm   )ÚstructÚunpackrÈ   )r}   Úfmtró   s      rW   rÎ   zImageFileDirectory_v2._unpack�  s   € Ü�}‰}˜TŸ\™\¨CÑ/°Ó6Ð6ra   c                 óH   — t        j                  | j                  |z   g|¢­Ž S rm   )r3  ÚpackrÈ   )r}   r5  r(  s      rW   Ú_packzImageFileDirectory_v2._pack   s   € Ü�{‰{˜4Ÿ<™<¨#Ñ-Ð7°Ò7Ð7ra   c                 ó   ‡ ‡— ˆ ˆfd„}|S )Nc                 ó¤   •— ddl m} | j                  j                  d«      r"| j                  dd  j	                  dd«      |‰<   ‰| ft
        ‰<   | S )Nr   r   Úload_r   Ú_ú )r   r   r¶   Ú
startswithr  rï   )Úfuncr   Úidxrõ   s     €€rW   Ú	decoratorz9ImageFileDirectory_v2._register_loader.<locals>.decorator¤  sL   ø€ Ý'à�}‰}×'Ñ'¨Ô0Ø!Ÿ]™]¨1¨2Ð.×6Ñ6°s¸CÓ@��c‘
Ø"&¨ *ŒN˜3ÑØˆKra   r0   )r@  rõ   rA  s   `` rW   Ú_register_loaderz&ImageFileDirectory_v2._register_loader£  s   ù€ õ	ð Ðra   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó   •— | t         ‰<   | S rm   )Ú_write_dispatch)r?  r@  s    €rW   rA  z9ImageFileDirectory_v2._register_writer.<locals>.decorator¯  s   ø€ Ø#'ŒO˜CÑ ØˆKra   r0   )r@  rA  s   ` rW   Ú_register_writerz&ImageFileDirectory_v2._register_writer®  s   ø€ ô	ð Ðra   c                 ó’   ‡‡— ddl m} | \  }Š}|||<   t        j                  d‰z   «      Š‰dˆˆfd„	ft        |<   ˆfd„t
        |<   y )Nr   r   ú=c                 óH   •— | j                  t        |«      ‰z  › ‰› �|«      S rm   )rÎ   rT   )r}   ró   rÛ   r5  rõ   s      €€rW   rÔ   z7ImageFileDirectory_v2._register_basic.<locals>.<lambda>½  s)   ø€ Ø—‘¤ D£	¨TÑ 1Ð2°3°%Ð8¸$Ó?ð ra   c                 ó<   •‡ — dj                  ˆˆ fd„|D «       «      S )Nra   c              3   óB   •K  — | ]  }‰j                  ‰|«      –— Œ y ­wrm   )r8  )rU   r~   r5  r}   s     €€rW   rX   zJImageFileDirectory_v2._register_basic.<locals>.<lambda>.<locals>.<genexpr>Â  s   øè ø€ Ò@°�T—Z‘Z  U×+Ñ@ùs   ƒ©Újoin)r}   r(  r5  s   ` €rW   rÔ   z7ImageFileDirectory_v2._register_basic.<locals>.<lambda>Á  s   ù€ Ø�H‰HÔ@¸Ô@Ó@ð ra   ©T)r   r   r3  Úcalcsizerï   rE  )Úidx_fmt_namer   r@  rç   r5  rõ   s       @@rW   Ú_register_basicz%ImageFileDirectory_v2._register_basicµ  sL   ù€ Ý#à%‰ˆˆS�$Øˆˆc‰
Ü�‰˜s S™yÓ)ˆàõð
Œ�sÑó 
Œ˜Òra   ÚHÚshortr2   ÚlongÚbzsigned byteÚhzsigned shortÚlzsigned longr†   r|   ÚdÚdoublerÃ   Úlong8r   c                 ó   — |S rm   r0   ©r}   ró   rÛ   s      rW   Ú	load_bytezImageFileDirectory_v2.load_byteÖ  ó   € àˆra   c                 ót   — t        |t        «      rt        |«      }t        |t        «      rt        |f«      }|S rm   )r{   re   r  rñ   ©r}   ró   s     rW   Ú
write_bytez ImageFileDirectory_v2.write_byteÚ  s/   € ä�dœKÔ(Ü�t“9ˆDÜ�dœCÔ Ü˜$˜“>ˆDØˆra   r   c                 óR   — |j                  d«      r|d d }|j                  dd«      S )Nó    rc   zlatin-1r  )ÚendswithÚdecoder\  s      rW   Úload_stringz!ImageFileDirectory_v2.load_stringâ  s*   € à�=‰=˜ÔØ˜˜�9ˆDØ�{‰{˜9 iÓ0Ð0ra   c                 ó†   — t        |t        «      rt        |«      }t        |t        «      s|j	                  dd«      }|dz   S )Nr  r  rc  )r{   r  rˆ   rñ   r"  ©r}   r~   s     rW   Úwrite_stringz"ImageFileDirectory_v2.write_stringè  s;   € ô �eœSÔ!Ü˜“JˆEÜ˜%¤Ô'Ø—L‘L ¨)Ó4ˆEØ�u‰}Ðra   r   r$   c           
      ó¦   ‡‡— | j                  t        |«      dz  › d�|«      }ˆfd„Št        ˆfd„t        |d d d…   |dd d…   «      D «       «      S )Nr   r2   c                 ó(   •— ‰r| |fS t        | |«      S rm   ©re   ©ÚarU  rÛ   s     €rW   Úcombinez4ImageFileDirectory_v2.load_rational.<locals>.combineõ  ó   ø€ Ù'�A�q�6Ð>¬[¸¸AÓ->Ð>ra   c              3   ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wrm   r0   ©rU   ÚnumÚdenomro  s      €rW   rX   z6ImageFileDirectory_v2.load_rational.<locals>.<genexpr>ø  ó   øè ø€ ÒV©Z¨S°%‘W˜S %×(ÑVùó   ƒr   r   ©rÎ   rT   rð   Úzip©r}   ró   rÛ   Úvalsro  s     ` @rW   Úload_rationalz#ImageFileDirectory_v2.load_rationalñ  óU   ù€ à�|‰|œs 4›y¨A™~Ð.¨aÐ0°$Ó7ˆô	?ô ÓV¼3¸tÁCÀaÀC¹yÈ$ÈqÈtÐRSÈtÉ*Ó;UÔVÓVÐVra   c                 ó8   ‡ — dj                  ˆ fd„|D «       «      S )Nra   c              3   óX   •K  — | ]!  } ‰j                   d gt        |d«      ¢­Ž –— Œ# y­w)Ú2Ll   ÿÿ N)r8  rk   ©rU   rs   r}   s     €rW   rX   z7ImageFileDirectory_v2.write_rational.<locals>.<genexpr>ü  s-   øè ø€ ò 
ØDHˆJˆD�J‰J�tÐ?œo¨d°IÓ>Ö?ñ
ùs   ƒ'*rL  ©r}   r(  s   ` rW   Úwrite_rationalz$ImageFileDirectory_v2.write_rationalú  s!   ø€ à�x‰xó 
ØLRô
ó 
ð 	
ra   r"   c                 ó   — |S rm   r0   r\  s      rW   Úload_undefinedz$ImageFileDirectory_v2.load_undefined   r^  ra   c                 ó\   — t        |t        «      rt        |«      j                  dd«      }|S )Nr  r  )r{   r  rˆ   r"  rh  s     rW   Úwrite_undefinedz%ImageFileDirectory_v2.write_undefined  s'   € ä�eœSÔ!Ü˜“J×%Ñ% g¨yÓ9ˆEØˆra   é
   c           
      ó¦   ‡‡— | j                  t        |«      dz  › d�|«      }ˆfd„Št        ˆfd„t        |d d d…   |dd d…   «      D «       «      S )Nr   rW  c                 ó(   •— ‰r| |fS t        | |«      S rm   rl  rm  s     €rW   ro  z;ImageFileDirectory_v2.load_signed_rational.<locals>.combine  rp  ra   c              3   ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wrm   r0   rr  s      €rW   rX   z=ImageFileDirectory_v2.load_signed_rational.<locals>.<genexpr>  ru  rv  r   r   rw  ry  s     ` @rW   Úload_signed_rationalz*ImageFileDirectory_v2.load_signed_rational
  r|  ra   c                 ó8   ‡ — dj                  ˆ fd„|D «       «      S )Nra   c           	   3   óZ   •K  — | ]"  } ‰j                   d gt        |dd«      ¢­Ž –— Œ$ y­w)Ú2liÿÿÿi   €N)r8  rt   r€  s     €rW   rX   z>ImageFileDirectory_v2.write_signed_rational.<locals>.<genexpr>  s3   øè ø€ ò 
àð ˆD�J‰J�tÐPÔ4°T¸9ÀhÓOÖPñ
ùs   ƒ(+rL  r�  s   ` rW   Úwrite_signed_rationalz+ImageFileDirectory_v2.write_signed_rational  s!   ø€ à�x‰xó 
àô
ó 
ð 	
ra   c                 ó~   — |j                  |«      }t        |«      |k7  rd|› dt        |«      › d�}t        |«      ‚|S )Nz&Corrupt EXIF data.  Expecting to read ú bytes but only got z. )ÚreadrT   ÚOSError)r}   Úfprõ   ÚretrÒ   s        rW   Ú_ensure_readz"ImageFileDirectory_v2._ensure_read  sN   € Ø�g‰g�d‹mˆÜˆs‹8�tÒð%Ø%) FÐ*>¼sÀ3»x¸jÈðLð ô ˜#“,ÐØˆ
ra   c           
      óx  — | j                  «        |j                  «       | _        	 | j                  r"| j	                  d| j                  |d«      «      n!| j	                  d| j                  |d«      «      d   }t        |«      D �]   }| j                  r"| j	                  d| j                  |d«      «      n!| j	                  d| j                  |d	«      «      \  }}}}t        j                  || j                  «      j                  }t        j                  |d
«      }	d|› d|› d|	› d|› d�	}
	 | j                  |   \  }}||z  }|| j                  rdndkD  rv|j                  «       }| j	                  | j                  rdnd|«      \  }|
d|› d|› �z  }
|j#                  |«       t%        j&                  ||«      }|j#                  |«       n|d | }t)        |«      |k7  r>t+        j,                  d|› dt)        |«      › d|› �«       t        j!                  |
«       �Œš|st        j!                  |
«       �Œ³|| j.                  |<   || j0                  |<   |
d|dkD  rd|z  n
t3        |«      z   z  }
t        j!                  |
«       �Œ | j                  r"| j	                  d| j                  |d«      «      n!| j	                  d| j                  |d«      «      \  | _        y # t        $ r t        j!                  d|
|«       Y �Œw xY w# t6        $ r(}
t+        j,                  t9        |
«      «       Y d }
~
y d }
~
ww xY w)NrÃ   r$   rR  r   r   ÚHHQ8sé   ÚHHL4sr3   Úunknownztag: ú (ú
) - type: ú)z%s - unsupported type %sr   r2   z Tag Location: z - Data Location: z/Possibly corrupt EXIF data.  Expecting to read r‘  z. Skipping tag ú
 - value: r:   ú<table: %d bytes>)rÍ   Útellr×   rÊ   rÎ   r–  Úranger   ræ   rË   rç   r   Úgetrï   ÚKeyErrorÚloggerÚdebugÚseekr
   Ú
_safe_readrT   r%  r&  rß   rÌ   rÄ   rÏ   r“  rˆ   )r}   r”  Ú	tag_countÚirò   rô   Úcountró   ÚtagnameÚtypnamerÒ   Ú	unit_sizerö   rõ   ÚhereÚoffsets                   rW   ÚloadzImageFileDirectory_v2.load$  s  € Ø�
‰
ŒØ—w‘w“yˆŒð=	ð —=’=ð —‘˜S $×"3Ñ"3°B¸Ó":Ô;à—\‘\ # t×'8Ñ'8¸¸QÓ'?Ó@Øñ	ˆIô
 ˜9Ó%ó ."�ð —}’}ð —L‘L ¨$×*;Ñ*;¸BÀÓ*CÔDàŸ™ g¨t×/@Ñ/@ÀÀRÓ/HÓIñ &��S˜% ô #Ÿ/™/¨#¨t¯z©zÓ:×?Ñ?�ÜŸ)™) C¨Ó3�Ø˜g˜Y b¨¨¨Z¸°yÀÀ3À%ÀqÐI�ðØ)-×)<Ñ)<¸SÑ)AÑ&�I˜wð ˜yÑ(�Ø §¢™1°1Ò5ØŸ7™7›9�DØ $§¡°D·M²M©SÀsÈDÓ Q‘I�VØ˜_¨T¨FÐ2DÀVÀHÐMÑM�CØ—G‘G˜F”OÜ$×/Ñ/°°DÓ9�DØ—G‘G˜D•Mà  ˜;�Dä�t“9 Ò$Ü—M‘Mð-Ø-1¨FÐ2FÄsÈ4ÃyÀkð R)Ø),¨ð/ôô
 —L‘L Ô%ÙáÜ—L‘L Ô%Ùà%)�—‘˜cÑ"Ø$'�—‘˜SÑ!à�|Ø26¸²)Ð'¨$Ò.ÄÀdÃññ �ô —‘˜SÖ!ð]."ðd —=’=ð —‘˜S $×"3Ñ"3°B¸Ó":Ô;à—\‘\ # t×'8Ñ'8¸¸QÓ'?Ó@ñ ˆT�YøôG  ò Ü—L‘LÐ!;¸SÀ#ÔFÚðûôP ò 	Ü�M‰Mœ#˜c›(Ô#Üûð	ús=   §DL Ä.K!Å F L Ë! LÌL ÌLÌL Ì	L9ÌL4Ì4L9c                 óF  — | j                  dt        | j                  «      «      }g }|t        |«      z   t        | j                  «      dz  z   dz   }d }t        | j                  j	                  «       «      D �]\  \  }}|t
        k(  rt        |«      }| j                  j                  |«      }t        j                  d||t        |«      «       |t        j                  k(  xr t        |t        «      }|r_| j                  dk(  rd}	nd}	t!        |	|¬«      }
| j                  |   }|j	                  «       D ]
  \  }}||
|<   Œ |
j#                  |«      }n+t        |t$        «      r|n|f} | j&                  |   | g|¢­Ž }t        j(                  || j*                  «      j,                  }|rd	nt/        j                  |d
«      }d|› d|› d|› d|› d�	}|dt        |«      dk\  rdt        |«      z  n
t1        |«      z   z  }t        j                  |«       |rd}nH|t        j2                  t        j4                  t        j6                  fv rt        |«      }nt        |«      }t        |«      dk  r(|j9                  ||||j;                  dd«      df«       �Œ |j9                  |||| j                  d|«      |f«       |t        |«      dz   dz  dz  z  }�Œ_ |�L||   \  }}}}}|rd}t=        |«      ‚| j                  d| j?                  d|«      d   |z   «      }|||||f||<   |D ]L  \  }}}}}t        j                  d|||t        |«      t        |«      «       || j                  d||||«      z  }ŒN |dz  }|D ]!  \  }}}}}||z  }t        |«      dz  sŒ|dz  }Œ# |S )NrR  r3   r   zTag %s, Type: %s, Value: %srÁ   s   II*    s   MM *   )rË   Úifdr›  zsave: rœ  r�  rž  rŸ  r5   r   r   rc  ra   r2   r   z&multistrip support not yet implementedr   z%s %s %s %s %srš  s       ) r8  rT   rÞ   Úsortedrå   ÚSTRIPOFFSETSrÌ   r£  r¥  r¦  rÄ   r   r  r{   râ   rÈ   r¾   Útobytesrð   rE  ræ   rË   rç   r   rˆ   r!  r   r  ÚappendÚljustÚNotImplementedErrorrÎ   )r}   r°  ÚresultÚentriesÚstripoffsetsrò   r~   rô   r)  rÑ   r³  r(  Úifd_tagÚ	ifd_valueró   r¬  r­  rÒ   r«  s                      rW   r¶  zImageFileDirectory_v2.tobytesg  s˜  € à—‘˜C¤ T§]¡]Ó!3Ó4ˆàˆØœ#˜f›+Ñ%¬¨D¯M©MÓ(:¸RÑ(?Ñ?À!ÑCˆØˆô ! §¡×!4Ñ!4Ó!6Ó7ó (	3‰JˆC�Ø”lÒ"Ü" 7›|�Ø—,‘,×"Ñ" 3Ó'ˆCÜ�L‰LÐ6¸¸SÄ$ÀuÃ+ÔNØœHŸM™MÑ)ÒE¬j¸ÄÓ.EˆFÙØ—<‘< 3Ò&Ø7‘Cà7�CÜ+¨C°sÔ;�ØŸ™ sÑ+�Ø*0¯,©,«.ò -Ñ&�G˜YØ#,�C˜’Lð-à—{‘{ 6Ó*‘ä",¨U´EÔ":™ÀÀ�Ø0�t×+Ñ+¨CÑ0°Ð?¸Ò?�ä—o‘o c¨4¯:©:Ó6×;Ñ;ˆGÙ%‘e¬5¯9©9°S¸)Ó+DˆGØ˜7˜) 2 c U¨*°W°I¸RÀ¸uÀAÐFˆCØ�<Ü36°t³9À²?Ð#¤c¨$£iÒ/ÌÈFËññ ˆCô �L‰L˜Ôñ Ø‘ØœŸ™¬¯©¼×8JÑ8JÐKÑKÜ˜D›	‘ä˜F›�ä�4‹y˜AŠ~Ø—‘  S¨%°·±¸A¸uÓ1EÀsÐKÖLà—‘  S¨%°·±¸CÀÓ1HÈ$ÐOÔPØœ3˜t›9 q™=¨QÑ.°Ñ2Ñ2’ðQ(	3ðV Ð#Ø+2°<Ñ+@Ñ(ˆC��e˜U DÙØ>�Ü)¨#Ó.Ð.Ø—J‘J˜s D§L¡L°°eÓ$<¸QÑ$?À&Ñ$HÓIˆEØ$'¨¨e°U¸DÐ$@ˆG�LÑ!ð -4ò 	BÑ(ˆC��e˜U DÜ�L‰LÐ)¨3°°U¼DÀ»KÌÈdËÔTØ�d—j‘j ¨#¨s°E¸5ÓAÑA‰Fð	Bð
 	�+Ñˆð -4ò 	 Ñ(ˆC��e˜U DØ�d‰NˆFÜ�4‹y˜1‹}Ø˜%‘‘ð	 ð
 ˆra   c                 ó  — |j                  «       dk(  r/|j                  | j                  | j                  ddd«      z   «       |j                  «       }| j	                  |«      }|j                  |«       |t        |«      z   S )Nr   ÚHLé*   r$   )r¡  ÚwriterÆ   r8  r¶  rT   )r}   r”  r°  rº  s       rW   ÚsavezImageFileDirectory_v2.save´  se   € Ø�7‰7‹9˜Š>à�H‰H�T—\‘\ D§J¡J¨t°R¸Ó$;Ñ;Ô<à—‘“ˆØ—‘˜fÓ%ˆØ
�‰�ÔØœ˜F›Ñ#Ð#ra   )s   II*     NNrN  rC   )3r¶   r·   r¸   r¹   r   r»   r_   r°  rÛ   ÚsetterrÍ   rã   ré   rì   r÷   rú   rþ   rý   r-  r0  rÎ   r8  rB  rF  rQ  ÚlistÚmapr   r  r  ÚSIGNED_BYTEr  r  ÚFLOATr  ÚIFDÚLONG8r]  ra  rf  ri  r{  r‚  r„  r†  r‹  r�  r–  r±  r¶  rÃ  r0   ra   rW   r¾   r¾   µ  sT  „ ñ:óx!ñ@ Ñ/Ó0€FÙÑ/Ó0€FÙÑ7Ó8€Jà×Ññó ðòòò	
ò<ò	ò<ò3òNò`%ò
=ò7ò8ò	òò
ñ  	ÙØà—‘  gÐ.Ø—‘  VÐ,Ø×%Ñ% s¨MÐ:Ø×&Ñ&¨¨^Ð<Ø×%Ñ% s¨MÐ:Ø—‘  gÐ.Ø—‘ # xÐ0Ø—‘˜s FÐ+Ø—‘  gÐ.ð
ó	
ôñ" �a˜Óòó ðñ �aÓñó ðñ �a˜Óò1ó ð1ñ
 �aÓñó ðñ �a˜ÓòWó ðWñ �aÓñ
ó ð
ñ
 �a˜Óòó ðñ �aÓñó ðñ
 �b˜!ÓòWó ðWñ �bÓñ
ó ð
òòAóFKóZ$ra   r¾   r=  r<  r;  Úwrite_c                   óˆ   ‡ — e Zd ZU dZˆ fd„Z ed„ «      Z ed„ «      Zee	d<   	 e
d„ «       Zd„ Zd„ Zd	„ Zd
„ Zd„ Z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
    c                 ó2   •— t        ‰| �  |i |¤Ž d| _        y )NT)Úsuperr   rÐ   )r}   r—   ÚkwargsÚ	__class__s      €rW   r   zImageFileDirectory_v1.__init__Ü  s   ø€ Ü‰Ñ˜$Ð) &Ò)ØˆÕra   c                 ó   — | j                   S rm   )rÝ   r�   s    rW   rÔ   zImageFileDirectory_v1.<lambda>à  s
   €  §¡€ ra   c                 ó   — | j                   S rm   )rß   r�   s    rW   rÔ   zImageFileDirectory_v1.<lambda>á  s
   €  D§M¡M€ ra   rÌ   c                 ó’   —  | |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`

        r^   )r_   rß   rÌ   rÏ   )ÚclsÚoriginalr³  s      rW   Úfrom_v2zImageFileDirectory_v1.from_v2ç  s<   € ñ ˜Ÿ™Ô)ˆØ×(Ñ(ˆŒØ×&Ñ&ˆŒØ—=‘=ˆŒØˆ
ra   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`

        r^   )r¾   r_   râ   rß   rÌ   rÞ   )r}   r³  s     rW   Úto_v2zImageFileDirectory_v1.to_v2ù  sG   € ô $¨4¯;©;Ô7ˆÜ˜DŸM™MÓ*ˆŒÜ˜4Ÿ<™<Ó(ˆŒÜ˜DŸM™MÓ*ˆŒØˆ
ra   c                 ó>   — || j                   v xs || j                  v S rm   )rÝ   rß   rù   s     rW   rú   z"ImageFileDirectory_v1.__contains__
  rû   ra   c                 ój   — t        t        | j                  «      t        | j                  «      z  «      S rm   )rT   rë   rß   rÝ   r�   s    rW   rì   zImageFileDirectory_v1.__len__  rí   ra   c                 ój   — t        t        | j                  «      t        | j                  «      z  «      S rm   )r/  rë   rß   rÝ   r�   s    rW   r0  zImageFileDirectory_v1.__iter__  r1  ra   c                 ó8   — dD ]  }| j                  |||«       Œ y ©N)FT)rý   )r}   rò   r~   rÛ   s       rW   rþ   z!ImageFileDirectory_v1.__setitem__  s!   € Ø'ò 	2ˆJØ�M‰M˜#˜u jÕ1ñ	2ra   c           	      ó  — || j                   vrR| j                  |   }| j                  |   }| j                  |   \  }}dD ]  }| j	                  | || ||«      |«       Œ | j                   |   }t        |t        t        f«      s|f}|S rÞ  )rÝ   rß   rÌ   rï   rý   r{   rð   rñ   )r}   rò   ró   rô   rõ   rö   Úlegacyrg   s           rW   r÷   z!ImageFileDirectory_v1.__getitem__  s�   € Ø�d—m‘mÑ#Ø—=‘= Ñ%ˆDØ—,‘,˜sÑ#ˆCØ ×/Ñ/°Ñ4‰MˆD�'Ø'ò H�Ø—‘˜c¡7¨4°°vÓ#>ÀÕGðHà�m‰m˜CÑ ˆÜ˜#¤¤u˜~Ô.Ø�&ˆCØˆ
ra   )r¶   r·   r¸   r¹   r   r»   ÚtagsÚtagdatarâ   Ú__annotations__Úclassmethodr×  rÙ  rú   rì   r0  rþ   r÷   Ú__classcell__©rÑ  s   @rW   rÍ  rÍ  É  s_   ø… ñô$ ñ Ñ.Ó/€DÙÑ1Ó2€Gð ƒMØ!àñó ðò"ò"<ò<ò=ò2ö
ra   rÍ  c                   ó|   ‡ — e Zd ZdZdZdZdˆ fd„	Zd„ Zed„ «       Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚTiffImageFileÚTIFFz
Adobe TIFFFc                 óF   •— d | _         	 d | _        	 t        ‰| �  ||«       y rm   )Útag_v2rò   rÏ  r   )r}   r”  ÚfilenamerÑ  s      €rW   r   zTiffImageFile.__init__1  s&   ø€ ØˆŒØ5àˆŒØ"ä‰Ñ˜˜XÕ&ra   c                 ó  — | j                   j                  d«      }|d   dk(  r|| j                   j                  d«      z  }t        |«      | _        d| _        | j                  j
                  x| _        | _        d| _        | j                   | _	        g | _
        d| _        t        j                  d«       t        j                  d| j                  «       t        j                  dt        |«      «       | j                  d	«       y)
z#Open the first image in a TIFF filer$   r   rÂ   Nrc   z*** TiffImageFile._open ***z- __first: %sz	- ifh: %sr   )r”  r’  r¾   rë  r³  rÏ   Ú_TiffImageFile__firstÚ_TiffImageFile__nextÚ_TiffImageFile__frameÚ_fpÚ
_frame_posÚ	_n_framesr¥  r¦  rÄ   Ú_seek)r}   rÑ   s     rW   Ú_openzTiffImageFile._open:  sÃ   € ð �g‰g�l‰l˜1‹oˆØˆq‰6�RŠ<Ø�4—7‘7—<‘< “?Ñ"ˆCä+¨CÓ0ˆŒð ˆŒð &*§[¡[×%5Ñ%5Ð5ˆŒ�t”{ØˆŒØ—7‘7ˆŒØˆŒØˆŒä�‰Ð2Ô3Ü�‰�_ d§l¡lÔ3Ü�‰�[¤$ s£)Ô,ð 	�
‰
�1�ra   c                 ó2  — | j                   €€| j                  «       }| j                  t        | j                  «      «       | j                   €/| j                  | j                  «       dz   «       | j                   €Œ/| j                  |«       | j                   S )Nr   )ró  r¡  rô  rT   rò  r§  )r}   Úcurrents     rW   Ún_frameszTiffImageFile.n_framesU  sn   € à�>‰>Ð!Ø—i‘i“kˆGØ�J‰J”s˜4Ÿ?™?Ó+Ô,Ø—.‘.Ð(Ø—
‘
˜4Ÿ9™9›;¨™?Ô+ð —.‘.Ñ(à�I‰I�gÔØ�~‰~Ðra   c                 óú   — | j                  |«      sy| j                  |«       t        j                  | j                  «       t        j
                  j                  | j                  | j                  «      | _        y)z%Select a given frame as current imageN)	Ú_seek_checkrô  r	   Ú_decompression_bomb_checkrõ   ÚcoreÚnewÚmodeÚim)r}   Úframes     rW   r§  zTiffImageFile.seek_  sQ   € à×Ñ Ô&ØØ�
‰
�5Ôô 	×'Ñ'¨¯	©	Ô2Ü—*‘*—.‘. §¡¨D¯I©IÓ6ˆ�ra   c                 ó2  — | j                   | _        | j                  j                  «        t        | j                  «      |k  �r´| j
                  sd}t        |«      ‚t        j                  d|| j                  | j
                  | j                  j                  «       «       | j                  j                  | j
                  «       | j                  j                  | j
                  «       t        j                  d| j                  j                  «       «       | j                  j                  | j                  «       | j                  j                  | j                  v rd| _        n| j                  j                  | _        | j
                  dk(  r
|dz   | _        t        | j                  «      dk(  r| j
                  dk7  | _        | xj                  dz  c_	        t        | j                  «      |k  r�Œ´| j                  j                  | j                  |   «       | j                  j                  | j                  «       | j#                  «        t$        j'                  | j                  «      x| _        | _        || _	        | j-                  «        y )Nzno more images in TIFF filez9Seeking to frame %s, on frame %s, __next %s, location: %szLoading tags, location: %sr   r   )rñ  r”  r¡  rT   rò  rï  ÚEOFErrorr¥  r¦  rð  r§  r·  rë  r±  rÏ   ró  Úis_animatedÚ_reload_exifrÍ  r×  rò   r³  Ú_setup)r}   r   rÒ   s      rW   rô  zTiffImageFile._seekj  s¿  € Ø—(‘(ˆŒð 	�‰�‰Œä�$—/‘/Ó" eÓ+Ø—;’;Ø3�Ü˜s“mÐ#Ü�L‰LØKØØ—‘Ø—‘Ø—‘—‘“ôð �G‰G�L‰L˜Ÿ™Ô%Ø�O‰O×"Ñ" 4§;¡;Ô/Ü�L‰LÐ5°t·w±w·|±|³~ÔFØ�K‰K×Ñ˜TŸW™WÔ%Ø�{‰{×Ñ 4§?¡?Ñ2ð  �•à"Ÿk™k×.Ñ.�”Ø�{‰{˜aÒØ!&¨¡�”Ü�4—?‘?Ó# qÒ(Ø#'§;¡;°!Ñ#3�Ô Ø�LŠL˜AÑ�Lô3 �$—/‘/Ó" eÔ+ð4 	�‰�‰�T—_‘_ UÑ+Ô,Ø�‰×Ñ˜Ÿ™Ô!Ø×ÑÔä3×;Ñ;¸D¿K¹KÓHÐHˆŒ�4”8ØˆŒØ�‰�ra   c                 ó   — | j                   S )zReturn the current frame number)rð  r�   s    rW   r¡  zTiffImageFile.tell“  s   € à�|‰|Ðra   c                 ón   — t         | j                  v r"| j                  | j                  t            «      S i S )z™
        Returns a dictionary containing the XMP tags.
        Requires defusedxml to be installed.

        :returns: XMP tags in a dictionary.
        )ÚXMPrë  Ú_getxmpr�   s    rW   ÚgetxmpzTiffImageFile.getxmp—  s,   € ô 25¸¿¹Ñ1Cˆt�|‰|˜DŸK™K¬Ñ,Ó-ÐKÈÐKra   c                 óŽ  — i }| j                   j                  t        j                  j                  «      }|r�|dd dk(  r…t        |dd «      }t        j                  |d   dz   dz  «      dz  }t        |d|z   d|z    «      }|d|z   d|z   |z    }d|i||<   |t        j                  d|z   |z   dz  «      dz  d }|dd dk(  rŒ…|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.
        Nr   s   8BIMr    r   r   r‡  ró   )	rë  r£  r   ÚBaseÚImageResourcesÚi16ÚmathÚceilÚi32)r}   Úblocksrg   ÚidÚnrõ   ró   s          rW   Úget_photoshop_blocksz"TiffImageFile.get_photoshop_blocks   sâ   € ð ˆØ�k‰k�o‰oœhŸm™m×:Ñ:Ó;ˆÙØ�b�q�'˜WÒ$Ü˜˜Q˜q˜“]�Ü—I‘I˜s 1™v¨™z¨QÑ.Ó/°!Ñ3�Ü˜3˜q 1™u r¨A¡vÐ.Ó/�Ø˜2 ™6 B¨¡F¨T¡MÐ2�Ø$ d˜^��r‘
àœ$Ÿ)™) R¨!¡V¨d¡]°aÑ$7Ó8¸1Ñ<Ð>Ð?�ð �b�q�'˜WÓ$ð ˆra   c                 óp   •— | j                   r| j                  r| j                  «       S t        ‰| �  «       S rm   )ÚtileÚuse_load_libtiffÚ_load_libtiffrÏ  r±  )r}   rÑ  s    €rW   r±  zTiffImageFile.loadµ  s-   ø€ Ø�9Š9˜×.Ò.Ø×%Ñ%Ó'Ð'Ü‰w‰|‹~Ðra   c                 óš  — | j                   s\d| _        | j                  j                  «        | j	                  «       }t
        j                  D ]  }||vrŒ|j                  |«       Œ t        j                  | d¬«       t        j                  j                  | j                  v r&| j                  t        j                  j                  = y y )NT)Úin_place)r  Ú!_close_exclusive_fp_after_loadingr”  r¡  Úgetexifr   ÚTAGS_V2_GROUPSÚget_ifdr   Úexif_transposer   r  ÚOrientationrë  )r}   ÚexifÚkeys      rW   Úload_endzTiffImageFile.load_endº  sŸ   € ð ×ÒØ59ˆDÔ2ð �G‰G�L‰LŒNð —<‘<“>ˆDÜ×.Ñ.ò "�Ø˜d‘?ØØ—‘˜SÕ!ð"ô
 	×Ñ ¨tÕ4Ü�=‰=×$Ñ$¨¯©Ñ3Ø—‘œHŸM™M×5Ñ5Ñ6ð 4ra   c                 óî  — t         j                   j                  | «       | j                  «        t        | j                  «      dk(  sd}t        |«      ‚| j                  d   d   }t        | j                  d   d   «      }	 t        | j                  d«      xr | j                  j                  «       }t        | j                  d«      r| j                  j                  «        |r||d<   t        j                  | j                  d	t        |«      | j                  «      }	 |j                  | j                   |«       | j$                  xr | j&                   }t        | j                  d«      rBt(        j+                  d«       |j-                  | j                  j/                  «       «      \  }}	n¥|rGt(        j+                  d«       |s| j                  j1                  d«       |j-                  d«      \  }}	n\t(        j+                  d«       | j                  j1                  d«       |j-                  | j                  j3                  «       «      \  }}	g | _        d| _        | j7                  «        |r!| j                  j9                  «        d| _        |	dk  rt        |	«      ‚t         j                   j                  | «      S # t
        $ r d}Y �Œïw xY w# t"        $ r}d
}t        |«      |‚d}~ww xY w)zWOverload method triggered when we detect a compressed tiff
        Calls out to libtiffr   zNot exactly one tiler   r   ÚfilenoÚflushFr   ÚlibtiffzCouldn't set the imageNÚ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 reading)r	   r±  Úload_preparerT   r  r“  rÅ  r¼   r”  r&  r'  Ú_getdecoderrþ  rð   ÚdecoderconfigÚsetimagerÿ  r$  Ú_exclusive_fpr  r¥  r¦  re  r)  r§  r’  Úreadonlyr$  Úclose)
r}   rÒ   Úextentsr—   r”  ÚdecoderÚeÚclose_self_fpr  Úerrs
             rW   r  zTiffImageFile._load_libtiffÏ  sN  € ô 	�‰×Ñ˜Ôà×ÑÔä�4—9‘9‹~ Ò"Ø(ˆCÜ˜#“,Ðð —)‘)˜A‘,˜q‘/ˆÜ�D—I‘I˜a‘L ‘OÓ$ˆð

	Ü˜Ÿ™ (Ó+Ò@°·±·±Ó0@ˆBô �t—w‘w Ô(Ø—‘—‘”ñ ØˆD�‰Gä×#Ñ#Ø�I‰I�y¤%¨£+¨t×/AÑ/Aó
ˆð	&Ø×Ñ˜TŸW™W gÔ.ð
 ×*Ñ*ÒC°4×3CÑ3CÐ/CˆÜ�4—7‘7˜JÔ'ô �L‰LÐPÔQØ—^‘^ D§G¡G×$4Ñ$4Ó$6Ó7‰FˆA‰sÙä�L‰LÐNÔOÙ Ø—‘—‘˜Q”à—^‘^ GÓ,‰FˆA‰sô �L‰LÐFÔGØ�G‰G�L‰L˜ŒOà—^‘^ D§G¡G§L¡L£NÓ3‰FˆAˆsàˆŒ	ØˆŒà�‰ŒáØ�G‰G�M‰MŒOØˆDŒGà�Š7Ü˜#“,Ðä�{‰{×Ñ Ó%Ð%øôq ò 	ð ‹Bð	ûô ò 	&Ø*ˆCÜ˜#“, AÐ%ûð	&ús+   ÂA"K Ä"K ËKËKË	K4Ë!K/Ë/K4c                 óp  — d| j                   v rd}t        |«      ‚t        | j                   j                  t        d«         | _        | j                   j                  t        d«      | _        | j                   j                  t        d«      }| j
                  dk(  rd}| j                   j                  t        d«      }t        j                  d«       t        j                  d| j
                  «       t        j                  d	|«       t        j                  d
| j                  «       t        j                  d|«       t        j                  d| j                  j                  t        «      «       t        | j                   j                  t        «      «      }t        | j                   j                  t         «      «      }||f| _        t        j                  d| j$                  «       | j                   j                  t&        d«      }t)        |«      dkD  r"t+        |«      t-        |«      cxk(  rdk(  rn nd}| j                   j                  t.        d«      }| j                   j                  t0        d«      }|dv rd}	n
|dk(  rd}	nd}	|	t)        |«      z  }	t)        |«      }
| j                   j                  t2        | j
                  dk(  r|dv rdnd«      }|t4        kD  r#t        j7                  d|«       d}t9        |«      ‚||
k  r|d| }n||
kD  r
|
dk(  r||z  }t)        |«      |k7  rd}t9        |«      ‚| j                   j:                  |||||f}t        j                  d|«       	 t<        |   \  | _        }t        j                  d|«       t        j                  d| jB                  «       | j
                  | jD                  d<   | j                   j                  tF        d«      }| j                   j                  tH        d«      }|r‹|r‰| j                   j                  tJ        «      }|dk(  r||f| jD                  d <   nS|dk(  r|d!z  |d!z  f| jD                  d <   n6|€#||f| jD                  d <   ||f| jD                  d"<   n||f| jD                  d"<   dx}x}}g | _&        tN        xs | j
                  d#k7  | _(        | jP                  rÛ|dk(  r5|dd dz   |dd z   }t        j                  d|«       t<        |   \  | _        }|d$k(  rd%}d&|v r|jS                  d&d'«      }d(|v r|jS                  d(d'«      }|dk(  r | j
                  d)k(  r| j                  dk(  rd*}|| j
                  d+| j                   jT                  f}| jL                  jW                  d,dd||fd|f«       �n¼tX        | j                   v stZ        | j                   v �rutX        | j                   v rC| j                   tX           }| j                   j                  t\        |«      }| j$                  d   }nQ| j                   tZ           }| j                   j                  t^        «      }| j                   j                  t`        «      }|D ]É  }||z   |kD  r|tc        |«      z  d-z  }nd}|}| j                  dk(  r
||   }||	z  }|t        |«      df}| jL                  jW                  | j
                  ||t-        ||z   |«      t-        ||z   |«      f||f«       ||z   }|| j$                  d   k\  sŒ§d||z   }}|| j$                  d   k\  sŒÁdx}}|dz  }ŒË n"t        j                  d.«       d}t9        |«      ‚td        | j                   v r | j                   td           | jD                  d/<   | jB                  d0v rW| j                   tf           D �cg c]  }ti        |d1z  «      ‘Œ }}tk        jl                  d2d3jo                  |«      «      | _8        yy# t@        $ r(}t        j                  d«       d}t9        |«      |‚d}~ww xY wc c}w )4z-Setup this image object based on current tagsi¼  z+Windows Media Photo files not yet supportedr   r   r!   r    z*** Summary ***z- compression: %sz - photometric_interpretation: %sz- planar_configuration: %sz- fill_order: %sz- YCbCr subsampling: %sz
- size: %sr/   r0   )r   r    r$   r   r   r   )r   r    z.More samples per pixel than can be decoded: %sz#Invalid value for samples per pixelNzunknown data organizationzformat key: %sz- unsupported formatzunknown pixel modez- raw mode: %sz- pil mode: %sÚcompressionr   ÚdpigR¸…ëQ@Ú
resolutionr   r4   úI;16Nz;16Bz;16Nz;16Lr#   rA   Fr(  r$   z- unsupported data organizationÚicc_profile©rM   rN   r   úRGB;Lra   )9rë  r“  ÚCOMPRESSION_INFOr£  ÚCOMPRESSIONÚ_compressionÚPLANAR_CONFIGURATIONÚ_planar_configurationÚPHOTOMETRIC_INTERPRETATIONÚ	FILLORDERr¥  r¦  rò   ÚYCBCRSUBSAMPLINGr  Ú
IMAGEWIDTHÚIMAGELENGTHÚ_sizerõ   ÚSAMPLEFORMATrT   rq   rp   ÚBITSPERSAMPLEÚEXTRASAMPLESÚSAMPLESPERPIXELÚMAX_SAMPLESPERPIXELÚerrorrÅ   r_   Ú	OPEN_INFOÚ_moder¤  rþ  r  ÚX_RESOLUTIONÚY_RESOLUTIONÚRESOLUTION_UNITr  ÚREAD_LIBTIFFr  r  r°  r·  rµ  ÚTILEOFFSETSÚROWSPERSTRIPÚ	TILEWIDTHÚ
TILELENGTHÚsumÚ
ICCPROFILEÚCOLORMAPr   r   r   rM  Úpalette)r}   rÒ   ÚphotoÚ	fillorderÚxsizeÚysizeÚsample_formatÚ	bps_tupleÚextra_tupleÚ	bps_countÚbps_actual_countÚsamples_per_pixelr#  Úrawmoder3  ÚxresÚyresÚresunitÚxÚyÚlayerrn  ÚoffsetsrV  Úwr°  ÚstrideÚtile_rawmoderU  r\  s                                 rW   r  zTiffImageFile._setup$  sW  € ð �T—[‘[Ñ Ø?ˆCÜ˜#“,Ðô -¨T¯[©[¯_©_¼[È!Ó-LÑMˆÔØ%)§[¡[§_¡_Ô5IÈ1Ó%MˆÔ"ð —‘—‘Ô :¸AÓ>ˆð ×Ñ Ò+ØˆEà—K‘K—O‘O¤I¨qÓ1ˆ	ä�‰Ð&Ô'Ü�‰Ð(¨$×*;Ñ*;Ô<Ü�‰Ð7¸Ô?Ü�‰Ð1°4×3MÑ3MÔNÜ�‰Ð'¨Ô3Ü�‰Ð.°·±·±Ô=MÓ0NÔOô �D—K‘K—O‘O¤JÓ/Ó0ˆÜ�D—K‘K—O‘O¤KÓ0Ó1ˆØ˜E�\ˆŒ
ä�‰�\ 4§9¡9Ô-àŸ™Ÿ™¬°dÓ;ˆÜˆ}Ó Ò!¤c¨-Ó&8¼CÀÓ<NÔ&SÐRSÕ&Sð !ˆMà—K‘K—O‘O¤M°4Ó8ˆ	Ø—k‘k—o‘o¤l°BÓ7ˆØ�IÑØ‰IØ�aŠZØ‰IàˆIØ”S˜Ó%Ñ%ˆ	Ü˜y›>ÐØ ŸK™KŸO™OÜØ×"Ñ" kÒ1°e¸v±o‰AÈ1ó
Ðð
 Ô2Ò2ä�L‰LØ@ÐBSôð 8ˆCÜ˜cÓ"Ð"àÐ/Ò/ð "Ð"4Ð#4Ð5‰IØÐ!1Ò1Ð6FÈ!Ò6Kð "Ð$5Ñ5ˆIäˆy‹>Ð.Ò.Ø-ˆCÜ˜cÓ"Ð"ð �K‰K×ÑØØØØØð
ˆô 	�‰Ð% sÔ+ð	*Ü"+¨C¡.ÑˆDŒJ˜ô 	�‰Ð% wÔ/Ü�‰Ð% t§y¡yÔ1à#'×#4Ñ#4ˆ�	‰	�-Ñ à�{‰{�‰œ|¨QÓ/ˆØ�{‰{�‰œ|¨QÓ/ˆá‘DØ—k‘k—o‘o¤oÓ6ˆGØ˜!Š|Ø$(¨$ <�—	‘	˜%Ò Ø˜A’Ø$(¨4¡K°¸±Ð#=�—	‘	˜%Ò Ø�Ø$(¨$ <�—	‘	˜%Ñ ð +/°¨*�—	‘	˜,Ò'à*.°¨*�—	‘	˜,Ñ'ð ÐˆÐˆA�ØˆŒ	Ü ,Ò J°×0AÑ0AÀUÑ0JˆÔØ× Ò ð ˜AŠ~à˜"˜1�g ‘n s¨1¨2 wÑ.�Ü—‘Ð-¨sÔ3ô '0°¡nÑ#�”
˜Gð
 ˜&Ò Ø!�Ø˜Ñ Ø!Ÿ/™/¨&°&Ó9�Ø˜Ñ Ø!Ÿ/™/¨&°&Ó9�ð
 ˜’
Ø×%Ñ%¨Ò/Ø×.Ñ.°!Ò3à�ð ˜$×+Ñ+¨U°D·K±K×4FÑ4FÐGˆAØ�I‰I×Ñ˜i¨!¨Q°°uÐ)=¸qÀ!ÐDÖEä˜TŸ[™[Ñ(¬K¸4¿;¹;Ò,Fä˜tŸ{™{Ñ*ØŸ+™+¤lÑ3�Ø—K‘K—O‘O¤L°%Ó8�Ø—I‘I˜a‘L‘ð Ÿ+™+¤kÑ2�Ø—K‘K—O‘O¤IÓ.�Ø—K‘K—O‘O¤JÓ/�à!ò #�Ø�q‘5˜5’=Ø¤ Y£Ñ/°!Ñ3‘Fà�Fà&�Ø×-Ñ-°Ò2à#*¨5¡>�Là˜iÑ'�Fà!¤3 v£;°Ð2�Ø—	‘	× Ñ à×)Ñ)Ø˜Aœs 1 q¡5¨%Ó0´#°a¸!±e¸UÓ2CÐDØØð	ôð ˜‘E�Ø˜Ÿ	™	 !™Ó$Ø˜a !™e�q�AØ˜DŸI™I a™LÓ(Ø !˜	˜˜AØ ™
™ñ7#ô: �L‰LÐ:Ô;Ø-ˆCÜ˜cÓ"Ð"ô ˜Ÿ™Ñ$Ø'+§{¡{´:Ñ'>ˆD�I‰I�mÑ$ð �9‰9˜Ñ#Ø-1¯[©[¼Ñ-BÖC¨”r˜!˜s™(•|ÐCˆGÐCÜ'×+Ñ+¨G°S·X±X¸gÓ5FÓGˆD�Lð $øôA ò 	*Ü�L‰LÐ/Ô0Ø&ˆCÜ˜cÓ"¨Ð)ûð	*üòB Ds   Í._? Þ<`3ß?	`0à#`+à+`0)NN)r¶   r·   r¸   ÚformatÚformat_descriptionr  r   rõ  r»   rø  r§  rô  r¡  r
  r  r±  r$  r  r  rå  ræ  s   @rW   rè  rè  ,  se   ø„ Ø€FØ%ÐØ(-Ð%õ'òð6 ñó ðò	7ò'òRòLòô*ò
7ò*S&öj^Hra   rè  r1   r2   r@   rM   rN   r7   r>   r4   r8   r;   r<   rA   rD   rB   rO   ÚYCbCrrR   r?   r6   r9   r=   )r9   r=   c                 ó”  — 	 t         | j                     \  }}}}}}t	        |¬«      }| j
                  }| j                  }	 |d   }|€d}n|dk(  rd}n|dk(  rd	}t        xs |dk7  }d
|t        <   | j                  d   |t        <   | j                  d
   |t        <   d|v r|d   }nCd|v r=|d   }t        |t         «      r*t#        j$                  «       }|j'                  |«       |}ni }t(        j+                  dt-        |«      «       t        |t.        «      r|j1                  «       }|D ]t  }t        |t"        j$                  «      r'|t2        j4                  v r|j7                  |«      ||<   n|j                  |«      ||<   	 |j8                  |   |j8                  |<   Œv t=        | d«      rlt>        t@        tB        tD        tF        tH        fD ]I  }|| jJ                  v sŒ| jJ                  |   ||<   | jJ                  j8                  |   |j8                  |<   ŒK |j                  d| j                  j                  d«      «      }|r	||tL        <   tN        dft@        dftB        dft@        dftB        dft>        dftP        dftR        dftT        dftV        dff
D ]  \  }}||v sŒ||   ||<   Œ |j                  d«      }|r!d|t>        <   |d   |t@        <   |d
   |tB        <   |dk7  r)||tX        <   t[        |«      d
k7  rt[        |«      |t\        <   |�	||t^        <   |d
k7  r	||t`        <   tb        |vr
||tb        <   n¨| j                  dv rš|tb           dk(  rŽ| j                  dk(  rj| je                  «       }|j'                  «       }tg        |jh                  «      D ]/  }tg        |jj                  «      D ]  }|||f   dk(  rdnd|||f<   Œ Œ1 |} ntm        jn                  | «      } | j                  d v rs| jp                  js                  d!d"«      }g }t[        |«      d#z  }tg        d#«      D ]0  }||||z  ||d
z   z   D �cg c]  }|d$z  ‘Œ	 c}z  }|dgd$|z
  z  z  }Œ2 ||tt        <   t[        |«      | j                  d   |d   z  d%z   d&z  z  }|ra|j                  d'tv        «      } |dk(  rd
nty        | |z  | j                  d
   «      }!|dk(  r2ty        |!d%z   d&z  d&z  | j                  d
   «      }!n| j                  d
   }!|!dk(  rd
}!|dk(  rd
n||!z  }"| j                  d
   |!z   d
z
  |!z  }#|!|tz        <   |"d(k\  r!t2        j|                  |j8                  t~        <   |"f|#d
z
  z  || j                  d
   z  |"|#d
z
  z  z
  fz   |t~        <   t�        tg        d|"|#z  |"«      «      |t‚        <   t„        j                  |d
«      |t†        <   | j                  d)k(  r6tˆ        d*tŠ        d+ij�                  «       D ]  \  }$}%|j�                  |$|%«       Œ t�        t’        t”        t–        g}&|�r°d,|v rG|d,   }'t        |'t        «      r
|'dk  s|'d-kD  rd.}
t™        |
«      ‚|dk7  rd/}
t™        |
«      ‚|'|tš        <   t(        j+                  d0«       t(        j+                  d1t�        |j�                  «       «      «       d}(t=        |d2«      r5	 |jŸ                  d«       t¡        j¢                  |j¥                  «       «      }(i })|&tŠ        t~        t‚        tª        t¬        gz  }&tX        |d   i}*i }+t=        | d3«      r| j®                  j1                  «       }+i t±        | di «      ¥|+¥},t`        |,v r|,t`        = t³        j´                  |j�                  «       |,j�                  «       «      D ]ò  \  }$}%|$t2        j¶                  vr„t±        t"        j¸                  d4d5«      sŒ4|$|j8                  v r|j8                  |$   |)|$<   nGt        |%t        tº        t¼        t         f«      sŒvt3        j¾                  |$«      jÀ                  }-|-r|-|)|$<   |$|*vsŒ¡|$|&vsŒ¦t        |%t¼        «      r|%jÃ                  d6d7«      d8z   |*|$<   ŒÏt        |%tÄ        «      rt»        |%«      |*|$<   Œî|%|*|$<   Œô t`        |*v r(t[        |*t`           «      d
k(  r|*t`           d   |*t`        <   t(        j+                  d9t�        |*j�                  «       «      «       | j                  d:v rd;}t-        |*j�                  «       «      }.|.jÇ                  «        |||(||.|)f}/t#        jÈ                  | j                  d<|/|«      }	|	jË                  | jp                  d=| j                  z   «       	 |	jÃ                  d>«      d
d  \  }0}1|(s|jÍ                  |1«       |0rnŒ.|(r	 t¡        jÎ                  |(«       |0dk  rXd?|0› d@�}
t        |
«      ‚|&D ]  }$||$= Œ |jÑ                  |«      }2tÓ        jÔ                  | |dd=| j                  z   |2||d
ffg«       dA|v r|| _k        y y # t        $ r!}	d| j                  › d�}
t        |
«      |	‚d }	~	ww xY w# t        $ r1 | j                  j                  d«      }t        |t        «      rd }Y �
ŒAw xY w# t:        $ r Y �	Œmw xY wc c}w # t¦        j¨                  $ r Y �ŒÉw xY w# t        $ r Y �Œw xY w)BNzcannot write mode z as TIFFr^   r7  r   r!   r#   r)   r%   r   r   Útiffinfor"  zTiffinfo Keys: %srë  r;  Údescriptionr9  Úx_resolutionÚy_resolutionÚresolution_unitÚsoftwareÚ	date_timeÚartistÚ	copyrightr8  r   r/   )r1   r2   r1   éÿ   r<  rA   r=  r   r   r"   r$   Ú
strip_sizer   rt  )r   r   )r   r  é€   r  r�  r  Úqualityéd   zInvalid quality settingz5quality setting only supported for 'jpeg' compressionzSaving using libtiff encoderz	Items: %sr&  rò   Úlibtiff_support_custom_tagsFr  r  rc  zConverted items: %s)r6   r4   r:  r(  rE   i @  zencoder error z when writing image fileÚ_debug_multipage)lÚ	SAVE_INFOrþ  r¤  r“  r¾   ÚencoderinfoÚencoderconfigr  r£  r{   r  ÚWRITE_LIBTIFFrA  rõ   rF  rG  rñ   r	   ÚExifr±  r¥  r¦  rÅ  rÍ  rÙ  r   r  r  rÌ   rÚ   r¼   rS  rQ  rR  ÚIPTC_NAA_CHUNKÚPHOTOSHOP_CHUNKr  rë  rZ  ÚIMAGEDESCRIPTIONÚSOFTWAREÚ	DATE_TIMEÚARTISTÚ	COPYRIGHTrJ  rT   rL  rK  rI  rC  Úcopyr¢  ÚheightÚwidthr   Úinvertrÿ  Ú
getpaletter[  Ú
STRIP_SIZErp   rV  r  ÚSTRIPBYTECOUNTSrð   rµ  ÚCOMPRESSION_INFO_REVr?  rE  ÚREFERENCEBLACKWHITErå   Ú
setdefaultrW  rX  rU  ÚTILEBYTECOUNTSr$  ÚJPEGQUALITYr´  r§  ÚosÚdupr&  ÚioÚUnsupportedOperationÚTRANSFERFUNCTIONÚSUBIFDrò   r–   Ú	itertoolsÚchainÚLIBTIFF_CORErü  r|   rˆ   ræ   r  r"  re   ÚsortÚ_getencoderr-  rÂ  r0  rÃ  r
   Ú_saver…  )3rÿ  r”  rì  rg  r_   r]  rr  ÚbitsÚextrar3  rÒ   r³  r‡  rˆ  r7  r(  r  r"  r#  Úiccrç   r8  Úinverted_imÚpxrl  rk  ÚlutÚcolormapÚcolorsrª  r  rp  Úim_strip_sizeÚrows_per_stripÚstrip_byte_countsÚstrips_per_imagerò   r~   Ú	blocklistr‚  rñ  ÚtypesÚattsÚ
legacy_ifdÚsupplied_tagsr  rá  rn  Úerrcoderó   r°  s3                                                      rW   r©  r©  %  s»
  € ð"Ü6?ÀÇÁÑ6HÑ3ˆ�˜ ¨¨eô
   vÔ
.€Cà—.‘.€KØ×$Ñ$€MðØ! -Ñ0ˆð ÐØ‰Ø	˜Ò	#à‰Ø	˜Ò	&Ø*ˆäÒ3˜{¨eÑ3€Gð !"€CÔÑà—g‘g˜a‘j€CŒ
�OØ—w‘w˜q‘z€CŒÑð �[Ñ Ø˜:Ñ&‰Ø	�;Ñ	Ø˜6Ñ"ˆÜ�dœEÔ"Ü—:‘:“<ˆDØ�I‰I�dŒOØ‰DàˆÜ
‡L�LÐ$¤d¨4£jÔ1Ü�$Ô-Ô.Ø�z‰z‹|ˆØò ˆÜ�dœEŸJ™JÔ'¨C´8×3JÑ3JÑ,JØ—|‘| CÓ(ˆC�ŠHà—x‘x “}ˆC�‰Hð	Ø#Ÿ|™|¨CÑ0ˆC�K‰K˜Òðô ˆr�8Ôô ÜÜÜÜÜð
ò 
	:ˆCð �b—i‘iÒØŸ9™9 S™>��C‘Ø#%§9¡9×#4Ñ#4°SÑ#9�—‘˜CÒ ð
	:ð �/‰/˜-¨¯©¯©°]Ó)CÓ
D€CÙ
ØˆŒJ‰ô 
˜=Ð)Ü	�|Ð$Ü	�|Ð$Ü	�~Ð&Ü	�~Ð&Ü	Ð+Ð,Ü	�:ÐÜ	�KÐ Ü	�ÐÜ	�KÐ ðò )‰	ˆˆTð �;ÒØ" 4Ñ(ˆC�ŠHð)ð �/‰/˜%Ó
 €CÙ
Ø ˆŒOÑØ ™FˆŒLÑØ ™FˆŒLÑàˆt‚|Ø!ˆŒMÑÜˆt‹9˜Š>Ü#& t£9ˆC”Ñ ØÐØ!ˆŒLÑØ�‚{Ø"ˆŒLÑä!¨Ñ,Ø*/ˆÔ&Ò'Ø	�‰�JÑ	 3Ô'AÑ#BÀaÒ#GØ�7‰7�cŠ>ØŸ'™'›)ˆKØ×!Ñ!Ó#ˆBÜ˜;×-Ñ-Ó.ò =�Ü˜{×0Ñ0Ó1ò =�AØ$& q¨! t¡H°¢O™q¸�B�q˜!�t’Hñ=ð=ð ‰Bä—‘ Ó$ˆBà	‡w�w�+ÑØ�e‰e×Ñ˜u gÓ.ˆØˆÜ�S“˜Q‘ˆÜ�q“ò 	-ˆAØ¨#¨f°q©j¸6ÀQÈÁUÑ;KÐ*LÖM Q˜˜S›ÒMÑMˆHØ˜˜˜s V™|Ñ,Ñ,‰Hð	-ð !ˆŒH‰ä�‹Y˜2Ÿ7™7 1™:¨¨Q©Ñ/°!Ñ3¸Ñ9Ñ:€FáØ#Ÿ™¨´jÓAˆØ$¨šk™¬s°=ÀFÑ3JÈBÏGÉGÐTUÉJÓ/Wˆà˜&Ò Ü  >°AÑ#5¸!Ñ";¸qÑ!@À"Ç'Á'È!Á*ÓM‰NàŸ™ ™ˆØ˜ÒØˆØ# qš[™¨f°~Ñ.EÐØŸ™ ™
 ^Ñ3°aÑ7¸NÑJÐØ&€CŒÑØ˜EÒ!Ü'/§}¡}ˆ�‰”OÑ$Ø-Ð/Ð3CÀaÑ3GÑHØ�—‘˜‘ÑÐ/Ð3CÀaÑ3GÑHÑHðLñ €CŒÑô ÜˆaÐ"Ð%5Ñ5Ð7HÓIó€CŒÑô ,×/Ñ/°¸QÓ?€CŒÑà	‡w�w�'Òä˜fÜÐ!=ð
÷ ‰%‹'ò	'‰JˆC�ð �N‰N˜3 Õ&ð		'ô œJ¬´^ÐD€IÚØ˜Ñ#Ø! )Ñ,ˆGÜ˜g¤sÔ+¨w¸ª{¸gÈºmØ/�Ü  “oÐ%Ø˜fÒ$ØM�Ü  “oÐ%Ø&ˆC”Ñä�‰Ð3Ô4Ü�‰�[¤&¨¯©«Ó"5Ô6ØˆÜ�2�xÔ ðØ—‘˜”
Ü—f‘f˜RŸY™Y›[Ó)�ð
 ˆð 	ÜÜÜÜÜð
ñ 	
ˆ	ô ˜t A™wÐ'ˆð ˆ
Ü�2�uÔØŸ™Ÿ™›ˆJð Dœ7 2 x°Ó4ÐC¸
ÐCˆÜ˜=Ñ(ØœlÐ+ä#Ÿ/™/¨#¯)©)«+°}×7JÑ7JÓ7LÓMò 	&‰JˆC�ð
 œ(×/Ñ/Ñ/ÜœuŸz™zÐ+HÈ%ÔPØà˜#Ÿ+™+Ñ%Ø!$§¡¨SÑ!1�E˜#’JÜ$ U¬S´%¼¼eÐ,DÔEØä#Ÿ?™?¨3Ó/×4Ñ4�DÙØ%)˜˜c™
Ø˜$Š 3¨iÒ#7Ü˜e¤SÔ)Ø %§¡¨W°iÓ @À5Ñ H�D˜’IÜ ¤{Ô3Ü % e£�D˜’Ià %�D˜’Ið/	&ô2 ˜4Ñ¤C¨¬\Ñ(:Ó$;¸qÒ$@Ø!%¤lÑ!3°AÑ!6ˆD”Ñä�‰Ð*¬F°4·:±:³<Ó,@ÔAð �7‰7Ð'Ñ'ØˆGô
 �D—J‘J“LÓ!ˆØ�	‰	ŒØ�k 3¨°$¸Ð>ˆÜ×Ñ˜bŸg™g y°!°]ÓCˆØ	�
‰
�2—5‘5˜& 2§7¡7Ñ*Ô+ØàŸH™H YÓ/°°Ð3‰MˆG�TÙØ—‘˜”ÙØð ñ ðÜ—‘˜”ð �QŠ;Ø" 7 )Ð+CÐDˆCÜ˜#“,Ðð ò 	ˆCØ�C‘ð	à—‘˜"“ˆä�‰Ø��e˜V b§g¡gÑ-¨v¸ÀÈÐ7KÐLÐMô	
ð
 ˜[Ñ(à!ˆÕð )øô} ò "Ø" 2§7¡7 )¨8Ð4ˆÜ�c‹l Ð!ûð"ûô ò Ø—g‘g—k‘k -Ó0ˆÜ�k¤3Ô'àˆKúð	ûôT ò 	Úð	üòR Nøôp ×*Ñ*ò Úðûôr ò Úðúse   ‚h! Ái ÆjÐ:jÚ94j  æ"j: è!	iè*iéié6jêjê	jêjê j7ê6j7ê:	këkc                   ó¼   — e Zd Zg d¢Zh d£Zdd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zej                  fd
„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zy)ÚAppendingTiffWriter)r   r   r   r   r   r$   r   r   r   r   r$   r   r$   r   r   r   r$   >   é  é  é	  é   r   r   c                 ó   — t        |d«      r|| _        d| _        n$|| _        d| _        	 t	        ||rdnd«      | _        | j                  j                  «       | _        | j                  «        y # t
        $ r t	        |d«      | _        Y ŒLw xY w)Nr’  FTzw+bzr+b)	r¼   r†   Úclose_fprç   Úopenr“  r¡  Ú	beginningÚsetup)r}   Úfnrý  s      rW   r   zAppendingTiffWriter.__init__h  sy   € Ü�2�vÔØˆDŒFØ!ˆD�MàˆDŒIØ ˆDŒMð)Ü˜b©3¡%°EÓ:�”ð Ÿ™Ÿ™›ˆŒØ�
‰
�øô ò )Ü˜b %›�–ð)ús   «A0 Á0BÂBc                 ó¤  — | j                   j                  | j                  t        j                  «       d | _        d| _        | j                   j                  d«      x| _        }|sd| _	        y d| _	        |dk(  r| j                  d«       n$|dk(  r| j                  d«       nd	}t        |«      ‚| j                  «        | j                  «        y )
Nr   r   TFrZ   rÁ   rY   rÀ   zInvalid TIFF file header)r†   r§  rÅ  rž  ÚSEEK_SETÚwhereToWriteNewIFDOffsetÚoffsetOfNewPager’  ÚIIMMÚisFirstÚ	setEndianÚRuntimeErrorÚskipIFDsÚgoToEnd)r}   ÚiimmrÒ   s      rW   rÆ  zAppendingTiffWriter.setupv  s¢   € à�‰�‰�D—N‘N¤B§K¡KÔ0à(,ˆÔ%Ø ˆÔàŸ6™6Ÿ;™; q›>Ð)ˆŒ	�DÙàˆDŒLØàˆŒØ�=Ò Ø�N‰N˜3ÕØ�]Ò"Ø�N‰N˜3Õà,ˆCÜ˜sÓ#Ð#à�‰ŒØ�‰�ra   c                 óÜ  — | j                   ry | j                  j                  | j                  «       | j                  j	                  d«      }|sy || j
                  k7  rd}t        |«      ‚| j                  «       }|| j                  z  }| j                  j                  | j                  «       | j                  |«       | j                  j                  |«       | j                  «        y )Nr   z1IIMM of new page doesn't match IIMM of first page)rÍ  r†   r§  rË  r’  rÌ  rÏ  ÚreadLongrÊ  Ú	writeLongÚfixIFD)r}   rÒ  rÒ   Ú
ifd_offsets       rW   ÚfinalizezAppendingTiffWriter.finalize�  s¯   € Ø�<Š<Øð 	�‰�‰�D×(Ñ(Ô)à�v‰v�{‰{˜1‹~ˆÙð à�4—9‘9ÒØEˆCÜ˜sÓ#Ð#à—]‘]“_ˆ
Ø�d×*Ñ*Ñ*ˆ
Ø�‰�‰�D×1Ñ1Ô2Ø�‰�zÔ"Ø�‰�‰�JÔØ�‰�ra   c                 óD   — | j                  «        | j                  «        y rm   )rØ  rÆ  r�   s    rW   ÚnewFramezAppendingTiffWriter.newFrame¨  s   € à�‰ŒØ�
‰
�ra   c                 ó   — | S rm   r0   r�   s    rW   Ú	__enter__zAppendingTiffWriter.__enter__­  s   € Øˆra   c                 ó<   — | j                   r| j                  «        y)NF)rÃ  r0  )r}   Úexc_typeÚ	exc_valueÚ	tracebacks       rW   Ú__exit__zAppendingTiffWriter.__exit__°  s   € Ø�=Š=Ø�J‰JŒLØra   c                 óP   — | j                   j                  «       | j                  z
  S rm   )r†   r¡  rË  r�   s    rW   r¡  zAppendingTiffWriter.tellµ  s   € Ø�v‰v�{‰{‹}˜t×3Ñ3Ñ3Ð3ra   c                 óž   — |t         j                  k(  r|| j                  z  }| j                  j	                  ||«       | j                  «       S rm   )rž  rÉ  rË  r†   r§  r¡  )r}   r°  Úwhences      rW   r§  zAppendingTiffWriter.seek¸  s<   € Ø”R—[‘[Ò Ø�d×*Ñ*Ñ*ˆFà�‰�‰�F˜FÔ#Ø�y‰y‹{Ðra   c                 ó>  — | j                   j                  dt        j                  «       | j                   j	                  «       }d|dz  z
  }d|cxk  rdk  r'n n$| j                   j                  t        |«      «       | j                   j	                  «       | _        y )Nr   r5   )r†   r§  rž  ÚSEEK_ENDr¡  rÂ  rñ   rË  )r}   ÚposÚ	pad_bytess      rW   rÑ  zAppendingTiffWriter.goToEnd¿  sj   € Ø�‰�‰�A”r—{‘{Ô#Ø�f‰f�k‰k‹mˆð ˜˜r™‘Mˆ	ØˆyÔ˜2ÕØ�F‰F�L‰Lœ˜yÓ)Ô*Ø#Ÿv™vŸ{™{›}ˆÕra   c                 óŠ   — || _         | j                   dz   | _        | j                   dz   | _        | j                   dz   | _        y )Nr2   rR  ÚHHL)ÚendianÚlongFmtÚshortFmtÚ	tagFormat)r}   rë  s     rW   rÎ  zAppendingTiffWriter.setEndianÉ  s9   € ØˆŒØ—{‘{ SÑ(ˆŒØŸ™ cÑ)ˆŒØŸ™ uÑ,ˆ�ra   c                 ó&  — 	 | j                  «       }|dk(  r#| j                  j                  «       dz
  | _        y | j                  j	                  |«       | j                  «       }| j                  j	                  |dz  t        j                  «       Œ‘)Nr   r   r3   )rÔ  r†   r¡  rÊ  r§  Ú	readShortrž  ÚSEEK_CUR)r}   r×  Únum_tagss      rW   rÐ  zAppendingTiffWriter.skipIFDsÏ  sl   € ØØŸ™›ˆJØ˜QŠØ04·±·±³ÀÑ0A�Ô-Øà�F‰F�K‰K˜
Ô#Ø—~‘~Ó'ˆHØ�F‰F�K‰K˜ 2™¤r§{¡{Ô3ð ra   c                 ó8   — | j                   j                  |«      S rm   )r†   rÂ  r`  s     rW   rÂ  zAppendingTiffWriter.writeÚ  s   € Ø�v‰v�|‰|˜DÓ!Ð!ra   c                 ó|   — t        j                  | j                  | j                  j	                  d«      «      \  }|S )Nr   )r3  r4  rí  r†   r’  rh  s     rW   rð  zAppendingTiffWriter.readShortÝ  s)   € Ü—=‘= §¡°·±·±¸A³Ó?‰ˆØˆra   c                 ó|   — t        j                  | j                  | j                  j	                  d«      «      \  }|S r\   )r3  r4  rì  r†   r’  rh  s     rW   rÔ  zAppendingTiffWriter.readLongá  s)   € Ü—=‘= §¡¨t¯v©v¯{©{¸1«~Ó>‰ˆØˆra   c                 óü   — | j                   j                  dt        j                  «       | j                   j	                  t        j                  | j                  |«      «      }|�|dk7  rd|› d�}t        |«      ‚y y )Néþÿÿÿr   úwrote only ú bytes but wanted 4©	r†   r§  rž  rñ  rÂ  r3  r7  rì  rÏ  ©r}   r~   Úbytes_writtenrÒ   s       rW   ÚrewriteLastShortToLongz*AppendingTiffWriter.rewriteLastShortToLongå  óh   € Ø�‰�‰�BœŸ™Ô$ØŸ™Ÿ™¤V§[¡[°·±¸uÓ%EÓFˆØÐ$¨¸!Ò);Ø ˜Ð.AÐBˆCÜ˜sÓ#Ð#ð *<Ð$ra   c                 óü   — | j                   j                  dt        j                  «       | j                   j	                  t        j                  | j                  |«      «      }|�|dk7  rd|› d�}t        |«      ‚y y )Nr÷  r   rø  ú bytes but wanted 2)	r†   r§  rž  rñ  rÂ  r3  r7  rí  rÏ  rû  s       rW   ÚrewriteLastShortz$AppendingTiffWriter.rewriteLastShortì  sh   € Ø�‰�‰�BœŸ™Ô$ØŸ™Ÿ™¤V§[¡[°·±ÀÓ%FÓGˆØÐ$¨¸!Ò);Ø ˜Ð.AÐBˆCÜ˜sÓ#Ð#ð *<Ð$ra   c                 óü   — | j                   j                  dt        j                  «       | j                   j	                  t        j                  | j                  |«      «      }|�|dk7  rd|› d�}t        |«      ‚y y )Néüÿÿÿr   rø  rù  rú  rû  s       rW   ÚrewriteLastLongz#AppendingTiffWriter.rewriteLastLongó  rþ  ra   c                 ó¨   — | j                   j                  t        j                  | j                  |«      «      }|�|dk7  rd|› d�}t        |«      ‚y y )Nr   rø  r   )r†   rÂ  r3  r7  rí  rÏ  rû  s       rW   Ú
writeShortzAppendingTiffWriter.writeShortú  sR   € ØŸ™Ÿ™¤V§[¡[°·±ÀÓ%FÓGˆØÐ$¨¸!Ò);Ø ˜Ð.AÐBˆCÜ˜sÓ#Ð#ð *<Ð$ra   c                 ó¨   — | j                   j                  t        j                  | j                  |«      «      }|�|dk7  rd|› d�}t        |«      ‚y y )Nr   rø  rù  )r†   rÂ  r3  r7  rì  rÏ  rû  s       rW   rÕ  zAppendingTiffWriter.writeLong   sR   € ØŸ™Ÿ™¤V§[¡[°·±¸uÓ%EÓFˆØÐ$¨¸!Ò);Ø ˜Ð.AÐBˆCÜ˜sÓ#Ð#ð *<Ð$ra   c                 óX   — | j                  «        | j                  j                  «        y rm   )rØ  r†   r0  r�   s    rW   r0  zAppendingTiffWriter.close  s   € Ø�‰ŒØ�‰�‰�ra   c                 ó&  — | j                  «       }t        |«      D �]r  }t        j                  | j                  | j
                  j                  d«      «      \  }}}| j                  |   }||z  }|dk  }|s0| j                  «       }	|	| j                  z  }	| j                  |	«       || j                  v r«| j
                  j                  «       }
|r9| j                  ||dk(  |dk(  ¬«       | j
                  j                  |
dz   «       nP| j
                  j                  	«       | j                  ||dk(  |dk(  ¬«       | j
                  j                  |
«       d x}	}
�ŒE|s�ŒI| j
                  j                  dt        j                   «       �Œu y )Nr$   r   r   )ÚisShortÚisLong)rð  r¢  r3  r4  rî  r†   r’  Ú
fieldSizesrÔ  rË  r  ÚTagsr¡  Ú
fixOffsetsr§  rž  rñ  )r}   rò  rª  rò   Ú
field_typer«  Ú
field_sizeÚ
total_sizeÚis_localr°  Úcur_poss              rW   rÖ  zAppendingTiffWriter.fixIFD
  sP  € Ø—>‘>Ó#ˆä�x“ó 	,ˆAÜ%+§]¡]°4·>±>À4Ç6Á6Ç;Á;ÈqÃ>Ó%RÑ"ˆC�˜UàŸ™¨Ñ4ˆJØ# eÑ+ˆJØ! Q‘ˆHÙØŸ™›�Ø˜$×.Ñ.Ñ.�Ø×$Ñ$ VÔ,à�d—i‘iÑØŸ&™&Ÿ+™+›-�áØ—O‘OØ¨
°a©À*ÐPQÁ/ð $ô ð —F‘F—K‘K ¨!¡Õ,à—F‘F—K‘K Ô'Ø—O‘OØ¨
°a©À*ÐPQÁ/ð $ô ð —F‘F—K‘K Ô(à#'Ð'�šãà—‘—‘˜AœrŸ{™{Ö+ñ=	,ra   c                 ó.  — |s|sd}t        |«      ‚t        |«      D ]ö  }|r| j                  «       n| j                  «       }|| j                  z  }|rœ|dk\  r—|dk7  rd}t        |«      ‚| j                  |«       | j                  j                  dt        j                  «       | j                  t        j                  «       | j                  j                  dt        j                  «       ŒÒ|r| j                  |«       Œæ| j                  |«       Œø y )Nz offset is neither short nor longr   r   znot implementediöÿÿÿr$   )rÏ  r¢  rð  rÔ  rË  rý  r†   r§  rž  rñ  r  r   r  r  r  )r}   r«  r
  r  rÒ   rª  r°  s          rW   r  zAppendingTiffWriter.fixOffsets-  sÛ   € Ù™vØ4ˆCÜ˜sÓ#Ð#ä�u“ò 	-ˆAÙ)0�T—^‘^Ô%°d·m±m³oˆFØ�d×*Ñ*Ñ*ˆFÙ˜6 Uš?à˜A’:Ø+�CÜ& sÓ+Ð+ð ×+Ñ+¨FÔ3Ø—‘—‘˜C¤§¡Ô-Ø—‘¤§¡Ô.Ø—‘—‘˜AœrŸ{™{Õ+ÙØ×%Ñ% fÕ-à×$Ñ$ VÕ,ñ%	-ra   N)F)FF)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Õ  r0  rÖ  r  r0   ra   rW   r½  r½  K  sˆ   „ ò€Jò4 *€Dóòò2ò2ò
òò
4ð #%§+¡+ó ò-ò-ò	4ò"òòò$ò$ò$ò$ò$òò!,ôF-ra   r½  c                 ór  — | j                   j                  «       }| j                  }t        |j	                  dg «      «      }t        | d«      s|st        | ||«      S | j                  «       }	 t        |«      5 }| g|z   D ]y  }||_         ||_        t        |d«      sd}	n|j                  }	t        |	«      D ]@  }
|j                  |
«       |j                  «        t        |||«       |j                  «        ŒB Œ{ 	 d d d «       | j                  |«       y # 1 sw Y   ŒxY w# | j                  |«       w xY w)NÚappend_imagesrø  r   )r‡  r’  rˆ  rÅ  r£  r¼   r©  r¡  r½  rø  r¢  r§  r±  rÚ  )rÿ  r”  rì  r‡  rˆ  r  Úcur_idxÚtfÚimsÚnfrr@  s              rW   Ú	_save_allr  G  s  € Ø—.‘.×%Ñ%Ó'€KØ×$Ñ$€MÜ˜Ÿ™¨¸"Ó=Ó>€MÜ�2�zÔ"©=Ü�R˜˜XÓ&Ð&à�g‰g‹i€GðÜ  Ó$ð 	"¨Ø�t˜mÑ+ò "�Ø"-�”Ø$1�Ô!Ü˜s JÔ/Ø‘CàŸ,™,�Cä  ›:ò "�CØ—H‘H˜S”MØ—H‘H”JÜ˜#˜r 8Ô,Ø—K‘K•Mñ	"ñ"÷	"ð 	�‰�Õ÷	"ð 	"ûð 	�‰�Õús%   Á.D# Á9BDÃ=D# ÄD ÄD# Ä#D6z.tifz.tiffz
image/tiff)lr   r¤  Úloggingr  rž  r3  r%  Úcollections.abcr   Ú	fractionsr   Únumbersr   r   Ú r   r	   r
   r   r   r   Ú_binaryr   r  r   r  r   r   Ú	getLoggerr¶   r¥  rT  r‰  ÚIFD_LEGACY_APIr—  rÉ   rÇ   rF  rG  rJ  r?  rC  rD  r�  rµ  rL  rV  r˜  rQ  rR  rA  rS  r¢  rŽ  r�  r�  Ú	PREDICTORr[  rW  rX  rU  rœ  r£  rK  rI  Ú
JPEGTABLESrE  rš  r‘  r‹  rŒ  rZ  ÚEXIFIFDr  r�  ÚIMAGEJ_META_DATA_BYTE_COUNTSÚIMAGEJ_META_DATAr>  rå   r™  rO  rq   rM  r]   r`   rk   rt   rï   rE  re   r¾   r@  rç   r  ÚsetattrrÍ  ÚImageFileDirectoryrè  r†  r©  r½  r  Úregister_openrr  Úregister_saveÚregister_save_allÚregister_extensionsÚregister_mime)Úkr  s   00rW   ú<module>r1     sý  ðóR 
Û Û Û Û 	Û Û Ý *Ý ß $ç J× JÝ !Ý !Ý Ý à	ˆ×	Ñ	˜8Ó	$€ð €Ø€Ø€Ø€
à
€Ø
€ð €
Ø€Ø€Ø€Ø Ð Ø€	ØÐ Ø€Ø€Ø€Ø€Ø€Ø€ØÐ Ø€ØÐ Ø€Ø€	Ø	€Ø€	Ø€Ø€	Ø€
Ø€Ø€Ø	€Ø€Ø€Ø€
ØÐ ØÐ Ø€	Ø€Ø€Ø€
Ø
€Ø	€Ø€ð  %Ð ØÐ ðà€uðð €|ðð €xð	ð
 €xðð €zðð €{ðð €vðð Ððð 
ˆ=ðð 
ˆ:ðð 
Ððð 
ˆ>ðð 
ˆ=ðð 
ˆ?ðð  
ˆ6ð!ð" 
ˆ6ð#ð$ 
ˆ6ð%Ð ð* *:×)?Ñ)?Ó)A×B¡  A˜˜1™ÓBÐ ðzð ˆˆD�!�T˜2Ð ðzð ˆˆD�!�T˜2Ð ð	zð
 ˆˆD�!�T˜2Ð ðzð ˆˆD�!�T˜2Ð ðzð ˆˆD�!�T˜2Ð 
ðzð ˆˆD�!�T˜2Ð 
ðzð ˆˆD�!�T˜2Ð ðzð ˆˆD�!�T˜2Ð ðzð ˆˆD�!�T˜2Ð ðzð ˆˆD�!�T˜2Ð ðzð ˆˆD�!�T˜2Ð ðzð ˆˆD�!�T˜2Ð ðzð ˆˆD�!�T˜2Ð ðzð  ˆˆD�!�T˜2Ð ð!zð" ˆˆD�!�T˜2Ð ð#zð$ ˆˆD�!�T˜2Ð ð%zð& ˆˆD�!�T˜2Ð ñ'zð( ˆˆD�!�T˜2Ð ð)zð* ˆˆD�!�T˜2Ð ð+zð, ˆˆD�!�T˜2Ð ð-zð. ˆˆD�!�T˜2Ð ð/zð0 ˆˆD�!�T˜2Ð ð1zð2 ˆˆD�!�T˜2Ð ð3zð4 ˆˆD�!�T˜2Ð ð5zð6 ˆˆD�!�T˜2Ð ð7zð8 ˆˆD�!�T˜2Ð ð9zð: ˆˆD�!�T˜2Ð ð;zð< ˆˆD�!�T˜2Ð ð=zð> ˆˆD�!�T˜2Ð 
ð?zð@ ˆˆD�!�T˜2Ð 
ðAzðB ˆˆD�!�T˜2Ð 
ðCzðD ˆˆD�!�T˜2Ð 
ðEzðF ˆˆD�!�T˜2Ð ðGzðH ˆˆD�!�T˜2Ð òIzðJ ˆˆD�!�U˜BÐÐ!1ðKzðL ˆˆD�!�U˜BÐÐ!1ðMzðN ˆˆD�!�U˜BÐÐ!1ðOzðP ˆˆD�!�U˜BÐÐ!3ðQzðR ˆˆD�!�U˜BÐÐ!2ðSzðT ˆˆD�!�U˜BÐ ðUzðV ˆˆD�!�U˜BÐ ðWzðX ˆˆD�!�U˜BÐ ðYzðZ ˆˆD�!�U˜BÐ ð[zð\ ˆˆD�!�U˜BÐ ð]zð^ ˆˆD�!�U˜BÐ ð_zð` ˆˆD�!�U˜BÐ ðazðb ˆˆD�!�U˜BÐ ðczðd ˆˆD�!�U˜BÐ ðezðf ˆˆD�!�V˜TÐ" Lðgzðh ˆˆD�!�V˜TÐ" Lðizðj ˆˆD�!�Y Ð# ^òkzðl ˆˆD�!�Y Ð# ^ðmzðn ˆˆD�!�Y Ð#Ð%5ðozðp ˆˆD�!�Y Ð#Ð%5ðqzðr ˆˆD�!�\ 2Ð&Ð(8ðszðt ˆˆD�!�\ 2Ð&Ð(8ðuzðv ˆˆD�!�\ 4Ð(Ð*:ðwzðx ˆˆD�!�\ 4Ð(Ð*:ðyzðz ˆˆD�!�_ fÐ-Ð/@ð{zð| ˆˆD�!�_ fÐ-Ð/@ð}zð~ ˆˆD�!Ð'¨Ð3Ð5Gðzð@ ˆˆD�!Ð'¨Ð3Ð5GðAzðB ˆˆD�!�\ 4Ð(Ð*:ðCzðD ˆˆD�!�\ 4Ð(Ð*:ðEzðF ˆˆD�!�_ fÐ-Ð/@ðGzðH ˆˆD�!�_ fÐ-Ð/@ðIzðJ ˆˆD�!Ð'¨Ð3Ð5GðKzðL ˆˆD�!Ð'¨Ð3Ð5GòMzðN ˆˆD�!�\ 4Ð(Ð*:ðOzðP ˆˆD�!�\ 4Ð(Ð*:ðQzðR ˆˆD�!�_ fÐ-Ð/@ðSzðT ˆˆD�!�_ fÐ-Ð/@ðUzðV ˆˆD�!Ð'¨Ð3Ð5GðWzðX ˆˆD�!Ð'¨Ð3Ð5GðYzðZ ˆˆD�!�\ 6Ð*Ð,<ð[zð\ ˆˆD�!�\ 6Ð*Ð,<ð]zð^ ˆˆD�!�\ 2Ð&Ð(:ð_zð` ˆˆD�!�\ 2Ð&Ð(:ðazðb ˆˆD�!Ð% rÐ*Ð,@ðczðd ˆˆD�!Ð% rÐ*Ð,@ðezðf ˆˆD�!Ð% tÐ,Ð.Bðgzðh ˆˆD�!Ð% tÐ,Ð.Bðizðj ˆˆD�!Ð% tÐ,Ð.Bðkzðl ˆˆD�!Ð% tÐ,Ð.Bðmzðn ˆˆD�!Ð% tÐ,Ð.Bòozðp ˆˆD�!Ð% tÐ,Ð.Bðqzðr ˆˆD�!�T˜2Ð ðszðt ˆˆD�!�T˜2Ð ðuzðv ˆˆD�!�T˜2Ð ðwzðx ˆˆD�!�T˜2Ð ðyzðz ˆˆD�!�T˜2Ð ð{zð| ˆˆD�!�T˜2Ð ð}zð~ ˆˆD�!�T˜2Ð ðzð@ ˆˆD�!�T˜2Ð ðAzðB ˆˆD�!�T˜2Ð ðCzðD ˆˆD�!�T˜2Ð ðEzðF ˆˆD�!�T˜2Ð ðGzðH ˆˆD�!�T˜2Ð ðIzðJ ˆˆD�!�T˜2Ð 
ðKzðL ˆˆD�!�T˜2Ð 
ðMzðN ˆˆD�!�V˜TÐ" LðOzðP ˆˆD�!�V˜TÐ" LñQzðR ˆˆD�!�T˜2Ð ØˆˆD�!�T˜2Ð ØˆˆD�!�\ 2Ð&Ð(8ØˆˆD�!�\ 2Ð&Ð(8ØˆˆD�!�_ dÐ+Ð->ØˆˆD�!�_ dÐ+Ð->ØˆˆD�!Ð'¨Ð0Ð2DØˆˆD�!Ð'¨Ð0Ð2DØˆˆD�!Ð% rÐ*Ð,@ØˆˆD�!�T˜2Ð 
ØˆˆD�!�T˜2Ð 
ð ˆˆD�!�Y Ð# _ØˆˆD�!�Y Ð# _ØˆˆD�!�Y Ð# ^ØˆˆD�!�Y Ð# ^ñsz€	ñx ÑA°yÔAÓAÐ ò€ò"ò%òð" €Ø€ô'�(ô 'ôDG$˜Nô G$ðT (6Ð Ô $Ø(7Ð Ô %Ø�—‘“ò J�I€CˆØ�<‰<˜˜SÓ!€DÙÐ! 7¨T¡>°>À#Ñ3FÀqÑ3IÔJÙÐ! 8¨d¡?°OÀCÑ4HÕIðJð �O S¨$ôXÐ1ô Xðx +Ð ôVH�I×'Ñ'ô VHð@ð ˆ#ˆ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¨Ð-ð#ð$ ˆx˜˜Q  5¨$Ð/ð%ð& ˆg�r˜1˜a ¨Ð-ð'ð( ˜˜Q  5¨$Ð/Ø˜˜Q  5¨$Ð/ò+€	ò2c"÷L	y-ñ y-òxð> €× Ñ �M×(Ñ(¨-¸Ô AØ €× Ñ �M×(Ñ(¨%Ô 0Ø €× Ñ ˜×,Ñ,¨iÔ 8à €× Ñ ˜-×.Ñ.°¸Ð0AÔ Bà €× Ñ �M×(Ñ(¨,Õ 7ùóE? Cs   Ä]