Author: Nguyên-ngoc-Long.