Optimizing Truck Driver Schedules With Dependent Working Shifts, Drivers' Legislation, And Multiple Time Windows