Translated by babac_000