code: def from_protobuf(cls, obj):
      self = cls()
      self.type = str(obj.type).split(".")[1]
      self.timestamp_ns = obj.timestamp_ns
      self.addr = hex(int(obj.addr))
      self.process_id = obj.process_id
      self.thread_id = obj.thread_id
      self.increase_bytes = obj.increase_bytes
      self.place = obj.place
      self.current_allocated = obj.current_allocated
      self.current_reserved = obj.current_reserved
      self.peak_allocated = obj.peak_allocated
      self.peak_reserved = obj.peak_reserved
      return self
  
imports: import collections
  import functools
  import json
  import re
  import sys
  import tempfile
  from .utils import traverse_tree
label_desc: Use image node_id 3 for calling the MemNode obj's underlying member method code with example usage: obj.from_protobuf(cls, obj) and returns: self