Files
old-parkingkoncept/parkingkonceptvenv/lib/python3.7/site-packages/PIL/__pycache__/PngImagePlugin.cpython-37.pyc

191 lines
20 KiB
Plaintext
Raw Normal View History

2019-11-17 12:44:16 +01:00
B
(U<>]<5D>l<00>@s<>ddlZddlZddlZddlZddlmZmZmZddlm Z m
Z m Z mZmZddlmZdZe<00>e<16>Ze<01>d<07>jZdZd d
d d d ddddddddddd<18>Ze<01>d<19>ZejZdeZ dd<1C>Z!dDdd<1E>Z"Gdd <20>d e#<23>Z$Gd!d"<22>d"e%<25>Z&Gd#d$<24>d$e#<23>Z'Gd%d&<26>d&e$<24>Z(d'd(<28>Z)Gd)d*<2A>d*ej<06>Z*d+d,d-d.d/d0d1d1d2d3d4d5d6d7d8<64>Z+d9d:<3A>Z,Gd;d<<3C>d<e#<23>Z-e,fd=d><3E>Z.d?d@<40>Z/e<05>0e*j1e*e)<29>e<05>2e*j1e.<2E>e<05>3e*j1dAdBg<02>e<05>4e*j1dC<64>dS)E<>N<>)<03>Image<67> ImageFile<6C> ImagePalette)<05>i8<69>i16be<62>i32be<62>o16be<62>o32be)<01>py3z0.9s\w\w\w\ws<00>PNG

)<02>1r )<02>LzL;2)r zL;4)r r )<02>IzI;16B)<02>RGBr)rzRGB;16B)<02>PzP;1)rzP;2)rzP;4)rr)<02>LAr)<02>RGBAzLA;16B)rr)rzRGBA;16B))rr)<02>r)<02>r)<02>r)<02>r)rr)rr)r<00>)rr)rr)rr)rr)rr)r<00>)rrs^<5E>*<00>*$<24>@cCs&t<00><01>}|<01>|t<03>}|jr"td<01><01>|S)NzDecompressed Data Too Large)<06>zlib<69> decompressobj<62>
decompress<EFBFBD>MAX_TEXT_CHUNK<4E>unconsumed_tail<69>
ValueError)<03>sZdobj<62> plaintext<78>r"<00>6/tmp/pip-install-pc7tm5jb/Pillow/PIL/PngImagePlugin.py<70>_safe_zlib_decompressYs
 r$cCst<00>||<01>d@S)Nl<00><EFBFBD>)r<00>crc32)<02>data<74>seedr"r"r#<00>_crc32asr(c@s^eZdZdd<02>Zdd<04>Zdd<06>Zdd<08>Zd d
