Implementação com base na classe oferecida pelo Fabio commit 8: Implementação final correção de conflitos 3