(c) 2007-2024 by T. Schneider