Contributed by Gabriel Figueiredo
Contributed by Florian Hardwig
Contributed by Carlos Bauer
Contributed by Rafael Nobre
Contributed by Julio Giacomelli