§
    þÜÒjÊ;  ã                  ó”  — d dl mZ ddh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
mZmZ dZerd d	lmZ d d
lmZ  G d„ d¦  «        Zd(d„Zd)d„Zd*d„Z G d„ de
j
        ¦  «        Zd+d„Zd,d%„Z e	j        ej        ee¦  «          e	j        ej        e¦  «          e	j        ej        g d&¢¦  «          e	j        ej        d'¦  «         dS )-é    )ÚannotationsÚioÚstructN)Úcasté   )ÚImageÚ	ImageFileÚImagePaletteÚ_binaryF)ÚCallable)ÚIOc                  óL   — e Zd ZdZddd	„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dS )Ú	BoxReaderz}
    A small helper class to read fields stored in JPEG2000 header boxes
    and to easily step into and read sub-boxes.
    éÿÿÿÿÚfpú	IO[bytes]ÚlengthÚintÚreturnÚNonec                óF   — || _         |dk    | _        || _        d| _        d S )Nr   r   )r   Ú
has_lengthr   Úremaining_in_box)Úselfr   r   s      úaC:\Users\johnn\AppData\Local\Programs\Python\Python311\Lib\site-packages\PIL/Jpeg2KImagePlugin.pyÚ__init__zBoxReader.__init__'   s)   € ØˆŒØ  Aš+ˆŒØˆŒØ "ˆÔÐÐó    Ú	num_bytesÚboolc                óŽ   — | j         r'| j                             ¦   «         |z   | j        k    rdS | j        dk    r|| j        k    S dS )NFr   T)r   r   Útellr   r   )r   r   s     r   Ú	_can_readzBoxReader._can_read-   sM   € ØŒ?ð 	˜tœwŸ|š|™~œ~°	Ñ9¸D¼KÒGÐGà�5ØÔ  AÒ%Ð%à Ô 5Ò5Ð5à�4r   Úbytesc                óŽ  — |                       |¦  «        sd}t          |¦  «        ‚| j                             ¦   «         |z   dk    rd}t          |¦  «        ‚| j                             |¦  «        }t          |¦  «        |k     r%d|› dt          |¦  «        › d�}t          |¦  «        ‚| j        dk    r| xj        |z  c_        |S )NzNot enough data in headerì            úBox length too largezExpected to read z bytes but only got ú.r   )r"   ÚSyntaxErrorr   r!   ÚreadÚlenÚOSErrorr   )r   r   ÚmsgÚdatas       r   Ú_read_byteszBoxReader._read_bytes7   sË   € Ø�~Š~˜iÑ(Ô(ð 	#Ø-ˆCÝ˜cÑ"Ô"Ð"ØŒ7�<Š<‰>Œ>˜IÑ%¨Ò.Ð.Ø(ˆCÝ˜cÑ"Ô"Ð"àŒw�|Š|˜IÑ&Ô&ˆÝˆt‰9Œ9�yÒ Ð ØQ iÐQÐQÅSÈÁYÄYÐQÐQÐQˆCÝ˜#‘,”,ÐàÔ  1Ò$Ð$ØÐ!Ô! YÑ.Ð!Ô!Øˆr   Úfield_formatÚstrútuple[int | bytes, ...]c                ó~   — t          j        |¦  «        }|                      |¦  «        }t          j        ||¦  «        S ©N)r   Úcalcsizer.   Úunpack)r   r/   Úsizer-   s       r   Úread_fieldszBoxReader.read_fieldsH   s6   € ÝŒ˜|Ñ,Ô,ˆØ×Ò Ñ%Ô%ˆÝŒ}˜\¨4Ñ0Ô0Ð0r   c                ó~   — | j         }|                      |¦  «        }t          t          j        |¦  «        |¦  «        S r3   )r   r.   r   r   ÚBytesIO)r   r6   r-   s      r   Ú
read_boxeszBoxReader.read_boxesM   s7   € ØÔ$ˆØ×Ò Ñ%Ô%ˆÝ�œ DÑ)Ô)¨4Ñ0Ô0Ð0r   c                óh   — | j         r*| j                             ¦   «         | j        z   | j        k     S dS )NT)r   r   r!   r   r   )r   s    r   Úhas_next_boxzBoxReader.has_next_boxR   s0   € ØŒ?ð 	Ø”7—<’<‘>”> DÔ$9Ñ9¸D¼KÒGÐGà�4r   c                ó  — | j         dk    r`| j                             ¦   «         | j         z   dk    rd}t          |¦  «        ‚| j                             | j         t
          j        ¦  «         d| _         t          d|                      d¦  «        ¦  «        \  }}|dk    r,t          d|                      d	¦  «        d         ¦  «        }d
}nd}||k     s|  	                    ||z
  ¦  «        sd}t          |¦  «        ‚||z
  | _         |S )Nr   r%   r&   r   ztuple[int, bytes]z>I4sr   r   z>Qé   é   zInvalid header length)
r   r   r!   r(   ÚseekÚosÚSEEK_CURr   r7   r"   )r   r,   ÚlboxÚtboxÚhlens        r   Únext_box_typezBoxReader.next_box_typeX   sÿ   € àÔ  1Ò$Ð$ØŒw�|Š|‰~Œ~ Ô 5Ñ5¸Ò>Ð>Ø,�Ý! #Ñ&Ô&Ð&ØŒG�LŠL˜Ô.µ´Ñ<Ô<Ð<Ø "ˆÔõ Ð-¨t×/?Ò/?ÀÑ/GÔ/GÑHÔH‰
ˆˆdØ�1Š9ˆ9Ý˜˜t×/Ò/°Ñ5Ô5°aÔ8Ñ9Ô9ˆDØˆDˆDàˆDà�$Š;ˆ;˜dŸnšn¨T°D©[Ñ9Ô9ˆ;Ø)ˆCÝ˜cÑ"Ô"Ð"à $ t¡ˆÔØˆr   N)r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   r#   )r/   r0   r   r1   )r   r   )r   r   )r   r#   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r"   r.   r7   r:   r<   rF   © r   r   r   r   !   s¯   € € € € € ðð ð
#ð #ð #ð #ð #ðð ð ð ðð ð ð ð"1ð 1ð 1ð 1ð
1ð 1ð 1ð 1ð
ð ð ð ðð ð ð ð ð r   r   r   r   r   útuple[tuple[int, int], str]c                óÖ  — |                       d¦  «        }t          j        |¦  «        }|dk     rd}t          |¦  «        ‚||                       |dz
  ¦  «        z   }t	          j        d|¦  «        \  }}}}}}	}
}
}
}
}||z
  ||	z
  f}|dk    r.t	          j        d|d¦  «        }|d         dz  dz   d	k    rd
}n/d}n,|dk    rd}n#|dk    rd}n|dk    rd}nd}t          |¦  «        ‚||fS )z‹Parse the JPEG 2000 codestream to extract the size and component
    count from the SIZ marker segment, returning a PIL (size, mode) tuple.é   é&   z%SIZ marker length must be at least 38z>HHIIIIIIIIHr   z>Br   é   r?   úI;16ÚLÚLAé   ÚRGBé   ÚRGBAz"unable to determine J2K image mode)r)   r   Úi16beÚ
ValueErrorr   Úunpack_fromr(   )r   ÚhdrÚlsizr,   ÚsizÚrsizÚxsizÚysizÚxosizÚyosizÚ_Úcsizr6   ÚssizÚmodes                  r   Ú_parse_codestreamrg   q   s(  € ð �'Š'�!‰*Œ*€CÝŒ=˜ÑÔ€DØˆb‚y€yØ5ˆÝ˜‰oŒoÐØ
�—’˜˜q™Ñ!Ô!Ñ
!€CÝ=CÔ=OØ˜ñ>ô >Ñ:€Dˆ$��d˜E 5¨!¨Q°°1°dð �5‰L˜$ ™,Ð'€DØˆq‚y€yÝÔ! $¨¨RÑ0Ô0ˆØ�ŒG�d‰N˜aÑ !Ò#Ð#ØˆDˆDàˆDˆDØ	�ŠˆØˆˆØ	�ŠˆØˆˆØ	�ŠˆØˆˆà2ˆÝ˜#ÑÔÐà�ˆ:Ðr   Únumr   ÚdenomÚexpúfloat | Nonec                ó4   — |dk    rdS d| z  d|z  z  d|z  z  S )zµConvert JPEG2000's (numerator, denominator, exponent-base-10) resolution,
    calculated as (num / denom) * 10^exp and stored in dots per meter,
    to floating-point dots per inch.r   Néþ   é
   i'  rK   )rh   ri   rj   s      r   Ú_res_to_dpiro   “   s.   € ð �‚z€zØˆtØ�#‰I˜˜S™Ñ! e¨e¡mÑ4Ð4r   úetuple[tuple[int, int], str, str | None, tuple[float, float] | None, ImagePalette.ImagePalette | None]c                óÒ  — t          | ¦  «        }d}d}|                     ¦   «         rj|                     ¦   «         }|dk    r|                     ¦   «         }n;|dk    r!|                     d¦  «        d         dk    rd}|                     ¦   «         °j|€J ‚d}d}d}d}d}	d}
d}|                     ¦   «         �r”|                     ¦   «         }|dk    rž|                     d	¦  «        \  }}}}t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚||f}|d
k    r|dz  dk    rd}�nï|d
k    rd}�nå|dk    rd}�nÛ|dk    rd}�nÑ|dk    rd}�nÇ|dk    rD|                     d¦  «        \  }}}}|d
k    r"|dv rd}�n™|dk    rd}|dk    rd}�n‡|dk    rd}�n}|dk    �rH|dv �rC|dv�r>|                     d¦  «        \  }}t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚d}|                     d d!|z  z   ¦  «        D ]!}t          |t          ¦  «        sJ ‚||k    r|}Œ"|dk    r±|dk    r|dk    rdnd}nd}t          j        |¦  «        }
t          |¦  «        D ]p}g }|                     d d!|z  z   ¦  «        D ].}t          |t          ¦  «        sJ ‚| 	                    |¦  «         Œ/|
 
                    t          |¦  «        ¦  «         Œq|dk    rd"nd#}�n.|d$k    �r'|                     ¦   «         }|                     ¦   «         rÿ|                     ¦   «         }|d%k    rÑ|                     d&¦  «        \  }}}}}} t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          | t          ¦  «        sJ ‚t          ||| ¦  «        }!t          |||¦  «        }"|!�|"�|!|"f}	n|                     ¦   «         °ÿ|                     ¦   «         �°”|�|€d'}#t          |#¦  «        ‚||||	|
fS )(zªParse the JP2 header box to extract size, component count,
    color space information, and optionally DPI information,
    returning a (size, mode, mimetype, dpi) tuple.Ns   jp2hs   ftypz>4sr   s   jpx z	image/jpxs   ihdrz>IIHBr   rP   r?   rQ   rR   rN   rS   rT   rU   rV   rW   s   colrz>BBBI)r   é   Ú1é   ÚCMYKé   s   pclr)rR   rS   )rs   rR   z>HBú>ÚBÚPÚPAs   res s   rescz>HHHHBBzMalformed JP2 header)r   r<   rF   r:   r7   Ú
isinstancer   r
   ÚrangeÚappendÚgetcolorÚtuplero   r(   )$r   ÚreaderÚheaderÚmimetyperD   r6   rf   ÚbpcÚncÚdpiÚpaletteÚcolrÚheightÚwidthÚmethrc   ÚenumcsÚneÚnpcÚmax_bitdepthÚbitdepthÚpalette_modeÚiÚcolorÚvalueÚresÚtresÚvrcnÚvrcdÚhrcnÚhrcdÚvrceÚhrceÚhresÚvresr,   s$                                       r   Ú_parse_jp2_headerrž   œ   s6  € õ �r‰]Œ]€FØ€FØ€HØ
×
Ò
Ñ
Ô
ð 'Ø×#Ò#Ñ%Ô%ˆà�7Š?ˆ?Ø×&Ò&Ñ(Ô(ˆFØØ�WŠ_ˆ_Ø×!Ò! %Ñ(Ô(¨Ô+¨wÒ6Ð6Ø&�ð ×
Ò
Ñ
Ô
ð 'ð ÐÐÐà€DØ€DØ
€CØ	€BØ
€CØ€GØ€Dà
×
Ò
Ñ
Ô
ñ DØ×#Ò#Ñ%Ô%ˆà�7Š?ˆ?Ø%+×%7Ò%7¸Ñ%@Ô%@Ñ"ˆF�E˜2˜sÝ˜f¥cÑ*Ô*Ð*Ð*Ð*Ý˜e¥SÑ)Ô)Ð)Ð)Ð)Ý˜c¥3Ñ'Ô'Ð'Ð'Ð'Ø˜6�?ˆDØ�QŠwˆw˜C $™J¨!Ò+Ð+Ø�‘Ø�q’�Ø�‘Ø�q’�Ø�‘Ø�q’�Ø�‘Ø�q’�Ø�ùØ�WŠ_ˆ_Ø!'×!3Ò!3°GÑ!<Ô!<ÑˆD�!�Q˜Ø�qŠyˆyØ˜WÐ$Ð$Ø�D‘DØ˜r’\�\Ø!�DØ˜Q’w�wØ%˜ùØ˜r’\�\Ø�DùØ�WŠ_‰_ ¨Ð!4Ñ!4¸ÀZÐ9OÑ9OØ×(Ò(¨Ñ/Ô/‰GˆB�Ý˜b¥#Ñ&Ô&Ð&Ð&Ð&Ý˜c¥3Ñ'Ô'Ð'Ð'Ð'ØˆLØ"×.Ò.¨s°c¸C±iÑ/@ÑAÔAð ,ð ,�Ý! (­CÑ0Ô0Ð0Ð0Ð0Ø˜lÒ*Ð*Ø#+�LøØ˜qÒ Ð Ø˜!’8�8Ø-1°Vª^¨^ 6 6À�L�Là#(�LÝ&Ô3°LÑAÔA�Ý˜r™œð 3ð 3�AØ')�EØ!'×!3Ò!3°C¸3À¹9Ñ4EÑ!FÔ!Fð ,ð ,˜Ý)¨%µÑ5Ô5Ð5Ð5Ð5ØŸš UÑ+Ô+Ð+Ð+Ø×$Ò$¥U¨5¡\¤\Ñ2Ô2Ð2Ð2Ø" cšk˜k�s�s¨t�ùØ�WŠ_‰_Ø×#Ò#Ñ%Ô%ˆCØ×"Ò"Ñ$Ô$ð Ø×(Ò(Ñ*Ô*�Ø˜7’?�?Ø9<¿ºÈÑ9SÔ9SÑ6�D˜$  d¨D°$Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý& t¨T°4Ñ8Ô8�DÝ& t¨T°4Ñ8Ô8�DØÐ'¨DÐ,<Ø# T˜l˜Øð ×"Ò"Ñ$Ô$ð ðm ×
Ò
Ñ
Ô
ñ DðL €|�t�|Ø$ˆÝ˜#ÑÔÐà��x  gÐ-Ð-r   c                  ór   ‡ — e Zd ZdZdZdd„Zdd„Zedˆ fd„¦   «         Zej	        dd„¦   «         Zdd„Z
ˆ xZS )ÚJpeg2KImageFileÚJPEG2000zJPEG 2000 (ISO 15444)r   r   c           
     óœ  — | j         €J ‚| j                              d¦  «        }|dk    r=d| _        t          | j         ¦  «        \  | _        | _        |                      ¦   «          nÍ|| j                              d¦  «        z   }|dk    r™d| _        t          | j         ¦  «        }|\  | _        | _        | _        }| _	        |�
|| j
        d<   | j                              d¦  «                             d	¦  «        r(t          | j         ¦  «         |                      ¦   «          nd
}t          |¦  «        ‚d| _        d| _        d}d}	 | j                              ¦   «         }t!          j        |¦  «        j        }n—# t&          $ rŠ d}	 | j                              ¦   «         }| j                              dt,          j        ¦  «         | j                              ¦   «         }| j                              |¦  «         n# t&          $ r d}Y nw xY wY nw xY wt1          j        dddg| j        ¢R d| j        | j        | j        ||f¦  «        g| _        d S )NrV   ó   ÿOÿQÚj2kr?   ó      jP  
‡
Újp2r…   rt   s   jp2cÿOÿQznot a JPEG 2000 filer   r   Újpeg2k)r   r)   Úcodecrg   Ú_sizeÚ_modeÚ_parse_commentrž   Úcustom_mimetyper†   ÚinfoÚendswithr(   Ú_reduceÚlayersÚfilenorA   ÚfstatÚst_sizeÚ	Exceptionr!   r@   r   ÚSEEK_ENDr	   Ú_Tiler6   Útile)r   Úsigr�   r…   r,   Úfdr   Úposs           r   Ú_openzJpeg2KImageFile._open  s@  € ØŒwÐ"Ð"Ð"ØŒg�lŠl˜1‰oŒoˆØÐ%Ò%Ð%ØˆDŒJÝ%6°t´wÑ%?Ô%?Ñ"ˆDŒJ˜œ
Ø×ÒÑ!Ô!Ð!Ð!à˜œŸš Q™œÑ'ˆCàÐ=Ò=Ð=Ø"�”
Ý*¨4¬7Ñ3Ô3�ØRXÑO�”
˜DœJ¨Ô(<¸cÀ4Ä<Ø�?Ø'*�D”I˜eÑ$Ø”7—<’< Ñ#Ô#×,Ò,Ð-DÑEÔEð *Ý% d¤gÑ.Ô.Ð.Ø×'Ò'Ñ)Ô)Ð)øà,�Ý! #Ñ&Ô&Ð&àˆŒØˆŒàˆØˆð	Ø”—’Ñ!Ô!ˆBÝ”X˜b‘\”\Ô)ˆFˆFøÝð 	ð 	ð 	ØˆBðØ”g—l’l‘n”n�Ø”—’˜Q¥¤Ñ,Ô,Ð,ØœŸš™œ�Ø”—’˜SÑ!Ô!Ð!Ð!øÝð ð ð Ø���ðøøøøøð	øøøõ ŒOØØ�AÐ"˜œ	Ð"Ð"ØØ”˜Tœ\¨4¬;¸¸FÐCñ	ô ð
ˆŒ	ˆ	ˆ	s7   Å2E: Å:HÆA1G9Ç8HÇ9HÈHÈHÈHÈHc                ó´  — | j         €J ‚	 | j                              d¦  «        }|sd S |d         }|dv rd S | j                              d¦  «        }t          j        |¦  «        }|dk     rd}t	          |¦  «        ‚|dk    r/| j                              |dz
  ¦  «        dd …         | j        d<   d S | j                              |dz
  t          j        ¦  «         ŒÏ)NTrN   r   )é�   éÙ   zMarker length too smalléd   Úcomment)	r   r)   r   rX   rY   r­   r@   rA   rB   )r   ÚmarkerÚtypr[   r   r,   s         r   r«   zJpeg2KImageFile._parse_commentH  sÜ   € ØŒwÐ"Ð"Ð"ð	6Ø”W—\’\ !‘_”_ˆFØð Ø�Ø˜”)ˆCØ�lÐ"Ð"à�Ø”'—,’,˜q‘/”/ˆCÝ”] 3Ñ'Ô'ˆFØ˜ŠzˆzØ/�Ý  ‘o”oÐ%Ø�dŠ{ˆ{à'+¤w§|¢|°F¸Q±JÑ'?Ô'?ÀÀÀÔ'C�”	˜)Ñ$Ø�à”—’˜V a™Z­¬Ñ5Ô5Ð5ð%	6r   úVCallable[[int | tuple[int, int], tuple[int, int, int, int] | None], Image.Image] | intc                ó8   •— | j         pt          ¦   «         j        S r3   )r¯   ÚsuperÚreduce)r   Ú	__class__s    €r   rÆ   zJpeg2KImageFile.reduce^  s   ø€ ð Œ|Ð-�u™wœwœ~Ð-r   r“   r   c                ó   — || _         d S r3   )r¯   )r   r“   s     r   rÆ   zJpeg2KImageFile.reducej  s   € àˆŒˆˆr   úImage.core.PixelAccess | Nonec                ó(  — | j         rí| j        ræd| j        z  }|dz	  }t          | j        d         |z   |z  ¦  «        t          | j        d         |z   |z  ¦  «        f| _        | j         d         }t          |d         t          ¦  «        sJ ‚|d         d         | j        | j        |d         d         |d         d         f}t          j	        |d         ddg| j        ¢R |d         |¦  «        g| _         t          j         
                    | ¦  «        S )Nr   r   rT   rV   rN   )r·   r¯   r   r6   r©   r{   r   r°   r	   r¶   Úload)r   ÚpowerÚadjustÚtÚt3s        r   rË   zJpeg2KImageFile.loadn  s  € ØŒ9ð 	N˜œð 	NØ˜œÑ%ˆEØ˜a‘ZˆFå�T”Y˜q”\ FÑ*¨eÑ3Ñ4Ô4Ý�T”Y˜q”\ FÑ*¨eÑ3Ñ4Ô4ðˆDŒJð ”	˜!”ˆAÝ˜a œd¥EÑ*Ô*Ð*Ð*Ð*Ø�A”$�q”'˜4œ<¨¬°a¸´d¸1´g¸qÀ¼tÀA¼wÐGˆBÝ"œ¨¨1¬°°1Ð/A°t´yÐ/AÐ/AÀ1ÀQÄ4ÈÑLÔLÐMˆDŒIåÔ"×'Ò'¨Ñ-Ô-Ð-r   )r   r   )r   rÃ   )r“   r   r   r   )r   rÉ   )rG   rH   rI   ÚformatÚformat_descriptionr»   r«   ÚpropertyrÆ   ÚsetterrË   Ú__classcell__)rÇ   s   @r   r    r      s³   ø€ € € € € Ø€FØ0Ðð1
ð 1
ð 1
ð 1
ðf6ð 6ð 6ð 6ð, ð	.ð 	.ð 	.ð 	.ð 	.ñ „Xð	.ð „]ðð ð ñ „]ðð.ð .ð .ð .ð .ð .ð .ð .r   r    Úprefixr#   r   c                ó,   — |                       d¦  «        S )N)r£   r¥   )Ú
startswith)rÕ   s    r   Ú_acceptrØ   €  s   € Ø×ÒØFñô ð r   ÚimúImage.ImageÚfilenameústr | bytesr   c                óH  — | j         }t          |t          ¦  «        r|                     ¦   «         }|                     d¦  «        s|                     dd¦  «        rd}nd}|                     dd ¦  «        }|                     dd ¦  «        }|                     dd ¦  «        }|                     d	d
¦  «        }|                     dd ¦  «        }	|	�Ft          |	t          t          f¦  «        rt          d„ |	D ¦   «         ¦  «        sd}
t          |
¦  «        ‚|                     dd¦  «        }|                     dd ¦  «        }|                     dd ¦  «        }|                     dd¦  «        }|                     dd¦  «        }|                     dd¦  «        }|                     dd¦  «        }|                     dd¦  «        }|                     d¦  «        }t          |t          ¦  «        r|                     ¦   «         }|                     dd¦  «        }d}t          |d¦  «        r(	 |                     ¦   «         }n# t          $ r d}Y nw xY w|||||	|||||||||||f| _        t          j        | |t          j        dddg| j        ¢R d|¦  «        g¦  «         d S )Ns   .j2kÚno_jp2Fr¤   r¦   ÚoffsetÚtile_offsetÚ	tile_sizeÚquality_modeÚratesÚquality_layersc              3  óN   K  — | ] }t          |t          t          f¦  «        V — Œ!d S r3   )r{   r   Úfloat)Ú.0Úquality_layers     r   ú	<genexpr>z_save.<locals>.<genexpr>œ  sA   è è € ð 
ð 
Ø8E�J�}¥s­E lÑ3Ô3ð
ð 
ð 
ð 
ð 
ð 
r   z,quality_layers must be a sequence of numbersÚnum_resolutionsr   Úcodeblock_sizeÚprecinct_sizeÚirreversibleÚprogressionÚLRCPÚcinema_modeÚnoÚmctÚsignedrÀ   Úpltr   r±   r§   )Úencoderinfor{   r0   Úencoder®   ÚgetÚlistr   ÚallrY   Úhasattrr±   r´   Úencoderconfigr	   Ú_saver¶   r6   )rÙ   r   rÛ   r­   Úkindrß   rà   rá   râ   rä   r,   rê   Ú	cblk_sizerì   rí   rî   rð   rò   ró   rÀ   rô   r¹   s                         r   rü   rü   Š  sÆ  € àŒ>€Då�(�CÑ Ô ð %Ø—?’?Ñ$Ô$ˆØ×Ò˜Ñ!Ô!ð  T§X¢X¨h¸Ñ%>Ô%>ð Øˆˆàˆà�XŠX�h Ñ%Ô%€FØ—(’(˜=¨$Ñ/Ô/€KØ—’˜ dÑ+Ô+€IØ—8’8˜N¨GÑ4Ô4€LØ—X’XÐ.°Ñ5Ô5€NØÐ!Ý�>¥D­% =Ñ1Ô1ð "åð 
ð 
ØIWð
ñ 
ô 
ñ 
ô 
ð "ð =ˆÝ˜‰oŒoÐà—h’hÐ0°!Ñ4Ô4€OØ—’Ð)¨4Ñ0Ô0€IØ—H’H˜_¨dÑ3Ô3€MØ—8’8˜N¨EÑ2Ô2€LØ—(’(˜=¨&Ñ1Ô1€KØ—(’(˜=¨$Ñ/Ô/€KØ
�(Š(�5˜!Ñ
Ô
€CØ�XŠX�h Ñ&Ô&€FØ�hŠh�yÑ!Ô!€GÝ�'�3ÑÔð #Ø—.’.Ñ"Ô"ˆØ
�(Š(�5˜%Ñ
 Ô
 €Cà	€BÝˆr�8ÑÔð ð	Ø—’‘”ˆBˆBøÝð 	ð 	ð 	ØˆBˆBˆBð	øøøð 	ØØØØØØØØØØØØØ
ØØð!€BÔõ& „O�B˜�Yœ_¨X¸¸1Ð7G¸r¼wÐ7GÐ7GÈÈDÑQÔQÐRÑSÔSÐSÐSÐSs   È.I ÉIÉI)z.jp2z.j2kz.jpcz.jpfz.jpxz.j2cz	image/jp2)r   r   r   rL   )rh   r   ri   r   rj   r   r   rk   )r   r   r   rp   )rÕ   r#   r   r   )rÙ   rÚ   r   r   rÛ   rÜ   r   r   )Ú
__future__r   Ú__lazy_modules__r   rA   r   Útypingr   Ú r   r	   r
   r   ÚTYPE_CHECKINGÚcollections.abcr   r   r   rg   ro   rž   r    rØ   rü   Úregister_openrÐ   Úregister_saveÚregister_extensionsÚregister_mimerK   r   r   ú<module>r	     sú  ðð  #Ð "Ð "Ð "Ð "Ð "à˜(Ð#Ð à 	€	€	€	Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à€Øð Ø(Ð(Ð(Ð(Ð(Ð(ØÐÐÐÐÐðMð Mð Mð Mð Mñ Mô Mð Mð`ð ð ð ðD5ð 5ð 5ð 5ðn.ð n.ð n.ð n.ðjl.ð l.ð l.ð l.ð l.�iÔ)ñ l.ô l.ð l.ð^ð ð ð ð@Tð @Tð @Tð @TðN €Ô �OÔ*¨O¸WÑ EÔ EÐ EØ €Ô �OÔ*¨EÑ 2Ô 2Ð 2à €Ô ØÔÐLÐLÐLñô ð ð €Ô �OÔ*¨KÑ 8Ô 8Ð 8Ð 8Ð 8r   