updated subarray return