text: public override void add(int index, E @object){object[] a = array;int s = _size;if (index > s || index < 0){throwIndexOutOfBoundsException(index, s);}if (s < a.Length){System.Array.Copy(a, index, a, index + 1, s - index);}else{object[] newArray = new object[newCapacity(s)];System.Array.Copy(a, 0, newArray, 0, index);System.Array.Copy(a, index, newArray, index + 1, s - index);array = a = newArray;}a[index] = @object;_size = s + 1;modCount++;}