copyright (c) 2005-2017 yuji tanabe. all rights reserved.