B .^ @sddlZddlmZmZmZddlmZmZedZ ddZ Gdd d ejZ e e j e e ee j d ee j d dS) N)Image ImageFile ImagePalette)i8o8s$"([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*)cCs|dddkS)N s /* XPM */)prefixr r 6/tmp/pip-install-mwhup7aw/Pillow/PIL/XpmImagePlugin.py_acceptsr c@s$eZdZdZdZddZddZdS) XpmImageFileZXPMz X11 Pixel Mapc Cst|jdstdx*|j}|s0tdt|}|rPqWt|dt|df|_ t|d}t|d}|dks|dkrt d d gd}x&t |D]}|j}|d dd kr|dd }n|d dd kr|dd }t |d}|dd  }xt dt|dD]}||dkr$||d}|dkrX||jd<n^|dddkrt|ddd}t|d?d@t|d?d@t|d@||<nt d Pq$Wt d qWd|_tdd||_dd|j|jdfg|_dS)Nrznot an XPM filezbroken XPM filerzcannot read this XPM filess rcsNoneZ transparency#PZRGBraw)rr)rrr)r fpread SyntaxErrorreadlinexpm_headmatchintgroup_size ValueErrorrangersplitleninformoderrjoinpalettesizetellZtile) selfsmZpalZbppr,icZrgbr r r _open(sJ         2 zXpmImageFile._opencCsP|j\}}dg|}x0t|D]$}|jd|d|||<qWd|S)Nrr)r-r&rrljustr+)r/bytesZxsizeZysizer0r2r r r load_readks   $zXpmImageFile.load_readN)__name__ __module__ __qualname__formatformat_descriptionr4r7r r r r r #sCr z.xpmz image/xpm)rerrr_binaryrrcompiler r r Z register_openr;Zregister_extensionZ register_mimer r r r s [