copyrights revision 0c7657e9302e7f9a8fe4f32fe561dc7e7e7ee6b5