This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).

This product makes use of the Kaptcha library, which is released under under
the terms of the Apache Software License 2.0.
https://github.com/axet/kaptcha