def TryMerge(self, d):
    while d.avail() > 0:
      tt = d.getVarInt32()
      if tt == 10:
        self.set_query_kind(d.getPrefixedString())
        continue
      if tt == 18:
        length = d.getVarInt32()
        tmp = ProtocolBuffer.Decoder(d.buffer(), d.pos(), d.pos() + length)
        d.skip(length)
        self.mutable_query_ancestor().TryMerge(tmp)
        continue
      if tt == 25:
        self.set_query_thiscursor(d.get64())
        continue
      if tt == 33:
        self.set_query_nextcursor(d.get64())
        continue
      if tt == 40:
        self.add_get_successful_fetch(d.getBoolean())
        continue
      if tt == 50:
        length = d.getVarInt32()
        tmp = ProtocolBuffer.Decoder(d.buffer(), d.pos(), d.pos() + length)
        d.skip(length)
        self.add_keys_read().TryMerge(tmp)
        continue
      if tt == 58:
        length = d.getVarInt32()
        tmp = ProtocolBuffer.Decoder(d.buffer(), d.pos(), d.pos() + length)
        d.skip(length)
        self.add_keys_written().TryMerge(tmp)
        continue


      if (tt == 0): raise ProtocolBuffer.ProtocolBufferDecodeError
      d.skipData(tt)
dataset/ETHPy150Open AppScale/appscale/AppServer/google/appengine/ext/appstats/datamodel_pb.py/DatastoreCallDetailsProto.TryMerge/original