def combine(self, p2, maxFunc):
    if (maxFunc is not None):
        return Progress((self.progress + p2.progress), (self.max + maxFunc(p2.max)))
    return Progress((self.progress + p2.progress), (self.max + p2.max))
def combine(self, p2, maxFunc):
    if (maxFunc is not None):
        return Progress((self.progress + p2.progress), (self.max + maxFunc(p2.max)))
    return Progress((self.progress + p2.progress), (self.max + p2.max))