code: def BytesEncoder(field_number, is_repeated, is_packed):
      """Returns an encoder for a bytes field."""
  
      tag = TagBytes(
          field_number, wire_format.WIRETYPE_LENGTH_DELIMITED
      )
      local_EncodeVarint = _EncodeVarint
      local_len = len
      assert not is_packed
      if is_repeated:
  
          def EncodeRepeatedField(write, value):
              for element in value:
                  write(tag)
                  local_EncodeVarint(write, local_len(element))
                  write(element)
  
          return EncodeRepeatedField
      else:
  
          def EncodeField(write, value):
              write(tag)
              local_EncodeVarint(write, local_len(value))
              return write(value)
  
          return EncodeField
  
imports: import struct
  import six
  from google.protobuf.internal import wire_format
label_desc: Use image node_id 23 for calling a global function with example usage: BytesEncoder(field_number, is_repeated, is_packed) and returns: EncodeRepeatedField, EncodeField, write