Generated code from  3b058a686508f690ebbe0dc805af9fa3c454d123