<EFBFBD>Zd d <0C>Zd d<0E>Z dd<10>Z
dd<12>Z ddd<15>Z dS)<18> ChunkStreamcCs||_g|_dS)N)<02>fp<66>queue)<02>selfr*r"r"r#<00>__init__jszChunkStream.__init__cCszd}|jr(|j<00><01>\}}}|j<02>|<02>n*|j<02>d<02>}|dd<01>}|j<02><05>}t|<04>}t|<01>sptj spt
dt |<01><00><01>|||fS)z.Fetch a new chunk. Returns header information.Nrrzbroken PNG file (chunk %s)) r+<00>popr*<00>seek<65>read<61>tell<6C>i32<33>is_cidr<00>LOAD_TRUNCATED_IMAGES<45> SyntaxError<6F>repr)r,<00>cid<69>pos<6F>lengthr r"r"r#r0os  
zChunkStream.readcCs|S)Nr")r,r"r"r#<00> __enter__<5F>szChunkStream.__enter__cGs |<00><00>dS)N)<01>close)r,<00>argsr"r"r#<00>__exit__<5F>szChunkStream.__exit__cCsd|_|_|_dS)N)r+<00>crcr*)r,r"r"r#r;<00>szChunkStream.closecCs|j<00>|||f<03>dS)N)r+<00>append)r,r7r8r9r"r"r#<00>push<73>szChunkStream.pushcCs*t<00>d|||<03>t|d|<01>d<03><00>||<03>S)z"Call the appropriate chunk handlerzSTREAM %r %s %sZchunk_<6B>ascii)<04>logger<65>debug<75>getattr<74>decode)r,r7r8r9r"r"r#<00>call<6C>szChunkStream.callcCs<>tjr*t|d<00>d?d@r*|<00>||<02>dSy6t|t|<01><01>}t|j<06>d<05><01>}||kr^td|<00><01>Wn"t j
k
r<EFBFBD>td|<00><01>YnXdS)zRead and verify checksumr<00>rNrz+broken PNG file (bad header checksum in %r)z+broken PNG file (incomplete checksum in %r)) rr4r<00>crc_skipr(r2r*r0r5<00>struct<63>error)r,r7r&Zcrc1Zcrc2r"r"r#r><00>s zChunkStream.crccCs|j<00>d<01>dS)z3Read checksum. Used if the C module is not presentrN)r*r0)r,r7r&r"r"r#rH<00>szChunkStream.crc_skip<69>IENDcCsjg}x`y|<00><00>\}}}Wntjk
r6td<01><01>YnX||krBP|<00>|t<05>|j|<05><02>|<02>|<03>qW|S)Nztruncated PNG file) r0rIrJ<00>IOErrorr>r<00>
_safe_readr*r?)r,ZendchunkZcidsr7r8r9r"r"r#<00>verify<66>szChunkStream.verifyN)rK) <0A>__name__<5F>
__module__<EFBFBD> __qualname__r-r0r:r=r;r@rFr>rHrNr"r"r"r#r)isr)c@seZdZdZeddd<04><01>ZdS)<06>iTXtzq
Subclass of string to allow iTXt chunks to look like strings while
keeping their extra information
NcCst<00>||<01>}||_||_|S)z<>
:param cls: the class to use when creating the instance
:param text: value for this key
:param lang: language code
:param tkey: UTF-8 version of the key name
)<04>str<74>__new__<5F>lang<6E>tkey)<05>cls<6C>textrUrVr,r"r"r#rT<00>s z iTXt.__new__)NN)rOrPrQ<00>__doc__<5F> staticmethodrTr"r"r"r#rR<00>srRc@s4eZdZdZdd<03>Zdd<05>Zd dd <09>Zdd
d <0B>Zd S)<0F>PngInfoz<
PNG chunk container (for use with save(pnginfo=))
cCs
g|_dS)N)<01>chunks)r,r"r"r#r-<00>szPngInfo.__init__cCs|j<00>||f<02>dS)z<>Appends an arbitrary chunk. Use with caution.
:param cid: a byte string, 4 bytes long.
:param data: a byte string of the encoded data
N)r\r?)r,r7r&r"r"r#<00>add<64>sz PngInfo.add<64>FcCs<>t|t<01>s|<01>dd<02>}t|t<01>s,|<02>dd<02>}t|t<01>sB|<03>dd<02>}t|t<01>sX|<04>dd<02>}|r<>|<00>d|d|d|dt<04>|<02><00>n$|<00>d|d|d|d|<00>dS) z<>Appends an iTXt chunk.
:param key: latin-1 encodable text key name
:param value: value for this key
:param lang: language code
:param tkey: UTF-8 version of the key name
:param zip: compression flag
zlatin-1<>strictzutf-8siTXts<00>sN)<06>
isinstance<EFBFBD>bytes<65>encoder]r<00>compress)r,<00>key<65>valuerUrV<00>zipr"r"r#<00>add_itxt<78>s
 
 
 
 &zPngInfo.add_itxtcCs<>t|t<01>r"|j|||j|j|d<01>St|t<05>s^y|<02>dd<03>}Wn tk
