Copyright (c) 2005 John Goerzen Please see COPYING for the license.