code: def test_nested_deserialize():
      x = {
          "op": "update",
          "x": [to_serialize(123), to_serialize(456), 789],
          "y": {
              "a": ["abc", Serialized(*serialize("def"))],
              "b": b"ghi",
          },
      }
      x_orig = copy.deepcopy(x)
  
      assert nested_deserialize(x) == {
          "op": "update",
          "x": [123, 456, 789],
          "y": {"a": ["abc", "def"], "b": b"ghi"},
      }
      assert x == x_orig
  
imports: from __future__ import annotations
  import copy
  import pickle
  from array import array
  import msgpack
  import pytest
  from tlz import identity
  import dask
  from distributed import Nanny, wait
  from distributed.comm.utils import from_frames, to_frames
  from distributed.protocol import Serialize, Serialized, dask_serialize, deserialize, deserialize_bytes, dumps, loads, nested_deserialize, register_serialization, register_serialization_family, serialize, serialize_bytelist, serialize_bytes, to_serialize
  from distributed.protocol.serialize import _is_msgpack_serializable, check_dask_serializable
  from distributed.utils import ensure_memoryview, nbytes
  from distributed.utils_test import NO_AMM, gen_test, inc
  from dask import delayed
  from distributed.utils_test import gen_cluster
label_desc: Use image node_id 9 for calling a global function with example usage: test_nested_deserialize() without return types