Generated code from  0598339da668d4cb1b2ce4a534327c39f37b2c55