```json
{
  "sym_variables": [
    ("x0", "granola bars"),
    ("x1", "knishes"),
    ("x2", "steaks"),
    ("x3", "eggs"),
    ("x4", "ravioli"),
    ("x5", "hamburgers"),
    ("x6", "rotisserie chickens")
  ],
  "objective_function": "5*x0 + 8*x1 + 1*x2 + 8*x3 + 4*x4 + 8*x5 + 2*x6",
  "constraints": [
    "10*x0 + 1*x3 >= 37",
    "9*x1 + 1*x3 >= 25",
    "9*x1 + 9*x5 >= 36",
    "9*x1 + 6*x4 >= 35",
    "10*x2 + 1*x3 + 6*x4 >= 34",
    "10*x0 + 1*x3 + 11*x6 >= 34",
    "9*x1 + 9*x5 + 11*x6 >= 34",
    "9*x1 + 1*x3 + 6*x4 >= 34",
    "10*x0 + 9*x1 + 10*x2 >= 34",
    "10*x0 + 9*x1 + 6*x4 >= 34",
    "9*x1 + 10*x2 + 11*x6 >= 34",
    "10*x0 + 9*x1 + 11*x6 >= 34",
    "9*x1 + 1*x3 + 11*x6 >= 34",
    "10*x0 + 10*x2 + 1*x3 >= 34",
    "10*x0 + 10*x2 + 11*x6 >= 34",
    "9*x1 + 6*x4 + 9*x5 >= 34",
    "10*x0 + 9*x1 + 9*x5 >= 34",
    "9*x1 + 6*x4 + 11*x6 >= 34",
    "10*x0 + 6*x4 + 9*x5 >= 34",
    "6*x4 + 9*x5 + 11*x6 >= 34",
    "10*x2 + 1*x3 + 6*x4 >= 31",
    "10*x0 + 1*x3 + 11*x6 >= 31",
    "9*x1 + 9*x5 + 11*x6 >= 31",
    "9*x1 + 1*x3 + 6*x4 >= 31",
    "10*x0 + 9*x1 + 10*x2 >= 31",
    "10*x0 + 9*x1 + 6*x4 >= 31",
    "9*x1 + 10*x2 + 11*x6 >= 31",
    "10*x0 + 9*x1 + 11*x6 >= 31",
    "9*x1 + 1*x3 + 11*x6 >= 31",
    "10*x0 + 10*x2 + 1*x3 >= 31",
    "10*x0 + 10*x2 + 11*x6 >= 31",
    "9*x1 + 6*x4 + 9*x5 >= 31",
    "10*x0 + 9*x1 + 9*x5 >= 31",
    "9*x1 + 6*x4 + 11*x6 >= 31",
    "10*x0 + 6*x4 + 9*x5 >= 31",
    "6*x4 + 9*x5 + 11*x6 >= 31",
    "10*x0 + 6*x4 <= 262",
    "9*x1 + 1*x3 <= 145",
    "3*x0 + 2*x1 <= 44",
    "2*x4 + 9*x5 <= 147",
    "10*x0 + 11*x6 <= 197",
    "10*x2 + 1*x3 <= 227",
    "1*x3 + 11*x6 <= 113",
    "10*x0 + 1*x3 <= 244",
    "10*x2 + 9*x5 <= 237",
    "10*x0 + 9*x1 <= 88",
    "9*x1 + 11*x6 <= 72",
    "9*x1 + 9*x5 <= 216",
    "1*x3 + 6*x4 <= 239",
    "10*x0 + 6*x4 + 9*x5 <= 130",
    "10*x2 + 1*x3 + 6*x4 <= 153",
    "9*x1 + 10*x2 + 11*x6 <= 212",
    "9*x1 + 6*x4 + 9*x5 <= 40",
    "10*x2 + 6*x4 + 9*x5 <= 194",
    "10*x2 + 9*x5 + 11*x6 <= 124",
    "10*x0 + 10*x2 + 6*x4 <= 246",
    "9*x1 + 10*x2 + 6*x4 <= 135",
    "10*x0 + 10*x2 + 11*x6 <= 130",
    "10*x0 + 1*x3 + 11*x6 <= 259",
    "10*x0 + 10*x2 + 1*x3 <= 65",
    "10*x2 + 1*x3 + 9*x5 <= 150",
    "1*x3 + 9*x5 + 11*x6 <= 104",
    "10*x0 + 1*x3 + 9*x5 <= 160",
    "10*x0 + 1*x3 + 6*x4 <= 213",
    "9*x1 + 10*x2 + 1*x3 <= 123",
    "10*x0 + 9*x1 + 9*x5 <= 266",
    "10*x0 + 9*x1 + 6*x4 <= 212",
    "10*x0 + 9*x1 + 10*x2 <= 157",
    "9*x1 + 1*x3 + 6*x4 <= 40",
    "10*x0 + 10*x2 + 9*x5 <= 263",
    "10*x0 + 1*x3 >= 37",
    "2*x4 + 9*x5 >= 8",
    "2*x1 + 1*x6 >= 19",
    "10*x3 + 2*x4 >= 20",
    "3*x0 + 2*x1 >= 8",
    "2*x4 + 1*x6 >= 12",
    "10*x3 + 9*x5 >= 12",
    "3*x0 + 2*x4 >= 22",
    "6*x2 + 1*x6 >= 16",
    "6*x2 + 9*x5 >= 21",
    "2*x1 + 6*x2 >= 12",
    "6*x2 + 2*x4 >= 10",
    "9*x5 + 1*x6 >= 18",
    "3*x0 + 10*x3 >= 21",
    "3*x0 + 9*x5 >= 18",
    "2*x1 + 9*x5 >= 17",
    "3*x0 + 1*x6 >= 19",
    "10*x0 <= 267",
    "3*x0 <= 169",
    "2*x0 <= 152",
    "8*x0 <= 222"

    
  ]
}
```

```python
from gurobipy import Model, GRB

# Create a new model
model = Model("food_optimization")

# Create variables
foods = ['granola bars', 'knishes', 'steaks', 'eggs', 'ravioli', 'hamburgers', 'rotisserie chickens']
x = model.addVars(range(len(foods)), name=foods, lb=0)

# Set integer constraints
for i in [0, 1, 2, 3, 4, 6]:
    x[i].vtype = GRB.INTEGER


# Set objective function
model.setObjective(5*x[0] + 8*x[1] + 1*x2 + 8*x[3] + 4*x[4] + 8*x[5] + 2*x[6], GRB.MINIMIZE)

# Resource constraints
resources = {
    'r0': {'description': 'grams of fat', 'upper_bound': 267, 'values': [10, 9, 10, 1, 6, 9, 11]},
    'r1': {'description': 'milligrams of calcium', 'upper_bound': 169, 'values': [3, 2, 6, 10, 2, 1, 1]},
    'r2': {'description': 'grams of fiber', 'upper_bound': 152, 'values': [2, 10, 9, 3, 3, 3, 2]},
    'r3': {'description': 'healthiness rating', 'upper_bound': 222, 'values': [8, 3, 1, 10, 4, 1, 6]}
}

for r, data in resources.items():
    model.addConstr(sum(data['values'][i] * x[i] for i in range(len(foods))) <= data['upper_bound'], name=r)


# Additional constraints (from the problem description)
model.addConstr(10*x[0] + x[3] >= 37)
model.addConstr(9*x[1] + x[3] >= 25)
# ... (add all other constraints similarly)


# Optimize model
model.optimize()

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

```