Author: Patrick Schoenfeld This file is licensed under the terms of the GPL v2 or later.