ó ¸ůbc@sÜddlmZddlZddlZddlZdZdZeZidd6dd6dd 6d d 6d d 6Z d„Z d„Z dejfd„ƒYZ de fd„ƒYZ ddd„ƒYZdd„Zd„ZdS(i˙˙˙˙(tImageNiisimage buffer overrun errorsdecoding erroriţ˙˙˙s unknown erroriý˙˙˙sbad configurationiř˙˙˙sout of memory errori÷˙˙˙cCs`ytjj|ƒ}Wn tk r8tj|ƒ}nX|sLd|}nt|dƒ‚dS(Nsdecoder error %ds when reading image file(RtcoretgetcodecstatustAttributeErrortERRORStgettIOError(terrortmessage((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyt raise_ioerror0s  cCs|dS(Ni((tt((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyt _tilesort=st ImageFilecBsJeZdZddd„Zd„Zd„Zd„Zd„Zd„Z RS(s*Base class for image file format handlers.cCstjj|ƒd|_d|_d|_t|_tj|ƒrat |dƒ|_ ||_ n||_ ||_ y|j ƒWnét k rž}tjdkrŻtjƒnt|ƒ‚nŻtk rř}tjdkrétjƒnt|ƒ‚nutk r2}tjdkr#tjƒnt|ƒ‚n;tk rl}tjdkr]tjƒnt|ƒ‚nX|j sŠ|jddkr™tdƒ‚ndS(Nitrbisnot identified by this driver((Rt__init__tNonettiletreadonlyt decoderconfigtMAXBLOCKtdecodermaxblockt isStringTypetopentfptfilenamet_opent IndexErrortDEBUGt tracebackt print_exct SyntaxErrort TypeErrortKeyErrortEOFErrortmodetsize(tselfRRtv((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRKs<           cCsdS(sSet draft modeN((R$R"R#((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pytdraftsscCs d|_dS(sCheck file integrityN(RR(R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pytverifyxsc Csctjj|ƒ}|jdkr0tdƒ‚n|js=|Sd|_d}|jrĚt|jƒdkrĚ|jd\}}}}|dkrĚ|d|jkrĚ|dtj krĚyët tj dƒr!tj j|jƒ|_|jj |ƒ|jj |j|j|d|dƒ|_nxddl}t|jd ƒ}tjj|jƒ} |j|jƒ| ƒ|_tj j|j|j||||ƒ|_d}WqÉtttfk rĹd|_qÉXqĚn|jƒy |j} Wntk r|jj} nXy |j} Wntk r/|jj } nX|jsż|jjd t ƒy |j!} Wntk rrd } nXxI|jD];\}}}}tj"|j|||j#ƒ}| |ƒy|j$|j|ƒWnt%k räq}nX| } t| ƒ}xžt&rˇy| |j'ƒ}Wn)t(k r>}t)r/Pq?t(|ƒ‚nX|sqg|_t)rXPqqtd t| ƒƒ‚n| |} |j*| ƒ\}}|dkr Pn| |} ||}qúWq}Wng|_||_+d|_t) sí|dkr|j r|dkrt,|ƒnt |d ƒrI|jj-|j.ƒ|_|jj|_n|j/ƒtjj|ƒS(s"Load image data based on tile listscannot load this imageiitrawtmapii˙˙˙˙Nsr+tkeyts0image file is truncated (%d bytes not processed)ttile_post_rotate(0RtloadRRRR)RtlenR"t _MAPMODESthasattrRtseekt readimageR#timtmmapRtostpathtgetsizetfilenot map_bufferRtEnvironmentErrort ImportErrort load_preparet load_readRtreadt load_seektsortR t tile_prefixt _getdecoderRtsetimaget ValueErrortTrueRRtLOAD_TRUNCATED_IMAGEStdecodeRR trotateR,tload_end(R$tpixelRtdtetotaR4tfileR#R>R1tprefixtbR tstietn((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyR-sš  2 &  !                     )  cCs{|j s4|jj|jks4|jj|jkrUtjj|j|jƒ|_n|jdkrwtjj|ƒndS(NtP(R3R"R#RRtnewR-(R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyR<ós  *!cCsdS(N((R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRIüsN( t__name__t __module__t__doc__RRR&R'R-R<RI(((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyR Hs(   t t StubImageFilecBs)eZdZd„Zd„Zd„ZRS(s"Base class for stub image loaders.cCstdƒ‚dS(Ns+StubImageFile subclass must implement _open(tNotImplementedError(R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRscCsk|jƒ}|dkr.td|jƒ‚n|j|ƒ}|dk sOt‚|j|_|j|_dS(Ns#cannot find loader for this %s file(t_loadRRtformatR-tAssertionErrort __class__t__dict__(R$tloadertimage((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyR-s   cCstdƒ‚dS(Ns+StubImageFile subclass must implement _load(R[(R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyR\#s(RWRXRYRR-R\(((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRZs  tParsercBsAeZdZdZdZdZdZd„Zd„Z d„Z RS(icCs|jdkstdƒ‚dS(Nscannot reuse parsers(tdataRR^(R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pytreset9sc Csl|jr dS|jdkr(||_n|j||_|jr |jdkrŤtt|jƒ|jƒ}|j||_|j||_|jdks¤|j rŤdSn|jj|jƒ\}}|dkr d|_d|_|dkrd|_t |ƒq dSn|j||_nH|jr,n<y7z%t j |jƒ}t j |ƒ}Wd|jƒXWntk rvnňXt|dƒp’t|dƒ}|s°t|jƒdkrźd|_nŁ|jƒ|jd\}}} } g|_t j|j|| |jƒ|_|jj|j|ƒ| |_|jt|jƒkr_|j|j|_d|_n||_dS(NiiR?R=(tfinishedRdRtdecodertoffsettminR.RGRbR tiotBytesIORRtcloseRR0RR<RBR"RRCR3( R$RdtskipRTRLRR3tflagRKRMRN((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pytfeedBsX                cCsŻ|jrA|jdƒd|_|_|jsAtdƒ‚qAn|jsYtdƒ‚n|jr¨z(tj|jƒ}t j |ƒ|_Wd|jj ƒ|j ƒXn|jS(NR+simage was incompletescannot parse this image( RgRoRRdRfRRbRjRkRRR-Rl(R$R((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRl—s      N( RWRXRt incrementalRbRdRgRfReRoRl(((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRc,s Uic Cs |jƒt|dƒs%d|_n|jdtƒtt||jddƒ}y|jƒ}|j ƒWnât t j fk rPxg|D]˝\}}}}t j|j|||jƒ}|dkrŰ|j|dƒn|j|j|ƒx9tr)|j|ƒ\} } } |j| ƒ| rńPqńqńW| dkrŒtd| ƒ‚qŒqŒWnŸXx›|D]“\}}}}t j|j|||jƒ}|dkr§|j|dƒn|j|j|ƒ|j||ƒ} | dkrXtd| ƒ‚qXqXWy|j ƒWnnXdS(s'Helper to save image based on tile listt encoderconfigR*iis(encoder error %d when writing image fileN((R-R0RqR@R tmaxRR#R8tflushRRjtUnsupportedOperationRt _getencoderR"R1RCR3REtencodetwriteRtencode_to_file( R3RRtbufsizetfhRLRQRMRNtlRRRK((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyt_saveśsB         cCsŽ|dkrdS|tkr)|j|ƒSg}xO|dkr€|jt|tƒƒ}|s`Pn|j|ƒ|t|ƒ}q2Wdj|ƒS(NiR+(t SAFEBLOCKR>RitappendR.tjoin(RR#Rdtblock((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyt _safe_readës    i((tPILRRR5RjRR}tFalseRFRR R R RZRcR|R(((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyts$   ĆŠ 5