// Path: collection/src/main/java/com/github/andrewoma/dexx/collection/internal/base/AbstractIndexedList.java
// public abstract class AbstractIndexedList<E> extends AbstractList<E> implements IndexedList<E> {
// }
// 
// Path: collection/src/main/java/com/github/andrewoma/dexx/collection/internal/builder/AbstractBuilder.java
// public abstract class AbstractBuilder<E, R> implements Builder<E, R> {
//     private boolean built = false;
// 
//     @NotNull
//     @Override
//     public Builder<E, R> addAll(@NotNull Traversable<E> elements) {
//         elements.forEach(new Function<E, Object>() {
//             @Override
//             public Object invoke(E element) {
//                 add(element);
//                 return null;
//             }
//         });
//         return this;
//     }
// 
//     @NotNull
//     @Override
//     public Builder<E, R> addAll(@NotNull Iterable<E> elements) {
//         for (E element : elements) {
//             add(element);
//         }
//         return this;
//     }
// 
//     @NotNull
//     @Override
//     public Builder<E, R> addAll(@NotNull Iterator<E> iterator) {
//         while (iterator.hasNext()) {
//             add(iterator.next());
//         }
//         return this;
//     }
// 
//     @NotNull
//     @Override
//     public Builder<E, R> addAll(E e1, E e2, E... es) {
//         add(e1);
//         add(e2);
//         for (E e : es) {
//             add(e);
//         }
//         return this;
//     }
// 
//     @NotNull
//     @Override
//     final public R build() {
//         if (built) throw new IllegalStateException("Builders do not support multiple calls to build()");
//         built = true;
//         return doBuild();
//     }
// 
//     @NotNull
//     public abstract R doBuild();
// }


import com.github.andrewoma.dexx.collection.internal.base.AbstractIndexedList;
import com.github.andrewoma.dexx.collection.internal.builder.AbstractBuilder;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Iterator;
import java.util.NoSuchElementException;
                display5 = new Object[32];
                display5[(oldIndex >> 25) & 31] = display4;
                display4 = new Object[32];
                display3 = new Object[32];
                display2 = new Object[32];
                display1 = new Object[32];
                depth += 1;
            }
            display4 = (Object[]) display5[(newIndex >> 25) & 31];
            if (display4 == null) display4 = new Object[32];
            display3 = (Object[]) display4[(newIndex >> 20) & 31];
            if (display3 == null) display3 = new Object[32];
            display2 = (Object[]) display3[(newIndex >> 15) & 31];
            if (display2 == null) display2 = new Object[32];
            display1 = (Object[]) display2[(newIndex >> 10) & 31];
            if (display1 == null) display1 = new Object[32];
            display0 = new Object[32];
        } else { // level = 6
            throw new IllegalArgumentException();
        }
    }

    // requires structure is dirty and at pos oldIndex,
    // ensures structure is dirty and at pos newIndex and writable at level 0
    public void gotoFreshPosWritable1(int oldIndex, int newIndex, int xor) {
        stabilize(oldIndex);
        gotoFreshPosWritable0(oldIndex, newIndex, xor);
    }
}

// Path: collection/src/main/java/com/github/andrewoma/dexx/collection/internal/base/AbstractIndexedList.java
// public abstract class AbstractIndexedList<E> extends AbstractList<E> implements IndexedList<E> {
// }
// 
// Path: collection/src/main/java/com/github/andrewoma/dexx/collection/internal/builder/AbstractBuilder.java
// public abstract class AbstractBuilder<E, R> implements Builder<E, R> {
//     private boolean built = false;
// 
//     @NotNull
//     @Override
//     public Builder<E, R> addAll(@NotNull Traversable<E> elements) {
//         elements.forEach(new Function<E, Object>() {
//             @Override
//             public Object invoke(E element) {
//                 add(element);
//                 return null;
//             }
//         });
//         return this;
//     }
// 
//     @NotNull
//     @Override
//     public Builder<E, R> addAll(@NotNull Iterable<E> elements) {
//         for (E element : elements) {
//             add(element);
//         }
//         return this;
//     }
// 
//     @NotNull
//     @Override
//     public Builder<E, R> addAll(@NotNull Iterator<E> iterator) {
//         while (iterator.hasNext()) {
//             add(iterator.next());
//         }
//         return this;
//     }
// 
//     @NotNull
//     @Override
//     public Builder<E, R> addAll(E e1, E e2, E... es) {
//         add(e1);
//         add(e2);
//         for (E e : es) {
//             add(e);
//         }
//         return this;
//     }
// 
//     @NotNull
//     @Override
//     final public R build() {
//         if (built) throw new IllegalStateException("Builders do not support multiple calls to build()");
//         built = true;
//         return doBuild();
//     }
// 
//     @NotNull
//     public abstract R doBuild();
// }


// Path: collection/src/main/java/com/github/andrewoma/dexx/collection/Vector.java
import com.github.andrewoma.dexx.collection.internal.base.AbstractIndexedList;
import com.github.andrewoma.dexx.collection.internal.builder.AbstractBuilder;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Iterator;
import java.util.NoSuchElementException;

                display5 = new Object[32];
                display5[(oldIndex >> 25) & 31] = display4;
                display4 = new Object[32];
                display3 = new Object[32];
                display2 = new Object[32];
                display1 = new Object[32];
                depth += 1;
            }
            display4 = (Object[]) display5[(newIndex >> 25) & 31];
            if (display4 == null) display4 = new Object[32];
            display3 = (Object[]) display4[(newIndex >> 20) & 31];
            if (display3 == null) display3 = new Object[32];
            display2 = (Object[]) display3[(newIndex >> 15) & 31];
            if (display2 == null) display2 = new Object[32];
            display1 = (Object[]) display2[(newIndex >> 10) & 31];
            if (display1 == null) display1 = new Object[32];
            display0 = new Object[32];
        } else { // level = 6
            throw new IllegalArgumentException();
        }
    }

    // requires structure is dirty and at pos oldIndex,
    // ensures structure is dirty and at pos newIndex and writable at level 0
    public void gotoFreshPosWritable1(int oldIndex, int newIndex, int xor) {
        stabilize(oldIndex);
        gotoFreshPosWritable0(oldIndex, newIndex, xor);
    }
}

class VectorBuilder<E> extends AbstractBuilder<E, Vector<E>> {