Original author: Ivan Sagalaev <maniac@softwaremaniacs.org>

Contributors:

- Alexander Artemenko <svetlyak.40wt@gmail.com>
- Jonathon Klobucar <jonathon.klobucar@gmail.com>
