```json
{
  "sym_variables": [
    ("x0", "protein bars"),
    ("x1", "bagged salads"),
    ("x2", "granola bars"),
    ("x3", "hamburgers"),
    ("x4", "slices of pizza")
  ],
  "objective_function": "4*x0**2 + 8*x0*x1 + 9*x0*x2 + 4*x0*x3 + 6*x0*x4 + 8*x1**2 + 5*x1*x4 + 2*x2**2 + 2*x2*x4 + x3**2 + 5*x3*x4 + 9*x4**2 + 9*x0 + 6*x1 + 8*x2 + 7*x3",
  "constraints": [
    "3*x0 + 28*x1 + 14*x2 + 3*x3 + 13*x4 <= 267",
    "6*x0 + 8*x1 + 15*x2 + 20*x3 + 6*x4 <= 408",
    "14*x0 + 28*x1 + 22*x2 + 16*x3 + 23*x4 <= 152",
    "27*x0 + 29*x1 + 28*x2 + 22*x3 + 5*x4 <= 216",
    "28*x1 + 3*x3 >= 42",
    "3*x0 + 28*x1 + 13*x4 >= 45",
    "8*x1 + 15*x2 >= 30",
    "6*x0 + 15*x2 >= 34",
    "15*x2 + 20*x3 >= 73",
    "20*x3**2 + 6*x4**2 >= 61",
    "8*x1 + 6*x4 >= 75",
    "8*x1 + 20*x3 >= 69",
    "15*x2**2 + 6*x4**2 >= 42",
    "6*x0 + 8*x1 >= 28",
    "6*x0 + 20*x3 >= 79",
    "6*x0 + 6*x4 >= 52",
    "6*x0 + 8*x1 + 20*x3 >= 50",
    "6*x0 + 20*x3 + 6*x4 >= 50",
    "15*x2**2 + 20*x3**2 + 6*x4**2 >= 50",
    "8*x1 + 15*x2 + 6*x4 >= 50",
    "6*x0**2 + 8*x1**2 + 20*x3**2 >= 75",
    "6*x0**2 + 20*x3**2 + 6*x4**2 >= 75",
    "15*x2 + 20*x3 + 6*x4 >= 75",
    "8*x1 + 15*x2 + 6*x4 >= 75",
    "6*x0**2 + 8*x1**2 + 20*x3**2 >= 71",
    "6*x0 + 20*x3 + 6*x4 >= 71",
    "15*x2**2 + 20*x3**2 + 6*x4**2 >= 71",
    "8*x1 + 15*x2 + 6*x4 >= 71",
    "6*x0 + 8*x1 + 20*x3 >= 74",
    "6*x0 + 20*x3 + 6*x4 >= 74",
    "15*x2**2 + 20*x3**2 + 6*x4**2 >= 74",
    "8*x1**2 + 15*x2**2 + 6*x4**2 >= 74",
    "28*x1 + 16*x3 >= 30",
    "22*x2 + 16*x3 >= 15",
    "22*x2**2 + 23*x4**2 >= 20",
    "14*x0 + 22*x2 >= 12",
    "22*x3**2 + 5*x4**2 >= 33",
    "29*x1 + 5*x4 >= 43",
    "27*x0 + 22*x3 >= 30",
    "29*x1**2 + 28*x2**2 >= 26",
    "27*x0 + 5*x4 >= 25",
    "28*x2 + 5*x4 >= 18",
    "27*x0 + 29*x1 >= 37",
    "27*x0**2 + 28*x2**2 >= 35",
    "29*x1 + 22*x3 + 5*x4 >= 38",
    "3*x0 + 13*x4 <= 138",
    "28*x1 + 14*x2 <= 87",
    "3*x3**2 + 13*x4**2 <= 127",
    "14*x0 + 28*x1 + 23*x4 <= 50",
    "14*x0 + 28*x1 + 22*x2 + 16*x3 + 23*x4 <= 50",
    "28*x2 + 5*x4 <= 47",
    "x2 == int",
    "x4 == int"

    
  ]
}
```

```python
from gurobipy import *

# Create a new model
m = Model("optimization_problem")

# Create variables
x0 = m.addVar(lb=0, name="protein_bars")
x1 = m.addVar(lb=0, name="bagged_salads")
x2 = m.addVar(lb=0, vtype=GRB.INTEGER, name="granola_bars")
x3 = m.addVar(lb=0, name="hamburgers")
x4 = m.addVar(lb=0, vtype=GRB.INTEGER, name="slices_of_pizza")


# Set objective
m.setObjective(4*x0**2 + 8*x0*x1 + 9*x0*x2 + 4*x0*x3 + 6*x0*x4 + 8*x1**2 + 5*x1*x4 + 2*x2**2 + 2*x2*x4 + x3**2 + 5*x3*x4 + 9*x4**2 + 9*x0 + 6*x1 + 8*x2 + 7*x3, GRB.MAXIMIZE)

# Add constraints
m.addConstr(3*x0 + 28*x1 + 14*x2 + 3*x3 + 13*x4 <= 267, "c0")
m.addConstr(6*x0 + 8*x1 + 15*x2 + 20*x3 + 6*x4 <= 408, "c1")
m.addConstr(14*x0 + 28*x1 + 22*x2 + 16*x3 + 23*x4 <= 152, "c2")
m.addConstr(27*x0 + 29*x1 + 28*x2 + 22*x3 + 5*x4 <= 216, "c3")
# ... (add all other constraints similarly)


# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print('Obj: %g' % m.objVal)
    for v in m.getVars():
        print('%s %g' % (v.varName, v.x))
elif m.status == GRB.INFEASIBLE:
    print("The problem is infeasible.")
else:
    print("Optimization ended with status %d" % m.status)

```