r\|j|||d<01>SXt|t<05>st|<01>dd<03>}|r<>|<00>d|dt <09>
|<02><00>n|<00>d|d|<00>dS) z<>Appends a text chunk.
:param key: latin-1 encodable text key name
:param value: value for this key, text or an
:py:class:`PIL.PngImagePlugin.iTXt` instance
:param zip: compression flag
)rgzlatin-1r_szTXtsstEXtr`N) rarRrhrUrVrbrc<00> UnicodeErrorr]rrd)r,rerfrgr"r"r#<00>add_texts


 zPngInfo.add_textN)r^r^F)F)rOrPrQrYr-r]rhrjr"r"r"r#r[<00>s

r[c@s<>eZdZdd<02>Zdd<04>Zdd<06>Zdd<08>Zd d
<EFBFBD>Zd d <0C>Zd d<0E>Z dd<10>Z
dd<12>Z dd<14>Z dd<16>Z dd<18>Zdd<1A>Zdd<1C>Zdd<1E>Zdd <20>Zd!d"<22>Zd#S)$<24> PngStreamcCs@t<00>||<01>i|_i|_d|_d|_d|_d|_d|_d|_ dS)N)rrr)
r)r-<00>im_info<66>im_text<78>im_size<7A>im_mode<64>im_tile<6C>
im_palette<EFBFBD>im_custom_mimetype<70> text_memory)r,r*r"r"r#r-'s zPngStream.__init__cCs*|j|7_|jtkr&td|j<00><01>dS)Nz7Too much memory used in text chunks: %s>MAX_TEXT_MEMORY)rs<00>MAX_TEXT_MEMORYr)r,Zchunklenr"r"r#<00>check_text_memory6s

zPngStream.check_text_memorycCs<>t<00>|j|<02>}|<03>d<01>}t<04>d|d|<04><00>t<04>dt||<00><01>t||<00>}|dkr`td|<00><01>yt||dd<00><00>}Wn:t k
r<EFBFBD>tj
r<EFBFBD>d}n<02>Ynt j k
r<EFBFBD>d}YnX||j d<|S)Nr`ziCCP profile name %rzCompression method %srz+Unknown compression method %s in iCCP chunkr<00> icc_profile)rrMr*<00>findrBrCrr5r$rr4rrJrl)r,r8r9r <00>i<> comp_methodrvr"r"r#<00>
chunk_iCCP>s$
 


zPngStream.chunk_iCCPcCs<>t<00>|j|<02>}t|<03>t|dd<00><00>f|_y(tt|d<00>t|d<00>f\|_|_Wnt k
rdYnXt|d<00>r|d|j
d<t|d<00>r<>t d<08><01>|S) Nrr<00> <00> r<00> interlace<63> zunknown filter category) rrMr*r2rn<00>_MODESrro<00>
im_rawmode<EFBFBD> Exceptionrlr5)r,r8r9r r"r"r#<00>
chunk_IHDR[s( 
 zPngStream.chunk_IHDRcCs&dd|j||jfg|_||_t<04>dS)Nrg)rr)rnr<>rpZim_idat<61>EOFError)r,r8r9r"r"r#<00>
chunk_IDATjszPngStream.chunk_IDATcCst<00>dS)N)r<>)r,r8r9r"r"r#<00>
chunk_IENDqszPngStream.chunk_IENDcCs&t<00>|j|<02>}|jdkr"d|f|_|S)Nrr)rrMr*rorq)r,r8r9r r"r"r#<00>
chunk_PLTEvs

zPngStream.chunk_PLTEcCs<>t<00>|j|<02>}|jdkrLt<04>|<03>r@|<03>d<02>}|dkrJ||jd<q<>||jd<nP|jdkrft|<03>|jd<n6|jdkr<>t|<03>t|dd<00><00>t|dd<00><00>f|jd<|S) Nrr`r<00> transparency)r r rrrr) rrMr*ro<00>_simple_palette<74>matchrwrl<00>i16)r,r8r9r rxr"r"r#<00>
chunk_tRNS~s


  

,zPngStream.chunk_tRNScCs$t<00>|j|<02>}t|<03>d|jd<|S)Ngj<>@<40>gamma)rrMr*r2rl)r,r8r9r r"r"r#<00>
chunk_gAMA<EFBFBD>szPngStream.chunk_gAMAcCsBt<00>|j|<02>}t<03>dt|<03>d|<03>}tdd<04>|D<00><01>|jd<|S)Nz>%dIrcss|]}|dVqdS)gj<>@Nr")<02>.0<EFBFBD>eltr"r"r#<00> <genexpr><3E>sz'PngStream.chunk_cHRM.<locals>.<genexpr>Z chromaticity)rrMr*rI<00>unpack<63>len<65>tuplerl)r,r8r9r Zraw_valsr"r"r#<00>
chunk_cHRM<EFBFBD>szPngStream.chunk_cHRMcCs t<00>|j|<02>}t|<03>|jd<|S)NZsrgb)rrMr*rrl)r,r8r9r r"r"r#<00>
chunk_sRGB<EFBFBD>szPngStream.chunk_sRGBcCs<>t<00>|j|<02>}t|<03>t|dd<00><00>}}t|d<00>}|dkrht|dd<00>t|dd<00>f}||jd<n|dkr~||f|jd<|S) Nrrrg<>
F%u<02>?g<00>?<3F>dpirZaspect)rrMr*r2r<00>intrl)r,r8r9r Zpx<70>py<70>unitr<74>r"r"r#<00>
chunk_pHYs<EFBFBD>s   zPngStream.chunk_pHYscCs<>t<00>|j|<02>}y|<03>dd<02>\}}Wntk
r>|}d}YnX|r<>tr`|<04>dd<05>}|<05>dd<06>}||j|<|j|<|<00> t
|<05><01>|S)Nr`r<00>zlatin-1r_<00>replace) rrMr*<00>splitrr rErlrmrur<>)r,r8r9r <00>k<>vr"r"r#<00>
chunk_tEXt<EFBFBD>s
  zPngStream.chunk_tEXtcCst<00>|j|<02>}y|<03>dd<02>\}}Wntk
