Contributed by Marçal Prats
Contributed by Martin LAVIELLE
Contributed by TypeMates
Contributed by Florian Hardwig