% Thomas Esser, May 2005. Public domain. cmcsc8 CMCSC10