Text this: Nonlinear programming with E-preinvex and local E-preinvex functions