<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def drop_integrate(ts, peak_list):
 """ Resolves overlap by breaking at the minimum value. """

    peaks = []
    for _, pks in _get_windows(peak_list):
        temp_pks = []
        pks = sorted(pks, key=lambda p: p['t0'])
        if 'y0' in pks[0] and 'y1' in pks[-1]:
            y0, y1 = pks[0]['y0'], pks[-1]['y1']
        else:
            y0 = ts.get_point(pks[0]['t0'])
            y1 = ts.get_point(pks[-1]['t1'])
        ys = np.array([y0, y1])
        xs = np.array([pks[0]['t0'], pks[-1]['t1']])

        # go through list of peaks to make sure there's no overlap
        for hints in pks:
            t0, t1 = hints['t0'], hints['t1']

            # figure out the y values (using a linear baseline)
            hints['y0'] = np.interp(t0, xs, ys)
            hints['y1'] = np.interp(t1, xs, ys)

            # if this peak totally overlaps with an existing one, don't add
            if sum(1 for p in temp_pks if t1 <= p['t1']) > 0:
                continue
            overlap_pks = [p for p in temp_pks if t0 <= p['t1']]
            if len(overlap_pks) > 0:
                # find the last of the overlapping peaks
                overlap_pk = max(overlap_pks, key=lambda p: p['t0'])
                # get the section of trace and find the lowest point
                over_ts = ts.twin((t0, overlap_pk['t1']))
                min_t = over_ts.index[over_ts.values.argmin()]

                # delete the existing overlaping peak
                for i, p in enumerate(temp_pks):
                    if p == overlap_pk:
                        del temp_pks[i]
                        break

                # interpolate a new y value
                y_val = np.interp(min_t, xs, ys)
                overlap_pk['y1'] = y_val
                hints['y0'] = y_val

                # add the old and new peak in
                overlap_pk['t1'] = min_t
                temp_pks.append(overlap_pk)
                hints['t0'], hints['t1'] = min_t, t1
                temp_pks.append(hints)
            else:
                hints['t0'], hints['t1'] = t0, t1
                temp_pks.append(hints)

        # none of our peaks should overlap, so we can just use
        # simple_integrate now
        peaks += simple_integrate(ts, temp_pks, intname='drop')
    return peaks