```json
{
  "sym_variables": [
    ("x0", "hours worked by John"),
    ("x1", "hours worked by Jean"),
    ("x2", "hours worked by Mary"),
    ("x3", "hours worked by Peggy"),
    ("x4", "hours worked by Bill"),
    ("x5", "hours worked by Ringo")
  ],
  "objective_function": "6.84*x0 + 9.37*x1 + 6.19*x2 + 5.75*x3 + 9.17*x4 + 6.6*x5",
  "constraints": [
    "2*x3 + 3*x5 >= 17",
    "6*x0 + 3*x5 >= 26",
    "6*x0 + 4*x4 >= 38",
    "3*x1 + 3*x5 >= 36",
    "6*x0 + 3*x1 >= 28",
    "2*x3 + 4*x4 >= 32",
    "3*x1 + 5*x2 + 2*x3 >= 32",
    "6*x0 + 4*x4 + 3*x5 >= 32",
    "3*x1 + 5*x2 + 2*x3 >= 38",
    "6*x0 + 4*x4 + 3*x5 >= 38",
    "3*x0 + 9*x1 >= 13",
    "3*x0 + 1*x2 >= 22",
    "1*x2 + 4*x4 >= 27",
    "4*x4 + 11*x5 >= 29",
    "9*x3 + 11*x5 >= 10",
    "9*x1 + 11*x5 >= 13",
    "9*x1 + 9*x3 + 4*x4 >= 23",
    "1*x2 + 4*x4 + 11*x5 >= 23",
    "9*x1 + 1*x2 + 11*x5 >= 23",
    "1*x2 + 9*x3 + 11*x5 >= 23",
    "3*x0 + 4*x4 + 11*x5 >= 23",
    "9*x1 + 9*x3 + 4*x4 >= 23",
    "1*x2 + 4*x4 + 11*x5 >= 23",
    "9*x1 + 1*x2 + 11*x5 >= 23",
    "1*x2 + 9*x3 + 11*x5 >= 23",
    "3*x0 + 4*x4 + 11*x5 >= 23",
    "9*x1 + 9*x3 + 4*x4 >= 20",
    "1*x2 + 4*x4 + 11*x5 >= 20",
    "9*x1 + 1*x2 + 11*x5 >= 20",
    "1*x2 + 9*x3 + 11*x5 >= 20",
    "3*x0 + 4*x4 + 11*x5 >= 20",
    "9*x1 + 9*x3 + 4*x4 >= 14",
    "1*x2 + 4*x4 + 11*x5 >= 14",
    "9*x1 + 1*x2 + 11*x5 >= 14",
    "1*x2 + 9*x3 + 11*x5 >= 14",
    "3*x0 + 4*x4 + 11*x5 >= 14",
    "5*x2 + 3*x5 <= 96",
    "3*x1 + 3*x5 <= 40",
    "5*x2 + 2*x3 <= 121",
    "6*x0 + 3*x1 <= 235",
    "6*x0 + 3*x5 <= 209",
    "4*x4 + 3*x5 <= 135",
    "6*x0 + 4*x4 <= 187",
    "3*x1 + 2*x3 + 3*x5 <= 54",
    "3*x1 + 4*x4 + 3*x5 <= 239",
    "3*x1 + 5*x2 + 4*x4 <= 125",
    "6*x0 + 3*x1 + 2*x3 <= 133",
    "5*x2 + 2*x3 + 3*x5 <= 166",
    "3*x1 + 2*x3 + 4*x4 <= 51",
    "6*x0 + 3*x1 + 3*x5 <= 83",
    "6*x0 + 2*x3 + 3*x5 <= 154",
    "6*x0 + 2*x3 + 4*x4 <= 140",
    "6*x0 + 5*x2 + 3*x5 <= 177",
    "6*x0 + 5*x2 + 2*x3 <= 157",
    "6*x0 + 4*x4 + 3*x5 <= 72",
    "3*x1 + 5*x2 + 2*x3 <= 144",
    "6*x0 + 3*x1 + 5*x2 <= 216",
    "6*x0 + 5*x2 + 4*x4 <= 193",
    "3*x1 + 5*x2 + 3*x5 <= 135",
    "6*x0 + 3*x1 + 4*x4 <= 151",
    "6*x0 + 3*x1 + 5*x2 + 2*x3 + 4*x4 + 3*x5 <= 151",
    "3*x0 + 1*x2 <= 43",
    "9*x1 + 9*x3 <= 90",
    "3*x0 + 4*x4 <= 176",
    "9*x3 + 4*x4 <= 75",
    "4*x4 + 11*x5 <= 51",
    "9*x1 + 1*x2 <= 148",
    "9*x3 + 11*x5 <= 69",
    "1*x2 + 11*x5 <= 49",
    "3*x0 + 9*x3 <= 149",
    "3*x0 + 9*x1 + 1*x2 + 9*x3 + 4*x4 + 11*x5 <= 149"
  ]
}
```

```python
from gurobipy import Model, GRB

# Create a new model
model = Model("Work Optimization")

# Create variables
john = model.addVar(lb=0, vtype=GRB.CONTINUOUS, name="John")
jean = model.addVar(lb=0, vtype=GRB.INTEGER, name="Jean")
mary = model.addVar(lb=0, vtype=GRB.INTEGER, name="Mary")
peggy = model.addVar(lb=0, vtype=GRB.INTEGER, name="Peggy")
bill = model.addVar(lb=0, vtype=GRB.INTEGER, name="Bill")
ringo = model.addVar(lb=0, vtype=GRB.INTEGER, name="Ringo")


# Set objective function
model.setObjective(6.84 * john + 9.37 * jean + 6.19 * mary + 5.75 * peggy + 9.17 * bill + 6.6 * ringo, GRB.MAXIMIZE)

# Add constraints
model.addConstr(2 * peggy + 3 * ringo >= 17)
model.addConstr(6 * john + 3 * ringo >= 26)
model.addConstr(6 * john + 4 * bill >= 38)
model.addConstr(3 * jean + 3 * ringo >= 36)
model.addConstr(6 * john + 3 * jean >= 28)
model.addConstr(2 * peggy + 4 * bill >= 32)
model.addConstr(3 * jean + 5 * mary + 2 * peggy >= 32)
model.addConstr(6 * john + 4 * bill + 3 * ringo >= 32)
model.addConstr(3 * jean + 5 * mary + 2 * peggy >= 38)
model.addConstr(6 * john + 4 * bill + 3 * ringo >= 38)
model.addConstr(3 * john + 9 * jean >= 13)
model.addConstr(3 * john + 1 * mary >= 22)
model.addConstr(1 * mary + 4 * bill >= 27)
model.addConstr(4 * bill + 11 * ringo >= 29)
model.addConstr(9 * peggy + 11 * ringo >= 10)
model.addConstr(9 * jean + 11 * ringo >= 13)
model.addConstr(9 * jean + 9 * peggy + 4 * bill >= 23)
model.addConstr(1 * mary + 4 * bill + 11 * ringo >= 23)
model.addConstr(9 * jean + 1 * mary + 11 * ringo >= 23)
model.addConstr(1 * mary + 9 * peggy + 11 * ringo >= 23)
model.addConstr(3 * john + 4 * bill + 11 * ringo >= 23)

# ... (rest of the constraints from the JSON)


# 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("Model is infeasible")
else:
    print("Optimization ended with status %d" % model.status)

```