r>|}d}YnX|rRt|d<00>}nd}|dkrjtd|<00><01>yt|dd<00><00>}Wn:tk
r<EFBFBD>tjr<>d}n<02>Ynt j
k
r<EFBFBD>d}YnX|r<>t r<>|<04> dd<07>}|<05> dd<08>}||j |<|j|<|<00>t|<05><01>|S) Nr`rr<>rz+Unknown compression method %s in zTXt chunkzlatin-1r_r<>)rrMr*r<>rrr5r$r4rrJr rErlrmrur<>)r,r8r9r r<>r<>ryr"r"r#<00>
chunk_zTXt<EFBFBD>s6


  zPngStream.chunk_zTXtc Cs~t<00>|j|<02>}}y|<03>dd<02>\}}Wntk
r:|SXt|<03>dkrL|St|d<00>t|d<00>|dd<00>}}}y|<03>dd<03>\}} }
Wntk
r<EFBFBD>|SX|dk<03>r<>|dk<02>r<>y t|
<EFBFBD>}
Wn6tk
r<EFBFBD>tjr<>|S<00>Ynt j
k
<EFBFBD>r<>|SXn|St <0B>rPy4|<05> dd<06>}|<08> dd<06>}| <09> dd<06>} |
<EFBFBD> dd<06>}
Wnt k
<EFBFBD>rN|SXt|
|| <09>|j|<|j|<|<00>t|
<EFBFBD><01>|S)Nr`rrrzlatin-1r_zutf-8)rrMr*r<>rr<>rr$r4rrJr rErirRrlrmru) r,r8r9<00>rr r<><00>cf<63>cmrUZtkr<6B>r"r"r#<00>
chunk_iTXt<EFBFBD>sD (

    zPngStream.chunk_iTXtcCs t<00>|j|<02>}d||jd<|S)NsExif<00>exif)rrMr*rl)r,r8r9r r"r"r#<00>
