Generated code from  15b674016823faa62b73eff614286aa2ccc7ec0d