cdef04120f4694e51f59b2fa167cfe5a{{{{{{{{{{{{{{{{{{