chunk_eXIfszPngStream.chunk_eXIfcCst<00>|j|<02>}d|_|S)Nz
image/apng)rrMr*rr)r,r8r9r r"r"r#<00>
chunk_acTL#szPngStream.chunk_acTLN)rOrPrQr-rurzr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r"r"r"r#rk&s"   %*rkcCs|dd<01>tkS)Nr)<01>_MAGIC)<01>prefixr"r"r#<00>_accept-sr<>c@sXeZdZdZdZdd<04>Zedd<06><00>Zdd<08>Zd d
<EFBFBD>Z d d <0C>Z
d d<0E>Z dd<10>Z dd<12>Z dS)<14> PngImageFileZPNGzPortable network graphicsc Cs|j<00>d<01>tkrtd<02><01>t|j<00>|_x~|j<05><01>\}}}y|j<05>|||<03>}WnFtk
r`PYn2tk
r<EFBFBD>t <09>
d|||<03>t <0B> |j|<03>}YnX|j<05> ||<04>q&W|jj|_|jj|_|jj|_d|_|jj|_|jj|_|jjr<>|jj\}}t<1A>||<06>|_||_dS)Nrznot a PNG filez%r %s %s (unknown))r*r0r<>r5rk<00>pngrFr<><00>AttributeErrorrBrCrrMr>ro<00>modern<00>_sizerl<00>info<66>_textrp<00>tilerrZcustom_mimetyperqr<00>raw<61>palette<74>_PngImageFile__prepare_idat)r,r7r8r9r <00>rawmoder&r"r"r#<00>_open:s. 




 zPngImageFile._opencCs|jdkr|<00><01>|jS)N)r<><00>load)r,r"r"r#rXis
zPngImageFile.textcCsZ|jdkrtd<02><01>|j<00>|jddd<00>|j<04><05>|j<04><06>|jrP|j<00><06>d|_dS)zVerify PNG fileNz)verify must be called directly after openrrr)r*<00> RuntimeErrorr/r<>r<>rNr;Z _exclusive_fp)r,r"r"r#rNrs



zPngImageFile.verifycCs0|j<00>d<01>r|jd|_|j|_tj<05>|<00>dS)z"internal: prepare to read PNG filer})rN)r<><00>getZ decoderconfigr<67><00>_PngImageFile__idatr<00> load_prepare)r,r"r"r#r<><00>s  zPngImageFile.load_preparecCs<>xL|jdkrL|j<01>d<02>|j<03><02>\}}}|dkrD|j<03>|||<04>dS||_qW|dkr^|j}n t||j<00>}|j||_|j<01>|<01>S)zinternal: read more image datarr)sIDATsDDATr<54>)r<>r*r0r<>r@<00>min)r,<00>
read_bytesr7r8r9r"r"r#<00> load_read<61>s  
  zPngImageFile.load_readc Cs<>x<>|j<00>d<01>y|j<02><01>\}}}Wntjtfk
r>PYnX|dkrJPy|j<02>|||<03>Wqtk
rtPYqtk
r<EFBFBD>t <09>
|j|<03>Yqt k
r<EFBFBD>t <0C> d|||<03>t <09>
|j|<03>YqXqW|jj|_|j<02><10>d|_dS)z%internal: finished reading image datarsIENDz%r %s %s (unknown)N)r*r0r<>rIrJr5rF<00>UnicodeDecodeErrorr<72>rrMr<>rBrCrmr<>r;)r,r7r8r9r"r"r#<00>load_end<6E>s( 

zPngImageFile.load_endcCs,d|jkr|<00><01>d|jkr dSt|<00><03><00>S)Nr<4E>)r<>r<><00>dict<63>getexif)r,r"r"r#<00>_getexif<69>s


zPngImageFile._getexifcCsd|jkr|<00><01>tj<02>|<00>S)Nr<4E>)r<>r<>rr<>)r,r"r"r#r<><00>s
zPngImageFile.getexifN)rOrPrQ<00>format<61>format_descriptionr<6E><00>propertyrXrNr<>r<>r<>r<>r<>r"r"r"r#r<>5s/  r<>)r s)zL;1s)zL;2s)zL;4s)r s)rs)zI;16Bs)zP;1s)zP;2s)zP;4s)rs)rs)rs)r zL;1zL;2zL;4r rrzI;16zP;1zP;2zP;4rrrcGsJd<01>|<02>}|<00>tt|<02><01>|<00>|<00>|<02>t|t|<01><01>}|<00>t|<03><01>dS)z'Write a PNG chunk (including CRC field)r<>N)<05>join<69>write<74>o32r<32>r()r*r7r&r>r"r"r#<00>putchunk<6E>s


r<>c@seZdZdd<02>Zdd<04>ZdS)<06>_idatcCs||_||_dS)N)r*<00>chunk)r,r*r<>r"r"r#r-<00>sz_idat.__init__cCs|<00>|jd|<01>dS)NsIDAT)r<>r*)r,r&r"r"r#r<><00>sz _idat.writeN)rOrPrQr-r<>r"r"r"r#r<><00>sr<>c Cs<>|j}|dkr<>d|jkr(d|jd>}n.|jrRttt|j<02><06>d<00>dd<05>d<06>}nd}|dkrdd}n |dkrrd}n|dkr<>d}nd }|d kr<>d
||f}|j<01>d d <0C>|j<01>d d<0E>|j<01>dd<0E>|j<01>dd<11>f|_yt |\}}Wn t
k
r<EFBFBD>t d|<00><01>YnX|<01> t <0A>||dt|jd<00>t|jd<00>|ddd<15>dddddg}|j<01>d|j<10>d<1B><01>} | <09>r<>d}
|
dt<11>| <09>} ||d| <0B>|<08>d<19>|j<01>d<1F>} | <0C>r<>d d!d"d#g} xL| jD]B\}} ||k<06>r<>|<08>|<0E>|||| <0B>n|| k<06>r<>|||| <0B><00>q<>W|jdk<02>rLd|d}|j<15>d$<24>d|<0F>}xt|<10>|k<00>r>|d7}<10>q$W||d%|<10>|j<01>d&|j<10>d&d<00><02>}|<11>st|dk<02>rX|jdk<02>r<>d|}t|t<18><02>r<>||d'|d|<12><00>n0tdtd(|<11><02>}d)|d}||d'|d|<12><00>nz|jd*k<06>r
tdtd+|<11><02>}||d't|<11><01>nL|jd$k<02>rB|\}}}||d't|<14>t|<15>t|<16><00>nd&|jk<06>r<>t d,<2C><01>nF|jdk<02>r<>|j<15><1A>d-k<02>r<>|j<15>d-d.<2E>}d|}||d'|d|<12><00>|j<01>d/<2F>}|<17>r<>||d0tt|dd1d2<00><01>tt|dd1d2<00><01>d3<64>|j<01>d<1F>} | <0C>r8d4d5g}x4| jD]*\}} ||k<06>r
|<08>|<0E>|||| <0B><00>q
W|j<01>d6|j<10>d6<64><01>}|<18>r<>t|tj<1D><02>rl|<18>d <09>}|<18>d7<64><01>r<>|d8d<00>}||d9|<18>t <20>!|t"||<03>d:d;|jd|fg<01>||d<d<11>t#|d=<3D><02>r<>|<01>$<24>dS)>Nr<00>bitsrr<00>rrrrz%s;%d<>optimizeFZcompress_level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD> compress_type<70>
dictionaryr<EFBFBD>zcannot write mode %s as PNGsIHDRrr`scHRMsgAMAssBITssRGBstIMErvs ICC ProfilessiCCPZpnginfossPLTsiTXtstEXtszTXtrsPLTEr<45>stRNS<4E><53><00><00>)r r ri<><69>z%cannot use transparency for this moder<00>Ar<41>spHYsg<73>
F%u<02>?g<00>?<3F>sbKGDshISTr<54>sExifrseXIfrg)rrsIEND<4E>flush)%r<><00> encoderinfor<6F><00>maxr<78>r<>Zgetdatar<61>Z encoderconfig<69> _OUTMODES<45>KeyErrorrLr<>r<>r<><00>sizer<65>rrd<00>remover\<00>imZ
getpaletterarb<00>o16Zgetpalettemoder<65>rZExif<69>tobytes<65>
startswithr<00>_saver<65><00>hasattrr<72>)r<>r*<00>filenamer<65>r<><00>colorsr<73>r<>r\Zicc<63>namer&r<>Zchunks_multiple_allowedr7Zpalette_byte_numberZ palette_bytesr<73>Z alpha_bytes<65>alphaZredZgreenZbluer<65>r<>r"r"r#r<><00>s<>
$    
   
  


        
" 
  


   $  r<>cKsDGdd<02>dt<00>}dd<04>}|<02>}z||_t||d|<03>Wd|`X|jS)z4Return a list of PNG chunks representing this image.c@s eZdZgZdd<02>Zdd<04>ZdS)zgetchunks.<locals>.collectorcSsdS)Nr")r,r&r"r"r#r<><00>sz"getchunks.<locals>.collector.writecSs|j<00>|<01>dS)N)r&r?)r,r<>r"r"r#r?<00>sz#getchunks.<locals>.collector.appendN)rOrPrQr&r<>r?r"r"r"r#<00> collector<6F>sr<>cWs0d<01>|<02>}tt|t|<01><01><02>}|<00>|||f<03>dS)Nr<4E>)r<>r<>r(r?)r*r7r&r>r"r"r#r?<00>s
zgetchunks.<locals>.appendN)<04>objectr<74>r<>r&)r<><00>paramsr<73>r?r*r"r"r#<00> getchunks<6B>s r<>z.pngz.apngz image/png)r)5<>logging<6E>rerIrr^rrr<00>_binaryrrr<>rr2r r<>r
r<>Z_utilr <00> __version__<5F> getLoggerrOrB<00>compiler<65>r3r<>rr<>Z SAFEBLOCKrrtr$r(r<>r)rSrRr[rkr<>r<>r<>r<>r<>r<>r<>Z register_openr<6E>Z register_saveZregister_extensionsZ register_mimer"r"r"r#<00><module>"s| 
 

XO   #