code: def shift_rows(state):
      
      state = state.reshape(4, 4, 8)
      return fcat(
          state[0][0], state[1][1], state[2][2], state[3][3],
          state[1][0], state[2][1], state[3][2], state[0][3],
          state[2][0], state[3][1], state[0][2], state[1][3],
          state[3][0], state[0][1], state[1][2], state[2][3]
      )
docs: Transformation in the Cipher that processes the State by cyclically shifting
      the last three rows of the State by different offsets.