This allows high flexibility and lets you choose the TWAP for your need. The contract has a flag strictMode which if set will make it so that if the oracle doesn't have enough history for the range at the start and at the end to both have a value, the call will revert. So if a oracle only has 2w in prices and you try to constructac a 4w TWAP, itll return the 2w in values that it has available. This allows you to revert if the oracle doesnt have enough to be as called, while allowing contracts where you just want as much as possible to still succeed. There are 2 functions