
4ec           @  s8  d  d l  m Z m 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 d  d l m Z m Z d d l m Z m Z m Z m Z d d l m Z m Z d d l m Z d d	 l m Z y d  d
 l m Z Wn! e k
 rd  d
 l m Z n Xd Z e  Z! e  Z" e  Z# e$ Z% d Z& d Z' d Z( d Z) d Z* d Z+ d Z, d Z- d Z. d Z/ d Z0 d Z1 d Z2 d Z3 d Z4 d Z5 d Z6 d Z7 d Z8 d Z9 d  Z: d! Z; d" Z< d# Z= d$ Z> d% Z? d& Z@ d' ZA d( ZB d) ZC d* ZD d+ ZE d, ZF d- ZG d. ZH d/ ZI d0 ZJ i d1 d 6d2 d3 6d4 d5 6d6 d7 6d8 d9 6d: d; 6d< d= 6d> d? 6d@ dA 6dB dC 6dD dE 6dF dG 6dH dI 6dJ dK 6dL dM 6dN dO 6dP dQ 6ZK dR   eK jL   D ZM io dS dT f e& dU d f d d f f  f 6dS dT f e' dU d f d d f f  f 6dS dV f e& dU d f d3 d f f  f 6dS dV f e' dU d f d3 d f f  f 6dS dS f e& d d f d d f f  f 6dS dS f e' d d f d d f f  f 6dS dW f e& d d f d3 d f f  f 6dS dW f e' d d f d3 d f f  f 6dX dY f e& dU d f d d3 f f  f 6dX dY f e' dU d f d d3 f f  f 6dX dZ f e& dU d f d3 d3 f f  f 6dX dZ f e' dU d f d3 d3 f f  f 6dX d[ f e& d d f d d3 f f  f 6dX d[ f e' d d f d d3 f f  f 6dX d\ f e& d d f d3 d3 f f  f 6dX d\ f e' d d f d3 d3 f f  f 6dX d] f e& dU d f d d7 f f  f 6dX d] f e' dU d f d d7 f f  f 6dX d^ f e& dU d f d3 d7 f f  f 6dX d^ f e' dU d f d3 d7 f f  f 6dX d_ f e& d d f d d7 f f  f 6dX d_ f e' d d f d d7 f f  f 6dX d` f e& d d f d3 d7 f f  f 6dX d` f e' d d f d3 d7 f f  f 6dX da f e& dU d f d d? f f  f 6dX da f e' dU d f d d? f f  f 6dX db f e& dU d f d3 d? f f  f 6dX db f e' dU d f d3 d? f f  f 6dX dX f e& d d f d d? f f  f 6dX dX f e' d d f d d? f f  f 6dX dc f e& d d f d3 d? f f  f 6dX dc f e' d d f d3 d? f f  f 6dd de f e& d d f d df f f  f 6dd dd f e& d d f d dg f f  f 6dh dh f e' d d f d dg f f  f 6di dj f e& d d3 f d dg f f  f 6di dk f e' d d3 f d dg f f  f 6dl dm f e& dU d5 f d dn f f  f 6dl do f e' dU d5 f d dn f f  f 6di dp f e& d d f d dn f f  f 6di dq f e& d d3 f d dn f f  f 6di dr f e' d d3 f d dn f f  f 6dl dm f e& d d5 f d dn f f  f 6dl do f e' d d5 f d dn f f  f 6ds ds f e& d d f d d? d? f d3 f f 6ds ds f e' d d f d d? d? f d3 f f 6dt dt f e& d3 d f d d? d? d? f f  f 6dt dt f e' d3 d f d d? d? d? f f  f 6dt du f e& d3 d f d3 d? d? d? f f  f 6dt du f e' d3 d f d3 d? d? d? f f  f 6dv dv f e& d3 d f d d? d? d? d? f f  f 6dv dv f e' d3 d f d d? d? d? d? f f  f 6dw dw f e& d3 d f d d? d? d? d? f dU f f 6dw dw f e' d3 d f d d? d? d? d? f dU f f 6dw dx f e& d3 d f d d? d? d? d? d? f dU dU f f 6dw dx f e' d3 d f d d? d? d? d? d? f dU dU f f 6dw dy f e& d3 d f d d? d? d? d? d? d? f dU dU dU f f 6dw dy f e' d3 d f d d? d? d? d? d? d? f dU dU dU f f 6dv dz f e& d3 d f d d? d? d? d? f d f f 6dv dz f e' d3 d f d d? d? d? d? f d f f 6dv d{ f e& d3 d f d d? d? d? d? d? f d dU f f 6dv d{ f e' d3 d f d d? d? d? d? d? f d dU f f 6dv d| f e& d3 d f d d? d? d? d? d? d? f d dU dU f f 6dv d| f e' d3 d f d d? d? d? d? d? d? f d dU dU f f 6dv dv f e& d3 d f d d? d? d? d? f d3 f f 6dv dv f e' d3 d f d d? d? d? d? f d3 f f 6dv d} f e& d3 d f d d? d? d? d? d? f d3 dU f f 6dv d} f e' d3 d f d d? d? d? d? d? f d3 dU f f 6dv d~ f e& d3 d f d d? d? d? d? d? d? f d3 dU dU f f 6dv d~ f e' d3 d f d d? d? d? d? d? d? f d3 dU dU f f 6dv dv f e& d3 d f d d? d? d? d? f d f f 6dv dv f e' d3 d f d d? d? d? d? f d f f 6dt d f e& d3 d f d dg dg dg f f  f 6dt d f e' d3 d f d dg dg dg f f  f 6dv d f e& d3 d f d dg dg dg dg f f  f 6dv d f e' d3 d f d dg dg dg dg f f  f 6dw d f e& d3 d f d dg dg dg dg f dU f f 6dw d f e' d3 d f d dg dg dg dg f dU f f 6dv d f e& d3 d f d dg dg dg dg f d f f 6dv d f e' d3 d f d dg dg dg dg f d f f 6dv d f e& d3 d f d dg dg dg dg f d3 f f 6dv d f e' d3 d f d dg dg dg dg f d3 f f 6d d f e& d5 d f d d f f  f 6d d f e' d5 d f d d f f  f 6d d f e& d5 d f d3 d f f  f 6d d f e' d5 d f d3 d f f  f 6d d f e& d5 d f d d3 f f  f 6d d f e' d5 d f d d3 f f  f 6d d f e& d5 d f d3 d3 f f  f 6d d f e' d5 d f d3 d3 f f  f 6d d f e& d5 d f d d7 f f  f 6d d f e' d5 d f d d7 f f  f 6d d f e& d5 d f d3 d7 f f  f 6d d f e' d5 d f d3 d7 f f  f 6d d f e& d5 d f d d? f f  f 6d d f e' d5 d f d d? f f  f 6d d f e& d5 d f d d? d? f d3 f f 6d d f e' d5 d f d d? d? f d3 f f 6d d f e& d5 d f d3 d? f f  f 6d d f e' d5 d f d3 d? f f  f 6d d f e& d9 d f d d? d? d? d? f f  f 6d d f e' d9 d f d d? d? d? d? f f  f 6d d f e& d9 d f d d? d? d? d? d? f dU f f 6d d f e' d9 d f d d? d? d? d? d? f dU f f 6d d f e& d9 d f d d? d? d? d? d? d? f dU dU f f 6d d f e' d9 d f d d? d? d? d? d? d? f dU dU f f 6d d f e& d9 d f d dg dg dg dg f f  f 6dt dw f e& d; d f d d? d? d? f f  f 6dt dw f e' d; d f d d? d? d? f f  f 6d d f e& d? d f d d? d? d? f f  f 6d d f e' d? d f d d? d? d? f f  f 6ZN d d d d g ZO d   ZP d   ZQ d   ZR i  ZS i  ZT d e f d     YZU d e f d     YZV eS eV _S eT eV _T x` e jL   D]R \ ZW ZX eX jY d d  ZX eZ eV d eX eS eW d  eZ eV d eX eT eW  qW[S [T [W [X d eV f d     YZ[ e[ Z\ d e j f d     YZ] i dS e& d d d f e^ f dS 6dX e& d d d? f e^ f dX 6ds e& d d d? d? f d3 f ds 6d e& d5 d d? f e^ f d 6d e& d5 d d? d? f d3 f d 6dq e& d d3 dn f e^ f di 6dd e& d d dg f e^ f dd 6dj e& d d3 dg f e^ f dj 6dm e& d d5 dn f e^ f dl 6dt e& d3 d d? d? d? f e^ f dt 6dw e& d3 d d? d? d? d? f dU f dw 6dv e& d3 d d? d? d? d? f d3 f dv 6d e& d9 d d? d? d? d? f e^ f d 6d e& d; d d? d? d? f e^ f d 6d e& d? d d? d? d? f e^ f d 6dr e' d d3 dn f e^ f dr 6dh e' d d dg f e^ f dh 6dk e' d d3 dg f e^ f dk 6do e' d d5 dn f e^ f do 6Z_ d   Z` d f  d     YZa d   Zb e jc e] jd e] eP  e je e] jd e`  e jf e] jd eb  e jg e] jd d d g  e jh e] jd d  d S(   i(   t   divisiont   print_functionN(   t   Fraction(   t   Numbert   Rationali   (   t   Imaget	   ImageFilet   ImagePalettet   TiffTags(   t   i8t   o8(   t   py3(   t   TYPES(   t   MutableMappings   1.3.5t   IIt   MMi   i  i  i  i  i
  i  i  i  i  i  i  i  i  i(  i-  i1  i2  i;  i=  i@  iD  iR  iS  i[  i  i  i  iI  is  ii  i  i  i  i  t   rawt
   tiff_ccitti   t   group3i   t   group4i   t   tiff_lzwi   t	   tiff_jpegi   t   jpegi   t   tiff_adobe_deflatei   t   tiff_raw_16i  t   packbitsi  t   tiff_thunderscani)  t   tiff_deflatei  t   tiff_sgilogit  t   tiff_sgilog24iu  t   lzmaim  t   zstdiP  t   webpiQ  c         C  s   i  |  ] \ } } | |  q S(    (    (   t   .0t   kt   v(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys
   <dictcomp>   s   	 t   1s   1;Ii    s   1;IRs   1;Rt   Ls   L;2Is   L;2IRs   L;2s   L;2Rs   L;4Is   L;4IRs   L;4s   L;4Rs   L;Is   L;IRs   L;Rs   I;16s   I;12i   i   s   I;16Bt   Is   I;16Ss   I;16BSt   Fs   F;32Fi    s   F;32BFs   I;32Ns   I;32Ss   I;32BSt   LAt   RGBs   RGB;Rt   RGBAt   RGBXt   RGBXXt   RGBXXXt   RGBat   RGBaXt   RGBaXXt   RGBAXt   RGBAXXi  s   RGB;16Ls   RGB;16Bs   RGBA;16Ls   RGBA;16Bs   RGBX;16Ls   RGBX;16Bs   RGBa;16Ls   RGBa;16Bt   Ps   P;1s   P;1Rs   P;2s   P;2Rs   P;4s   P;4Rt   PAs   P;Rt   CMYKt   CMYKXt   CMYKXXs   CMYK;16Lt   LABs   MM *s   II* s   MM* s   II *c         C  s   |  d  t  k S(   Ni   (   t   PREFIXES(   t   prefix(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   _accept  s    c         C  sR   t  |   d k } t | r% d |  n |   j |  } | rN | d  d  d  S| S(   Ni   i(   t   abst   IFDRationalt   limit_rational(   t   valt   max_valt   invt   n_d(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   _limit_rational  s    %c           C  s$   t  j j j d  d j d  d S(   Ns   
i    s   Version i   (   R   t   coret   libtiff_versiont   split(    (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   _libtiff_version  s    R=   c           B  s  e  Z d  Z d) Z d d  Z e d    Z e 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 d'  Z' e d(  Z( RS(*   s    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
    t
   _numeratort   _denominatort   _vali   c         C  s   | |  _  | |  _ t d  |  _ t | t  rT | j |  _ | j |  _  | |  _ n  t | t  r | j |  _  | j |  _ | j |  _ d S| d k r t d  |  _ d S| d k r t |  |  _ n t | |  |  _ d S(   s   
        :param value: either an integer numerator, a
        float/rational/other number, or an IFDRational
        :param denominator: Optional integer denominator
        i   Ni    t   nan(	   RI   RH   t   floatRJ   t
   isinstanceR   t	   numeratort   denominatorR=   (   t   selft   valueRO   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   __init__3  s$    		c         C  s   |  j  S(   N(   RH   (   t   a(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyRN   Q  s    c         C  s   |  j  S(   N(   RI   (   RS   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyRO   U  s    c         C  sA   |  j  d k r |  j |  j  f S|  j j |  } | j | j  f S(   s   

        :param max_denominator: Integer, the maximum denominator value
        :returns: Tuple of (numerator, denominator)
        i    (   RO   RN   RJ   t   limit_denominator(   RP   t   max_denominatort   f(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR>   Y  s    c         C  s   t  t |  j   S(   N(   t   strRL   RJ   (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   __repr__f  s    c         C  s   |  j  j   S(   N(   RJ   t   __hash__(   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyRY   i  s    c         C  s   |  j  | k S(   N(   RJ   (   RP   t   other(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   __eq__l  s    c           s     f d   } | S(   Nc           s   t  |  j    |   S(   N(   t   getattrRJ   (   RP   t   args(   t   op(    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   delegatep  s    (    (   R^   R_   (    (   R^   s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt	   _delegateo  s    t   __add__t   __radd__t   __sub__t   __rsub__t   __div__t   __rdiv__t   __mul__t   __rmul__t   __truediv__t   __rtruediv__t   __floordiv__t   __rfloordiv__t   __mod__t   __rmod__t   __pow__t   __rpow__t   __pos__t   __neg__t   __abs__t	   __trunc__t   __lt__t   __gt__t   __le__t   __ge__t   __nonzero__t   __ceil__t	   __floor__t	   __round__(   RH   RI   RJ   ()   t   __name__t
   __module__t   __doc__t	   __slots__RR   t   propertyRN   RO   R>   RX   RY   R[   R`   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rk   Rl   Rm   Rn   Ro   Rp   Rq   Rr   Rs   Rt   Ru   Rv   Rw   Rx   Ry   Rz   R{   R|   (    (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR=   %  sL   					t   ImageFileDirectory_v2c           B  s  e  Z d  Z d 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 e s d   Z n  d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z e e e e j d d f e j d d f e j  d d f e j! d d f e j" d d  f e j# d! d" f e j$ d# d$ f g   e d% d%  e% d&   Z& e d%  d'    Z' e d( d%  e% d)   Z( e d(  d*    Z) e d+ d,  e% d-   Z* e d+  d.    Z+ e d/ d%  e% d0   Z, e d/  d1    Z- e d2 d,  e% d3   Z. e d2  d4    Z/ d5   Z0 d6   Z1 d7 d8  Z2 d9   Z3 RS(;   s  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
    `~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
                   ~PIL.TiffTags.TYPES`

    .. versionadded:: 3.0.0
    s   II*     c         C  s   | d  t  k r# t d |   n  | d k	 r5 | n | d  |  _ |  j t k r] d |  _ n' |  j t k rx d |  _ n t d   |  j   |  j d | d  \ |  _	 t
 |  _ d S(	   s  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.
        i   s%   not a TIFF file (header %r not valid)i   t   >t   <s   not a TIFF IFDR%   N(   R9   t   SyntaxErrort   Nonet   _prefixR   t   _endianR   t   resett   _unpackt   nextt   Falset   _legacy_api(   RP   t   ifhR:   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyRR     s    
c         C  s   |  j  S(   N(   R   (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   <lambda>  t    c         C  s   |  j  S(   N(   t   _offset(   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     R   c         C  s   |  j  S(   N(   R   (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     R   c         C  s   t  d   d  S(   Ns"   Not allowing setting of legacy api(   t	   Exception(   RP   RQ   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt
   legacy_api  s    c         C  s:   i  |  _  i  |  _ i  |  _ i  |  _ d  |  _ d  |  _ d  S(   N(   t   _tags_v1t   _tags_v2t   _tagdatat   tagtypeR   t   _nextR   (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     s    					c         C  s   t  t |    S(   N(   RW   t   dict(   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   __str__  s    c         C  s   d   |  j    D S(   s   
        :returns: dict of name|key: value

        Returns the complete tag dictionary, with named tags where possible.
        c         S  s+   i  |  ]! \ } } | t  j |  j  q S(    (   R   t   lookupt   name(   R!   t   codeRQ   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys
   <dictcomp>  s   	 (   t   items(   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   named  s    c         C  s    t  t |  j  t |  j  B S(   N(   t   lent   setR   R   (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   __len__  s    c         C  s   | |  j  k rX |  j | } |  j | } |  j | \ } } | |  | |  j  |  | <n  |  j  | } |  j r t | t t f  r | f } n  | S(   N(   R   R   R   t   _load_dispatchR   RM   t   tuplet   bytes(   RP   t   tagt   datat   typt   sizet   handlerR?   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   __getitem__  s    c         C  s   | |  j  k p | |  j k S(   N(   R   R   (   RP   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   __contains__  s    c         C  s
   | |  k S(   N(    (   RP   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   has_key  s    c         C  s   |  j  | | |  j  d  S(   N(   t   _setitemR   (   RP   R   RQ   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   __setitem__  s    c           s	  t  t t f } t s% | t f 7} n  t j |    t | |  rL | g n | } | |  j k rv  j	 r}   j	 |  j | <qvt j
 |  j | <t d   | D  r t j |  j | <qvt d   | D  rt d   | D  r t j |  j | <qst j |  j | <qvt d   | D  r1t j |  j | <qvt rct d   | D  rst j |  j | <qsqvt j |  j | <n  |  j | t j
 k rt rt | t  r| j d d  n | g } nM |  j | t j k rg  | D]' } t | t  rt |  n | ^ q} n  t   f d   | D  } | r7|  j n |  j }   j d	 k sw  j d  k rt |  d	 k r| r| r|  j | t j t j g k r| f } n  y | \ | | <Wqt k
 rt j d
 | t |  f  | d | | <qXn
 | | | <d  S(   Nc         s  s   |  ] } t  | t  Vq d  S(   N(   RM   R=   (   R!   R#   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>+  s    c         s  s   |  ] } t  | t  Vq d  S(   N(   RM   t   int(   R!   R#   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>-  s    c         s  s   |  ] } | d k  Vq d S(   i   i   Ni   (    (   R!   R#   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>.  s    c         s  s   |  ] } t  | t  Vq d  S(   N(   RM   RL   (   R!   R#   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>2  s    c         s  s   |  ] } t  | t  Vq d  S(   N(   RM   RW   (   R!   R#   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>6  s    t   asciit   replacec         3  s   |  ] }   j  |  Vq d  S(   N(   t   cvt_enum(   R!   RQ   (   t   info(    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>C  s    i   s=   Metadata Warning, tag %s had too many entries: %s, expected 1i    (   R   R   RW   R   t   unicodeR   R   RM   R   t   typet	   UNDEFINEDt   allt   RATIONALt   SHORTt   LONGt   DOUBLEt   ASCIIt   encodeR   RL   R   R   R   t   lengthR   R   t   SIGNED_RATIONALt
   ValueErrort   warningst   warn(   RP   R   RQ   R   t	   basetypest   valuesR#   t   dest(    (   R   s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     sR    	-7(c         C  s=   |  j  j | d   |  j j | d   |  j j | d   d  S(   N(   R   t   popR   R   R   (   RP   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   __delitem__d  s    c         C  s    t  t |  j  t |  j  B S(   N(   t   iterR   R   R   (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   __iter__i  s    c         C  s   t  j |  j | |  S(   N(   t   structt   unpackR   (   RP   t   fmtR   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR   l  s    c         G  s   t  j |  j | |  S(   N(   R   t   packR   (   RP   R   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   _packo  s    c           s      f d   } | S(   Nc           sV   d d l  m } |  j j d  rB |  j d j d d  |   <n   |  f t   <|  S(   Ni   (   R   t   load_i   t   _t    (   R   R   R}   t
   startswithR   R   (   t   funcR   (   t   idxR   (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt	   decorators  s
     (    (   R   R   R   (    (   R   R   s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   _register_loaderr  s    c           s     f d   } | S(   Nc           s   |  t    <|  S(   N(   t   _write_dispatch(   R   (   R   (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR   ~  s    
(    (   R   R   (    (   R   s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   _register_writer}  s    c           sr   d d l  m } |  \ }   } | | | <t j d      t    f d  f t | <  f d   t | <d  S(   Ni   (   R   t   =c           s&   |  j  d j t |      |  S(   Ns   {}{}(   R   t   formatR   (   RP   R   R   (   R   R   (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     s    c           s    d j     f d   | D  S(   NR   c         3  s!   |  ] }  j    |  Vq d  S(   N(   R   (   R!   RQ   (   R   RP   (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>  s    (   t   join(   RP   R   (   R   (   RP   s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     s    (   R   R   R   t   calcsizet   TrueR   R   (   t   idx_fmt_nameR   R   R   (    (   R   R   s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   _register_basic  s    
t   Ht   shortR%   t   longt   bs   signed bytet   hs   signed shortt   ls   signed longRV   RL   t   dt   doublei   c         C  s   | S(   N(    (   RP   R   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt	   load_byte  s    c         C  s   | S(   N(    (   RP   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt
   write_byte  s    i   c         C  s,   | j  d  r | d  } n  | j d d  S(   Ns    is   latin-1R   (   t   endswitht   decode(   RP   R   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   load_string  s    c         C  s?   t  j j d k r' | j d d  } n  d | j d d  d S(   Ni   R   R   R   s    (   t   syst   version_infot   majorR   R   (   RP   RQ   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   write_string  s    i   i   c           sq   |  j  d j t |  d  |  }  f d     t   f d   t | d  d  d  | d d  d   D  S(   Ns   {}Li   c           s     r |  | f St  |  |  S(   N(   R=   (   RS   R   (   R   (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   combine  s    c         3  s$   |  ] \ } }   | |  Vq d  S(   N(    (   R!   t   numt   denom(   R   (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>  s    i   i   (   R   R   R   R   t   zip(   RP   R   R   t   vals(    (   R   R   s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   load_rational  s    %c           s   d j    f d   | D  S(   NR   c         3  s*   |  ]  }   j  d  t | d   Vq d S(   t   2Li   i   NI       (   R   RC   (   R!   t   frac(   RP   (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>  s    (   R   (   RP   R   (    (   RP   s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   write_rational  s    i   c         C  s   | S(   N(    (   RP   R   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   load_undefined  s    c         C  s   | S(   N(    (   RP   RQ   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   write_undefined  s    i
   c           sq   |  j  d j t |  d  |  }  f d     t   f d   t | d  d  d  | d d  d   D  S(   Ns   {}li   c           s     r |  | f St  |  |  S(   N(   R=   (   RS   R   (   R   (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     s    c         3  s$   |  ] \ } }   | |  Vq d  S(   N(    (   R!   R   R   (   R   (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>  s    i   i   (   R   R   R   R   R   (   RP   R   R   R   (    (   R   R   s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   load_signed_rational  s    %c           s   d j    f d   | D  S(   NR   c         3  s*   |  ]  }   j  d  t | d   Vq d S(   R   i   i   Ni   @(   R   RC   (   R!   R   (   RP   (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>  s    (   R   (   RP   R   (    (   RP   s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   write_signed_rational  s    c         C  sH   | j  |  } t |  | k rD t d d | t |  f   n  | S(   Ns   Corrupt EXIF data.  s,   Expecting to read %d bytes but only got %d. (   t   readR   t   IOError(   RP   t   fpR   t   ret(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   _ensure_read  s    c         C  s  |  j    | j   |  _ y>xt |  j d |  j | d   d  D]} |  j d |  j | d   \ } } } } t r t j |  j	 } t
 j | d  } t d | | | | f d d	 n  y |  j | \ }	 }
 Wn* t k
 rt rE t d
 |  qE qE n X| |	 } | d k r| j   } |  j d |  \ } t r`t d | | f d d	 n  | j |  t j | |  } | j |  n
 | |  } t |  | k rt j d | t |  | f  qE n  | sqE n  | |  j | <| |  j | <t rE | d k rt d |  q.t d |  |  qE qE W|  j d |  j | d   \ |  _ Wn' t k
 r} t j t |   d  SXd  S(   NR   i   i    t   HHL4si   t   unknowns   tag: %s (%d) - type: %s (%d)t   endR   s   - unsupported typei   R%   s$   Tag Location: %s - Data Location: %ssX   Possibly corrupt EXIF data.  Expecting to read %d bytes but only got %d. Skipping tag %si    s   - value: <table: %d bytes>s   - value:(   R   t   tellR   t   rangeR   R  t   DEBUGR   R   R   R   t   gett   printR   t   KeyErrort   seekR   t
   _safe_readR   R   R   R   R   R   R   RW   (   RP   R  t   iR   R   t   countR   t   tagnamet   typnamet	   unit_sizeR   R   t   heret   offsett   msg(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   load  s\    
/*



(i    c         C  sq  |  j  d t |  j   } g  } | t |  t |  j  d d } d  } xt |  j j    D]\ } } | t k r t |  } n  |  j j |  } t	 r t
 d | | | f  n  t | t  r | n | f } |  j | |  |  }	 t	 rrt j |  j }
 t j | d  } t
 d |
 | | | f d d t |	  d	 k rbt
 d
 t |	   qrt
 d |  n  | t j t j t j g k rt |	  } n t |  } t |	  d k r| j | | | |	 j d d  d f  qb | j | | | |  j  d |  |	 f  | t |	  d d d 7} qb W| d  k	 r| | \ } } } } }	 |	 rjt d   n  |  j  d |  j d |  d |  } | | | | |	 f | | <n  xm | D]e \ } } } } }	 t	 d k rt
 | | | t |  t |	   n  | |  j  d | | | |  7} qW| d 7} xD | D]< \ } } } } }	 | |	 7} t |	  d @r-| d 7} q-q-W| S(   NR   i   i   s   Tag %s, Type: %s, Value: %sR  s   save: %s (%d) - type: %s (%d)R  R   i   s   - value: <table: %d bytes>s   - value:s    R   R%   i   i   s&   multistrip support not yet implementedi    R  s       (   R   R   R   R   t   sortedR   t   STRIPOFFSETSR   R
  R	  R  RM   R   R   R   R   R   R   t   BYTER   R   t   appendt   ljustt   NotImplementedErrorR   t   repr(   RP   R  t   resultt   entriest   stripoffsetsR   RQ   R   R   R   R  R  R  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   tobytes%  sX    %"+( &%#

c         C  sn   | j    d k r8 | j |  j |  j d d d   n  | j    } |  j |  } | j |  | t |  S(   Ni    t   HLi*   i   (   R  t   writeR   R   R"  R   (   RP   R  R  R  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   saveh  s    &N(4   R}   R~   R   R   RR   R   R:   R  R   t   setterR   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   listt   mapR   R   R   t   SIGNED_BYTEt   SIGNED_SHORTt   SIGNED_LONGt   FLOATR   R   R   R   R   R   R   R   R   R   R   R   R  R  R"  R%  (    (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     sh   								F										>CR   R   R   t   write_t   ImageFileDirectory_v1c           B  sz   e  Z d  Z d   Z e d    Z e d    Z e d    Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z RS(   s  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,
    `~PIL.TiffImagePlugin.ImageFileDirectory_v1.tagtype`.

    Values are returned as a tuple.

    ..  deprecated:: 3.0.0
    c         O  s    t  j |  | |  t |  _ d  S(   N(   R   RR   R   R   (   RP   R]   t   kwargs(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyRR     s    c         C  s   |  j  S(   N(   R   (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     R   c         C  s   |  j  S(   N(   R   (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     R   c         C  s:   |  d | j   } | j | _ | j | _ | j | _ | S(   s3   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   (   t   clst   originalt   ifd(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   from_v2  s
    c         C  sL   t  d |  j  } t |  j  | _ t |  j  | _ t |  j  | _ | S(   s3   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   (   RP   R2  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   to_v2  s
    c         C  s   | |  j  k p | |  j k S(   N(   R   R   (   RP   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     s    c         C  s    t  t |  j  t |  j  B S(   N(   R   R   R   R   (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     s    c         C  s    t  t |  j  t |  j  B S(   N(   R   R   R   R   (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     s    c         C  s.   x' t  t f D] } |  j | | |  q Wd  S(   N(   R   R   R   (   RP   R   RQ   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     s    c         C  s   | |  j  k ru |  j | } |  j | } |  j | \ } } x6 t t f D]% } |  j | | |  | |  |  qI Wn  |  j  | } t | t t	 f  s | f } n  | S(   N(
   R   R   R   R   R   R   R   RM   R   R   (   RP   R   R   R   R   R   t   legacyR?   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR     s    &(   R}   R~   R   RR   R   t   tagst   tagdatat   classmethodR3  R4  R   R   R   R   R   (    (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR.  ~  s   						t   TiffImageFilec           B  s   e  Z d  Z d Z e Z d   Z e d    Z e d    Z	 d   Z
 d   Z d   Z e d    Z e j d	    Z d
   Z d   Z d   Z d   Z d   Z RS(   t   TIFFs
   Adobe TIFFc         C  s   |  j  j d  } t |  |  _ d |  _ |  _ |  j j |  _ |  _	 d |  _
 |  j  |  _ g  |  _ d |  _ t r t d  t d |  j  t d |  n  |  j d  d S(   s#   Open the first image in a TIFF filei   is   *** TiffImageFile._open ***s
   - __first:s   - ifh: i    N(   R  R   R   t   tag_v2R   R   R2  R   t   _TiffImageFile__firstt   _TiffImageFile__nextt   _TiffImageFile__framet   _TiffImageFile__fpt
   _frame_post	   _n_framesR	  R  t   _seek(   RP   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   _open  s    			
c         C  su   |  j  d  k rn |  j   } |  j t |  j   x* |  j  d  k r] |  j |  j   d  q4 W|  j |  n  |  j  S(   Ni   (   RA  R   R  RB  R   R@  R  (   RP   t   current(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   n_frames  s    c         C  s   |  j  S(   N(   t   _is_animated(   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   is_animated  s    c         C  sR   |  j  |  s d S|  j |  t j |  j  t j j |  j |  j  |  _ d S(   s%   Select a given frame as current imageN(	   t   _seek_checkRB  R   t   _decompression_bomb_checkR   RD   t   newt   modet   im(   RP   t   frame(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR    s
    c         C  s  |  j  |  _ x0t |  j  | k r>|  j s< t d   n  t rn t d | |  j |  j |  j j	   f  n  |  j j	   |  j j
 |  j  |  j j |  j  t r t d |  j j	    n  |  j j |  j  |  j j |  _ |  j d k r| d |  _ n  t |  j  d k r,|  j d k |  _ n  |  j d 7_ q W|  j j
 |  j |  |  j j |  j  t j |  j  |  _ |  _ | |  _ |  j   d  S(   Ns   no more images in TIFF files9   Seeking to frame %s, on frame %s, __next %s, location: %ss   Loading tags, location: %si    i   (   R?  R  R   R@  R=  t   EOFErrorR	  R  R>  R  R  R  R;  R  R   RA  RF  R.  R3  R   R2  t   _setup(   RP   RM  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyRB    s2    	&	c         C  s   |  j  S(   s   Return the current frame number(   R>  (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR  6  s    c         C  s   |  j  S(   N(   t   _size(   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR   :  s    c         C  s   t  j d t  | |  _ d  S(   Ns   Setting the size of a TIFF image directly is deprecated, and will be removed in a future version. Use the resize method instead.(   R   R   t   DeprecationWarningRP  (   RP   RQ   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR   >  s    c         C  s&   |  j  r |  j   St t |   j   S(   N(   t   use_load_libtifft   _load_libtifft   superR9  R  (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR  G  s    	
c         C  s   |  j  r i t j d 6t j d 6t j d 6t j d 6t j d 6t j d 6t j d 6j	 |  j   } | d  k	 r |  j j |  |  _ |  j j |  _ q n  |  j s t |  _ n  d  S(   Ni   i   i   i   i   i   i   (   t   _tile_orientationR   t   FLIP_LEFT_RIGHTt
   ROTATE_180t   FLIP_TOP_BOTTOMt	   TRANSPOSEt
   ROTATE_270t
   TRANSVERSEt	   ROTATE_90R
  R   RL  t	   transposeR   RP  RF  R   t!   _close_exclusive_fp_after_loading(   RP   t   method(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   load_endL  s    	





	c   	      C  s  t  j  j |   } |  j d k r0 t d   n  |  j s= | S|  j   t |  j  d k sk t d   n  |  j d d } t |  j d d  } yP t |  j	 d  o t
 j |  j	 j    } t |  j	 d  r |  j	 j   n  Wn t k
 r t } n X| r| | d <n  t  j |  j d	 t |  |  j  } y | j |  j |  Wn t k
 rjt d
   n X|  j o{|  j } t |  j	 d  rt rt d  n  | j |  j	 j    \ } } n | rt rt d  n  | s|  j	 j d  n  | j d  \ } } nA t r!t d  n  |  j	 j d  | j |  j	 j    \ } } g  |  _ d |  _ |  j   | r|  j	 j    d |  _	 n  | d k  rt |   n  t  j  j |   S(   s]    Overload method triggered when we detect a compressed tiff
            Calls out to libtiff s   cannot load this imagei   s   Not exactly one tilei    i   t   filenot   flushi   t   libtiffs   Couldn't set the imaget   getvalues5   have getvalue. just sending in a string from getvalues3   have fileno, calling fileno version of the decoder.t   fpfps+   don't have fileno or getvalue. just readingN(!   R   R  t   tileR   R   t   load_prepareR   R'  t   hasattrR  t   ost   dupRa  Rb  R   t   _getdecoderRK  R   t   decoderconfigt   setimageRL  R   t   _exclusive_fpRF  R	  R  R   Rd  R  R   t   readonlyR`  t   close(	   RP   t   pixelt   extentsR]   R  t   decodert   close_self_fpt   nt   err(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyRS  `  s`    	
*

!		
c      	   C  s  d |  j  k r t d   n  t |  j  j t d  |  _ |  j  j t d  |  _ |  j  j t d  } |  j d k r d } n  |  j  j t	 d  } t
 r t d  t d |  j  t d	 |  t d
 |  j  t d |  t d |  j j d   n  t |  j  j t   } t |  j  j t   } | | f |  _ t
 rRt d |  j  n  |  j  j t d1  } t |  d k rt |  t |  k od k n rd2 } n  |  j  j t d3  } |  j  j t d4  } | d5 k rd } n | d k rd } n d } | t |  7} | t |  k rEt |  d k rE| | } n  |  j  j | | | | | f }	 t
 ryt d |	  n  y t |	 \ |  _ }
 Wn0 t k
 rt
 rt d  n  t d   n Xt
 rt d |
  t d |  j  n  |  j |  j d <|  j  j t d  } |  j  j t d  } | r| r|  j  j t   } | d k rwt | d  t | d  f |  j d <q| d k rt | d d  t | d d  f |  j d <q| d0 k rt | d  t | d  f |  j d <| | f |  j d <q| | f |  j d <n  d } } } g  |  _" t# p=|  j d k |  _$ |  j$ r7| d k r|	 d  d6 |	 d }	 t
 rt d |	  n  t |	 \ |  _ }
 n  |
 d k rd  }
 n  d! |
 k r|
 j% d! d"  }
 n  d# |
 k r|
 j% d# d"  }
 n  |
 |  j t& |  j  j' f } |  j" j( d$ d d | | f d | f  nt) |  j  k sUt* |  j  k rt) |  j  k r|  j  t) } |  j  j t+ |  } |  j d } n1 |  j  t* } |  j  j d%  } |  j  j d&  } x>| D]} | | | k r| t, |  d } n d } |
 } |  j d k r-|
 | } | | } n  | t |  d f } |  j" j( |  j | | t | | |  t | | |  f | | f  | | } | |  j d k rd | | } } | |  j d k rd } } | d 7} qqqWn t
 rt d'  n  t d(   t- |  j  k r.|  j  t- |  j d) <n  |  j d7 k rg  |  j  t. D] } t/ | d,  ^ qK} t0 j1 d- d. j2 |   |  _3 n  |  j  j d/  |  _4 d0 S(8   s-   Setup this image object based on current tagsi  s+   Windows Media Photo files not yet supportedi   i    R   i   s   *** Summary ***s   - compression:s   - photometric_interpretation:s   - planar_configuration:s   - fill_order:s   - YCbCr subsampling:i  s   - size:i   i   i   i   i   s   format key:s   - unsupported formats   unknown pixel modes   - raw mode:s   - pil mode:t   compressiong      ?t   dpigRQ@t
   resolutionR   s   I;16s   I;16Ns   ;16Bs   ;16Ns   ;16LRc  iB  iC  s   - unsupported data organizations   unknown data organizationt   icc_profileR3   R4   i   s   RGB;LR   i  N(   i   (   i   (   i   (    (   i   i   i   (   i   (   R3   R4   (5   R;  R   t   COMPRESSION_INFOR
  t   COMPRESSIONt   _compressiont   PLANAR_CONFIGURATIONt   _planar_configurationt   PHOTOMETRIC_INTERPRETATIONt	   FILLORDERR	  R  R   R   t
   IMAGEWIDTHt   IMAGELENGTHRP  R   t   SAMPLEFORMATR   t   maxt   mint   BITSPERSAMPLEt   EXTRASAMPLESR:   t	   OPEN_INFORK  R  R   R   t   X_RESOLUTIONt   Y_RESOLUTIONt   RESOLUTION_UNITR   Rf  t   READ_LIBTIFFRR  R   R   R  R  R  t   TILEOFFSETSt   ROWSPERSTRIPt   sumt
   ICCPROFILEt   COLORMAPR
   R   R   R   t   paletteRU  (   RP   t   photot	   fillordert   xsizet   ysizet   sampleFormatt	   bps_tuplet   extra_tuplet	   bps_countt   keyt   rawmodet   xrest   yrest   resunitt   xt   yt   layerRS   t   offsetsR   t   wR  t   stridet   tile_rawmodeR   R  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyRO    s    	
:			$		*2'			+
	)


*!c         C  sO   z> y& |  j  |  j k r( |  j  j   n  Wn t k
 r< n XWd  d  |  _  Xd  S(   N(   R?  R  Rp  t   AttributeErrorR   (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt
   _close__fp  s     (   R}   R~   R   t   format_descriptionR   R^  RC  R   RE  RG  R  RB  R  R   R&  R  R`  RS  RO  R  (    (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR9    s    	
							]	t   YCbCrc   !      C  sc  y# t  |  j \ } } } } } } Wn$ t k
 rI t d |  j   n Xt d |  }	 |  j j d |  j j d   }
 |
 d  k r d }
 n  t	 p |
 d k } t
 |  d d  |	 t <|  j d |	 t <|  j d |	 t <|  j j d i   } t rt d	 t |   n  t | t  r)| j   } n  xM | D]E } | j |  |	 | <y | j | |	 j | <Wq0t k
 rtq0Xq0Wt |  d
  rx] t t t t t t f D]@ } | |  j k r|  j | |	 | <|  j j | |	 j | <qqWn  d |  j k r|  j d |	 t <n  x t  d f t d f t d f t d f t d f t d f t! d f t" d f t# d f t$ d f g
 D]/ \ } } | |  j k rl|  j | |	 | <qlqlW|  j j d  } | rd |	 t <t% | d d  |	 t <t% | d d  |	 t <n  | d5 k r2| |	 t& <t' |  d k r2t' |  |	 t( <q2n  | d  k	 rK| |	 t) <n  | d k rd| |	 t* <n  | |	 t+ <|  j d6 k r|  j, j- d d  } t. d   | D  |	 t/ <n  t' |  |  j d | d d d } |  j d |	 t0 <| |  j d |	 t1 <d |	 t2 <t3 j |
 d  |	 t4 <| rd |  j k r|  j d } t | t%  sf| d k  sf| d  k rut5 d!   n  |
 d" k rt5 d#   n  | |	 t6 <n  t rt d$  t d% t7 |	 j8     n  d } t | d&  ry& | j9 d  t: j; | j<    } Wqt= j> k
 rqXn  i  } t/ t? t* t1 t2 t@ g } i  } | d | t& <i  } t |  d'  rx|  jA j   } n  xztB jC |	 j8   t
 |  d
 i   j8   | j8    D]E\ } } | tD jE k rrtD jF |  jG tD jH k rqn  tI jJ jK tL    tI jJ jK d(  k  rqn  | |	 j k r8|	 j | | | <qrt | t% tM tN tO f  pftP oft | tQ  srqqrn  | | k r| | k rt | tP rtN n tQ  r| jR d) d*  d+ | | <qt | tS  rtM |  | | <q| | | <qqWt rt d, t7 | j8     n  |  j d7 k r0d/ } n  t | j8    } | jT   | |
 | | | | f } tU jV |  j d0 | |  jW  } | jX |  j, d8 |  j  xB tY r| jR d9  \ } } } | s| jZ |  n  | rPqqW| d k  rDt d3 |   qDnA |	 j[ |  }  t\ j] |  | d d: |  j |  | | d f f g  d4 |  j k r_|	 |  _^ n  d  S(;   Ns   cannot write mode %s as TIFFR:   Rw  R   R  i   i    t   tiffinfos   Tiffinfo Keys: %sR;  Rz  t   descriptionRy  t   x_resolutiont   y_resolutiont   resolution_unitt   softwaret	   date_timet   artistt	   copyrightRx  i   g      ?R3   R4   R)   s   RGB;Lc         s  s   |  ] } t  |  d  Vq d S(   i   N(   R	   (   R!   R#   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pys	   <genexpr>  s    i   i   t   qualityid   s   Invalid quality settingR   s5   quality setting only supported for 'jpeg' compressions   Saving using libtiff encoders	   Items: %sRa  R   s   4.0R   R   s    s   Converted items: %ss   I;16Bs   I;16s   I;16NRc  i   i   s(   encoder error %d when writing image filet   _debug_multipage(   i   (   R3   R4   (   s   I;16Bs   I;16(   i    i    i @  (   i    i    (_   t	   SAVE_INFORK  R  R   R   t   encoderinfoR
  R   R   t   WRITE_LIBTIFFR\   R~  R   R  R  R	  R  R'  RM   R.  R4  R   R   Rh  R  R  R  t   IPTC_NAA_CHUNKt   PHOTOSHOP_CHUNKt   XMPR;  R  t   IMAGEDESCRIPTIONt   SOFTWAREt	   DATE_TIMEt   ARTISTt	   COPYRIGHTR   R  R   t   SAMPLESPERPIXELR  R  R  RL  t
   getpaletteR   R  R  t   STRIPBYTECOUNTSR  t   COMPRESSION_INFO_REVR|  R   t   JPEGQUALITYR  R   R  Ri  Rj  Ra  t   iot   UnsupportedOperationt   REFERENCEBLACKWHITEt   TRANSFERFUNCTIONR   t	   itertoolst   chainR   t   LIBTIFF_CORER   R   R   t	   distutilst   versiont   StrictVersionRG   RL   RW   R   R   R   R   R=   t   sortR   t   _getencodert   encoderconfigRm  R   R$  R%  R   t   _saveR  (!   RL  R  t   filenameR  R:   R  R   t   bitst   extraR2  Rw  Rc  R   R  R   Rx  t   lutR  R  t   _fpt   typest	   blocklistt   attst
   legacy_ifdR   RQ   R6  RS   t   eR   t   sR   R  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR    s    #!	!									


'
(
			7				
	,t   AppendingTiffWriterc           B  s"  e  Z d  d d d d d d d d d d d d g Z d d d d d	 d
 h Z e d  Z d   Z d   Z d   Z d   Z	 d   Z
 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 e e d   Z RS(!   i    i   i   i   i   i  i   iD  i  i  i	  c         C  s   t  | d  r$ | |  _ t |  _ n` | |  _ t |  _ y% t j | | rN d n d  |  _ Wn& t k
 r t j | d  |  _ n X|  j j	   |  _
 |  j   d  S(   NR   s   w+bs   r+b(   Rh  RV   R   t   close_fpR   R   R  t   openR   R  t	   beginningt   setup(   RP   t   fnRJ  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyRR     s    			%c         C  s   |  j  j |  j t j  d  |  _ d |  _ |  j  j d  |  _	 } | sW t
 |  _ d  St |  _ | d k r| |  j d  n( | d k r |  j d  n t d   |  j   |  j   d  S(   Ni    i   s   II* R   s   MM *R   s   Invalid TIFF file header(   RV   R  R  Ri  t   SEEK_SETR   t   whereToWriteNewIFDOffsett   offsetOfNewPageR   t   IIMMR   t   isFirstR   t	   setEndiant   RuntimeErrort   skipIFDst   goToEnd(   RP   R  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR    s    				
c         C  s   |  j  r d  S|  j j |  j  |  j j d  } | s< d  S| |  j k rZ t d   n  |  j   } | |  j 7} |  j j |  j  |  j	 |  |  j j |  |  j
   d  S(   Ni   s1   IIMM of new page doesn't match IIMM of first page(   R  RV   R  R  R   R  R  t   readLongR  t	   writeLongt   fixIFD(   RP   R  t	   IFDoffset(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   finalize  s    	c         C  s   |  j    |  j   d  S(   N(   R  R  (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   newFrame  s    
c         C  s   |  S(   N(    (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt	   __enter__  s    c         C  s   |  j  r |  j   n  t S(   N(   R  Rp  R   (   RP   t   exc_typet	   exc_valuet	   traceback(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   __exit__  s    	c         C  s   |  j  j   |  j S(   N(   RV   R  R  (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR    s    c         C  s<   | t  j k r | |  j 7} n  |  j j | |  |  j   S(   N(   Ri  R  R  RV   R  R  (   RP   R  t   whence(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR    s    c         C  s   |  j  j d t j  |  j  j   } d | d } d | k  oJ d k  n rn |  j  j t t |    n  |  j  j   |  _ d  S(   Ni    i   (	   RV   R  Ri  t   SEEK_ENDR  R$  R   t	   bytearrayR  (   RP   t   post   padBytes(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR    s    c         C  s=   | |  _  |  j  d |  _ |  j  d |  _ |  j  d |  _ d  S(   NR%   R   t   HHL(   t   endiant   longFmtt   shortFmtt	   tagFormat(   RP   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR    s    	c         C  sy   xr t  rt |  j   } | d k r; |  j j   d |  _ Pn  |  j j |  |  j   } |  j j | d t j  q Wd  S(   Ni    i   i   (	   R   R  RV   R  R  R  t	   readShortRi  t   SEEK_CUR(   RP   R  t   numTags(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR    s    	c         C  s   |  j  j |  S(   N(   RV   R$  (   RP   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR$    s    c         C  s(   t  j |  j |  j j d   \ } | S(   Ni   (   R   R   R  RV   R   (   RP   RQ   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR    s    $c         C  s(   t  j |  j |  j j d   \ } | S(   Ni   (   R   R   R  RV   R   (   RP   RQ   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR    s    $c         C  sf   |  j  j d t j  |  j  j t j |  j |   } | d  k	 rb | d k rb t	 d |   n  d  S(   Nii   s    wrote only %u bytes but wanted 4(
   RV   R  Ri  R  R$  R   R   R  R   R  (   RP   RQ   t   bytesWritten(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   rewriteLastShortToLong  s    !c         C  sf   |  j  j d t j  |  j  j t j |  j |   } | d  k	 rb | d k rb t	 d |   n  d  S(   Nii   s    wrote only %u bytes but wanted 2(
   RV   R  Ri  R  R$  R   R   R  R   R  (   RP   RQ   R  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   rewriteLastShort!  s    !c         C  sf   |  j  j d t j  |  j  j t j |  j |   } | d  k	 rb | d k rb t	 d |   n  d  S(   Nii   s    wrote only %u bytes but wanted 4(
   RV   R  Ri  R  R$  R   R   R  R   R  (   RP   RQ   R  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   rewriteLastLong'  s    !c         C  sP   |  j  j t j |  j |   } | d  k	 rL | d k rL t d |   n  d  S(   Ni   s    wrote only %u bytes but wanted 2(   RV   R$  R   R   R  R   R  (   RP   RQ   R  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt
   writeShort-  s    !c         C  sP   |  j  j t j |  j |   } | d  k	 rL | d k rL t d |   n  d  S(   Ni   s    wrote only %u bytes but wanted 4(   RV   R$  R   R   R  R   R  (   RP   RQ   R  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR  2  s    !c         C  s   |  j    |  j j   d  S(   N(   R  RV   Rp  (   RP   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyRp  7  s    
c         C  st  |  j    } xat |  D]S} t j |  j |  j j d   \ } } } |  j | } | | } | d k } | s |  j   }	 |	 |  j	 7}	 |  j
 |	  n  | |  j k rM|  j j   }
 | r |  j | d | d k d | d k |  j j |
 d  nE |  j j |	  |  j | d | d k d | d k |  j j |
  d  }	 }
 q | r |  j j d t j  q q Wd  S(   Ni   i   t   isShorti   t   isLong(   R  R  R   R   R  RV   R   t
   fieldSizesR  R  R
  t   TagsR  t
   fixOffsetsR  R   Ri  R  (   RP   R  R  R   t	   fieldTypeR  t	   fieldSizet	   totalSizet   isLocalR  t   curPos(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR  ;  s.    *
c         C  s   | r | r t  d   n  x t |  D] } | rB |  j   n	 |  j   } | |  j 7} | r | d k r | d k r t  d   n  |  j |  |  j j d t j	  |  j
 t j  |  j j d t j	  q* | r |  j |  q* |  j |  q* Wd  S(   Ns    offset is neither short nor longi   i   s   not implementedii   (   R  R  R  R  R  R  RV   R  Ri  R  R  R   R   R	  R
  (   RP   R  R  R  R  R  (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR  ^  s    (   R}   R~   R  R  R   RR   R  R  R  R  R  R  R  R  R  R  R  R  R$  R  R  R  R	  R
  R  R  Rp  R  R  (    (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyR    sH   									
												#c      
   C  s$  |  j  j   } |  j } t | j d g    } t |  d  rW | rW t |  | |  S|  j   } z t |   } x |  g | D] } | | _  | | _ t | d  s d }	 n	 | j	 }	 xE t
 |	  D]7 }
 | j |
  | j   t | | |  | j   q Wq WWd  QXWd  |  j |  Xd  S(   Nt   append_imagesRE  i   (   R  t   copyR  R'  R
  Rh  R  R  R  RE  R  R  R  R  (   RL  R  R  R  R  R  t   cur_idxt   tft   imst   nfrR   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt	   _save_allv  s(    					
s   .tifs   .tiffs
   image/tiff(i   t
   __future__R    R   t   distutils.versionR  R  R  Ri  R   R   R   t	   fractionsR   t   numbersR   R   R   R   R   R   R   t   _binaryR	   R
   t   _utilR   R   t   collections.abcR   t   ImportErrort   collectionst   __version__R   R	  R  R  R   t   IFD_LEGACY_APIR   R   R  R  R  R|  R  R  R  R  R  R  R  R  R  R~  R  R  R  R  R  t	   PREDICTORR  R  R  R  t
   JPEGTABLESR  R  R  R  R  t   EXIFIFDR  R  t   IMAGEJ_META_DATA_BYTE_COUNTSt   IMAGEJ_META_DATAR{  R   R  R  R9   R;   RC   RG   R   R   R=   R   R   R   R   t   setattrR.  t   ImageFileDirectoryR9  R   R  R  R  R  t   register_openR   t   register_savet   register_save_allt   register_extensionst   register_mime(    (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/TiffImagePlugin.pyt   <module>*   s  "
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++..1177==1177==1177==11++..111111%%%%%%%%%%%%%%++%%..44::.+++.				v 		X "%%%""		