Copyright (C) Takuto Niwano all right reserved.