class EqualJitterDelay extends ExponentialDelay {

    private final long base;

    private final TimeUnit targetTimeUnit;

    EqualJitterDelay(Duration lower, Duration upper, long base, TimeUnit targetTimeUnit) {
        super(lower, upper, 2, targetTimeUnit);
        this.base = base;
        this.targetTimeUnit = targetTimeUnit;
    }

    @Override
    public Duration createDelay(long attempt) {<FILL_FUNCTION_BODY>}

}

        long value = randomBetween(0, base * calculatePowerOfTwo(attempt));
        return applyBounds(Duration.ofNanos(targetTimeUnit.toNanos(value)));
    
<methods>public java.time.Duration createDelay(long) <variables>private final non-sealed java.time.Duration lower,private final non-sealed int powersOf,private final non-sealed java.util.concurrent.TimeUnit targetTimeUnit,private final non-sealed java.time.Duration upper