Martin K. Petersen <mkp@mkp.net>

Parts (C) Andries Brouwer <aeb@cwi.nl> and others.  

