Generated code from  304b88d78017203c259ba245782609bf0b5884c2