Generated code from  8ff74d0260beb0e100175219ae63b169e6c2af08